Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi TDBAdvGrid Problem beim markieren von mehreren Zeilen (https://www.delphipraxis.net/110045-tdbadvgrid-problem-beim-markieren-von-mehreren-zeilen.html)

Eppos 12. Mär 2008 07:38

Datenbank: Firebird • Version: 1.5 • Zugriff über: bde

TDBAdvGrid Problem beim markieren von mehreren Zeilen
 
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.

Eppos 12. Mär 2008 10:09

Re: TDBAdvGrid Problem beim markieren von mehreren Zeilen
 
mir würde auch schon reichen, wenn mir jemadn sagen könnte, wie ich den DBIndicator beim Klick auf eine Row dort hin setzten kann?!


Alle Zeitangaben in WEZ +1. Es ist jetzt 07:37 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz