Ver Mensaje Individual
  #4  
Antiguo 16-03-2005
mambo5cu mambo5cu is offline
Registrado
 
Registrado: mar 2005
Posts: 2
Reputación: 0
mambo5cu Va por buen camino
Gracias

Hola Diego,

Gracias por tu atención, pero el problema es que estoy trabajando con tablas muy grandes, y el tiempo de respuesta del sistema debe de ser muy pequeño por lo que estoy tratando de optimizar este cálculo. Yo analizaba esa variante del campo calculado porque me di cuenta que estos funcionan MUCHO más rápido que los campos normales si tengo que moverme a lo largo de toda la tabla calculando y actualizando el saldo para cada registro de la tabla.
Yo comencé por es variante, pero es incluso mucho más lenta que si lleno el campo ejecutando una consulta SQL determinada.

Gracias de todos modos por tu respuesta,
Saludos,
Félix




Cita:
Empezado por diegoforever24
Que tal Amigo...

Ya comprendo tu problema. Pues mira, si tienes una bd con los campos (Fecha, debe, haber) y un campo calculado que es Saldo.

Si coincido con lo anterior, lo más seguro es que cada vez que se activa el OnCalcFields te hace un descuento adicional que no es el objetivo.

TE RECOMIENDO LO SIGUIENTES, pues a mi en la mayoría de los casos lo aplico.

Será crear un ciclo de tal manera que todos los campos sean locales (no calculados). y a la hora de involucrar el valor inicial (saldo inicial digitarlo en el primer registro.


Ejemplo:

Procedure Calculos;

var
NuevoSaldo:integer

begin


Tabla1.First // Ubicar la tabla en el primer registro.

NuevoSaldo:=tabla1Saldo.AsInteger;

Tabla1.Next; // para cambiar al siguiente registro
While not Tabla1.EOF do /// Mientras no sea fin de archivo en la tabla hacer
begin
tabla1Saldo.asInteger:=NuevoSaldo+tabla1debe.Asinteger-tabla1haber
NuevoSaldo:=NuevoSaldo+tabla1debe.Asinteger-tabla1haber
Tabla1.next;
end;

end;

//////////// Ubicar "calculos" en el evento OncalcFields o en otro momento, por ejemplo un botón Calcular, etc.

Espero que no te parezca muy complicado y te pueda servir. Así tengo funcionando varios programas con calculos similares, incluso fechas y utilizando Sql.

Saludos
Responder Con Cita