---
title: flexi-calculated-input
---

Das Berechnungsfeld zeigt automatisch das Ergebnis einer Formel an. Der Wert wird aus anderen Feldern des Formulars berechnet und bei jeder Änderung der Quelldaten sofort aktualisiert. Das Feld ist für den Benutzer schreibgeschützt.

## Einstellungen

| Einstellung | Beschreibung |
|---|---|
| Bezeichnung | Der angezeigte Text über dem Feld |
| Name | Eindeutiger Bezeichner des Feldes (wird automatisch aus der Bezeichnung abgeleitet) |
| Formel | Rechenausdruck, der den Wert des Feldes bestimmt |
| Einheit | Optionale Einheit, die rechts neben dem Ergebnis angezeigt wird (z. B. `kg`, `€`, `mm`) |
| Nachkommastellen | Optionale Anzahl der Dezimalstellen, auf die das Ergebnis gerundet wird |
| Berechnung abhängig deaktivieren | Deaktiviert die Berechnung, wenn ein bestimmtes anderes Feld einen definierten Zustand hat |

## Formel

Die Formel ist ein mathematischer Ausdruck. Alle Standard-Rechenoperatoren sind erlaubt:

| Operator | Bedeutung | Beispiel |
|---|---|---|
| `+` `-` `*` `/` | Grundrechenarten | `breite * hoehe` |
| `**` | Potenz | `radius ** 2` |
| `( )` | Klammerung | `(a + b) * c` |
| `Math.PI` | Kreiszahl π | `radius ** 2 * Math.PI` |
| `Math.round(x)` | Kaufmännisch runden | `Math.round(gewicht * 100) / 100` |
| `Math.abs(x)` | Absolutwert | `Math.abs(differenz)` |
| `Math.sqrt(x)` | Quadratwurzel | `Math.sqrt(flaeche)` |
| `Math.min(a, b)` | Kleinsteren Wert wählen | `Math.min(wert1, wert2)` |
| `Math.max(a, b)` | Größten Wert wählen | `Math.max(wert1, wert2)` |

Sowohl Komma als auch Punkt sind als Dezimaltrennzeichen in der Formel zulässig.

Enthält ein referenziertes Feld keinen Wert, bleibt das Berechnungsfeld leer.

### Felder referenzieren

**Felder desselben Abschnitts** werden direkt über ihren Namen angegeben:

```
laenge * breite
```

**Felder eines anderen Abschnitts** (innerhalb desselben Kapitels) werden mit `$abschnitt.feld` angegeben:

```
$abmessungen.flaeche * hoehe
```

**Felder aus einem anderen Kapitel** werden mit `$kapitel.abschnitt.feld` angegeben:

```
$kapitel1.grunddaten.flaeche * 0.85
```

### Formel-Beispiele

```
// Fläche aus Länge und Breite
laenge * breite

// Volumen mit Fläche aus einem anderen Abschnitt
$abmessungen.flaeche * hoehe

// Prozentualer Abzug
gesamtpreis * (1 - rabatt / 100)

// Kreisfläche
radius ** 2 * Math.PI

// Differenz zwischen zwei Kapiteln
$kapitel2.ergebnis.gesamt - $kapitel1.ergebnis.gesamt
```

## Einheit

Ist die Einheit aktiviert, wird der eingetragene Text rechts neben dem Ergebnis angezeigt. Die Einheit hat keinen Einfluss auf die Berechnung.

## Nachkommastellen

Gibt an, auf wie viele Dezimalstellen das Ergebnis gerundet wird. Bei `0` wird ein ganzzahliges Ergebnis angezeigt. Ohne diese Einstellung wird das Ergebnis mit der vollen Präzision dargestellt.

## Berechnung abhängig deaktivieren [#berechnung-abhangig-deaktivieren]

Diese Option ermöglicht es, die Berechnung zu unterdrücken, wenn ein anderes Feld einen bestimmten Zustand hat. Ist die Berechnung deaktiviert, bleibt das Ergebnisfeld leer.

| Einstellung | Beschreibung |
|---|---|
| Abhängiges Feld | Name oder Pfad 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` |
| Deaktivieren wenn | **Feld leer** – Berechnung wird deaktiviert, solange das abhängige Feld keinen Wert enthält. **Feld gesetzt** – Berechnung wird deaktiviert, sobald das abhängige Feld einen Wert enthält |

## Validierungsregeln (Erweiterte Einstellungen)

Über die erweiterten Einstellungen können Validierungsregeln definiert werden. Wenn Regeln konfiguriert sind, zeigt das Feld ein Statussymbol:

- **Grüner Haken** – alle Regeln sind erfüllt
- **Rotes Kreuz** – mindestens eine Regel ist nicht erfüllt

Mehrere Regeln vom Typ `COMPARE` müssen alle gleichzeitig erfüllt sein (AND-Verknüpfung).

### Werteprüfung - `VALUE` [#werteprufung-value]

Vergleicht den berechneten Wert mit einem festen Grenzwert oder einem prozentualen Toleranzbereich.

| Regel | Bedeutung |
|---|---|
| `VALUE>100` | Ergebnis muss größer oder gleich 100 sein |
| `VALUE%10:referenzFeld` | Ergebnis muss innerhalb von ±10 % des Wertes von `referenzFeld` liegen |

### Vergleich - `COMPARE` [#vergleich-compare]

Vergleicht zwei Seiten eines Ausdrucks. `VALUE` steht dabei für das Ergebnis des Berechnungsfeldes. Andere Feldnamen werden direkt verwendet.

| Regel | Bedeutung |
|---|---|
| `COMPARE:VALUE>=100` | Ergebnis muss mindestens 100 sein |
| `COMPARE:VALUE<=maxWert` | Ergebnis darf den Wert von `maxWert` nicht überschreiten |
| `COMPARE:(VALUE+zuschlag)<=maxWert` | Summe aus Ergebnis und `zuschlag` darf `maxWert` nicht überschreiten |
| `COMPARE:(VALUE-abzug)>=0` | Ergebnis minus `abzug` darf nicht negativ werden |

### Komponentenlänge - `COMPONENT` [#komponentenlange-component]

Prüft die Anzahl der Einträge eines anderen Feldes (z. B. einer Liste).

| Regel | Bedeutung |
|---|---|
| `COMPONENT:feldName.length>3` | `feldName` muss mehr als 3 Einträge haben |
| `COMPONENT:feldName.length<10` | `feldName` muss weniger als 10 Einträge haben |
| `COMPONENT:feldName.length==5` | `feldName` muss genau 5 Einträge haben |
