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 Sourcecode eines
externen Objekts vom Typ Copycode bei der Kompilierung in ein
anderes Objekt einzufügen.
Das INCLUDE
-Statement wird bei der Kompilierung
ausgewertet. Die Sourcecode-Zeilen des Copycodes werden nicht physisch in den
Sourcecode 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 Sourcecode-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 Sourcecode 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 Sourcecode 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