datenfelder, tabellen und datenstrukturenbin.midrange-shop.com/pdf/444031_probekapitel.pdf · rpg...

22
Ein I. T.P.-Fachbuch Datenfelder, Tabellen und Datenstrukturen Es ist anzunehmen, dass jeder, der schon einmal für die AS/400 programmiert hat, die Arbeit mit Datenfeldern, Tabellen oder Datenstrukturen kennt. Dabei handelt es sich um allgemeine Mechanismen, die Daten im Speicherplatz des ausführenden Programmes speichern. Datenfelder, Tabellen und Datenstruktu- ren stellen internen Speicherplatz für die Daten in Ihrem Pro- gramm zur Verfügung, variieren jedoch in Bezug auf Implemen- tierung und Funktion. Datenfelder und Tabellen erlauben es Ihrem Programm, Daten- elemente für den einfachen Abruf in Gruppen zu organisieren. Datenstrukturen erlauben es Ihnen, einen Speicherbereich für die 9

Upload: duongkien

Post on 06-Feb-2018

225 views

Category:

Documents


3 download

TRANSCRIPT

Ein I.T.P. -Fachbuch

Datenfelder, Tabellen, und Datenstrukturen Kapitel 9 – Seite 1

Ein I.T.P. -Fachbuch

Datenfelder, Tabellen, und Datenstrukturen Kapitel 9 – Seite 1

Ein I.T.P. -Fachbuch

Datenfelder, Tabellen, und Datenstrukturen Kapitel 9 – Seite 1

Ein I.T.P. -Fachbuch

Datenfelder, Tabellen, und Datenstrukturen Kapitel 9 – Seite 1

Datenfelder, Tabellen undDatenstrukturen

Es ist anzunehmen, dass jeder, der schon einmal für die AS/400programmiert hat, die Arbeit mit Datenfeldern, Tabellen oderDatenstrukturen kennt. Dabei handelt es sich um allgemeineMechanismen, die Daten im Speicherplatz des ausführendenProgrammes speichern. Datenfelder, Tabellen und Datenstruktu-ren stellen internen Speicherplatz für die Daten in Ihrem Pro-gramm zur Verfügung, variieren jedoch in Bezug auf Implemen-tierung und Funktion.

Datenfelder und Tabellen erlauben es Ihrem Programm, Daten-elemente für den einfachen Abruf in Gruppen zu organisieren.Datenstrukturen erlauben es Ihnen, einen Speicherbereich für die

9

Datenfelder, Tabellen undDatenstrukturen

Es ist anzunehmen, dass jeder, der schon einmal für die AS/400programmiert hat, die Arbeit mit Datenfeldern, Tabellen oderDatenstrukturen kennt. Dabei handelt es sich um allgemeineMechanismen, die Daten im Speicherplatz des ausführendenProgrammes speichern. Datenfelder, Tabellen und Datenstruktu-ren stellen internen Speicherplatz für die Daten in Ihrem Pro-gramm zur Verfügung, variieren jedoch in Bezug auf Implemen-tierung und Funktion.

Datenfelder und Tabellen erlauben es Ihrem Programm, Daten-elemente für den einfachen Abruf in Gruppen zu organisieren.Datenstrukturen erlauben es Ihnen, einen Speicherbereich für die

9

Datenfelder, Tabellen undDatenstrukturen

Es ist anzunehmen, dass jeder, der schon einmal für die AS/400programmiert hat, die Arbeit mit Datenfeldern, Tabellen oderDatenstrukturen kennt. Dabei handelt es sich um allgemeineMechanismen, die Daten im Speicherplatz des ausführendenProgrammes speichern. Datenfelder, Tabellen und Datenstruktu-ren stellen internen Speicherplatz für die Daten in Ihrem Pro-gramm zur Verfügung, variieren jedoch in Bezug auf Implemen-tierung und Funktion.

Datenfelder und Tabellen erlauben es Ihrem Programm, Daten-elemente für den einfachen Abruf in Gruppen zu organisieren.Datenstrukturen erlauben es Ihnen, einen Speicherbereich für die

9

Datenfelder, Tabellen undDatenstrukturen

Es ist anzunehmen, dass jeder, der schon einmal für die AS/400programmiert hat, die Arbeit mit Datenfeldern, Tabellen oderDatenstrukturen kennt. Dabei handelt es sich um allgemeineMechanismen, die Daten im Speicherplatz des ausführendenProgrammes speichern. Datenfelder, Tabellen und Datenstruktu-ren stellen internen Speicherplatz für die Daten in Ihrem Pro-gramm zur Verfügung, variieren jedoch in Bezug auf Implemen-tierung und Funktion.

Datenfelder und Tabellen erlauben es Ihrem Programm, Daten-elemente für den einfachen Abruf in Gruppen zu organisieren.Datenstrukturen erlauben es Ihnen, einen Speicherbereich für die

9

Ein I.T.P. -Fachbuch

Seite 2 – Kapitel 9 Handbuch für AS/400-Programmierer

Ein I.T.P. -Fachbuch

Seite 2 – Kapitel 9 Handbuch für AS/400-Programmierer

Ein I.T.P. -Fachbuch

Seite 2 – Kapitel 9 Handbuch für AS/400-Programmierer

Ein I.T.P. -Fachbuch

Seite 2 – Kapitel 9 Handbuch für AS/400-Programmierer

Speicherung von einzelnen Datenelementen zu definieren. Ele-mente werden als Unterfelder innerhalb der größeren Strukturdefiniert.

Datenfelder und TabellenDatenfelder und Tabellen bieten beide Ihrem Programm internenSpeicherplatz für Datenelemente. Die Funktionen, die Sie mitihnen ausführen können, sind jedoch sehr unterschiedlich.

TabellenDie wichtigste Funktion einer Tabelle ist es, eine Anzahl von vor-gegebenen Datenelementen für das Nachschlagen zu speichern.Eine Tabelle kann z.B. eine Liste gültiger Abkürzungen für Län-der enthalten. Eine derartige Liste ist ideal für die Speicherung inTabellen, weil die Tabelle damit eine feste Anzahl möglicher Ele-mente hat.

Ein RPG-Programm kann z.B. in einer Tabelle nachschlagen, umdas vom Benutzer eingegebene Land auf Gültigkeit zu überprü-fen. Die Tabelle prüft, ob ein bestimmter Wert in der Tabelle ent-halten ist (Abb. 9.1).

Speicherung von einzelnen Datenelementen zu definieren. Ele-mente werden als Unterfelder innerhalb der größeren Strukturdefiniert.

Datenfelder und TabellenDatenfelder und Tabellen bieten beide Ihrem Programm internenSpeicherplatz für Datenelemente. Die Funktionen, die Sie mitihnen ausführen können, sind jedoch sehr unterschiedlich.

TabellenDie wichtigste Funktion einer Tabelle ist es, eine Anzahl von vor-gegebenen Datenelementen für das Nachschlagen zu speichern.Eine Tabelle kann z.B. eine Liste gültiger Abkürzungen für Län-der enthalten. Eine derartige Liste ist ideal für die Speicherung inTabellen, weil die Tabelle damit eine feste Anzahl möglicher Ele-mente hat.

Ein RPG-Programm kann z.B. in einer Tabelle nachschlagen, umdas vom Benutzer eingegebene Land auf Gültigkeit zu überprü-fen. Die Tabelle prüft, ob ein bestimmter Wert in der Tabelle ent-halten ist (Abb. 9.1).

Speicherung von einzelnen Datenelementen zu definieren. Ele-mente werden als Unterfelder innerhalb der größeren Strukturdefiniert.

Datenfelder und TabellenDatenfelder und Tabellen bieten beide Ihrem Programm internenSpeicherplatz für Datenelemente. Die Funktionen, die Sie mitihnen ausführen können, sind jedoch sehr unterschiedlich.

TabellenDie wichtigste Funktion einer Tabelle ist es, eine Anzahl von vor-gegebenen Datenelementen für das Nachschlagen zu speichern.Eine Tabelle kann z.B. eine Liste gültiger Abkürzungen für Län-der enthalten. Eine derartige Liste ist ideal für die Speicherung inTabellen, weil die Tabelle damit eine feste Anzahl möglicher Ele-mente hat.

Ein RPG-Programm kann z.B. in einer Tabelle nachschlagen, umdas vom Benutzer eingegebene Land auf Gültigkeit zu überprü-fen. Die Tabelle prüft, ob ein bestimmter Wert in der Tabelle ent-halten ist (Abb. 9.1).

Speicherung von einzelnen Datenelementen zu definieren. Ele-mente werden als Unterfelder innerhalb der größeren Strukturdefiniert.

Datenfelder und TabellenDatenfelder und Tabellen bieten beide Ihrem Programm internenSpeicherplatz für Datenelemente. Die Funktionen, die Sie mitihnen ausführen können, sind jedoch sehr unterschiedlich.

TabellenDie wichtigste Funktion einer Tabelle ist es, eine Anzahl von vor-gegebenen Datenelementen für das Nachschlagen zu speichern.Eine Tabelle kann z.B. eine Liste gültiger Abkürzungen für Län-der enthalten. Eine derartige Liste ist ideal für die Speicherung inTabellen, weil die Tabelle damit eine feste Anzahl möglicher Ele-mente hat.

Ein RPG-Programm kann z.B. in einer Tabelle nachschlagen, umdas vom Benutzer eingegebene Land auf Gültigkeit zu überprü-fen. Die Tabelle prüft, ob ein bestimmter Wert in der Tabelle ent-halten ist (Abb. 9.1).

Ein I.T.P. -Fachbuch

Datenfelder, Tabellen, und Datenstrukturen Kapitel 9 – Seite 3

Ein I.T.P. -Fachbuch

Datenfelder, Tabellen, und Datenstrukturen Kapitel 9 – Seite 3

Ein I.T.P. -Fachbuch

Datenfelder, Tabellen, und Datenstrukturen Kapitel 9 – Seite 3

Ein I.T.P. -Fachbuch

Datenfelder, Tabellen, und Datenstrukturen Kapitel 9 – Seite 3

Abb. 9.1: Datenelemente mit Hilfe einer Tabelle validieren

RPG erlaubt Ihnen die Definition einer zweiten Tabelle, die mitder ersten Tabelle verknüpft wird, um so den Nutzen der Tabellezu vergrößern. Eine relationale Tabelle ist eine Liste von Ele-menten, die jeweils mit dem entsprechenden Element in der Pri-märtabelle verknüpft ist. In unserem Beispiel mit den Länder-kennungen kann z.B. eine relationale Tabelle definiert werden,um Informationen zu speichern, die für das jeweilige Elementeindeutig sind.

Informationen, wie z.B. die Umsatzsteuer eines Landes, sind ide-al für die Speicherung in einer relationalen Tabelle. Wenn ein

Abb. 9.1: Datenelemente mit Hilfe einer Tabelle validieren

RPG erlaubt Ihnen die Definition einer zweiten Tabelle, die mitder ersten Tabelle verknüpft wird, um so den Nutzen der Tabellezu vergrößern. Eine relationale Tabelle ist eine Liste von Ele-menten, die jeweils mit dem entsprechenden Element in der Pri-märtabelle verknüpft ist. In unserem Beispiel mit den Länder-kennungen kann z.B. eine relationale Tabelle definiert werden,um Informationen zu speichern, die für das jeweilige Elementeindeutig sind.

Informationen, wie z.B. die Umsatzsteuer eines Landes, sind ide-al für die Speicherung in einer relationalen Tabelle. Wenn ein

Abb. 9.1: Datenelemente mit Hilfe einer Tabelle validieren

RPG erlaubt Ihnen die Definition einer zweiten Tabelle, die mitder ersten Tabelle verknüpft wird, um so den Nutzen der Tabellezu vergrößern. Eine relationale Tabelle ist eine Liste von Ele-menten, die jeweils mit dem entsprechenden Element in der Pri-märtabelle verknüpft ist. In unserem Beispiel mit den Länder-kennungen kann z.B. eine relationale Tabelle definiert werden,um Informationen zu speichern, die für das jeweilige Elementeindeutig sind.

Informationen, wie z.B. die Umsatzsteuer eines Landes, sind ide-al für die Speicherung in einer relationalen Tabelle. Wenn ein

Abb. 9.1: Datenelemente mit Hilfe einer Tabelle validieren

RPG erlaubt Ihnen die Definition einer zweiten Tabelle, die mitder ersten Tabelle verknüpft wird, um so den Nutzen der Tabellezu vergrößern. Eine relationale Tabelle ist eine Liste von Ele-menten, die jeweils mit dem entsprechenden Element in der Pri-märtabelle verknüpft ist. In unserem Beispiel mit den Länder-kennungen kann z.B. eine relationale Tabelle definiert werden,um Informationen zu speichern, die für das jeweilige Elementeindeutig sind.

Informationen, wie z.B. die Umsatzsteuer eines Landes, sind ide-al für die Speicherung in einer relationalen Tabelle. Wenn ein

Ein I.T.P. -Fachbuch

Seite 4 – Kapitel 9 Handbuch für AS/400-Programmierer

Ein I.T.P. -Fachbuch

Seite 4 – Kapitel 9 Handbuch für AS/400-Programmierer

Ein I.T.P. -Fachbuch

Seite 4 – Kapitel 9 Handbuch für AS/400-Programmierer

Ein I.T.P. -Fachbuch

Seite 4 – Kapitel 9 Handbuch für AS/400-Programmierer

bestimmter Staat in der Primärtabelle enthalten ist, kann so derWert, der im dementsprechenden Element der Umsatzsteuerta-belle enthalten ist, abgerufen werden. Abb. 9.2 illustriert die Ver-wendung einer primären Tabelle mit einer relationalen Tabelle.

Abb. 9.2: Mit einer Tabelle einen Wert aus einer relationalenTabelle abrufen

Wie werden Tabellen geladen? Tabellen können bei der Kompi-lierung oder vor Laufzeit geladen werden. Tabellen, die bei derKompilierung geladen werden, werden bei der Kompilierung mitDaten einschließlich dem Programmquellcode geladen. Tabel-len, die vor Laufzeit geladen werden, rufen die Daten während

bestimmter Staat in der Primärtabelle enthalten ist, kann so derWert, der im dementsprechenden Element der Umsatzsteuerta-belle enthalten ist, abgerufen werden. Abb. 9.2 illustriert die Ver-wendung einer primären Tabelle mit einer relationalen Tabelle.

Abb. 9.2: Mit einer Tabelle einen Wert aus einer relationalenTabelle abrufen

Wie werden Tabellen geladen? Tabellen können bei der Kompi-lierung oder vor Laufzeit geladen werden. Tabellen, die bei derKompilierung geladen werden, werden bei der Kompilierung mitDaten einschließlich dem Programmquellcode geladen. Tabel-len, die vor Laufzeit geladen werden, rufen die Daten während

bestimmter Staat in der Primärtabelle enthalten ist, kann so derWert, der im dementsprechenden Element der Umsatzsteuerta-belle enthalten ist, abgerufen werden. Abb. 9.2 illustriert die Ver-wendung einer primären Tabelle mit einer relationalen Tabelle.

Abb. 9.2: Mit einer Tabelle einen Wert aus einer relationalenTabelle abrufen

Wie werden Tabellen geladen? Tabellen können bei der Kompi-lierung oder vor Laufzeit geladen werden. Tabellen, die bei derKompilierung geladen werden, werden bei der Kompilierung mitDaten einschließlich dem Programmquellcode geladen. Tabel-len, die vor Laufzeit geladen werden, rufen die Daten während

bestimmter Staat in der Primärtabelle enthalten ist, kann so derWert, der im dementsprechenden Element der Umsatzsteuerta-belle enthalten ist, abgerufen werden. Abb. 9.2 illustriert die Ver-wendung einer primären Tabelle mit einer relationalen Tabelle.

Abb. 9.2: Mit einer Tabelle einen Wert aus einer relationalenTabelle abrufen

Wie werden Tabellen geladen? Tabellen können bei der Kompi-lierung oder vor Laufzeit geladen werden. Tabellen, die bei derKompilierung geladen werden, werden bei der Kompilierung mitDaten einschließlich dem Programmquellcode geladen. Tabel-len, die vor Laufzeit geladen werden, rufen die Daten während

Ein I.T.P. -Fachbuch

Datenfelder, Tabellen, und Datenstrukturen Kapitel 9 – Seite 5

Ein I.T.P. -Fachbuch

Datenfelder, Tabellen, und Datenstrukturen Kapitel 9 – Seite 5

Ein I.T.P. -Fachbuch

Datenfelder, Tabellen, und Datenstrukturen Kapitel 9 – Seite 5

Ein I.T.P. -Fachbuch

Datenfelder, Tabellen, und Datenstrukturen Kapitel 9 – Seite 5

der Initialisierungsphase eines Programms aus einer Datenbank-datei ab.

DatenfelderDatenfelder bieten weitaus flexiblere Funktionen als Tabellen.Das Programm kann während der Ausführung dynamisch aufeinzelne Elemente in Datenfeldern verweisen und diese manipu-lieren. Eine beliebte Anwendung in einem RPG-Programm istz.B. der Einsatz als Speicherbereich für die Sammlung von Ge-samtbeträgen. RPG Op-Codes ermöglichen mit einer einzigenCodezeile die Sortierung von Datenfeldern und die Berechnungder Gesamtsumme von numerischen Werten.

Datenfelder sind z.B. gut geeignet für die Aufgabe, aus den ein-zelnen Auftragsdatensätzen Ihrer Außendienstmitarbeiter dieGesamtbeträge zu ermitteln (Abb. 9.3). Bei der Verarbeitung derDatensätze durch das Programm wird das Datenfeld jedes Au-ßendienstmitarbeiters geprüft. Wenn kein Datenfeld gefundenwird, wird der Außendienstmitarbeiterwert dem nächsten verfüg-baren Element hinzugefügt. Das Programm fügt dann den Betragseiner Umsätze dem entsprechenden Element in einem zweitenDatenfeld hinzu. Nachdem das Programm alle Detaildatensätzeverarbeitet hat, kann der Inhalt der Datenfelder verwendet wer-den, um Gesamtbeträge pro Außendienstmitarbeiter auszudruk-ken.

der Initialisierungsphase eines Programms aus einer Datenbank-datei ab.

DatenfelderDatenfelder bieten weitaus flexiblere Funktionen als Tabellen.Das Programm kann während der Ausführung dynamisch aufeinzelne Elemente in Datenfeldern verweisen und diese manipu-lieren. Eine beliebte Anwendung in einem RPG-Programm istz.B. der Einsatz als Speicherbereich für die Sammlung von Ge-samtbeträgen. RPG Op-Codes ermöglichen mit einer einzigenCodezeile die Sortierung von Datenfeldern und die Berechnungder Gesamtsumme von numerischen Werten.

Datenfelder sind z.B. gut geeignet für die Aufgabe, aus den ein-zelnen Auftragsdatensätzen Ihrer Außendienstmitarbeiter dieGesamtbeträge zu ermitteln (Abb. 9.3). Bei der Verarbeitung derDatensätze durch das Programm wird das Datenfeld jedes Au-ßendienstmitarbeiters geprüft. Wenn kein Datenfeld gefundenwird, wird der Außendienstmitarbeiterwert dem nächsten verfüg-baren Element hinzugefügt. Das Programm fügt dann den Betragseiner Umsätze dem entsprechenden Element in einem zweitenDatenfeld hinzu. Nachdem das Programm alle Detaildatensätzeverarbeitet hat, kann der Inhalt der Datenfelder verwendet wer-den, um Gesamtbeträge pro Außendienstmitarbeiter auszudruk-ken.

der Initialisierungsphase eines Programms aus einer Datenbank-datei ab.

DatenfelderDatenfelder bieten weitaus flexiblere Funktionen als Tabellen.Das Programm kann während der Ausführung dynamisch aufeinzelne Elemente in Datenfeldern verweisen und diese manipu-lieren. Eine beliebte Anwendung in einem RPG-Programm istz.B. der Einsatz als Speicherbereich für die Sammlung von Ge-samtbeträgen. RPG Op-Codes ermöglichen mit einer einzigenCodezeile die Sortierung von Datenfeldern und die Berechnungder Gesamtsumme von numerischen Werten.

Datenfelder sind z.B. gut geeignet für die Aufgabe, aus den ein-zelnen Auftragsdatensätzen Ihrer Außendienstmitarbeiter dieGesamtbeträge zu ermitteln (Abb. 9.3). Bei der Verarbeitung derDatensätze durch das Programm wird das Datenfeld jedes Au-ßendienstmitarbeiters geprüft. Wenn kein Datenfeld gefundenwird, wird der Außendienstmitarbeiterwert dem nächsten verfüg-baren Element hinzugefügt. Das Programm fügt dann den Betragseiner Umsätze dem entsprechenden Element in einem zweitenDatenfeld hinzu. Nachdem das Programm alle Detaildatensätzeverarbeitet hat, kann der Inhalt der Datenfelder verwendet wer-den, um Gesamtbeträge pro Außendienstmitarbeiter auszudruk-ken.

der Initialisierungsphase eines Programms aus einer Datenbank-datei ab.

DatenfelderDatenfelder bieten weitaus flexiblere Funktionen als Tabellen.Das Programm kann während der Ausführung dynamisch aufeinzelne Elemente in Datenfeldern verweisen und diese manipu-lieren. Eine beliebte Anwendung in einem RPG-Programm istz.B. der Einsatz als Speicherbereich für die Sammlung von Ge-samtbeträgen. RPG Op-Codes ermöglichen mit einer einzigenCodezeile die Sortierung von Datenfeldern und die Berechnungder Gesamtsumme von numerischen Werten.

Datenfelder sind z.B. gut geeignet für die Aufgabe, aus den ein-zelnen Auftragsdatensätzen Ihrer Außendienstmitarbeiter dieGesamtbeträge zu ermitteln (Abb. 9.3). Bei der Verarbeitung derDatensätze durch das Programm wird das Datenfeld jedes Au-ßendienstmitarbeiters geprüft. Wenn kein Datenfeld gefundenwird, wird der Außendienstmitarbeiterwert dem nächsten verfüg-baren Element hinzugefügt. Das Programm fügt dann den Betragseiner Umsätze dem entsprechenden Element in einem zweitenDatenfeld hinzu. Nachdem das Programm alle Detaildatensätzeverarbeitet hat, kann der Inhalt der Datenfelder verwendet wer-den, um Gesamtbeträge pro Außendienstmitarbeiter auszudruk-ken.

Ein I.T.P. -Fachbuch

Seite 6 – Kapitel 9 Handbuch für AS/400-Programmierer

Ein I.T.P. -Fachbuch

Seite 6 – Kapitel 9 Handbuch für AS/400-Programmierer

Ein I.T.P. -Fachbuch

Seite 6 – Kapitel 9 Handbuch für AS/400-Programmierer

Ein I.T.P. -Fachbuch

Seite 6 – Kapitel 9 Handbuch für AS/400-Programmierer

Abb. 9.3: Datenfelder verwenden, um Gesamtbeträge zu akku-mulieren

So werden Datenfelder geladen: Sie können Datenfelder bei derKompilierung geladen, vor Laufzeit oder während der Laufzeit.Datenfelder, die während der Kompilierung geladen werden,werden mit den Daten geladen, die im Quellcode des Programmsenthalten sind. Datenfelder, die vor Laufzeit laden, laden Datenaus einer Datenbankdatei während der Initialisierungsphase ei-ner Programmausführung. Laufzeitdatenfelder werden innerhalbder Programmlogik während der Ausführung geladen.

Abb. 9.3: Datenfelder verwenden, um Gesamtbeträge zu akku-mulieren

So werden Datenfelder geladen: Sie können Datenfelder bei derKompilierung geladen, vor Laufzeit oder während der Laufzeit.Datenfelder, die während der Kompilierung geladen werden,werden mit den Daten geladen, die im Quellcode des Programmsenthalten sind. Datenfelder, die vor Laufzeit laden, laden Datenaus einer Datenbankdatei während der Initialisierungsphase ei-ner Programmausführung. Laufzeitdatenfelder werden innerhalbder Programmlogik während der Ausführung geladen.

Abb. 9.3: Datenfelder verwenden, um Gesamtbeträge zu akku-mulieren

So werden Datenfelder geladen: Sie können Datenfelder bei derKompilierung geladen, vor Laufzeit oder während der Laufzeit.Datenfelder, die während der Kompilierung geladen werden,werden mit den Daten geladen, die im Quellcode des Programmsenthalten sind. Datenfelder, die vor Laufzeit laden, laden Datenaus einer Datenbankdatei während der Initialisierungsphase ei-ner Programmausführung. Laufzeitdatenfelder werden innerhalbder Programmlogik während der Ausführung geladen.

Abb. 9.3: Datenfelder verwenden, um Gesamtbeträge zu akku-mulieren

So werden Datenfelder geladen: Sie können Datenfelder bei derKompilierung geladen, vor Laufzeit oder während der Laufzeit.Datenfelder, die während der Kompilierung geladen werden,werden mit den Daten geladen, die im Quellcode des Programmsenthalten sind. Datenfelder, die vor Laufzeit laden, laden Datenaus einer Datenbankdatei während der Initialisierungsphase ei-ner Programmausführung. Laufzeitdatenfelder werden innerhalbder Programmlogik während der Ausführung geladen.

Ein I.T.P. -Fachbuch

Datenfelder, Tabellen, und Datenstrukturen Kapitel 9 – Seite 7

Ein I.T.P. -Fachbuch

Datenfelder, Tabellen, und Datenstrukturen Kapitel 9 – Seite 7

Ein I.T.P. -Fachbuch

Datenfelder, Tabellen, und Datenstrukturen Kapitel 9 – Seite 7

Ein I.T.P. -Fachbuch

Datenfelder, Tabellen, und Datenstrukturen Kapitel 9 – Seite 7

BeispielBei Kompilierung ladende Tabelle inILE RPG laden

Wie Sie sich sicherlich erinnern, werden bei Kompilierung la-dende Tabellen aus dem Inhalt von Einträgen innerhalb desQuellcodes eines Programms geladen.

ÜbersichtIn diesem Beispiel wird eine zur Kompilierungszeit ladende Ta-belle in Verbindung mit einer verknüpften Tabelle verwendet, umSchülernamen und die entsprechenden Prüfungsergebnisse auf-zunehmen. Die Tabelle wird unter Angabe eines Prüfergebnissesnach einem bestimmten Schülernamen durchsucht. Anschlie-ßend werden Schülername und Prüfungsergebnis ausgedruckt.Listing 9.1, das die ILE RPG Source für RPG0001R zeigt, illu-striert die Verwendung von bei Kompilierung ladenden Tabellen.

BeispielBei Kompilierung ladende Tabelle inILE RPG laden

Wie Sie sich sicherlich erinnern, werden bei Kompilierung la-dende Tabellen aus dem Inhalt von Einträgen innerhalb desQuellcodes eines Programms geladen.

ÜbersichtIn diesem Beispiel wird eine zur Kompilierungszeit ladende Ta-belle in Verbindung mit einer verknüpften Tabelle verwendet, umSchülernamen und die entsprechenden Prüfungsergebnisse auf-zunehmen. Die Tabelle wird unter Angabe eines Prüfergebnissesnach einem bestimmten Schülernamen durchsucht. Anschlie-ßend werden Schülername und Prüfungsergebnis ausgedruckt.Listing 9.1, das die ILE RPG Source für RPG0001R zeigt, illu-striert die Verwendung von bei Kompilierung ladenden Tabellen.

BeispielBei Kompilierung ladende Tabelle inILE RPG laden

Wie Sie sich sicherlich erinnern, werden bei Kompilierung la-dende Tabellen aus dem Inhalt von Einträgen innerhalb desQuellcodes eines Programms geladen.

Übersicht

In diesem Beispiel wird eine zur Kompilierungszeit ladende Ta-belle in Verbindung mit einer verknüpften Tabelle verwendet, umSchülernamen und die entsprechenden Prüfungsergebnisse auf-zunehmen. Die Tabelle wird unter Angabe eines Prüfergebnissesnach einem bestimmten Schülernamen durchsucht. Anschlie-ßend werden Schülername und Prüfungsergebnis ausgedruckt.Listing 9.1, das die ILE RPG Source für RPG0001R zeigt, illu-striert die Verwendung von bei Kompilierung ladenden Tabellen.

BeispielBei Kompilierung ladende Tabelle inILE RPG laden

Wie Sie sich sicherlich erinnern, werden bei Kompilierung la-dende Tabellen aus dem Inhalt von Einträgen innerhalb desQuellcodes eines Programms geladen.

Übersicht

In diesem Beispiel wird eine zur Kompilierungszeit ladende Ta-belle in Verbindung mit einer verknüpften Tabelle verwendet, umSchülernamen und die entsprechenden Prüfungsergebnisse auf-zunehmen. Die Tabelle wird unter Angabe eines Prüfergebnissesnach einem bestimmten Schülernamen durchsucht. Anschlie-ßend werden Schülername und Prüfungsergebnis ausgedruckt.Listing 9.1, das die ILE RPG Source für RPG0001R zeigt, illu-striert die Verwendung von bei Kompilierung ladenden Tabellen.

Ein I.T.P. -Fachbuch

Seite 8 – Kapitel 9 Handbuch für AS/400-Programmierer

Ein I.T.P. -Fachbuch

Seite 8 – Kapitel 9 Handbuch für AS/400-Programmierer

Ein I.T.P. -Fachbuch

Seite 8 – Kapitel 9 Handbuch für AS/400-Programmierer

Ein I.T.P. -Fachbuch

Seite 8 – Kapitel 9 Handbuch für AS/400-Programmierer

Listing 9.1: ILE RPG mit Tabellen, die bei Kompilierung laden

FQPRINT 0 F 132 PrinterDTABNames S 20 Dim(5) CTDATA Perrcd(1)DTABScore S 3 0 Dim(5) Alt(TABNames)D*DM yName S 20 Inz(‚Joe‘)*C MYNAME Lookup TABNames TABScore 90C If *In90 = *0nC Except PrintitC EndIfC*C Eval *InLR = *0nC ReturnO*OQPRINT E Printit 1O TABNames 25O TABScore Z 30**CTDATA TABNAMESBILLY BOB 90JOE 050ABBEY 015ZOE 095GARTH 045

BeschreibungLaufzeit-Tabellendefinitionen beginnen mit den RPG D-Spezifi-kationen. Der Name der Tabelle, der mitTAB beginnen muss, dieGröße und die Attribute jedes Elements, die Maximalzahl an Ele-menten in der Tabelle und die Anzahl der Elemente pro Source-Zeile werden alle in der D-Spezifikation definiert. Abb. 9.4 zeigteine nähere Ansicht der D-Spezifikation für die TabelleTABNAMES.

DNAME++++++++++ETDsFrom+++To/L+++Idc.Keywords+++++++++++++++++++++ DTABNames S 20 Dim(5) CTDATA Perrcd(1)

g g

FQPRINT 0 F 132 PrinterDTABNames S 20 Dim(5) CTDATA Perrcd(1)DTABScore S 3 0 Dim(5) Alt(TABNames)D*DMyName S 20 Inz('Joe')*C MYNAME Lookup TABNames TABScore 90

C If *In90 = *0nC Except PrintitC EndIfC*C Eval *InLR = *0nC ReturnO*OQPRINT E Printit 1O TABNames 25O TABScore Z 30**CTDATABILLY BOB 90JOE 050ABBEY 015ZOE 095GARTH 045

Listing 9.1: ILE RPG mit Tabellen, die bei Kompilierung laden

FQPRINT 0 F 132 PrinterDTABNames S 20 Dim(5) CTDATA Perrcd(1)DTABScore S 3 0 Dim(5) Alt(TABNames)D*DM yName S 20 Inz(‚Joe‘)*C MYNAME Lookup TABNames TABScore 90C If *In90 = *0nC Except PrintitC EndIfC*C Eval *InLR = *0nC ReturnO*OQPRINT E Printit 1O TABNames 25O TABScore Z 30**CTDATA TABNAMESBILLY BOB 90JOE 050ABBEY 015ZOE 095GARTH 045

BeschreibungLaufzeit-Tabellendefinitionen beginnen mit den RPG D-Spezifi-kationen. Der Name der Tabelle, der mitTAB beginnen muss, dieGröße und die Attribute jedes Elements, die Maximalzahl an Ele-menten in der Tabelle und die Anzahl der Elemente pro Source-Zeile werden alle in der D-Spezifikation definiert. Abb. 9.4 zeigteine nähere Ansicht der D-Spezifikation für die TabelleTABNAMES.

DNAME++++++++++ETDsFrom+++To/L+++Idc.Keywords+++++++++++++++++++++ DTABNames S 20 Dim(5) CTDATA Perrcd(1)

g g

FQPRINT 0 F 132 PrinterDTABNames S 20 Dim(5) CTDATA Perrcd(1)DTABScore S 3 0 Dim(5) Alt(TABNames)D*DMyName S 20 Inz('Joe')*C MYNAME Lookup TABNames TABScore 90

C If *In90 = *0nC Except PrintitC EndIfC*C Eval *InLR = *0nC ReturnO*OQPRINT E Printit 1O TABNames 25O TABScore Z 30**CTDATABILLY BOB 90JOE 050ABBEY 015ZOE 095GARTH 045

Listing 9.1: ILE RPG mit Tabellen, die bei Kompilierung laden

FQPRINT 0 F 132 PrinterDTABNames S 20 Dim(5) CTDATA Perrcd(1)DTABScore S 3 0 Dim(5) Alt(TABNames)D*DM yName S 20 Inz(‚Joe‘)*C MYNAME Lookup TABNames TABScore 90C If *In90 = *0nC Except PrintitC EndIfC*C Eval *InLR = *0nC ReturnO*OQPRINT E Printit 1O TABNames 25O TABScore Z 30**CTDATA TABNAMESBILLY BOB 90JOE 050ABBEY 015ZOE 095GARTH 045

BeschreibungLaufzeit-Tabellendefinitionen beginnen mit den RPG D-Spezifi-kationen. Der Name der Tabelle, der mitTAB beginnen muss, dieGröße und die Attribute jedes Elements, die Maximalzahl an Ele-menten in der Tabelle und die Anzahl der Elemente pro Source-Zeile werden alle in der D-Spezifikation definiert. Abb. 9.4 zeigteine nähere Ansicht der D-Spezifikation für die TabelleTABNAMES.

DNAME++++++++++ETDsFrom+++To/L+++Idc.Keywords+++++++++++++++++++++ DTABNames S 20 Dim(5) CTDATA Perrcd(1)

g g

FQPRINT 0 F 132 PrinterDTABNames S 20 Dim(5) CTDATA Perrcd(1)DTABScore S 3 0 Dim(5) Alt(TABNames)D*DMyName S 20 Inz('Joe')*C MYNAME Lookup TABNames TABScore 90

C If *In90 = *0nC Except PrintitC EndIfC*C Eval *InLR = *0nC ReturnO*OQPRINT E Printit 1O TABNames 25O TABScore Z 30**CTDATABILLY BOB 90JOE 050ABBEY 015ZOE 095GARTH 045

Listing 9.1: ILE RPG mit Tabellen, die bei Kompilierung laden

FQPRINT 0 F 132 PrinterDTABNames S 20 Dim(5) CTDATA Perrcd(1)DTABScore S 3 0 Dim(5) Alt(TABNames)D*DM yName S 20 Inz(‚Joe‘)*C MYNAME Lookup TABNames TABScore 90C If *In90 = *0nC Except PrintitC EndIfC*C Eval *InLR = *0nC ReturnO*OQPRINT E Printit 1O TABNames 25O TABScore Z 30**CTDATA TABNAMESBILLY BOB 90JOE 050ABBEY 015ZOE 095GARTH 045

BeschreibungLaufzeit-Tabellendefinitionen beginnen mit den RPG D-Spezifi-kationen. Der Name der Tabelle, der mitTAB beginnen muss, dieGröße und die Attribute jedes Elements, die Maximalzahl an Ele-menten in der Tabelle und die Anzahl der Elemente pro Source-Zeile werden alle in der D-Spezifikation definiert. Abb. 9.4 zeigteine nähere Ansicht der D-Spezifikation für die TabelleTABNAMES.

DNAME++++++++++ETDsFrom+++To/L+++Idc.Keywords+++++++++++++++++++++ DTABNames S 20 Dim(5) CTDATA Perrcd(1)

g g

FQPRINT 0 F 132 PrinterDTABNames S 20 Dim(5) CTDATA Perrcd(1)DTABScore S 3 0 Dim(5) Alt(TABNames)D*DMyName S 20 Inz('Joe')*C MYNAME Lookup TABNames TABScore 90

C If *In90 = *0nC Except PrintitC EndIfC*C Eval *InLR = *0nC ReturnO*OQPRINT E Printit 1O TABNames 25O TABScore Z 30**CTDATABILLY BOB 90JOE 050ABBEY 015ZOE 095GARTH 045

Ein I.T.P. -Fachbuch

Datenfelder, Tabellen, und Datenstrukturen Kapitel 9 – Seite 9

Ein I.T.P. -Fachbuch

Datenfelder, Tabellen, und Datenstrukturen Kapitel 9 – Seite 9

Ein I.T.P. -Fachbuch

Datenfelder, Tabellen, und Datenstrukturen Kapitel 9 – Seite 9

Ein I.T.P. -Fachbuch

Datenfelder, Tabellen, und Datenstrukturen Kapitel 9 – Seite 9

Abb. 9.4: Definition D-Spezifikation für Tabelle TABNAMES

Die D-Spezifikation, die TABNAMES definiert, deklariert jedesElement mit einer Länge von 20 Zeichen. Das SchlüsselwortDIM gibt die maximale Anzahl an Elementen in der Tabelle als 5an.

Das Schlüsselwort CTDATA spezifiziert, dass die Tabelle mitDaten geladen wird, die zur Laufzeit am Ende des Quellpro-gramms eingebettet werden.

Das Schlüsselwort PERRCD definiert, wie viele Elemente derTabelle aus jeder Zeile Quelldatensätze geladen werden. DerStandardwert ist 1; somit wird jedes Element der Tabelle aus ei-nem Quelldatensatz gelesen.

In diesem Beispiel wird eine verknüpfte Tabelle verwendet, umPrüfungsergebnisse für jeden Schüler in der Tabelle Schülerna-me zu speichern. Abb. 9.5 zeigt die D-Spezifikation für die ver-knüpfte Tabelle TABSCORE.

DNAME++++++++++ETDsFrom+++To/L+++Idc.Keywords+++++++++++++++++++++ DTABScore S 3 0 Dim(50) Alt(TABNames)

Abb. 9.5: D-Spezifikation für alternative Tabelle TABScore

Die D-Spezifikation, die TABSCORE definiert, deklariert jedesElement als dreistelligen numerischen Wert mit null dezimalenPositionen. Das Schlüsselwort ALT definiert die Tabelle als alter-native Tabelle von TABNAMES.

DNAME++++++++++ETDsFrom+++To/L+++Idc.Keywords+++++++++++++++++++++ DTABNames S 20 Dim(5) CTDATA Perrcd(1)

DNAME++++++++++ETDsFrom+++To/L+++Idc.Keywords+++++++++++++++++++++ DTABScore S 3 0 Dim(50) Alt(TABNames)

Abb. 9.4: Definition D-Spezifikation für Tabelle TABNAMES

Die D-Spezifikation, die TABNAMES definiert, deklariert jedesElement mit einer Länge von 20 Zeichen. Das SchlüsselwortDIM gibt die maximale Anzahl an Elementen in der Tabelle als 5an.

Das Schlüsselwort CTDATA spezifiziert, dass die Tabelle mitDaten geladen wird, die zur Laufzeit am Ende des Quellpro-gramms eingebettet werden.

Das Schlüsselwort PERRCD definiert, wie viele Elemente derTabelle aus jeder Zeile Quelldatensätze geladen werden. DerStandardwert ist 1; somit wird jedes Element der Tabelle aus ei-nem Quelldatensatz gelesen.

In diesem Beispiel wird eine verknüpfte Tabelle verwendet, umPrüfungsergebnisse für jeden Schüler in der Tabelle Schülerna-me zu speichern. Abb. 9.5 zeigt die D-Spezifikation für die ver-knüpfte Tabelle TABSCORE.

DNAME++++++++++ETDsFrom+++To/L+++Idc.Keywords+++++++++++++++++++++ DTABScore S 3 0 Dim(50) Alt(TABNames)

Abb. 9.5: D-Spezifikation für alternative Tabelle TABScore

Die D-Spezifikation, die TABSCORE definiert, deklariert jedesElement als dreistelligen numerischen Wert mit null dezimalenPositionen. Das Schlüsselwort ALT definiert die Tabelle als alter-native Tabelle von TABNAMES.

DNAME++++++++++ETDsFrom+++To/L+++Idc.Keywords+++++++++++++++++++++ DTABNames S 20 Dim(5) CTDATA Perrcd(1)

DNAME++++++++++ETDsFrom+++To/L+++Idc.Keywords+++++++++++++++++++++ DTABScore S 3 0 Dim(50) Alt(TABNames)

Abb. 9.4: Definition D-Spezifikation für Tabelle TABNAMES

Die D-Spezifikation, die TABNAMES definiert, deklariert jedesElement mit einer Länge von 20 Zeichen. Das SchlüsselwortDIM gibt die maximale Anzahl an Elementen in der Tabelle als 5an.

Das Schlüsselwort CTDATA spezifiziert, dass die Tabelle mitDaten geladen wird, die zur Laufzeit am Ende des Quellpro-gramms eingebettet werden.

Das Schlüsselwort PERRCD definiert, wie viele Elemente derTabelle aus jeder Zeile Quelldatensätze geladen werden. DerStandardwert ist 1; somit wird jedes Element der Tabelle aus ei-nem Quelldatensatz gelesen.

In diesem Beispiel wird eine verknüpfte Tabelle verwendet, umPrüfungsergebnisse für jeden Schüler in der Tabelle Schülerna-me zu speichern. Abb. 9.5 zeigt die D-Spezifikation für die ver-knüpfte Tabelle TABSCORE.

DNAME++++++++++ETDsFrom+++To/L+++Idc.Keywords+++++++++++++++++++++ DTABScore S 3 0 Dim(50) Alt(TABNames)

Abb. 9.5: D-Spezifikation für alternative Tabelle TABScore

Die D-Spezifikation, die TABSCORE definiert, deklariert jedesElement als dreistelligen numerischen Wert mit null dezimalenPositionen. Das Schlüsselwort ALT definiert die Tabelle als alter-native Tabelle von TABNAMES.

DNAME++++++++++ETDsFrom+++To/L+++Idc.Keywords+++++++++++++++++++++ DTABNames S 20 Dim(5) CTDATA Perrcd(1)

DNAME++++++++++ETDsFrom+++To/L+++Idc.Keywords+++++++++++++++++++++ DTABScore S 3 0 Dim(50) Alt(TABNames)

Abb. 9.4: Definition D-Spezifikation für Tabelle TABNAMES

Die D-Spezifikation, die TABNAMES definiert, deklariert jedesElement mit einer Länge von 20 Zeichen. Das SchlüsselwortDIM gibt die maximale Anzahl an Elementen in der Tabelle als 5an.

Das Schlüsselwort CTDATA spezifiziert, dass die Tabelle mitDaten geladen wird, die zur Laufzeit am Ende des Quellpro-gramms eingebettet werden.

Das Schlüsselwort PERRCD definiert, wie viele Elemente derTabelle aus jeder Zeile Quelldatensätze geladen werden. DerStandardwert ist 1; somit wird jedes Element der Tabelle aus ei-nem Quelldatensatz gelesen.

In diesem Beispiel wird eine verknüpfte Tabelle verwendet, umPrüfungsergebnisse für jeden Schüler in der Tabelle Schülerna-me zu speichern. Abb. 9.5 zeigt die D-Spezifikation für die ver-knüpfte Tabelle TABSCORE.

DNAME++++++++++ETDsFrom+++To/L+++Idc.Keywords+++++++++++++++++++++ DTABScore S 3 0 Dim(50) Alt(TABNames)

Abb. 9.5: D-Spezifikation für alternative Tabelle TABScore

Die D-Spezifikation, die TABSCORE definiert, deklariert jedesElement als dreistelligen numerischen Wert mit null dezimalenPositionen. Das Schlüsselwort ALT definiert die Tabelle als alter-native Tabelle von TABNAMES.

DNAME++++++++++ETDsFrom+++To/L+++Idc.Keywords+++++++++++++++++++++ DTABNames S 20 Dim(5) CTDATA Perrcd(1)

DNAME++++++++++ETDsFrom+++To/L+++Idc.Keywords+++++++++++++++++++++ DTABScore S 3 0 Dim(50) Alt(TABNames)

Ein I.T.P. -Fachbuch

Seite 10 – Kapitel 9 Handbuch für AS/400-Programmierer

Ein I.T.P. -Fachbuch

Seite 10 – Kapitel 9 Handbuch für AS/400-Programmierer

Ein I.T.P. -Fachbuch

Seite 10 – Kapitel 9 Handbuch für AS/400-Programmierer

Ein I.T.P. -Fachbuch

Seite 10 – Kapitel 9 Handbuch für AS/400-Programmierer

Weder PERRCD noch CDTATA kann in der Definition einer al-ternativen Tabelle angegeben werden. Die Daten, die für das La-den der alternativen Tabelle verwendet werden, werden automa-tisch aus dem gleichen Quelldatensatz wie die Haupttabelle gela-den.

Diese Quellenteildatei enthält am Ende die Daten, mit denen dieTabellen geladen werden. Abb. 9.6 zeigt die Tabellendaten.

**CTDATA TABNAMESBILLY BOB 90JOE 050ABBEY 015ZOE 095GARTH 045

Abb. 9.6: Daten für Tabelle TABNames und alternative TabelleTABScore erstellen

Den Tabellendaten wurde **CTDATA vorangestellt. Dieser Ein-trag enthält optional den Namen der Tabelle, zu der die Datengehören. Wenn der Tabellenname nicht angegeben wird, muss dieReihenfolge, in der die Tabellen definiert werden, der Anord-nung der Tabellendaten am Ende des Sourceelements entspre-chen. Um eine bessere Lesbarkeit zu erreichen, ist es immer einegute Idee, den Tabellennamen nach dem CTDATA-Eintrag anzu-geben. Jeder Quelldatensatz, der **CTDATA folgt, beginnt beiPosition eins.

Innerhalb der Programmlogik wird eine Suche nach einem be-stimmten Namen in der Tabelle mit den Schülernamen ausge-führt. Abb. 9.7 zeigt diese Suchoperation:

CCL0N01FACTOR1+++++OPCODE&EXTFACTOR2++++++RESULT++++++LEN++D+HILOEQ

**CTDATA TABNAMESBILLY BOB 90JOE 050ABBEY 015ZOE 095GARTH 045

Weder PERRCD noch CDTATA kann in der Definition einer al-ternativen Tabelle angegeben werden. Die Daten, die für das La-den der alternativen Tabelle verwendet werden, werden automa-tisch aus dem gleichen Quelldatensatz wie die Haupttabelle gela-den.

Diese Quellenteildatei enthält am Ende die Daten, mit denen dieTabellen geladen werden. Abb. 9.6 zeigt die Tabellendaten.

**CTDATA TABNAMESBILLY BOB 90JOE 050ABBEY 015ZOE 095GARTH 045

Abb. 9.6: Daten für Tabelle TABNames und alternative TabelleTABScore erstellen

Den Tabellendaten wurde **CTDATA vorangestellt. Dieser Ein-trag enthält optional den Namen der Tabelle, zu der die Datengehören. Wenn der Tabellenname nicht angegeben wird, muss dieReihenfolge, in der die Tabellen definiert werden, der Anord-nung der Tabellendaten am Ende des Sourceelements entspre-chen. Um eine bessere Lesbarkeit zu erreichen, ist es immer einegute Idee, den Tabellennamen nach dem CTDATA-Eintrag anzu-geben. Jeder Quelldatensatz, der **CTDATA folgt, beginnt beiPosition eins.

Innerhalb der Programmlogik wird eine Suche nach einem be-stimmten Namen in der Tabelle mit den Schülernamen ausge-führt. Abb. 9.7 zeigt diese Suchoperation:

CCL0N01FACTOR1+++++OPCODE&EXTFACTOR2++++++RESULT++++++LEN++D+HILOEQ

**CTDATA TABNAMESBILLY BOB 90JOE 050ABBEY 015ZOE 095GARTH 045

Weder PERRCD noch CDTATA kann in der Definition einer al-ternativen Tabelle angegeben werden. Die Daten, die für das La-den der alternativen Tabelle verwendet werden, werden automa-tisch aus dem gleichen Quelldatensatz wie die Haupttabelle gela-den.

Diese Quellenteildatei enthält am Ende die Daten, mit denen dieTabellen geladen werden. Abb. 9.6 zeigt die Tabellendaten.

**CTDATA TABNAMESBILLY BOB 90JOE 050ABBEY 015ZOE 095GARTH 045

Abb. 9.6: Daten für Tabelle TABNames und alternative TabelleTABScore erstellen

Den Tabellendaten wurde **CTDATA vorangestellt. Dieser Ein-trag enthält optional den Namen der Tabelle, zu der die Datengehören. Wenn der Tabellenname nicht angegeben wird, muss dieReihenfolge, in der die Tabellen definiert werden, der Anord-nung der Tabellendaten am Ende des Sourceelements entspre-chen. Um eine bessere Lesbarkeit zu erreichen, ist es immer einegute Idee, den Tabellennamen nach dem CTDATA-Eintrag anzu-geben. Jeder Quelldatensatz, der **CTDATA folgt, beginnt beiPosition eins.

Innerhalb der Programmlogik wird eine Suche nach einem be-stimmten Namen in der Tabelle mit den Schülernamen ausge-führt. Abb. 9.7 zeigt diese Suchoperation:

CCL0N01FACTOR1+++++OPCODE&EXTFACTOR2++++++RESULT++++++LEN++D+HILOEQ

**CTDATA TABNAMESBILLY BOB 90JOE 050ABBEY 015ZOE 095GARTH 045

Weder PERRCD noch CDTATA kann in der Definition einer al-ternativen Tabelle angegeben werden. Die Daten, die für das La-den der alternativen Tabelle verwendet werden, werden automa-tisch aus dem gleichen Quelldatensatz wie die Haupttabelle gela-den.

Diese Quellenteildatei enthält am Ende die Daten, mit denen dieTabellen geladen werden. Abb. 9.6 zeigt die Tabellendaten.

**CTDATA TABNAMESBILLY BOB 90JOE 050ABBEY 015ZOE 095GARTH 045

Abb. 9.6: Daten für Tabelle TABNames und alternative TabelleTABScore erstellen

Den Tabellendaten wurde **CTDATA vorangestellt. Dieser Ein-trag enthält optional den Namen der Tabelle, zu der die Datengehören. Wenn der Tabellenname nicht angegeben wird, muss dieReihenfolge, in der die Tabellen definiert werden, der Anord-nung der Tabellendaten am Ende des Sourceelements entspre-chen. Um eine bessere Lesbarkeit zu erreichen, ist es immer einegute Idee, den Tabellennamen nach dem CTDATA-Eintrag anzu-geben. Jeder Quelldatensatz, der **CTDATA folgt, beginnt beiPosition eins.

Innerhalb der Programmlogik wird eine Suche nach einem be-stimmten Namen in der Tabelle mit den Schülernamen ausge-führt. Abb. 9.7 zeigt diese Suchoperation:

CCL0N01FACTOR1+++++OPCODE&EXTFACTOR2++++++RESULT++++++LEN++D+HILOEQ

**CTDATA TABNAMESBILLY BOB 90JOE 050ABBEY 015ZOE 095GARTH 045

Ein I.T.P. -Fachbuch

Datenfelder, Tabellen, und Datenstrukturen Kapitel 9 – Seite 11

Ein I.T.P. -Fachbuch

Datenfelder, Tabellen, und Datenstrukturen Kapitel 9 – Seite 11

Ein I.T.P. -Fachbuch

Datenfelder, Tabellen, und Datenstrukturen Kapitel 9 – Seite 11

Ein I.T.P. -Fachbuch

Datenfelder, Tabellen, und Datenstrukturen Kapitel 9 – Seite 11

C MYNAME LOOKUP TABNAMES TABSCORE 90C IF *IN90 = *ONC EXCEPT PRINTITC ENDIF

Abb. 9.7: ILE RPG-Suchoperation

Der gesuchte Schülername (der im Feld MYNAME enthalten ist)wird bei der Suchoperation als Faktor eins verwendet. Die Sucheerfolgt in der Tabelle TABNames. Wenn dabei der Schülernamegefunden wird, wird Indikator 90 aktiviert und das entsprechendeElement in Tabelle TABScore zurückgegeben. Die verknüpfteTabelle TABScore enthält den entsprechenden dreistelligen Test-wert.

BeispielZur Kompilierungszeit ladende Tabelle inRPG/400 verwendenDiejenigen unter Ihnen, die noch nicht mit ILE RPG in ihrer Ent-wicklungsumgebung arbeiten, können Tabellen, die zur Kompi-lierungszeit geladen werden, auch in RPG/400 verwenden. Li-sting 9.2 zeigt die Source des Programms RPG002R.

CCL0N01FACTOR1+++++OPCODE&EXTFACTOR2++++++RESULT++++++LEN++D+HILOEQC MYNAME LOOKUP TABNAMES TABSCORE 90C IF *IN90 = *ONC EXCEPT PRINTITC ENDIF

C MYNAME LOOKUP TABNAMES TABSCORE 90C IF *IN90 = *ONC EXCEPT PRINTITC ENDIF

Abb. 9.7: ILE RPG-Suchoperation

Der gesuchte Schülername (der im Feld MYNAME enthalten ist)wird bei der Suchoperation als Faktor eins verwendet. Die Sucheerfolgt in der Tabelle TABNames. Wenn dabei der Schülernamegefunden wird, wird Indikator 90 aktiviert und das entsprechendeElement in Tabelle TABScore zurückgegeben. Die verknüpfteTabelle TABScore enthält den entsprechenden dreistelligen Test-wert.

BeispielZur Kompilierungszeit ladende Tabelle inRPG/400 verwendenDiejenigen unter Ihnen, die noch nicht mit ILE RPG in ihrer Ent-wicklungsumgebung arbeiten, können Tabellen, die zur Kompi-lierungszeit geladen werden, auch in RPG/400 verwenden. Li-sting 9.2 zeigt die Source des Programms RPG002R.

CCL0N01FACTOR1+++++OPCODE&EXTFACTOR2++++++RESULT++++++LEN++D+HILOEQC MYNAME LOOKUP TABNAMES TABSCORE 90C IF *IN90 = *ONC EXCEPT PRINTITC ENDIF

C MYNAME LOOKUP TABNAMES TABSCORE 90C IF *IN90 = *ONC EXCEPT PRINTITC ENDIF

Abb. 9.7: ILE RPG-Suchoperation

Der gesuchte Schülername (der im Feld MYNAME enthalten ist)wird bei der Suchoperation als Faktor eins verwendet. Die Sucheerfolgt in der Tabelle TABNames. Wenn dabei der Schülernamegefunden wird, wird Indikator 90 aktiviert und das entsprechendeElement in Tabelle TABScore zurückgegeben. Die verknüpfteTabelle TABScore enthält den entsprechenden dreistelligen Test-wert.

BeispielZur Kompilierungszeit ladende Tabelle inRPG/400 verwendenDiejenigen unter Ihnen, die noch nicht mit ILE RPG in ihrer Ent-wicklungsumgebung arbeiten, können Tabellen, die zur Kompi-lierungszeit geladen werden, auch in RPG/400 verwenden. Li-sting 9.2 zeigt die Source des Programms RPG002R.

CCL0N01FACTOR1+++++OPCODE&EXTFACTOR2++++++RESULT++++++LEN++D+HILOEQC MYNAME LOOKUP TABNAMES TABSCORE 90C IF *IN90 = *ONC EXCEPT PRINTITC ENDIF

C MYNAME LOOKUP TABNAMES TABSCORE 90C IF *IN90 = *ONC EXCEPT PRINTITC ENDIF

Abb. 9.7: ILE RPG-Suchoperation

Der gesuchte Schülername (der im Feld MYNAME enthalten ist)wird bei der Suchoperation als Faktor eins verwendet. Die Sucheerfolgt in der Tabelle TABNames. Wenn dabei der Schülernamegefunden wird, wird Indikator 90 aktiviert und das entsprechendeElement in Tabelle TABScore zurückgegeben. Die verknüpfteTabelle TABScore enthält den entsprechenden dreistelligen Test-wert.

BeispielZur Kompilierungszeit ladende Tabelle inRPG/400 verwendenDiejenigen unter Ihnen, die noch nicht mit ILE RPG in ihrer Ent-wicklungsumgebung arbeiten, können Tabellen, die zur Kompi-lierungszeit geladen werden, auch in RPG/400 verwenden. Li-sting 9.2 zeigt die Source des Programms RPG002R.

CCL0N01FACTOR1+++++OPCODE&EXTFACTOR2++++++RESULT++++++LEN++D+HILOEQC MYNAME LOOKUP TABNAMES TABSCORE 90C IF *IN90 = *ONC EXCEPT PRINTITC ENDIF

Ein I.T.P. -Fachbuch

Seite 12 – Kapitel 9 Handbuch für AS/400-Programmierer

Ein I.T.P. -Fachbuch

Seite 12 – Kapitel 9 Handbuch für AS/400-Programmierer

Ein I.T.P. -Fachbuch

Seite 12 – Kapitel 9 Handbuch für AS/400-Programmierer

Ein I.T.P. -Fachbuch

Seite 12 – Kapitel 9 Handbuch für AS/400-Programmierer

Listing 9.2: RPG/400-Beispiel mit Tabellen, die zur Kompilie-rungszeit geladen werden

FQPRINT 0 F 132 OF PrinterE TABNAM 1 5 20 TABSCO 3 0*C MOVEL’Joe’ MYNAME 20C MYNAME LOKUPTABNAM TABSCO 90C *IN90IFEQ *ONC EXCPTPRINTC ENDIF*C SETON LRC RETRN*OQPRINT E 1 PRINTO TABNAM 25O TABSCOZ 30**BILLY BOB 090JOE 050ABBEY 015ZOE 095GARTH 045

Übersicht

In diesem Beispiel wird eine zur Kompilierungszeit ladende Ta-belle mit einer entsprechenden verknüpften Tabelle verwendet,um Schülernamen und die damit verknüpften Testergebnisse auf-zunehmen. Unter Verwendung des Prüfungsergebnisses einesSchülers wird eine Suche in der Tabelle nach einem bestimmtenSchülernamen durchgeführt. Schülername und Prüfungsergeb-nis werden anschließend ausgedruckt.

Beschreibung

Der wichtigste Unterschied zwischen den RPG/400- und ILERPG-Versionen besteht darin, dass in RPG/400 D-Spezifikatio-

FQPRINT 0 F 132 OF PrinterE TABNAM 1 5 20 TABSCO 3 0*C MOVEL'Joe' MYNAME 20C MYNAME LOKUPTABNAM TABSCO 90C *IN90 IFEQ *ONC EXCPTPRINTC ENDIF*C SETON LRC RETRN*OQPRINT E 1 PRINTO TABNAM 25O TABSCOZ 30**BILLY BOB 090JOE 050ABBEY 015ZOE 095GARTH 045

Listing 9.2: RPG/400-Beispiel mit Tabellen, die zur Kompilie-rungszeit geladen werden

FQPRINT 0 F 132 OF PrinterE TABNAM 1 5 20 TABSCO 3 0*C MOVEL’Joe’ MYNAME 20C MYNAME LOKUPTABNAM TABSCO 90C *IN90IFEQ *ONC EXCPTPRINTC ENDIF*C SETON LRC RETRN*OQPRINT E 1 PRINTO TABNAM 25O TABSCOZ 30**BILLY BOB 090JOE 050ABBEY 015ZOE 095GARTH 045

Übersicht

In diesem Beispiel wird eine zur Kompilierungszeit ladende Ta-belle mit einer entsprechenden verknüpften Tabelle verwendet,um Schülernamen und die damit verknüpften Testergebnisse auf-zunehmen. Unter Verwendung des Prüfungsergebnisses einesSchülers wird eine Suche in der Tabelle nach einem bestimmtenSchülernamen durchgeführt. Schülername und Prüfungsergeb-nis werden anschließend ausgedruckt.

Beschreibung

Der wichtigste Unterschied zwischen den RPG/400- und ILERPG-Versionen besteht darin, dass in RPG/400 D-Spezifikatio-

FQPRINT 0 F 132 OF PrinterE TABNAM 1 5 20 TABSCO 3 0*C MOVEL'Joe' MYNAME 20C MYNAME LOKUPTABNAM TABSCO 90C *IN90 IFEQ *ONC EXCPTPRINTC ENDIF*C SETON LRC RETRN*OQPRINT E 1 PRINTO TABNAM 25O TABSCOZ 30**BILLY BOB 090JOE 050ABBEY 015ZOE 095GARTH 045

Listing 9.2: RPG/400-Beispiel mit Tabellen, die zur Kompilie-rungszeit geladen werden

FQPRINT 0 F 132 OF PrinterE TABNAM 1 5 20 TABSCO 3 0*C MOVEL’Joe’ MYNAME 20C MYNAME LOKUPTABNAM TABSCO 90C *IN90IFEQ *ONC EXCPTPRINTC ENDIF*C SETON LRC RETRN*OQPRINT E 1 PRINTO TABNAM 25O TABSCOZ 30**BILLY BOB 090JOE 050ABBEY 015ZOE 095GARTH 045

Übersicht

In diesem Beispiel wird eine zur Kompilierungszeit ladende Ta-belle mit einer entsprechenden verknüpften Tabelle verwendet,um Schülernamen und die damit verknüpften Testergebnisse auf-zunehmen. Unter Verwendung des Prüfungsergebnisses einesSchülers wird eine Suche in der Tabelle nach einem bestimmtenSchülernamen durchgeführt. Schülername und Prüfungsergeb-nis werden anschließend ausgedruckt.

BeschreibungDer wichtigste Unterschied zwischen den RPG/400- und ILERPG-Versionen besteht darin, dass in RPG/400 D-Spezifikatio-

FQPRINT 0 F 132 OF PrinterE TABNAM 1 5 20 TABSCO 3 0*C MOVEL'Joe' MYNAME 20C MYNAME LOKUPTABNAM TABSCO 90C *IN90 IFEQ *ONC EXCPTPRINTC ENDIF*C SETON LRC RETRN*OQPRINT E 1 PRINTO TABNAM 25O TABSCOZ 30**BILLY BOB 090JOE 050ABBEY 015ZOE 095GARTH 045

Listing 9.2: RPG/400-Beispiel mit Tabellen, die zur Kompilie-rungszeit geladen werden

FQPRINT 0 F 132 OF PrinterE TABNAM 1 5 20 TABSCO 3 0*C MOVEL’Joe’ MYNAME 20C MYNAME LOKUPTABNAM TABSCO 90C *IN90IFEQ *ONC EXCPTPRINTC ENDIF*C SETON LRC RETRN*OQPRINT E 1 PRINTO TABNAM 25O TABSCOZ 30**BILLY BOB 090JOE 050ABBEY 015ZOE 095GARTH 045

Übersicht

In diesem Beispiel wird eine zur Kompilierungszeit ladende Ta-belle mit einer entsprechenden verknüpften Tabelle verwendet,um Schülernamen und die damit verknüpften Testergebnisse auf-zunehmen. Unter Verwendung des Prüfungsergebnisses einesSchülers wird eine Suche in der Tabelle nach einem bestimmtenSchülernamen durchgeführt. Schülername und Prüfungsergeb-nis werden anschließend ausgedruckt.

BeschreibungDer wichtigste Unterschied zwischen den RPG/400- und ILERPG-Versionen besteht darin, dass in RPG/400 D-Spezifikatio-

FQPRINT 0 F 132 OF PrinterE TABNAM 1 5 20 TABSCO 3 0*C MOVEL'Joe' MYNAME 20C MYNAME LOKUPTABNAM TABSCO 90C *IN90 IFEQ *ONC EXCPTPRINTC ENDIF*C SETON LRC RETRN*OQPRINT E 1 PRINTO TABNAM 25O TABSCOZ 30**BILLY BOB 090JOE 050ABBEY 015ZOE 095GARTH 045

Ein I.T.P. -Fachbuch

Datenfelder, Tabellen, und Datenstrukturen Kapitel 9 – Seite 13

Ein I.T.P. -Fachbuch

Datenfelder, Tabellen, und Datenstrukturen Kapitel 9 – Seite 13

Ein I.T.P. -Fachbuch

Datenfelder, Tabellen, und Datenstrukturen Kapitel 9 – Seite 13

Ein I.T.P. -Fachbuch

Datenfelder, Tabellen, und Datenstrukturen Kapitel 9 – Seite 13

nen fehlen. In RPG/400 werden die Tabellen mit Erweiterungs-tags (E) definiert. Ebenso müssen die Tabellennamen für RPG/400 gekürzt werden. Abb. 9.8 zeigt eine ausführliche Ansicht desE-Spezifikationseintrags für die Tabelle TABNAM.

E FromfileToFile++Name++N/rN/tbLenPDSArrnamLenPDSComments++++ E TABNAM 1 5 20 TABSCO 3 0

Abb. 9.8: E-Definition für Tabelle TABNAM und alternativeTabelle TABSCO

"E“ definiert TABNAM als Primärtabelle und TABSCO als ent-sprechende alternative Tabelle. Die 1 in Position 35 teilt Ihnenmit, dass die Primärtabelle ein Element pro Quelldatensatz lädt.Position 39 definiert die Tabelle mit einer Höchstzahl an fünfElementen. Jedes Element in TABNAM besteht aus einem 20-Zeichen-Feld während jedes Element in TABSCO aus einemdreistelligen numerischen Feld ohne dezimale Stellen besteht.

**BILLY BOB 90JOE 050ABBEY 015ZOE 095GARTH 045

Abb. 9.9: Daten für Tabelle TABNAM und alternative TabelleTABSCO

Der Gruppierung der Quelldatensätze müssen zwei Sternchen(**) vorangestellt werden. Jeder Quelldatensatz beginnt in Posi-tion eins des Quellcodes.

Innerhalb der Programmlogik wird eine Suche nach einem be-stimmten Namen in der Tabelle mit Schülernamen ausgeführt.Abb. 9.10 zeigt die Suchoperation.

E FromfileToFile++Name++N/rN/tbLenPDSArrnamLenPDSComments++++ E TABNAM 1 5 20 TABSCO 3 0

**BILLY BOB 90JOE 050ABBEY 015ZOE 095GARTH 045

nen fehlen. In RPG/400 werden die Tabellen mit Erweiterungs-tags (E) definiert. Ebenso müssen die Tabellennamen für RPG/400 gekürzt werden. Abb. 9.8 zeigt eine ausführliche Ansicht desE-Spezifikationseintrags für die Tabelle TABNAM.

E FromfileToFile++Name++N/rN/tbLenPDSArrnamLenPDSComments++++ E TABNAM 1 5 20 TABSCO 3 0

Abb. 9.8: E-Definition für Tabelle TABNAM und alternativeTabelle TABSCO

"E“ definiert TABNAM als Primärtabelle und TABSCO als ent-sprechende alternative Tabelle. Die 1 in Position 35 teilt Ihnenmit, dass die Primärtabelle ein Element pro Quelldatensatz lädt.Position 39 definiert die Tabelle mit einer Höchstzahl an fünfElementen. Jedes Element in TABNAM besteht aus einem 20-Zeichen-Feld während jedes Element in TABSCO aus einemdreistelligen numerischen Feld ohne dezimale Stellen besteht.

**BILLY BOB 90JOE 050ABBEY 015ZOE 095GARTH 045

Abb. 9.9: Daten für Tabelle TABNAM und alternative TabelleTABSCO

Der Gruppierung der Quelldatensätze müssen zwei Sternchen(**) vorangestellt werden. Jeder Quelldatensatz beginnt in Posi-tion eins des Quellcodes.

Innerhalb der Programmlogik wird eine Suche nach einem be-stimmten Namen in der Tabelle mit Schülernamen ausgeführt.Abb. 9.10 zeigt die Suchoperation.

E FromfileToFile++Name++N/rN/tbLenPDSArrnamLenPDSComments++++ E TABNAM 1 5 20 TABSCO 3 0

**BILLY BOB 90JOE 050ABBEY 015ZOE 095GARTH 045

nen fehlen. In RPG/400 werden die Tabellen mit Erweiterungs-tags (E) definiert. Ebenso müssen die Tabellennamen für RPG/400 gekürzt werden. Abb. 9.8 zeigt eine ausführliche Ansicht desE-Spezifikationseintrags für die Tabelle TABNAM.

E FromfileToFile++Name++N/rN/tbLenPDSArrnamLenPDSComments++++ E TABNAM 1 5 20 TABSCO 3 0

Abb. 9.8: E-Definition für Tabelle TABNAM und alternativeTabelle TABSCO

"E“ definiert TABNAM als Primärtabelle und TABSCO als ent-sprechende alternative Tabelle. Die 1 in Position 35 teilt Ihnenmit, dass die Primärtabelle ein Element pro Quelldatensatz lädt.Position 39 definiert die Tabelle mit einer Höchstzahl an fünfElementen. Jedes Element in TABNAM besteht aus einem 20-Zeichen-Feld während jedes Element in TABSCO aus einemdreistelligen numerischen Feld ohne dezimale Stellen besteht.

**BILLY BOB 90JOE 050ABBEY 015ZOE 095GARTH 045

Abb. 9.9: Daten für Tabelle TABNAM und alternative TabelleTABSCO

Der Gruppierung der Quelldatensätze müssen zwei Sternchen(**) vorangestellt werden. Jeder Quelldatensatz beginnt in Posi-tion eins des Quellcodes.

Innerhalb der Programmlogik wird eine Suche nach einem be-stimmten Namen in der Tabelle mit Schülernamen ausgeführt.Abb. 9.10 zeigt die Suchoperation.

E FromfileToFile++Name++N/rN/tbLenPDSArrnamLenPDSComments++++ E TABNAM 1 5 20 TABSCO 3 0

**BILLY BOB 90JOE 050ABBEY 015ZOE 095GARTH 045

nen fehlen. In RPG/400 werden die Tabellen mit Erweiterungs-tags (E) definiert. Ebenso müssen die Tabellennamen für RPG/400 gekürzt werden. Abb. 9.8 zeigt eine ausführliche Ansicht desE-Spezifikationseintrags für die Tabelle TABNAM.

E FromfileToFile++Name++N/rN/tbLenPDSArrnamLenPDSComments++++ E TABNAM 1 5 20 TABSCO 3 0

Abb. 9.8: E-Definition für Tabelle TABNAM und alternativeTabelle TABSCO

"E“ definiert TABNAM als Primärtabelle und TABSCO als ent-sprechende alternative Tabelle. Die 1 in Position 35 teilt Ihnenmit, dass die Primärtabelle ein Element pro Quelldatensatz lädt.Position 39 definiert die Tabelle mit einer Höchstzahl an fünfElementen. Jedes Element in TABNAM besteht aus einem 20-Zeichen-Feld während jedes Element in TABSCO aus einemdreistelligen numerischen Feld ohne dezimale Stellen besteht.

**BILLY BOB 90JOE 050ABBEY 015ZOE 095GARTH 045

Abb. 9.9: Daten für Tabelle TABNAM und alternative TabelleTABSCO

Der Gruppierung der Quelldatensätze müssen zwei Sternchen(**) vorangestellt werden. Jeder Quelldatensatz beginnt in Posi-tion eins des Quellcodes.

Innerhalb der Programmlogik wird eine Suche nach einem be-stimmten Namen in der Tabelle mit Schülernamen ausgeführt.Abb. 9.10 zeigt die Suchoperation.

E FromfileToFile++Name++N/rN/tbLenPDSArrnamLenPDSComments++++ E TABNAM 1 5 20 TABSCO 3 0

**BILLY BOB 90JOE 050ABBEY 015ZOE 095GARTH 045

Ein I.T.P. -Fachbuch

Seite 14 – Kapitel 9 Handbuch für AS/400-Programmierer

Ein I.T.P. -Fachbuch

Seite 14 – Kapitel 9 Handbuch für AS/400-Programmierer

Ein I.T.P. -Fachbuch

Seite 14 – Kapitel 9 Handbuch für AS/400-Programmierer

Ein I.T.P. -Fachbuch

Seite 14 – Kapitel 9 Handbuch für AS/400-Programmierer

CL=NO1NO2NO3 Factor1+++ OpcdeFactor2+++ResultLenDHHiLoEqComments++++ C MOVEL’Joe’ MYNAME 20 C MYNAME LOKUPTABNAM TABSCO 90 C *IN90IFEQ *On C EXCPTPRINT C ENDIF

Abb. 9.10: RPG/400 Suchoperation

Der gesuchte Schülername (der im Feld MYNAME enthalten ist)wird bei der Suchoperation als Faktor eins verwendet. Die Sucheerfolgt in der Tabelle TABNAM. Wenn dabei der Schülernamegefunden wird, wird Indikator 90 aktiviert und das entsprechendeElement in Tabelle TABSCORE zurückgegeben. Die verknüpfteTabelle, TABSCO, enthält das entsprechende dreistellige Prü-fungsergebnis.

BeispielVor-Laufzeit-Tabellen in ILE RPGverwendenWie Sie sich sicherlich erinnern, werden Tabellendaten, die vorLaufzeit geladen werden, aus den Datensätzen einer Datenbank-datei abgerufen. Die Einträge werden kurz vor der Ausführungeines Programms geladen. Diese Tabellen sind eine gute Wahlbei Anwendungen, in denen erwartet wird, dass die Tabellenda-ten geändert werden. Wenn sich der Inhalt der Datei ändert, än-dern sich auch die Tabellendaten mit der nächsten Programmaus-führung.

Übersicht

Dieses Beispiel verwendet eine Vor-Laufzeit-Tabelle mit einerentsprechenden verknüpften Tabelle, um Schülernamen und die

CL=NO1NO2NO3Factor1+++OpcdeFactor2+++ResultLenDHHiLoEqComments++++ C MOVEL'Joe' MYNAME 20 C MYNAME LOKUPTABNAM TABSCO 90 C *IN90 IFEQ *On C EXCPTPRINT C ENDIF

CL=NO1NO2NO3 Factor1+++ OpcdeFactor2+++ResultLenDHHiLoEqComments++++ C MOVEL’Joe’ MYNAME 20 C MYNAME LOKUPTABNAM TABSCO 90 C *IN90IFEQ *On C EXCPTPRINT C ENDIF

Abb. 9.10: RPG/400 Suchoperation

Der gesuchte Schülername (der im Feld MYNAME enthalten ist)wird bei der Suchoperation als Faktor eins verwendet. Die Sucheerfolgt in der Tabelle TABNAM. Wenn dabei der Schülernamegefunden wird, wird Indikator 90 aktiviert und das entsprechendeElement in Tabelle TABSCORE zurückgegeben. Die verknüpfteTabelle, TABSCO, enthält das entsprechende dreistellige Prü-fungsergebnis.

BeispielVor-Laufzeit-Tabellen in ILE RPGverwendenWie Sie sich sicherlich erinnern, werden Tabellendaten, die vorLaufzeit geladen werden, aus den Datensätzen einer Datenbank-datei abgerufen. Die Einträge werden kurz vor der Ausführungeines Programms geladen. Diese Tabellen sind eine gute Wahlbei Anwendungen, in denen erwartet wird, dass die Tabellenda-ten geändert werden. Wenn sich der Inhalt der Datei ändert, än-dern sich auch die Tabellendaten mit der nächsten Programmaus-führung.

Übersicht

Dieses Beispiel verwendet eine Vor-Laufzeit-Tabelle mit einerentsprechenden verknüpften Tabelle, um Schülernamen und die

CL=NO1NO2NO3Factor1+++OpcdeFactor2+++ResultLenDHHiLoEqComments++++ C MOVEL'Joe' MYNAME 20 C MYNAME LOKUPTABNAM TABSCO 90 C *IN90 IFEQ *On C EXCPTPRINT C ENDIF

CL=NO1NO2NO3 Factor1+++ OpcdeFactor2+++ResultLenDHHiLoEqComments++++ C MOVEL’Joe’ MYNAME 20 C MYNAME LOKUPTABNAM TABSCO 90 C *IN90IFEQ *On C EXCPTPRINT C ENDIF

Abb. 9.10: RPG/400 Suchoperation

Der gesuchte Schülername (der im Feld MYNAME enthalten ist)wird bei der Suchoperation als Faktor eins verwendet. Die Sucheerfolgt in der Tabelle TABNAM. Wenn dabei der Schülernamegefunden wird, wird Indikator 90 aktiviert und das entsprechendeElement in Tabelle TABSCORE zurückgegeben. Die verknüpfteTabelle, TABSCO, enthält das entsprechende dreistellige Prü-fungsergebnis.

BeispielVor-Laufzeit-Tabellen in ILE RPGverwendenWie Sie sich sicherlich erinnern, werden Tabellendaten, die vorLaufzeit geladen werden, aus den Datensätzen einer Datenbank-datei abgerufen. Die Einträge werden kurz vor der Ausführungeines Programms geladen. Diese Tabellen sind eine gute Wahlbei Anwendungen, in denen erwartet wird, dass die Tabellenda-ten geändert werden. Wenn sich der Inhalt der Datei ändert, än-dern sich auch die Tabellendaten mit der nächsten Programmaus-führung.

Übersicht

Dieses Beispiel verwendet eine Vor-Laufzeit-Tabelle mit einerentsprechenden verknüpften Tabelle, um Schülernamen und die

CL=NO1NO2NO3Factor1+++OpcdeFactor2+++ResultLenDHHiLoEqComments++++ C MOVEL'Joe' MYNAME 20 C MYNAME LOKUPTABNAM TABSCO 90 C *IN90 IFEQ *On C EXCPTPRINT C ENDIF

CL=NO1NO2NO3 Factor1+++ OpcdeFactor2+++ResultLenDHHiLoEqComments++++ C MOVEL’Joe’ MYNAME 20 C MYNAME LOKUPTABNAM TABSCO 90 C *IN90IFEQ *On C EXCPTPRINT C ENDIF

Abb. 9.10: RPG/400 Suchoperation

Der gesuchte Schülername (der im Feld MYNAME enthalten ist)wird bei der Suchoperation als Faktor eins verwendet. Die Sucheerfolgt in der Tabelle TABNAM. Wenn dabei der Schülernamegefunden wird, wird Indikator 90 aktiviert und das entsprechendeElement in Tabelle TABSCORE zurückgegeben. Die verknüpfteTabelle, TABSCO, enthält das entsprechende dreistellige Prü-fungsergebnis.

BeispielVor-Laufzeit-Tabellen in ILE RPGverwendenWie Sie sich sicherlich erinnern, werden Tabellendaten, die vorLaufzeit geladen werden, aus den Datensätzen einer Datenbank-datei abgerufen. Die Einträge werden kurz vor der Ausführungeines Programms geladen. Diese Tabellen sind eine gute Wahlbei Anwendungen, in denen erwartet wird, dass die Tabellenda-ten geändert werden. Wenn sich der Inhalt der Datei ändert, än-dern sich auch die Tabellendaten mit der nächsten Programmaus-führung.

Übersicht

Dieses Beispiel verwendet eine Vor-Laufzeit-Tabelle mit einerentsprechenden verknüpften Tabelle, um Schülernamen und die

CL=NO1NO2NO3Factor1+++OpcdeFactor2+++ResultLenDHHiLoEqComments++++ C MOVEL'Joe' MYNAME 20 C MYNAME LOKUPTABNAM TABSCO 90 C *IN90 IFEQ *On C EXCPTPRINT C ENDIF

Ein I.T.P. -Fachbuch

Datenfelder, Tabellen, und Datenstrukturen Kapitel 9 – Seite 15

Ein I.T.P. -Fachbuch

Datenfelder, Tabellen, und Datenstrukturen Kapitel 9 – Seite 15

Ein I.T.P. -Fachbuch

Datenfelder, Tabellen, und Datenstrukturen Kapitel 9 – Seite 15

Ein I.T.P. -Fachbuch

Datenfelder, Tabellen, und Datenstrukturen Kapitel 9 – Seite 15

entsprechenden Prüfungsergebnisse aufzunehmen. Die Tabellewird unter Angabe eines Prüfergebnisses nach einem bestimmtenSchülernamen durchsucht. Anschließend werden Schülernameund Prüfungsergebnis ausgedruckt. Listing 9.3, das die ILE RPGSource für RPG0003R zeigt, illustriert die Verwendung von vorLaufzeit ladenden Tabellen.

Listing 9.3: ILE RPG mit Vor- Laufzeit-Tabellen

FTestFile it F 22 DiskFQPRINT 0 F 132 PrinterDTABNames S 20 Dim(50) Perrcd(1) FromfileD (TestFile)DTABScore S 3 0 Dim(50) Alt(TABNames) ExtFmt(P)*D*DM yName S 20 Inz(‚Joe‘)*C MYNAME Lookup TABNames TABScore 90C If *In90 = *0nC Except PrintitC EndIf*C Eval *InLR = *0nC ReturnO*OQPRINT E Printit 1O TABNames 25O TABScore Z 30

BeschreibungDie Datenbankdatei, die verwendet wird, um die vor Laufzeit zuladende Tabelle abzurufen, wird in den Programmdatei-F-Spezi-fikationen definiert. Dieses Beispiel verwendet eine physischeDatei TESTFILE, die ein 20-Zeichen-Feld Schülername enthält,gefolgt von dem gepackten dreistelligen numerischen Prüfungs-ergebnis. Abb. 9.11. zeigt den F-Eintrag.

g

FTESTFILE IT F 22 DISKFQPRINT 0 F 132 PrinterDTABNames S 20 Dim(50) Perrcd(1) FromfileD (TestFile)DTABScore S 3 0 Dim(50) Alt(TABNames) ExtFmt(P)*D*DMyName S 20 Inz('Joe')*C MYNAME Lookup TABNames TABScore 90C If *In90 = *0nC Except PrintitC EndIf*C Eval *InLR = *0nC ReturnO*OQPRINT E Printit 1O TABNames 25O TABScore Z 30

entsprechenden Prüfungsergebnisse aufzunehmen. Die Tabellewird unter Angabe eines Prüfergebnisses nach einem bestimmtenSchülernamen durchsucht. Anschließend werden Schülernameund Prüfungsergebnis ausgedruckt. Listing 9.3, das die ILE RPGSource für RPG0003R zeigt, illustriert die Verwendung von vorLaufzeit ladenden Tabellen.

Listing 9.3: ILE RPG mit Vor- Laufzeit-Tabellen

FTestFile it F 22 DiskFQPRINT 0 F 132 PrinterDTABNames S 20 Dim(50) Perrcd(1) FromfileD (TestFile)DTABScore S 3 0 Dim(50) Alt(TABNames) ExtFmt(P)*D*DM yName S 20 Inz(‚Joe‘)*C MYNAME Lookup TABNames TABScore 90C If *In90 = *0nC Except PrintitC EndIf*C Eval *InLR = *0nC ReturnO*OQPRINT E Printit 1O TABNames 25O TABScore Z 30

BeschreibungDie Datenbankdatei, die verwendet wird, um die vor Laufzeit zuladende Tabelle abzurufen, wird in den Programmdatei-F-Spezi-fikationen definiert. Dieses Beispiel verwendet eine physischeDatei TESTFILE, die ein 20-Zeichen-Feld Schülername enthält,gefolgt von dem gepackten dreistelligen numerischen Prüfungs-ergebnis. Abb. 9.11. zeigt den F-Eintrag.

g

FTESTFILE IT F 22 DISKFQPRINT 0 F 132 PrinterDTABNames S 20 Dim(50) Perrcd(1) FromfileD (TestFile)DTABScore S 3 0 Dim(50) Alt(TABNames) ExtFmt(P)*D*DMyName S 20 Inz('Joe')*C MYNAME Lookup TABNames TABScore 90C If *In90 = *0nC Except PrintitC EndIf*C Eval *InLR = *0nC ReturnO*OQPRINT E Printit 1O TABNames 25O TABScore Z 30

entsprechenden Prüfungsergebnisse aufzunehmen. Die Tabellewird unter Angabe eines Prüfergebnisses nach einem bestimmtenSchülernamen durchsucht. Anschließend werden Schülernameund Prüfungsergebnis ausgedruckt. Listing 9.3, das die ILE RPGSource für RPG0003R zeigt, illustriert die Verwendung von vorLaufzeit ladenden Tabellen.

Listing 9.3: ILE RPG mit Vor- Laufzeit-Tabellen

FTestFile it F 22 DiskFQPRINT 0 F 132 PrinterDTABNames S 20 Dim(50) Perrcd(1) FromfileD (TestFile)DTABScore S 3 0 Dim(50) Alt(TABNames) ExtFmt(P)*D*DM yName S 20 Inz(‚Joe‘)*C MYNAME Lookup TABNames TABScore 90C If *In90 = *0nC Except PrintitC EndIf*C Eval *InLR = *0nC ReturnO*OQPRINT E Printit 1O TABNames 25O TABScore Z 30

Beschreibung

Die Datenbankdatei, die verwendet wird, um die vor Laufzeit zuladende Tabelle abzurufen, wird in den Programmdatei-F-Spezi-fikationen definiert. Dieses Beispiel verwendet eine physischeDatei TESTFILE, die ein 20-Zeichen-Feld Schülername enthält,gefolgt von dem gepackten dreistelligen numerischen Prüfungs-ergebnis. Abb. 9.11. zeigt den F-Eintrag.

g

FTESTFILE IT F 22 DISKFQPRINT 0 F 132 PrinterDTABNames S 20 Dim(50) Perrcd(1) FromfileD (TestFile)DTABScore S 3 0 Dim(50) Alt(TABNames) ExtFmt(P)*D*DMyName S 20 Inz('Joe')*C MYNAME Lookup TABNames TABScore 90C If *In90 = *0nC Except PrintitC EndIf*C Eval *InLR = *0nC ReturnO*OQPRINT E Printit 1O TABNames 25O TABScore Z 30

entsprechenden Prüfungsergebnisse aufzunehmen. Die Tabellewird unter Angabe eines Prüfergebnisses nach einem bestimmtenSchülernamen durchsucht. Anschließend werden Schülernameund Prüfungsergebnis ausgedruckt. Listing 9.3, das die ILE RPGSource für RPG0003R zeigt, illustriert die Verwendung von vorLaufzeit ladenden Tabellen.

Listing 9.3: ILE RPG mit Vor- Laufzeit-Tabellen

FTestFile it F 22 DiskFQPRINT 0 F 132 PrinterDTABNames S 20 Dim(50) Perrcd(1) FromfileD (TestFile)DTABScore S 3 0 Dim(50) Alt(TABNames) ExtFmt(P)*D*DM yName S 20 Inz(‚Joe‘)*C MYNAME Lookup TABNames TABScore 90C If *In90 = *0nC Except PrintitC EndIf*C Eval *InLR = *0nC ReturnO*OQPRINT E Printit 1O TABNames 25O TABScore Z 30

Beschreibung

Die Datenbankdatei, die verwendet wird, um die vor Laufzeit zuladende Tabelle abzurufen, wird in den Programmdatei-F-Spezi-fikationen definiert. Dieses Beispiel verwendet eine physischeDatei TESTFILE, die ein 20-Zeichen-Feld Schülername enthält,gefolgt von dem gepackten dreistelligen numerischen Prüfungs-ergebnis. Abb. 9.11. zeigt den F-Eintrag.

g

FTESTFILE IT F 22 DISKFQPRINT 0 F 132 PrinterDTABNames S 20 Dim(50) Perrcd(1) FromfileD (TestFile)DTABScore S 3 0 Dim(50) Alt(TABNames) ExtFmt(P)*D*DMyName S 20 Inz('Joe')*C MYNAME Lookup TABNames TABScore 90C If *In90 = *0nC Except PrintitC EndIf*C Eval *InLR = *0nC ReturnO*OQPRINT E Printit 1O TABNames 25O TABScore Z 30

Ein I.T.P. -Fachbuch

Seite 16 – Kapitel 9 Handbuch für AS/400-Programmierer

Ein I.T.P. -Fachbuch

Seite 16 – Kapitel 9 Handbuch für AS/400-Programmierer

Ein I.T.P. -Fachbuch

Seite 16 – Kapitel 9 Handbuch für AS/400-Programmierer

Ein I.T.P. -Fachbuch

Seite 16 – Kapitel 9 Handbuch für AS/400-Programmierer

FFILENAME++IPEASFRLEN+LKLEN+AIDEVICE+.KEYWORDS+++++++++++++++++++ FTestFile IT F22 DISK

Abb. 9.11: F-Spezifikation als Quelldefinition für die Tabelle

Die Tabellendatei wird mit dem Eintrag T in Position 18 gekenn-zeichnet. Der Buchstabe I (Input) in Position 18 informiert Siedarüber, dass die Datei nur für die Dateneingabe geöffnet werdensoll.

Tabellendefinitionen für Tabellen, die vor der Laufzeit geladenwerden, sind in den RPG D-Spezifikationen enthalten. DerName der Tabelle (der mit TAB beginnen muss), die Größe undAttribute jedes Elements, die Höchstzahl an Elementen in derTabelle und die Anzahl der Elemente pro Soucezeile werden imEintrag D definiert. Abb. 9.12 zeigt eine ausführliche Ansichtdes D-Eintrags für Tabelle TABNames.

DNAME++++++++++ETDsFrom+++To/L+++Idc.Keywords+++++++++++++++++++++ DTABNames S 20 Dim(50) Perrcd(1) Fromfile D (TestFile)

Abb. 9.12: D-Spezifikation für Tabelle TABNames

Die D-Spezifikation - die die TABNamen definiert - deklariertjedes Element mit einer Länge von 20 Zeichen. Das Schlüssel-wort DIM gibt die maximale Anzahl an Elementen in der Tabelleals 5 an.

Das Schlüsselwort FROMFILE legt fest, dass die Tabelle mit denDatensätzen der Datei TESTFILE geladen werden soll.

Das Schlüsselwort PERRCD definiert die Anzahl der Tabellen-elemente, die aus den Zeilen der Quelldatensätze geladen werdensollen. Der Standardwert ist 1, jedes Tabellenelement wird auseinem Datensatz der Datei gelesen.

FFILENAME++IPEASFRLEN+LKLEN+AIDEVICE+.KEYWORDS+++++++++++++++++++ FTestFile IT F 22

DNAME++++++++++ETDsFrom+++To/L+++Idc.Keywords+++++++++++++++++++++ DTABNames S 20 Dim(50) Perrcd(1) Fromfile D (TestFile)

FFILENAME++IPEASFRLEN+LKLEN+AIDEVICE+.KEYWORDS+++++++++++++++++++ FTestFile IT F22 DISK

Abb. 9.11: F-Spezifikation als Quelldefinition für die Tabelle

Die Tabellendatei wird mit dem Eintrag T in Position 18 gekenn-zeichnet. Der Buchstabe I (Input) in Position 18 informiert Siedarüber, dass die Datei nur für die Dateneingabe geöffnet werdensoll.

Tabellendefinitionen für Tabellen, die vor der Laufzeit geladenwerden, sind in den RPG D-Spezifikationen enthalten. DerName der Tabelle (der mit TAB beginnen muss), die Größe undAttribute jedes Elements, die Höchstzahl an Elementen in derTabelle und die Anzahl der Elemente pro Soucezeile werden imEintrag D definiert. Abb. 9.12 zeigt eine ausführliche Ansichtdes D-Eintrags für Tabelle TABNames.

DNAME++++++++++ETDsFrom+++To/L+++Idc.Keywords+++++++++++++++++++++ DTABNames S 20 Dim(50) Perrcd(1) Fromfile D (TestFile)

Abb. 9.12: D-Spezifikation für Tabelle TABNames

Die D-Spezifikation - die die TABNamen definiert - deklariertjedes Element mit einer Länge von 20 Zeichen. Das Schlüssel-wort DIM gibt die maximale Anzahl an Elementen in der Tabelleals 5 an.

Das Schlüsselwort FROMFILE legt fest, dass die Tabelle mit denDatensätzen der Datei TESTFILE geladen werden soll.

Das Schlüsselwort PERRCD definiert die Anzahl der Tabellen-elemente, die aus den Zeilen der Quelldatensätze geladen werdensollen. Der Standardwert ist 1, jedes Tabellenelement wird auseinem Datensatz der Datei gelesen.

FFILENAME++IPEASFRLEN+LKLEN+AIDEVICE+.KEYWORDS+++++++++++++++++++ FTestFile IT F 22

DNAME++++++++++ETDsFrom+++To/L+++Idc.Keywords+++++++++++++++++++++ DTABNames S 20 Dim(50) Perrcd(1) Fromfile D (TestFile)

FFILENAME++IPEASFRLEN+LKLEN+AIDEVICE+.KEYWORDS+++++++++++++++++++ FTestFile IT F22 DISK

Abb. 9.11: F-Spezifikation als Quelldefinition für die Tabelle

Die Tabellendatei wird mit dem Eintrag T in Position 18 gekenn-zeichnet. Der Buchstabe I (Input) in Position 18 informiert Siedarüber, dass die Datei nur für die Dateneingabe geöffnet werdensoll.

Tabellendefinitionen für Tabellen, die vor der Laufzeit geladenwerden, sind in den RPG D-Spezifikationen enthalten. DerName der Tabelle (der mit TAB beginnen muss), die Größe undAttribute jedes Elements, die Höchstzahl an Elementen in derTabelle und die Anzahl der Elemente pro Soucezeile werden imEintrag D definiert. Abb. 9.12 zeigt eine ausführliche Ansichtdes D-Eintrags für Tabelle TABNames.

DNAME++++++++++ETDsFrom+++To/L+++Idc.Keywords+++++++++++++++++++++ DTABNames S 20 Dim(50) Perrcd(1) Fromfile D (TestFile)

Abb. 9.12: D-Spezifikation für Tabelle TABNames

Die D-Spezifikation - die die TABNamen definiert - deklariertjedes Element mit einer Länge von 20 Zeichen. Das Schlüssel-wort DIM gibt die maximale Anzahl an Elementen in der Tabelleals 5 an.

Das Schlüsselwort FROMFILE legt fest, dass die Tabelle mit denDatensätzen der Datei TESTFILE geladen werden soll.

Das Schlüsselwort PERRCD definiert die Anzahl der Tabellen-elemente, die aus den Zeilen der Quelldatensätze geladen werdensollen. Der Standardwert ist 1, jedes Tabellenelement wird auseinem Datensatz der Datei gelesen.

FFILENAME++IPEASFRLEN+LKLEN+AIDEVICE+.KEYWORDS+++++++++++++++++++ FTestFile IT F 22

DNAME++++++++++ETDsFrom+++To/L+++Idc.Keywords+++++++++++++++++++++ DTABNames S 20 Dim(50) Perrcd(1) Fromfile D (TestFile)

FFILENAME++IPEASFRLEN+LKLEN+AIDEVICE+.KEYWORDS+++++++++++++++++++ FTestFile IT F22 DISK

Abb. 9.11: F-Spezifikation als Quelldefinition für die Tabelle

Die Tabellendatei wird mit dem Eintrag T in Position 18 gekenn-zeichnet. Der Buchstabe I (Input) in Position 18 informiert Siedarüber, dass die Datei nur für die Dateneingabe geöffnet werdensoll.

Tabellendefinitionen für Tabellen, die vor der Laufzeit geladenwerden, sind in den RPG D-Spezifikationen enthalten. DerName der Tabelle (der mit TAB beginnen muss), die Größe undAttribute jedes Elements, die Höchstzahl an Elementen in derTabelle und die Anzahl der Elemente pro Soucezeile werden imEintrag D definiert. Abb. 9.12 zeigt eine ausführliche Ansichtdes D-Eintrags für Tabelle TABNames.

DNAME++++++++++ETDsFrom+++To/L+++Idc.Keywords+++++++++++++++++++++ DTABNames S 20 Dim(50) Perrcd(1) Fromfile D (TestFile)

Abb. 9.12: D-Spezifikation für Tabelle TABNames

Die D-Spezifikation - die die TABNamen definiert - deklariertjedes Element mit einer Länge von 20 Zeichen. Das Schlüssel-wort DIM gibt die maximale Anzahl an Elementen in der Tabelleals 5 an.

Das Schlüsselwort FROMFILE legt fest, dass die Tabelle mit denDatensätzen der Datei TESTFILE geladen werden soll.

Das Schlüsselwort PERRCD definiert die Anzahl der Tabellen-elemente, die aus den Zeilen der Quelldatensätze geladen werdensollen. Der Standardwert ist 1, jedes Tabellenelement wird auseinem Datensatz der Datei gelesen.

FFILENAME++IPEASFRLEN+LKLEN+AIDEVICE+.KEYWORDS+++++++++++++++++++ FTestFile IT F 22

DNAME++++++++++ETDsFrom+++To/L+++Idc.Keywords+++++++++++++++++++++ DTABNames S 20 Dim(50) Perrcd(1) Fromfile D (TestFile)

Ein I.T.P. -Fachbuch

Datenfelder, Tabellen, und Datenstrukturen Kapitel 9 – Seite 17

Ein I.T.P. -Fachbuch

Datenfelder, Tabellen, und Datenstrukturen Kapitel 9 – Seite 17

Ein I.T.P. -Fachbuch

Datenfelder, Tabellen, und Datenstrukturen Kapitel 9 – Seite 17

Ein I.T.P. -Fachbuch

Datenfelder, Tabellen, und Datenstrukturen Kapitel 9 – Seite 17

Dieses Beispiel verwendet eine verknüpfte Tabelle, um Prü-fungsergebnisse für jeden Schüler in der Tabelle mit den Schü-lernamen zu laden. Abb. 9.13 zeigt die D-Spezifikation für dieverknüpfte Tabelle TABScore.

DNAME++++++++++ETDsFrom+++To/L+++Idc.Keywords+++++++++++++++++++++ DTABScore S 3 0 Dim(50) Alt(TABNames) ExtFmt(P)

Abb. 9.13: D-Spezifikation für alternative Tabelle TABScore

Die D-Spezifikation - die TABScore definiert - deklariert jedesElement als dreistelligen numerischen Wert ohne Dezimalposi-tionen. Das ALT-Schlüsselwort definiert die Tabelle als ver-knüpfte oder alternative Tabelle für TABNames. Da die Prü-fungsergebnisse in der Datei als gepackte numerische Daten de-finiert werden, wird das Schlüsselwort EXTFMT für externeFormate verwendet, um die erforderliche Übersetzung zuzuord-nen. Mit der Angabe von P für gepackt teilen Sie dem Programmmit, dass der Inhalt des Feldes gepackt ist.

Weder das Schlüsselwort PERRCD noch das SchlüsselwortFROMFILE kann in der Definition einer alternativen Tabelle an-gegeben werden. Die Daten, die verwendet werden, um die alter-native Tabelle zu laden, werden automatisch vom gleichen Quell-datensatz wie die Haupttabelle geladen.

Innerhalb der Programmlogik wird eine Suche nach einem be-stimmten Schülernamen in der Tabelle mit den Schülernamendurchgeführt. Abb. 9.14. zeigt den Suchprozess.

CL0NO1 Factor1++++++++ Opode&ExtFactor2+++++++Result+++Len++D+HiLoEqC MyName Lookup TABNames TABScore 90 MOVEL’Joe’ MYNAME 20C IF *In90 = *OnC Except PrintitC Endif

DNAME++++++++++ETDsFrom+++To/L+++Idc.Keywords+++++++++++++++++++++ DTABScore S 3 0 Dim(50) Alt(TABNames) ExtFmt(P)

Dieses Beispiel verwendet eine verknüpfte Tabelle, um Prü-fungsergebnisse für jeden Schüler in der Tabelle mit den Schü-lernamen zu laden. Abb. 9.13 zeigt die D-Spezifikation für dieverknüpfte Tabelle TABScore.

DNAME++++++++++ETDsFrom+++To/L+++Idc.Keywords+++++++++++++++++++++ DTABScore S 3 0 Dim(50) Alt(TABNames) ExtFmt(P)

Abb. 9.13: D-Spezifikation für alternative Tabelle TABScore

Die D-Spezifikation - die TABScore definiert - deklariert jedesElement als dreistelligen numerischen Wert ohne Dezimalposi-tionen. Das ALT-Schlüsselwort definiert die Tabelle als ver-knüpfte oder alternative Tabelle für TABNames. Da die Prü-fungsergebnisse in der Datei als gepackte numerische Daten de-finiert werden, wird das Schlüsselwort EXTFMT für externeFormate verwendet, um die erforderliche Übersetzung zuzuord-nen. Mit der Angabe von P für gepackt teilen Sie dem Programmmit, dass der Inhalt des Feldes gepackt ist.

Weder das Schlüsselwort PERRCD noch das SchlüsselwortFROMFILE kann in der Definition einer alternativen Tabelle an-gegeben werden. Die Daten, die verwendet werden, um die alter-native Tabelle zu laden, werden automatisch vom gleichen Quell-datensatz wie die Haupttabelle geladen.

Innerhalb der Programmlogik wird eine Suche nach einem be-stimmten Schülernamen in der Tabelle mit den Schülernamendurchgeführt. Abb. 9.14. zeigt den Suchprozess.

CL0NO1 Factor1++++++++ Opode&ExtFactor2+++++++Result+++Len++D+HiLoEqC MyName Lookup TABNames TABScore 90 MOVEL’Joe’ MYNAME 20C IF *In90 = *OnC Except PrintitC Endif

DNAME++++++++++ETDsFrom+++To/L+++Idc.Keywords+++++++++++++++++++++ DTABScore S 3 0 Dim(50) Alt(TABNames) ExtFmt(P)

Dieses Beispiel verwendet eine verknüpfte Tabelle, um Prü-fungsergebnisse für jeden Schüler in der Tabelle mit den Schü-lernamen zu laden. Abb. 9.13 zeigt die D-Spezifikation für dieverknüpfte Tabelle TABScore.

DNAME++++++++++ETDsFrom+++To/L+++Idc.Keywords+++++++++++++++++++++ DTABScore S 3 0 Dim(50) Alt(TABNames) ExtFmt(P)

Abb. 9.13: D-Spezifikation für alternative Tabelle TABScore

Die D-Spezifikation - die TABScore definiert - deklariert jedesElement als dreistelligen numerischen Wert ohne Dezimalposi-tionen. Das ALT-Schlüsselwort definiert die Tabelle als ver-knüpfte oder alternative Tabelle für TABNames. Da die Prü-fungsergebnisse in der Datei als gepackte numerische Daten de-finiert werden, wird das Schlüsselwort EXTFMT für externeFormate verwendet, um die erforderliche Übersetzung zuzuord-nen. Mit der Angabe von P für gepackt teilen Sie dem Programmmit, dass der Inhalt des Feldes gepackt ist.

Weder das Schlüsselwort PERRCD noch das SchlüsselwortFROMFILE kann in der Definition einer alternativen Tabelle an-gegeben werden. Die Daten, die verwendet werden, um die alter-native Tabelle zu laden, werden automatisch vom gleichen Quell-datensatz wie die Haupttabelle geladen.

Innerhalb der Programmlogik wird eine Suche nach einem be-stimmten Schülernamen in der Tabelle mit den Schülernamendurchgeführt. Abb. 9.14. zeigt den Suchprozess.

CL0NO1 Factor1++++++++ Opode&ExtFactor2+++++++Result+++Len++D+HiLoEqC MyName Lookup TABNames TABScore 90 MOVEL’Joe’ MYNAME 20C IF *In90 = *OnC Except PrintitC Endif

DNAME++++++++++ETDsFrom+++To/L+++Idc.Keywords+++++++++++++++++++++ DTABScore S 3 0 Dim(50) Alt(TABNames) ExtFmt(P)

Dieses Beispiel verwendet eine verknüpfte Tabelle, um Prü-fungsergebnisse für jeden Schüler in der Tabelle mit den Schü-lernamen zu laden. Abb. 9.13 zeigt die D-Spezifikation für dieverknüpfte Tabelle TABScore.

DNAME++++++++++ETDsFrom+++To/L+++Idc.Keywords+++++++++++++++++++++ DTABScore S 3 0 Dim(50) Alt(TABNames) ExtFmt(P)

Abb. 9.13: D-Spezifikation für alternative Tabelle TABScore

Die D-Spezifikation - die TABScore definiert - deklariert jedesElement als dreistelligen numerischen Wert ohne Dezimalposi-tionen. Das ALT-Schlüsselwort definiert die Tabelle als ver-knüpfte oder alternative Tabelle für TABNames. Da die Prü-fungsergebnisse in der Datei als gepackte numerische Daten de-finiert werden, wird das Schlüsselwort EXTFMT für externeFormate verwendet, um die erforderliche Übersetzung zuzuord-nen. Mit der Angabe von P für gepackt teilen Sie dem Programmmit, dass der Inhalt des Feldes gepackt ist.

Weder das Schlüsselwort PERRCD noch das SchlüsselwortFROMFILE kann in der Definition einer alternativen Tabelle an-gegeben werden. Die Daten, die verwendet werden, um die alter-native Tabelle zu laden, werden automatisch vom gleichen Quell-datensatz wie die Haupttabelle geladen.

Innerhalb der Programmlogik wird eine Suche nach einem be-stimmten Schülernamen in der Tabelle mit den Schülernamendurchgeführt. Abb. 9.14. zeigt den Suchprozess.

CL0NO1 Factor1++++++++ Opode&ExtFactor2+++++++Result+++Len++D+HiLoEqC MyName Lookup TABNames TABScore 90 MOVEL’Joe’ MYNAME 20C IF *In90 = *OnC Except PrintitC Endif

DNAME++++++++++ETDsFrom+++To/L+++Idc.Keywords+++++++++++++++++++++ DTABScore S 3 0 Dim(50) Alt(TABNames) ExtFmt(P)

Ein I.T.P. -Fachbuch

Seite 18 – Kapitel 9 Handbuch für AS/400-Programmierer

Ein I.T.P. -Fachbuch

Seite 18 – Kapitel 9 Handbuch für AS/400-Programmierer

Ein I.T.P. -Fachbuch

Seite 18 – Kapitel 9 Handbuch für AS/400-Programmierer

Ein I.T.P. -Fachbuch

Seite 18 – Kapitel 9 Handbuch für AS/400-Programmierer

Abb. 9.14: ILE RPG Suchprozess

Der gesuchte Schülername (der im Feld MYNAME enthalten ist)wird bei der Suchoperation als Faktor eins verwendet. Die Sucheerfolgt in der Tabelle TABNames. Wenn dabei der Schülernamegefunden wird, wird Indikator 90 aktiviert und das entsprechendeElement in Tabelle TABScore zurückgegeben. Die verknüpfteTabelle, TABSCcore, enthält das dreistellige Prüfungsergebnis.

BeispielVor-Laufzeit-Tabelle in RPG verwendenDiejenigen unter Ihnen, die noch nicht mit ILE RPG in ihrer Ent-wicklungsumgebung arbeiten, können Tabellen, die zur Laufzeitgeladen werden, auch in RPG/400 verwenden. Listing 9.4 zeigtdie Source des Programms RPG004R.

ÜbersichtDieses Beispiel verwendet eine Vor-Laufzeit-Tabelle mit einerentsprechenden verknüpften Tabelle, um Schülernamen und diedamit verknüpften Prüfungsergebnisse aufzunehmen. Die Tabel-le wird unter Angabe eines Prüfergebnisses nach einem be-stimmten Schülernamen durchsucht. Anschließend werdenSchülername und Prüfungsergebnis ausgedruckt.

CL0NO1Factor1++++++++Opode&ExtFactor2+++++++Result+++Len++D+HiLoEqC MyName Lookup TABNames TABScore 90C IF *In90 = *OnC Except PrintitC Endif

Abb. 9.14: ILE RPG Suchprozess

Der gesuchte Schülername (der im Feld MYNAME enthalten ist)wird bei der Suchoperation als Faktor eins verwendet. Die Sucheerfolgt in der Tabelle TABNames. Wenn dabei der Schülernamegefunden wird, wird Indikator 90 aktiviert und das entsprechendeElement in Tabelle TABScore zurückgegeben. Die verknüpfteTabelle, TABSCcore, enthält das dreistellige Prüfungsergebnis.

BeispielVor-Laufzeit-Tabelle in RPG verwendenDiejenigen unter Ihnen, die noch nicht mit ILE RPG in ihrer Ent-wicklungsumgebung arbeiten, können Tabellen, die zur Laufzeitgeladen werden, auch in RPG/400 verwenden. Listing 9.4 zeigtdie Source des Programms RPG004R.

ÜbersichtDieses Beispiel verwendet eine Vor-Laufzeit-Tabelle mit einerentsprechenden verknüpften Tabelle, um Schülernamen und diedamit verknüpften Prüfungsergebnisse aufzunehmen. Die Tabel-le wird unter Angabe eines Prüfergebnisses nach einem be-stimmten Schülernamen durchsucht. Anschließend werdenSchülername und Prüfungsergebnis ausgedruckt.

CL0NO1Factor1++++++++Opode&ExtFactor2+++++++Result+++Len++D+HiLoEqC MyName Lookup TABNames TABScore 90C IF *In90 = *OnC Except PrintitC Endif

Abb. 9.14: ILE RPG Suchprozess

Der gesuchte Schülername (der im Feld MYNAME enthalten ist)wird bei der Suchoperation als Faktor eins verwendet. Die Sucheerfolgt in der Tabelle TABNames. Wenn dabei der Schülernamegefunden wird, wird Indikator 90 aktiviert und das entsprechendeElement in Tabelle TABScore zurückgegeben. Die verknüpfteTabelle, TABSCcore, enthält das dreistellige Prüfungsergebnis.

BeispielVor-Laufzeit-Tabelle in RPG verwendenDiejenigen unter Ihnen, die noch nicht mit ILE RPG in ihrer Ent-wicklungsumgebung arbeiten, können Tabellen, die zur Laufzeitgeladen werden, auch in RPG/400 verwenden. Listing 9.4 zeigtdie Source des Programms RPG004R.

ÜbersichtDieses Beispiel verwendet eine Vor-Laufzeit-Tabelle mit einerentsprechenden verknüpften Tabelle, um Schülernamen und diedamit verknüpften Prüfungsergebnisse aufzunehmen. Die Tabel-le wird unter Angabe eines Prüfergebnisses nach einem be-stimmten Schülernamen durchsucht. Anschließend werdenSchülername und Prüfungsergebnis ausgedruckt.

CL0NO1Factor1++++++++Opode&ExtFactor2+++++++Result+++Len++D+HiLoEqC MyName Lookup TABNames TABScore 90C IF *In90 = *OnC Except PrintitC Endif

Abb. 9.14: ILE RPG Suchprozess

Der gesuchte Schülername (der im Feld MYNAME enthalten ist)wird bei der Suchoperation als Faktor eins verwendet. Die Sucheerfolgt in der Tabelle TABNames. Wenn dabei der Schülernamegefunden wird, wird Indikator 90 aktiviert und das entsprechendeElement in Tabelle TABScore zurückgegeben. Die verknüpfteTabelle, TABSCcore, enthält das dreistellige Prüfungsergebnis.

BeispielVor-Laufzeit-Tabelle in RPG verwendenDiejenigen unter Ihnen, die noch nicht mit ILE RPG in ihrer Ent-wicklungsumgebung arbeiten, können Tabellen, die zur Laufzeitgeladen werden, auch in RPG/400 verwenden. Listing 9.4 zeigtdie Source des Programms RPG004R.

ÜbersichtDieses Beispiel verwendet eine Vor-Laufzeit-Tabelle mit einerentsprechenden verknüpften Tabelle, um Schülernamen und diedamit verknüpften Prüfungsergebnisse aufzunehmen. Die Tabel-le wird unter Angabe eines Prüfergebnisses nach einem be-stimmten Schülernamen durchsucht. Anschließend werdenSchülername und Prüfungsergebnis ausgedruckt.

CL0NO1Factor1++++++++Opode&ExtFactor2+++++++Result+++Len++D+HiLoEqC MyName Lookup TABNames TABScore 90C IF *In90 = *OnC Except PrintitC Endif

Ein I.T.P. -Fachbuch

Datenfelder, Tabellen, und Datenstrukturen Kapitel 9 – Seite 19

Ein I.T.P. -Fachbuch

Datenfelder, Tabellen, und Datenstrukturen Kapitel 9 – Seite 19

Ein I.T.P. -Fachbuch

Datenfelder, Tabellen, und Datenstrukturen Kapitel 9 – Seite 19

Ein I.T.P. -Fachbuch

Datenfelder, Tabellen, und Datenstrukturen Kapitel 9 – Seite 19

Listing 9.4 RPG/400 unter Verwendung von vor Laufzeitladenden Tabellen

FTESTFILEIT F 22 EDISKFQRPRINT 0 F 132 0F PRINTERE TESTFILE TABNAM 1 5 20 TABSCO 3P0*C MOVEL ‚ JOE ‚ MYNAME 20C MYNAME LOKUPTABNAM TABSCO 90C *IN90 IFEQ *ONC EXCPTPRINTC ENDIF*C SETON LRC RETRN*OQPRINT E 1PRINTO TABNAM 25O TABSCOZ 30

BeschreibungDer wichtigste Unterschied zwischen den beiden Versionen fürRPG/400 und ILE RPG besteht darin, dass in RPG/400 keineD-Spezifikationen enthalten sind. In RPG/400 werden Tabellen,die vor Laufzeit geladen werden, mit einer Kombination vonF- und E-Spezifikationen geladen.

Die Tabellennamen müssen außerdem für RPG/400 gekürzt wer-den. Abb. 9.15 zeigt die F-Spezifikationen, die die EingabedateiTESTFILE definieren.

FFilenameIPEAF....RlenLK1aIOvKlocEDevice+.....Kexit++Entry+A....U FTESTFILEIT F 22 EDISK

Abb. 9.15: F-Spezifikationen für die Eingabedatei TESTFILE

FTESTFILEIT F 22 EDISKFQRPRINT 0 F 132 0F PRINTERE TESTFILE TABNAM 1 5 20 TABSCO 3P0*C MOVEL ' JOE ' MYNAME 20C MYNAME LOKUPTABNAM TABSCO 90C *IN90 IFEQ *ONC EXCPTPRINTC ENDIF*C SETON LRC RETRN*OQPRINT E 1 PRINTO TABNAM 25O TABSCOZ 30

FFilenameIPEAF....RlenLK1aIOvKlocEDevice+.....Kexit++Entry+A....U FTESTFILEIT F 22 EDISK

Listing 9.4 RPG/400 unter Verwendung von vor Laufzeitladenden Tabellen

FTESTFILEIT F 22 EDISKFQRPRINT 0 F 132 0F PRINTERE TESTFILE TABNAM 1 5 20 TABSCO 3P0*C MOVEL ‚ JOE ‚ MYNAME 20C MYNAME LOKUPTABNAM TABSCO 90C *IN90 IFEQ *ONC EXCPTPRINTC ENDIF*C SETON LRC RETRN*OQPRINT E 1PRINTO TABNAM 25O TABSCOZ 30

BeschreibungDer wichtigste Unterschied zwischen den beiden Versionen fürRPG/400 und ILE RPG besteht darin, dass in RPG/400 keineD-Spezifikationen enthalten sind. In RPG/400 werden Tabellen,die vor Laufzeit geladen werden, mit einer Kombination vonF- und E-Spezifikationen geladen.

Die Tabellennamen müssen außerdem für RPG/400 gekürzt wer-den. Abb. 9.15 zeigt die F-Spezifikationen, die die EingabedateiTESTFILE definieren.

FFilenameIPEAF....RlenLK1aIOvKlocEDevice+.....Kexit++Entry+A....U FTESTFILEIT F 22 EDISK

Abb. 9.15: F-Spezifikationen für die Eingabedatei TESTFILE

FTESTFILEIT F 22 EDISKFQRPRINT 0 F 132 0F PRINTERE TESTFILE TABNAM 1 5 20 TABSCO 3P0*C MOVEL ' JOE ' MYNAME 20C MYNAME LOKUPTABNAM TABSCO 90C *IN90 IFEQ *ONC EXCPTPRINTC ENDIF*C SETON LRC RETRN*OQPRINT E 1 PRINTO TABNAM 25O TABSCOZ 30

FFilenameIPEAF....RlenLK1aIOvKlocEDevice+.....Kexit++Entry+A....U FTESTFILEIT F 22 EDISK

Listing 9.4 RPG/400 unter Verwendung von vor Laufzeitladenden Tabellen

FTESTFILEIT F 22 EDISKFQRPRINT 0 F 132 0F PRINTERE TESTFILE TABNAM 1 5 20 TABSCO 3P0*C MOVEL ‚ JOE ‚ MYNAME 20C MYNAME LOKUPTABNAM TABSCO 90C *IN90 IFEQ *ONC EXCPTPRINTC ENDIF*C SETON LRC RETRN*OQPRINT E 1PRINTO TABNAM 25O TABSCOZ 30

BeschreibungDer wichtigste Unterschied zwischen den beiden Versionen fürRPG/400 und ILE RPG besteht darin, dass in RPG/400 keineD-Spezifikationen enthalten sind. In RPG/400 werden Tabellen,die vor Laufzeit geladen werden, mit einer Kombination vonF- und E-Spezifikationen geladen.

Die Tabellennamen müssen außerdem für RPG/400 gekürzt wer-den. Abb. 9.15 zeigt die F-Spezifikationen, die die EingabedateiTESTFILE definieren.

FFilenameIPEAF....RlenLK1aIOvKlocEDevice+.....Kexit++Entry+A....U FTESTFILEIT F 22 EDISK

Abb. 9.15: F-Spezifikationen für die Eingabedatei TESTFILE

FTESTFILEIT F 22 EDISKFQRPRINT 0 F 132 0F PRINTERE TESTFILE TABNAM 1 5 20 TABSCO 3P0*C MOVEL ' JOE ' MYNAME 20C MYNAME LOKUPTABNAM TABSCO 90C *IN90 IFEQ *ONC EXCPTPRINTC ENDIF*C SETON LRC RETRN*OQPRINT E 1 PRINTO TABNAM 25O TABSCOZ 30

FFilenameIPEAF....RlenLK1aIOvKlocEDevice+.....Kexit++Entry+A....U FTESTFILEIT F 22 EDISK

Listing 9.4 RPG/400 unter Verwendung von vor Laufzeitladenden Tabellen

FTESTFILEIT F 22 EDISKFQRPRINT 0 F 132 0F PRINTERE TESTFILE TABNAM 1 5 20 TABSCO 3P0*C MOVEL ‚ JOE ‚ MYNAME 20C MYNAME LOKUPTABNAM TABSCO 90C *IN90 IFEQ *ONC EXCPTPRINTC ENDIF*C SETON LRC RETRN*OQPRINT E 1PRINTO TABNAM 25O TABSCOZ 30

BeschreibungDer wichtigste Unterschied zwischen den beiden Versionen fürRPG/400 und ILE RPG besteht darin, dass in RPG/400 keineD-Spezifikationen enthalten sind. In RPG/400 werden Tabellen,die vor Laufzeit geladen werden, mit einer Kombination vonF- und E-Spezifikationen geladen.

Die Tabellennamen müssen außerdem für RPG/400 gekürzt wer-den. Abb. 9.15 zeigt die F-Spezifikationen, die die EingabedateiTESTFILE definieren.

FFilenameIPEAF....RlenLK1aIOvKlocEDevice+.....Kexit++Entry+A....U FTESTFILEIT F 22 EDISK

Abb. 9.15: F-Spezifikationen für die Eingabedatei TESTFILE

FTESTFILEIT F 22 EDISKFQRPRINT 0 F 132 0F PRINTERE TESTFILE TABNAM 1 5 20 TABSCO 3P0*C MOVEL ' JOE ' MYNAME 20C MYNAME LOKUPTABNAM TABSCO 90C *IN90 IFEQ *ONC EXCPTPRINTC ENDIF*C SETON LRC RETRN*OQPRINT E 1 PRINTO TABNAM 25O TABSCOZ 30

FFilenameIPEAF....RlenLK1aIOvKlocEDevice+.....Kexit++Entry+A....U FTESTFILEIT F 22 EDISK

Ein I.T.P. -Fachbuch

Seite 20 – Kapitel 9 Handbuch für AS/400-Programmierer

Ein I.T.P. -Fachbuch

Seite 20 – Kapitel 9 Handbuch für AS/400-Programmierer

Ein I.T.P. -Fachbuch

Seite 20 – Kapitel 9 Handbuch für AS/400-Programmierer

Ein I.T.P. -Fachbuch

Seite 20 – Kapitel 9 Handbuch für AS/400-Programmierer

Die Tabellendatei wird mit einem T-Eintrag in Position 16 ge-kennzeichnet. Die Datei wird für die Eingabe geöffnet, wie andem Eintrag 1 in Position 15 der F-Spezifikation erkennbar ist.Ein E in Position 39 zeigt die Existenz einer E-Spezifikation an,die die Tabellen, die die Eingabedateien verwenden, definiert.Die Tabellen, die der Eingabedatei entsprechen, werden in den E-Spezifikationen des Programms definiert. Abb. 9.16 zeigt eineausführliche Ansicht der E-Spezifikation für die Tabelle TAB-NAM und die alternative Tabelle TABSCO.

E FromfileToFile++Name++N/rN/tbLenPOSArrnamLenPDSComments++++ E TESTFILE TABNAM 1 5 20 TABSCO 3P0

Abb. 9.16: E-Spezifikationen für Tabelle TABNAM und alterna-tive Tabelle TABSCO

Der Name der Eingabedatei wird in Position 11 der E-Spezifika-tion angezeigt. Die E-Spezifikation definiert TABNAM als diePrimärtabelle und TABSCO als die entsprechende alternativeTabelle. Die Primärtabelle lädt ein Element pro Dateidatensatz,wie von dem Wert 1 in Position 35 angegeben. Position 39 defi-niert die Tabelle mit einem Höchstwert an fünf Elementen. JedesElement in TABNAM ist ein Feld mit einer Länge von 20 Zei-chen.

Innerhalb der Programmlogik wird eine Suche nach einem be-stimmten Schülernamen in der Tabelle mit den Schülernamendurchgeführt. Abb. 9.17 zeigt den Suchprozess.

CL0NO1NO2No3Factor1++++++++OpcdeFactor2++++ResultLenDHHIloEqCommentsC MOVEL’Joe’ MYNAME 20C MYNAME LOKUPTABNAM TABSCO 90C *IN90 IFEQ *ONC EXCPTPRINTC ENDIF

E FromfileToFile++Name++N/rN/tbLenPOSArrnamLenPDSComments++++ E TESTFILE TABNAM 1 5 20 TABSCO 3P0

Die Tabellendatei wird mit einem T-Eintrag in Position 16 ge-kennzeichnet. Die Datei wird für die Eingabe geöffnet, wie andem Eintrag 1 in Position 15 der F-Spezifikation erkennbar ist.Ein E in Position 39 zeigt die Existenz einer E-Spezifikation an,die die Tabellen, die die Eingabedateien verwenden, definiert.Die Tabellen, die der Eingabedatei entsprechen, werden in den E-Spezifikationen des Programms definiert. Abb. 9.16 zeigt eineausführliche Ansicht der E-Spezifikation für die Tabelle TAB-NAM und die alternative Tabelle TABSCO.

E FromfileToFile++Name++N/rN/tbLenPOSArrnamLenPDSComments++++ E TESTFILE TABNAM 1 5 20 TABSCO 3P0

Abb. 9.16: E-Spezifikationen für Tabelle TABNAM und alterna-tive Tabelle TABSCO

Der Name der Eingabedatei wird in Position 11 der E-Spezifika-tion angezeigt. Die E-Spezifikation definiert TABNAM als diePrimärtabelle und TABSCO als die entsprechende alternativeTabelle. Die Primärtabelle lädt ein Element pro Dateidatensatz,wie von dem Wert 1 in Position 35 angegeben. Position 39 defi-niert die Tabelle mit einem Höchstwert an fünf Elementen. JedesElement in TABNAM ist ein Feld mit einer Länge von 20 Zei-chen.

Innerhalb der Programmlogik wird eine Suche nach einem be-stimmten Schülernamen in der Tabelle mit den Schülernamendurchgeführt. Abb. 9.17 zeigt den Suchprozess.

CL0NO1NO2No3Factor1++++++++OpcdeFactor2++++ResultLenDHHIloEqCommentsC MOVEL’Joe’ MYNAME 20C MYNAME LOKUPTABNAM TABSCO 90C *IN90 IFEQ *ONC EXCPTPRINTC ENDIF

E FromfileToFile++Name++N/rN/tbLenPOSArrnamLenPDSComments++++ E TESTFILE TABNAM 1 5 20 TABSCO 3P0

Die Tabellendatei wird mit einem T-Eintrag in Position 16 ge-kennzeichnet. Die Datei wird für die Eingabe geöffnet, wie andem Eintrag 1 in Position 15 der F-Spezifikation erkennbar ist.Ein E in Position 39 zeigt die Existenz einer E-Spezifikation an,die die Tabellen, die die Eingabedateien verwenden, definiert.Die Tabellen, die der Eingabedatei entsprechen, werden in den E-Spezifikationen des Programms definiert. Abb. 9.16 zeigt eineausführliche Ansicht der E-Spezifikation für die Tabelle TAB-NAM und die alternative Tabelle TABSCO.

E FromfileToFile++Name++N/rN/tbLenPOSArrnamLenPDSComments++++ E TESTFILE TABNAM 1 5 20 TABSCO 3P0

Abb. 9.16: E-Spezifikationen für Tabelle TABNAM und alterna-tive Tabelle TABSCO

Der Name der Eingabedatei wird in Position 11 der E-Spezifika-tion angezeigt. Die E-Spezifikation definiert TABNAM als diePrimärtabelle und TABSCO als die entsprechende alternativeTabelle. Die Primärtabelle lädt ein Element pro Dateidatensatz,wie von dem Wert 1 in Position 35 angegeben. Position 39 defi-niert die Tabelle mit einem Höchstwert an fünf Elementen. JedesElement in TABNAM ist ein Feld mit einer Länge von 20 Zei-chen.

Innerhalb der Programmlogik wird eine Suche nach einem be-stimmten Schülernamen in der Tabelle mit den Schülernamendurchgeführt. Abb. 9.17 zeigt den Suchprozess.

CL0NO1NO2No3Factor1++++++++OpcdeFactor2++++ResultLenDHHIloEqCommentsC MOVEL’Joe’ MYNAME 20C MYNAME LOKUPTABNAM TABSCO 90C *IN90 IFEQ *ONC EXCPTPRINTC ENDIF

E FromfileToFile++Name++N/rN/tbLenPOSArrnamLenPDSComments++++ E TESTFILE TABNAM 1 5 20 TABSCO 3P0

Die Tabellendatei wird mit einem T-Eintrag in Position 16 ge-kennzeichnet. Die Datei wird für die Eingabe geöffnet, wie andem Eintrag 1 in Position 15 der F-Spezifikation erkennbar ist.Ein E in Position 39 zeigt die Existenz einer E-Spezifikation an,die die Tabellen, die die Eingabedateien verwenden, definiert.Die Tabellen, die der Eingabedatei entsprechen, werden in den E-Spezifikationen des Programms definiert. Abb. 9.16 zeigt eineausführliche Ansicht der E-Spezifikation für die Tabelle TAB-NAM und die alternative Tabelle TABSCO.

E FromfileToFile++Name++N/rN/tbLenPOSArrnamLenPDSComments++++ E TESTFILE TABNAM 1 5 20 TABSCO 3P0

Abb. 9.16: E-Spezifikationen für Tabelle TABNAM und alterna-tive Tabelle TABSCO

Der Name der Eingabedatei wird in Position 11 der E-Spezifika-tion angezeigt. Die E-Spezifikation definiert TABNAM als diePrimärtabelle und TABSCO als die entsprechende alternativeTabelle. Die Primärtabelle lädt ein Element pro Dateidatensatz,wie von dem Wert 1 in Position 35 angegeben. Position 39 defi-niert die Tabelle mit einem Höchstwert an fünf Elementen. JedesElement in TABNAM ist ein Feld mit einer Länge von 20 Zei-chen.

Innerhalb der Programmlogik wird eine Suche nach einem be-stimmten Schülernamen in der Tabelle mit den Schülernamendurchgeführt. Abb. 9.17 zeigt den Suchprozess.

CL0NO1NO2No3Factor1++++++++OpcdeFactor2++++ResultLenDHHIloEqCommentsC MOVEL’Joe’ MYNAME 20C MYNAME LOKUPTABNAM TABSCO 90C *IN90 IFEQ *ONC EXCPTPRINTC ENDIF

E FromfileToFile++Name++N/rN/tbLenPOSArrnamLenPDSComments++++ E TESTFILE TABNAM 1 5 20 TABSCO 3P0

Ein I.T.P. -Fachbuch

Datenfelder, Tabellen, und Datenstrukturen Kapitel 9 – Seite 21

Ein I.T.P. -Fachbuch

Datenfelder, Tabellen, und Datenstrukturen Kapitel 9 – Seite 21

Ein I.T.P. -Fachbuch

Datenfelder, Tabellen, und Datenstrukturen Kapitel 9 – Seite 21

Ein I.T.P. -Fachbuch

Datenfelder, Tabellen, und Datenstrukturen Kapitel 9 – Seite 21

Abb. 9.17: ILE RPG-Suchprozess

Der gesuchte Schülername, der im Feld MYNAME enthalten ist,wird bei der Suchoperation als Faktor eins verwendet. Die Sucheerfolgt in der Tabelle TABNames. Wenn dabei der Schülernamegefunden wird, wird Indikator 90 aktiviert und das entsprechendeElement in Tabelle TABScore zurückgegeben. Die verknüpfteTabelle, TABSCcore, enthält das dreistellige Prüfungsergebnis.

BeispielKompilierungszeit-Datenfelder mitGesamtsummen in ILE RPG

Wie Tabellen werden Datenfelder, die bei Kompilierung geladenwerden, aus Einträgen im Programmquellcode geladen.

ÜbersichtIn diesem Beispiel werden zwei Kompilierungszeit-Datenfelderfür die Aufnahme von Schülernamen und die damit verknüpftenPrüfungsergebnisse verwendet. Unter Angabe der Prüfungser-gebnisse des Schülers wird eine Suche nach einem bestimmtenSchülernamen ausgeführt. Nachdem die Daten geladen wurden,wird eine Gesamtsumme der Prüfungsergebnisse des Datenfeldsgebildet. Anschließend werden Schülername, das Prüfungser-gebnis und die Gesamtsumme aller Prüfungsergebnisse ausge-

CL0NO1NO2No3Factor1++++++++OpcdeFactor2++++ResultLenDHHIloEqCommentsC MOVEL'Joe' MYNAME 20C MYNAME LOKUPTABNAM TABSCO 90C *IN90 IFEQ *ONC EXCPTPRINTC ENDIF

Abb. 9.17: ILE RPG-Suchprozess

Der gesuchte Schülername, der im Feld MYNAME enthalten ist,wird bei der Suchoperation als Faktor eins verwendet. Die Sucheerfolgt in der Tabelle TABNames. Wenn dabei der Schülernamegefunden wird, wird Indikator 90 aktiviert und das entsprechendeElement in Tabelle TABScore zurückgegeben. Die verknüpfteTabelle, TABSCcore, enthält das dreistellige Prüfungsergebnis.

BeispielKompilierungszeit-Datenfelder mitGesamtsummen in ILE RPG

Wie Tabellen werden Datenfelder, die bei Kompilierung geladenwerden, aus Einträgen im Programmquellcode geladen.

ÜbersichtIn diesem Beispiel werden zwei Kompilierungszeit-Datenfelderfür die Aufnahme von Schülernamen und die damit verknüpftenPrüfungsergebnisse verwendet. Unter Angabe der Prüfungser-gebnisse des Schülers wird eine Suche nach einem bestimmtenSchülernamen ausgeführt. Nachdem die Daten geladen wurden,wird eine Gesamtsumme der Prüfungsergebnisse des Datenfeldsgebildet. Anschließend werden Schülername, das Prüfungser-gebnis und die Gesamtsumme aller Prüfungsergebnisse ausge-

CL0NO1NO2No3Factor1++++++++OpcdeFactor2++++ResultLenDHHIloEqCommentsC MOVEL'Joe' MYNAME 20C MYNAME LOKUPTABNAM TABSCO 90C *IN90 IFEQ *ONC EXCPTPRINTC ENDIF

Abb. 9.17: ILE RPG-Suchprozess

Der gesuchte Schülername, der im Feld MYNAME enthalten ist,wird bei der Suchoperation als Faktor eins verwendet. Die Sucheerfolgt in der Tabelle TABNames. Wenn dabei der Schülernamegefunden wird, wird Indikator 90 aktiviert und das entsprechendeElement in Tabelle TABScore zurückgegeben. Die verknüpfteTabelle, TABSCcore, enthält das dreistellige Prüfungsergebnis.

BeispielKompilierungszeit-Datenfelder mitGesamtsummen in ILE RPGWie Tabellen werden Datenfelder, die bei Kompilierung geladenwerden, aus Einträgen im Programmquellcode geladen.

ÜbersichtIn diesem Beispiel werden zwei Kompilierungszeit-Datenfelderfür die Aufnahme von Schülernamen und die damit verknüpftenPrüfungsergebnisse verwendet. Unter Angabe der Prüfungser-gebnisse des Schülers wird eine Suche nach einem bestimmtenSchülernamen ausgeführt. Nachdem die Daten geladen wurden,wird eine Gesamtsumme der Prüfungsergebnisse des Datenfeldsgebildet. Anschließend werden Schülername, das Prüfungser-gebnis und die Gesamtsumme aller Prüfungsergebnisse ausge-

CL0NO1NO2No3Factor1++++++++OpcdeFactor2++++ResultLenDHHIloEqCommentsC MOVEL'Joe' MYNAME 20C MYNAME LOKUPTABNAM TABSCO 90C *IN90 IFEQ *ONC EXCPTPRINTC ENDIF

Abb. 9.17: ILE RPG-Suchprozess

Der gesuchte Schülername, der im Feld MYNAME enthalten ist,wird bei der Suchoperation als Faktor eins verwendet. Die Sucheerfolgt in der Tabelle TABNames. Wenn dabei der Schülernamegefunden wird, wird Indikator 90 aktiviert und das entsprechendeElement in Tabelle TABScore zurückgegeben. Die verknüpfteTabelle, TABSCcore, enthält das dreistellige Prüfungsergebnis.

BeispielKompilierungszeit-Datenfelder mitGesamtsummen in ILE RPGWie Tabellen werden Datenfelder, die bei Kompilierung geladenwerden, aus Einträgen im Programmquellcode geladen.

ÜbersichtIn diesem Beispiel werden zwei Kompilierungszeit-Datenfelderfür die Aufnahme von Schülernamen und die damit verknüpftenPrüfungsergebnisse verwendet. Unter Angabe der Prüfungser-gebnisse des Schülers wird eine Suche nach einem bestimmtenSchülernamen ausgeführt. Nachdem die Daten geladen wurden,wird eine Gesamtsumme der Prüfungsergebnisse des Datenfeldsgebildet. Anschließend werden Schülername, das Prüfungser-gebnis und die Gesamtsumme aller Prüfungsergebnisse ausge-

CL0NO1NO2No3Factor1++++++++OpcdeFactor2++++ResultLenDHHIloEqCommentsC MOVEL'Joe' MYNAME 20C MYNAME LOKUPTABNAM TABSCO 90C *IN90 IFEQ *ONC EXCPTPRINTC ENDIF

Ein I.T.P. -Fachbuch

Seite 22 – Kapitel 9 Handbuch für AS/400-Programmierer

Ein I.T.P. -Fachbuch

Seite 22 – Kapitel 9 Handbuch für AS/400-Programmierer

Ein I.T.P. -Fachbuch

Seite 22 – Kapitel 9 Handbuch für AS/400-Programmierer

Ein I.T.P. -Fachbuch

Seite 22 – Kapitel 9 Handbuch für AS/400-Programmierer

druckt. Listing 9.5 zeigt die ILE RPG Source für RPG005R undillustriert die Verwendung von zur Kompilierungszeit ladendenDatenfeldern.

Listing 9.5: ILE RPG mit Kompilierungszeit-Datenfeldern

FQPRINT 0 F132 PrinterDname S 20 Dim(5) CTDATA Perrcd(1)DtestDScore S 3 0 DDim(5) CTDATA Perrcd(1)D*DmyName S 20 Inz(‚Joe‘)DX S 3 0DtotScores S 3 0*C Eval X=1C MyName Lookup Name(X) 90C If *In90 = *On*C Xfoot TestScore TotScores*C Except PrintitC Endif*C Eval *InLR = *OnC Return*OQPRINT E Printit 10 Name(X) 250 TestScore(X) Z 300 38 ‚Total:‘0 TotScores Z 42**CTDATA NameBilly BobJoeAbbeyZoeGarth**CTDATA TestScore085090065055099

FQPRINT 0 F 132 PrinterDname S 20 Dim(5) CTDATA Perrcd(1)DtestDScore S 3 0 DDim(5) CTDATA Perrcd(1)D*DmyName S 20 Inz('Joe')DX S 3 0DtotScores S 3 0*C Eval X=1C MyName Lookup Name(X) 90C If *In90 = *On*C Xfoot TestScore TotScores*C Except PrintitC Endif*C Eval *InLR = *OnC Return*OQPRINT E Printit 10 Name(X) 250 TestScore(X) Z 300 38 'Total:'0 TotScores Z 42**CTDATA NameBilly BobJoeAbbeyZoeGarth**CTDATA TestScore085090065055099

druckt. Listing 9.5 zeigt die ILE RPG Source für RPG005R undillustriert die Verwendung von zur Kompilierungszeit ladendenDatenfeldern.

Listing 9.5: ILE RPG mit Kompilierungszeit-Datenfeldern

FQPRINT 0 F132 PrinterDname S 20 Dim(5) CTDATA Perrcd(1)DtestDScore S 3 0 DDim(5) CTDATA Perrcd(1)D*DmyName S 20 Inz(‚Joe‘)DX S 3 0DtotScores S 3 0*C Eval X=1C MyName Lookup Name(X) 90C If *In90 = *On*C Xfoot TestScore TotScores*C Except PrintitC Endif*C Eval *InLR = *OnC Return*OQPRINT E Printit 10 Name(X) 250 TestScore(X) Z 300 38 ‚Total:‘0 TotScores Z 42**CTDATA NameBilly BobJoeAbbeyZoeGarth**CTDATA TestScore085090065055099

FQPRINT 0 F 132 PrinterDname S 20 Dim(5) CTDATA Perrcd(1)DtestDScore S 3 0 DDim(5) CTDATA Perrcd(1)D*DmyName S 20 Inz('Joe')DX S 3 0DtotScores S 3 0*C Eval X=1C MyName Lookup Name(X) 90C If *In90 = *On*C Xfoot TestScore TotScores*C Except PrintitC Endif*C Eval *InLR = *OnC Return*OQPRINT E Printit 10 Name(X) 250 TestScore(X) Z 300 38 'Total:'0 TotScores Z 42**CTDATA NameBilly BobJoeAbbeyZoeGarth**CTDATA TestScore085090065055099

druckt. Listing 9.5 zeigt die ILE RPG Source für RPG005R undillustriert die Verwendung von zur Kompilierungszeit ladendenDatenfeldern.

Listing 9.5: ILE RPG mit Kompilierungszeit-Datenfeldern

FQPRINT 0 F132 PrinterDname S 20 Dim(5) CTDATA Perrcd(1)DtestDScore S 3 0 DDim(5) CTDATA Perrcd(1)D*DmyName S 20 Inz(‚Joe‘)DX S 3 0DtotScores S 3 0*C Eval X=1C MyName Lookup Name(X) 90C If *In90 = *On*C Xfoot TestScore TotScores*C Except PrintitC Endif*C Eval *InLR = *OnC Return*OQPRINT E Printit 10 Name(X) 250 TestScore(X) Z 300 38 ‚Total:‘0 TotScores Z 42**CTDATA NameBilly BobJoeAbbeyZoeGarth**CTDATA TestScore085090065055099

FQPRINT 0 F 132 PrinterDname S 20 Dim(5) CTDATA Perrcd(1)DtestDScore S 3 0 DDim(5) CTDATA Perrcd(1)D*DmyName S 20 Inz('Joe')DX S 3 0DtotScores S 3 0*C Eval X=1C MyName Lookup Name(X) 90C If *In90 = *On*C Xfoot TestScore TotScores*C Except PrintitC Endif*C Eval *InLR = *OnC Return*OQPRINT E Printit 10 Name(X) 250 TestScore(X) Z 300 38 'Total:'0 TotScores Z 42**CTDATA NameBilly BobJoeAbbeyZoeGarth**CTDATA TestScore085090065055099

druckt. Listing 9.5 zeigt die ILE RPG Source für RPG005R undillustriert die Verwendung von zur Kompilierungszeit ladendenDatenfeldern.

Listing 9.5: ILE RPG mit Kompilierungszeit-Datenfeldern

FQPRINT 0 F132 PrinterDname S 20 Dim(5) CTDATA Perrcd(1)DtestDScore S 3 0 DDim(5) CTDATA Perrcd(1)D*DmyName S 20 Inz(‚Joe‘)DX S 3 0DtotScores S 3 0*C Eval X=1C MyName Lookup Name(X) 90C If *In90 = *On*C Xfoot TestScore TotScores*C Except PrintitC Endif*C Eval *InLR = *OnC Return*OQPRINT E Printit 10 Name(X) 250 TestScore(X) Z 300 38 ‚Total:‘0 TotScores Z 42**CTDATA NameBilly BobJoeAbbeyZoeGarth**CTDATA TestScore085090065055099

FQPRINT 0 F 132 PrinterDname S 20 Dim(5) CTDATA Perrcd(1)DtestDScore S 3 0 DDim(5) CTDATA Perrcd(1)D*DmyName S 20 Inz('Joe')DX S 3 0DtotScores S 3 0*C Eval X=1C MyName Lookup Name(X) 90C If *In90 = *On*C Xfoot TestScore TotScores*C Except PrintitC Endif*C Eval *InLR = *OnC Return*OQPRINT E Printit 10 Name(X) 250 TestScore(X) Z 300 38 'Total:'0 TotScores Z 42**CTDATA NameBilly BobJoeAbbeyZoeGarth**CTDATA TestScore085090065055099