Eine Anwendung für die Konsolenbenutzerschnittstelle kann für die Bereitstellung von Daten verschiedene Typen von EGL-Abschnitten und für die Erstellung der Schnittstelle verschiedene Typen von EGL-Variablen verwenden.
Wie viele Typen von Anwendungen mit Benutzerschnittstellen trennen auch Anwendungen für die EGL-Konsolenbenutzerschnittstelle die Schnittstelle von der Logik, mit der diese Schnittstelle erstellt wird. Ein normales EGL-Programm stellt die Logik für die Anwendung bereit, während die Schnittstelle selbst durch ganz unterschiedliche Typen von Abschnitten dargestellt werden kann.
Ein Konsolenformularabschnitt (ConsoleForm) ist ein Datensatz der Felder, die in der Benutzerschnittstelle angezeigt werden sollen. Die Felder in einem solchen Datensatz dienen weder dem Speichern von Daten noch besitzen sie - im Gegensatz zu den Feldern in anderen Datensatztypen - einen Datentyp (z. B. INT). Die Felder in einem Konsolenformular definieren vielmehr die Position und die Bezeichnung der Felder, die in der Anzeige ausgegeben werden. Als Gruppe werden diese Felder manchmal auch Formular genannt. Das Programm für die Konsolenbenutzerschnittstelle verknüpft die Felder in der Anzeige mit anderen EGL-Variablen.
Record CustomerConsoleRecord type consoleForm
{formSize = [10,40],name = "Customer Record"}
* consoleField {position = [1,4],
value = "Welcome to my console."};
ID consoleField {fieldLen = 5, position = [3,4],
name="customer_id"};
Fname consoleField {fieldLen = 20, position = [4,4],
name="first_name"};
Lname consoleField {fieldLen = 20, position = [5,4],
name="last_name"};
PhoneNum consoleField {fieldLen = 20, position = [6,4],
name="phone"};
end
Eines der fünf Felder in diesem Formular ist eine konstante Textzeichenfolge. Es kann zur Ausführungszeit nicht geändert werden. Dieses Feld ist mit einem Stern (*) benannt und dient als Header oder erläuternder Text (in diesem Fall
'Welcome to
my console.').
Die anderen Felder sind variabel und können von einem Programm für die Konsolenbenutzerschnittstelle verwendet werden, um Daten anzuzeigen oder Eingabe zu akzeptieren.new Menu {labelText = "Choose an option: ",
menuItems = [
new MenuItem{name = "One", labelText = "Option One"},
new MenuItem{name = "Two", labelText = "Option Two"},
new MenuItem{name = "Three", labelText = "Option Three"}
]}
Ein Beispiel für das Definieren der Reaktion auf die Auswahl einer der Optionen durch den Benutzer finden Sie unter Konsolenbenutzerschnittstelle erstellen.
Der EGL-Abschnittstyp 'ArrayDictionary' wird häufig verwendet, um Daten in der Konsolenbenutzerschnittstelle darzustellen. Im Gegensatz zu einer Feldgruppe von Datensätzen, in der Sie einen Datensatzabschnitt als Darstellung einer Zeile definieren und anschließend eine Feldgruppe aus diesen Zeilen erstellen, definieren Sie in einem ArrayDictionary-Abschnitt eine Gruppe von Konsolfeldern (consoleField), die die Spalten darstellen. Das Definieren von Daten mithilfe der Spalen kann in der Konsolenbenutzerschnittstelle hilfreich sein, weil ArrayDictionary-Abschnitte im begrenzten Bereich eines Fensters der Konsolenbenutzerschnittstelle automatisch mit einer Blätterfunktion ausgestattet werden.
Ein ausführliches Beispiel für einen ArrayDictionary-Abschnitt in der Konsolenbenutzerschnittstelle ist unter Arraywörterverzeichnis in der Konsolenbenutzerschnittstelle verwenden dargestellt.
Ein ausführliches Beispiel für einen ArrayDictionary-Abschnitt in der Konsolenbenutzerschnittstelle enthält das Thema über die Verwendung eines ArrayDictionary-Abschnitts in der Konsolenbenutzerschnittstelle in der Veröffentlichung EGL-Sprachreferenz.
program CreateAConsole type BasicProgram
function main()
// Step 1: Create a variable for the form.
myConsoleUIRecord CustomerConsoleRecord;
// Step 2: Create a window, but don't open it yet.
myWindow window {name="My Window", position=[1,1]};
// Step 3: Create variables for the form fields.
customer_id int;
first_name, last_name, phone char(30);
// Step 4: Open the window and open the form inside the window.
consoleLib.openWindowWithForm(myWindow,myConsoleUIRecord);
// Step 5: Link the variables to the fields in the form.
openUI myConsoleUIRecord
bind customer_id, first_name, last_name, phone
end
end
end
Weitere Informationen zum Verwenden von Programmen für die Konsolenbenutzerschnittstelle finden Sie unter Konsolenbenutzerschnittstelle erstellen.
Mit EGL können Sie Ihre Projekte für die Konsolenbenutzerschnittstelle in unterschiedlichen Modi ausführen. Falls Sie Ihre Anwendung für die Konsolenbenutzerschnittstelle im Modus einer Rich-Client-Anwendung (RCP) ausführen wollen, müssen Sie Ihr Projekt in ein EGL-Plug-in-Projekt konvertieren.
Weitere Informationen zu den Modi, in denen eine Anwendung für die Konsolenbenutzerschnittstelle ausgeführt werden kann, finden Sie unter Modi der Konsolenbenutzerschnittstelle. Zusätzliche Angaben über EGL-Plug-in-Projekte enthält der Abschnitt EGL-Plug-in-Projekt erstellen.