第十八章交互应用的例子.docx
- 文档编号:24352500
- 上传时间:2023-05-26
- 格式:DOCX
- 页数:53
- 大小:38.34KB
第十八章交互应用的例子.docx
《第十八章交互应用的例子.docx》由会员分享,可在线阅读,更多相关《第十八章交互应用的例子.docx(53页珍藏版)》请在冰豆网上搜索。
第十八章交互应用的例子
4.6第十八章交互应用的例子
这一章给出一些一般工作站应用开发以及ILERPG/400的编码。
本章提供的应用程序由四个模块组成,每个模块解释了WORKSTN文件的一般用法,第一个模块(CUSMAIN)给出程序的主菜单,根据用户的选择,它调用提供功能请求相应模块中的过程。
每个模块使用WORKSTN文件来提示用户在屏幕上输入和显示信息。
除了主模块(CUSMAIN)之外,每个模块还使用了表示主数据库视图的逻辑文件,这个视图仅由这个模块处理所需要的主文件字段组成。
注:
除CUSMAIN之外,每个模块可编译成一个独立的程序,也就是说,它们中的每一个都可以当作独立的程序来使用。
表18:
交互式应用例子中各模块的说明
模块说明
一个基本的菜单查询程序的例子
4.6.2主菜单查询它用WORKSTN文件来显示菜单选择并操作输入
一个维护程序的例子
4.6.3文件维护它允许更新、删除、增加和显示主文件中的客户记录
一个用WORKSTN子文件来处理显示所有与指定的ZIP码相4.6.4由ZIP码检索匹配记录的例子
一个用WORKSTN子文件处理显示所有与指定的客户名相匹4.6.5由名字检索及查询配记录的例子,它允许用户从子文件中选择一条记录来显示客户的完整信息。
4.6.1数据库物理文件
图125显示了这个客户文件的DDS描述,这个文件包括了每个客户的重要信息,例如,姓名、地址、帐号和客户号。
要获得客户信息的每个模块都使用这个数据库文件,(或者它的一个逻辑视图)。
A*****************************************************************
A*文件名:
CUSMST*
A*有关程序:
CUSMNT,SCHZIP,SCHNAM*
A*有关文件:
CUSMSTL1,CUSMTSL2,CUSMSTL3(逻辑文件)*
A*说明:
这是物理文件CUSMST,它的记录格式名为CUSREC。
*
A*****************************************************************
A*CUSTOMERMASTERFILE--CUSMST
ARCUSREC
ACUST50TEXT('CUSTOMERNUMBER')
ANAME20TEXT('CUSTOMERNAME')
AADDR120TEXT('CUSTOMERADDRESS')
AADDR220TEXT('CUSTOMERADDRESS')
ACITY20TEXT('CUSTOMERCITY')
ASTATE2TEXT('CUSTOMERSTATE')
AZIP50TEXT('CUSTOMERZIPCODE')
AARBAL102TEXT('ACCOUNTSRECEIVABLEBALANCE')
图125主数据物理文件CUSMST的DDS
4.6.2主菜单查询
下面是一个简单的查询程序,它使用一个WORKSTN文件来显示菜单选项并接收输入。
4.6.2.1MAINMENU:
显示设备文件的DDS
显示文件MAINMENU的DDS指定了文件层项和一个记录格式:
HDRSCN的描述,文件层定义了屏幕的大小(DSPSIZ)输入,缺省值(CHGINPDFT),打印键(PRINT)和一个指示器区(INDARA)。
记录格式HDRSCN包含常量“CUSTOMERMAININQUIRY”,它标识了该显示,也有键字TIME和DATE,将在屏幕显示当前的日期和时间,CA键字定义了使用的功能键,及在RPG程序里与功能键相关联的指示器。
A*****************************************************************
A*文件名:
MAINMENU*
A*有关程序:
CUSMAIN*
A*说明:
这是一个显示文件MAINMENU,记录格式名为HDRSCN。
*
A*****************************************************************
ADSPSIZ(2480*DS3)
ACHGINPDFT(CS)
APRINT(QSYSPRT)
AINDARA
ARHDRSCN
ACA03(03'ENDOFINQUIRY')
ACA05(05'MAINTENANCEMODE')
ACA06(06'SEARCHBYZIPMODE')
ACA07(07'SEARCHBYNAMEMODE')
A24TIME
ADSPATR(HI)
A228'CUSTOMERMAININQUIRY'
ADSPATR(HI)
ADSPATR(RI)
A270DATE
AEDTCDE(Y)
ADSPATR(HI)
A65'Pressoneofthefollowing'
A632'PFkeys.'
A822'F3EndJob'
A922'F5MaintainCustomerFile'
A1022'F6SearchCustomerbyZipCode'
A1122'F7SearchCustomerbyName'
图126显示设备文件MAINMENU的DDS
除了描述常量、字段、行数和屏幕的行列位置之外,记录格式还定义了这些项的显示属性。
注:
通常,字段属性定义在一个字段引用文件中而不是在DDS文件中,这些属性在DDS中给出,这样你可以看出它们的内容。
4.6.2.2CUSMAIN:
RPG源码
*****************************************************************
*程序名:
CUSMAIN*
*有关文件:
MAINMENU(显示文件)*
*有关程序:
CUSMNT(ILERPG程序)*
*SCHZIP(ILERPG程序)*
*SCHNAM(ILERPG程序)*
*说明:
这是客户查询主程序,它提示用户选择下列之一:
*
*1.管理客户记录(加更新、删除和显示)*
*2.用ZIP码检索客户*
*3.用名字检索客户*
*****************************************************************
FMAINMENUCFEWORKSTN
CEXFMTHDRSCN
C*
CDOWNOT*IN03
CSELECT
CWHEN*IN05
CCALLB'CUSMNT'
CWHEN*IN06
CCALLB'SCHZIP'
CWHEN*IN07
CCALLB'SCHNAM'
CENDSL
CEXFMTHDRSCN
CENDDO
C*
CSETONLR
图127模块CUSMAIN的源码
这一模块解释了操作码CALLB的用法,根据用户菜单选项的选择由CUSMAIN调用相应的模块(CUSMNT、SCHZIP或SCHNAM),为了生成程序目标:
1、使用命令CRTRPGMOD对每个源成员(CUSMAIN、CUSMNT、SCHZIP和SCHNAM)生成模块。
2、下列命令生成程序
CRTPGMPGM(MYPROG)MODULE(CUSMAINCUSMNTSCHZIPSCHNAM)
ENTMOD(*FIRST)
注:
*FIRST选项指定了在列表中的第一个模块CUSMAIN,作为程序的入口过程。
3、调用程序:
CALLMYPROG
出现如图128的主菜单
**
**
*22:
30:
05CUSTOMERMAININQUIRY9/30/94*
**
**
**
*PressoneofthefollowingPFkeys.*
**
*F3EndJob*
*F5MaintainCustomerFile*
*F6SearchCustomerbyZipCode*
*F7SearchCustomerbyName*
**
**
**
**
**
**
**
**
**
**
**
**
**
**
图128客户查询操作屏幕。
4.6.3文件维护
下面说明了一个使用WORKSTN文件的维护程序。
它允许增加、删除、更新和显示主客户数据文件中记录。
4.6.3.1CUSMSTL1:
逻辑文件的DDS
A*****************************************************************
A*文件名:
CUSMSTL1*
A*有关程序:
CUSMNT*
A*有关文件:
CUSMST(物理文件)*
A*说明:
这是逻辑文件CUSMSTL1,记录格式名为CMLREC。
是由*
A*客户号(CUST)对CUSMST的视图。
*
A*****************************************************************
ARCMLREC1PFILE(CUSMST)
ACUST
ANAME
AADDR1
AADDR2
ACITY
ASTATE
AZIP
AKCUST
图129逻辑文件CUSMSTL1的DDS。
程序使用的数据库文件的DDS描述了一个记录格式:
CMLREC1给出在记录格式中的字段,CUST作为该格式的键字字段。
4.6.3.2MNTMENU:
显示文件的DDS
A*****************************************************************
A*文件名:
MNTMENU*
A*有关程序:
CUSMNT*
A*有关文件:
CUSMSTL1(物理文件)*
A*说明:
这是一个显示文件,有3个记录格式。
*
A*****************************************************************
AREF(CUSMSTL1)
ACHGINPDFT(CS)
APRINT(QSYSPRT)
AINDARA
ARHDRSCN
ATEXT('PROMPTFORCUSTNUMBER')
ACA03(03'ENDMAINTENANCE')
ACA05(05'ADDMODE')
ACA06(06'UPDATEMODE')
ACA07(07'DELETEMODE')
ACA08(08'DISPLAYMODE')
AMODE8AO14DSPATR(HI)
A113'MODE'
ADSPATR(HI)
A24TIME
ADSPATR(HI)
A228'CUSTOMERFILEMAINTENANCE'
ADSPATR(HIRI)
A270DATE
AEDTCDE(Y)
ADSPATR(HI)
ACUSTRYI1025DSPATR(CS)
ACHECK(RZ)
A51ERRMSG('CUSTOMERALREADYON+
AFILE'51)
A52ERRMSG('CUSTOMERNOTONFILE'+
A52)
A1033'<--EnterCustomerNumber'
ADSPATR(HI)
A234'F3EndJob'
A2321'F5Add'
A2334'F6Update'
A2350'F7Delete'
A2366'F8Display'
ARCSTINQ
ATEXT('DISPLAYCUSTINFO')
ACA12(12'PREVIOUSSCREEN')
AMODE8AO14DSPATR(HI)
A113'MODE'
ADSPATR(HI)
A24TIME
ADSPATR(HI)
A228'CUSTOMERFILEMAINTENANCE'
ADSPATR(HI)
ADSPATR(RI)
A270DATE
AEDTCDE(Y)
ADSPATR(HI)
A414'Customer:
'
ADSPATR(HI)
ADSPATR(UL)
ACUSTRO425DSPATR(HI)
ANAMERB625DSPATR(CS)
A04DSPATR(PR)
AADDR1RB725DSPATR(CS)
A04DSPATR(PR)
AADDR2RB825DSPATR(CS)
A04DSPATR(PR)
ACITYRB925DSPATR(CS)
A04DSPATR(PR)
ASTATERB1025DSPATR(CS)
A04DSPATR(PR)
AZIPRB1040DSPATR(CS)
AEDTCDE(Z)
A04DSPATR(PR)
A232'F12Cancel'
AMODE18O2313
ARCSTBLDTEXT('ADDCUSTRECORD')
ACA12(12'PREVIOUSSCREEN')
AMODE8O14DSPATR(HI)
A113'MODE'DSPATR(HI)
A24TIME
ADSPATR(HI)
A228'CUSTOMERFILEMAINTENANCE'
ADSPATR(HIRI)
A270DATE
AEDTCDE(Y)
ADSPATR(HI)
A414'Customer:
'DSPATR(HIUL)
ACUSTRO425DSPATR(HI)
A620'Name'DSPATR(HI)
ANAMERI625
A717'Address'DSPATR(HI)
AADDR1RI725
A817'Address'DSPATR(HI)
AADDR2RI825
A920'City'DSPATR(HI)
ACITYRI925
A1019'State'DSPATR(HI)
ASTATERI1025
A1036'Zip'DSPATR(HI)
AZIPRYI1040
A232'F12CancelAddition'
图130显示文件MNTMENU的DDS。
显示文件MNTMENU的DDS包含三个记录格式:
HDRSCN、CSTINQ和CSTBLD。
记录格式HDRSCN提示了客户号和处理方式,记录CSTINQ被用来更新、删除和显示模式。
字段被定义成输出/输入(38列上的B),当选择显示或删除方式时,字段被保护(DSPATR(PR))。
记录CSTBLD对新记录提供了输入字段(38列的I)。
记录格式HDRSCN包括常量‘CustomerFileMaintenance’。
ERRMSG键字定义了如果发生错误时显示的信息。
CA键字定义了与程序指示器相关联的功能键。
4.6.3.3CUSMNT:
RPG源码
*****************************************************************
*程序名:
CUSMNT*
*有关文件:
CUSMSTL1(逻辑文件)*
*MNTMENU(显示文件)*
*说明:
这个程序用工作站文件做客户管理,允许加更新、删*
*除和显示客户记录,按F3结程序。
*
*****************************************************************
FCUSMSTL1UFAEKDISK
FMNTMENUCFEWORKSTN
CCSTKEYKLIST
CKFLDCUST
********************************************************************
*主程序行*
********************************************************************
CMOVE'DISPLAY'MODE
CEXFMTHDRSCN
C*
CDOWNOT*IN03
CEXSRSETMOD
C*
CCUSTIFNE*ZERO
CMODECASEQ'ADD'ADDSUB
CMODECASEQ'UPDATE'UPDSUB
CMODECASEQ'DELETE'DELSUB
CMODECASEQ'DISPLAY'INQSUB
CENDCS
CENDIF
C*
CEXFMTHDRSCN
CENDDO
CMOVE*ON*INLR
********************************************************************
*子程序—ADDSUB*
*用途—往文件中加新客户*
********************************************************************
CADDSUBBEGSR
CCSTKEYCHAINCMLREC150
CIFNOT*IN50
CMOVE*ON*IN51
CELSE
CMOVE*OFF*IN51
CMOVE*BLANKNAME
CMOVE*BLANKADDR1
CMOVE*BLANKADDR2
CMOVE*BLANKCITY
CMOVE*BLANKSTATE
CZ-ADD*ZEROZIP
CEXFMTCSTBLD
CIFNOT*IN12
CWRITECMLREC1
CENDIF
CENDIF
CENDSR
********************************************************************
*子程序—UPDSUB*
*用途—更新客户主文件记录*
********************************************************************
CUPDSUBBEGSR
CMOVE*OFF*IN04
CCSTKEYCHAINCMLREC152
CIFNOT*IN52
CEXFMTCSTINQ
CIFNOT*IN12
CUPDATECUSMSTL1
CELSE
CUNLOCKCUSMSTL1
CENDIF
CENDIF
CENDSR
********************************************************************
*子程序—DELSUB*
*用途—删客户主文件记录*
********************************************************************
CDELSUBBEGSR
CMOVE*ON*IN04
CCSTKEYCHAINCMLREC152
CIFNOT*IN52
CEXFMTCSTINQ
CIFNOT*IN12
CDELETECMLREC1
CELSE
CUNLOCKCUSMSTL1
CENDIF
CENDIF
CENDSR
********************************************************************
*子程序—INQSUB*
*用途—显示客户主文件记录*
********************************************************************
CINQSUBBEGSR
CMOVE*ON*IN04
CCSTKEYCHAINCMLREC152
CIFNOT*IN52
CEXFMTCSTINQ
CUNLOCKCUSMSTL1
CENDIF
CENDSR
********************************************************************
*子程序—SETMOD*
*用途—设置管理方式*
********************************************************************
CSETMODBEGSR
CSELECT
CWHEN*IN05
CMOVE'ADD'MODE
CWHEN*IN06
CMOVE'UPDATE'MODE
CWHEN*IN07
CMOVE'DELETE'MODE
CWHEN*IN08
CMOVE'DI
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第十八章 交互应用的例子 第十八 交互 应用 例子
![提示](https://static.bdocx.com/images/bang_tan.gif)