Cita:
Empezado por glopez
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.