Hallo Jörg,
ich denke schon, dass das
com.sun.star.awt.grid.SortableGridDataModel
das Passende ist, denn das DefaultGridDataModel und das
SortableGridDataModel sind laut API-Dokumentation Spezialisierungen des
MutableGridDataModel (Dass Xray immer "stardiv.Toolkit.GridDataModel"
anzeigt, heißt noch nichts, vermutlich bist du da bei einem anderen
Objekt, dem es egal ist, was drunter passiert). Bloß sind da wohl einige
zusätzliche Definitionen zu treffen, die beim DefaultModel implizit oder
nicht nötig sind, und die sind nicht ohne weiteres zu entdecken, da ist
die "Beschreibung" in der API-Doku für mein Wissen viel zu knapp.
Einfaches Ersetzen von
com.sun.star.awt.grid.DefaultGridColumnModel
durch
com.sun.star.awt.grid.SortableGridColumnModel
bringt dann beim Hinzufügen der Spalten zum DataModel:
oDataModel.addRow(.Columns.getByIndex(0).value, arrColumns)
den Fehler:
com.sun.star.lang.NotInitializedException
es fehlen also offensichtlich Festlegungen.
Bloß sehe ich mich selbst mangels Einblick in das Konzept nicht in der
Lage, zu erraten, was hier vorher noch zu definieren ist. Es gibt das
Interface XsortableGridData, das die Methoden zum Sortieren enthält,
aber wie das zu verknüpfen wäre, sehe ich nicht.
Dass das Grid in einem Dialog sortierbar ist, ist ja wohl eine
fortgeschrittene Anforderung. Brauchst du sie? In eingeschränkter Form
kannst du sie wohl auch ersetzen durch vorgegebene Optionen, aufgrund
deren du den Sort des SQL änderst, mit dem die Tabelle des Grid befüllt
wird.
Ich hätte aus grundsätzlichen Erwägungen ja auch gern gewusst, wie das
geht, aber brauchen tu ich das selber nicht.
Viele Grüße
Gerhard
Am 20.08.2021 um 09:01 schrieb Jörg Schmidt:
Hallo,
die direkt im Dialog-Designer eingefügten Grid-Steuerelemente verfügen per
Default in den Spaltenköpfen über kleine blaue 'Sortier-Dreiecke' (die sichtbar
werden wenn man auf den Spaltenkopf klickt) mit denen man
aufsteigend/absteigend sortieren kann.
Wie erzeuge ich diese Dreiecke bei einem per Code eingefügten Grid?
Ich finde mit XRAY nichts. Es können doch aber keine 'anderen' Grid sein (?), denn XRAY
zeigt für Beide "stardiv.Toolkit.GridControlModel" an.
In der API-Dokumentation finde ich einen Hinweis auf
com.sun.star.awt.grid.SortableGridDataModel, komme damit aber nicht weiter (und
weiß auch garnicht ob das damit zutun hat).
Meine Vermutung ist das es dafür garkeinen konkrete Einstellung gibt (i.S.
.ShowSortButtton=True) sondern das irgendeine Einstellung dazu führt das
nebenbei auch diese 'Sortier-Dreiecke' angezeigt werden.
Gruß
Jörg
--
Liste abmelden mit E-Mail an: discuss+unsubscr...@de.libreoffice.org
Probleme?
https://de.libreoffice.org/hilfe-kontakt/mailing-listen/abmeldung-liste/
Tipps zu Listenmails: https://wiki.documentfoundation.org/Netiquette/de
Listenarchiv: https://listarchives.libreoffice.org/de/discuss/
Datenschutzerklärung: https://www.documentfoundation.org/privacy