WRITER: Eingabefelder füllen

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

Moderator: Moderatoren

Oberlandler
Beiträge: 2
Registriert: Mi, 27.05.2015 15:56

WRITER: Eingabefelder füllen

Beitrag von Oberlandler »

Hallo Profis,

folgendes: Wir haben bisher hier mit MS-Word gearbeitet. Um jeden Mitarbeiter seinen passenden Briefkopf anzubieten, hab ich eine WORD-Vorlage gebaut, welche mit einem AUTO-New-Makro das Active-Directory ausgelesen hat und Name, email-Adresse, Telefon usw. in Formularfelder eingetragen hat.

Diese Funktion möcht ich nun auf Open-Writer umsetzen,was aber scheinbar gar ned sooo einfach ist.
Zugriff auf AD iss ehe ein größeres Problem, aber das löse ich indem beim Anmelden des Users über ein LOGON-Script die gewünschten Daten aus dem AD auslese und als txt-Datei auf einem lokalen oder gemappten Laufwerk ablege. Und auf diese Datei möchte ich über ein Makro aus OO zugreifen.
Hat den Vorteil, dass ich diese für andre Dinge auch nutzen kann.

Wie aber bring ich nun dier Daten aus der Datei in Felder auf ein OO-Dokument?
Ich hab hier viiiieeeel gegoogelt und auch getestet, aber so richtig vernünftig hat nix gefunzt.
Es geht schon an, dass es "New-Dokument" basierend auf einer OO-Vorlage scheinbar ned gibt.

Dann gibt es einmal "Engabefelder", und sog. "Shapes"? Welches passt nun besser.
Dann poppt beim Start wieder ein Fenster zur Dateneingabe auf. Das soll aber ned...
Kann ich die Felder auch "schützen" (wie in Word?)

Wer hat dieses Problem schon mal gelöst?

Vielen Dank für Eure Hilfe.


Moderation,4: verschoben in MAKROS (und allgem. Programmierung)-Unterbereich, wo alle Makro-Fragen hin gehören; Betreff angepasst
Benutzeravatar
komma4
********
Beiträge: 5332
Registriert: Mi, 03.05.2006 23:29
Wohnort: Chon Buri Thailand Asia
Kontaktdaten:

Re: WRITER: Eingabefelder füllen

Beitrag von komma4 »

Oberlandler hat geschrieben:hab ich eine WORD-Vorlage gebaut [...]und Name, email-Adresse, Telefon usw. in Formularfelder eingetragen hat.
In OOo gibt es dafür die Feldbefehle [Einfügen>Feldbefehl>Autor und Andere...]
Die Informationen, die beim Erstellen eines neuen Dokuments aus einer Vorlage eingefügt werden, werden aus Extras>Einstellungen...>OpenOffice>Benutzerdaten bezogen.

Hilft das nicht weiter?
Cheers
Winfried
aktuell: LO 5.3.5.2 30m0(Build:2) SUSE rpm, unter Linux openSuSE Leap 42.3 x86_64/KDE5
DateTime2 Einfügen von Datum/Zeit/Zeitstempel (als OOo Extension)
Benutzeravatar
komma4
********
Beiträge: 5332
Registriert: Mi, 03.05.2006 23:29
Wohnort: Chon Buri Thailand Asia
Kontaktdaten:

Re: WRITER: Eingabefelder füllen

Beitrag von komma4 »

und das noch gefunden:

viewtopic.php?t=60875
Cheers
Winfried
aktuell: LO 5.3.5.2 30m0(Build:2) SUSE rpm, unter Linux openSuSE Leap 42.3 x86_64/KDE5
DateTime2 Einfügen von Datum/Zeit/Zeitstempel (als OOo Extension)
Oberlandler
Beiträge: 2
Registriert: Mi, 27.05.2015 15:56

Re: WRITER: Eingabefelder füllen

Beitrag von Oberlandler »

Erstmal vielen Dank für Deine Hilfe. :D

Code: Alles auswählen

"Die Informationen, die beim Erstellen eines neuen Dokuments aus einer Vorlage eingefügt werden, werden aus Extras>Einstellungen...>OpenOffice>Benutzerdaten bezogen.
"

Das ist mir schon klar. Heißt aber, bei jeden Benutzer diese Daten manuell einzupflegen. Wird bei ca. 100 (u.U. sogar 3000) a bisserl viel.
Und nachdem ich diese Daten ja im AD eh habe, bietet sich das doch an.

Den Link, wo Du dann angehängt hast, hab ich mir schon mehrfach durchgelesen. HIer wird erläutert wie ich die Daten aus dem AD in einen Datei bekomme. Diesen Schritt hab ich schon hinter mir.
Wo ich das Problem hab, ist nun, wie ich die Daten aus der Datei dynamisch ins OO-Dokument bekomme.
Ich hab das mal mit "EIFÜGEN-FELDBEFEHLE-DATENBANK-SERIENDRUCKFELD probiert, aber da wird nix aktualisiert.
Ausserdem schreibt er ja: "Wie ich Text in ein Dokument per Script schreiben kann, weiß ich. Ich möchte halt die Informationen des angemeldeten Users in das Formular einfügen."
Er ja - ich nicht... 8)

Dankfür Deine Hilfe.
Benutzeravatar
komma4
********
Beiträge: 5332
Registriert: Mi, 03.05.2006 23:29
Wohnort: Chon Buri Thailand Asia
Kontaktdaten:

Re: WRITER: Eingabefelder füllen

Beitrag von komma4 »

Oberlandler hat geschrieben:bei jeden Benutzer diese Daten manuell einzupflegen. Wird bei ca. 100 (u.U. sogar 3000) a bisserl viel.
Naja - dafür sind wir hier ja im Bereich "Programmierung" :-)

Mit einem ganz alten Thread aus dem oooforum.org (Googles Cache benutzen, die Seite ist schwer bis fast nicht erreichbar!) klappt das Setzen nicht vorhandener Benutzer-Eigenschaften immer noch hervorragend.

Code: Alles auswählen

oConfigData_UserProfile = GetConfigAccess( "/org.openoffice.UserProfile/Data", True ) 

IF oConfigData_UserProfile.givenname = "" THEN
   oConfigData_UserProfile.givenname = "Winfried"

Ich würde so vorgehen:
Dokument aus Vorlage wird erstellt: Makro läuft ab (Extras>Anpassen...>Ereignisse bei der Vorlage, welche Benutzerfelder nutzt)
* prüfen, ob AD Daten schonmal bezogen wurden (sentinel Datei beim Benutzer setzen)
* wenn nicht, Daten aus AD holen und in OOo hinterlegen; Wächter-Datei schreiben

Dann ist es Dir egal, ob es 100 oder 3000 Benutzer sind....

Wäre das nichts?
Cheers
Winfried
aktuell: LO 5.3.5.2 30m0(Build:2) SUSE rpm, unter Linux openSuSE Leap 42.3 x86_64/KDE5
DateTime2 Einfügen von Datum/Zeit/Zeitstempel (als OOo Extension)
Stephan
********
Beiträge: 12368
Registriert: Mi, 30.06.2004 19:36
Wohnort: nahe Berlin

Re: WRITER: Eingabefelder füllen

Beitrag von Stephan »

Wo ich das Problem hab, ist nun, wie ich die Daten aus der Datei dynamisch ins OO-Dokument bekomme.
naja, ich denke das soll per Makro geschehen?

Wenn ja dann ist das konkrete Feld nahezu egal denn es dient ja nur als Platzhalter, am unverfänglichsten wäre wohl ein Feld vom Typ "Benutzerfeld", hier ist der Zugriff beschrieben:
http://www.dannenhoefer.de/faqstarbasic ... Texte.html

aber noch leichter ist es doch Textmarke zu verwenden, die Du im Dokument (hier also der Dokumentvorlage *.ott dort platzierst wo die gewünschten Infos (name, Telefon, ...) jeweils später erscheinen sollen.

Im Makro musst Du dann nur die entsprechenden Infos an die richtige Textmarke schreiben wie hier beschrieben (siehe "Erster Fall"):
http://www.dannenhoefer.de/faqstarbasic ... dText.html



Gruß
Stephan
Stephan
********
Beiträge: 12368
Registriert: Mi, 30.06.2004 19:36
Wohnort: nahe Berlin

Re: WRITER: Eingabefelder füllen

Beitrag von Stephan »

ach und, P.S.

der Zugriff über VBS und Ausgabe in separate DAtei ist wohl unnötig, schau Dir mal den vorletzten Beitrag im Thread:
viewtopic.php?p=30475

an, dort ist ein Beispiel wie man VBS in StarBasic 'kapseln' kann.


Gruß
Stephan
Antworten