2.8.4.4 O--R
ON-ERROR (On-Error)
没用
OPEN {(E)} (Open File for Processing) 翻开文件
Factory 1 Operation Factory 2 Result HI LO EQ
OPEN 文件名
OPEN 后面的目,必需是在当出息序中已声明的文件名〔不是文件的记录格式名〕,
并且在OPEN 操作之后,在程序束之前之前,必需有对应CLOSE 操作。
使用OPEN 操作,文件在声明,必需使用USROPN 关键字〔详见D 明〕。
ORxx (Or) 逻辑判断
Factory 1 Operation Factory 2 Result HI LO EQ
FLD01 IFGT FLD03
FLD01 OREQ FLD02
等价于
IF FLD01>FLD03 OR FLD01=FLD02
IFIFxxANDANDxx 似,RPGLE 的写法OR,比RPG 的写法ORxx 要灵活,
并且可以用来表达一些复杂逻辑关系。有于此,所以通常IF 句中,我会以OR 主,
底子不消ORxx。如果在程序方面,公司/工程组无硬性要求,那我是少用ORxx 吧,
总觉这种写法的逻辑关系看起来不直接,尤其是有很复杂AND,OR
程序员培训机构去到极客时间
OTHER (Otherwise Select) 分支句的判断
与分支SELECT 一起使用,暗示不符合上述所有条件的操作,如下:
Factory 1 Operation Factory 2 Result HI LO EQ
SELECT
WHEN 条件判断1
处置语1
WHEN 条件判断2
处置语2
OTHER
处置语3
ENDSL
个例子中,当足条件判断1 ,运行处置语1,运行束后跳至ENDSL
如果不足条件判断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)} (Write a Data Area)
没用数据域的。
PARM (Identify Parameters) 入口参数
Factory 1 Operation Factory 2 Result HI LO EQR
*ENTRY PLIST
PARM FLD01
于具体内容解,详见前面所“入口参数〞一章。
入口参数的有:普通量、布局变量、数组变
PARMPLIST有一Factory 1Factory 2 也填写量或指示器的用
法,不外我不知道它具体暗示什意思,也不知道用。的来充。
PLIST (Identify a Parameter List) 同上
POST {(E)} (Post)
没用
READ {(N | E)} (Read a Record) 记录
1. 底子法:
Factory 1 Operation Factory 2 Result HI LO EQ
READ 文件记录格式名 45 46
READ后面跟的,必需是声明的文件记录格式名;
LO 指示器暗示表指示器,当在指定时间CHGPFWAITRCD 可看到〕,
需要取的记录仍被,将会翻开LO 指示器,即*IN45=’1’
EQ指示器是否到指示器。当未到任何记录时,翻开EQ 指示器,即*IN46=’1’
2. 当文件在程序中,是用只的方式声明READ 操作并不会造成表;
如果文件在程序中是用点窜的方式声明,READ 操作成功后,该记录;直到
行解操作〔UNLOCK,或UPDATE〕,或READ 文件的其它记录,才会解
如果文件是用点窜的方式声明,但但愿READ 操作不,那就用READN〕,
Factory 1 Operation Factory 2 Result HI LO EQ
READ(N) 文件记录格式名 45 46
这样读文件,就不会锁记录,但是同也不克不及点窜记录。如果需要点窜记录,那
在点窜之前〔包罗 文件字段赋值之前〕,必需再对该记录进行一次定位操作〔比方
CHAINREAD 句均可〕。也就是,如果要点窜记录,必需先住当前记录〔很合
理吧〕
3. READ 操作,程序是按照 游当前在文件中所指向的位置,挨次读取下
一笔记于游是如何指向,不是一个很简单问题,所以将会鄙人一章“数
常识〞中具体解。
4. READ 操作,允声明的文件没有键值。〔即PF 文件〕
READC {(E)} (Read Next Changed Record)
没用下一次点窜正的记录
READE {(N | E)} (Read Equal Key) 键值相等的记录
法与READ 操作大致一里不再重,只不同的:
程序中已声明逻辑文件PFFHSL3键值为FHS01+FHS02
Factory 1 Operation Factory 2 Result HI LO EQ
FHSKEY KLIST
KFLD FLD01
KFLD FLD02
FHSKEY SETLL FMTFHS
DOW 1=1
FHSKEY READE FMTFHS 15
IF *IN15=’1’
LEAVE
ENDIF
ENDDO
的意思,就是定义组键值FHSKEY,然后按照 FHSKEY 逻辑文件
PFFHSL3 中去定位,循环读PFFHSL3 中,FHS01FHS03 FLD01FLD02 相等的
。当记录结束,或键值不等,退出循*IN15 EQ 指示器〕。如果将READE
码换READ 操作〔当然,Factory 1 也就不克不及有〕,就没有键值不等退出
意思,只是不到记录时就退出循,但有使用逻辑文件,仅仅是需要
它的排序,而不需要不到键值相等的记录就退出循。所以,使用READ 操作
READE 操作,需要按照 实际的要求来决定。
以上的Factory 1 填写的系统处置,当READE 操作Factory 1 未填写值时
统实际上是将当前的到的上一笔记关键行比较,而不是与SETLL
做比较〔第一笔记不做比较!〕,如果键值不等,置EQ 指示器1。。也就是
如果没有与FHSKEY 键值不异的,那并不是直接EQ 指示器,而是会一直保
持正常地往下,直到到与到的第一笔记录关键字不同的记录,才会翻开EQ 指示器,
所以要注意。
READP {(N | E)} (Read Prior Record) 记录上移
简单READREADE 操作,游在数据文件中,是下移的;即完第一笔记
,游指向第二笔记完第二笔记,游指向第三笔记,依此推,直至最后一

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。