Schönen guten Abend,
eine Frage an die QuantumGrid Experten hier im Forum.
Wie schafft man es, ein MasterDetail Grid, in dem das MasterGrid nach einem Feld gruppiert ist und das
Detailgrid nach einem Datumsfeld gruppiert ist, entweder komplett "auszuklappen" (also FullExpand) oder,
was besser wäre, nur die Detaildatensätze des ausgewählten Masterrecord.
Mit folgenden Code klappt die Gruppe des Master aus:
Delphi-Quellcode:
{ alle Profildatensätze ausklappen }
if s then tvProfilTB.DataController.Groups.FullExpand else
tvProfilTB.DataController.Groups.FullCollapse;
Dabei bleiben aber die Detailverbindungen noch geschlossen. Die bekomme ich in einer Schleife durch alle
Masterdatensätze auf.
Und dann müssten noch die Datensätze der Datumsgruppe aufklappen. Das geht
aber nicht. Und das andere gefällt mir eigentlich auch nicht so, da viel zu langsam. Das Ganze sieht dann
wie folgt aus:
Delphi-Quellcode:
try
{ alle Profildatensätze einmal durchlaufen }
iProfileRecords := tvProfilTB.DataController.DataSetRecordCount;
i := 1;
{ zunächst auf das erste Profil positionieren }
tvProfilTB.DataController.GotoFirst;
while i <= iProfileRecords do
begin
{ dann den Detailsatz des Profils ausklappen und }
tvProfilTB.Controller.FocusedRecord.Expanded := s;
{ Hier wollte ich irgendwie die Views wechseln }
{ es sieht so aus, als ob die Detaildatensätze }
{ nicht ausklappen, weil der Fokus sozusagen }
{ nicht auf dem Detaildatensätzen liegt. }
{ Klappt aber nicht: }
cxTagebuch.FocusedView := tvTagebuch;
{ ... die Tagebuchdatensätze gruppiert nach Datum }
if s then tvTagebuch.DataController.Groups.FullExpand else
tvTagebuch.DataController.Groups.FullCollapse;
cxTagebuch.FocusedView := tvProfilTB;
{ bis hier }
{ das nächste Profil }
tvProfilTB.DataController.GotoNext;
Inc(i);
end; // while
tvProfilTB.DataController.GotoFirst;
finally
{ wieder die Eingabeelemente aktivieren }
DIAProfile.EnableControls;
end;
Wie gesagt, die Masterdatensätze klappen aus und wieder zusammen, die Detaildatensätze bleiben eingeklappt.
Hat einer eine Idee? Danke für eure Hilfe.