Maskenfelder definieren

#### Search Results

Search

# Maskenfelder definieren

Dieser Abschnitt beschreibt die Möglichkeiten, die Ihnen zur Verfügung stehen, um die Felder zu definieren, die Bestandteile einer Maske sein sollen.

- Maskenfelder direkt im Bildschirm definieren

- Definitionen aus anderen Objekten übernehmen

- Systemvariablen in einer Masken-Definition benutzen

## Maskenfelder direkt im Bildschirm definieren

Sie können die Maskenfelder direkt im Masken-Editierbereich definieren, indem Sie ein Trennzeichen (Delimiter) und danach die Anzahl der Stellen angeben, die dem Feld zugeordnet werden sollen. Sie können dazu die folgenden Zeichen verwenden:

Zeichen | Bedeutung
--- | ---
`9` | Numerische Stelle.
`0` | Numerische Stelle, rechtsbündig.
`.` | Dezimal-Notation (nur bei einem numerischen Feld).
`S` | Vorzeichen-Stelle (nur bei einem numerischen Feld).
`HH` | Hexadezimale Stelle (binär) (muss in Zweiergruppen eingegeben werden).
`X` | Alphanumerische Stelle.

Außerdem kann ein Wiederholungsfaktor in der Form `(n)` angegeben werden. Beispiel: `X(5)` ist gleichbedeutend mit `XXXXX`.

Nachfolgend einige Beispiele für Feld-Definitionen (das Trennzeichen kann entsprechend den Erfordernissen geändert werden):

`:999` | 3 Stellen, numerisch
`:000` | 3 Stellen, numerisch, rechtsbündig
`:99.9` | 3 Stellen, numerisch, mit Dezimalzeichen
`:S9(6)` | 6 Stellen, numerisch, mit Vorzeichen
`:HHHH` | 4 Stellen, hexadezimal
`:X` | 1 Stelle, alphanumerisch
`:X(7)` | 7 Stellen, alphanumerisch

Feldern, die wie oben dargestellt eingegeben werden, wird vom Masken-Editor ein funktionsloser Blindname zugewiesen. Vor der Ausführung der Maske muss jedem Feld ein gültiger Name zugewiesen werden. Dazu können Sie entweder die Funktion zur erweiterten Feld-Bearbeitung oder die Vorgehensweise beim nachträglichen Zuweisen von Feldern anwenden. Andere Feldformate können Sie mit Hilfe der Funktion zur erweiterten Feld-Bearbeitung angeben.

## Definitionen aus anderen Objekten übernehmen

Um eine Maske zu definieren, können Sie auch Definitionen aus der lokalen Datendefinition eines anderen Natural-Source-Objekts auswählen. Bei den Datendefinitionen handelt es sich entweder um Felddefinitionen in einem DDM oder um Variablen-Definitionen.

Eine Liste von Objekttypen, die Sie für die Auswahl von Datendefinitionen benutzen können, finden Sie im Abschnitt Objekttypen und Typen-Codes.

#### Einschränkungen bei der Auswahl:

- Programme, Subroutinen, Subprogrammme, Helproutinen und Functions können Sie nur dann benutzen, wenn diese ein `DEFINE DATA LOCAL`-Statement enthalten. Die Definitionen bei einem `DEFINE DATA USING`-Statement stehen nicht für die Auswahl zur Verfügung.

- Felder mit dem Natural-Datenformat U (Unicode), C (Attribute Control) oder Handle (Object Handles) können Sie nicht auswählen. Diese stehen nicht für die Auswahl zur Verfügung.

- Wenn Sie Konstanten für die Begrenzungen eines Array benutzen und wenn diese Konstanten nicht in der lokalen Datendefinition des gewählten Natural-Source-Objekts definiert sind, gehen die Begrenzungen verloren, wenn Sie das Array wählen.

- Sie können kein Element wählen, dem ein Punkt (.) vorangestellt ist (z.B. eine Gruppe).

- Eingabefelder und änderbare Felder (Eingabe/Ausgabe) können im Masken-Editierbereich nur einmal angegeben werden.

Dieser Abschnitt behandelt folgende Themen:

- Datendefinitionen auflisten und kopieren

- Referenzen auf DDMs prüfen und korrigieren

- Objekttypen und Typen-Codes

### Datendefinitionen auflisten und kopieren

Um Datendefinitionen aus anderen Natural-Objekten aufzulisten und zu kopieren:

1. Benutzen Sie den Split-Screen-Modus des Masken-Editors.

         Ob _                                    Ob D CLS ATR DEL     CLS ATR DEL
          .                                       .     T  D    Blnk    T  I    ?
          .                                       .     A  D    _       A  I    )
          .                                       .     A  N    ¬       M  D    &
          .                                       .     M  I    :       O  D    +
          .                                       .     O  I    (
          .                                       .
          001   --010---+----+----+---030---+----+----+---050---+----+----+---070---+-

2. Geben Sie in die Eingabefelder Ob (Object) links oben im Bildschirm einen gültigen Objektcode (siehe auch Objekttypen und Typen-Codes ) und danach einen Objektnamen ein (z.B. `P TEST` wie im Beispiel in Schritt 4). Löschen Sie, soweit vorhanden, alle übrigen Zeichen in dieser Zeile.

   Oder:
   Lassen Sie das erste (durch einen Unterstrich gekennzeichnete) Eingabefeld der Eingabefelder Ob (Object) links oben im Bildschirm leer und geben Sie im zweiten Eingabefeld ein Fragezeichen (?) ein oder drücken Sie PF1 (Help). Löschen Sie, falls vorhanden, alle übrigen Zeichen in dieser Zeile.

   Wenn Sie Enter drücken, erscheint der Bildschirm Select an Object (Objekt auswählen) mit einer Liste aller Objekte, die in der aktuellen Library enthalten sind. Durch Drücken von Enter können Sie in der Liste blättern. Geben Sie im Feld Select die Nummer ein, die dem Objekt entspricht, das Sie auswählen möchten.

3. Drücken Sie Enter.

   Links oben im Masken-Editierbildschirm werden jetzt die Datendefinitionen angezeigt, die im `DEFINE DATA`-Abschnitt des Natural-Programms enthalten sind (Programm `TEST` im folgenden Beispiel).

   Um in der Liste der Datendefinitionen in den Ob-Eingabefeldern zu blättern, können Sie die vorhandenen Einträge (`P TEST` im folgenden Beispiel) mit einem der folgenden Positionierungskommandos überschreiben. Lassen Sie die übrig gebliebenen Zeichen bestehen.

   Kommando | Erläuterung
   --- | ---
   `+` | In der Liste eine Seite nach unten blättern.
   `++` | An das Ende der Liste blättern.
   `-` | In der Liste eine Seite nach oben blättern.
   `–` | An den Anfang der Liste blättern.
   `+n` | Um n Zeilen nach unten blättern.
   `-n` | Um n Zeilen nach oben blättern.

4. Um die Datendefinitionen eines anderen Objekts in den Ob-Eingabefeldern links oben im Bildschirm anzuzeigen, geben Sie einen gültigen Objektcode (siehe auch Objekttypen und Typen-Codes ) und danach einen Objektnamen ein. Löschen Sie, soweit vorhanden, alle übrig gebliebenen Zeichen in dieser Zeile.

   Beispiel:

       Ob P TEST                               Ob L LDA01
       1 #NAME-START               A20         A #NAME-START              A20
       2 #NAME-END                 A20         B #NAME-END                A20
       3 #MARK                     A1          C #PERS-ID                 A8
       . EMPLOYEES-VIEW            *V1         D #MAKE                    A20
       4 PERSONNEL-ID              A8          E #MODEL                   A20
       5 NAME                      A20         .
       001   --010---+----+----+---030---+----+----+---050---+----+----+---070---+----

   Oder:
   Wählen Sie, wie zuvor in Schritt 2 beschrieben, ein Objekt aus der Liste.

5. Kopieren Sie die gewünschten Datendefinitionen in den Masken-Editierbereich:

   - Geben Sie an beliebiger Stelle einer Leerzeile im Masken-Editierbereich ein Trennzeichen und danach die neben der gewünschten Datendefinition angezeigte Folgenummer oder den Buchstaben ein, zum Beispiel:

         (3

     Diese Eingabe wählt die Datendefinition aus, die der Nummer 3 (im obigen Beispiel `#MARK`) zugewiesen ist.

         :C

     Diese Eingabe wählt die Datendefinition aus, die dem Buchstaben C (im obigen Beispiel `#PERS-ID`) zugewiesen ist.

   - Drücken Sie Enter.

     Die Eigenschaften der Datendefinitionen (Name, Format, Länge oder Array-Definitionen) werden in die Maske kopiert.

     Mittels der Feldbearbeitungsfunktionen des Masken-Editors können Sie die kopierten Werte anzeigen oder ändern. Siehe auch Erweiterte Feld-Bearbeitung und Array- und Tabellen-Definitionen .

### Referenzen auf DDMs prüfen und korrigieren

Zu jedem aus einem DDM kopierten Maskenfeld wird automatisch ein `INCDIR`-Statement in den Quellcode der Maske generiert. Das `INCDIR`-Statement enthält den Namen der DDM-Datei und des Feldes, das von dem Maskenfeld referenziert wird. Sie können prüfen, ob ein `INCDIR`-Statement eine ungültige DDM-Referenz enthält, indem Sie die `CHKRULE`-Option des Systemkommandos `COMPOPT` einschalten. Natural gibt dann, wenn Sie die Maskendefinition katalogisieren, eine entsprechende Fehlermeldung aus. Weitere Informationen siehe CHKRULE - Validierung von INCDIR-Statements in Masken in der Systemkommandos-Dokumentation.

Im Masken-Editierbereich können Sie alle `INCDIR`-Statements auflisten und, falls erforderlich, den Namen eines DDM ändern.

Um ein einzelnes oder mehrere `INCDIR`-Statements aufzulisten und zu aktualisieren:

1. Geben Sie das folgende Zeilenkommando in einer beliebigen Zeile des Editierbereichs ein:

       ..L

   Der Bildschirm Modify INCDIR Statements of Map erscheint (Beispiel):

        16:24:23        - Modify INCDIR Statements of Map  MAPTEST  -       2008-05-14
                                                                          Top of List

              DDM Name                          Field Name
              AUTOMOBILES                       MAKE
              AUTOMOBILES                       OWNER-PERSONNEL-NUMBER
              FINANCE                           BANK
              AUTOMOBILES                       MODEL
              EMPLOYEES                         PERSONNEL-ID
              AUTOMOBILES                       BODY-TYPE
              EMPLOYEES                         FIRST-NAME
              AUTOMOBILES                       NUMBER-OF-CYLINDERS
              EMPLOYEES                         MIDDLE-I
              AUTOMOBILES                       HORSEPOWER
              EMPLOYEES                         NAME
              AUTOMOBILES                       PISTON-DISPLACEMENT
              EMPLOYEES                         MIDDLE-NAME
              AUTOMOBILES                       WEIGHT
              EMPLOYEES                         MAR-STAT
              AUTOMOBILES                       COLOR

       Enter-PF1---PF2---PF3---PF4---PF5---PF6---PF7---PF8---PF9---PF10--PF11--PF12---
             Help        Exit        GenC  –    -     +     ++

   Der Bildschirm enthält eine Liste aller `INCDIR`-Statements, die in den Quellcode der aktuellen Masken-Definition generiert worden sind. Die Liste enthält außerdem die Namen aller DDM-Dateien und DDM-Felder, aus denen Sie ein Maskenfeld kopiert haben.

2. Falls erforderlich, können Sie den DDR-Namen für ein `INCDIR`-Statement ändern, indem Sie den Namen oder die Namen in der Spalte DDM Name ersetzen.

   Oder:
   Drücken Sie PF5, um das Fenster Generic Change aufzurufen. Geben Sie im Feld New DDM Name den Namen des neuen DDM ein, der von allen `INCDIR`-Statements benutzt werden soll, die diesen DDM referenzieren.

   Der DDM-Name bzw. die DDM-Namen in dem (den) entsprechenden `INCDIR`-Statement(s) werden aktualisiert, wenn Sie die Masken-Definition speichern (Funktion Save Map oder Stow Map).

### Objekttypen und Typen-Codes

Die folgende Liste enthält eine Aufstellung der Objekttypen und der entsprechenden Typen-Codes, die zum Auswählen von Datendefinitionen verwendet werden können:

Objekttyp | Typen-Code | Bemerkung
--- | --- | ---
Parameter Data Area | `A` |
Predict Conceptual Files | `C` | Der Objekttyp "Predict Conceptual Files" ist nur verfügbar, wenn Predict installiert ist.
Global Data Area | `G` |
Helproutine | `H` |
Local Data Area | `L` |
Map | `M` |
Subprogram | `N` |
General Object | `O` | Der Objekttyp "General Object" (`O`) ermöglicht es Ihnen, Daten aus einem Quellcode zu importieren, ohne den korrekten Objekttyp anzugeben, wenn Sie zum Beispiel den Objektnamen, aber nicht den Objekttyp kennen. Im Feld Ob können Sie in einem solchen Fall `O objectname` eingeben. Dabei stellt `objectname` den Objektnamen dar. Der Masken-Editor ändert dann den Objekttyp von `O` in den korrekten Objekttyp und importiert die Daten.
Program | `P` |
Subroutine | `S` |
View (DDM) | `V` |
Function | `7` |

## Systemvariablen in einer Masken-Definition benutzen

Natural-Systemvariablen können in einer Masken-Definition angegeben werden. Weitere Informationen zu Systemvariablen siehe Systemvariablen im Leitfaden zur Programmierung und die ausführlichen Einzelbeschreibungen in der Systemvariablen-Dokumentation.

Einer Systemvariablen muss ein Ausgabetrennzeichen (Delimiter) vorangestellt werden. Siehe folgendes Beispiel:

    (*TIME
    (*DATE
    (*APPLIC-ID

### On this page

- Maskenfelder direkt im Bildschirm definieren
- Definitionen aus anderen Objekten übernehmen
- Systemvariablen in einer Masken-Definition benutzen