AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Delphi In einem Grid auf den nächsten selektierten Datensatz gehen
Thema durchsuchen
Ansicht
Themen-Optionen

In einem Grid auf den nächsten selektierten Datensatz gehen

Ein Thema von Walter Landwehr · begonnen am 5. Mär 2016 · letzter Beitrag vom 6. Mär 2016
Antwort Antwort
Walter Landwehr

Registriert seit: 28. Mär 2006
Ort: 32816 Schieder-Schwalenberg
397 Beiträge
 
Delphi 10.4 Sydney
 
#1

In einem Grid auf den nächsten selektierten Datensatz gehen

  Alt 5. Mär 2016, 13:21
Hallo,
ich habe in einem TcxGrid von DevExpress mehrere Datensätze selektiert. Nun möchte ich per Klick auf
1. den ersten selektierten ... (First)
2. den nächsten selektierten ... (Next)
3. den vorherigen selektierten ... (Prior)
4. den letzten selektierten Datensatz anspringen. (Last)

Hat jemand einen Tipp wie das zu machen ist.
Walter Landwehr
Mfg

Walter

Geändert von Walter Landwehr ( 5. Mär 2016 um 13:33 Uhr)
  Mit Zitat antworten Zitat
vagtler

Registriert seit: 9. Jul 2010
Ort: Köln
667 Beiträge
 
Delphi 2010 Professional
 
#2

AW: In einem Grid auf den nächsten selektierten Datensatz gehen

  Alt 5. Mär 2016, 13:23
Was meinst Du mit "anspringen"?
  Mit Zitat antworten Zitat
Walter Landwehr

Registriert seit: 28. Mär 2006
Ort: 32816 Schieder-Schwalenberg
397 Beiträge
 
Delphi 10.4 Sydney
 
#3

AW: In einem Grid auf den nächsten selektierten Datensatz gehen

  Alt 5. Mär 2016, 13:31
Naja den Datensatz zum aktiven machen.
Walter Landwehr
Mfg

Walter
  Mit Zitat antworten Zitat
vagtler

Registriert seit: 9. Jul 2010
Ort: Köln
667 Beiträge
 
Delphi 2010 Professional
 
#4

AW: In einem Grid auf den nächsten selektierten Datensatz gehen

  Alt 5. Mär 2016, 13:34
http://stackoverflow.com/questions/3...a-field-column

In Deinem Fall sind es die SelectedRecords (siehe auch https://www.devexpress.com/Support/C...n/Details/A302).

Oder was willst Du genau erreichen?
  Mit Zitat antworten Zitat
Walter Landwehr

Registriert seit: 28. Mär 2006
Ort: 32816 Schieder-Schwalenberg
397 Beiträge
 
Delphi 10.4 Sydney
 
#5

AW: In einem Grid auf den nächsten selektierten Datensatz gehen

  Alt 5. Mär 2016, 14:04
Na ich dachte das hatte ich klar ausgedrückt. Ich will in einem Grid, indem mehrere Datensätze selektiert sind, entweder auf den ersten selektierten Datensatz gehen, oder den nächsten slektierten usw..
Walter Landwehr
Mfg

Walter

Geändert von Walter Landwehr ( 5. Mär 2016 um 14:09 Uhr)
  Mit Zitat antworten Zitat
nahpets
(Gast)

n/a Beiträge
 
#6

AW: In einem Grid auf den nächsten selektierten Datensatz gehen

  Alt 5. Mär 2016, 14:56
Man nehme vier Buttons:

1. für den ersten Datensatz
2. für einen Satz zurück
3. für einen Satz vor
4. für letzten Satz.

Beim DBGrid der Jedis gibt es dann folgende Eigenschaften bzw. Methoden:

GotoSelection(Variabel mit der Satznummer / dem Index)

SelectedRows.Count, der Anzahl der ausgewählten Sätze.

Für den 1. Satz macht man dann ein GoToSelection(0).
Zum letzten Satz geht's mit GoToSelection(SelectedRows.Count - 1)

Dann benötig man eine Variabel, in der man sich die Satznummer des aktuellen Satzes merkt.

Geht man auf den ersten Satz, so setzt man diese Variabel auf 0, beim letzten Satz auf SelectedRows.Count - 1.

Geht man einen Satz zurück, setzt man diese Variabel auf Variabel - 1, geht man einen Satz vor auf Variabel + 1.

Anschließend ruft man noch GotoSelection(Variabel) auf und sollte am gewünschten Ziel sein.

ungetesteter, nur so hingedaddelter, Quelltext:
Delphi-Quellcode:
type
  TForm1 = class(TForm)
    fSatzNummer : Integer;
...
    btnFirst: TButton;
    btnPrior: TButton;
    btnNext : TButton;
    btnLast : TButton;

...

// Diese Ereignisroutine allen Buttons auf OnClick zuweisen:
procedure TForm1.BtnSelect(Sender: TObject);
begin
  if Sender = btnFirst then fSatzNummer := 0
  else if Sender = btnPrior then Dec(fSatzNummer)
  else if Sender = btnNext then Inc(fSatzNummer)
  else if Sender = btnLast then fSatzNummer := dbGrid.SelectedRows.Count - 1;
  dbGrid.GotoSelection(fSatzNummer);
end;
  Mit Zitat antworten Zitat
vagtler

Registriert seit: 9. Jul 2010
Ort: Köln
667 Beiträge
 
Delphi 2010 Professional
 
#7

AW: In einem Grid auf den nächsten selektierten Datensatz gehen

  Alt 5. Mär 2016, 15:05
Na ich dachte das hatte ich klar ausgedrückt. Ich will in einem Grid, indem mehrere Datensätze selektiert sind, entweder auf den ersten selektierten Datensatz gehen, oder den nächsten slektierten usw..
Und wo ist - unter Berücksichtigung der genannten Links - jetzt genau das Problem?
  Mit Zitat antworten Zitat
EarlyBird

Registriert seit: 29. Mär 2007
235 Beiträge
 
#8

AW: In einem Grid auf den nächsten selektierten Datensatz gehen

  Alt 5. Mär 2016, 21:42
die Selektierten Datensätze findest Du in der Liste
Grid1DBTableView1.Controller.SelectedRecords

Grid1DBTableView1.Controller.SelectedRecords[0].Focused := True;

Damit kommst Du sicherlich schon weiter
  Mit Zitat antworten Zitat
Walter Landwehr

Registriert seit: 28. Mär 2006
Ort: 32816 Schieder-Schwalenberg
397 Beiträge
 
Delphi 10.4 Sydney
 
#9

AW: In einem Grid auf den nächsten selektierten Datensatz gehen

  Alt 6. Mär 2016, 09:36
Yes so geht es mit den DevExpress TcxGrid.

Delphi-Quellcode:
procedure TfrmSerienbrief.btnFirstClick(Sender: TObject);
begin
  if Sender = btnFirst then fSatzNummer := 0
  else if Sender = btnPrior then Dec(fSatzNummer)
  else if Sender = btnNext then Inc(fSatzNummer)
  else if Sender = btnLast then fSatzNummer := GridView.Controller.SelectedRowCount - 1;
  if (fSatzNummer > GridtView.Controller.SelectedRowCount - 1) then
    Dec(fSatzNummer);
  if (fSatzNummer < 0) then
    fSatzNummer := 0;
  GridView.Controller.SelectedRecords[fSatzNummer].Focused := True;
end;
Vielen Dank an alle.
Walter Landwehr
Mfg

Walter
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:43 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