Seite 1 von 1
Eingabefeld mit Userdaten vorbelegen?
Verfasst: Mi, 16.02.2011 08:36
von hylli
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
Re: Eingabefeld mit Userdaten vorbelegen?
Verfasst: Mi, 16.02.2011 09:23
von Stephan
Na das ist doch simpel, einfache Inputboxen und Textmarken reichen:
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
dieses Makro mit dem EReignis "Neues Dokument" einer Dokumentvorlage verbinden und die Dokumentvorlage speichern.
Gruß
Stephan
Re: Eingabefeld mit Userdaten vorbelegen?
Verfasst: Mi, 16.02.2011 09:55
von hylli
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

Re: Eingabefeld mit Userdaten vorbelegen?
Verfasst: Mi, 16.02.2011 12:28
von hylli
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:

- benutzerdaten_textmarke_01.png (37.43 KiB) 835 mal betrachtet
Wenn ich jedoch das Makro beim Ereignis "Neues Dokument" im Makro-Selektor zuordnen will, dann bekomme ich dieses nicht zur Auswahl:

- benutzerdaten_textmarke_02.png (27.67 KiB) 835 mal betrachtet
Was mache ich an dieser Stelle falsch bzw. wo liegt mein Fehler?
Hylli
Re: Eingabefeld mit Userdaten vorbelegen?
Verfasst: Mi, 16.02.2011 19:04
von Stephan
....und 2. Frage: Mir scheint, dass vor der 1. Textmarke immer ein Absatz erstellt wird. Kann man dies umgehen?
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.
Was mache ich an dieser Stelle falsch bzw. wo liegt mein Fehler?
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.
Gruß
Stephan
Re: Eingabefeld mit Userdaten vorbelegen?
Verfasst: Do, 17.02.2011 08:14
von hylli
Hi,
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 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.
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.
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.
Danke für die Tipps
Hylli