DokumentEigenschaften lesen [gelöst]

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

Moderator: Moderatoren

Benutzeravatar
sven-my
*****
Beiträge: 358
Registriert: Fr, 14.12.2007 19:56

DokumentEigenschaften lesen [gelöst]

Beitrag von sven-my »

Hallo Experten,

mit diesen Basic-Schnipzel habe ich ein Problem :

.keywords -> Objektvariable nicht belegt
und
.Theme -> Eigenschaft oder Methode nicht gefunden : Theme

Code: Alles auswählen

Sub DokumentEingeschaftenLesen

DIM oDokument,oDokumentEigenschaften,oDokumentZusaetzlicheEigenschaften,oDoukmentInfos as Object
oDokument = thisComponent
oDokumentEigenschaften = oDokument.getDocumentProperties()
oDokumentZusaetzlicheEigenschaften = oDokumentEigenschaften.UserDefinedProperties
oDoukmentInfos = oDokument.DocumentProperties

msgbox oDokumentEigenschaften.Author
msgbox oDokumentEigenschaften.Title
msgbox oDokumentEigenschaften.Keywords    ' Fehlermeldung
msgbox oDokumentEigenschaften.Theme       ' Fehlermeldung
msgbox oDokumentEigenschaften.Description

End Sub
Wie lauten die richigen Bezeichnungen ?
Vielen Dank im Voraus


gruß
sven-my



Moderation,4: verschoben aus dem BASE-Bereich (ein BASE-Dokument hat keine DocumentProperties) in den BASIC-Bereich
Zuletzt geändert von sven-my am Mo, 23.08.2010 11:02, insgesamt 1-mal geändert.
win7 prof / AOO 4.1.2 & AOO 3.4.0 portable
Benutzeravatar
komma4
********
Beiträge: 5332
Registriert: Mi, 03.05.2006 23:29
Wohnort: Chon Buri Thailand Asia
Kontaktdaten:

Re: DokumentEigenschaften lesen

Beitrag von komma4 »

sven-my hat geschrieben:.keywords -> Objektvariable nicht belegt
und
.Theme -> Eigenschaft oder Methode nicht gefunden : Theme

http://api.openoffice.org/docs/common/r ... rties.html


Keywords ist ein Array von Strings

Code: Alles auswählen

    For i = _
    LBound( oDokumentEigenschaften.Keywords ) To _
    UBound( oDokumentEigenschaften.Keywords )
       msgbox oDokumentEigenschaften.Keywords(i)
    Next i
und
Theme heisst: Subject


Setze Xray ein, der zeigt Dir das.


Für was soll die Zeile oDoukmentInfos gut sein?
DocumentProperties ist eine Pseudo-Eigenschaft - korrekt ist das Anwenden der Methode getDocumentProperties - und das hast Du oben schon :)
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
sven-my
*****
Beiträge: 358
Registriert: Fr, 14.12.2007 19:56

Re: DokumentEigenschaften lesen

Beitrag von sven-my »

Hallo Winfried,

herzlichen Dank für die schnelle Hilfe.
komma4 hat geschrieben:Für was soll die Zeile oDoukmentInfos gut sein?
weiß ich auch nicht --- habe mir den code hier aus dem Forum zusammengestoppelt.

Mit den Schlüsselwörtern ist mir das jetzt auch klar : von Hand eingegeben, werden sie ja mit Komma getrennt --- muß also ein Array sein.
komma4 hat geschrieben:Setze Xray ein, der zeigt Dir das.
Bevor ich den einsetzen kann, muß ich erstmal 5 Jahre Englisch nachholen (gab' s zu meiner Schulzeit nicht), um allein die Anleitung zu verstehen.
Reingeschaut habe ich schon paar mal, aber nach ein/zwei Stunden entnervt aufgegeben.

Auch habe ich mir schon etliche Dokus zum Thema Basic runtergeladen, aber wenn es ans Eingemacht geht, hört es auf. Da bräuchte ich einen Experten, der mir das Stück für Stück erklärt --- aber so einen gibt es weit und breit nicht. :lol: die paar Bekannten, die ich habe, meinen alle, daß Mäuse beißen :lol:

Vieles kann ich mir aber aus alten C64er-Zeiten noch zusammenreimen; der Rest wird hier im Forum geklaut.

Dieses Makro soll mir meine Vergesslichkeit ausgleichen, um einmal den Betreff aus dem Schreiben nach "Thema" , und beim Senden von Faxen das Sendedatum - und Sendeuhrzeit in den "Kommentar" kopieren/schreiben.


gruß
sven-my
win7 prof / AOO 4.1.2 & AOO 3.4.0 portable
Benutzeravatar
komma4
********
Beiträge: 5332
Registriert: Mi, 03.05.2006 23:29
Wohnort: Chon Buri Thailand Asia
Kontaktdaten:

Re: DokumentEigenschaften lesen

Beitrag von komma4 »

sven-my hat geschrieben:Mit den Schlüsselwörtern ist mir das jetzt auch klar : von Hand eingegeben, werden sie ja mit Komma getrennt --- muß also ein Array sein.
Genau :)

sven-my hat geschrieben:Dieses Makro soll mir meine Vergesslichkeit ausgleichen, um einmal den Betreff aus dem Schreiben nach "Thema" , und beim Senden von Faxen das Sendedatum - und Sendeuhrzeit in den "Kommentar" kopieren/schreiben.
aus meiner Extension BTL2 - BasicTextListe 2

Code: Alles auswählen

If Not IsNull(oDokument) Then
	With oDokument.DocumentInfo
	 .Title = BTL2_Text( 2 ) 
	 .KeyWords = BTL2_Text( 5 )
  	 .Subject = BTL2_Text( 10 )
	 .Description = _
	   BTL2_Text( 2 ) & CHR(10) & _
	   BTL2_Text( 3 ) & CHR(10) & _
	   BTL2_Text( 4 ) & CHR(10) & CHR(10) & _
       BTL2_Text( 9 ) & sUser & "@" & sHostname & CHR(10) & CHR(10) & _
	   BTL2_Text( 6 ) & BTL2_Text( 2 ) & " " & sMakroVersion & CHR(10) & _
	   BTL2_Text( 7 ) & NOW() & CHR(10) & _
       BTL2_Text( 8 )
	End With
"Thema" ist .Subject
"Kommentar" ist die Eigenschaft .Description

Ersetze dann noch oDokument durch ThisComponent, und schon funktioniert der Code im aktuellen Dokument.

Hilft das 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
sven-my
*****
Beiträge: 358
Registriert: Fr, 14.12.2007 19:56

Re: DokumentEigenschaften lesen

Beitrag von sven-my »

Hallo Winfried,

wenn ich ehrlich bin, nicht so ganz.

Mit diesem Zusammengeürfelten Code erreiche ich aber, was ich will.

Die INPUTBOX ist leider nötig, damit ich die korrekte Zeit speichere, denn zwischen dem Aufruf des Druckertreibers (FAX) und dem im Fax protokollierten Zeitpunkt liegen zwischen 60 und 180 Sekunden.
Aber so habe ich die Zeit im Dokument, welche mir auch der EXPLORER anzeigt, ohne daß ich es öffnen muß - kommt ja auch nich zig Mal am Tag vor.

Code: Alles auswählen

Sub DokumentEingeschaftenSchreiben
DIM oDokument,oDokumentEigenschaften,oDokumentZusaetzlicheEigenschaften,oDoukmentInfos as Object
oDokument = thisComponent
oDokumentEigenschaften = oDokument.getDocumentProperties()

sDat = inputbox ("hh:mm", "Sendezeit")
if sDat = "" then exit sub

kOld = oDokumentEigenschaften.Description
kDat = "gesendet am " & Date & "  / " & sDat

if kOld <>"" then
	kNew = kOld & chr(10) & kDat
else
	kNew = kDat
end if
oDokumentEigenschaften.Description	= kNew

End Sub
Der Rest kommt dann so nach und nach. Die Betreffzeile im Schreiben (Dokument) auslesen ist für mich auch kein Problem, um sie dann im .subject zu speichern.


gruß
sven-my
win7 prof / AOO 4.1.2 & AOO 3.4.0 portable
Benutzeravatar
komma4
********
Beiträge: 5332
Registriert: Mi, 03.05.2006 23:29
Wohnort: Chon Buri Thailand Asia
Kontaktdaten:

Re: DokumentEigenschaften lesen

Beitrag von komma4 »

sven-my hat geschrieben:wenn ich ehrlich bin, nicht so ganz.
Natürlich sollst Du ehrlich sein, sonst kommen wir ja nicht weiter!

Und Dein Code sieht doch gut aus, und wenn der funktionert: Prima.
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)
Antworten