Writer: Text in zwei Formaten an drei Positionen automatisch eintragen

Moin.

Es gibt Dokumente, deren Dateiname folgt diesem Muster:

LOREM-2017-06-30.odt

Im Betreff steht:

Ipsum: LOREM-2017-06-30

Und als Datum steht im Dokument:

30.6.2017

Mit welchen Mitteln würdet ihr das Ganze so automatisieren, dass man
das Datum manuell nur einmal einträgt und das Kürzel (im Beispiel
LOREM) ebenso nur einmal?

Braucht man dazu Makros? Oder geht es einfacher? Mit Feldbefehlen?

Zu Feldbefehlen fand ich:
https://help.libreoffice.org/Impress/Fields/de#Dateiname

Man kann also den Dateinamen im Dokument einfügen lassen.
Aber wie kann man aus dem Dateinamen das Datum "extrahieren" und
"umformatieren" von JJJJ-MM-TT nach T.M.JJJJ?

Vermutlich geht das nicht und man muss doch einen Weg gehen, wo der
Dateiname aus dem Inhalt zweier Felder erzeugt wird, oder?

Über Euren Rat würde ich mich freuen. Mit solchen Automatisierungen
bin ich bisher unerfahren.

Danke.

Andreas

Es gibt Dokumente, deren Dateiname folgt diesem Muster:

LOREM-2017-06-30.odt

Im Betreff steht:

Ipsum: LOREM-2017-06-30

Und als Datum steht im Dokument:

30.6.2017

Mit welchen Mitteln würdet ihr das Ganze so automatisieren, dass man
das Datum manuell nur einmal einträgt und das Kürzel (im Beispiel
LOREM) ebenso nur einmal?

Das kommt darauf an, welche Freiräume es bei der Gestaltung des
Dokumentes gibt, wie bequem oder unbequem du bereit bist zu akzeptieren,
und einer ganze Reihe von Faktoren, über die du nix sagst (z. B. ob es
immer wieder das gleiche Dokument ist, das nur fortgeschrieben oder
kopiert o. ä. wird, oder jedes mal ein neues, aus externer Qeulle
stammendes Dokument; oder Henne-und-Ei, sprich ist zuerst das Dokument
da, und dann der Name, oder umgekehrt; usw.).

Wenn es z. B. möglich ist, das Ganze irgendwie in eine Tabelle als
äußersten Rahmen zu integrieren, könnte man relativ einfach mit
Zellverweisen (F2 => "=<A2>" o. ä.) arbeiten.

Oder Du kannst mit Referenzen arbeiten:
"Einfügen => Feldbefehl => Andere => Querverweis => Referenz setzen" bzw
"... => Referenz einfügen"; nach einer Aktualisierung der Referenz muss
"Extras => Aktualisieren => Felder" (bzw. F9) aufgerufen werden, damit
die Änderungen übertragen werden.

Oder ganz klassisches Suchen&Ersetzen verwenden.

Außerdem fällt mir noch "Einfügen => Feldbefehl => Andere => Variablen
=> ..." ein, mit dem man sicher auch einiges anstellen kann (aber damit
kenn ich mich nicht aus).

Bestimmte Operationen (insbesondere Rechenoperationen) lassen sich über
die Rechenleiste (F2) einfügen. Ob da allerdings auch Stringoperationen
darunter sind (bzw. welche Funktionen es überhaupt gibt; ich kenn gerade
noch ROUND), weiß ich aber nicht. Ich weiß nur (glaub ich zumindest),
dass die Funktionen englisch benannt sind, und dass die Umgekehrte
Polnische Notation erwartet wird (also z. B. "=1,98 ROUND")

Oder irgendwas davon (oder noch was anderes) als Makro implementieren.

Oder, oder, oder ...

Braucht man dazu Makros? Oder geht es einfacher? Mit Feldbefehlen?

Das kommt darauf an; das kommt darauf an; u. U. ja.

Zu Feldbefehlen fand ich:
https://help.libreoffice.org/Impress/Fields/de#Dateiname

Man kann also den Dateinamen im Dokument einfügen lassen.
Aber wie kann man aus dem Dateinamen das Datum "extrahieren" und
"umformatieren" von JJJJ-MM-TT nach T.M.JJJJ?

Z. B. Tag/Monat/Jahr als separate Referenzen definieren; evtl. gips auch
Stringoprationen bei den verfügbaren Funktionen, dann könntest Du damit
arbeiten; oder möglicherweise kann auch irgendwie der Datums-Teilstring
als Datum erkannt werden, dann wäre die Ausgabe nur noch eine
Formatierungsfrage; oder ...

Wolfgang

Wolfgang Jäth schrieb:

Es gibt Dokumente, deren Dateiname folgt diesem Muster:

LOREM-2017-06-30.odt

Im Betreff steht:

Ipsum: LOREM-2017-06-30

Und als Datum steht im Dokument:

30.6.2017

Mit welchen Mitteln würdet ihr das Ganze so automatisieren, dass man
das Datum manuell nur einmal einträgt und das Kürzel (im Beispiel
LOREM) ebenso nur einmal?

Das kommt darauf an, welche Freiräume es bei der Gestaltung des
Dokumentes gibt, wie bequem oder unbequem du bereit bist zu akzeptieren,
und einer ganze Reihe von Faktoren, über die du nix sagst (z. B. ob es
immer wieder das gleiche Dokument ist, das nur fortgeschrieben oder
kopiert o. ä. wird, oder jedes mal ein neues, aus externer Qeulle
stammendes Dokument; oder Henne-und-Ei, sprich ist zuerst das Dokument
da, und dann der Name, oder umgekehrt; usw.).

Ich wollte die Rahmenbedingungen nicht zu früh zu eng setzen, sondern
mich gerne auch inspirieren lassen von Lösungen, die ich vielleicht
nicht im Kopf habe.

Zur Bequemlichkeit:
Es soll zwingend deutlich bequemer sein als das bisherige Copy&Paste
und das manuelle eintippen des Datums im zweiten Format.
In diesem Punkt möchte ich keine Kompromisse machen. Alles, was nur
unwesentlich bequemer wäre, fände ich nicht reizvoll.

Das Dokument wird aus einer Vorlage heraus erzeugt.

Wenn es z. B. möglich ist, das Ganze irgendwie in eine Tabelle als
äußersten Rahmen zu integrieren, könnte man relativ einfach mit
Zellverweisen (F2 => "=<A2>" o. ä.) arbeiten.

Ich vermute mit so einem Ansatz müsste ich zuviele Kompromisse beim
Layout machen und vor allem auch das gesamte Layout neu entwickeln.
Lieber wäre mir das Verwenden des vorhandenen Layouts.

Oder Du kannst mit Referenzen arbeiten:
"Einfügen => Feldbefehl => Andere => Querverweis => Referenz setzen" bzw
"... => Referenz einfügen"; nach einer Aktualisierung der Referenz muss
"Extras => Aktualisieren => Felder" (bzw. F9) aufgerufen werden, damit
die Änderungen übertragen werden.

Innerhalb des Dokumentes gibt es ja jeden Bestandteil nur einmal.

Das Datum zwar zweimal, aber in sehr verschiedener Form. Daher kann
ich mir noch nicht vorstellen, an was Du bei der Verwendung von
Referenzen denkst.
Und beim Dateinamen nützt einem wohl die Referenz nix.

Außerdem fällt mir noch "Einfügen => Feldbefehl => Andere => Variablen
=> ..." ein, mit dem man sicher auch einiges anstellen kann (aber damit
kenn ich mich nicht aus).

Hhmm. Ich habe bisher noch keine Idee, auf welche Weise Variablen hier
nützlich sein können.
Also beim Ändern des Formates bzw. beim Füllen des Dateinamens bzw.
dem Extrahieren eines Textes aus ihm.

Oder irgendwas davon (oder noch was anderes) als Makro implementieren.

Oder, oder, oder ...

Braucht man dazu Makros? Oder geht es einfacher? Mit Feldbefehlen?

Das kommt darauf an; das kommt darauf an; u. U. ja.

Ich hatte gehofft, es hat jemand schonmal was Ähnliches gelöst.

Falls es noch nicht aufgefallen ist:
es geht um Rechnungen.

Zu Feldbefehlen fand ich:
https://help.libreoffice.org/Impress/Fields/de#Dateiname

Man kann also den Dateinamen im Dokument einfügen lassen.
Aber wie kann man aus dem Dateinamen das Datum "extrahieren" und
"umformatieren" von JJJJ-MM-TT nach T.M.JJJJ?

Z. B. Tag/Monat/Jahr als separate Referenzen definieren; evtl. gips auch
Stringoprationen bei den verfügbaren Funktionen, dann könntest Du damit
arbeiten; oder möglicherweise kann auch irgendwie der Datums-Teilstring
als Datum erkannt werden, dann wäre die Ausgabe nur noch eine
Formatierungsfrage; oder ...

Wenn man Tag Monat Jahr als einzelne Felder definiert, dann braucht
man eigentlich nur noch eine Möglichkeit beim "ersten Speichern" einen
Namen "vorschlagen zu lassen", der sich aus den Feldern zusammensetzt.

Die Aufgabe wäre gelöst.

Feld 1: Empfängerkürzel aus 3-4 Buchstaben
Feld 2: Jahr
Feld 3: Monat
Feld 4: Tag

Ergebnis:

Dateiname: 1-2-3-4

Fertig wäre die Sache.

Andreas

Hallo Andreas,

mein Gefühl sagt mir, dass man da schon ein Makro braucht. Es wird sicher nicht kompliziert sein, aber einen kleinen Dialog aufrufen, der die erforderlichen Angaben erfragt (was für den Anwender natürlich das eifachste ist). Das müsste eigentlich außer den von dir genannten 1 -4 noch eine fünfte sein, denn du nennst ja in deiner ersten Mail außer dem Datum "LOREM" _und "Ipsum"_. Das Datum kann eventuell aus dem Tagesdatum ermittelt werden, das kann auch im Dialog als Alternative zum manuellen Eingeben angeboten werden.
Ich habe die konkreten Zuweisungen zu den Feldern noch nie selbst ausprobiert, denke aber, das könnte prinzipiell bei den Ereignissen "Dokument geöffnet" oder "Dokument speichern" passieren.
Da du von einer Vorlage ausgehst, erhält ja jedes neu erzeugte Dokument den Makro-Code und die Aufrufe bei den entsprechenden Ereignissen.

Gruß

Gerhard

Gerhard Weydt schrieb:

mein Gefühl sagt mir, dass man da schon ein Makro braucht. Es wird
sicher nicht kompliziert sein, aber einen kleinen Dialog aufrufen, der
die erforderlichen Angaben erfragt (was für den Anwender natürlich das
eifachste ist).

Ich habe keine Programmierkenntnisse, daher ist mir der Weg
verschlossen.
Dann müsste ich ein fertiges Makro finden, welches ich entsprechend
anpassen kann.

Vielleicht gibt es ja doch einen Weg, den Dateinamen aus Feldinhalten
erzeugen zu lassen.

Das müsste eigentlich außer den von dir genannten 1 -4
noch eine fünfte sein, denn du nennst ja in deiner ersten Mail außer dem
Datum "LOREM" _und "Ipsum"_.

"Ipsum" ist keine Variable.
Es gibt wirklich nur die aufgezählten 4.

Das Datum kann eventuell aus dem Tagesdatum
ermittelt werden, das kann auch im Dialog als Alternative zum manuellen
Eingeben angeboten werden.

Das wäre natürlich hübsch.

Danke bis hierher schonmal für Eure Gedanken.

Gruß, Andreas

Andreas

Andreas Borutta schrieb:

Vielleicht gibt es ja doch einen Weg, den Dateinamen aus Feldinhalten
erzeugen zu lassen.

Das Thema Feldbefehle ist wirklich äußerst komplex. Ich stehe da noch
komplett am Anfang.

Stichworte:

Eingabefelder
Variablen
Platzhalter
Eingabeliste
...

Uff.
Soviele Konzepte, die es sauber auseinanderzuhalten gilt.

Einiges steht im http://www.ooowiki.de

Beispiel:
http://www.ooowiki.de/EingabeFeld.html

Könnt ihr alternativ noch ein anderes Tutorial zum Thema Feldbefehle
empfehlen, welches mit praxisnahen Beispielen detailliert das Ganze
aufbereitet?

Andreas

Andreas Borutta schrieb:

Andreas Borutta schrieb:

Vielleicht gibt es ja doch einen Weg, den Dateinamen aus Feldinhalten
erzeugen zu lassen.

Das Thema Feldbefehle ist wirklich äußerst komplex. Ich stehe da noch
komplett am Anfang.

Stichworte:

Eingabefelder
Variablen
Platzhalter
Eingabeliste

Formularfeld
...

Nehmen wir mal an, es geht erstmal nur um eine "assistierte
Eingabe"/"assistiertes Ausfüllen".

Dazu wird die Dokumentvorlage geöffnet und ein neues Dokument
erscheint.

Die erste Stelle, an der der Nutzer etwas eingeben soll, soll bereits
markiert sein. Praktischerweise sollte dabei der "Stellvertreter" (ich
sage bewußt nicht Platzhalter, weil das vielleicht im Kontext etwas
anderes bedeutet) markiert sein, so dass er beim Tippen überschrieben
wird.

Das Folgende würde also erscheinen:

Rechnungsnummer: [KÜRZEL]-[JAHR]-[MONAT]-[TAG]

Dabei wäre "Kürzel" markiert.
Sobald der Nutzer die Tab-Taste drückt, soll der nächste
"Stellvertreter", also "Jahr" markiert werden.
Ganz ähnlich wie man es aus Webformularen kennt.

Welches Konzept aus LO-Writer ist für sowas am besten geeignet?

Andreas

Andreas Borutta schrieb:

Dabei wäre "Kürzel" markiert.
Sobald der Nutzer die Tab-Taste drückt, soll der nächste
"Stellvertreter", also "Jahr" markiert werden.
Ganz ähnlich wie man es aus Webformularen kennt.

Welches Konzept aus LO-Writer ist für sowas am besten geeignet

Ich habe es mal mit "Einfügen > Feldbefehl > Weitere > Variablen >
Variable setzen > Name: Jahr > Wert: 2040" versucht.

Es scheint keinen Weg zu geben den Wert einer gesetzten Variable zu
ändern, ohne dass ein umständliches Dialogfeld öffnet.
Aber vielleicht übersehe ich auch was.

Andreas

Hallo Andreas,

ich verstehe nicht genau, was du umsetzen möchtest
Völlig unbedarft würde ich folgendes vorschlagen:

Im Betreff hinter "Ipsum" ein Feld einfügen, das den Dateinamen ohne Extension übernimmt
Ipsum: (Feld Dateiname ohne Erweiterung)
[STRG+F2 (=Feldbefehle) / Reiter "Dokument", Spalte "Typ" "Dateiname"; Spalte "Format" "Dateiname ohne Erweiterung"]

Das Datum ebenfalls als Feldbefehl einfügen
Datum: (Feld "Datum fix")
[Reiter "Dokument" Spalte "Typ" "Datum"; Spalte "Auswählen" "Datum fix"; Spalte "Format" unter "weitere Formate" kann die Jahreszahl vierstellig eingestellt werden]

Das Dokument als Vorlage abspeichern.
Alle auf dieser Vorlage erstellten Dokumente erhalten als Betreff den Dateinamen.
Solange der Tag der Erstellung des Dokumentes und das Datum der Rechnungsstellung übereinstimmen, sollte alles so sein, wie du es wünschst.

Gibt es zwischen dem Tag der Rechnungserstellung und dem Rechnungsdatum Differenzen, kann über ein Doppelklick auf das Datum mit "Verzögerung in Tagen" das Datum in Grenzen korrigiert werden.

Eine andere Möglichkeit wäre für das Datum ein Eingabefeld zu erstellen. Wird aus der Vorlage ein Dokument erstellt, öffnet sich das Eingabefeld automatisch. Das Datum kann eingetragen werden. Soll es später geändert werden, genügt ein Klick darauf.

Eingabefeld erstellen:
STRG+F2 / Reiter "Variablen" Spalte "Typ" / "Variable setzen" bei "Name" "Datum" eingeben; bei "Wert" ein Datum eintragen; Das "Format" auf "Text" stellen / mit "Einfügen" abschliessen.

Im Text den Feldbefehl wieder löschen
(Um das Eingabefeld erstellen zu können, muss eine Variable existieren, die die Eingaben übernimmt. Fügt man an anderen Stellen im Dokument den Typ "Variable anzeigen" ein, wird dort derselbe Inhalt angezeigt, der mit dem Eingabefeld definiert wurde.)

Unter "Typ" "Eingabefeld" anwählen / bei "Hinweis" tt.mm.jjjj" eingeben / mit "Einfügen" abschliessen.
Im nun erschienenen Eingabefeld das gewünschte Datum eingeben, mit "OK" bestätigen und das Dokument als Vorlage speichern.

mit bestem Gruss,
Jürgen

------ Originalnachricht ------