RPG开发入门手册.doc

上传人:b****1 文档编号:231787 上传时间:2022-10-07 格式:DOC 页数:79 大小:352.50KB
下载 相关 举报
RPG开发入门手册.doc_第1页
第1页 / 共79页
RPG开发入门手册.doc_第2页
第2页 / 共79页
RPG开发入门手册.doc_第3页
第3页 / 共79页
RPG开发入门手册.doc_第4页
第4页 / 共79页
RPG开发入门手册.doc_第5页
第5页 / 共79页
点击查看更多>>
下载资源
资源描述

RPG开发入门手册.doc

《RPG开发入门手册.doc》由会员分享,可在线阅读,更多相关《RPG开发入门手册.doc(79页珍藏版)》请在冰豆网上搜索。

RPG开发入门手册.doc

1 简单说明 3

2 程序代码行的编写 3

2.1 最简单的RPGLE程序 3

2.2 举例准备 3

2.3 简单的程序流程 4

2.4 常见的程序流程 5

2.5 F行说明 5

2.5.1 内容说明 5

2.5.2 常用例子 9

2.5.3 补充说明 9

2.6 D行说明 9

2.6.1 内容说明 10

2.6.2 常用例子 13

2.6.3 补充说明 13

2.7 入口参数 14

2.8 C行说明 16

2.8.1 写在前面 16

2.8.2 内容说明 16

2.8.3 ILE操作码分类:

18

2.8.4 ILE操作码 19

2.8.4.1 A--C 19

2.8.4.2 D--E 27

2.8.4.3 F--N 32

2.8.4.4 O--R 38

2.8.4.5 S--Z 42

3 和程序相关的数据库知识 48

3.1 LF(逻辑文件) 48

3.1.1 逻辑文件概念 48

3.1.2 有关编译的问题 48

3.1.3 逻辑文件对效率的影响 50

3.2 MEMBER 50

3.3 游标 51

3.3.1 游标的概念 51

3.3.2 不同操作码对应的游标的处理 51

3.3.3 “有且仅有”的游标 51

3.3.4 LOVAL、HIVAL对应的游标操作 52

3.4 事务处理--COMMIT 53

3.4.1 概念描述 53

3.4.2 使用方法 53

3.4.3 注意事项 54

3.5 关于锁表的问题LCKW 54

4 DEBUG调试以及常见出错信息 55

4.1 写在前面 55

4.2 常规用法 56

4.2.1 程序编译 56

4.2.2 执行DEBUG命令 56

4.2.3 运行程序 56

4.2.4 在DEBUG模式中进行调试 56

4.2.5 跟踪被当前程序调用的程序 57

4.2.6 一定要退出DEBUG模式 58

4.2.7 补充 58

4.3 跟踪批处理程序(Fromqingzhou) 58

4.4 常见的出错信息 59

4.4.1 编译程序时的出错信息 59

4.4.2 运行时的出错信息 61

5 CL、CMD 61

5.1 CL程序 61

5.1.1 基本认识 61

5.1.2 CL程序的常用语法及命令:

62

5.1.3 不常用的语法 64

5.2 CMD 65

6 屏幕文件及使用 66

7 其它 66

7.1 报表打印 66

7.2 SAVF,备份与恢复 71

7.3 菜单--MENU 72

7.4 开发时常用的命令 73

7.5 一点想法 75

1简单说明

内部交流、或可作培训使用。

对用户作如下假定:

1、能COPY、修改、编译源代码(RPGLE、CLP),并能运行编译后的程序

2、能COPY、修改、编译文件(PF、LF、PRTF、DSPF);

3、对数据文件(PF)有简单的认识(FIELDàRECORDàPF),并知道LF与PF的对应关系。

2程序代码行的编写

2.1最简单的RPGLE程序

为便于理解,这里写一个最简单的RPGLE程序

CL0N01Factor1+++++++Opcode&ExtFactor2+++++++Result++++++++Len++D+HiLoEq

***************Beginningofdata*************************************

0001.00C'HELLOWORLD' DSPLY

0002.00C RETURN

******************Endofdata****************************************

这个程序编译成功,并调用(CALL程序名),就是在屏幕上反白显示“HELLOWORLD”字样。

(其中,绿色字样,是系统自动显示的,下同)

与自由风格的C语言不同,RPGLE中的编码,是有一定的格式,如果写错,将会在当前代码行上高亮反绿显示。

初学者如果不太清楚从何处开始下手,可以使用“F4”键查看(F4键只有用2进入的编辑状态才有效,用5进入的查看状态是无效的)

LevelN01Factor1 OperationFactor2Result

'HELLOWORLD' DSPLY

Decimal

LengthPositionsHILOEQComment

关于每一项所对应的内容代表什么意思,该如何填写,即如何写程序,将会在下面的具体讲解。

2.2举例准备

列出表名,字段,以方便下面的举例。

假设有PF文件叫PFFHS,文件的记录格式叫FMTFHS

每条记录,都是由FHS01、FHS02、FHS03三个字段组成,每个字段都是两位长的字符型变量。

逻辑文件PFFHSL1的键值为FHS01

逻辑文件PFFHSL2的键值为FHS02

逻辑文件PFFHSL3的键值为FHS01、FHS02

注:

文件的记录格式,可以理解为给这个文件整条记录起的一个名字;或者是说将每条记录视都视做一个类型相同大变量,然后给这个大变量起的名字。

所以文件的记录格式信息中,包含有一条记录由多少个字段组成,总计长度是多少这样的信息。

文件的记录格式,与各个字段同时定义。

(写文件的源码时)

文件的记录格式在RPGLE的程序中,不能与文件名相同。

2.3简单的程序流程

为方便起见,系统自动显示的就不再贴出来了,只贴代码段。

FPFFHSUF E DISK

C READ FMTFHS

C EVAL FHS01=”01”

C UPDATE FMTFHS

C SETON LR

C RETURN

这个程序的意思,是说读PFFHS这个文件,然后将读到的第一条记录中的FHS01这个字段的值修改为“01”。

“SETON LR”,LR的位置可在HI、LO、EQ中任选一处。

意思是指将打开指示器*INLR,即赋值使指示器*INLR的值等于1。

等价于 “ EVAL *INLR=’1’ ”,意思是强制将内存中的数据写到磁盘中。

(基于效率因素,系统在修改文件时,会先将修改的结果先放在内存中,在同一程序中,读取数据也是先从内存中查询。

)LR,取自是LastRecord

RETURN,表示程序结束,在后面“操作码”一节中,会有讲述。

如果不太明白,就记住

C SETON LR

C RETURN

C EVAL *INLR=’1’

C RETURN

这两句话加在一起,表示程序结束就可以了。

从这个程序中,我们可以看到,RPGLE的程序,大致上可以分为两个部分:

1、声明、定义部分:

声明程序中使用到的文件(F行),定义程序中使用的变量(D行)

2、程序运行部分:

即C行,也就是程序段。

在RPGLE程序中,F行必须在D行前面,D行必须在C行前面。

程序执行的起始顺序,将从定义部分之后,第一个C行开始,顺序向下执行。

程序中的F行、D行都不是必须项,一个程序可以没有F行(如仅完成计算功能的公共函数,比如计算利息),也可以没有D行(没有需要特别定义的变量,或者所有变量都在C行进行定义),但不应该没有C行,因为F行与D行都属于非执行行,是起定义作用;C行是执行行。

没有C行的程序,是无执行意义的。

2.4常见的程序流程

FPFFHSUF E DISK //声明文件PFFHS

D LSFLD01 S 2 //定义临时变量LSFLD01

C EVAL LSFLD01=’01’ //给变量LSFLD01赋值

C EXSR SUB#UPD //执行子过程SUB#UPD

C EVAL LSFLD02=’02’ //给变量LSFLD02赋值

C EXSR SUB#UPD //执行子过程SUB#UPD

C SETON LR //数据写入磁盘

C RETURN //程序结束

C SUB#UPD BEGSR //子过程SUB#UPD开始

C READ FMTFHS //读PFFHS文件

C EVAL FLD01=LSFLD01 //给字段FLD01赋值

C UPDATE FMTFHS //修改文件

C ENDSR //子过程结束

“//”后面的,只是简单的解释,如果自已动手写,不需要输入这些内容。

系统在运行这个程序时,是按如下的顺序来执行:

1.首句EVAL赋值语句,直接执行;

2.当系统发现操作码“EXSR”时,根据后面的变量名“SUB#UPD”,去查找对应的“SUB#UPD BEGSR”语句;

3.然后从“SUB#UPD BEGSR”之后,顺序向下执行,直至“ENDSR”语句

4.执行到“ENDSR”之后,将会再回到当初的“EXSR SUB#UPD”处,继续向下执行,直到RETURN语句为止

这里提出一点要注意,如果子过程中,又执行了自身,即在SUB#UPD程序中,又出现了“EXSR SUB#UPD”,是可以编译通过的,但在执行过程中,系统会因为无法定位,而出现死循环,直至报错异常中断退出。

也就是RPGLE的程序中,子过程不允许出现递归。

2.5F行说明

2.5.1内容说明

首位填上F,然后按F4,会出现如下内容:

FileFileEndofFile

FilenameTypeDesignationFileAdditionSequence

File RecordLimitsLengthofRecord

Format LengthProcessingKeyFieldAddressType

File

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 考试认证 > IT认证

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1