欢迎来到天天文库
浏览记录
ID:47123315
大小:119.00 KB
页数:18页
时间:2019-08-08
《RPG AS400程序员培训手册》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、2.8.4.4O--RON-ERROR(On-Error)没用过OPEN{(E)}(OpenFileforProcessing)打开文件Factory1OperationFactory2ResultHILOEQOPEN文件名OPEN后面的目标,必须是在当前程序中已声明的文件名(不是文件的记录格式名),而且在OPEN操作之后,在程序结束之前之前,必须有对应的CLOSE操作。使用OPEN操作,文件在声明时,必须使用USROPN关键字(详见D行说明)。ORxx(Or)逻辑判断—或Factory1OperationFactory2ResultHILOEQFLD01IFGTFLD03FLD01OREQF
2、LD02等价于IFFLD01>FLD03ORFLD01=FLD02与IF、IFxx,AND、ANDxx类似,RPGLE的写法OR,比RPG的写法ORxx要灵活,而且可以用来表达一些复杂的逻辑关系。有鉴于此,所以通常IF语句中,我会以OR为主,基本不用ORxx。如果在编程序方面,公司/项目组无硬性要求,那我觉得还是少用ORxx吧,总觉得这种写法的逻辑关系看起来不直接,尤其是有很复杂的AND,OR时。OTHER(OtherwiseSelect)分支语句的判断与分支语句SELECT一起使用,表示不符合上述所有条件时的操作,如下:Factory1OperationFactory2ResultHILOE
3、QSELECTWHEN条件判断1处理语句1WHEN条件判断2处理语句2OTHER处理语句3ENDSL在这个例子中,当满足条件判断1时,运行处理语句1,运行结束后跳至ENDSL处;如果不满足条件判断1,则程序继续向下执行,判断是否满足条件判断2。当满足条件判断2时,运行处理语句2,跳至ENDSL;当不满足当不满足条件判断2时,程序继续向下执下,当读到OTHER操作码时,无条件运行处理语句3(即当程序当前不满足以上所以条件判断时,则执行OTHER之后的语句。处理语句允许有很多句;条件判断可以写得很复杂,也允许对不同的字段进行判断;比如说C语言也有分支语句switch,但是这个语句只能对一个字段进行
4、分支判断,ILE语言与它不同,允许对不同的字段进行判断就我目前掌握的测试情况,上述的SELECT—WHEN--OTHER—ENDSL,其实也可以写做:IF条件判断1处理语句1ELSEIF条件判断2处理语句2ELSE处理语句3ENDIF即WHEN与ELSEIF是类似的,这样说,应该可以明白了吧。总之,SELECT—ENDSL是一个很好用的语法,尤其是在表示很多不同的分支处理时。OUT{(E)}(WriteaDataArea)没用过,讲数据域的。PARM(IdentifyParameters)定义入口参数Factory1OperationFactory2ResultHILOEQR*ENTRYPLI
5、STPARMFLD01关于具体内容讲解,详见前面所说“入口参数”一章。允许做为入口参数的有:普通变量、结构变量、数组变量关于PARM、PLIST,还有一种在Factory1,Factory2也填写变量或指示器的用法,不过我不知道它具体表示什么意思,也不知道该怎么用。请用过的来补充。PLIST(IdentifyaParameterList)同上POST{(E)}(Post)没用过READ{(N
6、E)}(ReadaRecord)读取记录1.基本语法:Factory1OperationFactory2ResultHILOEQREAD文件记录格式名4546READ后面跟的,必须是声明的文件记录格式名;
7、LO指示器表示锁表指示器,当在指定的时间(CHGPF,WAITRCD项可看到),需要读取的记录仍被锁,将会打开LO指示器,即*IN45=’1’;EQ指示器为是否读到指示器。当未读到任何记录时,打开EQ指示器,即*IN46=’1’2.当文件在程序中,是用只读的方式声明时,READ操作并不会造成锁表;如果文件在程序中是用修改的方式声明,READ操作成功后,该记录被锁;直到执行解锁操作(UNLOCK,或UPDATE),或READ该文件的其它记录,才会解锁如果文件是用修改的方式声明,但希望READ操作不锁表时,那么就用READ(N),即Factory1OperationFactory2ResultHI
8、LOEQREAD(N)文件记录格式名4546这样读文件,就不会锁记录,但是同时也不能修改记录。如果需要修改记录,那么在修改之前(包括对文件字段赋值之前),还必须再对该记录进行一次定位操作(比如CHAIN、READ语句均可)。也就是说,如果要修改记录,必须先锁住当前记录(很合理吧)3.当执行READ操作时,程序是根据游标当前在文件中所指向的位置,顺序读取下一条记录。关于游标是如何指向,还不是一个很简
此文档下载收益归作者所有