Die ursprüngliche Anfrage stammt aus dem Writerforum:
viewtopic.php?f=1&t=46869
Da mich das Thema nun auch doch mehr interessiert, dachte ich, ich stelle es mal ins wahrscheinlich richtige Forum ein. Ich vermute einfach, dass man um Makros und evtl. Dialoge nicht herum kommen wird.
Ziel:
Beim öffnen einer Dokument-/Briefvorlage, öffnet sich zunächst ein Eingabefeld oder ein Dialog mit den eigenen Benutzerdaten (Name, Vorname, Telefonnummer...). Die Benutzerdaten können einfach übernommen oder aber bei Bedarf überschrieben werden.
Bei meiner Suche im Forum bzw. auch im Internet, konnte ich nicht wirklich brauchbares finden, vielleicht habe ich gestern aber auch die falschen Suchbegriffe verwendet?!?
Hat jemand einen Ansatz, wie ich da bewerkstelligen kann bzw. hat jemand in der Richtung schonmal was erstellt auf dem man aufbauen könnte?
Danke vorab.
Gruß
Hylli
Eingabefeld mit Userdaten vorbelegen?
Moderator: Moderatoren
Eingabefeld mit Userdaten vorbelegen?
Ein Dankeschön für eine Lösung tut nicht weh!
Wer eine Lösung selbst findet, sollte die für die Nachwelt auch posten!
Geschäftlich: LibreOffice 6.0.x ("Still") unter Windows 10 64bit
Privat: LibreOffice 6.0.x ("Still") unter Linux Mint 19.x Cinnamon 64bit
Wer eine Lösung selbst findet, sollte die für die Nachwelt auch posten!
Geschäftlich: LibreOffice 6.0.x ("Still") unter Windows 10 64bit
Privat: LibreOffice 6.0.x ("Still") unter Linux Mint 19.x Cinnamon 64bit
Re: Eingabefeld mit Userdaten vorbelegen?
Na das ist doch simpel, einfache Inputboxen und Textmarken reichen:
dieses Makro mit dem EReignis "Neues Dokument" einer Dokumentvorlage verbinden und die Dokumentvorlage speichern.
Gruß
Stephan
Code: Alles auswählen
Sub Datenabfrage
Dim profil(0) as new com.sun.star.beans.PropertyValue
nutzer = createUnoService("com.sun.star.configuration.ConfigurationProvider")
profil(0).Name = "nodepath"
profil(0).Value = "org.openoffice.UserProfile/Data"
reg_daten = nutzer.createInstanceWithArguments("com.sun.star.configuration.ConfigurationAccess", profil())
txt = InputBox ("Wie lautet Ihr Vornme?", "Vorname", reg_daten.givenname)
thisComponent.getBookmarks().getByName("vorname").getAnchor.setString(txt)
txt = InputBox ("Wie lautet Ihr Nachname?", "Nachname", reg_daten.sn)
thisComponent.getBookmarks().getByName("nachname").getAnchor.setString(txt)
txt = InputBox ("Wie lautet Ihre Telefonnummer?", "Telefonnummer", reg_daten.homephone)
thisComponent.getBookmarks().getByName("telefonnummer").getAnchor.setString(txt)
End Sub
Gruß
Stephan
- Dateianhänge
-
- Datenabfrage.ott
- (9.18 KiB) 49-mal heruntergeladen
Re: Eingabefeld mit Userdaten vorbelegen?
Hi,
sieht schon richtig Klasse aus. Kann man irgendwie Vor- und Nachname in einem Feld kombinieren?
....und 2. Frage: Mir scheint, dass vor der 1. Textmarke immer ein Absatz erstellt wird. Kann man dies umgehen?
Hylli
sieht schon richtig Klasse aus. Kann man irgendwie Vor- und Nachname in einem Feld kombinieren?
....und 2. Frage: Mir scheint, dass vor der 1. Textmarke immer ein Absatz erstellt wird. Kann man dies umgehen?
Hylli

Ein Dankeschön für eine Lösung tut nicht weh!
Wer eine Lösung selbst findet, sollte die für die Nachwelt auch posten!
Geschäftlich: LibreOffice 6.0.x ("Still") unter Windows 10 64bit
Privat: LibreOffice 6.0.x ("Still") unter Linux Mint 19.x Cinnamon 64bit
Wer eine Lösung selbst findet, sollte die für die Nachwelt auch posten!
Geschäftlich: LibreOffice 6.0.x ("Still") unter Windows 10 64bit
Privat: LibreOffice 6.0.x ("Still") unter Linux Mint 19.x Cinnamon 64bit
Re: Eingabefeld mit Userdaten vorbelegen?
Frage 2 konnte ich selbst lösen, indem ich nach jeder Textmarke immer ein Leerzeichen eingefügt habe. Ob das der richtige Weg war/ist -> ???
Ich stehe jedoch gerade vor einem viel größeren Problem:
Ich habe Stephans Makro genommen, um weitere Felder ergänzt, und es in meiner vorhandenen Vorlage als Makro hinterlegt und zwar am Dokument:
Wenn ich jedoch das Makro beim Ereignis "Neues Dokument" im Makro-Selektor zuordnen will, dann bekomme ich dieses nicht zur Auswahl:
Was mache ich an dieser Stelle falsch bzw. wo liegt mein Fehler?
Hylli
Ich stehe jedoch gerade vor einem viel größeren Problem:
Ich habe Stephans Makro genommen, um weitere Felder ergänzt, und es in meiner vorhandenen Vorlage als Makro hinterlegt und zwar am Dokument:
Wenn ich jedoch das Makro beim Ereignis "Neues Dokument" im Makro-Selektor zuordnen will, dann bekomme ich dieses nicht zur Auswahl:
Was mache ich an dieser Stelle falsch bzw. wo liegt mein Fehler?
Hylli
Ein Dankeschön für eine Lösung tut nicht weh!
Wer eine Lösung selbst findet, sollte die für die Nachwelt auch posten!
Geschäftlich: LibreOffice 6.0.x ("Still") unter Windows 10 64bit
Privat: LibreOffice 6.0.x ("Still") unter Linux Mint 19.x Cinnamon 64bit
Wer eine Lösung selbst findet, sollte die für die Nachwelt auch posten!
Geschäftlich: LibreOffice 6.0.x ("Still") unter Windows 10 64bit
Privat: LibreOffice 6.0.x ("Still") unter Linux Mint 19.x Cinnamon 64bit
Re: Eingabefeld mit Userdaten vorbelegen?
Die Textmarken werden nicht durch das Makro eingefügt sondern können per Hand beliebig festgelegt werden. Einzig müssen sie die im makro genannten namen haben.....und 2. Frage: Mir scheint, dass vor der 1. Textmarke immer ein Absatz erstellt wird. Kann man dies umgehen?
Du machst garnichts falsch, es liegt ein Programmfehler vor.Was mache ich an dieser Stelle falsch bzw. wo liegt mein Fehler?
Rufe den Dialog über Extras-Anpassen Register "Ereignisse" Schaltfläche "Makros" auf und nicht über Extras-Makros-Makros verwalten-OOo Basic SChaltfläche "Zuordnen", so wie es schon ein halbes Dutzend Mal hier im Forum steht.
Gruß
Stephan
Re: Eingabefeld mit Userdaten vorbelegen?
Hi,
Danke für die Tipps
Hylli
das wusste ich, hatte jedoch immer wieder Probleme, dass vor einer Textmarke plötzlich ein Absatz/Zeilensprung gesetzt wurde, den ich allerdings nicht gesetzt habe. Seitherige Lösung: Hinter jede Textmarke ein Leerzeichen setzen, dann erst gegebenenfalls einen Absatz.Die Textmarken werden nicht durch das Makro eingefügt sondern können per Hand beliebig festgelegt werden. Einzig müssen sie die im makro genannten namen haben.
Das war des Rätsels Lösung. Da ich bis dato praktisch noch nie mit Makros gearbeitet habe, wusste ich das wirklich nicht. Wusste allerdings auch nicht, nach was ich da hätte suchen müssen.Du machst garnichts falsch, es liegt ein Programmfehler vor.
Rufe den Dialog über Extras-Anpassen Register "Ereignisse" Schaltfläche "Makros" auf und nicht über Extras-Makros-Makros verwalten-OOo Basic SChaltfläche "Zuordnen", so wie es schon ein halbes Dutzend Mal hier im Forum steht.
Danke für die Tipps
Hylli
Ein Dankeschön für eine Lösung tut nicht weh!
Wer eine Lösung selbst findet, sollte die für die Nachwelt auch posten!
Geschäftlich: LibreOffice 6.0.x ("Still") unter Windows 10 64bit
Privat: LibreOffice 6.0.x ("Still") unter Linux Mint 19.x Cinnamon 64bit
Wer eine Lösung selbst findet, sollte die für die Nachwelt auch posten!
Geschäftlich: LibreOffice 6.0.x ("Still") unter Windows 10 64bit
Privat: LibreOffice 6.0.x ("Still") unter Linux Mint 19.x Cinnamon 64bit