Seite 1 von 1

dateiname aus Betreffzeile generieren

Verfasst: Di, 29.05.2007 15:25
von Speedy
Hallo zusammen,

warscheinlich bin ich nicht der erste, der diese Frage stellt, doch ich kann leider keinen Eintrag finden.

Ich arbeite schon ne weile mit OOo (Seit V. 1.1.0) und habe auch einige Vorlagen erstellt. Leider habe ich mich bis hezute noch nicht mit den Möglichkeiten der Makros auseinander gesetzt.

Hier also meine Frage:

Ich habe eine Dokumentenvorlage (Brief / Fax / etc.) welche ich rege benutze. Ich möchte jetzt, dass mir OOo den Dokumenten / Dateinamen immer aus bestimmten Feldern / Zeilen generiert

Also z.B. <DATUM>-<EMPFÄNGER>-<BETREFF>

Kann mir einer vielleicht helfen wie ich das machen kann / muss.

Schon jetzt daanke und grüße

Jörg

Re: dateiname aus Betreffzeile generieren

Verfasst: Di, 29.05.2007 17:40
von komma4
Speedy hat geschrieben:Ich möchte jetzt, dass mir OOo den Dokumenten / Dateinamen immer aus bestimmten Feldern / Zeilen generiert

Also z.B. <DATUM>-<EMPFÄNGER>-<BETREFF>
Hast Du schon richtig erkannt: hier kommt ein Makro zum Einsatz.
Frage ist hier: was verstehst Du unter Datum. Empfänger und Betreff? Felder aus einer verbundenen Datenquelle?

Und: besteht Deine Anforderung in einem automatischen Speichern unter dem vorgegebenen Dateinamen (in welchem Verzeichnis?), oder soll der Dateiname im Speichern-Dialog vorgeschlagen werden, aber änderbar sein? Was soll bei einer vorhandenen Datei gleichen Namens (am vorgesehenen Speicherort) passieren?

Verfasst: Di, 29.05.2007 19:39
von Speedy
Frage ist hier: was verstehst Du unter Datum. Empfänger und Betreff? Felder aus einer verbundenen Datenquelle?
Datum, Betreff und Empfänger sind Zeilen / Felder aus dem Dokument, nicht aus einer Datenquelle
Und: besteht Deine Anforderung in einem automatischen Speichern unter dem vorgegebenen Dateinamen (in welchem Verzeichnis?), oder soll der Dateiname im Speichern-Dialog vorgeschlagen werden, aber änderbar sein? Was soll bei einer vorhandenen Datei gleichen Namens (am vorgesehenen Speicherort) passieren?
Also es soll nur der Dateiname im Speicher-Dialog vorgeschlagen werden. Sollte ein Dokument schon vorhanden Sein, soll nach dem Datum einfach "_1" eingetragen werden. Aber im Grunde kann ich das dann auch Händisch machen. Mir geht es nur darum den Dateinamen nicht immer neu zusammensetzten zu müssen. Das Verzeichnis ist ein Standardverzeichnis nach der Art:
x:\schriftwechsel

Schon jetzt danke für deine Mühe

Verfasst: Di, 29.05.2007 23:16
von komma4
Speedy hat geschrieben: Datum, Betreff und Empfänger sind Zeilen / Felder aus dem Dokument, nicht aus einer Datenquelle
Was sind für Dich "Felder"? Wie genau erzeugt?
Wie soll eine Programmierung "eine Zeile" finden? Ist natürlich möglich, wenn Du sagst "ich wohne in Brunsbüttel, also steht das Datum nach der Zeichenkette "Brunsbüttel, " und Betreff steht hinter "Betreff: ".... Das sollten wir noch klären, wo genau die Werte für den Namen kommen...

Wenn Du immer in einem Zielverzeichnis speicherst - und noch eine "halb-automatische" Nummerierung haben möchtest: empfehle ich ein Makro auf Tastenkombination [STRG+Umschalt+S] zu legen, gar nicht mal einen Dateidialog anzuzeigen.

Verfasst: Mi, 30.05.2007 17:43
von Speedy
Hallo,

also wie ich das Definiere würde ich in diesem Fall dir überlassen. Vielleicht über Textmarken oder über Felder (Feldfunktionen).

Wenn du mir Sagst wie es am einfachsten geht, ist es mir gleich! Hauptsache es funktioniert.

Grüße

Jörg

Verfasst: Do, 31.05.2007 00:28
von komma4
Codebeispiel zum Holen des Inhalts einer Textmarke

Code: Alles auswählen

sBriefDatum = _
ThisComponent.getBookmarks().getByName( "Datum" ).getAnchor().getString() 
Codebeispiel zum Holen des Inhalts einer benutzerdefinierten Variablen

Code: Alles auswählen

sMeinBetreff = _
ThisComponent.getTextFieldMasters().getByName("User.Betreff").Content
Speichern unter dem zusammengesetzten Namen

Code: Alles auswählen

ThisComponent.storeAsURL( ConvertToURL( sMeinDatum & sMeinBetreff, Array() )
Dies speichert ohne Dateierweiterung. Und überschreibt ohne Warnung!

Ein Codebeispiel für die Abfrage, ob die Zieldatei vorhanden ist, im Beispiel makeDayCopy.
Dort siehst Du auch Code, wie der Name um das Datum erweitert wird. Wenn Du noch die Uhrzeit anhängst, hast Du einen sekundengenauen, eindeutigen Dateinamen. Durch die Aufbereitung als ISO-Datum sind die Dateien dann auch prima sortierbar.
Reicht das als Anregung?