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 Leitfaden zur Programmierung.