这部分我也循序渐进的讲解如何RPG里头更项的含义。
先说说RPG一般用来做什么吧,举例说:
1. 整个RPG程序不包含任何外部程序,只是做些简单的数学运算,或者对数据区、DATAQ等非文件目标进行操作,这属于相对最简单的情况;
2. RPG程序对物理文件或者逻辑文件进行读、写、更新、删除操作;
3. RPG程序结合物理文件或逻辑文件、以及显示文件进行操作,这属于比较复杂的情况;
4. RPG程序结合物理文件或逻辑文件、显示文件、以及ICF文件(即通讯文件)进行操作,这种情况也比较复杂。
当然,以上的情况只是平时使用的归纳,你也可以根据自己的实际需要结合各种情况,此处不再深入探讨。
以下结合例子简单说说各种情况,假设以下源码文件存放的路径是 库MYLIB、源物理文件MYSRCPF
1. (1)做个简单的运算,比如AXB/(C-D)+E,有加减乘除等运算,代码如下:
Code:
.....CL0N01N02N03Factor1+++OpcdeFactor2+++ResultLenDHHiLoEqComments++++
*************** Beginning of data *************************************
C Z-ADD2 A 10
C Z-ADD10 B 20
C Z-ADD5 C 10
C Z-ADD1 D 10
C Z-ADD2 E 10
C Z-ADD0 TEM 30
C Z-ADD0 RST 30
C A MULT B TEM
C C SUB D RST
C TEM DIV RST RST
C MVR TEM2 30
C RST ADD E RST
C RST DSPLY
.....CL0N01N02N03Factor1+++OpcdeFactor2+++ResultLenDHHiLoEqComments++++
C SETON LR
****************** End of data ****************************************
【注】
(a) Z-ADD表明把Factor2处的变量值赋给Result处的变量,值得注意的是这两个变量都是数值型的,例如,"Z-ADD2 A 10 "表示把2赋给变量A,后面的"10"中的“1”表示变量A的长度是1,“0”表示小数位长度是0,即A是一个长度为1整型变量;
(b) MULT表示做乘法运算,“A MULT B TEM”表示AXB,把结果赋给整型变量TEM;
(c) SUB表示做减法运算,“C SUB D RST”表示C-D,把结果赋给整型变量RST;
(d) DIV表示做除法运算,“TEM DIV RST RST”表示TEM/RST,把结果赋给整型变量RST;
(e) MVR表示做取余数运算,“MVR TEM2 30”表示把余数赋给整型变量TEM2;
(f) ADD表示做取加法运算,“RST ADD E RST”表示RST+E,把结果赋给整型变量RST,这句一般写成“ADD E RST”也可以。
(g) DSPLY表示显示变量值,“RST DSPLY”表示显示变量RST的值;
(h) SETON表示给指示器置为*ON的状态,即'1',“SETON LR”表示把LR指示器置为*ON,该句的意思表示最后一条记录,即程序结束。
按F3保存,假设该文件名是MYRPG,所在的库是MYLIB,源物理文件是MYSRCPF。
程序写好之后,应该进行编译了。用WRKMBRPDM FILE(MYLIB/MYSRCPF),找到刚才的文件MYRPG,输入14,按F4,进入“Create RPG/400 Program (CRTRPGPGM)” 画面,参数:
(i) Program: 生成的目标名(假如为MYOBJ);
(ii) Library: 生成的目标存放的库(假如为MYLIB)。
参数填好之后,按确认键即进行编译,如果程序没错,则生成目标文件,假设为MYOBJ。
在命令行输入CALL MYLIB/MYOBJ,这时命令上应该显示RST的值。
(【注】目标即可执行文件)
轉自:新儒as/400家園
先说说RPG一般用来做什么吧,举例说:
1. 整个RPG程序不包含任何外部程序,只是做些简单的数学运算,或者对数据区、DATAQ等非文件目标进行操作,这属于相对最简单的情况;
2. RPG程序对物理文件或者逻辑文件进行读、写、更新、删除操作;
3. RPG程序结合物理文件或逻辑文件、以及显示文件进行操作,这属于比较复杂的情况;
4. RPG程序结合物理文件或逻辑文件、显示文件、以及ICF文件(即通讯文件)进行操作,这种情况也比较复杂。
当然,以上的情况只是平时使用的归纳,你也可以根据自己的实际需要结合各种情况,此处不再深入探讨。
以下结合例子简单说说各种情况,假设以下源码文件存放的路径是 库MYLIB、源物理文件MYSRCPF
1. (1)做个简单的运算,比如AXB/(C-D)+E,有加减乘除等运算,代码如下:
Code:
.....CL0N01N02N03Factor1+++OpcdeFactor2+++ResultLenDHHiLoEqComments++++
*************** Beginning of data *************************************
C Z-ADD2 A 10
C Z-ADD10 B 20
C Z-ADD5 C 10
C Z-ADD1 D 10
C Z-ADD2 E 10
C Z-ADD0 TEM 30
C Z-ADD0 RST 30
C A MULT B TEM
C C SUB D RST
C TEM DIV RST RST
C MVR TEM2 30
C RST ADD E RST
C RST DSPLY
.....CL0N01N02N03Factor1+++OpcdeFactor2+++ResultLenDHHiLoEqComments++++
C SETON LR
****************** End of data ****************************************
【注】
(a) Z-ADD表明把Factor2处的变量值赋给Result处的变量,值得注意的是这两个变量都是数值型的,例如,"Z-ADD2 A 10 "表示把2赋给变量A,后面的"10"中的“1”表示变量A的长度是1,“0”表示小数位长度是0,即A是一个长度为1整型变量;
(b) MULT表示做乘法运算,“A MULT B TEM”表示AXB,把结果赋给整型变量TEM;
(c) SUB表示做减法运算,“C SUB D RST”表示C-D,把结果赋给整型变量RST;
(d) DIV表示做除法运算,“TEM DIV RST RST”表示TEM/RST,把结果赋给整型变量RST;
(e) MVR表示做取余数运算,“MVR TEM2 30”表示把余数赋给整型变量TEM2;
(f) ADD表示做取加法运算,“RST ADD E RST”表示RST+E,把结果赋给整型变量RST,这句一般写成“ADD E RST”也可以。
(g) DSPLY表示显示变量值,“RST DSPLY”表示显示变量RST的值;
(h) SETON表示给指示器置为*ON的状态,即'1',“SETON LR”表示把LR指示器置为*ON,该句的意思表示最后一条记录,即程序结束。
按F3保存,假设该文件名是MYRPG,所在的库是MYLIB,源物理文件是MYSRCPF。
程序写好之后,应该进行编译了。用WRKMBRPDM FILE(MYLIB/MYSRCPF),找到刚才的文件MYRPG,输入14,按F4,进入“Create RPG/400 Program (CRTRPGPGM)” 画面,参数:
(i) Program: 生成的目标名(假如为MYOBJ);
(ii) Library: 生成的目标存放的库(假如为MYLIB)。
参数填好之后,按确认键即进行编译,如果程序没错,则生成目标文件,假设为MYOBJ。
在命令行输入CALL MYLIB/MYOBJ,这时命令上应该显示RST的值。
(【注】目标即可执行文件)
轉自:新儒as/400家園
全站熱搜
留言列表