# Visueller Editor

Der visuelle Editor erlaubt Ihnen, komplexe Wenn-Dann-Regeln und Validierungen ohne jede Programmierung zu erstellen. Wählen Sie einfach aus, wann ein Feld erscheinen, verschwinden, erforderlich werden oder welche Eingaben gültig sein sollen – keine technischen Kenntnisse nötig.

## Was ist der visuelle Editor?

Statt Ausdrücke wie `antragsteller == 'Unternehmen'` zu schreiben, klicken Sie sich durch Auswahlmenüs:

* **Welches Feld** soll geprüft werden?
* **Welche Bedingung** soll gelten?
* **Mit welchem Wert** soll verglichen werden?

Das System erstellt im Hintergrund automatisch den korrekten Ausdruck.

## Einsatzgebiete des visuellen Editors

Der visuelle Editor kann für zwei Hauptzwecke verwendet werden:

### 1. Bedingungen

Steuern Sie, wann Felder sichtbar, versteckt, erforderlich oder deaktiviert sind.

**Beispiele:**

* Zeige "Firmename" nur, wenn "Unternehmen" gewählt wurde
* Mache "Begründung" zum Pflichtfeld bei "Sonderfall"
* Verstecke "Erziehungsberechtigte" wenn Alter über 18

→ [Mehr zu Bedingungen](/formulare/erweitert/bedingungen.md)

### 2. Validierungen

Prüfen Sie Eingaben automatisch auf Richtigkeit.

**Beispiele:**

* Postleitzahl muss genau 5 Ziffern haben
* E-Mail-Adresse muss gültiges Format haben
* Enddatum muss nach Startdatum liegen

→ [Mehr zu Validierungen](/formulare/erweitert/validierung.md)

***

## Bedingung oder Validierung im visuellen Editor erstellen

{% stepper %}
{% step %}
**Editor öffnen**

**Für Bedingungen:**

1. Klicken Sie auf das Feld
2. Wechseln Sie zum Reiter **"Bedingungen"**
3. Klicken Sie auf **"Bedingung hinzufügen"**
4. Wählen Sie den Bedingungstyp (Anzeigen, Ausblenden, Pflichtfeld, Deaktivieren)
5. Der visuelle Editor öffnet sich

**Für Validierungen:**

1. Klicken Sie auf das Feld
2. Wechseln Sie zum Reiter **"Validierung"**
3. Klicken Sie auf **"Validierung hinzufügen"**
4. Der visuelle Editor öffnet sich

{% hint style="info" %}
**Hinweis:** Sie können jederzeit zwischen visuellem Editor und Ausdruck wechseln, indem Sie auf "Als Code bearbeiten" klicken.
{% endhint %}
{% endstep %}

{% step %}
**Bedingung aufbauen**

Der visuelle Editor besteht aus drei Teilen:

1. **WENN** (Bedingung)
2. **Feld auswählen** (welches Feld wird geprüft?)
3. **Vergleichsart** + **Wert** (wie wird verglichen?)

**Beispiel:**

* WENN
* Feld: "antragsteller"
* entspricht
* Wert: "Unternehmen"

→ Bedeutet: Wenn bei "antragsteller" die Option "Unternehmen" gewählt wurde
{% endstep %}

{% step %}
**Weitere Bedingungen hinzufügen (optional)**

Klicken Sie auf **"UND"** oder **"ODER"**, um weitere Bedingungen hinzuzufügen:

**UND:** Alle Bedingungen müssen erfüllt sein **ODER:** Mindestens eine Bedingung muss erfüllt sein

**Beispiel mit UND:**

* WENN antragsteller entspricht "Unternehmen"
* **UND** umsatz kleiner als 500000

→ Beide Bedingungen müssen zutreffen
{% endstep %}

{% step %}
**Speichern und testen**

1. Klicken Sie auf **"Speichern"**
2. Öffnen Sie die **Vorschau**
3. Testen Sie alle möglichen Szenarien:
   * Was passiert, wenn die Bedingung erfüllt ist?
   * Was passiert, wenn sie nicht erfüllt ist?
   * Funktioniert die Kombination aus UND/ODER wie gewünscht?
     {% endstep %}
     {% endstepper %}

## Die drei Auswahlfelder

### 1. Feld auswählen

**Was ist das?** Das Feld, dessen Wert geprüft werden soll.

**Beispiel:** Wenn Sie prüfen möchten, ob jemand "Unternehmen" als Antragsteller gewählt hat, wählen Sie hier das Feld "antragsteller".

**Verfügbare Felder:** Alle Felder, die **vor** dem aktuellen Feld im Formular vorkommen. Sie können nicht auf Felder verweisen, die erst später kommen.

***

### 2. Vergleichsart wählen

**Was ist das?** Wie soll der Wert des Feldes geprüft werden?

#### Verfügbare Vergleiche:

| Vergleich                | Bedeutung                               | Beispiel                                      |
| ------------------------ | --------------------------------------- | --------------------------------------------- |
| **entspricht**           | Der Wert ist genau gleich               | antragsteller entspricht "Unternehmen"        |
| **entspricht nicht**     | Der Wert ist nicht gleich               | antragsteller entspricht nicht "Privatperson" |
| **größer als**           | Der Wert ist größer (nur Zahlen/Datum)  | alter größer als 18                           |
| **kleiner als**          | Der Wert ist kleiner (nur Zahlen/Datum) | umsatz kleiner als 500000                     |
| **ist ausgefüllt**       | Das Feld hat einen Wert (nicht leer)    | telefon ist ausgefüllt                        |
| **ist nicht ausgefüllt** | Das Feld ist leer                       | telefon ist nicht ausgefüllt                  |
| **entspricht Regex**     | Der Wert entspricht einem Muster        | postleitzahl entspricht Regex "\[0-9]{5}"     |

{% hint style="info" %}
**Tipp:** Für einfache Bedingungen reichen meist "entspricht", "größer als" und "ist ausgefüllt". Die anderen Vergleiche sind für spezielle Fälle.
{% endhint %}

***

### 3. Wert eingeben

**Was ist das?** Der Wert, mit dem verglichen werden soll.

#### Drei Arten von Werten:

{% tabs %}
{% tab title="Fester Wert" %}
**Ein konkreter Wert, den Sie eingeben**

**Beispiele:**

* "Unternehmen" (Text)
* 18 (Zahl)
* "2024-01-01" (Datum)

**Wann verwenden:** Wenn Sie gegen einen festen Wert vergleichen möchten.

**Beispiel:**

* Feld: antragsteller
* Vergleich: entspricht
* Wert: "Unternehmen"
  {% endtab %}

{% tab title="Anderes Feld" %}
**Der Wert eines anderen Feldes**

**Beispiele:**

* alter\_kind kleiner als alter\_elternteil
* startdatum kleiner als enddatum

**Wann verwenden:** Wenn zwei Felder miteinander verglichen werden sollen.

**Beispiel:**

* Feld: startdatum
* Vergleich: kleiner als
* Wert: enddatum (anderes Feld)
  {% endtab %}

{% tab title="Ausdruck" %}
**Ein berechneter Wert oder Funktion**

**Wann zu Ausdrücken wechseln:**

* Wenn Sie mit Datumsfunktionen arbeiten möchten
* Wenn Sie mathematische Berechnungen benötigen
* Wenn Sie komplexe Logik implementieren möchten

**So wechseln Sie:**

1. Erstellen Sie zunächst eine einfache Bedingung im visuellen Editor
2. Klicken Sie auf **"Als Code bearbeiten"**
3. Passen Sie den Ausdruck manuell an

→ Mehr Details: [Ausdrücke](/formulare/erweitert/ausdruecke.md)
{% endtab %}
{% endtabs %}

## UND/ODER-Verknüpfungen

### UND-Verknüpfung

**Alle Bedingungen müssen erfüllt sein**

**Beispiel:**

* WENN antragsteller entspricht "Unternehmen"
* **UND** umsatz kleiner als 500000
* **UND** standort entspricht "Deutschland"

→ Das Feld erscheint nur, wenn **alle drei** Bedingungen zutreffen.

***

### ODER-Verknüpfung

**Mindestens eine Bedingung muss erfüllt sein**

**Beispiel:**

* WENN antragsteller entspricht "Unternehmen"
* **ODER** antragsteller entspricht "Freiberufler"

→ Das Feld erscheint, wenn **eine der beiden** Bedingungen zutrifft.

***

### Kombination von UND und ODER

Sie können UND und ODER kombinieren:

**Beispiel:**

* WENN antragsteller entspricht "Unternehmen"
* **UND** (umsatz kleiner als 500000 **ODER** mitarbeiter kleiner als 50)

→ Antragsteller muss Unternehmen sein **UND** entweder Umsatz unter 500.000 **ODER** Mitarbeiter unter 50

{% hint style="warning" %}
**Achtung:** Komplexe Kombinationen werden schnell unübersichtlich. Überlegen Sie, ob Sie die Bedingung nicht vereinfachen können, oder wechseln Sie zu Ausdrücken.
{% endhint %}

## Praktische Beispiele

### Beispiel 1: Firmendaten nur für Unternehmen

**Szenario:** Felder "Firmename" und "Handelsregisternummer" sollen nur für Unternehmen erscheinen

**Aufbau:**

* **Bedingungstyp:** Anzeigen
* **Feld:** antragsteller
* **Vergleich:** entspricht
* **Wert:** "Unternehmen"

**Ergebnis:** Die Felder erscheinen nur, wenn "Unternehmen" gewählt wurde.

***

### Beispiel 2: Postadresse nur bei Postversand

**Szenario:** Adressfeld nur zeigen, wenn "Per Post" gewählt wurde

**Aufbau:**

* **Bedingungstyp:** Anzeigen
* **Feld:** versandart
* **Vergleich:** entspricht
* **Wert:** "Per Post"

**Ergebnis:** Das Adressfeld erscheint nur bei Postversand.

***

### Beispiel 3: Begründung als Pflichtfeld bei Sonderfall

**Szenario:** Begründung muss nur ausgefüllt werden, wenn "Sonderfall" gewählt wurde

**Aufbau:**

* **Bedingungstyp:** Pflichtfeld
* **Feld:** antragsart
* **Vergleich:** entspricht
* **Wert:** "Sonderfall"

**Ergebnis:** Die Begründung ist optional bei Standardförderung, Pflichtfeld bei Sonderfall.

***

### Beispiel 4: Zusatzförderung nur für kleine Unternehmen

**Szenario:** Zusatzförderung nur anbieten, wenn Unternehmen und Umsatz unter 500.000 Euro

**Aufbau:**

* **Bedingungstyp:** Anzeigen
* **Feld:** antragsteller
* **Vergleich:** entspricht
* **Wert:** "Unternehmen"
* **UND**
* **Feld:** umsatz
* **Vergleich:** kleiner als
* **Wert:** 500000

**Ergebnis:** Die Zusatzförderung erscheint nur für Unternehmen mit Umsatz unter 500.000 Euro.

***

### Beispiel 5: Kontaktdaten nur für Minderjährige oder Rückfrage

**Szenario:** Kontaktdaten sollen erscheinen, wenn Alter unter 18 ODER Rückfrage gewünscht

**Aufbau:**

* **Bedingungstyp:** Anzeigen
* **Feld:** alter
* **Vergleich:** kleiner als
* **Wert:** 18
* **ODER**
* **Feld:** rueckfrage\_gewuenscht
* **Vergleich:** entspricht
* **Wert:** "Ja"

**Ergebnis:** Kontaktdaten erscheinen für Minderjährige oder wenn Rückfrage gewünscht.

## Bedingung bearbeiten

1. Klicken Sie auf das Feld mit der Bedingung
2. Wechseln Sie zum Reiter "Bedingungen"
3. Klicken Sie auf **"Bearbeiten"** neben der Bedingung
4. Der visuelle Editor öffnet sich mit den aktuellen Einstellungen
5. Ändern Sie die Bedingung
6. Klicken Sie auf **"Speichern"**

## Von visuellem Editor zu Ausdruck wechseln

Sie können jederzeit von visuellem Editor zu Ausdruck wechseln:

1. Öffnen Sie die Bedingung im visuellen Editor
2. Klicken Sie auf **"Als Code bearbeiten"**
3. Der Ausdruck wird angezeigt (z.B. `antragsteller == 'Unternehmen'`)
4. Sie können ihn jetzt manuell anpassen

{% hint style="warning" %}
**Achtung:** Nach dem Wechsel zu Ausdrücken können Sie **nicht mehr** zum visuellen Editor zurück! Überlegen Sie vorher, ob Sie wirklich wechseln möchten.
{% endhint %}

## Grenzen des visuellen Editors

Der visuelle Editor ist mächtig, aber hat Grenzen:

**Nicht möglich:**

* Mathematische Berechnungen (`umsatz * 0.19`)
* Komplexe Mustervergleiche (Regex)
* Funktionen wie `heute()` oder `size()`
* Sehr verschachtelte Logik mit vielen Ebenen

**Für diese Fälle:** Wechseln Sie zu [Ausdrücken](/formulare/erweitert/ausdruecke.md)

## Bewährte Vorgehensweisen

### ✅ Empfohlen

* **Nutzen Sie die Auswahllisten:** Vermeiden Sie Tippfehler
* **Halten Sie es einfach:** 1-3 Bedingungen sind übersichtlich
* **Testen Sie sofort:** Nach jeder Bedingung die Vorschau prüfen
* **Dokumentieren Sie:** Bei komplexen Bedingungen notieren, warum sie existieren
* **Sprechende Feldnamen:** "antragsteller" ist besser als "feld\_a"

### ❌ Vermeiden Sie

* **Zu viele Bedingungen:** Mehr als 4-5 wird unübersichtlich
* **Manuell tippen:** Nutzen Sie die Auswahllisten
* **Spätes Testen:** Testen Sie nach jeder Änderung
* **Zirkuläre Verweise:** Feld A hängt von Feld B ab, das von Feld A abhängt
* **Komplexe Logik erzwingen:** Wechseln Sie bei Bedarf zu Ausdrücken

## Weitere Hilfe

**→** [**Bedingungen verstehen**](/formulare/erweitert/bedingungen.md) – Grundlagen und Anwendungsfälle

**→** [**Ausdrücke**](/formulare/erweitert/ausdruecke.md) – Für komplexe Logik und erfahrene Nutzer

**→** [**Validierungsregeln**](/formulare/erweitert/validierung.md) – Eingaben automatisch prüfen

**→** [**Feldtypen**](/formulare/erstellen/feldtypen.md) – Welche Felder können in Bedingungen verwendet werden?


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.polyteia.com/formulare/erweitert/bedingungseditor.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
