错误!未指定书签。
KS:键值列表的十进制数字型变量; PC:参数列表的字符型变量; PS:参数列表的十进制数字型变量;
BBBB:采用能表达出此变量含义的英文缩写,位数不限。 例如:
VC_NAME:定义一个描述Name的字符变量。 2. RPG中一般变量命名 (1) 非数组变量命名
根据变量的类型和变量的功用来对变量进行命名,格式:UUBBB UU:变量类型 PP:参数; VC:字符型; VS:十进制数字型; VP:压缩数字型; VF:浮点型; VD:日期型; VT:时间型; VZ:时间戳型; DS:组合变量;
BBB:采用能表达出此变量含义的英文缩写,位数不限。 例如:
VCNAM:定义一个描述Name的字符变量。 (2) 数组变量命名
根据数组的功用来对数组变量进行命名,格式:EBB BB:采用能表达出此变量含义的英文缩写,位数不限。 例如:
EBH:定义一个描述行所号的数组变量。
第 6 页 共 41 页
错误!未指定书签。
1.6.2.3. 组合变量命名
1. RPGLE中组合变量命名
根据组合变量名和子变量的功用对组合变量内的各子变量进行命名,格式:UU_BBBB UU:根据之前定义的组合变量的BBBB进行提取,标识该变量来之哪个组合变量; _:子变量标识;
BBBB:采用能表达出此子变量含义的英文缩写,位数不限。 例如:
VDS_STU:定义一个描述学生属性的组合变量。 D VDS_STU DS D ST_NAME 1 10 D ST_NUM 11 18 0 D ST_AGE 19 21 0 2. RPG中组合变量名
根据组合变量名和子变量的功用对组合变量内的各子变量进行命名,格式:UUIBBB UU:根据之前定义的组合变量的BBBB进行提取,标识该变量来之哪个组合变量; I:子变量标识;
BBB:采用能表达出此子变量含义的英文缩写。 例如:
DSSTU:定义一个描述学生属性的组合变量。
IDSSTU DS 40 I 1 10 STINAM I 11 180STINUM I 19 210STIAGE
1.6.2.4. 键值列表命名
根据物理文件或逻辑文件进行命名,格式:VKL_UUUB9
UUU:物理文件或逻辑文件名的4-6位。如果在同一个程序中出现两个或以上的UUU,则通过B区别。B:采用字母A-Z。
9:逻辑文件为顺序号,物理文件为0。
VKL_TRC1:定义一个ATM交易流水逻辑档1的键值列表。 C VKL_TRC1 KLIST C KFLD VKS_BRH
第 7 页 共 41 页
错误!未指定书签。 C KFLD VKS_MCH C KFLD VKS_SEQ
1.6.2.5. 参数列表命名
根据参数列表所对应的程序功用进行命名,格式:VPL_UUUU
UUUU:采用能表达出此参数列表所对应的程序功用的英文缩写,最多四位。 VPL_CKPN:定义一个检查密码程序的参数列表。
C VPL_CKPN PLIST C PARM VPC_CRD C PARM VPC_PIN C PARM VPC_RTN
1.6.2.6. 子过程命名
根据子过程的功用对子过程进行命名,格式:SR#AAAA SR#:子过程标识;
AAAA:采用能表达出该子过程功用的英文缩写,最多四位。 SR#DSP:定义一个画面显示处理字过程。
2. 注释规范
注解是程序员和程序读者通信的重要手段,正确的注解非常有助于对程序的理解。在编程的过程中,要适当的加入注释,对过程、文件和特别的变量做相应的解释,并做到言简意赅。
2.1. 文件版本注释
每个源程序都应该包含版本、功能描述、创建时间、修改描述等信息。 注释行内容依次为: 1) 公司名称:固定为“”。 2) 版权所有:固定为“”。 3) 文件名;
第 8 页 共 41 页
错误!未指定书签。
4) 功能描述; 5) 创建作者; 6) 创建日期; 7) 程序调用关系;
如果存在程序调用关系的情况下,需写明该程序上下层的调用关系; 8) 程序修改记录。
2.2. 子过程描述注释
子过程描述注释开始和结束是整行(7—72列)的“*”号标识,期间的注释行,7列是“*”号,紧接一个空格后,第9列开始书写子过程名称注释及子过程功能描述注释。
例如:
**************************************************** * 子过程名 * 子过程功能描述 ****************************************************
2.3. 程序修改注释
为了明确代码更改的版本情况,在修改原代码时,先注释原代码,加修改标识,再新增新代码,加修改标识。
2.3.1. RPGLE(RPG)、DDS程序修改注释
在RPGLE、DDS源程序中,增加注释行填写修改标识,如果是连续代码的修改,可以在开始和结束的地方写增加注释行修改标识,两个标识中间每行的第三列用“|”表示。
例如:
*.. 1 ...+... 2 ...+... 3 ...+... 4 ...+... 5 ...+... 6 ...+... 7 ...+... *
C* Q0900001 B++
C *ENTRY PLIST C PARM VPP_DATE C PARM VPP_USR C* Q0900001 E++ C* Q0900001 B/E--
C* MOVE VPP_DATE VS_DATE
第 9 页 共 41 页
错误!未指定书签。
注:LL01是修改标识。
2.3.2. CLP程序修改注释
在CLP源程序中,第1—9列填写修改标识,/*标识*/。 例如:
*.. 1 ...+... 2 ...+... 3 ...+... 4 ...+... 5 ...+... 6 ...+... 7 ...+... * /* Q0900001 B/E-- */
/* DCL VAR(&CPARM) TYPE(*CHAR) LEN(1) */
/* Q0900001 B++ */
DCL VAR(&CPARM) TYPE(*CHAR) LEN(2)
CHGVAR VAR(&CPARM) VALUE(%SST(&CPARM0 1 2))
/* Q0900001 E++ */
MONMSG MSGID(IWS4010)
注:Q0900001是修改标识。
2.4. 程序中功能注释
程序中功能附加说明,可以写在程序代码前,将逻辑上相关联的代码分块,以便提高代码的可阅读性;也可以写在变量定义之前,详细说明变量的功能。
注释行的第7列是“*”号,紧接一个空格后,从第9列开始书写注释正文,可有多行注释。 例如:
C*只是读取数据区内容
C *DTAARA DEFINE ATWDTQDTA VDS_DTAR
C IN *DTAARA
2.5. 空行
空行将逻辑上相关联的代码分块,以便提高代码的可阅读性。 空行可用在: 1) 功能注释之前; 2) 记录格式定义之前; 3) 每类变量定义之后; 4) 其他需要空行的地方。
第 10 页 共 41 页