Ver Mensaje Individual
  #5  
Antiguo 31-12-2015
Avatar de AgustinOrtu
[AgustinOrtu] AgustinOrtu is offline
Miembro Premium
NULL
 
Registrado: ago 2013
Ubicación: Argentina
Posts: 1.858
Reputación: 15
AgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en bruto
Cita:
Empezado por Osorio Ver Mensaje
Te quedaria algo asi como esto:

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

    Result := Suma;
  end;
end;

Yo tenia una funcion casi identica a esta y me resultaba lenta, y tuve que optar por hacer el SUM dentro del query; pase de "un ratito" a "instantaneo" basicamente; asi que esta solucion hay que probarla con muchos registros o si se sabe que son pocos entonces no hay problema
Responder Con Cita