Wertebereiche
Informationen
- Wertebereiche werden pro Dataitem im Modul Dataitems erfasst.
- Dabei muss pro Dataitem
- eine Wertebereichsart im Feld WB-Art festgelegt werden, die angibt,
- ob der erfasste Wertebereich wirkt und
- wann das DI berechnet oder geprüft wird.
- eine Formel für den Wertebereich selbst im Feld Wertebereich definiert werden.
Hinweis
- Wertebereiche können deaktiviert werden, ohne das ihre Formel gelöscht wird. Hierzu den Eintrag im Feld WB-Art löschen.
Wertebereichsarten
Information
- Es gibt drei Gruppen von Wertebereichsarten. Dataitems können über Wertebereiche
- als Eingabefelder bei der Benutzereingabe geprüft werden (PL, PF)
- als Ausgabefelder berechnet werden (CO)
- mit Python geprüft, berechnet und geändert werden (PY)
Standard-Wertebereiche
PL: Prüfung nach Liste
Ziel
- Überprüfung der Datenfeldeingabe auf Übereinstimmung mit den festgelegten Werten
Der Wertebereich
- stellt eine tabellarische Auflistung der zulässigen Werte dar.
- besteht aus Operatoren und Operanden.
Details
- Numerische Dataitems
- Liste der erlaubten Eingabewerte mit Komma getrennt
- Alphanumerische Dataitems
- Liste der erlaubten Eingabewerte in Anführungszeichen angegeben und mit Komma getrennt.
Hinweise
- Bei einer falschen Eingabe
- erscheint in der Statuszeile die Meldung: "Bitte Eingabe überprüfen" und
- der falsche Wert wird nicht übernommen, so dass der vorherige Wert wieder angezeigt wird.
- Eine Eingabe ist richtig, wenn sie Element des Wertebereichs ist.
PF: Prüfung durch Formel
Ziel
- Überprüfung der Datenfeldeingabe auf Werte, die sich aus den Formeln ergeben
Der Wertebereich
Details
- Eine Prüfformel gibt den Ausdruck 0 oder 1 zurück, wobei gilt:
- Es kann nur eine einzige Formel pro DI angegeben werden.
- Eine Formel kann auf mehrere Zeilen verteilt werden.
Beispiel
DI |
Bezeichnung |
WB-Art |
Wertebereich |
Erklärung |
001019 |
Wunsch-AT |
PF |
(DI001019 <= DI001020) || (DI001020 == 0) |
Wunsch-AT darf keinen Termin erhalten, der größer ist als der Termin in Wunsch-ET. |
001020 |
Wunsch-ET |
PF |
(DI001019 <= DI001020) || (DI001020 == 0) |
Wunsch-ET darf keinen Termin erhalten, der niedriger ist als der Termin in Wunsch-AT. |
Hinweise
- Bei einer falschen Eingabe
- erscheint in der Statuszeile die Meldung: "Bitte Eingabe überprüfen" und
- der falsche Wert wird nicht übernommen, so dass der vorherige Wert wieder angezeigt wird.
- Eine Eingabe ist richtig, wenn die Wertebereichsformel den Wert WAHR zurückgibt.
CO: Berechnungen
Ziel
- Berechnung des Ausgabewertes eines Feldes nach der vorgegebenen Formel.
Der Wertebereich
- stellt eine Berechnungsformel dar.
- besteht aus Operatoren, Operanden und Funktionen.
- Es kann nur eine einzige Formel pro DI angegeben werden.
- Eine Formel kann auf mehrere Zeilen verteilt werden.
Hinweise
- Bei falsch konstruierten Wertebereichen erscheinen beim Modulstart unter Umständen folgende Fehlermeldungen:
- WB: Division durch Null
- Versuch eine Zahl durch Null zu dividieren.
- WB: Rechnungsergebnis ungültig (Speichergröße)
- Ergebnis in der Berechnung überschreitet die definierte Länge des virtuellen DIs, z.B. beim Zusammensetzen von Zeichenketten aus Konstanten oder Variablen ohne Verwendung der TRIM() Funktion
- WB: Operanden sind Typ-inkompatibel
- Versuch eine Berechnung zwischen zwei unterschiedlichen Datentypen auszuführen, z.B. eine Zeichenkette und eine Zahl. Relevante Operanden durch die dazugehörige Funktion, z.B. FMT(), ATOI() umzuwandeln.
- WB ist ungültig: Dixxxxxx
- Syntaxfehler im Wertebereich. Auch Folgemeldung zu den oben aufgeführten Fehlermeldungen.
- Je nach Fehler erscheint eine Meldung nur einmal pro Session beim erstmaligen Aufruf des Wertebereichs. Danach wird der Wertebereich nicht mehr ausgeführt.
Aufbauregeln für Wertebereiche CO, PL, PF
Zulässige Objekte
Operatoren
- arithmetisch: +, -, *, /, % (Modulo)
- logisch:
- binäre:
- Vergleiche: <,
, >, <
, =, >
, <>, = (Bedeutet NOT)
- Anführungszeichen: „"
- Klammern: ( )
Operanden
- Dataitems: reelle, virtuelle
- Variablen:
- Benutzer: @U
- Dynamische: @D
- Globale: @G
- System: @
- Programm-Konstanten
- Fester Wert: Strings, Zahlen
Datentypen
- Integer: 2-Byte, 4-Byte, gemischt
- String: beliebige Zeichenanzahl (auch mit Matchcode *)
Regeln
Regeln für
Operatoren
- Arithmetische, logische, binäre und Vergleichsoperatoren können durch Leerzeichen zwischen Operanden getrennt werden. Funktionell hat dies keine Bedeutung, hilft jedoch bei der Lesbarkeit eines Wertebereichs.
- Anführungszeichen und Klammern müssen den Inhalt exakt einbinden, d.h. Leerzeichen dürfen nur vorkommen, wenn sie eine funktionale Bedeutung haben.
- Soll der boolesche Wert eines Wertebereichs invertiert werden d.h. statt WAHR soll FALSCH ausgegeben werden, muss der Inhalt des Wertebereichs geklammert und der Ausdruck „!=1" angehängt werden.
Beispiel
Details
- In Wertebereichen kann mit Modulo gerechnet werden (Operator = %).
Beispiel
Regeln für
Operanden
- Der Operandenwert kann
- direkt ausgegeben werden (z.B. als Teil eines Strings) oder
- nur als Teil einer Berechnung dienen
Beispiel
DI |
Bezeichnung |
WB-Art |
Wertebereich |
Erklärung |
003136 |
HB-Element |
CO |
TRIM(@G100) + "\" + TRIM(@G106) + "\" + DI001825 + "\" + @191 + "\" + TRIM(@G103) + "\" + "M" + @191 + DI000123 + @G107 |
Wert wird berechnet und ausgegeben |
Regeln zur Eingabe in Wertebereiche
- Dataitem: DI<DI-Identnummer>
- wird immer mit dem Präfix DI angegeben.
- Variable: „@ <Variablenart> <Variablennummer>"
- werden immer in Anführungszeichen angegeben. Das Abschneiden überflüssiger Leerzeichen am Ende erfolgt automatisch.
Bedeutung |
Variablennummer |
Systemvariable |
@[ID] |
Dynamische Variable |
@D[ID] |
Globale Variable |
@G[ID] |
Benutzervariable |
@U[ID] |
- Konstante: CONST <"Konstanten-ID">
- Konstanten-ID wird immer in Hochkommata angegeben. Das Abschneiden überflüssiger Leerzeichen erfolgt automatisch.
- Fester Wert:
- Zahlen müssen ohne Hochkommata eingebunden werden, damit sie zur Berechnung verwendet werden können. Eine von Hochkommata eingeschlossene Zahl wird als String interpretiert.
- Strings müssen mit Hochkommata eingebunden werden.
Hinweis
- Die Operanden Variable und Konstante müssen im Wertebereich getrimmt werden, wenn nicht die gesamte Datenfeldlänge der Quelle ausgegeben werden soll (bei Konstante z.B. 70 lang).
Beispiel
- Wert wird wie eingegeben auch ausgegeben:
Python-Wertebereiche
PY: Prüfung, Berechnung, Änderung
Information