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+unsubscribe@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
Context
Privacy Policy |
Impressum (Legal Info) |
Copyright information: Unless otherwise specified, all text and images
on this website are licensed under the
Creative Commons Attribution-Share Alike 3.0 License.
This does not include the source code of LibreOffice, which is
licensed under the Mozilla Public License (
MPLv2).
"LibreOffice" and "The Document Foundation" are
registered trademarks of their corresponding registered owners or are
in actual use as trademarks in one or more countries. Their respective
logos and icons are also subject to international copyright laws. Use
thereof is explained in our
trademark policy.