Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi DevExpress FullExpand Master/Detail mit gruppierten Feldern (https://www.delphipraxis.net/60504-devexpress-fullexpand-master-detail-mit-gruppierten-feldern.html)

AirJordan 7. Jan 2006 22:40


DevExpress FullExpand Master/Detail mit gruppierten Feldern
 
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. :roll: 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.

alzaimar 9. Jan 2006 07:14

Re: DevExpress FullExpand Master/Detail mit gruppierten Feld
 
Über MyView.Clones hast Du, glaube ich, Zugriff auf alle Detailviews. Aber wenn Du die Eigenschaften Pattern-View (IsPattern=True) der Details änderst (z.B. mit Expanded), solltest Du über ClearDetails diese Änderungen an alle Detailviews übertragen können. Steht jedenfalls so in der Hilfe. Ausprobiert hab ich's aber nicht.

AirJordan 9. Jan 2006 08:46

Re: DevExpress FullExpand Master/Detail mit gruppierten Feld
 
Liste der Anhänge anzeigen (Anzahl: 2)
Hallo Alzaimar,

vielen Dank für deine Antwort. Ich habe am Wochenende mich durch die Newsgroup durchgebissen und einige nützliche
Hinweise und Tipps erhalten. Wie folgt habe ich das Problem fast! lösen können.

Delphi-Quellcode:
try
  { alle Profildatensätze ausklappen }
  if s then tvProfilTB.DataController.Groups.FullExpand else
            tvProfilTB.DataController.Groups.FullCollapse;

  { alle Tagebuchdatensätze ausklappen }
  for i := 0 to tvTagebuch.CloneCount - 1 do
    if s then tvTagebuch.Clones[i].DataController.Groups.FullExpand else
              tvTagebuch.Clones[i].DataController.Groups.FullCollapse;
finally
  { wieder die Eingabeelemente aktivieren }
  DIAProfile.EnableControls;
end;
Wenn man sich auf einem Masterdatensatz befindet und den Schalter zum Ausklappen drückt klappen nur die Gruppenfelder
des Master aus. :? Wenn man jetzt aber einen Master auswählt, der auch Detaildatensätze hat, dann bleiben die Detail-
sätze zwar unausgeklappt, aber nach dem Drücken des "Plus" sind dennoch alle Gruppen der Detaildatansätze ausgeklappt.

Ich hoffe man versteht mich... :roll: Ansonsten die beiden Hardcopys mal anschauen.


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:45 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