AS400培训资料下.docx
《AS400培训资料下.docx》由会员分享,可在线阅读,更多相关《AS400培训资料下.docx(9页珍藏版)》请在冰豆网上搜索。
![AS400培训资料下.docx](https://file1.bdocx.com/fileroot1/2023-1/10/1e5500d2-d63b-498e-bae7-1b270b3ef3b8/1e5500d2-d63b-498e-bae7-1b270b3ef3b81.gif)
AS400培训资料下
AS400培训资料(下)
AS400应用开发培训
高级应用与交易实现
前言
本阶段的培训,在上一级培训的基础上,讲解业务系统的处理以及交易的实现。
目的是使大家掌握如何在AS400上实现具体的交易,完成本次开发任务。
在讲解业务系统的例子程序和会计记帐核心的过程中我们将穿插讲解AS400中一些编程方式和一些简单工具的使用。
由于篇幅和时间的关系在本教材中对一些简单工具不作具体的介绍,请大家作好记录。
同时为了配合本次培训,我们将下发两本教材,一本是操作码手册,另外一本是本公司原来出的IBMAS400培训教材第二分册,对这两本教材的内容我们可能不作具体的讲解,主要是给大家在学有余力的情况下进行自学,以及今后进行实际编码时的参考手册。
对于一些非常少见的应用,我们不作讲解,请大家参考下发的教材或使用联机的帮助。
使用F6或其他方式建立的成员在Opt选14编译物理文件参与编译其他类型的目标(Object)SLRRPG(可执行程序*PGM)物理文件,逻辑文件,打印文件等参与编译,若RPG程序的F表进行了相应的定义其他需要参与编译的目标
第一章RPG程序使用RLU的方法
在上一期的培训中我们简要的介绍了RLU的一些用法,现在我们来学习RLU的一些应用,以及如何在RPG程序中使用RLU生成的打印文件
在今后的设计过程中,应业务人员的要求,在报表中对于一些域的属性可能要进行修改。
以下是将光标移到域后出现的域属性内容
WorkwithFieldKeywords
Field........:
'客户...Recordformat....:
HEAD
Typeoptions,pressEnter.
2=Specify4=Remove
OptKeywordOptKeywordOptKeyword
ALIASEDTCDEMSGCON
BARCODEEDTWRDPAGNBR
BLKFOLDFLTFIXDECPRTQLTY
CDEFNTFLTPCNREFFLD
CHRIDFNTCHRSETSKIPA
CHRSIZFONTSKIPB
COLORHIGHLIGHTSPACEA
CPIIGCALTTYP>SPACEB
CVTDTAIGCANKCNVTEXT
DATEIGCCDEFNTTIME
>DFTIGCCHRRTTTRNSPY
DLTEDTINDTXTUNDERLINE
Bottom
F3=ExitF5=RefreshF9=InputkeywordparametersF10=Specifyinformation
F12=CancelF16=Removeallkeywords
选择(opt)2进行该项的内容说明4是取消该项说明
在这些选项中经常用到的是:
DFT若前面有”>”则说明该项是常量域,否则是变量域。
若为常量选择2后可以进行常量(显示内容)的修改
EDTCDE对于数值型,说明数值型数据的显示方法。
大家可以通过
实际将一个数值型的字段改成其他类型,比较对于数字格
式的影响。
请操作
REFFLD将本域定义为跟REFFLD的域一样,类似RPG中的*LIKE。
SKIPA在打印本域后,换页,换页后页满指示器重置值
SKIPB在打印本域前,换页,换页后页满指示器重置值
SPACEA在打印本域后,换行(可指定行数)
SPACEB在打印本域前,换行(可指定行数)
由于在这些内容中,对REFFLD的操作较为复杂,以下我们将TESTRLU中的开户日期改为使用数据字典中定义的日期字段的格式。
通过这一应用使大家对这一操作有较深刻的认识。
在常量域开户日期位置打F23出现
Keyword..............:
REFFLD
Field...............:
CSOPDT
Recordformat...........:
DETAIL
Typechoices,pressEnter.
Field...............Name
F4forlist
Recordformat..........Name
F4forlist
File...............Name
*SRC
F4forlist
Library.............*CURLIBName
*CURLIB
*LIBL
F3=ExitF4=PromptF5=RefreshF12=CancelF16=Removekeyword
Field栏是定义要参考到具体的哪个域
Recordformat栏定义所参考的域的物理文件的记录名
File栏是定义所参考的域的物理文件名
Library栏是定义存放该物理文件的Library的名字
输入以下内容后按执行
SpecifyReferencedField
Keyword..............:
REFFLD
Field...............:
CSOPDT
Recordformat...........:
DETAIL
Typechoices,pressEnter.
Field...............@@DATEName
F4forlist
Recordformat..........@@RCDName
F4forlist
File...............aarefName
*SRC
F4forlist
Library.............cccbcmnName
*CURLIB
*LIBL
F3=ExitF4=PromptF5=RefreshF12=CancelF16=Removekeyword
Errorsfound.CorrecterrorsorpressEntertocontinue.系统报错可不管
其中CCCBCMN是专用于存放业务系统的参数表的业务系统的一个库
aaref是开发系统的数据字典名称,是一个物理文件。
@@RCD是物理文件的记录名
按执行键后在屏幕的下方出现,一行提示出错信息,可以暂时不管。
有关数据字典的内容将在今后业务系统的讲解中讲述。
执行后屏幕返回
WorkwithFieldKeywords
Field........:
CSOPDTRecordformat....:
DETAIL
Typeoptions,pressEnter.
2=Specify4=Remove
OptKeywordOptKeywordOptKeyword
ALIASEDTCDEMSGCON
BARCODEEDTWRDPAGNBR
BLKFOLDFLTFIXDECPRTQLTY
CDEFNTFLTPCN>REFFLD
CHRIDFNTCHRSETSKIPA
CHRSIZFONTSKIPB
COLORHIGHLIGHTSPACEA
CPIIGCALTTYPSPACEB
CVTDTAIGCANKCNVTEXT
DATEIGCCDEFNTTIME
DFTIGCCHRRTTTRNSPY
DLTEDTINDTXTUNDERLINE
Bottom
F3=ExitF5=RefreshF9=InputkeywordparametersF10=Specifyinformation
F12=CancelF16=Removeallkeywords
SpecifyreferenceinCSOPDTforREFFLD.
大家可以看到在REFFLD的opt中出现了反显,此时需要键入F10
屏幕出现
SpecifyFieldInformation
Editedlength............:
8
Recordformat............:
DETAIL
Numberofkeywords.........:
1
Numberofindicators........:
0
Typechoices,pressEnter.
Field................CSOPDTName
Optionindicators..........01-99,N01-N99
Moreindicators..........NY=Yes,N=No
Startingline............1-255
Startingposition..........+31-255,+nn
Lengthofdata...........81-378,+nn,-nn
Datatype..............11=Character
2=Zoned
3=Floatingpoint
4=Open
5=Graphic
More...
F3=ExitF5=RefreshF11=ConverttoconstantfieldF12=Cancel
在以本屏幕中不作任何操作,按Pagedown
屏幕出现第二页
SpecifyFieldInformation
Editedlength............:
8
Recordformat............:
DETAIL
Numberofkeywords.........:
1
Numberofindicators........:
0
Typechoices,pressEnter.
Decimalpositions..........0-31,+n,-n
Referenceafield..........NY=Yes,N=No
Usereferencedvalues.......YY=Yes,N=No
Bottom
F3=ExitF5=RefreshF11=ConverttoconstantfieldF12=Cancel
在本屏中仅需要将Referenceafield栏改为Y后执行,执行。
该选项将两个域建立起了关系。
以下是数据字典的存放位置
WorkwithMembersUsingPDMS10506
File......RCMASRC
Library....CCCBSRCPositionto.....
Typeoptions,pressEnter.
2=Edit3=Copy4=Delete5=Display6=Print7=Rename
8=Displaydescription9=Save13=Changetext14=Compile15=Createmodule
OptMemberTypeText
5AAREFPF数据字典
AAREFBPF数据字典
AAREF0001PFOldmemberAAREFfileCCCBSRC/RCMASRC.
BPCTAPF批处理控制文件ccx
BPCTL1MC批处理控制逻辑文件Key=trsq
BP4023L1LF核实损益转存参数表逻辑文件
BP4023P1PF核实损益转存参数表1------pf
CXZAAPF储蓄轧帐表参数文件BYqlyr
More.
Parametersorcommand
===>
F3=ExitF4=PromptF5=RefreshF6=Create
在AAREF(数据字典)中有以下内容
Columns...:
171BrowseCCCBSRC/RCMASRC
SEU==>AAREF
FMTA*.....A*.1...+...2...+...3...+...4...+...5...+...6...+...7
1798.00A*42位数字
1799.00A@@ADDR42OTEXT('ADDRESS')
1800.00ACOLHDG('地址')
1801.00A@@ASPS42OTEXT('ASSUREPERSON')
1802.00ACOLHDG('担保人')
1803.00A@@CNPM42OTEXT('CHINAESEPARM')
1804.00ACOLHDG('中文项目''代码
1805.00A@@CUNM42OTEXT('CUSTOMERNAME')
1806.00ACOLHDG('客户''中文名')
1807.00A@@ACNMRREFFLD(@@CUNM)
1808.00ACOLHDG('帐户''中文名')
1809.00A@@CLNMRREFFLD(@@CUNM)
1810.00ACOLHDG('委托人''名称')
1811.00A@@OTNMRREFFLD(@@CUNM)
1812.00ACOLHDG('对方''名称')
1813.00A@@PANMRREFFLD(@@CUNM)
1814.00ACOLHDG('付款人''名称')
F3=ExitF5=RefreshF9=RetrieveF10=CursorF11=ToggleF12=Cancel
F16=RepeatfindF24=Morekeys
请看阴影行的内容定义了一个@@CUNM字段的内容,请大家参考前面的操作将自己的RLU中的姓名改为参考该域。
请思考,参考是依赖于源文件还是编译生成的物理文件?
PRTF的编译
将存盘后得到的文件为PRTF类型的成员文件(基本上全部的成员Member都需要进行编译后,在RPG程序中才能进行运用)。
在opt选项键入14后使用F4将打印文件编译放到指定的Library中,请大家使用WRKOBJ看编译生成的打印文件,与编译生成的物理文件以及逻辑文件的区别。
在AS400中不能使用DSPDBF和UPDDTA对打印文件进行处理!
编译生成的文件,可以由RPG进行使用。
以下是RLURPG的程序代码。
***************Beginningofdata*************************************
0001.00FTESTRLUOE66PRINTER
0002.00FCUSLFIFEKDISK
0003.00C*LOVALSETLLFCUS
0004.00CWRITEHEAD
0005.00C1DOWEQ1
0006.00CREADFCUS58
0007.00C*IN58IFEQ'1'
0008.00CLEAVE
0009.00CENDIF
0010.00C*数据文件变量值赋给打印文件
0011.00CMOVELCUNAMECSNAME
0012.00CMOVECUOPDTCSOPDT
0013.00CZ-ADDCUACBLCSACBL
0014.00CWRITEDETAIL
0015.00CENDDO
0016.00CWRITEBOTTOM
0017.00CSETONLR
******************Endofdata************************************
在程序中0001.00行对打印文件进行了说明,请认真比较与逻辑文件定义内容的不同之处。
其中的66是满页指示器,用于进行页满的指示,当输出报表到达指定行时系统将给满页指示器置位为‘1’,系统将自动进行换页处理。
(由于在业务系统中,为了保持报表的连贯性,我们将由应用程序来控制换页)
其中的PRINTER是专门用于说明打印文件的
对于打印文件,仅有写入操作,不需要象对数据文件写入时在F表的后部定义一个A。