Ver Mensaje Individual
  #9  
Antiguo 05-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
Cita:
Empezado por glopez Ver Mensaje
Entonces después de seleccionar varios registros y ejecutarse el código anterior para recorrer los registros seleccionados y sumarlos (sólo los seleccionados). Puede que el primer registro que tenga visible ahora no sea la Factura 1 si no la 3 y la última la 33. Es decir los registros se han desplazado un poco hacia arriba. Espero haberme explicado bien. Gracias.
Hola glopez.

Humm, sigo con la duda de haber entendido bién lo que buscas. Según entiendo deseas que cuando termines de seleccionar varios registros desde el DBGrid, haya hecho los scrolls que fueran, vuelva a posicionarse en el primero de la seleccion.

Si es así, creo que tendrías que hacer algo como:
Código Delphi [-]
...
var
  i: Integer;
  BM: TBookmark;
  Total: Double;
begin
  if DBGrid1.SelectedRows.Count > 0 then
  begin
    Total:= 0;
    BM:= DataSet.GetBookmark;
    try
      for i:= 0 to DBGrid1.SelectedRows.Count-1 do
      begin
        DataSet.GotoBookmark(Pointer(DBGrid1.SelectedRows[i]));
        Total:= Total + DataSet.FieldByName('FLOTANTE').AsFloat;
      end;
    finally
      DataSet.GotoBookmark(Pointer(DBGrid1.SelectedRows[0]));
      DataSet.FreeBookmark(BM);
    end;
    Label1.Caption:= FloatToStr(Total);
  end;
end;

Un saludo.
__________________
Daniel Didriksen

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