- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
(培训体系) RPGAS 程序
员培训手册
2.8.4.4O--R
ON-ERROR(On-Error)
没用过
OPEN{(E)}(OpenFileforProcessing) 打开文件
Factory1OperationFactory2ResultHILOEQ
OPEN 文件名
OPEN 后面的目标,必须是于当前程序中已声明的文件名(不是文件的记录格式
名),
而且于 OPEN 操作之后,于程序结束之前之前,必须有对应的 CLOSE 操作。
使用 OPEN 操作,文件于声明时,必须使用 USROPN 关键字(详见 D 行说明)。
ORxx(Or) 逻辑判断—或
Factory1OperationFactory2ResultHILOEQ
FLD01IFGTFLD03
FLD01OREQFLD02
等价于
IFFLD01FLD03ORFLD01=FLD02
和 IF、IFxx ,AND 、ANDxx 类似, RPGLE 的写法 OR,比 RPG 的写法 ORxx 要
灵活,
而且能够用来表达壹些复杂的逻辑关系。 有鉴于此,所以通常 IF 语句中,我会以
OR 为主,
基本不用 ORxx 。如果于编程序方面,公司 / 项目组无硬性要求,那我觉得仍是少
用 ORxx 吧,
总觉得这种写法的逻辑关系见起来不直接,尤其是有很复杂的 AND,OR 时。
OTHER(OtherwiseSelect) 分支语句的判断
和分支语句 SELECT壹起使用,表示不符合上述所有条件时的操作,如下:
Factory1OperationFactory2ResultHILOEQ
SELECT
WHEN 条件判断 1
处理语句 1
WHEN 条件判断 2
处理语句 2
OTHER
处理语句 3
ENDSL
于这个例子中,当满足条件判断 1 时,运行处理语句 1,运行结束后跳至 ENDS
处;
如果不满足条件判断 1,则程序继续向下执行,判断是否满足条件判断 2 。
当满足条件判断 2 时,运行处理语句 2 ,跳至 ENDSL;当不满足
当不满足条件判断 2 时,程序继续向下执下,当读到 OTHER 操作码时,无条件
运
行处理语句 3(即当程序当前不满足之上所以条件判断时,则执行 OTHER 之后
的语句。
处理语句允许有很多句;
条件判断能够写得很复杂,也允许对不同的字段进行判断;比如说 C 语言也有分
支语
句 switch ,可是这个语句只能对壹个字段进行分支判断, ILE 语言和它不同,允
许对不同的
字段进行判断
就我目前掌握的测试情况, 上述的 SELECT— WHEN--OTHER — ENDSL ,其实也
能够
写做:
IF 条件判断 1
处理语句 1
ELSEIF条件判断 2
处理语句 2
ELSE
处理语句 3
ENDIF
即 WHEN 和 ELSEIF是类似的,这样说,应该能够明白了吧。
总之, SELECT— ENDSL 是壹个很好用的语法,尤其是于表示很多不同的分支处
理时。
OUT{(E)}(WriteaDataArea)
没用过,讲数据域的。
PARM(IdentifyParameters) 定义入口参数
Factory1OperationFactory2ResultHILOEQR
*ENTRYPLIST
PARMFLD01
关于具体内容讲解,详见前面所说“入口参数”壹章。
允许做为入口参数的有:普通变量、结构变量、数组变量
关于 PARM 、PLIST,仍有壹种于 Factory1 ,Factory2 也填写变量或指示器的用
法,不过我不知道它具体表示什么意思,也不知道该怎么用。请用过的来补充。
PLIST(IdentifyaParameterList) 同上
POST{(E)}(Post)
没用过
READ{(N|E)}(ReadaRecord) 读取记录
1.基本语法:
Factory1OperationFactory2ResultHILOEQ
READ 文件记录格式名 4546
READ 后面跟的,必须是声明的文件记录格式名;
LO 指示器表示锁表指示器, 当于指定的时间 (CHGPF ,WAITRCD 项可见到),
需要读取的记录仍被锁,将会打开 LO 指示器,即 *IN45= ’ 1 ’;
EQ 指示器为是否读到指示器。当未读到任何记录时,打开 EQ 指示器,即 *IN46
=’ 1’
2.当文件于程序中,是用只读的方式声明时, READ 操作且不会造成锁表;
如果文件于程序中是用修改的方式声明, READ 操作成功后,该记录被锁;直到
执
行解锁操作( UNLOCK ,或 UPDATE ),或 READ 该文件的其它记录,才会解
锁
如果文件是用修改的方式声明, 但希望 READ 操作不锁表时
原创力文档


文档评论(0)