Verarbeitungsregeln und Helproutinen werden für die Felder in einer Map definiert.
Wenn Sie mit den Übungen in diesem Dokument fertig sind, wird Ihre Beispielanwendung aus den folgenden Modulen bestehen (eine Verarbeitungsregel kann nicht als separates Modul definiert werden; sie ist immer Teil einer Map):
Dieses Dokument enthält die folgenden Übungen:
Sie werden jetzt die Meldung definieren, die angezeigt werden soll, wenn der Benutzer EINGABE drückt ohne vorher einen Startnamen anzugeben.
Verarbeitungsregel definieren
Kehren Sie zum Map-Editor zurück, indem Sie Folgendes im Menü Development Functions eingeben.
Code .. E Type .. _ Name .. MAP01___________________________ |
Geben Sie Folgendes ab der ersten Position des Datenfeldes für den Startnamen ein:
.P
Beispiel:
Start .PXXXXXXXXXXXXXXXXXXX End :XXXXXXXXXXXXXXXXXXXX |
Drücken Sie EINGABE
Für das markierte Feld wird der folgende Bildschirm angezeigt:
Variables used in current map Mod #NAME-START(A20) U #NAME-END(A20) U Rule ________________________________ Field #NAME-START > > + Rank 0 S L 1 Struct Mode ALL ....+....10...+....+....+....30...+....+....+....50...+....+....+....70. 0010 0020 0030 0040 0050 0060 0070 0080 0090 0100 Enter-PF1---PF2---PF3---PF4---PF5---PF6---PF7---PF8---PF9---PF10--PF11--PF12--- Help Mset Exit Test -- - + Full Sc= Let |
Geben Sie die folgende Verarbeitungsregel ein:
IF & = ' ' THEN REINPUT 'Please enter a starting name.' MARK *& END-IF
Das Kaufmanns-Und (&) in der Verarbeitungsregel wird bei der
Ausführung des Programms dynamisch mit dem Namen des Feldes ersetzt. In diesem
Fall wird es mit #NAME-START
ersetzt. Wenn
#NAME-START
leer ist, wird die Meldung angezeigt, die mit dem
REINPUT
-Statement definiert wurde.
MARK
ist eine Option des
REINPUT
-Statements. Die Syntax ist MARK
*fieldname
.
MARK
definiert das Feld, in das der Cursor gestellt
werden soll, wenn das REINPUT
-Statement ausgeführt wird. In diesem
Fall wird der Cursor in das Feld #NAME-START
gestellt.
Geben Sie im Feld Rank (Rang) den Wert "1" ein.
Rule ________________________________ Field #NAME-START > > + Rank 1 S 2 L 1 Struct Mode ALL ....+....10...+....+....+....30...+....+....+....50...+....+....+....70. 0010 IF & = ' ' THEN 0020 REINPUT 'Please enter a starting name.' 0030 MARK *& 0040 END-IF 0050 |
Mit dem Rang wird die Reihenfolge definiert, in der die Regeln für die verschiedenen Felder verarbeitet werden. Alle Regeln mit Rang 1 werden zuerst verarbeitet, gefolgt von denen mit Rang 2, usw.
Drücken Sie EINGABE, um Ihre Eingabe zu speichern. Drücken Sie dann PF3, um zur Map zurückzukehren.
Anmerkung:
Wenn Sie Ihre Verarbeitungsregel noch einmal anzeigen
möchten, müssen Sie eines der folgenden Kommandos benutzen:
.P1
(zeigt alle Regeln mit Rang 1) oder
.P*
(zeigt eine Liste mit allen Regeln für dieses
Feld).
Testen Sie die Map.
Geben Sie in der daraufhin erscheinenden Ausgabe einen beliebigen Startnamen ein und drücken Sie EINGABE.
Der Ausgabebildschirm wird geschlossen.
Testen Sie die Map noch einmal. Geben Sie dieses Mal keinen Namen ein und drücken Sie EINGABE.
Die Meldung, die mit der Verarbeitungsregel definiert wurde, sollte jetzt in der Map erscheinen.
Geben Sie einen Punkt (.) in dem Feld für den Startnamen ein und drücken Sie EINGABE, um den Ausgabebildschirm zu verlassen.
Speichern Sie die Map mit STOW
(drücken Sie PF3, um zum Menü Edit Map
zurückzukehren und geben Sie "W" im Feld
Code ein).
Eine Helproutine wird ausgeführt, wenn der Benutzer die Hilfetaste drückt, während der Cursor in dem Eingabefeld für den Startnamen steht.
Sie werden zuerst die Helproutine definieren und sie dann mit einem bestimmten Feld verknüpfen.
Helproutine definieren
Drücken Sie PF3 im Menü Edit Map, um zum Menü Development Functions zurückzukehren.
Geben Sie unten im Menü Development Functions die folgenden Informationen ein und drücken Sie EINGABE:
Code .. C Type .. H Name .. HLP01___________________________ |
"C" steht für die Funktion Create Object (Objekt erstellen), "H" steht für den Objekttyp Helproutine, und "HLP01" ist der Name für Ihre neue Helproutine.
Ein leerer Editor erscheint.
Geben Sie Folgendes ein:
WRITE 'Type the name of an employee' END
Speichern Sie die Helproutine mit
STOW
.
Helproutine mit einem Feld in der Map verknüpfen
Kehren Sie zurück zum Map-Editor, indem Sie Folgendes in der Kommandozeile des Bildschirms eingeben, in dem Sie eben die Helproutine eingegeben haben.
E MAP01
Geben Sie Folgendes ab der ersten Position des Datenfeldes für den Startnamen ein und drücken Sie EINGABE:
.E
Oder:
Stellen Sie den Cursor an eine beliebige Stelle im Datenfeld und
drücken Sie PF5.
Erweiterte Feldinformationen werden für das Feld angezeigt.
Geben Sie im Feld HE den Namen "'HLP01'" ein (einschließlich der einfachen Anführungszeichen).
Dies ist der Name, unter dem Sie die Helproutine gespeichert haben.
Fld #NAME-START Fmt A20 ------------------------------------------------------------------------------- AD= MIT'_'____ ZP= SG= HE= 'HLP01'______________ Rls 2 AL= _____ CD= __ CV= ________________________________ Mod User PM= __ DF= DY= ______________________________ EM= __________________________ SB= ________________________________ |
Drücken Sie PF3, um die erweiterten Feldinformationen zu verlassen.
Testen Sie die Map.
Geben Sie in der daraufhin erscheinenden Ausgabe ein Fragezeichen (?) im Eingabefeld für den Startnamen ein und drücken Sie EINGABE.
Der von Ihnen definierte Hilfetext wird jetzt angezeigt.
Drücken Sie EINGABE, um zur Map zurückzukehren.
Geben Sie einen Punkt (.) in dem Feld für den Startnamen ein und drücken Sie EINGABE, um die Map zu verlassen.
Speichern Sie die Map mit STOW
(drücken Sie PF3, um zum Menü Edit Map
zurückzukehren und geben Sie "W" im Feld
Code ein).
Drücken Sie PF3, um zum Menü Development Functions zurückzukehren.
Sie können nun mit den nächsten Übungen fortfahren: Local Data Areas.