AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Devexpress Grid: Grouped per Code

Ein Thema von Youuuu · begonnen am 16. Jul 2020 · letzter Beitrag vom 16. Jul 2020
Antwort Antwort
Youuuu

Registriert seit: 9. Okt 2016
60 Beiträge
 
Delphi 11 Alexandria
 
#1

Devexpress Grid: Grouped per Code

  Alt 16. Jul 2020, 07:42
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?
Miniaturansicht angehängter Grafiken
gr.png  
  Mit Zitat antworten Zitat
Benutzerbild von Nersgatt
Nersgatt

Registriert seit: 12. Sep 2008
Ort: Emlichheim
693 Beiträge
 
Delphi 10.1 Berlin Professional
 
#2

AW: Devexpress Grid: Grouped per Code

  Alt 16. Jul 2020, 09:03
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.
Jens
  Mit Zitat antworten Zitat
Youuuu

Registriert seit: 9. Okt 2016
60 Beiträge
 
Delphi 11 Alexandria
 
#3

AW: Devexpress Grid: Grouped per Code

  Alt 16. Jul 2020, 15:12
Hast du da einen kleinen BeispielCode für die Zuweisung?
  Mit Zitat antworten Zitat
Benutzerbild von Nersgatt
Nersgatt

Registriert seit: 12. Sep 2008
Ort: Emlichheim
693 Beiträge
 
Delphi 10.1 Berlin Professional
 
#4

AW: Devexpress Grid: Grouped per Code

  Alt 16. Jul 2020, 15:31
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.
Jens
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.135 Beiträge
 
Delphi 12 Athens
 
#5

AW: Devexpress Grid: Grouped per Code

  Alt 16. Jul 2020, 16:52
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?
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests

Geändert von himitsu (16. Jul 2020 um 17:19 Uhr)
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:19 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