Einzelnen Beitrag anzeigen

Eppos

Registriert seit: 7. Aug 2006
Ort: Heilbronn
523 Beiträge
 
Delphi 11 Alexandria
 
#1

TDBAdvGrid Problem beim markieren von mehreren Zeilen

  Alt 12. Mär 2008, 08:38
Datenbank: Firebird • Version: 1.5 • Zugriff über: bde
Hallo zusammen,

ich habe ein Problem mehrere Zeilen zu markieren. Das Grid lässt es zwar zu, aber wenn ich dann was drucken möchte und ich eine Schleife durchlaufen lassen möchte, springt er einfach an den Anfang zurück.

Beispiel:
Zu sehen sind 100 Datensätze, auf meinen Bildschirm passen 25, ich scrolle nun etwas runter um zwischen den Datensätzen 30 und 55 zu stehen, dann markieren ich dort 5 st.
jetzt drücke ich auf meinen Button um diese zu drucken. Die schleife startet und schaut welche markiert sind, nur das grid fängt von vorne an, und somit sind meine markierungen auf die ersten 25 Datensätze verteilt und damit druckt er mir natürlich die Falschen Datensätze.

Meine Einstellungen
PageMode := True; (vor dem auslesen der markierten Datensätze, PageMode := True und nach dem Auslesen wieder PageMode := False
DBIndicator := True;

Meine Schleife:
Delphi-Quellcode:
procedure TPrintButton.GetIDFromSelectRowGrid(var vA:array of integer;
        vG : TGrid; vQ : TDataSet);
var i, y : integer; Rline : array of integer;
begin
  try
    vG.PageMode := false;
    for i := 1 to vG.RowCount do
    begin
      if vG.RowSelect[i-1] then
      begin
        y := Length(Rline)+1;
        SetLength( Rline, y);
        Rline[y-1] := i-1;
      end;
    end;
    vG.PageMode := true;

    vQ.DisableControls;

    for i := 0 to Length(Rline)-1 do
    begin
      vQ.First;
      vQ.MoveBy(Rline[i]-1);
      vA[i] := fDataSet.FieldByName('ID').AsInteger;
    end;
    vQ.EnableControls;

  except;
  end;
end;
Ich bitte um Hilfe, ich bin echt am verzeweifeln.

Vielen Dank.
  Mit Zitat antworten Zitat