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.
Eine Anzeigebedingung einrichten
Abschnitt betitelt „Eine Anzeigebedingung einrichten“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).
- 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.
- 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?.
- 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.
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.
Gruppen: UND und ODER mischen
Abschnitt betitelt „Gruppen: UND und ODER mischen“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)“.
- 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“.
- 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.
- 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.
Mit einem anderen Baustein vergleichen
Abschnitt betitelt „Mit einem anderen Baustein vergleichen“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.
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).
Wenn eine Bedingung ungültig wird
Abschnitt betitelt „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.
Kreisbedingungen
Abschnitt betitelt „Kreisbedingungen“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.
Die Vergleichsoperatoren im Überblick
Abschnitt betitelt „Die Vergleichsoperatoren im Überblick“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 bietet welcher Baustein?
Abschnitt betitelt „Welche Operatoren bietet welcher Baustein?“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 |
| 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.
Sonderfall: Bedingungen auf noch leeren Feldern
Abschnitt betitelt „Sonderfall: Bedingungen auf noch leeren Feldern“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.
Häufig gestellte Fragen
Abschnitt betitelt „Häufig gestellte Fragen“Das liegt an verneinenden Operatoren wie ist nicht, enthält nicht den Text, startet nicht mit, endet nicht mit oder am Sammel-Operator Alle: Ein noch leeres Feld gilt bei ihnen standardmäßig als erfüllt, weil ein leerer Wert ja tatsächlich „nicht X“ ist. Willst Du das verhindern, aktiviere bei der Bedingung die Option „Bedingung nur erfüllen, wenn mindestens ein Wert ausgewählt ist?“.
Klicke neben der Bedingung auf das Filter-Symbol. Im Dialog fügst Du über Bedingung hinzufügen weitere Bedingungen hinzu; die senkrechte Leiste links schaltet zwischen UND und ODER um. Sollen UND und ODER gemischt werden, fasst Du Bedingungen über Gruppe hinzufügen zu einer Gruppe mit eigener Verknüpfung zusammen.
Nein. Es gibt genau eine Gruppenebene: Auf der obersten Ebene stehen einzelne Bedingungen und Gruppen nebeneinander, innerhalb einer Gruppe nur noch einzelne Bedingungen. Damit lässt sich jede Kombination aus UND und ODER abbilden, zum Beispiel „Gewerk ist Elektro UND (Status ist offen ODER Status ist in Prüfung)“.
Die Zahlenvergleiche ist kleiner, ist größer, ist kleiner oder gleich und ist größer oder gleich setzen eine aktuelle App-Version voraus. Auf Geräten mit älterer App werden solche Bedingungen nicht ausgewertet. Bitte deine App-Benutzer, die Offpaper App zu aktualisieren, bevor Du das Formular veröffentlichst - siehe App installieren.
Nur von innerhalb derselben Wiederholungsgruppe. Verschiebst Du den als Bedingungsquelle gewählten Baustein in eine Wiederholungsgruppe (oder einen Wiederholungsabschnitt), markiert Offpaper eine bestehende Bedingung von außerhalb als fehlerhaft - weil es dort je nach Erfassung mehrere Werte gäbe, lässt sich der Baustein von außen nicht mehr referenzieren.
Siehe auch:
- Formular-Designer - Bereiche und Bausteine anlegen
- Bausteine & Feldtypen - alle Feldtypen und ihre Einstellungen, inklusive Stammdatenfilter mit derselben Gruppenlogik
- Workflow & Automatisierungen - dieselbe Logik als „Automation ausführen wenn“ bei Automations-Bausteinen
- PDF-Designer - Bereiche und Bausteine im Bericht per Bedingung ein- und ausblenden
- Stammdaten - Spaltendatentypen und Schlüsselspalte einer Tabelle
- App installieren - App aktualisieren, damit Zahlenvergleiche in der App greifen