von hirse » Fr, 22.08.2008 19:58
Ich habe jetzt selbst einen ersten Schritt zu einer Lösung gefunden, nachdem 53 User auch keine Idee hatten ... vielleicht war es die falsche Kategorie, weil für die Lösung ein Makro (Starbasic) notwendig ist. Aber vorab frage ich mich, warum so eine elementare Funktion in OpenOffice nicht drin ist und an wen man sich wenden kann, damit so etwas in Zukunft mit Assistenten gemacht werden kann.
Jetzt ist das Formular so aufgebaut: im Hauptformular ("Standard") ist eine Tabelle mit den Klassen und Fächern. Im Unterformular ("SubForm") gibt es ein Listenfeld, das die Klassen (und die IDs) enthält ... mit einem Kombinationsfeld hatte ich keinen Erfolg. Unterformular und Hauptformular sind nicht verknüpft. Ich hatte es mit einem Assistenten erstellt und danach die Verbindung im Unterformular wieder gelöscht. Dann noch im Listenfeld bei "modifiziert" dieses Makro ComTabSel aufrufen:
Code: Alles auswählen
Sub Main
End Sub
Sub ComTabSel(oEvent)
Dim oEreignis, oFormular, oComboBox, oTable, oDoc, sFilter as String, n
oFormular = thisComponent.drawpage.forms.getbyindex(0)
oSubForm = oFormular.getByName("Subform")
oComboBoxModel = oEvent.Source.getModel()
sFilter = oComboBoxModel.StringItemList(oComboBoxModel.SelectedItems(0))
oFormular.filter = "Klasse = " & "'" & sFilter & "'"
oFormular.reload
End Sub
Dann wird bei jeder Änderung im Listenfeld, der Filter in der Tabelle neu gesetzt und nur noch die Fächer dieser Klasse angezeigt.
Die Bezeichnung oComboBoxModel kommt noch daher, weil ich es zuerst mit einem Kombinationsfeld versucht hatte.
Ich hoffe, es hat jemandem geholfen.
Ich habe jetzt selbst einen ersten Schritt zu einer Lösung gefunden, nachdem 53 User auch keine Idee hatten ... vielleicht war es die falsche Kategorie, weil für die Lösung ein Makro (Starbasic) notwendig ist. Aber vorab frage ich mich, warum so eine elementare Funktion in OpenOffice nicht drin ist und an wen man sich wenden kann, damit so etwas in Zukunft mit Assistenten gemacht werden kann.
Jetzt ist das Formular so aufgebaut: im Hauptformular ("Standard") ist eine Tabelle mit den Klassen und Fächern. Im Unterformular ("SubForm") gibt es ein Listenfeld, das die Klassen (und die IDs) enthält ... mit einem Kombinationsfeld hatte ich keinen Erfolg. Unterformular und Hauptformular sind nicht verknüpft. Ich hatte es mit einem Assistenten erstellt und danach die Verbindung im Unterformular wieder gelöscht. Dann noch im Listenfeld bei "modifiziert" dieses Makro ComTabSel aufrufen:
[code]
Sub Main
End Sub
Sub ComTabSel(oEvent)
Dim oEreignis, oFormular, oComboBox, oTable, oDoc, sFilter as String, n
oFormular = thisComponent.drawpage.forms.getbyindex(0)
oSubForm = oFormular.getByName("Subform")
oComboBoxModel = oEvent.Source.getModel()
sFilter = oComboBoxModel.StringItemList(oComboBoxModel.SelectedItems(0))
oFormular.filter = "Klasse = " & "'" & sFilter & "'"
oFormular.reload
End Sub
[/code]
Dann wird bei jeder Änderung im Listenfeld, der Filter in der Tabelle neu gesetzt und nur noch die Fächer dieser Klasse angezeigt.
Die Bezeichnung oComboBoxModel kommt noch daher, weil ich es zuerst mit einem Kombinationsfeld versucht hatte.
Ich hoffe, es hat jemandem geholfen.