Ver Mensaje Individual
  #2  
Antiguo 18-07-2008
Avatar de Caro
*Caro* Caro is offline
Moderadora
 
Registrado: jul 2004
Ubicación: Cochabamba, Bolivia
Posts: 2.544
Reputación: 24
Caro Va por buen camino
Hola HombreGordo, si lo haces como te indica marcoszorrilla, también deberías tomar encuenta los procedimientos EnableControl, DisableControl, para no ver el movimiento por los registros de tu DBGrid y los demas que esten enlazados a tu DataSet mientras se ejecuta tu While. Otra cosita, como recorres hasta el ultimo, el puntero del registro estara en el ultimo, para ello puedes utilizar un BookMark para tener una marca que te guardara la posicion del registro actual y luego de recorrer regresar a la posición de dicho registro.

Código Delphi [-]
var
  TotalGanancias : Currency;
  Marca : TBookMarkStr;
begin
 TotalGanancias := 0;

 Marca := MiTabla.Bookmark;//Almacenamos la posición del registro actual en nuestra marca
 MiTabla.DisableControls;//Deshabilitamos los controles enlazados a nuestro  DataSet

 MiTabla.First;
 While Not MiTabla.Eof do
  begin
   TotalGanancias := TotalGanancias + MiTabla.FieldbyName('ganancias').ASCurrency;
   MiTabla.Next;
  end;

 MiTabla.EnableControls;//Habilitamos nuevamente los controles 
 MiTabla.Bookmark := Marca;//Restauramos a la posición del registro de nuestra marca
 Showmessage(CurrToStr(TotalGanancias));

Saluditos
__________________
Disfruten cada minuto de su vida a lado de sus seres queridos como si fuese el ultimo, uno nunca sabe lo que puede pasar.

Última edición por Caro fecha: 18-07-2008 a las 13:08:05.
Responder Con Cita