Ver Mensaje Individual
  #1  
Antiguo 04-10-2011
glopez glopez is offline
Miembro
 
Registrado: ago 2003
Ubicación: Huelva
Posts: 84
Reputación: 23
glopez Va por buen camino
Problema con GotoBookmark

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.
Responder Con Cita