Mit bidirektionalen Daten arbeiten
Bidirektionale Sprachen (BIDI) wie Arabisch und Hebräisch sind Sprachen, bei denen der Text für den Benutzer von rechts nach links angezeigt wird. Zahlen innerhalb des Textes und alphabetische Zeichenfolgen mit lateinischen Buchstaben werden jedoch von links nach rechts angezeigt. Außerdem kann die Reihenfolge von Zeichen in Programmvariablen variieren. In COBOL-Umgebungen ist der Text in Programmvariablen normalerweise in visueller Reihenfolge angegeben, also in derselben Reihenfolge, in der der Text in der Benutzerschnittstelle angezeigt wird. In Java™-Umgebungen wird der Text für gewöhnlich in logischer Reihenfolge gespeichert, also in der Reihenfolge, in der die Zeichen im Eingabefeld eingegeben werden.
- Um das Format von bidirektionalen Textzeichenfolgen in Feldern von Formulargruppen (formGroup) zu steuern, verwenden Sie eine bidirektionale Laufzeitdatei.
- Um das Format von bidirektionalen Textzeichenfolgen zwischen einem Server und einem Client zu steuern, verwenden Sie eine bidirektionale Konvertierungstabelle.
Bidirektionale Laufzeitdatei
Bevor EGL durch die bidirektionale Laufzeitdatei ergänzt wurde (also vor Version 7.5), wurde dieses Verhalten durch einzelne Eigenschaften gesteuert. Diese Eigenschaften sind auch weiterhin Bestandteil von EGL. Falls Ihr Code diese einzelnen Eigenschaften einer Formulargruppe zuordnet, bewirkt eine Änderung der Laufzeitdatei, dass EGL die Werte der einzelnen Eigenschaften entsprechend ändert. Falls Sie die einzelnen Eigenschaften ändern, verwendet EGL die neuen Werte, nimmt jedoch keine Aktualisierung der Laufzeitdatei vor.
Informationen zur Konfiguration der bidirektionalen Laufzeitdatei finden Sie unter Bidirektionale Laufzeitdatei erstellen.
BIDI-Konvertierungstabelle
EGL verwendet eine Konvertierungstabelle für bidirektionalen Text (BIDI-Konvertierungstabelle), um Konvertierungen zwischen den Formaten von Servern und Clients auszuführen. Die Datei hat das XML-Format und die Dateierweiterung '.bct'. Sie können mit einem EGL-Assistenten mehrere BIDI-Konvertierungstabellen erstellen, um Konvertierungen für verschiedene BIDI-Formate zu unterstützen. Das Programm gibt durch einen Verweis auf den Namen der Konvertierungstabelle an, wie die Attributkonvertierung ausgeführt werden soll.
sysVar.formConversionTable = "hct1.bct" ;
- Erstellen Sie BIDI-Konvertierungstabellen, in denen die gewünschten Umsetzungen angegeben sind. Bitte beachten Sie, dass für die Konvertierung von Daten, die zwischen einem Java-Client und einem COBOL-Host übertragen werden, und für die Konvertierung von Daten, die in einer Java-Umgebung in einem Text- oder Druckformular angezeigt werden, verschiedene Tabelle benötigt werden. Zur Erstellung der BIDI-Konvertierungstabelle verwenden Sie den Assistenten für BIDI-Konvertierungstabellen. Weitere Information finden Sie in Konvertierungstabelle für bidirektionalen Text erstellen.
- Geben Sie die BIDI-Konvertierungstabelle an, die bei der Generierung verwendet werden soll. Auf welche Weise Sie die BIDI-Konvertierungstabelle angeben, richtet sich nach dem Code, den Sie generieren:
- Führen Sie bei der Generierung für eine COBOL-Umgebung Folgendes aus:
- Geben Sie für die Builddeskriptoroption bidiConversionTable den Namen der BIDI-Konvertierungstabelle an, die Sie für die COBOL-Generierung erstellt haben. Die BIDI-Konvertierungstabelle steuert neben anderen Formatierungsumsetzungen, die in der Tabelle angefordert werden, die Umsetzung von Literaltext aus der logischen in die visuelle Reihenfolge für die COBOL-Umgebung.
- Legen Sie die Builddeskriptoroptionen clientCodeSet und serverCodeSet fest, um die Konvertierung der Codepage aus ASCII in EBCDIC wie in der folgenden Tabelle gezeigt zu steuern.
Tabelle 1. Werte für Builddeskriptoroptionen clientCodeSet und serverCodeSet Sprache clientCodeSet serverCodeSet Arabisch IBM-864 IBM-420 Hebräisch IBM-1255 IBM-424
- Wenn Sie ein Java-Programm generieren, das ein fernes COBOL-Programm aufruft, passen Sie den Verbindungsoptionsabschnitt so an, dass sich die Eigenschaft
conversionTable im Element callLink für das aufgerufene Programm befindet. Verwenden Sie hierzu eine der folgenden Optionen:
- Geben Sie eine BIDI-Konvertierungstabelle als Wert dieser Eigenschaft an (z. B. conversionTable="hct.bct").
- Geben Sie für die Eigenschaft die Einstellung PROGRAMCONTROLLED an. Dies bedeutet, dass das aufrufende Programm die BIDI-Konvertierungstabelle angibt, bevor das andere Programm aufgerufen wird. Das aufrufende Programm gibt die Tabelle an, indem der Systemvariablen sysVar.callConversionTable der Name der BIDI-Konvertierungstabelle zugeordnet wird. Weitere Informationen zur Systemvariablen sysVar.callConversionTable können Sie dem Abschnitt 'callConversionTable' in der Veröffentlichung EGL-Sprachreferenz entnehmen.
- Wenn Sie für einen Service in einer EGL-Implementierungsdeskriptordatei (.egldd) EGL-Bindungen angeben, geben Sie bei einem anderen Protokoll als dem lokalen Protokoll den Namen der Datei '.bct' für die Eigenschaft conversionTable an (z. B. conversionTable="hct1.bct").
- Wenn Sie ein Programm entwickeln, das Sie für Java generieren wollen, und dieses Programm Text- oder Druckformulare mit Text in bidirektionaler Sprache verwendet, fügen Sie eine Anweisung zu dem Programm hinzu, die vor dem Anzeigen des Formulars der Systemfunktion sysVar.formConversionTable den Namen der Konvertierungstabelle zuordnet.
- Führen Sie bei der Generierung für eine COBOL-Umgebung Folgendes aus: