Ver Mensaje Individual
  #4  
Antiguo 14-08-2012
Avatar de anubis
anubis anubis is offline
Miembro
 
Registrado: mar 2007
Posts: 863
Reputación: 20
anubis Va por buen camino
Gracias Casimiro por contestar.

Mira, tengo una tabla llamada aceites que tiene:

clave. autoincrement
nombre, string
precio, integer
cantidad, integer

tengo un dbgrid que apunta a esa tabla de aceites que contiene:

nombre,
precio,
cantidad
y un campo calculado que añadi al query que multiplica el precio x cantidad.

a medida que voy metiendo cantidad en cada celda, el campo calculado me resuelve el total por fila.

La idea es que a medida que voy metiendo la cantidad y me resuelve el total por fila, queria que se fuera actualizando la suma de todas las cantidades del campo calculado para lo cual tuve que meter otro campo en el query para resolver esto, campo sumatorio.
Código Delphi [-]
aceites.close;  
ACEITES.SQL.Clear;   
ACEITES.SQL.Text:='SELECT SUM(PRECIO*cantidad) as sumatorio from aceites';  
ACEITES.OPEN;     
LABEL8.CAPTION:='$'+INTToStr(ACEITES.Fieldbyname('sumatorio').asINTEGER);     
ACEITES.SQL.CLEAR;     
ACEITES.SQL.TEXT:='SELECT * FROM ACEITES';   
aceites.Active:=true;

el único problema que veo, es que cada vez que meto una cantidad y salgo de la celda, me actualiza el sum anterior, pero me regresa al principio del dbgrid, y esto sería lógico porque cierro y abro el query (creo que no hay otra forma)

No se si esto debe ser asi o, como he visto en otros post, en vez de hacer un sum global (que nose si esta bien) debo de ir acumulandolo en una variable integer como:

Código Delphi [-]
sum:=sum+calculado;

Saludos y gracias
Responder Con Cita