Benutzerdefinierte Eigenschaft in Bedingung abfragen

Hallo!

Ich verwende LibreOffice 26.2.2.2 für den Mac und habe folgende Frage. Ich möchte in einem Writer Dokument Eigenschaften verwenden, die ich zuvor unter Datei / Eigenschaften / Benutzerdefinierte Eigenschaften festgelegt habe. Als einfaches Beispiel zu dem, was ich mir vorstelle sind hier die zwei Werte für den Namen und den Genus der Anrede (Herr Müller):

Eigenschaft 1
Name: Nachname, Art: Text, Wert: Müller

Eigenschaft 2
Name: AnredeIstMännlich, Art: Ja oder Nein, Wert Ja

Mein Wunsch wäre es, die Anrede mit einem bedingten Text zu gestalten, also

WENN AnredeIstMännlich
DANN Sehr geehrter Herr
SONST Sehr geehrte Frau

gefolgt von dem Namen (hier Müller). Ergebnis sollte sein: Sehr geehrter Herr Müller.

Wenn ich diese Dokumenteneigenschaften testweise einfach als Feld in das Dokument einfüge mit [Einfügen / Feldbefehl / Weitere Feldbefehle / Dokumentinfo / Benutzerdefiniert], gibt Writer zutreffenderweise true und Müller aus. So weit so gut …

Wenn ich aber nun versuche den boolschen Wert mit einem bedingten Text [Einfügen / Feldbefehl / Weitere Feldbefehle / Funktionen / Bedingter Text] zu verknüpfen, funtioniert das nicht. Ich erhalte immer die Ausgabe aus dem DANN Feld, selbst wenn ich in den Benutzerdefinierten Eigenschaften den Wert für AnredeIstMännlich auf Nein setze.

Die Bedingung habe ich so formuliert

Bedingung: Dokumentinfo:AnredeIstMännlich
Dann: Sehr geehrter Herr
Sonst: Sehr geehrte Frau

In der Feldfunktionsansicht sieht das so aus:
Bedingter Text Dokumentinfo:AnredeIstMännlich Sehr geehrter Herr : Sehr geehrte Frau

Die Ausgabe ist aber immer “Sehr geehrter Herr” und zwar unabhängig davon ob ich den Wert für AnredeIstMännlich auf Ja oder Nein setze.

Ist es bei LibreOffice Writer überhaupt möglich, die Benutzerdefinierten Eigenschaften in Bedingungen abzufragen.

Vielen Dank fürs Mitdenken!

Für den Anhang hat das funktioniert:

6987.odt (9,9 KB)

2 Likes

Hab’ Dank für die Antwort.

Wenn ich das richtig sehe, verwendest Du Werte aus einer Datenbank als Bedingung für den bedingten Text. Das hatte ich mir ohnehin auch schon einmal überlegt. Es erscheint sinnvoll die Adressaten in einer Datenbank zu erfassen. Da ich bisher noch keine Erfahrung mit Base und der Einbindung der Daten in Writer gesammelt habe, wollte ich aber zunächst einmal die Werte aus den benutzerdefinierten Eigenschaften des Dokument selbst verwenden.

Ich habe zwischenzeitlich in der englischen Abteilung einen ähnlichen Post gefunden.

Unterm Strich lautet das Ergebnis wohl, dass man benutzerdefinierte Eigenschaften nicht zum Gegenstand einer Bedingung machen kann, was mich verwundert, weil die Möglichkeit benutzerdefinierte Eigenschaften vom Typ “Wahrheitswert” (Ja oder Nein - bzw. bool) zu setzen ja eigentlich nur sinnvoll ist, wenn man den Wahrheitswert auch abfragen kann.

Offenbar muss man im Moment jedenfalls den Weg über eine Steuerseite gehen, auf der man die Abfragewerte zunächst als Variablen setzt. Die Variablen funktionieren nämlich ohne weiteres als Wert für bedingten Text. Beispiel:

Variable setzen gender = male
Bedingter Text gender == “female” Sehr geehrte Frau : Sehr geehrter Herr

Aber ich dachte eben, ich müsste nicht den Weg über die Variablen gehen, sondern könnte direkt die Werte aus den benutzerdefinierten Eigenschaften verwenden.

Das siehst Du richtig.

Mit denen habe ich noch nie gearbeitet, kann daher nichts dazu sagen.

Die sehen optisch eigentlich erstmal ganz nützlich aus:

Ja, das können sie auch sein.
Beispielsweise für Wörter, die häufig im Text vorkommen ist dies eine Erleichterung, insbesondere dann wenn sich diese Wörter auch nachträglich noch ändern können.
Dann muss ich sie nur an einer Stelle ändern.


Fürs Erste scheinen mir hier die Variablen richtig.

Falls es sich um Serienbriefe handelt:

https://wiki.documentfoundation.org/Videos/Mail_Merge_in_Writer/de


Handbücher

1 Like

Ich nutze diese Eigenschaften zur Zeit für das Handbuch zur XRechnung-Erstellung. Da ändere ich dann das Erscheinungsdatum, die Version der Datenbank, das Copyrightjahr usw. Bei mir sind diese Eigenschaften dann alle Text.
.
Was ich mit den anderen Varianten anfangen soll, speziell mit Ja/Nein, ist mir auch nicht klar. Ich würde Anreden schlicht auch als ein Feld in die Eigenschaften mit einfügen. Dann muss aber leider der Text für die Anreden dort auch entsprechenden geändert werden.
.
Irgendetwas (merkwürdiges?) müssen sich die Urheber(innen) aber dabei gedacht haben. Wenn ich ´eine Kombination aus Datum und Zeit erstelle dann kommt die so nicht im Text über. Schreibe ich eine Dezimalzahl, dann wird die im Text mit Dezimalpunkt statt Dezimalkomma dargestellt. Und besonders lustig ist die Angabe einer Zeitdauer: + J: 0 M: 0 T: 5 H: 12 M: 0 S: 0 steht für eine Dauer von 5 Tagen und 12 Stunden. Das kann eigentlich alles nur Sinn machen, wenn ich die Dokumente an andere Leute weiter gebe, die dann z.B. nachschauen wollen, wie lange ich angegeben habe, an diesem Dokument gearbeitet zu haben.
.
Und: Weder Hilfe noch Handbuch Writer helfen in dieser Beziehung tatsächlich weiter. Im Handbuch ist das beschrieben, was ich mache, in der Hilfe eigentlich - nichts.

1 Like

Das stimmt absolut. Ich möchte eine Vorlage für Mandatsunterlagen erstellen, die im Grund aus drei verschiedenen Urkunden bestehen: Vollmacht, Vergütungsvereinbarung und Datenschutzerklärung. Um nicht für jede der Urkunden erneut Name, Anschrift, etc. des Mandanten eintragen zu müssen, bietet sich die Lösung mit den Benutzerdefinierten Eigenschaften an.

Ich benötige darüberhinaus auch den bedingten Text abhängig vom Genus - und zwar nicht nur bei der Anrede. Im Text gibt es einige Stellen, bei denen es abhängig vom Genus dann “Auftraggeber” oder “Auftraggeberin” heißt, auch um diesen Begriff herum, müsste der bedingte Text grammatikalisch angepasst werden (“der von der Auftraggeberin geleistete Vorschuss” vs. “der vom Auftraggeber geleistete Vorschuss”).

Ich denke im Moment ist der beste Weg, am Anfang des Dokument (unsichtbar) eine Textvariable (gender) zu setzen und den bedingten Text daran anzuknüpfen.

Ich bedanke mich herzlich, für das allseitige Feedback.

1 Like

Du musst im Dialog “Feldbefehl bearbeiten” rechts ein entsprechendes Format auswählen.
Dort beispielsweise über “Weitere Formate…”.


Mit der Dezimalzahl konnte ich die Darstellung mit Komma erreichen, nachdem ich es bei den Eigenschaften mal mit Punkt versucht habe und dann zurück zum Komma.
Schon seltsam.

Vielleicht kommt da mit zukünftigen Updates ja noch eine Funktionserweiterung. Im Moment sind die Benutzerdefinierten Eigenschaften jedenfalls nicht besonders gut dokumentiert, aber es gibt ja dieses freundliche Forum und für mein konkretes Thema ja auch quasi schon einen Workaround.

Ich habe auch schon versucht, den Wert einer Benutzerdefinierten Eigenschaft einer Variablen zuzuweisen. Das hat so:

Variable setzen varGender = Dokumentinfo:Gender

leider nicht geklappt. Es wurde der Variablen dabei lediglich der Begriff “Dokumentinfo:Gender” als Text zugewiesen. Einen Versuch war’s wert :wink:

Ich verwende benutzerdefinierte Eigenschaften für die Konfiguration von Makros.
Die Hilfeseite für bedingte Felder legt nahe, dass die benutzerdefinierten Eigenschaften nicht in diesem Zusammenhang funktionieren. Ich steige da aber auch nicht ganz durch.
Ich verwende für diese Problematik Serienbrief-Felder, die mit den Spalten einer Datenbanktabelle (z.B. Adressliste) verbunden sind.

  1. Öffne das angehängte Dokument.
  2. Öffne das Datenquellenfenster (Strg+Umschalt+F4) und wähle links “Bibliography”>Tabelle “biblio”.
  3. Finde die leere Spalte “Custom3” und trage abwechselnd ein paar Einsen dort ein.
  4. Markiere einen dieser Einträge, indem Du den grauen Zeilenkopf klickst.
  5. Klicke auf der Symbolleiste über dem Datenquellenfenster die Schaltfläche “Daten in Felder”.

Die Anrede ist “Sehr geehrter Herr” wenn “Custom3” 1 ist und andernfalls “Sehr geehrte Frau”
ask134580.odt (11.1 KB)

Die “Bibliography” ergibt vom Inhalt her keinen Sinn. Das ist aber auch komplett egal, wenn es nur um die Demonstration der Datenbankfelder geht.

2 Likes

Ja, wenn man diese Hilfeseite sehr genau liest spricht viel dafür, dass neben Variablen und Datenbankdaten bestenfalls noch die in den LibreOffice / Einstellungen hinterlegten Anwenderdaten als Wert für eine Bedingung Verwendung finden können. Die Anwenderdaten sind aber ja global und nicht dokumentbezogen, so dass mir das auch nicht weiterhelfen würde.

Trotzdem merkwürdig, warum man Anwenderdaten über ein Bedingungsfeld auswerten kann, das aber mit den Dokumenteneigenschaften, auf die man ja normal im Text über entsprechende Felder auch zugreifen kann, nicht geht.

Ich lasse das hier mal als “Feature-Request” stehen :wink: