Ver Mensaje Individual
  #2  
Antiguo 17-09-2003
andres1569 andres1569 is offline
Miembro
 
Registrado: may 2003
Posts: 908
Reputación: 22
andres1569 Va por buen camino
Hola:

Creo que todos alguna vez hemos pensado en usar de esa forma los campos calculados para mostrar un acumulado. El problema es que esos cálculos se disparan en muy diversas circunstancias, aunque la primera vez que muestras el Grid, se calculan en orden secuencial, según el orden en que esté el Dataset, y todo funciona bien. Luego, una vez que navegas y editas, insertas ...etc, se calcula cada vez ese valor para el resgitro correspondiente, de modo que no te sirve para tus fines.

Casi te aconsejaría que guardases ese valor acumulado en la misma tabla física, pero esto presenta el inconveniente de que debes actualizarlo cada vez que se modifica un registro y/o sus precedentes. O bien, si no va a resultar demasiado lento, en el OnCalcFields del campo que ahora tienes definido como calculado, lanzar una consulta SQL que te devuelva el acumulado, o recorrer otra tabla que tengas abierta, algo así como un Dataset adyacente y que actualices junto al que usas en el DBGrid, y hacer tú mismo ese recorrido y el sumatorio.

Otra cosa ahora no se me ocurre, a ver si te sirve. Por cierto, este tema pertenece al Hilo de Conexíón con Bases de Datos

Saludos
__________________
Guía de Estilo
Responder Con Cita