Hallo Jörg,
ich habe das jetzt hingekriegt. Auf die Lösung hat mich die Bemerkung in
https://api.libreoffice.org/docs/idl/ref/servicecom_1_1sun_1_1star_1_1awt_1_1grid_1_1SortableGridDataModel.html#details
gebracht, wo gesagt wird, dass man ein sekundäres Datenmodell brauche,
und die Fehlermeldung, dass die Initialisierung fehle.
Du kennst ja nach deiner Aussage das Vorgehen für eine nicht sortierbare
Tabelle, daher nenne ich nur die Änderungen:
statt
oDataModel =
createUnoService("com.sun.star.awt.grid.DefaultGridDataModel")
habe ich verwendet:
dim oDataModelSek as object
oDataModel*S**ek***=
createUnoService("com.sun.star.awt.grid.DefaultGridDataModel")
oDataModel =
createUnoService("com.sun.star.awt.grid.SortableGridDataModel")
oDataModel.initialize(array(oDataModel*Sek*))
und die Zeile
oDataModel.addRow(.Columns.getByIndex(0).value, arrColumns)
ersetzt durch
oDataModel*Sek*.addRow(.Columns.getByIndex(0).value, arrColumns)
Ich interpretiere das so, dass das bisher verwendete DataModel nun die
Basis im Hintergrund ist, in die die Daten geschrieben werden, und dass
zwischen dieses und die Benutzeroberfläche nun das neue zum Sortieren
dazwischengeschoben wird. Den Namen oDataModel habe ich für das neue
verwendet, weil die meisten Bezüge im Code auf dieses Objekt gehen, und
lieber das bisher verwendete umbenannt.
Durch Klicken auf den Spaltenkopf kann nach diesem sortiert werden,
weiteres Klicken auf den gleichen ändert die Sortreihenfolge; so wie man
es erwartet hätte.
Ich habe noch
oDataModel.sortByColumn(0, TRUE)
eingefügt, damit die Spalte, nach der sowieso aufgrund der
Datenbeschaffung aufsteigend sortiert ist, auch das Sortierdreieck erhält.
Gruß
Gerhard
Am 21.08.2021 um 08:28 schrieb Jörg Schmidt:
Hallo Gerhard,
-----Original Message-----
From: Gerhard Weydt [mailto:gerhard.weydt@t-online.de]
Sent: Saturday, August 21, 2021 1:10 AM
To: discuss@de.libreoffice.org
Subject: Re: [de-discuss] Nochmals Grid-Steuerelement in LO 7
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).
Meine Aussage war so zu verstehen das es ja, im gewohnten Stil seit OOo-Zeiten, auch ein "Grid2" hätte geben können, so
wie es "Chart2" gibt und einige "2" mehr.
Dass das Grid in einem Dialog sortierbar ist, ist ja wohl eine
fortgeschrittene Anforderung. Brauchst du sie?
Da ich jetzt von Ihrer Existenz weiß würde ich sie zukünftig nutzen wollen. Es gibt keinen
unmittelbaren Bedarf, aber da ich beruflich programmiere muss ich auch auch immer auf der Höhe der
aktuellen Entwicklung bleiben was mein Wissen betrifft.
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.