Systemvariablen und Systemfunktionen

#### Search Results

Search

# 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

- Systemfunktionen

- Beispiel für Systemvariablen und Systemfunktionen

- Weitere Beispiele für Systemvariablen

- Weitere Beispiele für Systemfunktionen

## Systemvariablen

Folgende Themen werden behandelt:

- Sinn und Zweck von Systemvariablen

- Charakteristika von Systemvariablen

- Aufteilung von Systemvariablen nach Funktionen

### 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:

- Anwendungsbezogene Systemvariablen

- Datums- und Zeit-Systemvariablen

- Eingabe/Ausgabe-bezogene Systemvariablen

- Natural-Umgebungsbezogene Systemvariablen

- System-Umgebungsbezogene Systemvariablen

- XML-bezogene Systemvariablen

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:

- Systemfunktionen zur Verwendung in Verarbeitungsschleifen

- Mathematische Funktionen

- Verschiedene Funktionen

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:

- 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

## Weitere Beispiele für Systemvariablen

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)

- WTITLX01 − WRITE TITLE-Statement (mit *PAGE−NUMBER)

## Weitere Beispiele für Systemfunktionen

Siehe folgende Beispielprogramme:

- ATBREX06 - AT BREAK OF-Statement (zum Vergleichen von NMIN, NAVER, NCOUNT mit MIN, AVER, COUNT)

- ATENPX01 - AT END OF PAGE-Statement (mit der durch GIVE SYSTEM FUNCTIONS in DISPLAY verfügbaren Systemfunktion)

### On this page

- Systemvariablen
- Systemfunktionen
- Beispiel für Systemvariablen und Systemfunktionen
- Weitere Beispiele für Systemvariablen
- Weitere Beispiele für Systemfunktionen