Formeln und Regeln
Die Werte von Spalten können 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 inklusive.
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.
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.
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.
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: < 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]
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" |
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.
Hinweis: Einfache IF-THEN-ELSE Konstrukte können einfacher mit Regeln 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 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 Pfad zur Einrichtung des Scanners an der CNC Maschine:
IF [CNC-Programm 1] <> "" THEN "\\HOMAG\CENTATEQ\"&[CNC-Programm 1] ELSE ""
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}.
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 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"
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. 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.