Seite 1 von 1

Weitere Dokumenteigenschaften auslesen und ändern

Verfasst: Mo, 26.10.2009 09:26
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!

Re: Weitere Dokumenteigenschaften auslesen und ändern

Verfasst: Mo, 26.10.2009 09:48
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?

Re: Weitere Dokumenteigenschaften auslesen und ändern

Verfasst: Mo, 26.10.2009 10:01
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.

Re: Weitere Dokumenteigenschaften auslesen und ändern

Verfasst: Mo, 26.10.2009 10:53
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?

Re: Weitere Dokumenteigenschaften auslesen und ändern

Verfasst: Mo, 26.10.2009 11:04
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.

Re: Weitere Dokumenteigenschaften auslesen und ändern

Verfasst: Mo, 26.10.2009 11:48
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.

Re: Weitere Dokumenteigenschaften auslesen und ändern

Verfasst: Mo, 26.10.2009 13:44
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.

Re: Weitere Dokumenteigenschaften auslesen und ändern

Verfasst: Mo, 26.10.2009 15:12
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.

Re: Weitere Dokumenteigenschaften auslesen und ändern

Verfasst: Fr, 30.10.2009 15:03
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.