--- title: "Formeln und Regeln" slug: "productionmanager-kurz-erklaert-formeln-und-regeln" updated: 2026-07-02T07:25:04Z published: 2026-07-02T07:30:45Z canonical: "docs.homag.cloud/productionmanager-kurz-erklaert-formeln-und-regeln" --- > ## Documentation Index > Fetch the complete documentation index at: https://docs.homag.cloud/llms.txt > Use this file to discover all available pages before exploring further. # Formeln und Regeln Für neu angelegte Aufträge (Auftragsstatus = Neu) können die Werte von Spalten durch Formeln und Regeln berechnet werden. Um diese zu definieren, klicken Sie im Bearbeitungsmodus mit der rechten Maustaste auf den Namen der betreffenden Spalte, um das Kontextmenü zu öffnen. Über das Kontextmenü können Sie einen Wert für die gesamte Spalte festlegen oder Formeln und Regeln hinzufügen. Diese Funktion ist ab der [productionManager Advanced Version](/v1/docs/productionmanager-kurz-erklaert-lizenzierung) inklusive. ![Öffnen des Kontextmenüs](https://cdn.document360.io/43eaea7e-f51c-41df-9b73-bf55e0b1d20d/Images/Documentation/Formulas-and-rules-01-de.png?sv=2026-02-06&spr=https&st=2026-11-08T06%3A46%3A34Z&se=2026-11-08T07%3A46%3A34Z&sr=c&sp=r&sig=epUJajN%2F4zcCiTDKVS9Ql5w1dhP935Ne945DSBsPeqI%3D) Öffnen des Kontextmenüs ## Regel hinzufügen Beim Anlegen einer Regel beginnen Sie damit, eine **Bedingung (1)** zu definieren. Wählen Sie dafür einen Spaltennamen aus, bestimmen Sie danach einen Operator – wie gleich, ungleich, größer (gleich) oder kleiner (gleich) – und geben Sie den gewünschten Wert ein. Anschließend legen Sie fest, welcher Wert der Spalte zugewiesen werden soll, falls die Bedingung zutrifft **(2)**. Mit der Option **"+ Und" (3)** können Sie weitere Bedingungen für eine Regel hinzufügen. Neue Regeln legen Sie über **"+ Regel hinzufügen" (4)** an. Im Feld **"Sonst" (5)** geben Sie den Wert an, der verwendet werden soll, falls keine der definierten Regeln zutrifft. Möchten Sie eine Regel entfernen, klicken Sie einfach auf das **rote Kreuz (6)** neben der Regel. Beispielsweise können Sie durch eine Regel das Etikettenlayout der Teile definieren. ![Neue Regel hinzufügen](https://cdn.document360.io/43eaea7e-f51c-41df-9b73-bf55e0b1d20d/Images/Documentation/Formulas-and-rules-03-de.png?sv=2026-02-06&spr=https&st=2026-11-08T06%3A46%3A34Z&se=2026-11-08T07%3A46%3A34Z&sr=c&sp=r&sig=epUJajN%2F4zcCiTDKVS9Ql5w1dhP935Ne945DSBsPeqI%3D) Neue Regel hinzufügen ## Formel hinzufügen Mit Hilfe des im productionManager integrierten Formel- und Regeleditors können Sie Formeln verwenden, um Werte von Spalten automatisch zu berechnen, Bedingungen zu prüfen oder Texte zu verarbeiten. Im Dialogfenster zur Formelerstellung wählen Sie aus der Liste "Verfügbare Spalten" die für die Berechnung erforderlichen Spalten aus und fügen diese per Doppelklick in die Formel ein. Mit einem Klick auf "Bestätigen" speichern Sie die Formel, die dann auf die entsprechende Spalte angewendet wird. Formeln haben vielseitige Einsatzmöglichkeiten. Im Folgenden werden die Möglichkeiten zur Erstellung von Formeln näher beschrieben und jeweils Beispiele aufgeführt. > [!NOTE] > **Hinweis**: > > Allgemein wird bei den Datentypen in Formeln zwischen Zahlen und Zeichenketten unterschieden. Zahlen sind ohne Tausendertrennzeichen anzugeben, wobei Punkte als Dezimaltrennzeichen dienen. Zeichenketten werden durch " " kenntlich gemacht. ### Funktionen In Formeln können unterschiedliche Funktionen zum Einsatz kommen. Diese sind zumeist durch die nachgestellten () zu erkennen, durch welche Parameter für die Auswertung übergeben werden. Mehrere Parameter sind durch ein Semikolon ( ; ) oder Komma ( , ) zu trennen. > [!NOTE] > **Hinweis:** > > Sie können Funktionen unter Einhaltung der syntaktischen Regeln beliebig oft verschachteln und kombinieren. Leerzeichen sowie Zeilenumbrüche werden bei der Berechnung von Funktionen nicht berücksichtigt. ### Mathematische Funktionen Zum Verarbeiten von Zahlen stehen Ihnen die gängigen mathematischen Grund- und Vergleichsfunktionen zur Verwendung bereit. | Grundfunktionen | +, -, *, / | | --- | --- | | Vergleichsfunktionen | Kleiner als: < Kleiner oder gleich: <= Größer als: > Größer oder gleich: >= Gleich: = Ungleich: <> > [!NOTE] > **Hinweis:** > > Vergleichsfunktionen liefern entweder 0 für eine falsche oder 1 für eine richtige Aussage zurück. Alle Vergleichsoperatoren sind zusätzlich auch auf Zeichenketten anwendbar. | **Beispiel:** Ein Beispiel für die Verwendung der Grundfunktionen ist die Berechnung der Fertigmaße von Bauteilen. Wenn diese nicht bereits durch eine importierte Stückliste vorgegeben sind, können sie aus den Abmessungen des Bauteils beim Zuschnitt plus die Dicke der Kanten berechnet werden. Nachfolgend ein Beispiel zur Berechnung einer Fertigbreite anhand der folgenden Formel: `Fertigbreite = [Breite] + [Kantendicke rechts] + [Kantendicke links]` ![Beispiel: Formel für Fertigbreite](https://cdn.document360.io/43eaea7e-f51c-41df-9b73-bf55e0b1d20d/Images/Documentation/formulas-01-de.png?sv=2026-02-06&spr=https&st=2026-11-08T06%3A46%3A34Z&se=2026-11-08T07%3A46%3A34Z&sr=c&sp=r&sig=epUJajN%2F4zcCiTDKVS9Ql5w1dhP935Ne945DSBsPeqI%3D) Beispiel: Formel für Fertigbreite ### Logische Funktionen Neben den mathematischen Funktionen gibt es außerdem die folgenden logischen Funktionen: | AND | Beide Bedingungen müssen erfüllt sein | | --- | --- | | OR | Mindestens eine der beiden Bedingungen muss erfüllt sein | | XOR | Genau eine der beiden Bedingungen muss erfüllt sein | | NOT | Negiert das Argument | ### Zeichenkettenfunktionen Zusätzlich zu den Vergleichsoperatoren, stehen für Zeichenketten die folgenden Funktionen zur Verfügung: | Funktion | Beschreibung | Beispiel | | --- | --- | --- | | & | Verbindung zweier Zeichenketten | "HOMAG" & " Maschine" = "HOMAG Maschine" | | UCASE("Text") | Konvertierung aller Kleinbuchstaben in Großbuchstaben | UCASE("maschine") = "MASCHINE" | | LCASE("Text") | Konvertierung aller Großbuchstaben in Kleinbuchstaben | LCASE("HOMAG") = "homag" | | LEFT("Text"; Zahl) | Angegebene Anzahl von Zeichen von links | LEFT("Holzhaus"; 4) = "Holz" | | RIGHT("Text"; Zahl) | Angegebene Anzahl von Zeichen von rechts | RIGHT("Holzhaus"; 4) = "haus" | | MID("Text"; Zahl; Zahl) | Teil der Zeichenkette mit Startposition und optionaler Endposition | MID("HOMAG Holzbearbeitungssysteme"; 6; 4) = "Holz" | | LEN("Text") | Länge der Zeichenkette | LEN("HOMAG") = 5 | | ISEMPTY("Text") | 1, wenn die Zeichenkette leer ist, anderenfalls 0 | ISEMPTY("") = 1 | | FIND("Text1"; "Text2"; Zahl) | Durchsucht eine Zeichenkette auf das Vorkommen einer anderen Zeichenkette. Optional kann eine Startposition für zu überspringende Zeichen angegeben werden. | FIND("HOMAG Holzbearbeitungssysteme"; "Holz";) = 6 | | RFIND("Text1"; "Text2"; Zahl) | Analog zu FIND(), die Suche wird von hinten nach vorne durchgeführt | | | REPLACE("Text"; "Text alt"; "Text neu") | Suchen und Ersetzen aller alten Zeichenketten durch eine neue Zeichenkette innerhalb des angegebenen Texts | REPLACE("HOMAG Holzbearbeitungssysteme"; "systeme"; "maschinen") = "HOMAG Holzbearbeitungsmaschinen" | | INSERT("Text"; Zahl; "Text neu") | Fügt in die Zeichenkette an der gewünschten Position die Zeichenkette neu ein | INSERT("HOMAG ", 6, "Maschine") = "HOMAG Maschine" | | LTRIM("Text") | Entfernt alle Leerzeichen zu Beginn der Zeichenkette | LTRIM(" HOMAG") = "HOMAG" | | RTRIM("Text") | Entfernt alle Leerzeichen am Ende der Zeichenkette | RTRIM("HOMAG ") = "HOMAG" | > [!NOTE] > **Hinweis:** > > Groß- und Kleinschreibung wird allgemein berücksichtigt. ### Bedingte Ausdrücke Der Formeleditor unterstützt in der Erstellung von Formeln zwei Konstrukte für bedingte Ausdrücke. Das IF-THEN-ELSE Konstrukt und das SWITCH-CASE-DEFAULT Konstrukt. Beide Optionen erlauben, in unterschiedlichem Umfang, das Ausführen einer bestimmten Aktion abhängig vom Wert einer Spalte. ### Das IF-THEN-ELSE Konstrukt Das IF-THEN-ELSE Konstrukt überprüft eine Bedingung und führt abhängig davon, ob diese erfüllt ist oder nicht eine von zwei Alternativen Optionen aus. **IF** *Bedingung***THEN** *Befehl* **ELSE** *Alternativbefehl* Ist die *Bedingung* erfüllt (Wert ungleich 0), wird der Wert des Ausdrucks *Befehl* zurückgeliefert, anderenfalls der Wert des Ausdrucks *Alternativbefehl*. > [!NOTE] > **Hinweis:** > > Einfache IF-THEN-ELSE Konstrukte können einfacher mit [Regeln](/v1/docs/productionmanager-kurz-erklaert-formeln-und-regeln#regel-hinzufügen) abgebildet werden. Nur, wenn die auszuführenden Ausdrücke selbst wiederum mehrstufige Befehle enthalten, ist der Einsatz einer Regel nicht möglich. **Beispiel Änderung der Ausrichtung von Teilen:** **IF** [Breite]>[Länge] **AND** [Maserung]="NoGrain" **THEN** [Länge] **ELSE** [Breite] ![Beispiel: Formel zur Änderung der Teileausrichtung](https://cdn.document360.io/43eaea7e-f51c-41df-9b73-bf55e0b1d20d/Images/Documentation/formulas-02-de.png?sv=2026-02-06&spr=https&st=2026-11-08T06%3A46%3A34Z&se=2026-11-08T07%3A46%3A34Z&sr=c&sp=r&sig=epUJajN%2F4zcCiTDKVS9Ql5w1dhP935Ne945DSBsPeqI%3D) Beispiel: Formel zur Änderung der Teileausrichtung **Beispiel zusätzliche Notizen abhängig von den Materialeigenschaften:** **IF** ([Dicke] <= 16 **AND LEFT**([Material];2) = "P2" **AND** [Länge]>800) **THEN** "Zusätzlicher Bodenträger" **ELSE** "" ![Beispiel: Formel für zusätzliche Notizen abhängig von den Materialeigenschaften](https://cdn.document360.io/43eaea7e-f51c-41df-9b73-bf55e0b1d20d/Images/Documentation/formulas-03-de.png?sv=2026-02-06&spr=https&st=2026-11-08T06%3A46%3A34Z&se=2026-11-08T07%3A46%3A34Z&sr=c&sp=r&sig=epUJajN%2F4zcCiTDKVS9Ql5w1dhP935Ne945DSBsPeqI%3D) Beispiel: Formel für zusätzliche Notizen abhängig von den Materialeigenschaften **Beispiel Pfad zur Einrichtung des Scanners an der CNC Maschine:** **IF** [CNC-Programm 1] <> "" **THEN** "\\HOMAG\CENTATEQ\"&[CNC-Programm 1] **ELSE** "" ![Beispiel: Formel zur Pfadbestimmung](https://cdn.document360.io/43eaea7e-f51c-41df-9b73-bf55e0b1d20d/Images/Documentation/formulas-04-de.png?sv=2026-02-06&spr=https&st=2026-11-08T06%3A46%3A34Z&se=2026-11-08T07%3A46%3A34Z&sr=c&sp=r&sig=epUJajN%2F4zcCiTDKVS9Ql5w1dhP935Ne945DSBsPeqI%3D) Beispiel: Formel zur Pfadbestimmung ### Das SWITCH-CASE-DEFAULT Konstrukt Das SWITCH-CASE-DEFAULT-Konstrukt ermöglicht es, einen Wert mit mehreren möglichen Fällen zu vergleichen und abhängig davon unterschiedliche Anweisungen auszuführen. Bei mehreren Vergleichsmöglichkeiten ist dieses Konstrukt übersichtlicher als mehrere verschachtelte IF-THEN-ELSE-Abfragen. **SWITCH** *Referenz* **CASE** *VergleichX***THEN***BefehlX* **CASE** *VergleichA* **CASE** *VergleichB***THEN***BefehlA* **DEFAULT** *Sonst* Das Konstrukt vergleicht den Wert der ausgewählten Spalte *Referenz* nacheinander mit allen angegebenen Vergleichswerten. Wenn eine Übereinstimmung gefunden wird, wird die entsprechende Aktion ausgeführt. So können Sie denselben Wert bequem mit mehreren Fällen vergleichen, ohne ihn mehrfach angeben zu müssen. Soll der Parameter *Referenz* mit einem ganzen Wertebereich verglichen werden, so können auf das Schlüsselwort CASE Intervalle folgen. Ein Intervall wird angegeben mit {Anfang ... Ende}. > [!NOTE] > **Hinweis:** > > Die Typen, z.B. Zahl oder Zeichenkette der Vergleichswerte müssen identisch zu dem des Referenzwerts sein, während die Typen der Rückgabewerte beliebig gewählt werden können. Eine Referenz vom Typ Zeichenkette kann also wiederum nur mit anderen Zeichenketten verglichen werden und nicht mit Zahlen. **Beispiel Etikettenlayout:** **SWITCH** [Kundenname] **CASE** "Müller" **THEN** "Etikett_Müller" **CASE** "Meier" **THEN** "Etikett_Meier" **CASE** "Schneider" **THEN** "Etikett_Schneider" **DEFAULT** "Standardetikett" ![Beispiel: Formel zur Festlegung des Ettikettenlayouts](https://cdn.document360.io/43eaea7e-f51c-41df-9b73-bf55e0b1d20d/Images/Documentation/formulas-05-de.png?sv=2026-02-06&spr=https&st=2026-11-08T06%3A46%3A34Z&se=2026-11-08T07%3A46%3A34Z&sr=c&sp=r&sig=epUJajN%2F4zcCiTDKVS9Ql5w1dhP935Ne945DSBsPeqI%3D) Beispiel: Formel zur Festlegung des Ettikettenlayouts **Beispiel Festlegung des Fertigungsweges:** **SWITCH** [Artikelgruppe] **CASE** "Deckel" **CASE** "Einlegeböden **CASE** "Korpusseiten" **CASE** "Böden" **THEN** "SAWTEQ-EDGETEQ-DRILLTEQ-Montage" **CASE** "Rückwände" **THEN** "SAWTEQ-Montage" **CASE** "Fronten" **THEN** "SAWTEQ-EDGETEQ-CENTATEQ-Montage" **CASE** "Fronten Lack" **THEN** "SAWTEQ-EDGETEQ-DRILLTEQ-Oberfläche-Montage" **DEFAULT** "SAWTEQ-EDGETEQ-DRILLTEQ-Montage" ![Beispiel: Formel zur Festlegung des Fertigungswegs](https://cdn.document360.io/43eaea7e-f51c-41df-9b73-bf55e0b1d20d/Images/Documentation/formulas-06-de.png?sv=2026-02-06&spr=https&st=2026-11-08T06%3A46%3A34Z&se=2026-11-08T07%3A46%3A34Z&sr=c&sp=r&sig=epUJajN%2F4zcCiTDKVS9Ql5w1dhP935Ne945DSBsPeqI%3D) Beispiel: Formel zur Festlegung des Fertigungswegs > [!NOTE] > **Hinweis:** > > Bedingte Ausdrücke können unter Einhaltung der Syntaxregeln beliebig oft verschachtelt und mit einander kombiniert werden. Das bedeutet, dass bspw. ein IF-THEN-ELSE Konstrukt wiederum ein solches oder logische Operatoren beinhalten darf. ### Konvertierungs- und Sonderfunktionen | Funktion | Beschreibung | Beispiel | | --- | --- | --- | | STR(Ausdruck) | Konvertiert den Ausdruck in eine Zeichenkette. | STR(123) = "123" STR(4+5) = "9" | | VAL(Ausdruck) | Wandelt das Ergebnis des Ausdrucks in eine Zahl um. Handelt es sich um eine Zeichenkette, die nicht mit Ziffern, Vorzeichen oder Dezimaltrennzeichen beginnt, wird 0 zurückgegeben. > [!NOTE] > **Hinweis:** > > Die Auswertung der Zeichenkette wird abgebrochen, sobald ein ungültiges Zeichen auftritt. | VAL("123") = 123 VAL("-0.5") = -0.5 VAL("Text") = 0 | | VARDEF(Variablenname) | Überprüft, ob der Variablenname definiert ist. Ist er definiert, wird 1 zurückgegeben, anderenfalls 0. | X=100 VARDEF("X") = 1 VARDEF("Y") = 0 | STR() und VAL() akzeptieren als Parameter sowohl Zeichenketten als auch Zahlen, sodass der Wert einer Variablen, die ggf. Werte verschiedener Typen annimmt, mit Typsicherheit verwendet werden kann. Weitere technische Erläuterungen zum Erstellen von Formeln stehen Ihnen rechts oben auf dieser Seite zum Download zur Verfügung. --- ## Ressourcen ### Weiterführende technische Erläuterungen - [SParser-Syntax-DE.pdf (PDF, 240 KB)](https://cdn.document360.io/43eaea7e-f51c-41df-9b73-bf55e0b1d20d/Images/Documentation/SParser-Syntax-DE.pdf?sv=2026-02-06&spr=https&st=2026-11-08T06%3A46%3A34Z&se=2026-11-08T07%3A46%3A34Z&sr=c&sp=r&sig=epUJajN%2F4zcCiTDKVS9Ql5w1dhP935Ne945DSBsPeqI%3D)