ich erstelle einen Dialog und möchte die dort eingegebenen Daten in eine Writer-Vorlage schreiben. Leider stürzt das Makro immer am Ende ab.
Code: Alles auswählen
oForm = DialogLibraries.Standard.dlgD1
oDialog = CreateUnoDialog( oForm )
oDialog.SetTitle("Wer weiß was?")
oDialog.GetControl("Textfeld1").text = "Frage 1 (2 Punkte)"
oDialog.GetControl("txtPunkte").text = Punkte
oDialog.GetControl("ls1").additem("Antwort 1. ", 0)
oDialog.GetControl("ls1").additem("Antwort 2 ", 1)
oDialog.GetControl("ls1").additem("Antwort 3. ", 2)
oDialog.execute
Die Schreibroutine sieht so aus:
Code: Alles auswählen
Sub Schreiben
oDatei = ThisComponent
oDatei.lockControllers
oTxtFelder = oDatei.getTextFields().createEnumeration()
Do While oTxtFelder.hasMoreElements() 'Textfelder ansprechen
oFeld = oTxtFelder.nextElement
'Überprüfen, ob es ein Platzhalterfeld ist
If oFeld.supportsService("com.sun.star.text.TextField.JumpEdit") Then
'Name des Placeholders holen
sPlaceholderName = oFeld.Placeholder
' Textfelder und Variablen zuordnen
Select Case sPlaceholderName
Case "Vorname"
oFeld.Anchor.String = strVorname
Case "Nachname"
oFeld.Anchor.String = strNachname
Case "T1"
oFeld.Anchor.String = strText1
Case "P1"
oFeld.Anchor.String = Punkte1
Case "Gesamturteil"
oFeld.Anchor.String = strGesamturteil
Case "Gesamtnote"
' oFeld.Anchor.String = Punkte
End Select
End If
Loop
'Bildschirmaktualisierung wieder einschalten
Do While oDatei.hasControllersLocked
oDatei.unlockControllers
Loop
End Sub
Viele Grüße
Groby
PS: Ich benutze Libre Office & XRay.