Verarbeitungsregeln und Helproutinen

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):

Anwendungsstruktur

Dieses Dokument enthält die folgenden Übungen:


Verarbeitungsregel definieren

Sie werden jetzt die Meldung definieren, die angezeigt werden soll, wenn der Benutzer EINGABE drückt ohne vorher einen Startnamen anzugeben.

Beginn der AnweisungslisteVerarbeitungsregel definieren

  1. Kehren Sie zum Map-Editor zurück, indem Sie Folgendes im Menü Development Functions eingeben.

         Code .. E    Type .. _   Name .. MAP01___________________________         
                                                                                   
                                                                                   
                                                                                   
    Command ===>                                                                   
    Enter-PF1---PF2---PF3---PF4---PF5---PF6---PF7---PF8---PF9---PF10--PF11--PF12---
          Help  Menu  Exit                                                  Canc
  2. Geben Sie Folgendes ab der ersten Position des Datenfeldes für den Startnamen ein:

    .P

    Beispiel:

                                                                                   
                              Start .PXXXXXXXXXXXXXXXXXXX                          
                                                                                   
                                End :XXXXXXXXXXXXXXXXXXXX                          
                                                                                   
     
  3. 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    
  4. 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.

  5. 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.

  6. 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).

  7. Testen Sie die Map.

  8. Geben Sie in der daraufhin erscheinenden Ausgabe einen beliebigen Startnamen ein und drücken Sie EINGABE.

    Der Ausgabebildschirm wird geschlossen.

  9. 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.

  10. Geben Sie einen Punkt (.) in dem Feld für den Startnamen ein und drücken Sie EINGABE, um den Ausgabebildschirm zu verlassen.

  11. 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).

Helproutine definieren

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.

Beginn der AnweisungslisteHelproutine definieren

  1. Drücken Sie PF3 im Menü Edit Map, um zum Menü Development Functions zurückzukehren.

  2. Geben Sie unten im Menü Development Functions die folgenden Informationen ein und drücken Sie EINGABE:

         Code .. C    Type .. H   Name .. HLP01___________________________         
                                                                                   
                                                                                   
                                                                                   
    Command ===>                                                                   
    Enter-PF1---PF2---PF3---PF4---PF5---PF6---PF7---PF8---PF9---PF10--PF11--PF12---
          Help  Menu  Exit                                                  Canc

    "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.

  3. Geben Sie Folgendes ein:

    WRITE 'Type the name of an employee'
    END
  4. Speichern Sie die Helproutine mit STOW.

Beginn der AnweisungslisteHelproutine mit einem Feld in der Map verknüpfen

  1. 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
  2. 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.

  3. 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= ________________________________  
  4. Drücken Sie PF3, um die erweiterten Feldinformationen zu verlassen.

  5. Testen Sie die Map.

  6. 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.

  7. Drücken Sie EINGABE, um zur Map zurückzukehren.

  8. Geben Sie einen Punkt (.) in dem Feld für den Startnamen ein und drücken Sie EINGABE, um die Map zu verlassen.

  9. 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).

  10. Drücken Sie PF3, um zum Menü Development Functions zurückzukehren.

Sie können nun mit den nächsten Übungen fortfahren: Local Data Areas.