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.