Ver Mensaje Individual
  #11  
Antiguo 06-10-2011
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Reputación: 38
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola glopez.

Soy medio duro de mollera pero ahora creo que te entendí...

Una solución que se me ocurre es crearte al vuelo una consulta apuntando a la misma tabla y obtener el dato de ella utilizando el BookmarkList del DBGrid:
(asumo que la tabla involucrada se llama: TU_TABLA)
Código Delphi [-]
procedure TForm1.btnTotalClick(Sender: TObject);
var
  BM: TBookMark;
  i: Integer;
  Tot: Double;
begin
  with TIBQuery.Create(nil) do   // Crear consulta 
  try
    Database:= IBDatabase1;    // Asignar Database 
    Close;
    SQL.Text:= 'SELECT TOTAL FROM TU_TABLA'; // Seleccionar sólo campo a sumar
    Open;
    Tot:= 0;
    for i:= 0 to DBGrid1.SelectedRows.Count-1 do
    begin
      GotoBookmark(Pointer(DBGrid1.SelectedRows[i])); // Posicionarse
      Tot:= Tot + FieldByName('TOTAL').AsFloat;       // acumular
    end;
  finally
    Free;
  end;
  Caption:= FloatToStr(Tot);  // mostrar acumulador
end;
Al no realizarse posicionamiento sobre la consulta relacionada al TDBGrid, este permanecerá inamovible.


Como no especificaste con que motor de BD ni componentes estas trabajando hice el ejemplo con Firebird/IBX, reemplazá por los componentes que utilices.

Un saludo.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita