(gelöst) Feldbefehl / Datum: Feld ermitteln

Antwort erstellen


BBCode ist eingeschaltet
[img] ist ausgeschaltet
[url] ist eingeschaltet
Smileys sind ausgeschaltet

Die letzten Beiträge des Themas
   

Ansicht erweitern Die letzten Beiträge des Themas: (gelöst) Feldbefehl / Datum: Feld ermitteln

Re: Feldbefehl / Datum: Feld ermitteln

von LokutusvB » Mo, 08.02.2010 17:19

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. :).

Re: Feldbefehl / Datum: Feld ermitteln

von komma4 » Mo, 08.02.2010 16:35

öffnen aus Vorlage, speichern unter gewünschtem Namen in erwarteten Ordner. Gut is 8)


Nein... ich kann kein Delphi :lol:

Re: Feldbefehl / Datum: Feld ermitteln

von LokutusvB » Mo, 08.02.2010 16:19

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.

Re: Feldbefehl / Datum: Feld ermitteln

von komma4 » Mo, 08.02.2010 16:07

Frage: warum "kopiert" Dein Programm eine Vorlage - warum öffnet sie nicht ein neues Dokument aus der Vorlage?

Dann klappt das mit dem Datum-fix...

Re: Feldbefehl / Datum: Feld ermitteln

von LokutusvB » Mo, 08.02.2010 15:49

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.

Re: Feldbefehl / Datum: Feld ermitteln

von komma4 » Mo, 08.02.2010 15:44

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?

Re: Feldbefehl / Datum: Feld ermitteln

von LokutusvB » Mo, 08.02.2010 15:39

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.

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
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.

Re: Feldbefehl / Datum: Feld ermitteln

von komma4 » So, 07.02.2010 05:30

So ein Feld ist ein TEXTFIELD, bspw. über eine createEnumeration des Dokuments zu erreichen.

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?

(gelöst) Feldbefehl / Datum: Feld ermitteln

von LokutusvB » Fr, 05.02.2010 11:55

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

Nach oben