Zum Inhalt springen

Formularbaukasten

Abhängigkeiten & Vergleichsoperatoren

Anzeigebedingungen einrichten, mit UND/ODER und Gruppen kombinieren, Zahlen vergleichen - und welcher Vergleichsoperator zu welchem Bausteintyp passt.

Über Anzeigebedingungen legst Du fest, ob ein Baustein, ein Bereich, eine Wiederholungsgruppe oder ein Abschnitt bzw. Wiederholungsabschnitt in der App überhaupt angezeigt wird: Du wählst einen Baustein, einen Vergleichsoperator und einen Vergleichswert. Diese Seite zeigt, wie Du eine Bedingung einrichtest, wie Du mehrere Bedingungen mit UND, ODER und Gruppen kombinierst - und welche Operatoren je nach Feldtyp zur Auswahl stehen.

Die Bedingung steht direkt im Eigenschaften-Panel des Bausteins bzw. in den Bereichseinstellungen, als Zeile Baustein anzeigen wenn, Bereich anzeigen wenn oder Abschnitt anzeigen wenn. Solange nichts eingestellt ist, steht dort (Immer anzeigen).

  1. Wähle im ersten Auswahlfeld den Baustein, von dem die Sichtbarkeit abhängen soll. Bausteine, die eine Kreisbedingung erzeugen würden, bietet die Liste gar nicht erst an.
  2. Wähle einen Vergleichsoperator (z. B. „ist“, „enthält den Text“, „ist größer“) - welche Operatoren zur Auswahl stehen, hängt vom Feldtyp des gewählten Bausteins ab; die vollständige Zuordnung findest Du unter Welche Operatoren bietet welcher Baustein?.
  3. Trage den Vergleichswert ein. Je nach Feldtyp ist das ein Textfeld, ein Zahlenfeld, eine Liste zum Auswählen (z. B. bei einer Listenauswahl oder einer Checkbox mit angehakt / nicht angehakt) oder - über das $-Symbol - der Wert eines anderen Bausteins. Bei „ist leer“ und „ist nicht leer“ entfällt der Vergleichswert.
Eigenschaften-Panel des Bausteins Bemerkung mit der Zeile „Baustein anzeigen wenn", darin die gewählte Quelle Nacharbeit nötig?, der feste Operator ist und der Wert angehakt, rechts daneben das hervorgehobene Filter-Symbol für den Dialog

Eine einzelne Bedingung richtest Du damit komplett in dieser Zeile ein. Rechts daneben liegt ein Filter-Symbol: Es öffnet den Dialog für erweiterte Anzeigebedingungen, in dem Du mehrere Bedingungen kombinierst. Sobald dort mehr als eine Bedingung hinterlegt ist, zeigt die Zeile statt der Einzelbedingung ein Badge mit der Anzahl, zum Beispiel 3 Anzeigebedingungen aktiv.

Mehrere Bedingungen kombinieren: UND, ODER und Gruppen

Abschnitt betitelt „Mehrere Bedingungen kombinieren: UND, ODER und Gruppen“

Das Filter-Symbol neben der Bedingungszeile öffnet einen Dialog mit dem Titel nach dem Muster Baustein {Titel} anzeigen wenn. Er ist so aufgebaut:

  • Links eine senkrechte Leiste mit den Schaltern UND und ODER. Sie legt fest, wie alle Einträge auf oberster Ebene - einzelne Bedingungen und Gruppen - miteinander verknüpft sind: Bei UND müssen alle zutreffen, bei ODER reicht einer.
  • In der Mitte die Bedingungen, jede in einer eigenen Zeile mit Baustein, Operator und Vergleichswert. Ein Drei-Punkte-Menü Optionen am Zeilenende bietet Löschen und die Gruppenfunktionen.
  • Unten die Buttons Bedingung hinzufügen, Gruppe hinzufügen und Schließen. Oben im Dialog setzt Erweiterte Bedingungen zurücksetzen alles auf eine einzelne, leere Bedingung zurück.
Dialog „Baustein Bemerkung anzeigen wenn" mit der UND-Leiste links, oben der Einzelbedingung Nacharbeit nötig? ist angehakt und darunter der hervorgehobenen Gruppe 1 mit eigener ODER-Leiste und den Bedingungen Ist-Menge ist kleiner 10 und Kunde informiert? ist nicht angehakt, unten die Buttons Bedingung hinzufügen, Gruppe hinzufügen und Schließen

Reicht ein einzelnes UND oder ODER für alle Bedingungen nicht aus, fasst Du einen Teil der Bedingungen zu einer Gruppe zusammen. Eine Gruppe hat ihre eigene UND/ODER-Leiste und zählt auf der obersten Ebene wie eine einzelne Bedingung. Typisches Beispiel: Ein Bemerkungsfeld soll erscheinen, wenn das Gewerk „Elektro“ ist und der Status entweder „offen“ oder „in Prüfung“ - also „Gewerk ist Elektro UND (Status ist offen ODER Status ist in Prüfung)“.

  1. Klicke unten im Dialog auf Gruppe hinzufügen. Die Gruppe erscheint als eigener Rahmen mit dem Titel Gruppe 1 (bei der nächsten Gruppe 2 usw.). Klicke auf den Titel, um ihn zu ändern - bis zu 50 Zeichen, zum Beispiel „Status offen oder in Prüfung“.
  2. Füge über den Button Bedingung hinzufügen im Rahmen der Gruppe die Bedingungen hinzu und stelle die Leiste der Gruppe auf UND oder ODER.
  3. Stelle die äußere Leiste auf die Verknüpfung, die zwischen der Gruppe und den übrigen Bedingungen gelten soll.

Bestehende Bedingungen verschiebst Du über ihr Drei-Punkte-Menü Optionen:

Eintrag Was passiert
In Gruppe umwandeln Macht aus der einzelnen Bedingung eine neue Gruppe mit dieser Bedingung als erstem Eintrag.
Zu Gruppe „{Name}“ hinzufügen Verschiebt die Bedingung in eine bereits vorhandene Gruppe - je Gruppe ein Eintrag.
Aus Gruppe herauslösen Holt eine Bedingung aus ihrer Gruppe zurück auf die oberste Ebene.
Löschen Entfernt die Bedingung.

Eine ganze Gruppe löschst Du über das Papierkorb-Symbol Gruppe löschen in ihrem Rahmen - die enthaltenen Bedingungen verschwinden dann mit.

Steht die äußere Leiste auf ODER und eine der Bedingungen noch auf (Immer anzeigen), warnt der Dialog: Eine immer erfüllte Bedingung in einer ODER-Verknüpfung bedeutet, dass das Element immer angezeigt wird - die übrigen Bedingungen wären wirkungslos.

Statt eines festen Vergleichswerts kannst Du den Wert eines anderen Bausteins heranziehen - zum Beispiel „Ist-Menge ist kleiner Soll-Menge“ oder „Rechnungsadresse ist nicht Lieferadresse“. Klicke dazu im Vergleichswert-Feld auf das $-Symbol Mit einem anderen Baustein vergleichen und wähle den Baustein aus der Variablenauswahl.

Bedingungszeile mit der Quelle Ist-Menge, dem Operator ist kleiner und als Vergleichswert der Variable Soll-Menge, daneben das hervorgehobene $-Symbol Mit einem anderen Baustein vergleichen

Dabei gilt:

  • Zur Auswahl stehen nur Bausteine mit demselben Datentyp wie die Quelle - Zahl mit Zahl, Text mit Text, Ja/Nein mit Ja/Nein, E-Mail mit E-Mail. Gibt es keinen, zeigt die Auswahl das an.
  • Der Vergleich mit einem anderen Baustein ist für Zahlen, Text, Checkbox (Ja/Nein) und E-Mail möglich. Bei einer Checkbox stehen dann ist und ist nicht zur Wahl.
  • Ein Baustein lässt sich nicht mit sich selbst vergleichen, und bei ist leer / ist nicht leer gibt es keinen Vergleichswert - entsprechend auch keinen Variablenvergleich.
  • Wie bei festen Werten gilt die Einschränkung für Wiederholungsgruppen: Der Vergleichsbaustein muss von der Stelle der Bedingung aus erreichbar sein (siehe Wenn eine Bedingung ungültig wird).

Verschiebst Du den als Bedingungsquelle gewählten Baustein an eine Stelle, von der aus er nicht mehr referenziert werden darf, markiert Offpaper die Bedingung als fehlerhaft, statt sie stillschweigend zu entfernen. Das betrifft drei Fälle:

  • Der Baustein liegt jetzt in einer Wiederholungsgruppe - von außerhalb lässt er sich nicht mehr referenzieren, weil es je nach Erfassung mehrere Werte gäbe.
  • Der Baustein liegt jetzt in einem Wiederholungsabschnitt - aus demselben Grund.
  • Die Bedingung liegt innerhalb desselben Bereichs, derselben Wiederholungsgruppe, desselben Abschnitts oder desselben Wiederholungsabschnitts, den sie selbst steuert - würde die Bedingung erfüllt, würde sie sich also selbst ausblenden. Eine solche Bedingung kann nie erfüllt werden.

Die fehlerhafte Bedingung bleibt in allen drei Fällen sichtbar bestehen, bis Du sie korrigierst oder entfernst - Offpaper löscht sie nie von selbst im Hintergrund.

Ein vierter Fall ist die Kreisbedingung: Baustein A hängt von Baustein B ab, und B wiederum von A - direkt oder über Zwischenschritte. Offpaper erkennt das auch über Bereiche und Abschnitte hinweg, zum Beispiel wenn B in einem Bereich liegt, dessen Anzeigebedingung von A abhängt. An beiden Enden erscheint dann eine Meldung nach dem Muster „Rekursive Bedingung: A -> B -> …“, die den Weg des Kreises nennt. Solange ein Kreis besteht, lässt sich das Formular nicht veröffentlichen.

Damit es gar nicht erst so weit kommt, blendet die Baustein-Auswahl einer Bedingung alle Bausteine aus, die einen Kreis schließen würden. Eine Kreisbedingung entsteht deshalb praktisch nur noch, wenn Du Bereiche nachträglich verschiebst oder Bedingungen an Bereichen änderst.

Es gibt 14 Vergleichsoperatoren in sieben Paaren. Die Tabelle nennt für jedes Paar die Bedeutung:

Operator Bedeutung
ist / ist nicht Der Wert entspricht exakt dem Vergleichswert (oder eben nicht).
enthält den Text / enthält nicht den Text Der Vergleichswert kommt irgendwo im Feldwert vor (oder eben nicht).
startet mit / startet nicht mit Der Feldwert beginnt mit dem Vergleichswert (oder eben nicht).
endet mit / endet nicht mit Der Feldwert endet mit dem Vergleichswert (oder eben nicht).
ist kleiner / ist größer Der Zahlenwert liegt unter bzw. über dem Vergleichswert - gleich zählt nicht.
ist kleiner oder gleich / ist größer oder gleich Wie oben, aber ein gleicher Wert erfüllt die Bedingung ebenfalls.
ist leer / ist nicht leer Der App-Benutzer hat den Baustein noch nicht ausgefüllt (oder eben doch).

Die vier Zahlenvergleiche gibt es für alle Bausteine, deren Wert eine Zahl ist: Zahleneingabe, Formel, Zeitdifferenz, Zeitraum, Arbeitszeit und Stammdaten-Spalten vom Typ Zahl. Als Vergleichswert erwartet das Feld eine Zahl - alles andere lehnt der Designer mit einer Meldung ab. Eine Zeitdifferenz vergleicht Offpaper dabei auf Bruchteile von Stunden genau: 1,5 Stunden sind also „größer 1“, nicht gleich 1.

Welche Operatoren zur Auswahl stehen, hängt vom Feldtyp des als Bedingungsquelle gewählten Bausteins ab. Grob gilt: Textfelder erlauben alle Textvergleiche, Zahlenfelder Gleichheit, Größer/Kleiner und Leerstand, rein grafische oder zeitliche Felder nur die Prüfung, ob überhaupt etwas erfasst wurde - und feste Anzeige-Bausteine lassen sich gar nicht als Bedingung wählen.

Die folgende Tabelle geht jeden Bausteintyp einzeln durch. Alle Textvergleiche steht dabei für die zehn Operatoren von „ist“ bis „ist nicht leer“ ohne die Zahlenvergleiche, Alle Zahlenvergleiche für ist / ist nicht, die vier Größer/Kleiner-Operatoren und ist leer / ist nicht leer - jeweils aus der Übersicht der Vergleichsoperatoren.

Baustein Verfügbare Operatoren
Arbeitszeit Alle Zahlenvergleiche (Wert ist die berechnete Arbeitszeit als Zahl)
Benutzerinfo ist / ist nicht, enthält den Text / enthält nicht den Text, startet mit / startet nicht mit, endet mit / endet nicht mit
Checkbox ist, mit dem Wert angehakt oder nicht angehakt; beim Vergleich mit einem anderen Baustein ist / ist nicht
Code-Scanner Alle Textvergleiche
Datum / Uhrzeit ist leer / ist nicht leer
E-Mail Alle Textvergleiche; der Vergleichswert ist ein eigenes E-Mail-Feld mit Gültigkeitsprüfung
Fester Text Nicht als Bedingung wählbar
Festes Bild Nicht als Bedingung wählbar
Festes PDF Nicht als Bedingung wählbar
Foto (einzeln) ist leer / ist nicht leer
Foto (mehrfach) ist leer / ist nicht leer
Formel Alle Zahlenvergleiche
Geo-Position ist leer / ist nicht leer
Listenauswahl Alle Textvergleiche
Multiple Choice (Audit) ist / ist nicht, enthält den Text / enthält nicht den Text, startet mit / startet nicht mit, endet mit / endet nicht mit
PDF-Upload ist leer / ist nicht leer
Skizze ist leer / ist nicht leer
Stammdaten Hängt vom Datentyp des gewählten Feldes ab
Text Eingabe Alle Textvergleiche
Trennlinie (Überschrift) Nicht als Bedingung wählbar
Unterschrift ist leer / ist nicht leer
Zahleneingabe Alle Zahlenvergleiche
Zeitdifferenz Alle Zahlenvergleiche (auf Bruchteile von Stunden genau)
Zeitraum Alle Zahlenvergleiche (Wert ist die Dauer des Zeitraums als Zahl)
Zeitstempel ist leer / ist nicht leer

Zwei Feinheiten zur Tabelle:

  • Bei der Checkbox ist der Operator fest „ist“; Du wählst nur den Wert angehakt oder nicht angehakt (Vorauswahl ist „(Option auswählen)“).
  • Bei Benutzerinfo und Multiple Choice (Audit) fehlen ist leer / ist nicht leer bewusst, weil dort immer ein Wert vorhanden ist: Die Benutzerinfo befüllt sich automatisch, und beim Audit-Baustein ist üblicherweise eine Antwort vorausgewählt.

Stammdaten: abhängig vom gewählten Feld der Tabelle

Abschnitt betitelt „Stammdaten: abhängig vom gewählten Feld der Tabelle“

Wählst Du den Baustein Stammdaten als Bedingungsquelle, wählst Du zusätzlich ein konkretes Feld der zugrunde liegenden Stammdatentabelle. Dessen Datentyp bestimmt die Operatoren und die Art, wie Du den Vergleichswert eingibst:

Datentyp der Stammdaten-Spalte Verfügbare Operatoren Vergleichswert
Ja/Nein ist, ist nicht Auswahl Ja oder Nein
Zahl Alle Zahlenvergleiche Zahlenfeld
Datum ist leer, ist nicht leer entfällt
Auswahl Alle Textvergleiche Liste mit den Optionen der Spalte
Text oder E-Mail Alle Textvergleiche Freitext; über das Lupen-Symbol Werte durchsuchen öffnest Du den Dialog Wert auswählen und übernimmst einen Wert, der in der Tabelle tatsächlich vorkommt
Text, E-Mail oder Auswahl, sofern Schlüsselspalte die acht Textvergleiche ohne ist leer / ist nicht leer wie oben

Die Schlüsselspalte einer Tabelle kann laut den Regeln bei Stammdaten-Spalten ohnehin nie leer sein - deshalb entfallen dort die beiden „leer“-Operatoren.

Mehrere Werte gleichzeitig: „Mindestens eines“ oder „Alle“

Abschnitt betitelt „Mehrere Werte gleichzeitig: „Mindestens eines“ oder „Alle““

Liefert die Bedingungsquelle mehrere Werte - eine Mehrfachauswahl-Listenauswahl, ein E-Mail-Baustein mit mehreren Adressen oder ein Stammdaten-Feld vom Typ E-Mail -, legst Du über das Zahnrad Weitere Optionen in der Bedingungszeile fest, wie die Werte zählen:

  • Gegen einen festen Wert: Unter Wie viele Werte müssen die Bedingung erfüllen? wählst Du Mindestens eines (ein passender Wert reicht) oder Alle (jeder ausgewählte Wert muss passen).
  • Liste gegen Liste, also beim Vergleich mit einem anderen Baustein, der ebenfalls mehrere Werte liefert: Unter Wie müssen die beiden Listen übereinstimmen? wählst Du Mindestens ein Wert kommt vor, Alle Werte kommen vor oder Genau gleich.

Die Optionen erscheinen nur, solange nicht „ist leer“ oder „ist nicht leer“ gewählt ist.

Bei verneinenden Operatoren („ist nicht“, „enthält nicht den Text“, „startet nicht mit“, „endet nicht mit“) sowie beim Sammel-Operator „Alle“ gilt eine Bedingung auf einem noch leeren Feld standardmäßig als erfüllt - ein leerer Wert ist ja tatsächlich „nicht X“. Beispiel: Die Bedingung „Listenauswahl ist nicht ‘Dringend’“ ist auch dann wahr, wenn der App-Benutzer die Listenauswahl noch gar nicht ausgefüllt hat.

Willst Du das verhindern, aktiviere bei der jeweiligen Bedingung die Option „Bedingung nur erfüllen, wenn mindestens ein Wert ausgewählt ist?“. Sie steht bei allen Bausteinen zur Verfügung außer bei Checkbox, Formel, Benutzerinfo und Multiple Choice (Audit) - bei diesen vieren ist immer ein Wert vorhanden oder die Unterscheidung ergibt keinen Sinn.

Siehe auch: