PDA

Ver la Versión Completa : suma de campos calculados


pabloparra
12-03-2008, 22:14:12
Hola a Todos,

Necesito sumar unos campos calculados de una tabla detalle, para lograrlo sumo los campos en el evento afterscroll del query maestro empleando el siguiente procedimiento sumartotal. Además empleo una grilla SMDBGrid la cual tiene un footer que me permite visulializar los resultados de una manera muy presentable.

procedure TDtmMezcla.sumartotal(); //Procedimiento para sumar campos
var i:Integer;
SavePlace: TBookmark;
sumcsto:Double;
begin
with Querydetficha do begin
SavePlace := GetBookmark;
Disablecontrols;
try
sumcsto:=0; //inicializo el acumulador
pesoxtan:=sumcspt;
First;
while not eof do
begin
sumcsto:= Round_nDec(sumcsto+QuerydetfichaDET_CANT.Value,3); //otras operaciones
next;
end;
finally
GotoBookmark(SavePlace);
FreeBookmark(SavePlace);
Enablecontrols;
for i := 0 to FrmTabla2.DBGficha.Columns.Count-1 do
begin
with FrmTabla2.DBGficha.Columns[i] do
begin
if (FieldName = 'DET_CANT') then
FooterValue := FloatToStrF(sumcsto, ffNumber, 6,3);
end;
end;
end;
end;


el problema es que necesito generar otro campo calculado el cual realiza los cálculos a partir de la suma del primer campo(sumcsto), los valores de este nuevo campo me dan bien pero no consigo aún sumar los datos de este nuevo campo porque no se que evento invocar ya que el debe primero sumar todos los campos calculados del primero y con este dato calcular el otro campo.

La grilla SMDBGrid en la editor de campos tiene unas propiedades relacionadas con el footer tales como footertype(suma,promedio,ect)
y footertext pero al emplearlas ella no me hace la suma automática, motivo por el cual utilizo el anterior procedimiento. Podría alguien colaborarme para lograr el sumar este nuevo campo, o si la grilla lo hace automáticamente podrían indicarme como?.

Gracias ;