PROCESS PAGE

#### Search Results

Search

# PROCESS PAGE

Dieses Dokument behandelt folgende Themen:

- Funktion PROCESS PAGE

- Syntax 1 - PROCESS PAGE

- Syntax 2 - PROCESS PAGE USING

- Syntax 3 - PROCESS PAGE UPDATE

- Syntax 4 - PROCESS PAGE MODAL

- Beispiele

## Funktion PROCESS PAGE

Das `PROCESS PAGE`-Statement bildet eine allgemeine Schnittstellen-Beschreibung zu einer externen Rendering-Maschine, wie z.B. Natural for Ajax, wobei somit die interne Natural-Datendarstellung mit einer externen Datendarstellung verknüpft wird. Über diese Verknüpfung werden Daten und Ereignisse, aber keine Rendering-Informationen an und von eine/r externen browser-basierte/n Anwendung versandt.

Weitere Informationen entnehmen Sie der Natural for Ajax-Dokumentation.

## Syntax 1 - PROCESS PAGE

`PROCESS PAGE` [(parameter)] operand1
[`WITH PARAMETERS`
{[`NAME`] operand3 [`VALUE`] operand4 [(parameters)]} ...
`END-PARAMETERS`]
[`GIVING` operand11]

Eine Erläuterung der in dem Syntax-Diagramm verwendeten Symbole entnehmen Sie dem Abschnitt Syntax-Symbole.

Gehört zur Funktionsgruppe: Bildschirmgenerierung für interaktive Verarbeitung

### Syntax-Beschreibung - Syntax 1

Die Syntax 1 des `PROCESS PAGE`-Statements wird normalerweise nur in einem Natural-Adapter benutzt. Ein Adapter ist ein Natural-Objekt, das die Schnittstelle zwischen dem Natural-Anwendungscode und der Webseite bildet. Er wird automatisch von Natural for Ajax erstellt/aktualisiert, wenn das Layout gespeichert wird.

Operanden-Definitionstabelle:

Operand | Possible Structure | Possible Formats | Referencing Permitted | Dynamic Definition
--- | --- | --- | --- | ---
operand1 | C | S |  |  |  | A | U |  |  |  |  |  |  |  |  |  |  |  | yes | no
operand2 |  | S | A |  |  |  |  |  |  |  |  |  |  |  |  | C |  |  | no | no
operand3 | C | S |  |  |  | A | U |  |  |  |  |  |  |  |  |  |  |  | yes | no
operand4 | C | S | A |  |  | A | U | N | P | I | F | B | D | T | L |  |  |  | yes | yes
operand5 |  | S | A |  |  |  |  |  |  |  |  |  |  |  |  | C |  |  | no | no
operand11 |  | S |  |  |  |  |  |  |  | I4 |  |  |  |  |  |  |  |  | yes | yes

Syntax-Element-Beschreibung:

Syntax-Element | Beschreibung
--- | ---
`parameter` | Attribut-Kontrollvariable(n): Den Parameter `CV` können Sie in Klammern angeben, um eine oder mehrere der in `operand2` angebenenen Kontrollvariablen zu referenzieren:
    (CV=operand2)
Siehe auch Logische Bedingungen, MODIFIED-Option im Leitfaden zur Programmierung.
`operand1` | Name des externen Seiten-Layouts: `operand1` enthält den Namen des externen Seiten-Layouts.
`operand2` | Name der Attribut-Kontrollvariable(n): `operand2` enthält den Namen der Kontrollvariablen, muss Format C haben und entweder ein Skalar oder eine einzelne Array-Ausprägung sein.
`operand3` | Namen der externen Datenfelder: `operand3` enthält den/die Namen des/der externen Datenfelder, in die oder aus denen `operand4` übertragen wird.
`operand4` | Namen der Natural-Datenfelder: `operand4` enthält den/die Namen des bzw. der externen Natural-Datenfelder, die übertragen werden.
`parameters` | Parameter: Unmittelbar nach `operand4` können Sie einen oder mehrere Parameter in Klammern angeben:
`EM` or `EMU` | Während des Datentransfers verwendete Editiermaske. Weitere Informationen siehe Session-Parameter `EM` in der Parameter-Referenz. Weitere Informationen zu Unicode-Editiermasken siehe Session-Parameter `EMU` in der Parameter-Referenz.
`CV` | Den Parameter `CV`, können Sie angeben, um eine oder mehrere in `operand5` angegebene Kontrollvariable zu referenzieren:
    (CV=operand5)
Siehe auch Logische Bedingungen, MODIFIED-Option im Leitfaden zur Programmierung.
`operand5` | Name der Attribut-Kontrollvariable(n): `operand5` enthält den Namen der Kontrollvariablen. Die Variable must Format C haben. Falls operand4 ein Skalar-Ausdruck oder eine einzelne Array-Ausprägung ist, muss `operand5` folgendes sein: ein Skalar-Ausdruck oder eine einzelne Array-Ausprägung. Falls es sich bei `operand4` um den vollen Bereich eines Array der Dimension 1 handelt, muss `operand5` folgendes sein: ein Skalar-Ausdruck oder eine einzelne Array-Ausprägung oder der volle Bereich eines Array der Dimension 1 mit der gleichen Größe. Falls es sich bei `operand4` um den vollen Bereich eines Array der Dimension 2 handelt, muss `operand5` folgendes sein: ein Skalar-Ausdruck oder eine einzelne Array-Ausprägung oder der volle Bereich eines Array der Dimension 2 mit der gleichen Größe in beiden Dimensionen oder der volle Bereich eines Array der Dimension 1 mit der gleichen Größe, die `operand4` in Dimension 2 hat.
`GIVING operand11` | GIVING-Klausel: `operand11` enthält den Natural-Fehler, wenn die Anfrage nicht ausgeführt werden konnte.

Beispiel eines Adapters, der vom Natural for Ajax erstellt wurde:

    * PAGE1: PROTOTYPE       --- CREATED BY Natural for Ajax ---
    * PROCESS PAGE USING 'XXXXXXXX' WITH
    * INFOPAGENAME RESULT YOURNAME
    DEFINE DATA PARAMETER
    1 INFOPAGENAME (U) DYNAMIC
    1 RESULT (U) DYNAMIC
    1 YOURNAME (U) DYNAMIC
    END-DEFINE
    *
    PROCESS PAGE U'/njxdemos/helloworld' WITH
    PARAMETERS
     NAME U'infopagename'
      VALUE INFOPAGENAME
     NAME U'result'
      VALUE RESULT
     NAME U'yourname'
      VALUE YOURNAME
    END-PARAMETERS
    *
    *  TODO: Copy to your calling program and implement.
    /*/*( DEFINE EVENT HANDLER
    * DECIDE ON FIRST *PAGE-EVENT
    *  VALUE U'nat:page.end'
    *   /* Page closed.
    *   IGNORE
    *  VALUE U'onHelloWorld'
    *   /* TODO: Implement event code.
    *   PROCESS PAGE UPDATE FULL
    *  NONE VALUE
    *   /* Unhandled events.
    *   PROCESS PAGE UPDATE
    * END-DECIDE
    /*/*) END-HANDLER
    *
    END

## Syntax 2 - PROCESS PAGE USING

`PROCESS PAGE USING` operand6
|  | `WITH` {operand7} ... `NO PARAMETER` |  |
[`GIVING` operand11]

Eine Erläuterung der in dem Syntax-Diagramm verwendeten Symbole entnehmen Sie dem Abschnitt Syntax-Symbole.

Gehört zur Funktionsgruppe: Bildschirmgenerierung für interaktive Verarbeitung

### Syntax-Beschreibung - Syntax 2

Diese Syntax wird benutzt, um eine Rich-GUI-Eingabe/Ausgabeverarbeitung mittels eines Objekts des Typs Adapter auszuführen, das aus einem Seiten-Layout angelegt wurde, welches mit Natural for Ajax oder einem ähnlichen Tool erstellt wurde.

Operanden-Definitionstabelle:

Operand | Possible Structure | Possible Formats | Referencing Permitted | Dynamic Definition
--- | --- | --- | --- | ---
operand6 | C | S |  |  |  | A |  |  |  |  |  |  |  |  |  |  |  |  | yes | no
operand7 |  | S | A | G |  | A | U | N | P | I | F | B | D | T | L |  |  |  | yes | yes
operand11 |  | S |  |  |  |  |  |  |  | I4 |  |  |  |  |  |  |  |  | yes | yes

Syntax-Element-Beschreibung:

Syntax-Element | Beschreibung
--- | ---
`USING operand6` | Adapter-Name: Ruft eine Adapter-Definition auf, die vorher in einer Natural-Systemdatei gespeichert wurde. Siehe auch Adapter im Leitfaden zur Programmierung. Der Adapter-Name (`operand6`) kann eine 1 bis 8 Zeichen umfassende, alphanumerische Konstante oder Benutzervariable sein. Wenn eine Variable benutzt wird, muss sie vorher definiert worden sein. Der Adapter-Name kann ein Kaufmännisches Und (&) enthalten; zur Ausführungszeit wird dieses Zeichen durch den aktuellen Wert der Natural-Systemvariablen `*LANGUAGE` ersetzt. Diese Funktion gibt es aus historischen Gründen. Wenn Sie mehrsprachige Adapter benötigen, machen Sie sich die Funktionalität des externen Rendering-Systems (zum Beispiel: Natural for Ajax) zunutze. Anmerkung Bei neuen Anwendungen muss die &-Funktion nicht mehrsprachig sein. Seiten, die zum Beispiel mit Natural for Ajax gestaltet wurden, können mehrsprachige Informationen als Bestandteil des Layout-Designs aufnehmen. Siehe Multi Language Management in der Natural for Ajax-Dokumentation.
`operand7` | Feld-Spezifikation: Eine Liste der Datenbank-Felder und/oder Benutzervariablen, die alle vorher definiert sein müssen. Die Felder müssen in Anzahl, Reihenfolge, Format, Länge und (für Arrays) der Anzahl der Ausprägungen mit den Feldern im referenzierten Adapter übereinstimmen; sonst tritt ein Fehler auf. Wenn der Inhalt eines Datenbank-Feldes als Ergebnis der `PROCESS PAGE`-Verarbeitung geändert wird, wird nur der Wert geändert, wie er in der Data Area abgelegt ist. Um den Inhalt der Datenbank zu ändern, müssen die passenden `UPDATE`-/`STORE`-Statements für die Datenbank benutzt werden. Siehe PROCESS PAGE USING mit im Programm definierten Feldern.
`NO PARAMETER` | NO PARAMETER-Option: Siehe PROCESS PAGE USING ohne Parameter-Liste.
`GIVING operand11` | GIVING-Klausel: operand11 enthält den Natural-Fehler, wenn die Anfrage nicht ausgeführt werden konnte. Anmerkung Die `GIVING`-Klausel unterbricht die allgemeine Natural-Fehlerbehandlung, wenn ein Fehler auftritt, während das Adapter-Objekt aktiviert oder ausgeführt wird. Anstatt die Natural-Module zurückzuverfolgen, um eine `ON ERROR`-Klausel zu finden, wird der Natural-Fehlercode an eine Variable (operand11) übergeben, und die Ausführung wird mit dem nächsten Statement fortgesetzt.

#### PROCESS PAGE USING ohne Parameter-Liste

Die folgenden Anforderungen müssen erfüllt sein, wenn `PROCESS PAGE USING` ohne Parameter-Liste benutzt wird:

- Der Adapter-Name (`operand6`) muss als eine alphanumerische Konstante (bis zu 8 Zeichen) angegeben werden.

- Der auf diese Art benutzte Adapter muss vor der Kompilierung des Programms erstellt worden sein, welches den Adapter referenziert.

- Die Namen der zu verarbeitenden Felder werden dynamisch aus der Adapter-Quelldefinition zur Kompilierungszeit übernommen. Die sowohl im Programm als auch im Adapter verwendeten Feldnamen müssen identisch sein.

- Alle im `PROCESS PAGE`-Statement zu referenzierenden Felder müssen an diesem Punkt aufrufbar sein.

- Im Structured Mode müssen die Felder vorher definiert worden sein (Datenbank-Felder müssen für Verarbeitungsschleifen oder Views (Datensichten) ordnungsgemäß referenziert werden).

- Wenn das Seiten-Layout geändert wird, müssen die den Adapter verwendenden Programme nicht neu katalogisiert werden. Wenn aber die Array-Strukturen oder Namen, Formate/Längen der Felder geändert werden, oder wenn Felder zum Adapter hinzugefügt oder aus ihm gelöscht werden, müssen die den Adapter benutzenden Programme neu katalogisiert werden.

- Der Adapter-Quellcode muss zur Programm-Kompilierung zur Verfügung stehen; sonst kann das `PROCESS PAGE USING`-Statement nicht kompiliert werden.

Anmerkung
Wenn Sie das Programm kompilieren möchten, auch wenn der Adapter noch nicht zur Verfügung steht, geben Sie `NO PARAMETER` an. Das `PROCESS PAGE USING`-Statement kann dann kompiliert werden, auch wenn der Adapter noch nicht verfügbar ist.

#### PROCESS PAGE USING mit im Programm definierten Feldern

Wenn Sie die Namen der Felder angeben, die innerhalb des Programms (operand7) verarbeitet werden sollen, ist es möglich, dass Sie es so einrichten können, dass die Namen der Felder im Programm sich von den Namen der Felder im Adapter unterscheiden.

Die Reihenfolge der Felder im Programm muss mit der Reihenfolge im Adapter übereinstimmen. Wenn Sie Natural-Maps als Adapter-Objekte benutzen, beachten Sie, dass der Map-Editor die Felder so sortiert, wie in der Map angegeben, und zwar in alphabetischer Reihenfolge nach Feldnamen. Weitere Informationen siehe Masken-Editor (Map Editor) in der Editoren-Dokumentation.

Das Programmeditorzeilenkommando `.I(adaptername)` kann benutzt werden, um ein vollständiges `PROCESS PAGE USING`-Statement mit einer Parameter-Liste zu erhalten, die aus den im angegebenen Adapter definierten Feldern abstammt.

Wenn das Layout des Adapters geändert wird, braucht das den Adapter verwendende Programm nicht neu katalogisiert zu werden. Wenn aber Feldnamen, Feldformate/längen oder Array-Strukturen im Adapter geändert werden, oder wenn Felder zum Adapter hinzugefügt oder aus ihm gelöscht werden, dann muss das Programm neu katalogisiert werden.

Zur Ausführungszeit findet eine Überprüfung statt, um sicherzustellen, dass das im Programm angegebene Format und die im Programm angegebene Länge der Felder mit den Feldern übereinstimmt, die im Adapter spezifiziert sind. Falls die beiden Layouts nicht miteinander übereinstimmen, wird eine Fehlermeldung erzeugt.

## Syntax 3 - PROCESS PAGE UPDATE

`PROCESS PAGE UPDATE`
|  | `FULL` `DATA` |  | [event-option] [`GIVING` operand11]

Eine Erläuterung der in dem Syntax-Diagramm verwendeten Symbole entnehmen Sie dem Abschnitt Syntax-Symbole.

Gehört zur Funktionsgruppe: Bildschirmgenerierung für interaktive Verarbeitung

### Syntax-Beschreibung - Syntax 3

Das `PROCESS PAGE UPDATE`-Statement wird benutzt, um zu einem vorangegangenen `PROCESS PAGE`-Statement zurückzukehren und es neu auszuführen. Es wird im Allgemeinen benutzt, um von der Ereignisverarbeitung zurückzukehren, da die Dateneingabe-Verarbeitung des vorangegangenen `PROCESS PAGE`-Statements unvollständig war.

Anmerkung
Es kann kein `INPUT`-, `WRITE`-, `PRINT`- oder `DISPLAY`-Statement zwischen einem `PROCESS PAGE`- und seinem entsprechenden `PROCESS PAGE UPDATE`-Statement ausgeführt werden.

Wenn es erst einmal ausgeführt ist, repositioniert das `PROCESS PAGE UPDATE`-Statement den Programm-Status bezüglich Subroutine, Sonderbedingungen und die Schleifenverarbeitung, wie sie existierten, als das `PROCESS PAGE`-Statement ausgeführt wurde (solange der Status des `PROCESS PAGE`-Statements noch aktiv ist). Wenn die Schleife nach der Ausführung des `PROCESS PAGE`-Statements initialisiert wurde und sich das `PROCESS PAGE UPDATE`-Statement innerhalb dieser Schleife befindet, wird die Schleife unterbrochen und dann neu gestartet, nachdem das `PROCESS PAGE`-Statement als infolge eines `PROCESS PAGE UPDATE`-Statements neu verarbeitet worden ist.

Wenn eine Hierarchie von Subroutinen nach der Ausführung des `PROCESS PAGE`-Statements aufgerufen wurde und wenn das `PROCESS PAGE UPDATE`-Statement innerhalb einer Subroutine ausgeführt wird, verfolgt Natural automatisch alle Subroutinen zurück und setzt den Programm-Status auf den des `PROCESS PAGE`-Statements zurück.

Es ist aber nicht möglich, es so einzurichten, dass ein `PROCESS PAGE`-Statement in einer Schleife, einer Subroutine oder einem speziellen Bedingungsblock positioniert wird, und dann das `PROCESS PAGE UPDATE`-Statement auszuführen, wenn der Status, unter dem das `PROCESS PAGE`-Statement ausgeführt wurde, bereits beendet worden ist. Eine Fehlermeldung wird erzeugt und die Programmausführung beendet, wenn eine solche Fehlerbedingung festgestellt wird.

Operanden-Definitionstabelle:

Operand | Possible Structure | Possible Formats | Referencing Permitted | Dynamic Definition
--- | --- | --- | --- | ---
operand11 |  | S |  |  |  |  |  |  |  | I4 |  |  |  |  |  |  |  |  | yes | yes

Syntax-Element-Beschreibung:

Syntax-Element | Beschreibung
--- | ---
`FULL` | FULL-Option: Wenn Sie die `FULL`-Option in einem `PROCESS PAGE UPDATE`-Statement angeben, wird das entsprechende `PROCESS PAGE`-Statement vollständig neu ausgeführt: Mit einem normalen `PROCESS PAGE UPDATE`-Statement (ohne `FULL`-Option) wird der Inhalt von Variablen, die zwischen dem `PROCESS PAGE`- und dem `PROCESS PAGE UPDATE`-Statement geändert wurden, nicht angezeigt; das heisst, alle Variablen auf dem Bildschirm zeigen den Inhalt an, den sie hatten, als das `PROCESS PAGE`-Statement ursprünglich ausgeführt wurde. Mit einem `PROCESS PAGE UPDATE FULL`-Statement werden alle Änderungen, die nach der anfänglichen Ausführung des `PROCESS PAGE`-Statements erfolgt sind, auf das `PROCESS PAGE`-Statement angewandt, wenn es neu ausgeführt wird; das heisst, alle Variablen auf dem Bildschirm enthalten die Werte, die sie hatten, als das `PROCESS PAGE UPDATE`-Statement ausgeführt wurde. Kennzeichnend für das `PROCESS PAGE UPDATE FULL`-Statement ist, dass der Status der Attributkontrollvariablen auf `NOT MODIFIED` zurückgesetzt wird. Dies ist bei einem gewöhnlichen `PROCESS PAGE UPDATE`-Statement nicht der Fall. Sie können die `MODIFIED`-Option benutzen, um zu prüfen, ob einer Attributkontrollvariablen der Status `MODIFIED` zugewiesen worden ist.
`DATA` | DATA-Option: Die `DATA`-Option verhält sich wie die `FULL`-Option, jedoch mit der Ausnahme, dass der `MODIFIED`-Status der Kontrollvariablen nicht zurückgesetzt wird.
`event-option` | EVENT-Option: Siehe EVENT-Option weiter unten.
`GIVING (operand11)` | GIVING-Klausel: operand11 enthält den Natural-Fehler, wenn die Anfrage nicht durchgeführt werden konnte.

Beispiel eines Benutzerprogrammfragments:

    PROCESS PAGE USING "HELLOW-A"
    *
    /*( DEFINE EVENT HANDLER
    DECIDE ON FIRST *PAGE-EVENT
     VALUE U'nat:page.end'
      /* Page closed.
      IGNORE
     VALUE U'onHelloWorld'
      COMPRESS "HELLO WORLD" YOURNAME INTO RESULT
      PROCESS PAGE UPDATE FULL
     NONE VALUE
      /* Unhandled events.
      PROCESS PAGE UPDATE
    END-DECIDE
    /*) END-HANDLER

### EVENT-Option

`AND SEND EVENT` operand8
[`WITH PARAMETERS`
{[`NAME`] operand9 [`VALUE`] operand10 [ |  | (`EMU`=value) (`EM`=value) |  | ]}...
`END-PARAMETERS`]

Mit dieser Option können Sie das externe E/A-System veranlassen, Sonderfunktionen zu starten. Diese Funktionen sind Bestandteil des externen E/A-Systems, oder implementieren Sonderfunktionen im Hinblick auf die Ausgabeverarbeitung, wie z.B. Fokus setzen, Meldungsfelder anzeigen usw.

Operanden-Definitionstabelle:

Operand | Possible Structure | Possible Formats | Referencing Permitted | Dynamic Definition
--- | --- | --- | --- | ---
operand8 | C | S |  |  |  | A | U |  |  |  |  |  |  |  |  |  |  |  | yes | no
operand9 | C | S |  |  |  | A | U |  |  |  |  |  |  |  |  |  |  |  | yes | no
operand10 | C | S | A |  |  | A | U | N | P | I | F | B | D | T | L |  |  |  | yes | yes

Syntax-Element-Beschreibung:

Syntax-Element | Beschreibung
--- | ---
`AND SEND EVENT operand8` | Vom externen E/A-System angefordertes Ereignis: Abhängig von der Implementierung des externen Ein-/Ausgabesystems sind Ereignisse verfügbar, siehe Sending Events to the User Interface in der Natural for Ajax-Dokumentation.
`WITH PARAMETERS` | WITH PARAMETERS Clause: With this clause, you can specify the following:
`NAME operand9` | Externer Datenfeld-Name: operand9 enthält den externen Namen der Datenfelder, in die/aus denen operand10 übertragen wird.
`VALUE operand10` | Natural-Datenfelder: operand10 enthält die Natural-Datenfelder, die übertragen werden.
`EMU=` `EM=` | Editiermaske: Bei der Datenübertragung verwendete Editiermaske. Einzelheiten zu Editiermasken siehe Session-Parameter `EM` in der Parameter-Referenz. Einzelheiten zu Unicode-Editiermasken siehe Session-Parameter `EMU` in der Parameter-Referenz.
`END-PARAMETERS` | Ende der WITH PARAMETERS-Klausel: The Natural reserved word `END-PARAMETERS` must be used to end the `WITH PARAMETERS` clause. Das für Natural reservierte Wort `END-PARAMETERS` muss benutzt werden, um die `WITH PARAMETERS`-Klausel zu beenden.

## Syntax 4 - PROCESS PAGE MODAL

`PROCESS PAGE MODAL`
statement ...
`END-PROCESS`

Eine Erläuterung der in dem Syntax-Diagramm verwendeten Symbole entnehmen Sie dem Abschnitt Syntax-Symbole.

Verwandtes Statement: `PROCESS PAGE`

Gehört zur Funktionsgruppe Bildschirmgenerierung für interaktive Verarbeitung.

### Syntax-Beschreibung - Syntax 4

Das `PROCESS PAGE MODAL`-Statement wird benutzt, um einen Verarbeitungsblock zu initialisieren und die Anzeigedauer eines modalen Rich-GUI-Fensters zu steuern.

Mit der Verarbeitung des `PROCESS PAGE MODAL`-Statementblocks werden folgende Aktionen ausgeführt:

- Zuerst werden Daten vom Report 0, die noch nicht angezeigt worden sind, angezeigt;

- die Systemvariable `*PAGE-LEVEL` wird inkrementiert;

- das Öffnen einer modalen Seite wird vorbereitet. Das physische Öffnen der modalen Seite wird mit dem nächsten Statement `PROCESS PAGE USING operand6 WITH` ausgeführt, wobei `operand6` der Name des zu verwendenden Adapters ist.

Beim Verlassen des `PROCESS PAGE MODAL`-Statementblocks werden folgende Aktionen ausgeführt:

- Falls eine modale Seite für diese Ebene geöffnet wurde, wird das Schließen der modalen Seite vorbereitet. Das physische Schließen der modalen Seite erfolgt mit dem nächsten `PROCESS PAGE UPDATE [FULL]`-Statement;

- die Systemvariable `*PAGE-LEVEL` wird dekrementiert, und die Systemvariable `*PAGE-EVENT` wird auf den Wert zurückgesetzt, den sie hatte, bevor mit der Abarbeitung des Statement-Blocks begonnen wurde;

- ein `nat:page.default`-Ereignis wird in dem Programm ausgelöst, das die modale Seite geöffnet hat.

Anmerkung
Zwischen einem `PROCESS PAGE MODAL`-Statement und seinem entsprechenden `END-PROCESS`-Statement kann kein sich auf Report 0 beziehendes `PRINT`-, `WRITE`-, `INPUT`- oder `DISPLAY`-Statement ausgeführt werden.

Das `PROCESS PAGE MODAL`-Statement ist im Batch-Betrieb nicht gültig.

Syntax-Element-Beschreibung:

Syntax-Element | Beschreibung
--- | ---
`statement` | Auszuführende Statements: Anstelle eines Statements müssen Sie in Abhängigkeit von der Situation eines oder mehrere passende Statements angeben. Wenn Sie kein spezifisches Statement angeben möchten, können Sie das `IGNORE`-Statement angeben.
`END-PROCESS` | Ende des PROCESS PAGE MODAL-Statements: Das für Natural reservierte Wort `END-PROCESS` muss benutzt werden, um das `PROCESS PAGE MODAL`-Statement zu beenden.

Beispiel:

    * Name: First Demo/Open modal!
    *
    PROCESS PAGE USING "EMPTY-A"
    *
    /*( DEFINE EVENT HANDLER
    DECIDE ON FIRST *PAGE-EVENT
      VALUE U'nat:page.end', U'onClose'
        /* Page closed.
        IGNORE
      VALUE U'onNextLevel'
        PROCESS PAGE MODAL
          FETCH RETURN "EMPTY-P"
        END-PROCESS
        PROCESS PAGE UPDATE
      NONE VALUE
        PROCESS PAGE UPDATE
    END-DECIDE
    /*) END-HANDLER
    END

## Beispiele

Weitere Beispiele zur Verwendung des `PROCESS PAGE`-Statements sind in der Library `SYSEXNJX` enthalten.

### On this page

- Funktion PROCESS PAGE
- Syntax 1 - PROCESS PAGE
- Syntax 2 - PROCESS PAGE USING
- Syntax 3 - PROCESS PAGE UPDATE
- Syntax 4 - PROCESS PAGE MODAL
- Beispiele