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(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:
*CURS-FIELD
und
POS(field-name)
dienen nur zur internen
Identifikation der Felder und können nicht für arithmetische Operationen
verwendet werden.
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.
*CURS-FIELD
und
POS(field-name)
sich auf eine
Kontextvariable beziehen, können die daraus resultierenden Informationen nur
innerhalb derselben Konversation verwendet werden.
*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.