Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Quantum Grid: Prüfen ob Gruppe aufgeklappt (https://www.delphipraxis.net/171169-quantum-grid-pruefen-ob-gruppe-aufgeklappt.html)

Mazen 24. Okt 2012 09:56

Quantum Grid: Prüfen ob Gruppe aufgeklappt
 
Hallo Leute.

Folgendes Problem:
Ich habe meine Tabelle nach einer bestimmten Spalte gruppiert. Mit "tvBesucher.DataController.Groups.FullExpand" oder "tvBesucher.DataController.Groups.FullCollapse " lassen sich jetzt sämtliche Gruppierungen auf- oder zuklappen. Problem ist aber das ich nicht immer alle auf- oder zuklappen will.
Ich weiß das ich mit "tvBesucher.DataController.Groups.ChangeExpand ing" eine einzelne Gruppe auf- und zuklappen kann, was ja schon das Verhalten ist was ich haben möchte.
Nur gibt es leider keine Funktion wie etwa "tvBesucher.DataController.Groups.IsExpanded(Index )" die mir z.B. einen Boolean zurückgibt ob die Gruppe grade auf- oder zugeklappt ist. Das wäre sinnvoller wenn der Benutzer z.B. ein paar Gruppen zuklappt weil er sie zur Zeit nicht braucht.
Problem ist das ich ab und zu ein "RefreshTable" auf meine Datasource machen muss und er dabei automatisch alle wieder zuklappt :?

Hat da jemand eine Idee?

Bummi 24. Okt 2012 11:59

AW: Quantum Grid: Prüfen ob Gruppe aufgeklappt
 
Ich habe es jetzt nicht ausprobiert aber IMHO müsste man über
Delphi-Quellcode:
    view.DataController.DataControllerInfo.DataGroups.Items[x].Expanded
an die Information kommen ....

Mazen 24. Okt 2012 13:15

AW: Quantum Grid: Prüfen ob Gruppe aufgeklappt
 
Super, das hat schonmal geklappt :)
Nur hab ich jetzt ein anderes Problem. Und zwar mit der Funktion

Code:
tvBesucher.DataController.Groups.ChangeExpanding(int,boolean,boolean);
Diese Funktion funktioniert solange wunderbar bis man sie mehrmals nacheinander aufrufen will.
Also
Code:
tvBesucher.DataController.Groups.ChangeExpanding(0,true,false);
würde wie erhofft die erste Gruppe aufklappen...
Und
Code:
tvBesucher.DataController.Groups.ChangeExpanding(1,true,false);
würde wie erhofft die zweite Gruppe aufklappen.
usw...

Aber
Code:
tvBesucher.DataController.Groups.ChangeExpanding(0,true,false);
tvBesucher.DataController.Groups.ChangeExpanding(1,true,false);
Klappt nur die erste auf.

Und
Code:
tvBesucher.DataController.Groups.ChangeExpanding(0,true,false);
tvBesucher.DataController.Groups.ChangeExpanding(1,true,false);
tvBesucher.DataController.Groups.ChangeExpanding(2,true,false);
Nur die ersten beiden.
Und wenn ich das hier jetzt weiter führe öffnet er immer nur die ersten beiden.

Und um mich gänzlich zu verwirren würde
Code:
tvBesucher.DataController.Groups.ChangeExpanding(0,true,false);
tvBesucher.DataController.Groups.ChangeExpanding(3,true,false);
Die erste und dritte Gruppe öffnen Oo

Gibt es da irgendeine Regelmäßigkeit die ich einfach nicht sehe? Oo

Nersgatt 24. Okt 2012 13:55

AW: Quantum Grid: Prüfen ob Gruppe aufgeklappt
 
Der erste Parameter ist der RowIndex von dem ersten Datensatz IN der Gruppe. Das ist kein Gruppenindex. Du musst also jeweils den RowIndex von der ersten Zeile in der Gruppe angeben, die Du aufklappen möchtest.

Bummi 24. Okt 2012 13:58

AW: Quantum Grid: Prüfen ob Gruppe aufgeklappt
 
Versuch es mal in absteigender Reihenfolge

Mazen 24. Okt 2012 14:43

AW: Quantum Grid: Prüfen ob Gruppe aufgeklappt
 
Zitat:

Zitat von Nersgatt (Beitrag 1188169)
Der erste Parameter ist der RowIndex von dem ersten Datensatz IN der Gruppe. Das ist kein Gruppenindex. Du musst also jeweils den RowIndex von der ersten Zeile in der Gruppe angeben, die Du aufklappen möchtest.

Klang im ersten Moment einleuchtend. Aber nach einem Test kanns dann doch nicht so sein.
Setzte ich "7" als RowIndex ein (was der erste Datensatz meiner 2ten Gruppe wäre) kommt "RowIndex out of range.". Obwohl meine Tabelle über 20 Datensätze enthält.

Zitat:

Zitat von Bummi (Beitrag 1188170)
Versuch es mal in absteigender Reihenfolge

Das sieht auf den ersten Blick echt gut aus. Werds mal ausgiebiger testen jetzt. Gibts dafür eine Erklärung das man absteigend vorgehen muss?

Bummi 24. Okt 2012 14:48

AW: Quantum Grid: Prüfen ob Gruppe aufgeklappt
 
Der Index scheint sich beim Expandieren zu verschieben...

Mazen 24. Okt 2012 14:58

AW: Quantum Grid: Prüfen ob Gruppe aufgeklappt
 
Hab die zählweise jetzt verstanden. Etwas umständlich wie ich finde aber okay. Wenn mans weiß gehts auch so.
Er zählt nicht nur die einzelnen Datensätze als "RowIndex" sondern auch die "Groupheader". Also eine Mischung aus beidem. Ich dachte ja erst er würde nur die Groupheader zählen. Und von Nersgatt kam ja die Idee mit den Rows.
Nur wenn ich jetzt ganz gezielt nur eine Group öffnen will, woher weiß ich in welcher "Zeile" diese Gruppe beginnt? Beispielsweise ich will Gruppe 3 öffnen, Gruppe 2 und 1 sind aber bereits offen und enthalten eine Variable Menge an Datensätzen.
Wie kommt mein Programm dann an den RowIndex von Groupheader 3?


Alle Zeitangaben in WEZ +1. Es ist jetzt 04:43 Uhr.

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