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/)
-   -   Devexpress Grid: Grouped per Code (https://www.delphipraxis.net/204942-devexpress-grid-grouped-per-code.html)

Youuuu 16. Jul 2020 07:42


Devexpress Grid: Grouped per Code
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hi Jungs,

ich fülle momentan mein Grid per Code auf und nicht durch eine DB Komponente.

Jetzt weiß ich aber nicht, wie ich dadurch ein Grouped Grid hinbekommen (Beispiel siehe Anhang).

Delphi-Quellcode:
var
  i,e : Integer;
Begin
  gridObjekteView.DataController.BeginFullUpdate;
  try
    gridObjekteView.DataController.RecordCount := 0; // Clearn
    gridObjekteView.DataController.RecordCount := High(ArrayObjekte) + 1;

    for i := 0 to High(ArrayObjekte) do begin                              // <------ Row
      for e := 0 to 4 do begin                                             // <----- Column
        gridObjekteView.DataController.SetValue(i, e, ArrayObjekte[i,e]);    
      end;
    end;
  finally
    gridObjekteView.DataController.EndFullUpdate;
  end;
End;
Wie kann ich nun aber für jede Row eine unter Gruppe hinzufügen?

Nersgatt 16. Jul 2020 09:03

AW: Devexpress Grid: Grouped per Code
 
Das Grid im Beispiel hat zwei Level. Das Level kannst Du im Designer hinzufügen. Das zweite Level bekommt dann eine eigene View.
In dem View des zweiten Levels kannst Du die Verknüpfung zum ersten View über DataController.MasterKeyFieldNames und DataController.DetailKeyFieldNames herstellen.

Youuuu 16. Jul 2020 15:12

AW: Devexpress Grid: Grouped per Code
 
Hast du da einen kleinen BeispielCode für die Zuweisung?

Nersgatt 16. Jul 2020 15:31

AW: Devexpress Grid: Grouped per Code
 
Hm, im Unbound Mode funktioniert das scheinbar etwas anders. Dort gibt es die von mir genannte Properties nicht (also im DataController eines TcxGridTableView). Ich war von einem TcxGridDBTableView ausgangen.
Wie es im UnboundMode funktioniert, ist in der Hilfe zu dem Grid unter "Task Based Help" -> "Unbound Mode: Master Detail" beschrieben.

himitsu 16. Jul 2020 16:52

AW: Devexpress Grid: Grouped per Code
 
Bei der Gruppierung ist es nur ein GridView mit DataSet Datenquelle.
Aber ja, hier ist das keine Gruppierung, sondern ein SubGrid.

Im DataController gibt es die Gruppierung doch noch nicht?
Dort sind nur zugrundeliegenden DataRecords drin und die Gruppen verwaltet der GridView von sich aus.
Im Controller die DataRows, da gibt es dann die GroupRows, welche eine "Kopie" der jeweils ersten enthaltenen DataRow darstellen. (bzw. die sind jeweils mit dem selben DataRecord verbunden)

Wie die Daten dort dann aber im DataController des zwei GridViews drin steheh ... gute Frage, denn da gibt es auch mehrere Modi, welche von DevExpress unterstützt werden.
Hier meine Erfahrungen mit DB-Komponenten:
* die Daten sind in einer Datenquelle und in den SubGrids wird via Filter jeweils ein Teil angezeigt
* in der DatenQuelle sind jeweils nur die Daten der aktuellen Zeile
* Die Datenquelle führt für jedes Subgrid ein SELECT mit entsprechendem WHERE aus, wo jeweils die passenden Datensätze geholt werden

* Aber die vielen "Kopien" des SubGrids pro Zeile im oberen GridView, denn in der Ansicht ist es nicht das eine GrviwView des Designers, sondern jeweils ein "Eigener", und womöglich hat jeder auch seinen eigenen DataController, denn du erstmal finden musst.





Vielleicht kommst es vom Handling her besser, einen Memory-DataSet zu verwenden und Diesen an dein DB-afines Grid zu hängen, anstatt den DataController manuell zu befüllen.
z.B. TClientDataSet oder TFDMemTable bzw. Local-SQL im FireDAC oder via DataBinding auf eine Objektliste.

Alternativ eben "wirklich" mit einer Gruppierung zu arbeiten, anstatt mit SubGrids.


Und warum eigentlich ein DBGridView, anstatt eines GridView, wo du doch die Daten manuell ohne DB-Komponenten ins Grid reinhackst?


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