FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
Campos calculados y ADOQuery
Hola
Estoy haciendo un sistema de gestion , y queria hacer una cuenta corriente. En mi form tengo una grilla , que muestra el resultado de mi query . Este devuelve una columna debe y otra haber , lo que quiero es calcular el saldo por cada fila de la consulta. Esto lo intentaba resolver desde mi query pero no pude hacerlo , luego se me ocurrio que podia usar un campo calculado. Esto funciona, pero al hacer foco sobre la grilla y moverme por ella se dispara el evento OnCalculate y me arruina las cosas . Miramdo la ayuda decia que si la propiedad AutoCalField estava en Falso esto no ocurriria , pero no es asi . Alguien sabe porque, o sabe otra forma de resolver esto. PD:Lo que yo esperaba como resultado en la grilla era Haber Debe Saldo 10 0 10 5 0 15 ...................... ................ |
#2
|
||||
|
||||
¿Como estás haciendo el cálculo en el evento OnCalcFields? (Sería bueno que pusieras algo de código para ver donde estaría el error)
Saludos! |
#3
|
|||
|
|||
Este es el código del evento, donde PSaldoCta es una propiedad para sostener la suma.
procedure TmoduloDato2.ResumenVtaCalcFields(DataSet: TDataSet); begin PSaldoCta := PSaldoCta + ((ResumenVta.FieldByName('Debe').value) - (ResumenVta.FieldByName('Haber').value)) ; ResumenVta.FieldByName('Saldo').value := PSaldoCta ; end; Reitero que el problema es que al mover el cursor en forma vertical, se dispara nuevamente el cáculo. En la ayuda dice que si la propiedad AutoCalcFields = falso este comportamiento no debería existir, o sea el evento OnCalculate no se debería disparar. ??? Gracias por ocuparte |
|
|
|