Feldfunktionen in Formularelemente einsetzen

Folgendes Problem habe ich, wobei das Dokument auf die wesentlichen Angaben reduziert ist:
Es soll ein durch Feldfunktionen gesteuertes Dokument werden. Der Text liegt vor und soll durch weitere Angaben, wie Adresse, Anrede und weiteren feststehenden Angaben ergänzt werden. Diese Texteingaben müssen nachträglich händisch in das Dokument eingegeben werden, eine Datenbank steht nicht zur Verfügung. Nach dem Eintragen soll das Dokument als PDF-File ausgedruckt werden. Das Dokument muss unverändert als Writer-Ffile vorliegen, weil im Text weitere durch Feldfunktionen gesteuerte Passagen enthalten sind und gelegentlich auch noch individuelle Ergänzungen vorgenommen werden müssen.

Zur Ausgangsüberlegung: es wird eine einfache zweispaltige Tabelle angelegt. In der ersten Spalte stehen die Bezeichnungen der einzutragenden Daten und in der zweiten Spalte werden zunächst nur die Bezeichnungen der Verweismarken; beginnend mit einen Unterstrich _, eingetragen. Mit den Feldfunktionen werden jetzt die Verweismarken gemäss den Bezeichnungen angelegt. Jetzt können mit der Feldfunktion die Verweismarken beliebig im Dokument plaziert werden.
Das ist im wesentlichen die lehrbuchmäßige Vorgehensweise, mit Ausnahme der hier zusätzlich angelegten Tabelle.

Und jetzt das Problem: trage ich jetzt die vorgesehenen Daten in die Tabelle ein, werden die als Verweis angelegten Texte gelöscht und durch die neuen Angaben ersetzt - die Verweismarken werden gelöscht. Der Prozess funktioniert nicht mehr.

Zur Umgehung dieses Problems wollte ich Formular-Felder verwenden und sie entsprechend benennen: z.B. das Formular-Textfeld soll einen Verweis erhalten, der dann unabhängig von der eigentliche Textlänge des eingegebenen Wortes ist.
(Für die Experten, denen der Navigator vertraut ist: das Zeichnungsobjekt soll einen Verweis erhalten.)

Wie muss ich da vorgehen um das zu erreichen?
Ist das mit einfachen Bordmittel umsetzbar oder ist ein Makro erforderlich?
Formulardaten.odt (9.6 KB)

Werner

Moin, über Menü Datei/Eigenschaften… Reiter Benutzerdefinierte Eigenschaften, kannst du im Dokument Felder selber definieren, die du überall im Dokument verwenden kannst. Um die Felder im Dokument einzutragen: STRG+F2/Reiter Dokumentinfo/Benutzerdefiniert aufklappen, dann einfach an der Stelle einfügen, wo sie benötigt werden. Ausserdem dazu zwei kleine aufgezeichnete Makros, die z.B. per Klick auf eine Schaltfläche Daten aufnehmen oder Daten verwenden direkt zu diesen Menüeinträgen springen, fertig, Beispiel anbei.
Formulardaten_F3K.odt (15.0 KB)

Gruß R

1 Like

Dieses Verfahren kannte ich noch nicht. Werde ich mal durchspielen und berichten.
Grundsätzlich scheint dieses Verfahren recht einfach und übersichtlich zu sein, jedoch scheint mir die Dateneingabe noch etwas gewöhnungsbedürftig zu sein. Ich versuche mal diesen Weg auszureizen.

Werner

Hallo Werner,
“…jedoch scheint mir die Dateneingabe noch etwas gewöhnungsbedürftig zu sein…”
Was meinst du damit?
Links hast du die Feldbezeichnung, rechts den Feldinhalt, genau wie in deiner Tabelle!

Hallo @F3KTotal / Lucky, sorry für die undifferenzierte Aussage, ich hatte nur mal auf die Schnelle den Vorschlag angesehen und NICHT die Eingabe verwendet und leider den Button “übersehen” - das war unverzeihlich, tut mir leid. (Bin nur mal auf die Schnelle nach einer längeren Fahrt nachhause gekommen und mit Freude den Vorschlag gesehen und wollte ihn mir nur mal kurz ansehen - fatal)
Dafür habe ich mir jetzt mit etwas mehr Zeit Deinen Vorschlag nochmal in aller Gründlichkeit angesehen und getestet. Das oben beschriebene Problem kann ich damit auf einfache Weise lösen - sogar mit überschaubaren Bordmitteln. Jetzt geht es ans “Eingemachte” mit dem eigentlichen Text.
Da muss ich mich aber in aller Ruhe hinsetzen, weil die verschiedenen Bedingungen formuliert und ausgearbeitet werden müssen - der lange Text darf keine zweite Seite erzeugen.

Werner

Moin Werner,
das ist erfreulich, bitte kennzeichne die Lösung.

So, hier das Dokumentenfile. Alle Vereinshinweise sind entfernt und die Einleitung ist anonymisiert ersetzt, die kritischen Passagen sind enthalten. Durch eine längere Einleitung ist der Brief schon äusserst knapp formuliert, mehr an Text geht nicht.
Formulardaten.V2.odt (14.8 KB)

Werner

Mit diesem Vorschlag konnte ich die Adresse und einige andere feststehenden Angaben in der Originalvorlage einarbeiten, einzig bei den Auswahlfelder (wie Anrede: Herr/Frau, sowie der Art der Mitgliedschaft) habe ich noch keine einwandfrei funktionierende Lösung gefunden. Merkwürdigerweise funktioniert aus mir nicht nachvollziehbaren Gründen der “bedingte Text” nicht.

Werner

Dann lade doch dein Dokument hoch…da wird dir schon geholfen werden…

Online-Hilfe:

Bedingter Text

Soweit habe ich es auch schon gebracht, denn diese Passage (allerdings Version 7.3) hatte ich verwendet. Dennoch kriege ich den bedingten Text nicht “zum laufen”; siehe in meinen Writer-Text.
Es muss also irgendwas den Vergleich “stören”, nur was??

Was mich an dem Beispiel irritiert, ist, dass für die Variable der Wert 1 verwendet wird und im nachfolgenden Anwendungsfall wird dann die 3 abgefragt. Es fehlt ein Anwendungsfall für einen Wert aus der Dokumentinfo. Ich habe die Anrede als Variable verwendet, aber weshalb sollte ich da eine Zahl einsetzen? M.e. ein Irgendwie inkonsequentes Beispiel.
Meine Vorgehensweise:

  1. ich füge im Dokument mit +F2 die Marke “Anrede”,
  2. ich markiere die Marke “Anrede” und setze eine Querverweis (“Verweis festlegen”) mit _anrede
  3. setzen einer Variablen mit oanrede = _anrede
  4. Bedingter Text "oanrede == “Herr” ; wenn “geehrter” dann “geehrte”
  5. einfügen
    Das ist meine Abfolge. was ist daran falsch?

Also ich habe es nach der Anleitung getestet und es funktioniert.

Es sind im Prinzip 2 Schritte erforderlich für die Erstellung des bedingten Textes (so wie es im Link beschrieben ist).

Du musst erst die Variable anlegen (sie ist hier im Beispiel quasi der Umschalter für “Herr” und “Frau” = “1 / 3”).
Diese Variable solltest Du in Deiner ersten “Steuerseite” anlegen, wo Du auch Deine Tabelle hast.
Als Name z.B. “Anrede”"
Dann die Variable als Text in die Steuerseite einfügen.
Die Variable wird dann im Text als ein kleines Feld mit einer 1 angezeigt.

Im zweiten Schritt gibst Du nach Anweisung den bedingten Text ein (in Dein Dokument als Anrede), wie beschrieben.
Die “Bedingung” lautet dann Anrede EQ "3" (EQ steht wohl hier für equal, also =)
Bei “Dann” trägst Du “Frau” ein.
Bei “Sonst” trägst Du “Herr” ein. (sofern “Herr” öfters benötigt wird, sonst umgekehrt).
Wenn Du an der Variablen nichts änderst sollte der bedingte Text nun “Herr” anzeigen.
Wenn im bedingte Text “Frau” stehen soll, gehst Du in die Steuerseite zur Variablen.
Du kannst auf die Variable doppel-klicken und im folgenden Menü gibst Du als Wert die 3 ein, somit wird der bedingte Text von “Herr” nach “Frau” wechseln.

Ich hoffe es hilft Dir weiter.
Ansonsten musst Du mal erläutern wo der Punkt ist, wo Du hängen bleibst.


88737 HB 20230305 Bedingter Text.odt (12,6 KB)


Ich habe gerade noch Deine editierte Ergänzung gelesen.
Bitte richte Dich bei Deinem Vorgehen ausschließlich an die oben im Link angegebene Ablauffolge.
Es wird kein Querverweis verwendet!


Nachtrag:

Oben die 3 muss in Anführungszeichen gesetzt sein, also “3”.

@Hrbrgr dieser Aufbau funktioniert, aber es gibt zwei für mich unverständliche Punkte:

  1. warum muss man mit Zahlen arbeiten und kann nicht einen abfragenden Text einsetzen, wie z.B. “Herr” oder “Frau”?
  2. wie wird die Variable geändert? Es ist keine Option im Fliesstext die Variable zu suchen um sie dann zu ändern. Ich gebe über “Eigenschaften/Benutzerdefinierte Eigenschaften” (Dokumentinfo) die Anrede mit “Herr” oder “Frau” als “Anrede” ins Dokument ein.
    Mit diesem Ansatz versteht jeder was gemeint ist, mit 1 oder 3 zwar auch, aber
    wozu dieser “Umweg”?
    Wie erhält die “Variable” den Wert von “Dokumentinfo:Anrede”?

Werner

@Werner_RJP - hallo Werner

warum muss man mit Zahlen arbeiten…

Solltest Du die Entwickler oder Dokumentersteller fragen.
Also ich habe mich speziell mit diesem Thema auch erst gestern beschäftigt und habe es anhand der Hilfe getestet, Hast Du es denn mal mit anderen Begriffen probiert? (Ich sehe da kein “muss” für Ziffern"). Ich nehme an die sind schneller zu ändern als irgendein Text.

wie wird die Variable geändert?

Habe ich schon beantwortet. Die Variable sollte in der Steuerseite, wo Du auch die Tabelle hast stehen., dann doppel-klick und im Dialog den Wert ändern.

Habe bereits mehrere “Stunden” damit verbracht, den bedingten Text mit anderen Daten als Zahlen zu füttern - funktioniert nicht. Diese Form des bedingten Textes ist m.E. eher ein Rückschritt, insbesondere ggü. MS Excel. Auch stellt sich mir der Begriff “Variable” in diesem Zusammenhang eher als “Konstante” dar, denn erst wenn ich den Wert im laufenden System ohne umständlichen Eingriffe in die Feldbefehle ändern kann, ist die Bezeichnung gerechtfertigt.
So long.
Werner

Ja, ich auch. Und das war jetzt der vierte Lösungsansatz der Dir angeboten wurde und die IMHO auch alle funktionieren.
Wenn Du natürlich (?) jahrelang mit MS-Office gearbeitet hast und Dich nicht auf LibreOffice einlassen möchtest, habe ich volles Verständnis.
MS-Office kannst Du z.B. auch über’s Netz bei Amazon (1 User mit Dauernutzung) bestellen.

Auf Wiedersehen.

Damit hier kein Mißverständnis entsteht: beruflich musste ich mit MS Office arbeiten, die letzten 30 Jahre. Aber ich will weg von MS und nur noch mit LO arbeiten, wenngleich es noch einiges an Verbesserungspotenzial birgt. Obwohl ich bereits einige Zeit mit LO arbeite, sind die langjährigen MS Office-Prozesse in Grundzügen noch vorhanden, sodass der Umstieg einige Umstände bereitet.
Tschüß

Da stimme ich Dir zu.
Aber als User müssen wir damit leben was da ist.
Verbesserungsvorschläge kannst Du aber jederzeit einreichen auf Bugzilla.

Wie man Fehler in LibreOffice meldet - und Verbesserungsvorschläge.

Nachtrag: in der Bedingung zum bedingten Text können auch alphanumerische Zeichen verwendet werden. Siehe Hanbuch “Writer” (Textverarbeitung) Kapitel 14 Handbuch Writer

1 Like

Und hier noch eine etwas ausführlichere Beschreibung:

Arbeiten mit Feldern - Beispiel