POS - Feldidentifikationsfunktion

#### Search Results

Search

# POS - Feldidentifikationsfunktion

Format/Länge: | I4

Die Systemfunktion `POS(field-name)` enthält die interne Identifikation des Feldes, dessen Name mit der Systemfunktion angegeben wird.

`POS(field-name)` identifiziert ein bestimmtes Feld, unabhängig von seiner Position in einer Maske (Map). Auch wenn sich die Reihenfolge und Anzahl der Felder in einer Maske ändert, identifiziert `POS(field-name)` nach wie vor eindeutig dasselbe Feld. Damit genügt zum Beispiel ein einziges `REINPUT`-Statement, um es von der Programmlogik abhängig zu machen, welches Feld `MARK`iert werden soll.

Beispiel:

    DECIDE ON FIRST VALUE OF ...
       VALUE ...
          COMPUTE #FIELDX = POS(FIELD1)
       VALUE ...
          COMPUTE #FIELDX = POS(FIELD2)
       ...
    END-DECIDE
    ...
    REINPUT ... MARK #FIELDX

Wenn das mit `POS` angegebene Feld ein Array ist, muss eine bestimmte Ausprägung angegeben werden; zum Beispiel `POS(FIELDX(5))`. Auf einen Array-Bereich kann `POS` nicht angewendet werden.

#### POS und *CURS-FIELD

`POS(field-name)` kann in Verbindung mit der Natural-Systemvariablen `*CURS-FIELD` dazu verwendet werden, die Ausführung bestimmter Funktionen davon abhängig zu machen, in welchem Feld der Cursor zur Zeit steht.

`*CURS-FIELD` enthält die interne Identifikation des Feldes, in dem sich der Cursor zur Zeit befindet; *CURS−FIELD kann nicht alleine, sondern nur zusammen mit `POS(field-name)` verwendet werden. Sie können beide zusammen dazu benutzen, um zu prüfen, ob sich der Cursor gerade in einem bestimmten Feld befindet, und die weitere Verarbeitung von dieser Bedingung abhängig machen.

Beispiel:

    IF *CURS-FIELD = POS(FIELDX)
       MOVE *CURS-FIELD TO #FIELDY
    END-IF
    ...
    REINPUT ... MARK #FIELDY

Anmerkungen:

1. Die Werte von `*CURS-FIELD` und `POS(field-name)` dienen nur zur internen Identifikation der Felder und können nicht für arithmetische Operationen verwendet werden.
2. Der von `POS(field-name)` zurückgegebene Wert für eine Ausprägung eines X-Arrays (ein Array, für das wenigstens eine Dimension als erweiterbar angegeben ist) kann sich ändern, nachdem die Anzahl der Ausprägungen für eine Dimension des Arrays mittels der Statements `EXPAND`, `RESIZE` oder `REDUCE` geändert wurde.
3. Natural RPC: Wenn `*CURS-FIELD` und `POS(field-name)` sich auf eine Kontextvariable beziehen, können die daraus resultierenden Informationen nur innerhalb derselben Konversation verwendet werden.
4. In Natural for Ajax-Anwendungen dient `*CURS-FIELD` zur Identifikation des Operanden, welcher den Wert des Control darstellt, welches den Eingabefokus hat. Sie können `*CURS-FIELD` in Verbindung mit der `POS`-Funktion benutzen, um eine Prüfung auf das Control, welches den Eingabefokus hat, zu veranlassen und die Verarbeitung in Abhängigkeit von diesem Zustand durchzuführen.

Siehe auch

- Dialog-Gestaltung, Feld-sensitive Verarbeitung und Einfachere Programmierung im Natural Leitfaden zur Programmierung.

- POS22 - Version 2.2 Algorithm for POS System Function in der Parameter-Referenz-Dokumentation.