Tengo un problema al recorrer los registros de un Grid que no consigo solucionar.
Lo que tengo es un listado de facturas y quiero recorrer los registros que selecciono y mostrar en un label la suma de los registros seleccionados.
con este codigo funciona bien pero lo que ocurre es que el grid se va moviendo cuando selecciono los registros que están muy abajo y me gustaría que el grid se quedara exactamente en la misma posición.
Código Delphi
[-]
begin
Temp:=0;
PBookmark:=Q.GetBookmark;
Q.DisableControls;
for i:=0 to DBG1.SelectedRows.Count-1 do
begin
Q.GotoBookmark(pointer(DBG1.SelectedRows.Items[i]));
Temp:=Temp+Q.fieldbyName('total').AsFloat;
end;
ResultadoParcial.Caption:=' : '+FormatFloat('#,##0.00 €',Temp)+' Reg: '+IntToStr(DBG1.SelectedRows.Count);
Q.GotoBookmark(PBookmark);
Q.FreeBookmark(PBookmark);
end;
Probé con este otro código pero al recorrer los registros cuando estaban ordenados por fecha descendentemente no se recorrian correctamente (se posiciobnaba en otro registro y no se porqué)
Código Delphi
[-]
begin
Temp:=0;
Q2.Close;
Q2.SQL.Assign(Q.SQL);
Q2.Open;
for i:=0 to DBG1.SelectedRows.Count-1 do
begin
Q2.GotoBookmark(pointer(DBG1.SelectedRows.Items[i]));
Temp:=Temp+Q2.fieldbyName('total').AsFloat;
end;
ResultadoParcial.Caption:=' : '+FormatFloat('#,##0.00 €',Temp)+' Reg: '+IntToStr(DBG1.SelectedRows.Count);
end;
Gracias.