Dieses Dokument beschreibt den Sinn und Zweck von Natural-Systemvariablen und Natural-Systemfunktionen, und wie sie in Natural-Programmen benutzt werden.
Folgende Themen werden behandelt:
Folgende Themen werden behandelt:
Systemvariablen werden zur Anzeige von System-Informationen benutzt. Sie können an einem beliebigen Punkt in einem Natural-Programm referenziert werden.
Natural-Systemvariablen liefern Variablen-Informationen, z.B. zur aktuellen Natural-Session:
die aktuelle Library
die Benutzer-ID und die Terminal-ID
den aktuellen Status eines Schleifendurchlaufs
den aktuellen Verarbeitungs-Status von Reports
das aktuelle Datum und die aktuelle Uhrzeit
Die typische Benutzung von Systemvariablen wird im
Beispiel für Systemvariablen
und Systemfunktionen weiter unten und in den in der
Library SYSEXPG
enthaltenen Beispielen veranschaulicht.
Die in einer Systemvariable enthaltenen Informationen können in
Natural-Programmen unter Angabe der betreffenden Systemvariablen benutzt
werden. Beispielsweise können Datums- und Zeit-Systemvariablen in einem
DISPLAY
-,
WRITE
-,
PRINT
-,
MOVE
- oder
COMPUTE
-Statement
angegeben werden.
Die Namen der Systemvariablen beginnen mit einem Stern (*).
Folgende Abkürzungen werden verwendet:
Format | |
---|---|
A | Alphanumerisch |
B | Binär |
D | Datum |
I | Integer (Ganzzahl) |
L | Logisch |
N | Numerisch (ungepackt) |
P | Numerisch (gepackt) |
T | Zeit |
In den einzelnen Beschreibungen verweist dies darauf, ob Sie in einem Natural-Programm der Systemvariablen einen anderen Wert zuweisen können, d.h. ihren von Natural generierten Inhalt überschreiben können.
Die Natural-Systemvariablen sind wie folgt unterteilt:
Ausführliche Beschreibungen aller Systemvariablen finden Sie in der Systemvariablen -Dokumentation.
Natural-Systemfunktionen sind in Natural eingebaute Funktionen, mit denen Sie statistische und mathematische Informationen über die gelesenen Daten erhalten können. Sie können eingesetzt werden, nachdem ein Datensatz gelesen worden ist, aber vor einem Gruppenwechsel.
Systemfunktionen können in WRITE
-,
DISPLAY
-,
PRINT
-,
COMPUTE
- oder
MOVE
-Statements in
Verbindung mit AT END OF
PAGE
-, AT END OF
DATA
- und AT
BREAK
-Statements benutzt werden.
Im Falle eines AT END OF PAGE
-Statements muss das jeweilige
DISPLAY
-Statement eine GIVE SYSTEM
FUNCTIONS
-Klausel enthalten (wie im
Beispiel gezeigt).
Es gibt folgende nach Funktionen aufgeteilten Systemfunktionen:
Weitere Informationen zu Systemfunktionen finden Sie in der Systemfunktionen-Dokumentation.
Siehe dort auch Natural-Systemfunktionen für Verarbeitungsschleifen in der Systemfunktionen-Dokumentation.
Die typische Benutzung von Systemfunktionen ist in den folgenden
Beispielprogrammen und in den in der Library
SYSEXPG
enthaltenen Beispielen erläutert.
Das folgende Beispielprogramm veranschaulicht die Verwendung von Systemvariablen und Systemfunktionen:
** Example 'SYSVAX01': System variables and system functions ************************************************************************ DEFINE DATA LOCAL 1 MYVIEW VIEW OF EMPLOYEES 2 CITY 2 NAME 2 JOB-TITLE 2 INCOME (1:1) 3 CURR-CODE 3 SALARY 3 BONUS (1:1) END-DEFINE * WRITE TITLE LEFT JUSTIFIED 'EMPLOYEE SALARY REPORT AS OF' *DAT4E / * READ (3) MYVIEW BY CITY STARTING FROM 'E' DISPLAY GIVE SYSTEM FUNCTIONS NAME (AL=15) JOB-TITLE (AL=15) INCOME (1:1) AT START OF DATA WRITE 'REPORT CREATED AT:' *TIME 'HOURS' / END-START AT END OF DATA WRITE / 'LAST PERSON SELECTED:' OLD (NAME) / END-ENDDATA END-READ * AT END OF PAGE WRITE 'AVERAGE SALARY:' AVER (SALARY(1)) END-ENDPAGE END
Erläuterung:
Die Systemvariable
*DATE
wird mit dem WRITE
TITLE
-Statement ausgegeben.
Die Systemvariable
*TIME
wird mit dem AT START OF
DATA
-Statement ausgegeben.
Die Systemfunktion OLD
wird im
AT END OF
DATA
-Statement benutzt.
Die Systemfunktion AVER
wird im
AT END OF
PAGE
-Statement benutzt.
Ausgabe des Programms SYSVAX01
:
Beachten Sie, wie die Systemvariablen und Systemfunktionen angezeigt werden:
EMPLOYEE SALARY REPORT AS OF 11/11/2004 NAME CURRENT INCOME POSITION CURRENCY ANNUAL BONUS CODE SALARY --------------- --------------- -------- ---------- ---------- REPORT CREATED AT: 14:15:55.0 HOURS DUYVERMAN PROGRAMMER USD 34000 0 PRATT SALES PERSON USD 38000 9000 MARKUSH TRAINEE USD 22000 0 LAST PERSON SELECTED: MARKUSH AVERAGE SALARY: 31333
Siehe folgende Beispielprogramme:
EDITMX05 - Editiermaske (EM-Angaben für Datums- und Uhrzeit-Systemvariablen)
READX04 − READ-Statement (in Kombination mit FIND und den Systemvariablen *NUMBER und *COUNTER)
Siehe folgende Beispielprogramme: