![]() |
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:
Wie kann ich nun aber für jede Row eine unter Gruppe hinzufügen?
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; |
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. |
AW: Devexpress Grid: Grouped per Code
Hast du da einen kleinen BeispielCode für die Zuweisung?
|
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. |
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 23:15 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