Wertebereiche
Information
- 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 je Programmstart. D.h. bei weiteren Modulaufrufen wird dieses zwar ohne Fehlermeldung, jedoch ohne Berücksichtigung des falschen Wertebereichs 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