Ver Mensaje Individual
  #1  
Antiguo 31-12-2015
wilcg wilcg is offline
Miembro
 
Registrado: abr 2014
Posts: 107
Reputación: 11
wilcg Va por buen camino
Alternativa a los campos agregados en un TQuery

hola amigos del foro, mi consulta es la siguiente.
Que alternativa usar a los campos agregados (aggregate) si uso un TQuery, tengo entendido que tales campos son exclusivos de un TClientDataset.
Necesito multiplicar 2 campos y sumar el resultado de todos los registros de una tabla, he creado esta función para realizar el trabajo. Y se ejecuta desde los eventos AfterOpen, AfterRefresh del TQuery, Y funciona muy bien.
Pero hay algo que no me agrada, y es el movimiento del indicador que se genera en el DBGrid al ejecutarse la funcion en el momento que se realiza una consulta de busqueda. Es por eso que quiero otra alternativa.

Código Delphi [-]
function TfProductos.SumarDBGrid :Currency;
Var
  Suma: Double;
  Cantidad, Costo: TField;
  Marca : TBookmark;
begin
  Suma := 0;
  with Query1 do begin
    Marca := Bookmark;
    Cantidad := FieldByName('cantidad');
    Costo := FieldByName('costo');
    First;
    while Not EoF do begin
      Suma := Suma + (Costo.AsFloat*Cantidad.AsFloat);
      Next;
    end;
    Bookmark := Marca;
    Result := Suma;
  end;
end;

Código Delphi [-]
txtTotalCosto.Value := SumarDBGrid;
Responder Con Cita