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.