- in der Basic-IDE erstellte Dialogdefinitionen, z.B. Dialogs/Standard/BatchFillDialog.xml (die dazu gehörenden Basic-Module sind vorerst noch in Basic/Standard/ gespeichert).
- Python-Scripts, die die Basic-Module ersetzen sollen, gespeichert in Scripts/python/start.py und toolbox.py.
- Die Scripts sind im Pfad, eine Funktion "msg_box" ist aus "toolbox.py" importiert.
Ich versuche, die Zuweisung eines Makros zu einem Dialogbutton in der Dialog-xml-Datei zu ändern. Dort steht:
Code: Alles auswählen
<dlg:button dlg:id="CBFill" dlg:tab-index="6" dlg:left="300" dlg:top="295" dlg:width="60" dlg:height="15" dlg:value="Ausfüllen">
<script:event script:event-name="on-performaction" script:macro-name="vnd.sun.star.script:Standard.Batches.OnClickFill?language=Basic&location=document" script:language="Script"/>
</dlg:button>
Code: Alles auswählen
def on_ok_test(*args):
msg_box(doc, 'OK', 'Test', INFOBOX)
Code: Alles auswählen
<script:event script:event-name="on-performaction" script:macro-name="vnd.sun.star.script:Scripts.python.start.on_ok_test?language=Python&location=document" script:language="Script"/>
Code: Alles auswählen
def dialog_example():
ctx = XSCRIPTCONTEXT.getComponentContext()
smgr = ctx.getServiceManager()
dp = smgr.createInstanceWithArguments("com.sun.star.awt.DialogProvider", tuple([doc]))
dialog = dp.createDialog('vnd.sun.star.script:Standard.BatchFillDialog?location=document')
dialog.execute()
dialog.dispose()
Zwar kann ich im Netz Beispiele für script:event-name finden (an denen ich mich orientiert habe), aber leider keine für script:language. Wenn ich dort z.B. "Python" verwende, wird der Dialog erst gar nicht geöffnet. Er läuft auf eine Exception.
Natürlich habe ich verschiedene Namenspfadvarianten ausprobiert. Es gelingt mir nicht.
Was läuft da falsch? Oder ist schon der Ansatz falsch?
Volker