INCLUDE
copycode-name
[operand1
99]
|
Dieses Dokument behandelt folgende Themen:
Eine Erläuterung der in dem Syntax-Diagramm verwendeten Symbole entnehmen Sie dem Abschnitt Syntax-Symbole.
Das Statement INCLUDE
dient dazu, den Quellcode eines
externen Objekts vom Typ Copycode bei der Kompilierung in ein
anderes Objekt einzufügen.
Das INCLUDE
-Statement wird bei der
Kompilierung ausgewertet. Die Quellcode-Zeilen des Copycodes werden
nicht physisch in den Quellcode des Programms eingefügt, das das
INCLUDE
-Statement enthält, und der eingefügte Copycode ist als
Teil des Objektmoduls im kompilierten Programm enthalten.
Anmerkung:
Eine Quellcode-Zeile, die ein INCLUDE
-Statement
enthält, darf kein anderes Statement enthalten.
Operanden-Definitionstabelle:
Operand | Mögliche Struktur | Mögliche Formate | Referenzierung erlaubt | Dynam. Definition | ||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
operand1 | C | A | U | nein | nein |
Syntax-Element-Beschreibung:
Syntax-Element | Beschreibung |
---|---|
copycode-name
|
Copycode-Name:
Als copycode-name geben Sie den Namen des Copycodes an, dessen Source eingefügt werden soll. Die Groß-/Kleinschreibung des Namens wird nicht verändert. Der copycode-name kann ein
Kaufmännisches Und (&) enthalten; bei der Kompilierung wird dieses Zeichen
durch den aus einem Zeichen bestehenden Code ersetzt, der dem aktuellen Wert
der Systemvariablen Das Objekt, dessen Namen Sie angeben, muss vom Objekttyp
Copycode sein. Der Copycode muss entweder in derselben Library gespeichert sein
wie das Programm, das das Wenn der Quellcode des Copycodes verändert wird, müssen alle Programme, in denen der Copycode eingefügt ist, neu kompiliert werden, damit die Änderungen in den Objektmodulen zum Tragen kommen. Der Quellcode des Copycodes muss aus syntaktisch vollständigen Statements bestehen. |
operand1
|
Dynamisch einzufügende
Werte:
In den einzufügenden Copycode können Sie dynamisch Werte einsetzen. Diese Werte werden mit operand1 angegeben. Im Copycode werden die Werte mit der folgenden Notation referenziert: &n& d.h. Sie markieren die Stelle, an der ein Wert eingesetzt
werden soll, mit Für jede
Sie können einen Copycode-Parameter
( Eine Zeichenkette kann einem oder mehreren Copycode-
Parametern ohne ein Leerzeichen folgen (d.h. Anmerkung: Mit dem |
Beispiel 2 - INCLUDE-Statement mit einzufügendem Copycode mit Parametern
Beispiel 4 - INCLUDE-Statement mit verketteten Parametern in Copycode
INCEX1
ist das Programm, das das
INCLUDE
-Statement enthält:
** Example 'INCEX1': INCLUDE (include copycode) ************************************************************************ * WRITE 'Before copycode' * INCLUDE INCEX1C * WRITE 'After copycode' * END
Einzufügender Copycode INCEX1C
:
** Example 'INCEX1C': INCLUDE (copycode used by INCEX1) ************************************************************************ * WRITE 'Inside copycode'
Ausgabe des Programms INCEX1
:
Page 1 05-01-25 16:26:36 Before copycode Inside copycode After copycode
INCEX2
ist das Programm, das das
INCLUDE
-Statement enthält:
** Example 'INCEX2': INCLUDE (include copycode with parameters) ************************************************************************ DEFINE DATA LOCAL 1 EMPL-VIEW VIEW OF EMPLOYEES 2 NAME END-DEFINE * * INCLUDE INCEX2C 'EMPL-VIEW' 'NAME' '''ARCHER''' '20' '''BAILLET''' * END
Einzufügender Copycode INCEX2C
:
** Example 'INCEX2C': INCLUDE (copycode used by INCEX2) ************************************************************************ * Transferred parameters from INCEX2: * * &1& : EMPL-VIEW * &2& : NAME * &3& : 'ARCHER' * &4& : 20 * &5& : 'BAILLET' * * READ (&4&) &1& BY &2& = &3& DISPLAY &2& IF &2& = &5& WRITE 5X 'LAST RECORD FOUND' &2& STOP END-IF END-READ * * Statements above will be completed to: * * READ (20) EMPL-VIEW BY NAME = 'ARCHER' * DISPLAY NAME * IF NAME = 'BAILLET' * WRITE 5X 'LAST RECORD FOUND' NAME * STOP * END-IF * END-READ
Ausgabe des Programms INCEX2
:
Page 1 05-01-25 16:30:43 NAME -------------------- ARCHER ARCONADA ARCONADA ARNOLD ASTIER ATHERTON ATHERTON ATHERTON AUBERT BACHMANN BAECKER BAECKER BAGAZJA BAILLET LAST RECORD FOUND BAILLET
INCEX3
ist das Programm, das das
INCLUDE
-Statement enthält:
** Example 'INCEX3': INCLUDE (using nested copycodes) ************************************************************************ DEFINE DATA LOCAL 1 #A (I4) END-DEFINE * MOVE 123 TO #A WRITE 'Program INCEX3 ' '=' #A * INCLUDE INCEX31C '#A' '5' /* source line is #A := 5 * * MOVE 300 TO #A WRITE 'Program INCEX3 ' '=' #A * INCLUDE INCEX32C '''#A''' '''20''' /* source line is #A := 20 * WRITE 'Program INCEX3 ' '=' #A END
Einzufügender Copycode INCEX31C
:
** Example 'INCEX31C': INCLUDE (copycode used by INCEX3) ************************************************************************ * Transferred parameters from INCEX3: * * &1& : #A * &2& : 5 * * &1& := &2& * WRITE 'Copycode INCEX31C' '=' &1&
Einzufügender Copycode INCEX32C
:
** Example 'INCEX32C': INCLUDE (copycode used by INCEX3) ************************************************************************ * Transferred parameters from INCEX3: * * &1& : '#A' * &2& : '20' * * WRITE 'Copycode INCEX32C' &1& &2& * INCLUDE INCEX31C &1& &2&
Ausgabe des Programms INCEX3
:
Page 1 05-01-25 16:35:36 Program INCEX3 #A: 123 Copycode INCEX31C #A: 5 Program INCEX3 #A: 300 Copycode INCEX32C #A 20 Copycode INCEX31C #A: 20 Program INCEX3 #A: 20
INCEX4
ist das Programm, das das
INCLUDE
-Statement enthält:
** Example 'INCEX4': INCLUDE (with concatenated parameters in copycode) ************************************************************************ DEFINE DATA LOCAL 1 #GROUP 2 ABC(A10) INIT <'1234567890'> END-DEFINE * INCLUDE INCEX4C '#GROUP.' 'ABC' 'AB' * END
Einzufügender Copycode INCEX4C
:
** Example 'INCEX4C': INCLUDE (copycode used by INCEX4) ************************************************************************ * Transferred parameters from INCEX4: * * &1& : #GROUP. * &2& : ABC * &3& : AB * * WRITE '=' &2& /* 'ABC' results into ABC WRITE '=' &1&ABC /* '#GROUP.' ABC results into #GROUP.ABC WRITE '=' &1&&2& /* '#GROUP.' 'ABC' results into #GROUP.ABC WRITE '=' &1&&3&C /* '#GROUP.' 'AB' C results into #GROUP.ABC
Ausgabe des Programms INCEX4
:
Page 1 05-01-25 16:37:59 ABC: 1234567890 ABC: 1234567890 ABC: 1234567890 ABC: 1234567890