Variablen und Konstanten deklarieren

Variablen und Konstanten reservieren Speicher in einem EGL-Programm. Konstante Werte können zur Ausführungszeit nicht geändert werden.

Sie müssen alle EGL-Variablen explizit deklarieren. In bestimmten anderen Sprachen können Variablen ohne Deklaration verwendet werden, nicht jedoch in EGL.

Syntax

Syntaxdiagramm für Variablendeklaration
Variablenname
Der Name der Variablen, für die Sie Speicher reservieren.
Typ
Entweder ein Basiselementtyp (primitiver Typ) oder ein benutzerdefinierter Abschnitt, auf dem die Variable basiert.
Eigenschaft
Optionale Eigenschaft/Wert-Paare für die Variablen.
Initialisierungsoperator
Sie können einen Anfangswert für die Variable angeben.

Variablen

Sie können eine Variable wie folgt deklarieren:
  • Sie können eine Variable auf der Basis eines der EGL-Basiselementtypen deklarieren (siehe 'Basiselementtypen), wie im folgenden Beispiel:
      customerBalance DECIMAL(9,2);
  • Sie können eine Variable auf der Basis eines Datenelementabschnitts (DataItem) oder Datensatzabschnitts (Record) deklarieren, wie im folgenden Beispiel:
      myCustomer CustomerRecord;
  • Sie können eine Variable auf der Basis eines der vordeklarierten Abschnitte deklarieren, wie im folgenden Beispiel eines Wörterverzeichnisses (Dictionary):
      myDictionary Dictionary 
      {
        empnum=0005,
        lastName="Twain",
        firstName="Mark",
        birthday="021460"
      };
  • Sie können Eigenschaften (Informationen zu einem Abschnitt oder einer Variablen) angeben, wenn Sie eine Variable auf der Basis eines Abschnitts deklarieren. In bestimmten Fällen werden Eigenschaften, die Sie beim Definieren des Abschnitts selbst deklariert haben, durch diese Eigenschaften überschrieben. Weitere Informationen hierzu finden Sie in Eigenschaften.
  • Sie können einen Datensatz deklarieren, der den Speicherbereich neu definiert, der von einem anderen Datensatz deklariert wurde. Weitere Informationen finden Sie unter redefines.
  • Ein Programm oder ein anderer Hauptabschnitt kann auf die Felder einer Datentabelle zugreifen, die als eine Variable behandelt wird, die entweder für das Programm oder die Ausführungseinheit global ist. Sie können eine einfachere Syntax für den Zugriff auf diese Felder verwenden, wenn die Datentabelle in einer Anweisung 'use' aufgeführt wird. Siehe use.
  • Ein Programm kann auf die Felder eines Text- oder Druckformulars zugreifen. Das Programm behandelt das Formular als eine Variable, die für das Programm global ist. Das Programm muss die zugehörige Formulargruppe (formGroup) in einer Anweisung 'use' einschließen. Siehe use.
  • Ein Programm oder ein anderer Hauptlogikabschnitt kann auf die Bibliotheksvariablen zugreifen, die außerhalb einer Bibliotheksfunktion deklariert sind. Diese Variablen sind für die Ausführungseinheit global. Sie können eine einfachere Syntax für den Zugriff auf diese Felder verwenden, wenn die Bibliothek in einer Anweisung 'use' aufgeführt wird. Siehe use.

Typerweiterungszeichen

Das Konzept eines Typs beschreibt, wie eine bestimmte Variable oder ein bestimmter Ausdruck einen Wert darstellt. Anhand von Typen wird auch die Kompatibilität bestimmt. So können Sie beispielsweise die Zeichendarstellung einer Zahl zu einer Zeichenfolge hinzufügen und Sie können eine Zahl zur ganzzahligen Codepunktdarstellung eines Zeichens hinzufügen. Andererseits ist es nicht möglich, eine Zahl zu einem Zeichen hinzuzufügen.

EGL verfügt über Basiselementdatentypen wie beispielsweise INT und CHAR, die einfach zu handhaben sind. Darüber hinaus verfügt die Sprache über komplexere Abschnitte, die auch als Typen fungieren. So können Sie beispielsweise einen Handlerabschnitt vom Typ 'JSFHandler' (auch als JSF-Handler bezeichnet) verwenden. Zusätzlich verwendet EGL einige Sonderzeichen als Typerweiterungen beim Definieren von Variablen, wie in der folgenden Tabelle beschrieben wird:

Tabelle 1. Typerweiterungszeichen in EGL
Zeichen Beispiel Bedeutung
  anInt INT; Einzelinstanz dieses Typs. Wenn es sich um eine Wertetypvariable (nicht um eine Verweisvariable) handelt, ist dies ein benannter Speicherbereich mit den Daten.
[] anIntArray INT[]; Eine Feldgruppe dieses Typs; siehe Feldgruppen.
? aNullableInt INT?; Eine Variable, die einen Nullwert enthalten kann; siehe Nullwerte und der Typ 'nullable' (nullfähig).

Werte zu Variablen zuordnen

Wenn die Variable auf einem Basiselementtyp basiert, können Sie ihr beim Deklarieren gleichzeitig einen Wert zuordnen. Stellen Sie die gesamte Deklaration auf die linke Seite der Zuordnungsanweisung, wie im folgenden Beispiel:
customerBalance DECIMAL(9,2) = 1001.22;

Nachdem Sie eine Variable deklariert haben, können Sie ihr jederzeit anhand der regulären Zuordnungssyntax einen neuen Wert zuordnen. Weitere Informationen zu diesem Thema finden Sie unter Zuordnungen. Informationen zur Verwendung von Literalen in Zuordnungen finden Sie unter Literale.

Konstanten

Eine Konstante ist ein deklarierter Wert, der zur Ausführungszeit nicht geändert werden kann. Eine Konstante wird mit dem reservierten Wort 'const' deklariert, gefolgt vom Konstantennamen, dem Typ, einem Gleichheitszeichen und dem Wert. Beispiele:
  const copyrStr String = "Copyright 2007 by CompanyB";
  const myArray  BIN[] = [36, 49, 64];
  const myArray02 BIN[][] = [[1,2,3],[5,6,7]];

Sie können keine Konstante in einen Datensatz oder eine andere komplexe Struktur einschließen.

Sie können das reservierte Wort 'const' als Änderungswert in Funktionsparametern einschließen. Weitere Informationen finden Sie unter Parameteränderungswerte.

Um mehrere Variablen oder Konstanten in einer einzelnen Anweisung zu deklarieren, müssen Sie die einzelnen Kennungen jeweils durch ein Komma voneinander trennen, wie in den folgenden Beispielen:
  const myString01, myString02 STRING = "INITIAL";
  myVar01, myVar02, myVar03 CHAR(5);
  myRecord01, myRecord02 ExampleRecord;

Feedback