Werte aus Listenfeld im Dialog in Writer einfügen

Programmierung unter AOO/LO (StarBasic, Python, Java, ...)

Moderator: Moderatoren

FredEff
Beiträge: 1
Registriert: Mo, 07.07.2008 14:45

Werte aus Listenfeld im Dialog in Writer einfügen

Beitrag von FredEff »

Hallo!
auf meiner Suche nach einer Lösung für mein Makro-Problem such ich seit Tagen im Internet und auch hier im Forum. Nachdem mir hier die Lösungen am konkretesten vorkommen, hab' ich mich auch mal angemeldet. Ich denk' ich werd' noch öfter Fragen haben .... :(

Wir stellen in der Firma jetzt von Lotus WordPro (ja, das gibt's noch...) auf OpenOffice um; daher muss ich meine Makros nun alle neu schreiben. Leider hab' ich bisher keine Ahnung von der Makro-Programmierung unter OpenOffice.

Mein Problem:
Ich habe ein Dialogfeld, das beim Öffnen einer Briefvorlage startet. Damit werden die Adressdaten des jeweiligen Empfängers sowie die jeweiligen Filialdaten in das Dokument beim Anklicken von "Übernehmen" eingetragen. Das mit den Adressdaten hab' ich mittlerweile zusammengesammelt und verstanden; bei den Filialdaten komm' ich nicht weiter: diese Daten - Adresse, Telefon- und Faxnummer - sollen über ein Listenfeld eingetragen werden können: Die User wählen dann einfach den Namen ihrer Filiale aus und die restlichen Daten werden an vordefinierte Stellen eingefügt. Wie krieg' ich die Angaben ins Dokument?

Kann mir jemand helfen? Oder geht das mit OpenOffice gar nicht?

Danke schon mal vorab...

Gruß
FredEff


So sieht der Code für die Adressdaten aus:
************************************************************
Dim MyDlg as Object
Dim String_Anrede as String
Dim String_Name as String
Dim String_Strasse as String
Dim String_Ort as String
Dim oDoc as Object
Dim oTextFieldMasters as Object
Dim TxtUserfield as String
Dim TxtName as String

Sub Dlg_FB
Dialoglibraries.Loadlibrary("Standard")
MyDlg= CreateUnoDialog(Dialoglibraries.Standard.Dlg_FB)
Feldbefehl_lesen
Ctl_Name = MyDlg.GetControl("TextField_Anrede")
Ctl_Name.Model.Text = String_Anrede
Ctl_Name.setfocus()
Ctl_Name = MyDlg.GetControl("TextField_Name")
Ctl_Name.Model.Text = String_Name
Ctl_Name = MyDlg.GetControl("TextField_Strasse")
Ctl_Name.Model.Text = String_Strasse
Ctl_Name = MyDlg.GetControl("TextField_Ort")
Ctl_Name.Model.Text = String_Ort
MyDlg.execute()
end Sub

Sub Feldbefehl_lesen
oDoc = thisComponent
strUserfield = "Anrede"
On Error Resume Next
oTextFieldMasters = oDoc.TextFieldMasters
TxtUserfield="com.sun.star.text.FieldMaster.User."+StrUserfield
String_Anrede=oTextFieldMasters.getByName(TxtUserfield).content
strUserfield = "Name"
On Error Resume Next
oTextFieldMasters = oDoc.TextFieldMasters
TxtUserfield="com.sun.star.text.FieldMaster.User."+StrUserfield
String_Name=oTextFieldMasters.getByName(TxtUserfield).content
strUserfield = "Strasse"
On Error Resume Next
oTextFieldMasters = oDoc.TextFieldMasters
TxtUserfield="com.sun.star.text.FieldMaster.User."+StrUserfield
String_Strasse=oTextFieldMasters.getByName(TxtUserfield).content
strUserfield = "Ort"
On Error Resume Next
oTextFieldMasters = oDoc.TextFieldMasters
TxtUserfield="com.sun.star.text.FieldMaster.User."+StrUserfield
String_Ort=oTextFieldMasters.getByName(TxtUserfield).content
End Sub


Sub Feldbefehl_schreiben
oDoc = thisComponent
REM Anrede
strUserfield = "Anrede"
Ctl_Name = MyDlg.GetControl("TextField_Anrede")
String_Anrede = Ctl_Name.Model.Text
strContent = String_Anrede
On Error Resume Next
oTextFieldMasters = oDoc.TextFieldMasters
TxtUserfield="com.sun.star.text.FieldMaster.User." +StrUserfield
oTextFieldMasters.getByName(TxtUserfield).content = StrContent
oDoc.getTextFields().refresh()
MyDlg.endexecute()
REM Name
strUserfield = "Name"
Ctl_Name = MyDlg.GetControl("TextField_Name")
String_Name = Ctl_Name.Model.Text
strContent = String_Name
On Error Resume Next
oTextFieldMasters = oDoc.TextFieldMasters
TxtUserfield="com.sun.star.text.FieldMaster.User." +StrUserfield
oTextFieldMasters.getByName(TxtUserfield).content = StrContent
oDoc.getTextFields().refresh()
MyDlg.endexecute()
REM Strasse
strUserfield = "Strasse"
Ctl_Strasse = MyDlg.GetControl("TextField_Strasse")
String_Strasse = Ctl_Strasse.Model.Text
strContent = String_Strasse
On Error Resume Next
oTextFieldMasters = oDoc.TextFieldMasters
TxtUserfield="com.sun.star.text.FieldMaster.User." +StrUserfield
oTextFieldMasters.getByName(TxtUserfield).content = StrContent
oDoc.getTextFields().refresh()
MyDlg.endexecute()
REM Ort
strUserfield = "Ort"
Ctl_Ort = MyDlg.GetControl("TextField_Ort")
String_Ort = Ctl_Ort.Model.Text
strContent = String_Ort
On Error Resume Next
oTextFieldMasters = oDoc.TextFieldMasters
TxtUserfield="com.sun.star.text.FieldMaster.User." +StrUserfield
oTextFieldMasters.getByName(TxtUserfield).content = StrContent
oDoc.getTextFields().refresh()
MyDlg.endexecute()

End Sub
*****************************************************