Dieses Dokument behandelt folgende Themen:
Eine Erläuterung der in dem Syntax-Diagramm verwendeten Symbole entnehmen Sie dem Abschnitt Syntax-Symbole.
Verwandte Statements: INPUT
| REINPUT
|
SET WINDOW
Gehört zur Funktionsgruppe: Bildschirmgenerierung für interaktive Verarbeitung
Das DEFINE WINDOW
-Statement dient dazu, Größe, Position
und Attribute eines Bildschirmfensters (Window) zu definieren.
Ein Fenster ist der Ausschnitt einer von einem Programm erzeugten logischen Seite, der auf dem Bildschirm zu sehen ist. Das Fenster ist ständig vorhanden, auch wenn Sie sich dessen nicht bewusst sind, weil die Größe des Fensters, solange Sie sie nicht anders definieren, mit der Größe Ihres Bildschirms identisch ist.
Mit einem DEFINE WINDOW
-Statement wird ein Fenster
nicht aktiviert; dies geschieht mit einem SET WINDOW
-Statement oder der
WINDOW
-Klausel eines
INPUT
-Statements.
Siehe auch den Abschnitt Bildschirmgestaltung/Fenster im Kapitel Gestaltung von Benutzeroberflächen von Anwendungen im Leitfaden zur Programmierung.
Anmerkung:
Es gibt stets nur ein Natural-Fenster, und zwar das
jeweils neueste. Vorherige Fenster mögen auf dem Bildschirm noch sichtbar sein,
sind aber nicht länger aktiv und werden von Natural ignoriert. Sie können
Eingaben nur im jeweils neuesten Fenster machen. Sollte der Platz hierzu nicht
ausreichen, müssen Sie das Fenster vorher entsprechend vergrößern.
Operanden-Definitionstabelle:
Operand | Mögliche Struktur | Mögliche Formate | Referenzierung erlaubt | Dynam. Definition | ||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
operand1 | C | S | N | P | I | ja | nein | |||||||||||||
operand2 | C | S | N | P | I | ja | nein | |||||||||||||
operand3 | C | S | N | P | I | ja | nein | |||||||||||||
operand4 | C | S | N | P | I | ja | nein | |||||||||||||
operand5 | C | S | A | U | ja | nein |
Syntax-Element-Beschreibung:
Syntax-Element | Beschreibung |
---|---|
window-name
|
Der window-name identifiziert
das Fenster. Der Name darf bis zu 32 Stellen lang sein.
Für Fensternamen gelten die gleichen Namenskonventionen wie für Benutzervariablen (siehe Namen von Benutzervariablen in der Dokumentation Natural benutzen. |
SIZE
|
Mit der Anmerkung: Beispiel: Angenommen, die Größe eines Fensters ist mit
|
SIZE
AUTO
|
Die Größe des Fensters wird von Natural automatisch zur Laufzeit festgelegt. Die Größe wird wie folgt durch die in das Fenster hineingenerierten Daten bestimmt:
Wenn Sie die Anmerkung: |
SIZE
QUARTER
|
Die Größe des Fensters entspricht einem Viertel der physischen Bildschirmgröße. |
SIZE
operand1 * operand2
|
Die Größe des Fensters beträgt n Zeilen mal n Spalten. operand1 bestimmt die Anzahl der Zeilen, operand2 die Anzahl der Spalten. Die beiden Operanden dürfen keine Dezimalstellen enthalten. Ist das Fenster gerahmt ( Die kleinstmögliche Fenstergröße ist:
Die größtmögliche Fenstergröße ist die Größe des physischen Bildschirms. |
BASE
|
Mit der BASE -Klausel bestimmen Sie die
Position des Fensters auf dem physischen Bildschirm. Lassen Sie die
BASE -Klausel weg, gilt standardmäßig BASE CURSOR .
|
BASE
CURSOR
|
Platziert die obere linke Ecke des Fensters an die aktuelle Cursor-Position. Die Cursor-Position ist die physische Position des Cursors auf dem Bildschirm. Wenn es aufgrund der Größe des Fensters nicht möglich ist, das Fenster an die Cursor-Position zu platzieren, platziert Natural es automatisch so dicht wie möglich an die gewünschte Position. |
BASE
TOP/BOTTOM LEFT/RIGHT
|
Platziert das Fenster in die obere linke, untere linke, obere rechte bzw. untere rechte Ecke des physischen Bildschirms. |
BASE
operand3/operand4
|
Platziert die obere linke Ecke des Fensters in die angegebene Zeile/Spalte auf dem physischen Bildschirm. operand3 bestimmt die Zeilennummer, operand4 die Spaltennummer. Die beiden Operanden dürfen keine Dezimalstellen enthalten. Ist es aufgrund der Größe des Fensters nicht möglich, das Fenster an die angegebene Position zu platzieren, erhalten Sie eine Fehlermeldung. |
REVERSED
|
|
REVERSED CD=
background-color
|
Dies bewirkt, dass das Fenster invers und der Fensterhintergrund in der angegebenen Farbe (background-color) angezeigt wird (falls der verwendete Bildschirm dies ermöglicht; falls nicht, wird die betreffende Angabe ignoriert). Informationen über gültige Farbcodes. Session-Parameter
|
TITLE
operand5
|
Mit der Die Überschrift kann entweder als Textkonstante (in Apostrophen) oder als Inhalt einer Benutzervariablen angegeben werden. Ist die Überschrift länger als das Fenster, wird sie abgeschnitten. Die Überschrift wird nur angezeigt, wenn das Fenster
gerahmt ( Anmerkung: |
CONTROL
|
Mit der CONTROL -Klausel bestimmen Sie, ob
die PF-Tastenleiste, die Meldungszeile und die Statistikzeile innerhalb oder
außerhalb des Fensters angezeigt werden.
|
CONTROL
WINDOW
|
CONTROL WINDOW zeigt die Zeilen innerhalb
des Fensters an.
Wenn Sie die |
CONTROL
SCREEN
|
CONTROL SCREEN zeigt die Zeilen auf dem
vollen physischen Schirm außerhalb des Fensters an.
|
FRAMED
|
Standardmäßig, d.h. wenn Sie die
Die obere und die untere Rahmenlinie sind cursor-sensitiv: Sie können im Fenster vor, zurück, nach links oder rechts blättern, indem Sie einfach den Cursor auf das entsprechende Symbol (<, −, +, oder >; siehe position-clause unten) stellen und FREIG drücken. Wenn keine Symbole angezeigt werden, können Sie im Fenster vor- oder zurückblättern, indem Sie den Cursor in die obere (zum Zurückblättern) bzw. untere (zum Vorblättern) Rahmenlinie platzieren und FREIG drücken. Anmerkung: |
FRAMED
OFF
|
Wenn Sie FRAMED OFF angeben, wird die
Rahmung und alles mit dem Rahmen zusammenhängende (Überschrift für das Fenster
und Positionierungsinformationen) ausgeschaltet.
|
FRAMED (CD=
frame-color)
|
Dies bewirkt, dass der Fensterrahmen in der angegebenen Farbe (frame-color) angezeigt wird (falls ein Farbbildschirm verwendet wird; falls nicht, wird die Farbangabe ignoriert). Informationen über gültige Farbcodes siehe
Session-Parameter Anmerkung: |
position-clause
|
Die POSITION -Klausel wird nur auf
Großrechnern ausgewertet: auf allen anderen Plattformen wird sie ignoriert.
Einzelheiten, siehe POSITION-Klausel
weiter unten.
|
Die POSITION
-Klausel wird nur auf Großrechnern
ausgewertet, auf allen anderen Plattformen wird sie ignoriert.
POSITION
|
SYMBOL
|
TOP
|
[AUTO ] [SHORT ]
|
LEFT
|
|||||||||
BOTTOM
|
RIGHT
|
||||||||||||
TEXT
|
[MORE ]
|
LEFT
|
|||||||||||
RIGHT
|
|||||||||||||
OFF
|
Mit der POSITION
-Klausel steuern Sie die Anzeige von
Informationen über die Position des Fensters auf der logischen Seite: Im Rahmen
des Fensters wird angezeigt, in welche Richtungen die logische Seite nach oben,
unten, links und rechts über das aktuelle Fenster hinausgeht. Dies gilt nur,
falls die logische Seite größer als das Fenster ist; falls nicht, wird die
POSITION
-Klausel ignoriert.
Wenn Sie die POSITION
-Klausel nicht angeben, gilt
standardmäßig POSITION SYMBOL TOP RIGHT
.
Für Eingabefelder (AD=A
oder
AD=M
),
die sich nicht vollständig innerhalb des Fensters befinden, gilt folgendes:
Ein Eingabefeld, dessen Anfang außerhalb des Fensters liegt, wird immer zu einem geschützten Feld gemacht.
Ein Eingabefeld, das im Fenster beginnt, aber außerhalb des
Fensters endet, wird nur dann geschützt, wenn der Wert, den es enthält, nicht
vollständig innerhalb des Fensters sichtbar ist. Bitte beachten Sie, dass es
hierbei darauf ankommt, ob die Wertlänge, nicht die
Feldlänge, über das Fenster hinausgeht. Füllzeichen (wie mit dem
Profilparameter FC
angegeben) zählen
nicht als Teil des Wertes.
Falls Sie in ein derart geschütztes Eingabefeld Eingaben machen möchten, müssen Sie zunächst die Fenstergröße so ändern, dass sich der Anfang des Feldes/das Ende des Feldwertes innerhalb des Fensters befindet.
Ein DEFINE WINDOW
-Statement darf nicht innerhalb einer
logischen Bedingung stehen. Wollen Sie in Abhängigkeit von einer Bedingung
unterschiedliche Fenster aufrufen, verwenden Sie dazu verschiedene
SET WINDOW
-Statements
(bzw. INPUT
-Statements mit WINDOW
-Klausel) in einer
Bedingung.
** Example 'DWDEX1': DEFINE WINDOW ************************************************************************ DEFINE DATA LOCAL 01 #I (P3) END-DEFINE * SET KEY PF1='%W<<' PF2='%W>>' PF4='%W--' PF5='%W++' * DEFINE WINDOW WIND1 SIZE QUARTER BASE TOP RIGHT FRAMED ON POSITION SYMBOL AUTO * SET WINDOW 'WIND1' FOR #I = 1 TO 10 WRITE 25X #I 'THIS IS SOME LONG TEXT' #I END-FOR * END
Ausgabe des Programms DWDEX1
:
+------------------------More: + >+ > r ! Page 1 ! All ....+....1....+....2....+....3.. ! ! 0010 ** Example 'DWDEX1': DEFINE WIND ! 1 THIS ! 0020 ******************************** ! 2 THIS ! 0030 DEFINE DATA LOCAL ! 3 THIS ! 0040 01 #I (P3) ! 4 THIS ! 0050 END-DEFINE ! 5 THIS ! 0060 * ! 6 THIS ! 0070 SET KEY PF1='%W<<' PF2='%W>>' PF ! 7 THIS ! 0080 * ! MORE ! 0090 DEFINE WINDOW WIND1 +-------------------------------------+ 0100 SIZE QUARTER 0110 BASE TOP RIGHT 0120 FRAMED ON POSITION SYMBOL AUTO 0130 * 0140 SET WINDOW 'WIND1' 0150 FOR #I = 1 TO 10 0160 WRITE 25X #I 'THIS IS SOME LONG TEXT' #I 0170 END-FOR 0180 * 0190 END 0200 ....+....1....+....2....+....3....+....4....+....5....+... S 19 L 1