Allgemeine Syntax von DEFINE DATA PARAMETER
:
PARAMETER |
USING
parameter-data-area |
|||||
parameter-data-definition |
Dieses Dokument behandelt folgende Themen:
Eine Erläuterung der in dem Syntax-Diagramm verwendeten Symbole entnehmen Sie dem Abschnitt Syntax-Symbole.
Das DEFINE DATA PARAMETER
-Statement wird benutzt, um die
Datenelemente zu definieren, die als Eingabeparameter in einem
Natural-Subprogramm, einer externen Subroutine oder
Helproutine
verwendet werden sollen. Diese Parameter können innerhalb des Statements selbst
definiert werden (siehe Parameter-Daten-Definition
weiter unten); oder sie können außerhalb des Programms in einer Parameter Data
Area (PDA) definiert werden, wobei das Statement diese Data Area
referenziert.
Parameter-Datenelementen dürfen keine Ausgangswerte oder auch Konstanten-Werte zugewiesen werden, und sie dürfen keine Editiermasken-Definitionen (EM), Kopfzeilen-Definitionen (HD) oder Druckmodus-Definitionen (PM) haben (siehe auch EM-, HD-, PM-Parameter für Feld/Variable).
Die Parameter Data Area und die sie referenzierenden Objekte müssen in derselben Library (oder in einer Steplib) enthalten sein.
USING parameter-data-area | Der Name der parameter-data-area, die Datenelemente enthält, die als Parameter in einem Subprogramm, einer externen Subroutine oder einem Dialog benutzt werden. |
---|---|
parameter-data-definition | Anstatt eine Parameter Data Area zu definieren, können Parameter auch direkt in einem Programm oder einer Routine definiert werden; siehe Definition von Parameterdaten weiter unten. |
END-DEFINE | Das für Natural reservierte Wort END-DEFINE muss
zum Beenden des DEFINE DATA -Statements benutzt werden.
|
Für die direkte Parameter-Daten-Definition gilt die folgende Syntax:
level | group-name [(array-definition)] | ||||||||||||||
redefinition | |||||||||||||||
(format-length[/array-definition]) | |||||||||||||||
variable-name | [BY VALUE [RESULT ]]
[OPTIONAL ]
|
||||||||||||||
[(array-definition)] | DYNAMIC |
||||||||||||||
parameter-handle-definition [BY VALUE [RESULT ]]
[OPTIONAL ]
|
Syntax-Element-Beschreibung:
level |
Dies ist eine ein- oder zweistellige Zahl im Bereich von 01 bis 99 (die vorangestellte 0 ist nicht erforderlich), die in Verbindung mit der Gruppierung von Feldern verwendet wird. Felder mit einer Level-Nummer von 02 an aufwärts werden als Teil einer unmittelbar vorangehenden Gruppe mit einer jeweils nächst-niedrigeren Level-Nummer betrachtet. Durch die Definition einer Gruppe (die auch nur aus einem Feld
bestehen kann) ist es möglich, durch Angabe lediglich des Gruppennamens eine
ganze Reihe von aufeinanderfolgenden Feldern gleichzeitig zu referenzieren. Bei
manchen Statements ( Eine Gruppe kann aus weiteren Gruppen bestehen. Bei der Vergabe von Level-Nummern für eine Gruppe darf kein Level ausgelassen werden. |
|
---|---|---|
group-name | Der Name einer Gruppe. Der Name
muss den Regeln zur Definition eines Natural-Variablennamens entsprechen. Siehe
auch die folgenden Abschnitte:
|
|
array-definition | Mit array-definition definieren Sie die untere und obere Grenze einer Dimension in einer Array-Definition. Siehe Definition von Array-Dimensionen und Variable Arrays in einer Parameter Data Area. | |
redefinition |
Mit redefinition können Sie eine Gruppe oder ein einzelnes Feld oder eine einzelne Variable (d.h. Skalar oder Array) redefinieren. Siehe Redefinition. Anmerkung: |
|
variable-name | Der der Variablen zuzuweisende Name. Es gelten die Regeln für Natural- Variablennamen. Informationen zu Namenskonventionen für Benutzervariablen, siehe Namen von Benutzervariablen in der Dokumentation Natural benutzen. | |
format-length | Das Format und die Länge des Feldes. Informationen zu Format und Länge für Benutzervariablen, siehe den Abschnitt Format und Länge von Benutzervariablen im Leitfaden zur Programmierung. | |
A, U or B | Datentyp: Alphanumerisch (A) oder Binär (B) für dynamische Variable. | |
DYNAMIC | Ein Parameter kann als
DYNAMIC definiert werden. Weitere Informationen zur Verarbeitung
von dynamischen Variablen, siehe Dynamische
Variablen im Leitfaden zur
Programmierung.
|
|
Call-Modus:
Je nachdem, ob der Call-By-Reference- oder Call-By-Value-Modus
benutzt wird, gilt die betreffende Übertragungsart. Weitere Informationen siehe
|
||
(without BY VALUE) |
Call-By-Reference-Modus:
Ohne |
|
BY VALUE |
Call-By-Value-Modus:
Mit Mit |
|
Beispiel für BY VALUE :
|
||
* Program DEFINE DATA LOCAL 1 #FIELDA (P5) ... END-DEFINE ... CALLNAT 'SUBR01' #FIELDA ... |
* Subroutine SUBR01 DEFINE DATA PARAMETER 1 #FIELDB (P9) BY VALUE END-DEFINE ... |
|
BY VALUE RESULT |
Call-By-Value-Result-Modus:
Während Wenn Sie |
|
OPTIONAL |
Bei einem ohne Bei einem mit Bei der |
|
parameter-handle-definition | Siehe Abschnitt Parameter-Handle-Definition weiter unten. |
Syntax der parameter-handle-definition:
handle-name [(array-definition)]
HANDLE OF
OBJECT |
Syntax-Element-Beschreibung:
handle-name | Der der Handle zuzuweisende Name; es gelten die Namenskonventionen für Benutzervariablen; siehe Namen von Benutzervariablen in der Dokumentation Natural benutzen. |
---|---|
HANDLE OF OBJECT | Wird benutzt in Zusammenhang mit NaturalX. Siehe NaturalX im Leitfaden zur Programmierung. |
array-definition | Bei einer Array-Definition definieren Sie die untere und obere Grenze einer Dimension in einer Array-Dimension. Siehe Definition der Array-Dimension. |