---
title: flexi-switch
---

Der Schalter ist ein Ein-/Aus-Feld mit zwei Zuständen (**an** / **aus**). Er eignet sich für Ja/Nein-Entscheidungen, Freigaben oder zum Markieren, dass eine Bedingung zutrifft. Der Zustand kann beim Anlegen eines neuen Dokuments vorbelegt sein und kann unter bestimmten Bedingungen automatisch gesperrt werden.

## Einstellungen

| Einstellung | Beschreibung |
|---|---|
| Bezeichnung | Der angezeigte Text neben dem Schalter |
| Name | Eindeutiger Bezeichner des Feldes (wird automatisch aus der Bezeichnung abgeleitet) |
| Voreingestellter Zustand | Schalterstellung beim Anlegen eines neuen Dokuments (an / aus) |
| Eingabe deaktivieren | Sperrt den Schalter, sodass er nicht umgeschaltet werden kann |
| Abhängige Sperre | Sperre wird nur unter einer bestimmten Bedingung wirksam (siehe *Eingabe deaktivieren*) |

### Erweiterte Einstellungen

| Einstellung | Beschreibung |
|---|---|
| Prüfungsregeln | Regeln zur Bewertung des Schalterzustands (siehe Abschnitt *Validierungsregeln*) |

## Voreingestellter Zustand

Der voreingestellte Zustand legt fest, ob der Schalter in einem neuen Dokument auf **an** oder **aus** steht. Beim Bearbeiten eines bestehenden Dokuments bleibt der zuletzt gespeicherte Zustand erhalten.

## Eingabe deaktivieren

Mit dieser Einstellung lässt sich der Schalter sperren. Zwei Varianten sind möglich:

**Dauerhaft gesperrt** – Ist nur *Eingabe deaktivieren* aktiv, kann der Schalter nicht mehr umgeschaltet werden. Geeignet für Anzeigefelder, deren Zustand fest vorgegeben ist.

**Abhängig von einem anderen Feld** – Ist zusätzlich die *abhängige Sperre* aktiv, lässt sich festlegen, unter welcher Bedingung der Schalter gesperrt sein soll. Wird der Schalter durch die Bedingung gesperrt, wird er gleichzeitig auf **aus** gestellt.

| Einstellung | Beschreibung |
|---|---|
| Abhängiges Feld | Name des Feldes, das geprüft wird. Für ein Feld im selben Abschnitt genügt der Name (`auswahl`); für ein Feld in einem anderen Abschnitt: `abschnitt.feld` |
| Vergleichswert | (Optional) Bestimmter Wert, den das abhängige Feld haben soll |
| Sperren wenn | Bedingung für die Sperre. Ohne Vergleichswert: **Feld leer** oder **Feld gesetzt** (für Schalter als abhängiges Feld bedeutet *gesetzt* den Zustand **an**). Mit Vergleichswert: **Wert stimmt überein** oder **Wert stimmt nicht überein** |

Als abhängiges Feld eignen sich Schalter, Text- und Zahlenfelder, Auswahlfelder und Mehrfachauswahlen. Bei Zahlenfeldern gilt `0` als leer, bei einer Mehrfachauswahl eine leere Auswahl (siehe [flexi-multiselect](/components/flexi-multiselect#als-ausloser-fur-eingabe-deaktivieren)).

Ändert sich das abhängige Feld, wird die Sperre sofort neu ausgewertet.

## Validierungsregeln

Über die erweiterten Einstellungen können Prüfungsregeln definiert werden. Wenn Regeln konfiguriert sind, zeigt der Schalter ein Statussymbol:

- **Grüner Haken** – alle Regeln sind erfüllt
- **Rotes Kreuz** – mindestens eine Regel ist nicht erfüllt

Die Prüfung gilt bei der **ersten** Regel als erfüllt, die zutrifft - so lassen sich Alternativen definieren (etwa: Schalter an *oder* Bemerkung eingetragen).

### Schalterzustand - `VALUE:TRUE` / `VALUE:FALSE` [#schalterzustand-valuetrue-valuefalse]

Prüft, in welcher Stellung der Schalter stehen muss.

| Regel | Bedeutung |
|---|---|
| `VALUE:TRUE` | Der Schalter muss auf **an** stehen |
| `VALUE:FALSE` | Der Schalter muss auf **aus** stehen |

Die Schreibweise `TRUE` und `FALSE` muss **genau** so (Großbuchstaben) eingehalten werden. Abweichungen wie `true` werden ignoriert.

### Alternative über ein anderes Feld - `COMPONENT` [#alternative-uber-ein-anderes-feld-component]

Akzeptiert die Prüfung als erfüllt, wenn ein anderes Feld einen bestimmten Inhalt oder einen bestimmten Zustand hat. Üblicherweise als **Alternative** zur Schalter-Prüfung eingesetzt.

| Regel | Bedeutung |
|---|---|
| `COMPONENT:bemerkung.length>0` | `bemerkung` enthält mindestens ein Zeichen |
| `COMPONENT:bemerkung.length>10` | `bemerkung` enthält mindestens 11 Zeichen |
| `COMPONENT:freigegeben.value==TRUE` | Der Schalter `freigegeben` muss auf **an** stehen |
| `COMPONENT:freigegeben.value==FALSE` | Der Schalter `freigegeben` muss auf **aus** stehen |

### Beispiele

**Schalter muss auf „an" stehen oder eine Begründung muss vorliegen**

```json
"rules": [
  "VALUE:TRUE",
  "COMPONENT:grund.length>0"
]
```
> Entweder ist der Schalter aktiv oder ein Grund ist eingetragen → OK.

**Schalter muss „aus" sein, solange ein anderer Schalter auf „an" steht**

```json
"rules": [
  "VALUE:FALSE",
  "COMPONENT:freigegeben.value==FALSE"
]
```
> Solange `freigegeben` auf **aus** steht, ist jeder Zustand zulässig; ist `freigegeben` auf **an**, muss dieser Schalter auf **aus** stehen.

Eine vollständige Übersicht aller Regeln und ihrer Schreibweisen findet sich unter [Prüfungsregeln](/components/rules).
