Weitere Dokumenteigenschaften auslesen und ändern

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

Moderator: Moderatoren

saturus
**
Beiträge: 34
Registriert: Mi, 01.02.2006 07:43

Weitere Dokumenteigenschaften auslesen und ändern

Beitrag von saturus »

Hallo,

­am Anfang möchte ich mich noch mal für die kräftige Unterstützung hier im Forum bedanken. Ohne Euch wären einige Umsetzungen in OpenOffice bei uns im Unternehmen im Sande verlaufen.

Aktuell wollen wir ein bestehendes System zur Erstellung von Kunden-Anschreiben überarbeiten. Dieses System wurde ursprünglich mit OpenOffice 2.2 entwickelt. Da sich die Technik weiterentwickelt hat und unsere Erfahrungen mit OpenOffice auch größer geworden sind, soll dieses nun überarbeitet werden. Vor allem sollen neue Funktionen von OpenOffice 3.x verwendet werden.

Nun zum aktuelle Problem:

Bei der Ablage der Dokumente analysieren wir auch verschiedene Meta-Felder der Dokumente. Die meisten auszulesen und zu manipulieren ist recht einfach.

Code: Alles auswählen

Sub DokumentEingeschaftenSchreiben
	DIM oDokument,oDokumentEigenschaften,oDokumentZusaetzlicheEigenschaften,oDoukmentInfos as Object
	
	oDokument = thisComponent
	
	oDokumentEigenschaften = oDokument.getDocumentProperties()
	oDokumentZusaetzlicheEigenschaften = oDokumentEigenschaften.UserDefinedProperties
	oDoukmentInfos = oDokument.DocumentInfo
	
	oDokumentEigenschaften.Author						= "Max Mustermann"
	oDokumentEigenschaften.Title						= "Testdokument"

End Sub
Jedoch brauchen wir auch Felder wie z. B. "sender-position", "sender-email". Vermutlich geht dies nur über TextFields. Aber irgendwie finde ich hierzu nichts.

HILFE!
Benutzeravatar
komma4
********
Beiträge: 5332
Registriert: Mi, 03.05.2006 23:29
Wohnort: Chon Buri Thailand Asia
Kontaktdaten:

Re: Weitere Dokumenteigenschaften auslesen und ändern

Beitrag von komma4 »

Anmerkung:
mit OOo 3.x ändert sich die API: DocumentInfo wird durch DocumentProperties abgelöst.

Jedoch brauchen wir auch Felder wie z. B. "sender-position", "sender-email".
Was verstehst Du unter "Felder"?
Nach der Überschrift könnte ich versucht sein anzunehmen, dass diese Infos vorliegen ... oder?
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)
saturus
**
Beiträge: 34
Registriert: Mi, 01.02.2006 07:43

Re: Weitere Dokumenteigenschaften auslesen und ändern

Beitrag von saturus »

Vielen Dank für die schnelle Reaktion.

Zu den zusätzlichen Feldern:
Im Writer unter Einfügen > Feldbefehl > Andere unter dem Reiter Dokument Absender z. B. die Position auswählen. Wenn man sich das entpackte ODS-Dokument dann genauer anschaut heist das Feld "sender-position". Den Inhalt dieses Feldes würden wir gerne in unseren Makro lesen und schreiben können.

Ich hoffe, man konnte meinen Gedankengang folgen.
Benutzeravatar
komma4
********
Beiträge: 5332
Registriert: Mi, 03.05.2006 23:29
Wohnort: Chon Buri Thailand Asia
Kontaktdaten:

Re: Weitere Dokumenteigenschaften auslesen und ändern

Beitrag von komma4 »

Dies ist ein Makro zum Zugriff auf die Extras>Optionen...>OpenOffice.org>Benutzerdaten-Eingaben

Code: Alles auswählen

Sub Main
' http://www.oooforum.org/forum/viewtopic.phtml?t=1446
' paro  Jun 17, 2003 11:24 am
Dim oConfigProvider as Object
Dim oRegistryKeyContent as Object

Dim aNodePath(0) as new com.sun.star.beans.PropertyValue

oConfigProvider = createUnoService("com.sun.star.configuration.ConfigurationProvider")

aNodePath(0).Name = "nodepath"
aNodePath(0).Value = "org.openoffice.UserProfile/Data"


oRegistryKeyContent = _
oConfigProvider.createInstanceWithArguments( _
"com.sun.star.configuration.ConfigurationAccess", aNodePath())


Msgbox oRegistryKeyContent.o

Msgbox oRegistryKeyContent.givenname
Msgbox oRegistryKeyContent.sn

Msgbox oRegistryKeyContent.initials
Msgbox oRegistryKeyContent.title
Msgbox oRegistryKeyContent.position

Msgbox oRegistryKeyContent.telephonenumber
Msgbox oRegistryKeyContent.facsimiletelephonenumber
Msgbox oRegistryKeyContent.homephone

Msgbox oRegistryKeyContent.mail
Msgbox oRegistryKeyContent.st
Msgbox oRegistryKeyContent.street
Msgbox oRegistryKeyContent.postalcode

Msgbox oRegistryKeyContent.UserGroup
Msgbox oRegistryKeyContent.c
Msgbox oRegistryKeyContent.l

End Sub
Damit kommst Du zurecht?
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)
saturus
**
Beiträge: 34
Registriert: Mi, 01.02.2006 07:43

Re: Weitere Dokumenteigenschaften auslesen und ändern

Beitrag von saturus »

Hallo,

nochmal vielen Dank.

Wenn ich richt verstehe, kann man mit diesem Marko die Benutzerdaten des angemeldeten Nutzers lesen und schreiben.

Ich brauche aber den Zugriff auf die gespeicherten Informationen in einem Dokument.
Benutzeravatar
komma4
********
Beiträge: 5332
Registriert: Mi, 03.05.2006 23:29
Wohnort: Chon Buri Thailand Asia
Kontaktdaten:

Re: Weitere Dokumenteigenschaften auslesen und ändern

Beitrag von komma4 »

sender-email und -position sind die Felder "Position" und "E-Mail" der Benutzereinstellungen ... dadurch pro OOo-Installation vorhanden und eben nicht nur in einem Dokument vorhanden.
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)
saturus
**
Beiträge: 34
Registriert: Mi, 01.02.2006 07:43

Re: Weitere Dokumenteigenschaften auslesen und ändern

Beitrag von saturus »

Ich glaube, wir haben aneinnader vorbei geredet.

Ich dachte bisher, wenn ein neues Dokument aus z. B. einer Vorlage erzeugt wird, werden die Benutzerdaten aus der OpenOffice-Installation in das neue Dokument kopiert.

Da es bei uns vorkommen kann, dass ein Benutzer ein Schreiben eines anderen Nutzer weiter bearbeitet, dürfen nicht die Daten des neuen Nutzes angezeigt werden, sondern die des Ersten. Diese wollte ich aus den Dokumentdaten auslesen und in die Eingabemaske wieder darstellen.
Benutzeravatar
komma4
********
Beiträge: 5332
Registriert: Mi, 03.05.2006 23:29
Wohnort: Chon Buri Thailand Asia
Kontaktdaten:

Re: Weitere Dokumenteigenschaften auslesen und ändern

Beitrag von komma4 »

Du willst Benutzerdaten verwenden ... die sind nicht im Dokument gespeichert.


Hole sie bei Dokumenterzeugung mit einem Makro und setze sie ins Dokument. Dann wird auch nichts (durch einen weiteren Bearbeiter) verändert.
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)
saturus
**
Beiträge: 34
Registriert: Mi, 01.02.2006 07:43

Re: Weitere Dokumenteigenschaften auslesen und ändern

Beitrag von saturus »

Danke für die Tipps. Dadurch bin ich auf den richtigen Weg gekommen.

Hab jetzt eine Vorlage mit "Benutzerdefinierten Eigenschaften" angelegt. Mein Makro prüft, ob hier Inhalt vorhanden ist. Wenn ja, dann übernimmt er den Inhalt, wenn nein, dann werden die Felder entsprechend den Benutzereinstellungen gefüllt.
Antworten