Elemente einer Anwendung für die Konsolenbenutzerschnittstelle

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.

Formulare und Felder in der Konsolenbenutzerschnittstelle

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.

Ein Feld in einem Datensatz für die Konsolenbenutzerschnittstelle kann aus der einfachen Definition eines Namens, einer in Zeichen angegebenen Länge und einer Position in der Anzeige bestehen. Das folgende Beispiel zeigt einen einfachen Datensatz für die Konsolenbenutzerschnittstelle, der ein Formular definiert:
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.

Abschnitte für Menüs und Menüpunkte

In der Konsolenbenutzerschnittstelle ist ein Menü eine Gruppe von Optionen, unter denen der Benutzer eine Auswahl treffen kann. Wenn in der Schnittstelle ein Menü angezeigt werden soll, müssen Sie einen Menüabschnitt und anschließend die Optionen als Feldgruppe von Abschnitten für Menüoptionen (menuItem) in der Eigenschaft menuItems des Menüs definieren. Das folgende Menü definiert beispielsweise drei Optionen, unter denen der Benutzer eine Auswahl treffen kann:
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.

Feldgruppenwörterverzeichnis (ArrayDictionary)

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.

Programm für Konsolenbenutzerschnittstelle

Das Programm für die Konsolenbenutzerschnittstelle ist ein herkömmliches EGL-Programm, das die Schnittstelle erstellt und steuert. Im Allgemeinen erstellt es eine Fenstervariable, verwendet Funktionen aus der EGL-Bibliothek 'ConsoleLib', um dieses Fenster anzuzeigen, und füllt dann das Fenster mit Abschnitten, die die Schnittstelle darstellen (z. B. Konsolenformularabschnitte). Im folgenden einfachen Beispiel eines Programms für die Konsolenbenutzerschnittstelle wird das oben beschriebene Beispiel für den Konsolenformularabschnitt (ConsoleForm) verwendet:
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.

EGL-Plug-in-Projekt

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.


Feedback