(gelöst) Feldbefehl / Datum: Feld ermitteln
Moderator: Moderatoren
(gelöst) Feldbefehl / Datum: Feld ermitteln
Hallo,
ich habe in mein Dokument über Einfügen/Feldbefehl/Datum ein Datum-Feld in ein Dokument eingefügt. Dieses Feld möchte ich mit einem Makro ausfindig machen und editieren. Allerdings ist mir unklar, wie ich das Feld in einem Makro ansprechen kann. Hat dieses Feld überhaupt einen Namen bzw. wie kann ich Name oder ID ermitteln?
Viele Grüße
LvB
ich habe in mein Dokument über Einfügen/Feldbefehl/Datum ein Datum-Feld in ein Dokument eingefügt. Dieses Feld möchte ich mit einem Makro ausfindig machen und editieren. Allerdings ist mir unklar, wie ich das Feld in einem Makro ansprechen kann. Hat dieses Feld überhaupt einen Namen bzw. wie kann ich Name oder ID ermitteln?
Viele Grüße
LvB
Zuletzt geändert von LokutusvB am Mo, 08.02.2010 17:20, insgesamt 1-mal geändert.
- komma4
- ********
- Beiträge: 5332
- Registriert: Mi, 03.05.2006 23:29
- Wohnort: Chon Buri Thailand Asia
- Kontaktdaten:
Re: Feldbefehl / Datum: Feld ermitteln
So ein Feld ist ein TEXTFIELD, bspw. über eine createEnumeration des Dokuments zu erreichen.
Wenn CurElement.isDate = TRUE dann kannst Du die
com.sun.star.util.DateTime-Struktur beeinflussen.
Problem: wenn Du mehrere Datum-Felder hast, weisst Du nie, welches Du gerade bearbeitest.
Mein Rat: setze eine Textmarke (bookmark) in Dein Dokument und fülle den Inhalt zur Laufzeit mit dem Dir genehmen Datum.
Hilft das weiter?
Code: Alles auswählen
oDok = ThisComponent
aTextfelder = oDok.getTextfields.CreateEnumeration
While aTextFelder.hasmoreElements()
CurElement = aTextFelder.NextElement
WEnd
Wenn CurElement.isDate = TRUE dann kannst Du die
com.sun.star.util.DateTime-Struktur beeinflussen.
Problem: wenn Du mehrere Datum-Felder hast, weisst Du nie, welches Du gerade bearbeitest.
Mein Rat: setze eine Textmarke (bookmark) in Dein Dokument und fülle den Inhalt zur Laufzeit mit dem Dir genehmen Datum.
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)
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)
Re: Feldbefehl / Datum: Feld ermitteln
Danke, hast mir sehr geholfen. Hätte nicht gedacht, das diese Felder auch Textfelder sind. Dann hätte ich das gleich über eine Enumeration versucht. Meine Makro schaut nun so aus.
Allerdings habe ich nun wieder ein anderes Problem. Ich habe unter Anpassen Dokument Öffnen dieses Makro zugeordnet. Warum auch immer, es wird beim Öffnen eines Dokumentes nicht ausgeführt bzw. die mir wichtige Stelle nicht. Liegt das vielleicht daran, das vor dem Datum-Feld noch andere Textfelder sind und diese Dialoge erscheinen? Erst beim manuellen Ausführen des Makros wird es ausgeführt und das Feld ist von Datum auf Datum (fix) gesetzt.
Auf lange Sicht ist deine Lösung mit der Textmarke geplant, bin da schon daran. Kurzfristig allerdings benötige ich die Lösung der Typ-Änderung bei Dokument Öffnen.
Code: Alles auswählen
Sub Document_Open()
Dim ooDoc as Object
Dim enumTextfelder as Object
Dim aktFeld as Object
ooDoc = ThisComponent
' Datumfeld von Datum auf Datum (fix) setzen
enumTextfelder = ooDoc.getTextfields.CreateEnumeration
While enumTextFelder.hasmoreElements()
aktFeld = enumTextFelder.NextElement
If aktFeld.supportsService("com.sun.star.text.TextField.DateTime") Then
If (aktFeld.IsFixed = False) Then
aktFeld.IsFixed = True
End If
End If
WEnd
End Sub
Auf lange Sicht ist deine Lösung mit der Textmarke geplant, bin da schon daran. Kurzfristig allerdings benötige ich die Lösung der Typ-Änderung bei Dokument Öffnen.
- komma4
- ********
- Beiträge: 5332
- Registriert: Mi, 03.05.2006 23:29
- Wohnort: Chon Buri Thailand Asia
- Kontaktdaten:
Re: Feldbefehl / Datum: Feld ermitteln
Es wird nicht an der Reihenfolge der Felder liegen, aber am Dialog...
Warum setzt Du das Datum nicht in der Vorlage gleich auf FIX - oder bearbeitest Du ein anderes Problem?
Warum setzt Du das Datum nicht in der Vorlage gleich auf FIX - oder bearbeitest Du ein anderes Problem?
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)
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)
Re: Feldbefehl / Datum: Feld ermitteln
Ja, in der Tat, die Ursache liegt wo anders. Ein Delphi-Programm kopiert eine Vorlage und benennt diese um, ändert auch das Format von "ott" zu "odt". Setze ich das Datum auf Fix, wird beim Öffnen der erzeugten Kopie natürlich nicht das aktuelle Datum gesetzt. Leider geht es aus diversen Umständen nicht anders. Langfristig löse ich das über die Textmarken. Jetzt allerdings möchte ich einfach beim ersten Öffnen des neuen Dokumentes das Datum auf fix setzen lassen.
Zusatz: Das Problem, fällt mir gerade ein, könnte ich derweil lösen, indem ich beim Delphi-Programm das Format ändern lasse, da ich beim Öffnen ja sagen kann, was gemacht werden soll und was nicht. Oder aber ich setzte das Makro auf Dokument Schließen, das sollte auch gehen.
Zusatz: Das Problem, fällt mir gerade ein, könnte ich derweil lösen, indem ich beim Delphi-Programm das Format ändern lasse, da ich beim Öffnen ja sagen kann, was gemacht werden soll und was nicht. Oder aber ich setzte das Makro auf Dokument Schließen, das sollte auch gehen.
- komma4
- ********
- Beiträge: 5332
- Registriert: Mi, 03.05.2006 23:29
- Wohnort: Chon Buri Thailand Asia
- Kontaktdaten:
Re: Feldbefehl / Datum: Feld ermitteln
Frage: warum "kopiert" Dein Programm eine Vorlage - warum öffnet sie nicht ein neues Dokument aus der Vorlage?
Dann klappt das mit dem Datum-fix...
Dann klappt das mit dem Datum-fix...
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)
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)
Re: Feldbefehl / Datum: Feld ermitteln
Gute Frage, nächste Frage, die Wurzeln des Programmes stammen nicht von mir, ich habe es nur erweitert.
Die Verzweigungen des Programmes erfordern diese kopierte und umbenannte Datei in einem gewissen Ordner. Falls also bei der Abarbeitung oder wo auch immer etwas schief geht, muß zumindest die Datei noch vorhanden sein.
Die Verzweigungen des Programmes erfordern diese kopierte und umbenannte Datei in einem gewissen Ordner. Falls also bei der Abarbeitung oder wo auch immer etwas schief geht, muß zumindest die Datei noch vorhanden sein.
- komma4
- ********
- Beiträge: 5332
- Registriert: Mi, 03.05.2006 23:29
- Wohnort: Chon Buri Thailand Asia
- Kontaktdaten:
Re: Feldbefehl / Datum: Feld ermitteln
öffnen aus Vorlage, speichern unter gewünschtem Namen in erwarteten Ordner. Gut is 
Nein... ich kann kein Delphi

Nein... ich kann kein Delphi

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)
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)
Re: Feldbefehl / Datum: Feld ermitteln
Das sagst du so einfach, obwohl du nicht weißt was zwischen dem Kopieren und dem Öffnen des Dokumentes passiert
. In diesem Falle allerdings lässt sich das in die Tat umsetzen.
.

