|
|
[b:21439bc277]数据区DTAARA+RPGIV的运用[/b:21439bc277]
我们在程序之间进行数据交换的时候,可以使用参数(Parameter)、数据库文件、数据队列(DATAQ)等方式。使用参数表的方法仅仅能够在作业内部进行。而数据区(Data Area)方式可以在不同作业之间进行数据交换,我们可以把Data Area看成是程序之间进行数据交换的公共数据区。
系统在每一个作业中自动提供一个本地数据区LDA(Local Data Area),每一个数据区提供字符类型、长度为1024Byte、初始化为空白的数据区。如果我们通过SBMJOB提交一个批处理作业至后台执行,LDA将自动复制它的数据至提交作业的LDA,因此提交的后台作业可以存取原来作业的LDA任何数据;当提交的作业结束,关闭这个LDA退出。使用DSPDTAARA命令显示本地数据区,注意选项Data Area为*LDA(本地数据区)。
执行DSPDTAARA *LDA后,我们可以看见数据区的内容:左边Offset表明了字符串的起始位置。
<图1>
我们还可以使用CRTDTAARA生成一个显示命名的数据区。其最大的数据区最大长度可以为2000Byte,其数据库类型可以是字符类型、数值类型、逻辑类型以及DDM类型,显示生成的数据区必须使用命令DLTDTAARA进行删除,此外还有一个CL是WRKDTAARA,此命令集成了对数据区的操作。下图显示了使用: CRTDTAARA DTAARA(LIU/DTAARA1) TYPE(*CHAR) LEN(2000) TEXT('My Data Area')生成的数据区DTAARA1。
[code:1:21439bc277] Create Data Area (CRTDTAARA)
Type choices, press Enter.
Data area . . . . . . . . . . . > DTAARA1 Name
Library . . . . . . . . . . . > LIU Name, *CURLIB
Type . . . . . . . . . . . . . . > *CHAR *DEC, *CHAR, *LGL, *DDM
Length:
Length . . . . . . . . . . . . > 2000 1-2000
Decimal positions . . . . . . 0-9
Initial value . . . . . . . . .
Remote data area . . . . . . . . Name
Library . . . . . . . . . . . Name, *LIBL, *CURLIB
Remote location . . . . . . . . Name
APPC device description . . . . *LOC Name, *LOC
Local location . . . . . . . . . *LOC Name, *LOC, *NETATR
Mode . . . . . . . . . . . . . . *NETATR Name, *NETATR
Remote network identifier . . . *LOC Name, *LOC, *NETATR, *NONE
Text 'description' . . . . . . . > 'My Data Area'
More...
F3=Exit F4=Prompt F5=Refresh F12=Cancel F13=How to use this display
F24=More keys [/code:1:21439bc277]
<图2>
那么如何在RPGIV中定义以及使用Data Area呢?请看下例:
定义本地数据区:见代码0002~0003行,在DS前面加入U(第23列),你不必提供LDA的名字;Infor1在LDA下面定义长度为8、小数点为0。
定义命名数据区:见代码0004~0005行,先显式地定义数据区名Receipts,接着定义了Receipts的子结构Name、ID、Amount。
[code:1:21439bc277]
Columns . . . : 6 76 Browse LIU/QRPGLESRC
SEU==> DATAARA1
FMT * *. 1 ...+... 2 ...+... 3 ...+... 4 ...+... 5 ...+... 6 ...+... 7 ...+.
*************** Beginning of data *************************************
0001.00 * Data Area Example 1
0002.00 D UDS
0003.00 D Infor1 8 0
0003.01 *
0004.00 D Receipts UDS
0005.00 D Name 20
0005.01 D ID 7
0005.02 D Amount 13
0006.00 *
0013.00 C EVAL *INLR=*ON
0015.00 C RETURN
0016.00 **
****************** End of data ****************************************
F3=Exit F5=Refresh F9=Retrieve F10=Cursor F11=Toggle F12=Cancel
F16=Repeat find F24=More keys
(C) COPYRIGHT IBM CORP. 1981, 2002.
[/code:1:21439bc277]
此外,可以使用关联语句对外部数据区或者本地数据区与RPGIV数据结构进行关联,需要注意的是,定义本地数据区如果使用了D类定义,不要再重复使用*DTAARA DEFINE定义本地数据区(在下例中,一旦使用了上一例子中的本地数据区定义,就不必使用本例的第0013.01行对本地数据区的定义)。
请看下例:使用DTAARA DEFINE语句将数据结构与数据区相关联,DEFINE语句因子1(Factor1)必须为*DTAARA;
第0013.01行将本地数据区与字段定义Infor1相互关联;
第0013.04行显示定义的数据区Receipts(使用CL命令CRTDTAARA建立的数据区Receipts)与数据结构Receipts相关联,由于外部数据区名与RPGIV内部数据结构名一致,因此因子2(Factor2)可以是空白;
第0013.07行定义的数据区DtaAra1与RPGIV定义的变量DtaFld相关联。
[code:1:21439bc277]
备注:
0013.01 C *DTAARA DEFINE *LDA Infor1
↑ ↑ ↑
因子1必须为 因子2外部数据区名, 结构项可以包括字段、
*DTAARA 本地数据区写入*LDA 数据结构、数据结构子项
[/code:1:21439bc277]
[code:1:21439bc277]
Columns . . . : 6 76 Browse LIU/QRPGLESRC
SEU==> DATAARA2
FMT * *. 1 ...+... 2 ...+... 3 ...+... 4 ...+... 5 ...+... 6 ...+... 7 ...+.
*************** Beginning of data *************************************
0001.00 * Data Area Example 2
0003.00 D Infor1 S 18
0003.01 *
0004.00 D Receipts UDS
0005.00 D Name 20
0005.01 D ID 7
0005.02 D Amount 13 2
0006.02 *
0006.03 D DtaFld S 200
0006.04 *
0013.00 ** Local Data area associated with infor 1
0013.01 C *DTAARA DEFINE *LDA Infor1
0013.02 **
0013.03 ** Data area Receipts associated with dtata structure Receipts
0013.04 C *DTAARA DEFINE Receipts
0013.05 **
0013.06 ** Data area DTAARA1 associated with field DtaFld
0013.07 C *DTAARA DEFINE DtaAra1 DtaFld
0013.08 **
0013.09 C EVAL *INLR=*ON
0015.00 C RETURN
0016.00 **
****************** End of data ****************************************
F3=Exit F5=Refresh F9=Retrieve F10=Cursor F11=Toggle F12=Cancel
F16=Repeat find F24=More keys
[/code:1:21439bc277]
需要指出,并非定义了数据区与数据结构的关联数据就可以自动进行输入输出了,必须使用显式的“写”或者“读”语句对数据其进行操作。
下面进行分段阐述。
[b:21439bc277]<1>数据区操作语句:IN读数据区以及数据区锁定[/b:21439bc277]
语句IN将数据区的内容读入程序,因子2必须包含DTAARA DEFINE所定义的结果项。如果将因子1定义*LOCK保留字,数据区的数据将被锁定,则可以防止其他程序修改此数据区的数据;如果原先的IN语句已经指定了*LOCK保留字,则以下的IN语句将会保持锁定状态,直至发出UNLOCK语句;同理,如果原先IN语句没有指定*LOCK保留字,则以下的IN语句处于非锁定状态。
不可以在本地数据区使用*LOCK保留字,见下例:
[code:1:21439bc277]
0013.09 C IN Infor1
0013.10 **
0013.11 C *LOCK IN Receipts
0013.12 **
0013.13 C *LOCK IN DtaFld
[/code:1:21439bc277]
[b:21439bc277]<2>数据区操作语句:OUT写数据区操作以及数据区锁定[/b:21439bc277]
语句OUT将数据区写入数据区(或者叫用数据修改数据区的数据)。因子2必须包含DTAARA DEFINE语句定义的结果项。
此外,只有已经使用IN语句或者是其他隐式读语句(使用数据结构存取数据)对数据区进行了读操作,才可以使用OUT语句。如果在因子1使用*LOCK保留字,则在写操作的时候对数据区进行锁定;如果因子1为空白,则默认状态为不锁定。
对本地数据区不可以使用锁定保留字*LOCK。
[code:1:21439bc277]
0013.15 C OUT Infor1
0013.16 **
0013.17 C *LOCK OUT Receipts
0013.18 **
0013.20 C OUT DtaFld
0013.21 **
[/code:1:21439bc277]
[b:21439bc277]<3>数据区操作语句:UNLOCK解除数据区锁定[/b:21439bc277]
UNLOCK操作解除在因子2定义的数据区。在已经解锁的数据区使用UNLOCK操作不会引起系统错误。
不可以在本地数据区使用UNLOCK。
[code:1:21439bc277]
0013.21 **
0013.22 C UNLOCK Receipts
0013.23 **
[/code:1:21439bc277]
△附加完整DTAARA3的RPGLE代码:
[code:1:21439bc277]
Columns . . . : 6 76 Browse LIU/QRPGLESRC
SEU==> DATAARA3
FMT * *. 1 ...+... 2 ...+... 3 ...+... 4 ...+... 5 ...+... 6 ...+... 7 ...+.
*************** Beginning of data *************************************
0001.00 * Data Area Example 2
0003.00 D Infor1 S 18
0003.01 *
0004.00 D Receipts UDS
0005.00 D Name 20
0005.01 D ID 7
0005.02 D Amount 13 2
0006.02 *
0006.03 D DtaFld S 2000
0006.04 *
0013.00 ** Local Data area associated with infor 1
0013.01 C *DTAARA DEFINE *LDA Infor1
0013.02 **
0013.03 ** Data area Receipts associated with dtata structure Receipts
0013.04 C *DTAARA DEFINE Receipts
0013.05 **
0013.06 ** Data area DTAARA1 associated with field DtaFld
0013.07 C *DTAARA DEFINE DtaAra1 DtaFld
0013.08 **
0013.09 C IN Infor1
0013.10 **
0013.11 C *LOCK IN Receipts
0013.12 **
0013.13 C *LOCK IN DtaFld
0013.14 **
0013.15 C OUT Infor1
0013.16 **
0013.17 C *LOCK OUT Receipts
0013.18 **
0013.20 C OUT DtaFld
0013.21 **
0013.22 C UNLOCK Receipts
0013.23 **
0013.24 C EVAL *INLR=*ON
0015.00 C RETURN
0016.00 **
****************** End of data ****************************************
F3=Exit F5=Refresh F9=Retrieve F10=Cursor F11=Toggle F12=Cancel
F16=Repeat find F24=More keys
[/code:1:21439bc277]

| <图1>

| <图2>
| nhxingliang 回复于:2005-08-24 11:17:55
| 学习中.........
谢谢了!!!!!!!!! :em02: :em02: :em02:
| | kempzhang 回复于:2005-08-24 11:55:56
| 那昨天说到的那个 *NAMVAR DEFINE *LDA Infor1
*NAMVAR 和*DTAARA 这两个参数有啥不同?Qingzhou大哥能否解释下?
| | qingzhou 回复于:2005-08-24 12:13:22
| [quote:d0741f1427="kempzhang"]那昨天说到的那个 *NAMVAR DEFINE *LDA Infor1
*NAMVAR 和*DTAARA 这两个参数有啥不同?Qingzhou大哥能否解释下?[/quote:d0741f1427]
使用DEFINE操作码的因子1有2种情况,一是使用*DTAARA,二是使用*LIKE,我也没用过使用*NAMVAR的情况。
===============================================
4.4.20 DEFINE(字段定义)
[code:1:d0741f1427] 操作码 因子1 因子2 结果字段 指示器
DEFINE *LIKE 引用字段名 定义的字段
DEFINE *DTAARA 外部数据区 内部字段[/code:1:d0741f1427]
根据因子1的规定,DEFINE操作可做下列事情:
•根据其它字段的属性(长度和小数位)定义一个字段。
•定义一个字段作数据区。
可以在计算中任一个地方说明DEFINE操作,可把控制级项(7和8列)可以是空格或L1-L9指示器、LR指示器或L0项合成一组语句,放在程序的适当地方。控制级项仅用于文本。不允许条件指示器项(9-11列)。
4.4.20.1 *LIKE DEFINE
在因子1上有*LIKE 的“DEFINE(字段定义)”操作,根据其它字段的属性(长度和小数位)来定义一个字段。
因子2上必须有一个引用的字段名,而结果字段必须是要被定义的字段名。因子2上说明的字段,可以在程序中或外部定义,它为要定义的字段提供属性。因子2不能是一个文字或命名常量。如果因子2是一个数组、数组元素或表名,用数组元素或表的属性来定义该字段。结果字段不能是数组、数组元素、数据结构或一个表名。
64-68列(字段长度)用来规定结果字段比因子2长些或短些,数字前的加号(+)指出增加的长度;减号(-)表示减少的长度。65-68列是增加或减少的长度(右对齐)或是空格。如果64-68列上是空格,则结果字段的长度与因子2长度相同来定义,对要定义的字段不能修改小数位。
字段长度项只允许对图形、数字和字符型字段定义。
对于图形字段,字段长度要用双字节字符来计算。
*LIKE DEFINE的例子见4.4.20.2图129。
4.4.20.2 *DTAARA DEFINE
在因子1上有*DTAARA的DEFINE操作把一个字段、一个数据结构、一个数据结构字段或一个数据区数据结构(RPGⅣ程序内)与一个AS/400数据区(RPGⅣ程序之外)相联系。
用因子2说明一个数据区的外部名。用*LDA说明局部数据区的名或用*PDA说明程序初始化参数(PIP)数据区。如果因子2是空格,则结果字段是RPGⅣ名和该数据区的外部名。
在结果字段说明一个在程序中已经定义的字段名,可以是数据结构名、一个数据结构子字段名、或一个数据区数据结构。用这些名加上IN及OUT操作一起来从因子2指定的数据区中接收数据。当在结果字段上说明了一个数据区数据结构时,RPGⅣ在程序开始时从数据区中接收数据,并在程序结束时将数据写回到该数据区中去。
结果字段不能是一个程序状态数据结构名、一个文件信息数据结构(INFDS)名、一个多次出现的数据结构名、一个输入记录字段名、一个数组名、一个数组元素或一个表名。它也不能是一个多次出现的数据结构的子字段名、一个数据区数据结构名、一个程序状态数据结构名、一个文件信息数据结构(INFDS)名,或一个在*DTAARA DEFINE语句上的出现过的数据结构名,或已在定义规范表中用DTAARA键字定义为一个数据区的数据结构名。
在64-70列上,可以定义结果字段中的长度和小数位。这些说明必须与因子2上说明的数据区的外部描述相匹配。局部数据区是长度为1024的字符型数据,但在程序内,可以访问的局部数据区。长度可大于或小于1024。
[code:1:d0741f1427]
*...1....+....2....+....3....+....4....+....5....+....6....+....7...+....
CL0N01Factor1+++++++Opcode(E)+Factor2+++++++Result++++++++Len++D+HiLoEq....
*
C* FLDA是7位字符字段,FLDB是5位数字二位小数的数字字段,FLDP
C* 是7位的字符字段。
C *LIKE DEFINE FLDA FLDP
C*
C* FLDQ是9位的字符字段。
C *LIKE DEFINE FLDA FLDQ +2
C*
C* FLDR是6位的字符字段。
C *LIKE DEFINE FLDA FLDR - 1
C*
C* FLDS是5位数字二位小数的数字字段。
C *LIKE DEFINE FLDB FLDS
C*
C* FLDT是6位数字二位小数的数字字段。
C *LIKE DEFINE FLDB FLDT + 1
C*
C* FLDU是3位数字二位小数的数字字段。
C *LIKE DEFINE FLDB FLDU - 2
C*
C* FLDX是3位数字二位小数的数字字段。
C *LIKE DEFINE FLDU FLDX
*...1....+....2....+....3....+....4....+....5....+....6....+....7...+....
CL0N01Factor1+++++++Opcode(E)+Factor2+++++++Result++++++++Len++D+HiLoEq....
C*
C* 数据区(TOTGRS)的属性(长度与小数位)必须与外部数据区相同。
C
C *DTAARA DEFINE TOTGRS 10 2
C
C* 结果字段(TOTNET)是RPG Ⅳ程序中所用的数据区名,因子2
C* (TOTAL)是程序定义的数据区名。
C
C *DTAARA DEFINE TOTAL TOTNET
C
C* 结果字段(SAVTOT)是RPG Ⅳ程序中用的数据区名,因子2
C* (*LDA)指出它是本地数据区。
C
C *DTAARA DEFINE *LDA SAVTOT
图129 DEFINE 操作[/code:1:d0741f1427]
| | Fair_man 回复于:2005-08-24 14:07:44
| 没用过RPGIV,从楼上的解释,是一样的东西。
| | qingzhou 回复于:2005-08-24 14:21:23
| :oops: Sorry,刚才查了一下相关资料,的确有使用*NAMVAR作为DEFINE操作码的因子1的情况。
我下午仔细琢磨了一下,个人理解是这样的:
*NAMVAR是表示让I表定义的#LDA中的字段与*LDA进行相关联;
0084.00 C** READ LDA
0085.00 C *NAMVAR DEFN *LDA #LDA
0086.00 C IN *NAMVAR
*DTAARA是表示将本地数据区与字段定义Infor1相互关联。
0013.01 C *DTAARA DEFINE *LDA Infor1
下面有具体的DSPF+RPGIII程序使用LDA的例子。
[b:5eee1a09b9]R21AMLBE/QDSPSRC(AASLDAD)[/b:5eee1a09b9]
[code:1:5eee1a09b9]
Columns . . . : 1 71 Browse R21AMLBE/QDSPSRC
SEU==> AASLDAD
FMT A* .....A*. 1 ...+... 2 ...+... 3 ...+... 4 ...+... 5 ...+... 6 ...+... 7
*************** Beginning of data *************************************
0001.00 A****************************************************************
0002.00 A** RICOH CO. **
0003.00 A** PGM ID AASLDAD **
0004.00 A** PGM NAME INPUT LDA **
0005.00 A**------------------------------------------------------------**
0006.00 A** PGM DESCRIPTION **
0007.00 A** **
0008.00 A** CREATION DATE 98/03/25 **
0009.00 A** PROGRAMMER NAME H.YAMAZAKI **
0010.00 A****************************************************************
0011.00 A PRINT
0012.00 A****************************************************************
0013.00 A R FMT01
0014.00 A PUTOVR
0015.00 A CF24(24)
0016.00 A 1 3DATE EDTCDE(Y)
0017.00 A 1 12TIME
0018.00 A 1 23'** INPUT LDA **'
0019.00 A OVRATR DSPATR(RI UL)
0020.00 A 1 63'AASLDA'
0021.00 A XWSID 10 O 1 70
0022.00 A*
0023.00 A 3 8'#LUSER:'
0024.00 A #LUSER 10A B 3 16DSPATR(UL)
0025.00 A 3 48'#LWSID:'
0026.00 A #LWSID 10A B 3 56DSPATR(UL)
0027.00 A 4 8'#LWSNO:'
0028.00 A #LWSNO 2A B 4 16DSPATR(UL)
0029.00 A 4 48'#LOUTQ:'
0030.00 A #LOUTQ 10A B 4 56DSPATR(UL)
0031.00 A 5 8'#LJOPT:'
0032.00 A #LJOPT 1A B 5 16DSPATR(UL)
0033.00 A 5 48'#LRETN:'
0034.00 A #LRETN 2A B 5 56DSPATR(UL)
0035.00 A 6 8'#LTSTC:'
0036.00 A #LTSTC 8A B 6 16DSPATR(UL)
0037.00 A 6 48'#LDFMT:'
0038.00 A #LDFMT 1A B 6 56DSPATR(UL)
0039.00 A 7 8'#LENVM:'
0040.00 A #LENVM 1A B 7 16DSPATR(UL)
0041.00 A 7 48'#LJOBD:'
0042.00 A #LJOBD 10A B 7 56DSPATR(UL)
0043.00 A 8 8'#LJOBQ:'
0044.00 A #LJOBQ 10A B 8 16DSPATR(UL)
0045.00 A 8 48'#LSYSM:'
0046.00 A #LSYSM 8A B 8 56DSPATR(UL)
0047.00 A 9 8'#LFACT:'
0048.00 A #LFACT 2A B 9 16DSPATR(UL)
0049.00 A 9 48'#LXDEV:'
0050.00 A #LXDEV 2A B 9 56DSPATR(UL)
0051.00 A 10 8'#LSJOB:'
0052.00 A #LSJOB 10A B 10 16DSPATR(UL)
0053.00 A 10 48'#LBDTE:'
0054.00 A #LBDTE 8A B 10 56DSPATR(UL)
0055.00 A 11 8'#LIUSR:'
0056.00 A #LIUSR 10A B 11 16DSPATR(UL)
0057.00 A 11 48'#LTUSR:'
0058.00 A #LTUSR 10A B 11 56DSPATR(UL)
0059.00 A 12 8'#FCOQR:'
0060.00 A #LFCOQ 10A B 12 16DSPATR(UL)
0061.00 A 13 8'#FCCDR:'
0062.00 A #LFCCD 4A B 13 16DSPATR(UL)
0063.00 A 14 8'#LKEY1:'
0064.00 A #LKEY1 18A B 14 16DSPATR(UL)
0065.00 A 14 48'#LKEY2:'
0066.00 A #LKEY2 18A B 14 56DSPATR(UL)
0067.00 A 15 8'#LKEY3:'
0068.00 A #LKEY3 18A B 15 16DSPATR(UL)
0069.00 A 15 48'#LKEY4:'
0070.00 A #LKEY4 18A B 15 56DSPATR(UL)
0071.00 A 16 8'#LKEY5:'
0072.00 A #LKEY5 18A B 16 16DSPATR(UL)
0073.00 A 16 48'#LKEY6:'
0074.00 A #LKEY6 18A B 16 56DSPATR(UL)
0075.00 A 17 8'#LRTNM:'
0076.00 A #LRTNM 2A B 17 16DSPATR(UL)
0077.00 A 18 8'#LEFAC:'
0078.00 A #LEF01 2A B 18 16DSPATR(UL)
0079.00 A #LEF02 2A B 18 20DSPATR(UL)
0080.00 A #LEF03 2A B 18 24DSPATR(UL)
0081.00 A #LEF04 2A B 18 28DSPATR(UL)
0082.00 A #LEF05 2A B 18 32DSPATR(UL)
0083.00 A #LEF06 2A B 18 36DSPATR(UL)
0084.00 A #LEF07 2A B 18 40DSPATR(UL)
0085.00 A #LEF08 2A B 18 44DSPATR(UL)
0086.00 A #LEF09 2A B 18 48DSPATR(UL)
0087.00 A #LEF10 2A B 18 52DSPATR(UL)
0088.00 A 19 8'#LRFAC:'
0089.00 A #LRF01 2A B 19 16DSPATR(UL)
0090.00 A #LRF02 2A B 19 20DSPATR(UL)
0091.00 A #LRF03 2A B 19 24DSPATR(UL)
0092.00 A #LRF04 2A B 19 28DSPATR(UL)
0093.00 A #LRF05 2A B 19 32DSPATR(UL)
0094.00 A #LRF06 2A B 19 36DSPATR(UL)
0095.00 A #LRF07 2A B 19 40DSPATR(UL)
0096.00 A #LRF08 2A B 19 44DSPATR(UL)
0097.00 A #LRF09 2A B 19 48DSPATR(UL)
0098.00 A #LRF10 2A B 19 52DSPATR(UL)
0099.00 A 20 8'#LISEC:'
0100.00 A #LISEC 6A B 20 16DSPATR(UL)
0101.00 A 20 48'#LBSEC:'
0102.00 A #LBSEC 6A B 20 56DSPATR(UL)
0103.00 A*
0104.00 A 24 55'CK24:END OF JOB'
0105.00 A XMSG 50 O 24 2OVRDTA OVRATR DSPATR(HI)
****************** End of data ****************************************
F3=Exit F5=Refresh F9=Retrieve F10=Cursor F11=Toggle F12=Cancel
F16=Repeat find F24=More keys
[/code:1:5eee1a09b9]
[b:5eee1a09b9]R21AMLBE/QDSPSRC(AASLDA) [/b:5eee1a09b9]
[code:1:5eee1a09b9]
Columns . . . : 1 71 Browse R21AMLBE/QRPGSRC
SEU==> AASLDA
FMT * ..... *. 1 ...+... 2 ...+... 3 ...+... 4 ...+... 5 ...+... 6 ...+... 7
*************** Beginning of data *************************************
0001.00 F****************************************************************
0002.00 F** RICOH CO.
0003.00 F** PGM ID AASLDA **
0004.00 F** PGM NAME INPUT LDA **
0005.00 F**------------------------------------------------------------**
0006.00 F** PGM DESCRIPTION **
0007.00 F** **
0008.00 F** CREATION DATE 98/03/25 **
0009.00 F** PROGRAMMER NAME H.YAMAZAKI **
0010.00 F****************************************************************
0011.00 F** **
0012.00 F** INTERNAL SUBROUTINE USAGE **
0013.00 F**------------------------------------------------------------**
0014.00 F** @INZ INITIALIZE PROCESS **
0015.00 F** @CHK1 ERROR CHECK **
0016.00 F** @YMD DATE FORMAT CHANGE **
0017.00 F** @MSG MESSAGE GET **
0018.00 F** @OUTQ OUTQ CHECK **
0019.00 F**------------------------------------------------------------**
0020.00 F** **
0021.00 F** EXTERNAL SUBROUTINE USAGE **
0022.00 F**------------------------------------------------------------**
0023.00 F** CAL201 MESSAGE GET **
0024.00 F** CAL202 DATE FORMAT CHANGE **
0025.00 F** CAL206 OUTQ CHECK **
0026.00 F****************************************************************
0027.00 F** **
0028.00 F** INDICATOR USAGE **
0029.00 F**------------------------------------------------------------**
0030.00 F** **
0031.00 F** FILE DESCRIPTION **
0032.00 F**------------------------------------------------------------**
0033.00 F** CBR030D DISPLAY FILE **
0034.00 F****************************************************************
0035.00 FAASLDAD CF E WORKSTN
0036.00 I****************************************************************
0037.00 I****************************************************************
0038.00 I** D A T A S T R U C T U R E **
0039.00 I****************************************************************
0040.00 I** LOCAL DATA AREA **
0041.00 I#LDA EUDSLDA
0042.00 I*
0043.00 I DS
0044.00 I 1 20 WKEFAC
0045.00 I 1 2 #LEF01
0046.00 I 3 4 #LEF02
0047.00 I 5 6 #LEF03
0048.00 I 7 8 #LEF04
0049.00 I 9 10 #LEF05
0050.00 I 11 12 #LEF06
0051.00 I 13 14 #LEF07 & | |
|
|
|
| |