Dynamisches Reagieren auf Benutzereingaben (Überprüfungslogik)
Dynamisches Reagieren auf Benutzereingaben (Überprüfungslogik)
Während der Anwender die Daten im Dialog editiert, können Eingaben sofort auf ihre Korrektheit geprüft werden. Auch können abhängig von einer Eingabe andere Felder bestimmt oder vorbelegt werden. Ebenso ist es möglich, z.B. den Wertevorrat eines Kombinationsfeldes (Datenquelle) dynamisch festzulegen. Daneben können Dialogfelder dynamisch z.B. auch aktiv oder inaktiv gesetzt werden (Ändern eines Dialogs zur Laufzeit, s.u.)
Bei nahezu allen Dialogobjekten steht eine Eigenschaft „Überprüfung" zur Verfügung. Wenn diese Eigenschaft aktiviert ist, wird bei jeder Wertänderung in dem betreffenden Dialogfeld eine Entscheidungstabelle aufgerufen. Diese Überprüfungslogik muss vor Aufruf des Dialoges mit der Funktion f$KontrollET dem Zielparameter des Dialogfeldes zugeordnet werden. In dieser ET kann die Eingabe dann beliebig überprüft und ggf. über f$Meldung eine Fehlermeldung ausgegeben werden. Es können auch beliebige andere Parameter (auch aus dem aktuellen Dialog) gesetzt oder vorbelegt werden.
Beispielsweise kann beim Anklicken eines Bauteils in einem Listfeld direkt ein Bild dieses Bauteils eingeblendet werden. Dazu sind folgende Schritte notwendig:
aktivieren der Eigenschaft Überprüfung bei dem Listfeld im Dialog (der Zielparameter des Listfeldes sei "Bauteil").
zuordnen der Überprüfungslogik vor Aufruf des Dialoges über die Funktion f$KontrollET.
Anmerkung: Der Aufruf von f$KontrollET muss nicht direkt vor dem Dialogaufruf stehen, sondern kann z.B. auch in einer zentralen Initialisierungs-ET der Logik erfolgen. Auch bleibt die Zuordnung für evtl. folgende Dialoge aktiv.
die Überprüfungslogik für den Artikel. Hier wird im Beispiel das Dialogobjekt Bild aktualisiert, d.h. der dem Bild zugeordnete Parameter ("Bild") wird auf den Dateinamen des Bildes gesetzt, der sich aus dem Artikel ergibt:
Beispiel:
ET "Artikel"
|
| R 01 | SONST |
B 01 |
|
|
|
A 01 | f$KontrollET( ’Bauteil’, ’BildAnzeigen’ ) | x |
|
A 02 | Weiter = f$Dialog( ’Artikel’ ) | x |
|
ET "BildAnzeigen"
|
| R 01 | SONST |
B 01 |
|
|
|
A 01 | Bild = Pfad + ’\\’ + Artikel + ’.bmp’ | x |
|
Fall in der Kontroll-ET ein weiterer Aufruf eines Anwenderdialoges erfolgt, muss dieser erst beendet werden, bevor der Hauptdialog wieder Eingaben entgegennimmt.