Diese Form des INPUT
-Statements wird dazu verwendet,
entweder einen Eingabe-Schirm zu generieren oder ein Eingabedaten-Layout zu
erstellen, das (auf Großrechnern) im Batch-Betrieb von einer sequentiellen
Eingabedatei gelesen werden kann.
INPUT
|
[WINDOW= 'window-name']
[NO
ERASE ]
|
||||||||||||||||
[(statement-parameters)] | |||||||||||||||||
[WITH-TEXT-option] | |||||||||||||||||
[MARK-option] | |||||||||||||||||
[ALARM-option] | |||||||||||||||||
[(attributes)] | |||||||||||||||||
{operand1 [(parameter)]} |
Dieses Dokument behandelt folgende Themen:
Eine Erläuterung der in dem Syntax-Diagramm verwendeten Symbole entnehmen Sie dem Abschnitt Syntax-Symbole.
Operanden-Definitionstabelle:
Operand | Mögliche Struktur | Mögliche Formate | Referenzierung erlaubt | Dynam. Definition | ||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
operand1 | S | A | G | N | A | U | N | P | I | F | B | D | T | L | G | ja | ja |
Syntax-Element-Beschreibung:
INPUT WINDOW='window-name' |
Eingabe-Fenster:
Mit der Option
Siehe auch die Statements |
---|---|
NO ERASE |
Überlagerte Anzeige:
Schirm bezieht sich in diesem Zusammenhang auf die logische Ausgabe und nicht auf den physischen Bildschirm. Alle ungeschützten Felder auf dem alten Schirm werden geschützt, so dass keine Eingaben mehr in sie gemacht werden können. Die alten Daten bleiben auf dem Schirm, bis der neue Schirm angezeigt wird. Überlagert ein Feld des neuen Schirms teilweise ein altes, so werden das Zeichen vor dem neuen Feld und das nächste Zeichen im alten Feld durch ein Leerzeichen ersetzt. |
statement-parameters |
Parameter auf Statement-/Feldebene:
Unmittelbar nach dem Schlüsselwort Eine Liste der mit dem INPUT-Statement anzugebenden Parameter finden Sie im Abschnitt Statement-Parameter weiter unten. Diese Parameter haben dann für das jeweilige Statement oder Feld
Gültigkeit statt der betreffenden mit einem
Die hier gültigen Parameter-Einstellungen kommen nur für Variablen-Felder in Betracht, haben aber keine Auswirkungen auf Text-Konstanten. Wenn Sie Feldattribute für eine Text-Konstante setzen möchten, dann müssen Sie explizit für dieses Element gesetzt werden. Beispiel: DEFINE DATA LOCAL 1 VARI (A4) INIT <'1234'> /* Displays END-DEFINE /* as FORMAT AD=M /* --------- INPUT 'Text' VARI /* Text 1234 INPUT (PM=I) 'Text' VARI /* Text 4321 INPUT 'Text' (PM=I) VARI (PM=I) /* txeT 4321 INPUT 'Text' (PM=I) VARI /* txeT 1234 END Beispiele für den Einsatz von Parametern auf Statement- und Element-Ebene finden Sie auf den folgenden Seiten. |
WITH TEXT-option |
Textausgabe in Meldungszeile: Diese
Option dient dazu, Text anzugeben, der in der Meldungszeile ausgegeben werden
soll (siehe den ensprechenden Abschnitt weiter unten).
|
MARK-option |
Cursorposition im Feld: Siehe
Abschnitt MARK-Option weiter
unten.
|
ALARM-option |
Warntonausgabe: Siehe Abschnitt
Alarm-Option
weiter unten.
|
Other syntax elements (nX, nT, x/y, operand1 usw.) |
Sonstige Syntax-Elemente:
Siehe Abschnitt Feldpositionierung, Text, Attributzuweisung weiter unten. |
Parameter, die mit dem INPUT-Statement angegeben werden können: | Spezifikation | |
---|---|---|
S=auf Statement-Ebene | ||
E=auf Element-Ebene | ||
AD | Attribute Definition | SE |
AL | Alphanumeric Length for Output | SE |
BX | Box Definition | SE |
CD | Color Definition | SE |
CV | Control Variable | SE |
DF | Date Format | SE |
DL | Display Length for Output | SE |
DY | Dynamic Attributes | SE |
EM | Edit Mask | SE |
FL | Floating Point Mantissa Length | SE |
HE | Helproutine | SE |
IP | Input Prompting Text | SE |
LS | Line Size | S |
MC | Multiple-Value Field Count | S |
MS | Manual Skip | S |
NL | Numeric Length for Output | SE |
PC | Periodic Group Count | S |
PM | Print Mode | SE |
PS | Page Size * | S |
SB | Selection Box | E |
SG | Sign Position | SE |
ZP | Zero Printing | SE |
* Wenn die Anzahl der Ausprägungen eines Arrays den
PS
-Wert überschreitet, wird ein NAT0303-Fehler
ausgegeben.
Beschreibungen der einzelnen Session-Parameter sind in der Parameter-Referenz enthalten.
[WITH ]
TEXT
|
[(attributes)][,operand3] 7 |
Operanden-Definitionstabelle:
Operand | Mögliche Struktur | Mögliche Formate | Referenzierung erlaubt | Dynam. Definition | |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
operand1 | C | S | N | P | I | B* | ja | ja | |||||||||||
operand2 | C | S | A | ja | ja | ||||||||||||||
operand3 | C | S | A | N | P | I | F | B | D | T | L | ja | ja |
* Format B von operand1 kann nur mit einer Länge kleiner gleich 4 benutzt werden.
Diese Option dient dazu, Text anzugeben, der in der Meldungszeile ausgegeben werden soll. In der Regel handelt es sich dabei um eine Meldung, was auf dem jeweiligen Schirm getan werden soll bzw. wie eine falsche Eingabe korrigiert werden soll.
Syntax-Element-Beschreibung:
operand1 |
Meldungstext aus der
Natural-Fehlermeldungsdatei:
Als operand1 geben Sie eine Natural-Fehlernummer an. Natural liest dann die entsprechende Fehlermeldung von der Natural- Fehlermeldungsdatei. Es können entweder benutzerdefinierte Meldungen oder Natural-Systemmeldungen gelesen werden.
Siehe auch Natural-Fehlermeldungsdateien werden mit der
Die Natural-Fehlermeldungen sind in der Messages and Codes-Dokumentation enthalten. |
---|---|
operand2 |
Eigener Meldungstext:
Als operand2 geben Sie den Text an, der in der Meldungszeile ausgegeben werden soll. Siehe |
attributes |
Ausgabeattribute:
Als attributes können Sie operand1 oder operand2 bestimmte Anzeige- und Farbattribute zuordnen. Diese Attribute und die benutzbare Syntax sind im Abschnitt Ausgabeattribute weiter unten beschrieben. |
operand3 |
Dynamische Meldungstext-Komponente:
operand3 kann in Form einer numerischen Konstanten oder Textkonstanten oder als Name einer Variablen angegeben werden. Der entweder mit operand1 oder operand2 angegebene Wert dient dazu, einen Teil der Meldung zu ersetzen und dynamisch zu generieren. Innerhalb der Fehlermeldung dient die Notation
Siehe REINPUT-Statement, Beispiel 4 - WITH TEXT-Optionen. Anmerkungen:
|
attributes gibt die für die Text-Anzeige zu benutzenden Ausgabe-Attribute an. Es gibt die folgenden Attribute:
|
||||
AD-value
|
Die möglichen Parameterwerte sind in der Parameter-Referenz aufgeführt.
AD - Attribute Definition, Abschnitt Feldanzeige
Anmerkung:
Der Compiler akzeptiert tatsächlich mehr als einen Attributwert
für ein Ausgabefeld. Zum Beispiel können Sie Folgendes angeben:
AD=BDI
. In solch einem Fall gilt allerdings nur der letzte Wert.
Im hier gezeigten Beispiel erhält nur der Wert I
Gültigkeit, und
das Ausgabefeld wird intensiviert (hell hervorgehoben) angezeigt.
Mit MARK POSITION
können Sie bewirken, dass der Cursor in
einem beliebigen, nicht geschützten Feld auf dem Bildschirm platziert wird.
Zusätzlich können Sie die Position des Cursors innerhalb dieses Feldes
bestimmen.
Standardmäßig, das heisst, wenn Sie die MARK POSITION
weglassen, wird der Cursor an den Anfang des ersten, nicht geschützten Feldes
positioniert.
MARK [POSITION
operand4
[IN ]] [FIELD ]
|
Operanden-Definitionstabelle:
Operand | Mögliche Struktur | Mögliche Formate | Referenzierung erlaubt | Dynam. Definition | |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
operand4 | C | S | N | P | I | ja | ja | ||||||||||||
operand1 | C | S | A | N | P | I | ja | ja |
Syntax-Element-Beschreibung:
operand1 |
Feldnummer für Referenzierung:
operand1 gibt die Nummer des Feldes an, in dem der Cursor platziert werden soll: Jedem in einem |
---|---|
*fieldname |
Feldname für Referenzierung:
Anstelle der Feldnummer können Sie den Feldnamen angeben, um den
Cursor in ein bestimmtes Feld zu platzieren. Dazu verwenden Sie die Notation
|
operand4 |
Cursorposition im referenzierten
Feld:
Mit operand4 darf keine Dezimalstellen enthalten. |
MARK #NUMBER /* Field number MARK 3 /* Third map field MARK *#FIELD1 /* Map field MARK POSITION 3 IN #NUMBER /* Third character in field number
Siehe auch Beispiel 3 — INPUT-Statement mit MARK POSITION-Option weiter unten.
Diese Option bewirkt, dass der Warnton des Terminals ausgelöst wird,
wenn das INPUT
-Statement ausgeführt wird. Voraussetzung ist, dass
die verwendete Terminal-Hardware dies ermöglicht.
[[AND ] [SOUND ] ALARM ]
|
Ist der Session-Parameter IP
nicht auf
IP=OFF
gesetzt, so wird der jeweilige Feldname vor dem Feldwert
(Forms-Modus) oder als Aufforderung, ein Feld auszuwählen,
(Keyword/Delimiter-Modus) angezeigt. Wenn Sie vor dem Feld '-'
angeben, wird der Feldname nicht angezeigt; wenn Sie einen
'text'
angeben, wird dieser statt des
Feldnamens angezeigt.
'text' [(attributes)] | |||||||||
nX
|
'c' (n) [(attributes)] |
*IN
|
{operand1 [(parameter(s))]} | ||||||
nT
|
'-'
|
*OUT
|
|||||||
x /y |
'='
|
*OUTIN
|
|||||||
/
|
Verschiedene Notationen stehen zur Feldpositionierung, Texterstellung und Attributzuweisung zur Verfügung.
nX |
Leerstellen zwischen Spalten:
Fügt zwischen den Feldern n Leerstellen ein. Anmerkung: |
---|---|
nT |
Tabulator für Feldausgabe:
Setzt einen Tabulator, d.h. die Ausgabe eines Feldes beginnt ab Spalte n. |
x/y |
Ausgabeposition für nächstes Feld:
Gibt das nachfolgende Element in Zeile
x ab Spalte y aus.
y darf nicht |
'text' |
Textausgabe:
In Apostrophen angegebener Text wird schreibgeschützt ausgegeben. Siehe auch den Abschnitt Text-Notation, Unterabschnitt Mit einem Statement zu benutzenden Text definieren. |
'c' (n) |
Wiederholungszeichen:
Wie |
attributes |
Ausgabeattribute:
Dient zum Setzen der Anzeigeattribute. Siehe Attribute weiter unten. |
'-' |
Unterdrückung des Feldnamens:
Die Notation Anmerkung: |
'=' |
Feldüberschrift-Ausgabe:
Die Notation |
'/' |
Zeilenvorschub:
Ein Schrägstrich Felder können als reine Eingabefelder (Session-Parameter
Bei TTY-Geräten beansprucht die Ausgabe modifizierbarer Felder die
doppelte Feldgröße (einmal für Ausgabe und einmal für Eingabe), damit ein neuer
Wert eingegeben werden kann. Bei TTY-Bildschirmen beginnt ein Eingabefeld
( Beispiel: INPUT #A (AD=A) #B (AD=O) #C (AD=M)
|
*IN, *OUT und *OUTIN |
Feldattribute:
Entspricht den Feldattributen, die mit dem Session-Parameter
Anmerkung: |
operand1 |
Zu verwendende Felder:
Als operand1 geben Sie das zu verwendende Feld an. Sie können Datenbankfelder oder Benutzervariablen angeben. Natural überträgt den Inhalt eines Feldes direkt vom Datenbereich
an das Ändert sich der Wert eines Datenbankfeldes aufgrund einer
Wird in einem Wird ein Bereich von Ausprägungen eines Arrays referenziert, so wird jede Ausprägung einzeln als Eingabefeld verarbeitet; allerdings wird nur der ersten Ausprägung ein Text oder der Feldname vorangestellt. Auf Großrechnern können keine Arrays mit Bereichen angegeben werden, die es ermöglichen, zur Ausführungszeit die Anzahl der Ausprägungen zu variieren. |
parameter(s) |
Statement-Parameter:
Unmittelbar nach operand1 können Sie in Klammern einen oder mehrere Parameter angeben (siehe Tabelle Statement-Parameter und folgendes Beispiel). Diese Parameter haben dann für das jeweilige Feld Gültigkeit statt
der betreffenden mit einem Die hier gültigen Parameter-Einstellungen kommen nur für Variablenfelder in Betracht, haben aber keine Auswirkung auf Textkonstanten. Wenn Sie Feldattribute für eine Textkonstante setzen möchten, müssen Sie explizit für dieses Element gesetzt werden. Informationen zu den einzelnen Parametern entnehmen Sie der Tabelle im Abschnitt Statement-Parameter. Anmerkung: |
Die folgenden Attribute können verwendet werden:
B
|
BL
|
T
|
||||||||||||||||||||||
C
|
GR
|
B
|
C
|
|||||||||||||||||||||
D
|
NE
|
L
|
D
|
|||||||||||||||||||||
[AD= ]
|
I
|
[CD= ]
|
PI
|
[BX= ]
|
R
|
[PM= ]
|
I
|
|||||||||||||||||
N
|
RE
|
ON
|
N
|
|||||||||||||||||||||
U
|
TU
|
OFF |
||||||||||||||||||||||
V
|
YE
|
|||||||||||||||||||||||
1 | 2 | 3 | 4 |
Anzeigeattribute - siehe Session-Parameter
AD
in der
Parameter-Referenz.
Farbattribute - siehe Session-Parameter
CD
in der
Parameter-Referenz.
Umrandungen (Box Definition) - siehe Session-Parameter
BX
in der
Parameter-Referenz.
Print-Modus - siehe Session-Parameter
PM
in der
Parameter-Referenz.
** Example 'IPTEX1': INPUT ************************************************************************ DEFINE DATA LOCAL 1 #FNC (A1) END-DEFINE * INPUT 10X 'SELECTION MENU FOR EMPLOYEES SYSTEM' / 10X '-' (35) // 10X 'ADD (A)' / 10X 'UPDATE (U)' / 10X 'DELETE (D)' / 10X 'STOP (.)' // 10X 'PLEASE ENTER FUNCTION: ' #FNC * DECIDE ON EVERY VALUE OF #FNC VALUE 'A' /* invoke the object containing the add function here WRITE 'Add function selected.' VALUE 'U' /* invoke the object containing the update function here WRITE 'Update function selected.' VALUE 'D' /* invoke the object containing the delete function here WRITE 'Delete function selected.' VALUE '.' STOP NONE REINPUT 'Please enter a valid function.' MARK *#FNC END-DECIDE * END
Ausgabe des Programms IPTEX1
:
SELECTION MENU FOR EMPLOYEES SYSTEM ----------------------------------- ADD (A) UPDATE (U) DELETE (D) STOP (.) PLEASE ENTER FUNCTION:
** Example 'INPEX1': INPUT (with DEFINE WINDOW statement) ************************************************************************ DEFINE DATA LOCAL 1 #STRING (A15) END-DEFINE * DEFINE WINDOW WIND1 SIZE 10 * 40 BASE 5 / 10 FRAMED ON POSITION TEXT * INPUT WINDOW='WIND1' 'PLEASE ENTER HERE:' / #STRING * END
Ausgabe des Programms INPEX1
:
+----------------------------------Top+ ! PLEASE ENTER HERE: ! ! #STRING ! ! ! ! ! ! ! ! ! ! ! ! ! +-------------------------------Bottom+
** Example 'INPEX2': INPUT (with POSITION) ************************************************************************ DEFINE DATA LOCAL 1 #START (A30) END-DEFINE * ASSIGN #START = 'EXAM_' * INPUT (AD=M) MARK POSITION 5 IN *#START / 'PLEASE COMPLETE START VALUE FOR SEARCH' / 5X #START END
Ausgabe des Programms INPEX2
:
PLEASE COMPLETE START VALUE FOR SEARCH #START EXAM[]