Im Code habe ich für jeden Dialog eine eigene Klasse definiert und zusätzlich eine Superklasse zur Erzeugung eines Dialogs.
Die Superklasse:
Code: Alles auswählen
class Dialog:
"""
Superklasse für Dialoge, die im Dokument definiert sind.
"""
def __init__(self, actDoc, dlgName):
dialogProvider = uno.getComponentContext().ServiceManager\
.createInstanceWithArguments('com.sun.star.awt.DialogProvider',
(actDoc,))
self.dlgName = dlgName
dlgLocation = 'vnd.sun.star.script:Standard.' + self.dlgName\
+ '?location=document'
self.dialog = dialogProvider.createDialog(dlgLocation)
self.Model = self.dialog.Model
def getControl(self, ctrlName):
return self.dialog.getControl(ctrlName)
def execute(self):
return self.dialog.execute()
def endExecute(self):
return self.dialog.endExecute()
def __str__(self):
return self.dlgName
Code: Alles auswählen
class InvoiceNrDialog(Dialog):
"""
Unterklasse für den Dialog zur Änderung der Belegnummern.
"""
def __init__(self, dlgName, recList):
# doc ist global definiert
Dialog.__init__(self, doc, dlgName)
self.sheet = doc.CurrentController.ActiveSheet
# Die Liste der Belege in der Belegtabelle
self.recList = recList
# usw
Code: Alles auswählen
recList = [Belegliste]
invoiceNrDlg = InvoiceNrDialog('InvoiceNrDialog', recList)
invoiceNrDlg.execute()
Schöne Grüße
Volker