Version 6.3.8 für Windows
 —  Statements  —

INPUT-Syntax 2 — Verwendung einer vordefinierten Eingabemaske

Diese Form des INPUT-Statements wird benutzt, wenn bei der Eingabeverarbeitung eine mit dem Natural-Map-Editor erstellte Eingabemaske (Map) verwendet werden soll.

Hierbei gibt es zwei Möglichkeiten:

INPUT [WINDOW='window-name'] [WITH-TEXT-option]
  [MARK-option]
  [ALARM-option]
  [USING] MAP map-name [NO ERASE]

operand1

NO PARAMETER

Dieses Dokument behandelt folgende Themen:

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


INPUT USING MAP ohne Parameterliste

Die folgenden Anforderungen müssen bei der Benutzung von INPUT USING MAP ohne Parameterliste erfüllt werden:

Seitenanfang

Im Programm definierte Eingabefelder

Wenn Sie Namen der Eingabefelder (operand1) im Programm definieren, müssen diese nicht mit den für die Map verwendeten Feldnamen übereinstimmen.

Die Reihenfolge der Felder im Programm muss allerdings zur Reihenfolge der Felder in der Map passen. Hierbei ist zu beachten, dass der Map-Editor die in der Map definierten Felder in alphabetischer Reihenfolge der Feldnamen sortiert. Näheres hierzu finden Sie in der Map-Editor-Beschreibung in der Editors-Dokumentation.

Das Programm-Editor-Zeilenkommando .I(mapname) kann dazu verwendet werden, ein vollständiges INPUT USING MAP-Statement mit einer Parameterliste, die anhand der in der angegebenen Map definierten Felder generiert wird, zu erstellen.

Wird das Layout der Map verändert, muss das Programm nicht neu katalogisiert werden, es sei denn, in der Map werden Felder gelöscht, hinzugefügt oder umbenannt, Feldformate/-längen geändert oder Array-Strukturen modifiziert.

Bei der Ausführung prüft Natural, ob Format und Länge der Map-Felder in Einklang mit denen der Programm-Felder stehen. Ist dies nicht der Fall, wird eine entsprechende Fehlermeldung ausgegeben.

Seitenanfang

INPUT Syntax 2 — Beschreibung

Operanden-Definitionstabelle:

Operand Mögliche Struktur Mögliche Formate Referenzierung erlaubt Dynam. Definition
map-name C S       A U                       ja nein
operand1   S A     A U N P I F B D T L C     ja ja

Syntax-Element-Beschreibung:

INPUT WINDOW='window-name'
Eingabe-Fenster:

Siehe Syntax 1 des INPUT-Statements.

WITH TEXT/MARK/ALARM-options
Optionen:

Diese Optionen sind unter Syntax 1 des INPUT-Statements beschrieben; siehe WITH TEXT-Option, MARK-Option, ALARM-Option.

USING MAP map-name
Name der Eingabemaske:

Mit der USING MAP-Klausel wird eine Map-Definition aufgerufen, die vorher mit dem Map-Editor in einer Natural-Systemdatei gespeichert worden ist.

Der map-name kann als 1 bis 8 Zeichen lange alphanumerische Konstante oder in Form einer Benutzervariablen angegeben werden. Wird eine Variable verwendet, muss diese vorher definiert worden sein. Der Map-Name darf ein Und-Zeichen (&) enthalten; dies wird dann zur Ausführungszeit den aus einem Zeichen bestehenden Code ersetzt, der dem aktuellen Wert der Systemvariablen *LANGUAGE entspricht. Dadurch ist es möglich, verschiedensprachige Maps aufzurufen.

Die Ausführung des INPUT-Statements löscht den bisherigen Bildschirminhalt, es sei denn, Sie verwenden eine NO ERASE-Klausel (siehe unten), wobei dann die Map den aktuellen Inhalt des Bildschirms überlagert.

NO ERASE
Überlagerte Anzeige:

Siehe Syntax 1 des INPUT-Statements.

operand1
Zu verwendende Felder:

Es können Datenbankfelder oder Benutzervariablen angegeben werden, die jedoch alle vorher definiert worden sein müssen. Die Felder müssen in Anzahl, Reihenfolge Format und Länge und für (Arrays) in der Anzahl der Ausprägungen mit den referenzierten Map-Feldern übereinstimmen, da andernfalls ein Fehler generiert wird.

Ändert sich der Wert eines Datenbankfeldes aufgrund einer INPUT-Verarbeitung, so betrifft dies nur den Feldwert im Datenbereich. Um den Wert eines Feldes auf der Datenbank zu ändern, sind entsprechende UPDATE- bzw. STORE-Statements erforderlich.

Seitenanfang

INPUT-Statement unter Nicht-Screen-Modi

Sie können den Eingabemodus mit dem Session-Parameter IM ändern.

Forms-Modus

Im Forms-Modus (Profil/Session-Parameter IM=F) zeigt Natural den gesamten Ausgabetext des Map-Layouts Feld für Feld an, und zwar entsprechend der Positionierungsparameter. Dadurch kann der Benutzer Daten Feld für Feld eingeben. Wenn alle Daten eingegeben sind, wird eine Hardcopy-Ausgabe erzeugt, die genau dem Abbild auf dem Bildschirm entspricht.

Im Falle eines Fehlers kann der Benutzer das Terminalkommando %R eingeben und sodann das gesamte Formular erneut eingeben. Die Eingaben werden dann wie bei der ersten Ausführung des INPUT-Statements verarbeitet.

Keyword/Delimiter-Modus

In diesem Modus (Profil/Session-Parameter IM=D) können Daten 1.) unter Verwendung von Schlüsselwörtern oder 2.) in Abhängigkeit von der Position/Reihenfolge der Felder eingegeben werden, wie auf der folgenden Seite beschrieben.

  1. Dateneingabe unter Verwendung von Schlüsselwörtern

    Der Text, der im Forms-Modus vor einem Feld ausgegeben würde, wird im Keyword/Delimiter-Modus als Schlüsselwort (Keyword) verwendet, um das betreffende Feld zu identifizieren. Nach dem Schlüsselwort muss das Input-Assign-Zeichen stehen (siehe Session-Parameter IA) und unmittelbar danach die Eingabedaten.

    Die Eingabedaten werden durch das mit dem Session-Parameter ID definierte Input-Delimiterzeichen voneinander getrennt. Auf ein Input-Assign-Zeichen folgende Leerzeichen werden als Eingabedaten interpretiert. Nach dem letzten Datenelement ist kein Input-Delimiterzeichen erforderlich.

    Die Reihenfolge der Eingabedaten ist beliebig. Wird ein nicht im INPUT-Statement definiertes Schlüsselwort eingegeben, gibt Natural eine entsprechende Fehlermeldung aus. Es brauchen nicht alle Felder mit Eingabedaten gefüllt zu werden. Felder, in die nichts eingegeben wird, werden auf Leerzeichen (alphanumerische Felder) bzw. Null (numerische und hexadezimale Felder) gesetzt.

  2. Dateneingabe in Abhängigkeit von der Position/Reihenfolge der Felder

    Es können auch lediglich Eingabedaten, jeweils durch das gültige Input-Delimiter-Zeichen (ID-Parameter) voneinander getrennt, eingegeben werden. In diesem Fall muss die Reihenfolge der Eingabedaten der Reihenfolge der Eingabefelder im INPUT-Statement entsprechen.

Beide Eingabearten (1 und 2) können auch miteinander kombiniert werden. Solange keine Schlüsselwörter angegeben werden, ist die im INPUT-Statement angegebene Reihenfolge der Felder maßgeblich; wird ein Schlüsselwort angegeben, so werden die auf das Schlüsselwort folgenden Eingabedaten dem durch das Schlüsselwort identifizierten Feld zugeordnet. Folgen hierauf wieder Eingabedaten ohne Schlüsselwörter, so werden diese Daten den Feldern zugeordnet, die im INPUT-Statement auf das mit Schlüsselwort identifizierte Feld folgen.

Anmerkung:
Ein Schlüsselwort und das dazugehörige Eingabefeld müssen sich auf derselben logischen Zeile befinden. Wenn die Länge beider zusammen die Zeilenlänge überschreitet, vergrößern Sie die Zeilenlänge (Session-Parameter LS) entsprechend, so dass Schlüsselwort und Feld in eine Zeile passen.

Im Keyword/Delimiter-Modus eingegebene Eingabedaten werden entsprechend der auch im Screen-Modus gültigen Regeln auf ihre Gültigkeit überprüft. Wird versucht, einen Wert einzugeben, der länger als das betreffende Feld ist, so gibt Natural eine entsprechende Fehlermeldung aus.

Werden Daten für ein INPUT-Statement im Keyword/Delimiter-Modus von einem gepufferten Terminal (Typ 3270) oder einer Workstation aus eingegeben, so müssen alle von einem bestimmten INPUT-Statement zu verarbeitenden Eingabedaten auf einem einzigen Schirm eingegeben werden; erst wenn alle Daten eingegeben sind, darf FREIG gedrückt werden.

Seitenanfang

Eingabedaten aus dem Natural-Stack

Daten, die mittels eines FETCH-, RUN- oder STACK-Statements im Natural-Stack abgelegt wurden, werden bei der Ausführung des nächsten INPUT-Statements als Eingabedaten verarbeitet.

Das INPUT-Statement verarbeitet die Daten in dem oben beschriebenen Keyword/Delimiter-Modus.

Felder, für die keine Eingabedaten zur Verfügung stehen, werden je nach Format mit Leerzeichen bzw. Nullen gefüllt. Sind mehr Daten als Eingabefelder vorhanden, so werden überschüssige Eingabedaten ignoriert.

Wenn ein Feld mit Daten aus dem Stack gefüllt wird, gelten die Feldattribute nicht für die Daten.

Über die Natural-Systemvariable *DATA können Sie erfahren, wieviele Datenelemente gegenwärtig im Natural-Stack zur Verfügung stehen.

Seitenanfang