Systemvariablen und Systemfunktionen

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:


Systemvariablen

Folgende Themen werden behandelt:

Sinn und Zweck von Systemvariablen

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.

Charakteristika von Systemvariablen

Die Namen der Systemvariablen beginnen mit einem Stern (*).

Format/Länge

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

Inhalt änderbar

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.

Aufteilung von Systemvariablen nach Funktionen

Die Natural-Systemvariablen sind wie folgt unterteilt:

Ausführliche Beschreibungen aller Systemvariablen finden Sie in der Systemvariablen -Dokumentation.

Systemfunktionen

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.

Beispiel für Systemvariablen und Systemfunktionen

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:

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

Weitere Beispiele für Systemvariablen

Siehe folgende Beispielprogramme:

Weitere Beispiele für Systemfunktionen

Siehe folgende Beispielprogramme: