AS/400开发经验点滴(六)如何制作下拉菜单
九.在AS/400上实现弹出下拉菜单
1.步骤
AS/400上使用下拉菜单的软件很少见,但下拉菜单的优点又显而易见,AS/400的SDA工具提供了制造下拉菜单的功能。
用SDA创建显示文件,可以用多种RECORD类型可以选择:RECORD, USRDFN,SFL, SFLMSG,WINDOW, WDWSFL,PULDWN, PDNSFL,MNUBAR。其中的MNUBAR和PULDWN两种类型就是制造下拉菜单的两种必须类型。
使用SDA工具只需遵循以下六个步骤就可以创建下拉菜单:
1. 用STRSDA启动SDA,选择DESIGN SCREEN
2. 创建一个或多个类型为pull-down(PULDWN)的RECORD
3. 创建一个类型menu-bar(MNUBAR)的RECORD
4. 定义PULDWN RECORD的fields
5. 定义MNUBAR RECORD的fileds
6. 测试下拉菜单
2. 显示文件
这几步详细步骤信息可以参见SDA参考书。下面就是我创建的一个下拉菜单的示范显示文件:
A*%%TS SD 20040210 110218 BLOG REL-V5R1M0 5722-WDS
A*@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
A* *
A* FILE NAME : PULLMENU *
A* DESCRIPTION : PULL DOWN MENU SAMPLE *
A* VERSION : 2.00 *
A* PROGRAMMER : BLOG LIOU *
A* CREATION DATE : 1998.02.22 - V1.00 *
A* MODIFIED DATE : 1998.05.08 - V2.00 *
A* MODIFIED DATE : 2004.02.10 - V2.10 *
A* *
A*################################################################
A*%%EC
A DSPSIZ(24 80 *DS3)
A INVITE
A INDARA
A MNUBARSW(CA10)
A MNUCNL(CA12)
A HELP(01)
A CF02
A CF03
A CSRINPONLY
A* OVERLAY
A* MNUBARDSP(MENUBAR &MNUCHI &PULCHI)
A R APPSCR
A*%%TS SD 20040210 110218 BLOG REL-V5R1M0 5722-WDS
A CSRLOC(LINNBR POSNBR)
A RTNCSRLOC(*WINDOW &LINNBR &POSNBR)
A KEEP
A LINNBR 3S 0H
A POSNBR 3S 0H
A 23 1'F1=HELP
F2=SWITCH LINE MENU F3=E-
A XIT F12=CANCEL -
A '
A DSPATR(RI)
A COLOR(BLU)
A 11 26'= = PULL DOWN MENU SAMPLE = ='
A COLOR(BLU)
A 20 14'BLOGIMS VERSION 1.00, (C)COPYRIGHT-
A XXXXXXX CORP. 1998.'
A DSPATR(UL)
A COLOR(WHT)
A* 3 63DATE
A* EDTCDE(Y)
A* DSPATR(HI)
A* 3 72TIME
A* DSPATR(HI)
A*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
A R MENUBAR
A*%%TS SD 19980518 164123 BLOG REL-V3R7M0 5716-PW1
A RTNCSRLOC(*WINDOW &LINNBR &POSNBR)
A CSRLOC(LINNBR POSNBR)
A OVERLAY
A KEEP
A MNUBAR
A MNUBARDSP(&PULCHI)
A LINNBR 3S 0H
A POSNBR 3S 0H
A PULCHI 2S 0H
A MNUCHI 2Y 0B 1 2CHCSLT((*COLOR PNK))
A MNUBARCHC(1 APULDWN '中心日终')
A MNUBARCHC(2 BPULDWN '查询处理')
A MNUBARCHC(3 CPULDWN '网络监视')
A MNUBARCHC(4 DPULDWN '报标管理')
A MNUBARCHC(5 EPULDWN '系统管理')
A MNUBARCHC(6 FPULDWN '数据维护')
A*----------------------------------------------------------------
A R APULDWN
A*%%TS SD 19980510 083341 BLOG REL-V3R7M0 5716-PW1
A PULLDOWN(*NOSLTIND)
A FLD001 2Y 0B 1 1SNGCHCFLD
A CHOICE(1 '>;1********* ')
A CHOICE(2 '>;2 *********')
A CHOICE(3 '>;3 *********')
A CHOICE(4 '>;4 *********')
A CHOICE(5 '>;5 *********')
A CHOICE(6 '>;6 *********')
A CHOICE(7 '>;7 *********')
A CHOICE(8 '>;8 *********')
A CHOICE(9 '>;9 *********')
A CHOICE(10 '>;A *********')
A CHOICE(11 '>;B *********')
A CHOICE(12 '>;C *********')
A CHOICE(13 '>;D *********')
A CHOICE(14 '>;E *********')
A R BPULDWN
A*%%TS SD 19980508 220549 BLOG REL-V3R7M0 5716-PW1
A PULLDOWN
A FLD001 2Y 0B 1 1CHOICE(1 ' ********* ')
A CHOICE(2 ' *********')
A CHOICE(3 ' *********')
A CHOICE(4 ' ********* ')
A CHOICE(5 ' *********')
A CHOICE(6 ' *********')
A SNGCHCFLD
A R CPULDWN
A*%%TS SD 19980508 220549 BLOG REL-V3R7M0 5716-PW1
A PULLDOWN
A FLD001 2Y 0B 1 1SNGCHCFLD
A CHOICE(1 ' *********')
A CHOICE(2 ' ********* ')
A CHOICE(3 ' *********')
A R DPULDWN
A*%%TS SD 19980508 220549 BLOG REL-V3R7M0 5716-PW1
A PULLDOWN
A FLD001 2Y 0B 1 1SNGCHCFLD(*RSTCSR)
A CHOICE(1 ' *********')
A CHCUNAVAIL((*COLOR BLU))
A R EPULDWN
A*%%TS SD 19980508 220549 BLOG REL-V3R7M0 5716-PW1
A PULLDOWN
A FLD001 2Y 0B 1 1SNGCHCFLD
A CHOICE(1 ' *********')
A CHOICE(2 ' *********')
A CHOICE(3 ' *********')
A CHOICE(4 ' *********')
A** CHOICE(5 ' *********')
A CHOICE(5 ' *********')
A R FPULDWN
A*%%TS SD 19980508 160451 BLOG REL-V3R7M0 5716-PW1
A PULLDOWN(*NOSLTIND)
A FLD001 2Y 0B 1 1SNGCHCFLD
A COLOR(BLU)
A CHOICE(1 '>;1 *********')
A CHOICE(2 '>;2 *********')
A CHOICE(3 '>;3 *********')
A CHOICE(4 '>;4 *********')
A CHOICE(5 '>;5 *********')
A CHOICE(6 '>;6 *********')
A CHOICE(7 '>;7 *********')
A CHOICE(8 '>;8 *********')
A CHOICE(9 '>;9 *********')
A CHOICE(10 '>;A *********')
A CHOICE(11 '>;B *********')
A CHOICE(12 '>;C *********')
A CHOICE(13 '>;D *********')
3. RPG程序
但是光有显示文件还不行,必须与高级程序(RPG或CL)结合起来,才能完成下显拉菜单的程序调用功能。要使RPG程序知道正确的调用,RPG程序就必须知道示文件当前的选择。这个选择是有两项组成,一个是MNUBAR的当前选择,一个PULDWN的选择。这两个选择项都是在显示文件的MNUBAR RECORD定义的,分别是MNUCHI和PULCHI,要在显示文件里正确获得这两项值,还必须在MNUBAR RECORD里定义当前光标位置,这是由定义LINNBR和POSNBR两个变量来体现的。初学者常犯的一个错误就是:已成功创建下拉菜单显示文件,但在RPG程序中却无法成功调用应用程序,问题就出在这里。
有了MNUCHI和PULCHI,那么在RPG程序中就可以准确知道当前的选择,从而分别调用相应的程序。调用程序方式可以多种多样,可以直接调用,也可以把程序名写在一个PF文件里,动态调用。下面示范RPG程序中MNUCHI为CENTER的调用就是用参数文件来实现的,其他全部直接调用。
比如定义MENUPGM的PF文件来存放调用程序名:
A*
A UNIQUE
A R MNUPGM
A MNUCHI 2S 0
A PULCHI 2S 0
A PDNPGM 10A
A K MNUCHI
A K PULCHI
下面是RPG程序:
H*################################################################
H* *
H* PROGRAM NAME : PULLMENUR *
H* VERSION : 2.00 *
H* FUNCTION : *
H* PROGRAMMER : BLOG LIOU *
H* MODIFIED BY : *
H* CREATION DATE : 1998.02.19 - V1.00 *
H* MODIFIED DATE : 1998.05.08 - V2.00 *
H* MODIFIED DATE : 2004.02.10 - SAMPLE *
H* *
H*&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
FMENUPGM IF E K DISK
FPULLMENUCF E WORKSTN
I*--------------------------------------------------------------
I SDS
I *STATUS STATUS
C*--------------------------------------------------------------
C MOVE *BLANK PGMNAM 8
C CHIKEY KLIST
C KFLD MNUCHI
C KFLD PULCHI
C*
C*################################################################
C*
C MNMENU TAG
C Z-ADD2 POSNBR
C MENULP TAG
C Z-ADD1 LINNBR
C WRITEAPPSCR
C EXFMTMENUBAR
C *INKC IFEQ *ON
C GOTO ENDPGM
C ENDIF
C MNUCHI CASEQ1 CENTER
C MNUCHI CASEQ2 DATQRY
C MNUCHI CASEQ3 NETMON
C MNUCHI CASEQ4 RPTPRT
C MNUCHI CASEQ5 SYSADM
C MNUCHI CASEQ6 DATMNT
C ENDCS
C *INKB IFEQ '1'
C CALL 'ALTMENU'
C ENDIF
C GOTO MENULP
C ENDPGM TAG
C SETON LR
C RETRN
C*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
C*
C* --------------------------------------------------
C CENTER BEGSR
C Z-ADDPULCHI XZXM 20
C CHIKEY CHAINMNUPGM 60
C N60 MOVE PDNPGM PGMNAM
C CALL PGMNAM
C PARM '0000' RMSG 4
C EXTRZ ENDSR
C*----------------------------------------------------------------
C DATQRY BEGSR
C SELEC
C PULCHI WHEQ 1
C CALL 'DSPWDZT'
C PULCHI WHEQ 2
C CALL 'AMDSPDB'
C PULCHI WHEQ 3
C CALL 'QRYLSZH'
C PULCHI WHEQ 4
C CALL 'DSPRZF'
C PULCHI WHEQ 5
C 60 MOVEL'CXKMGZ' PGMNAM
C CALL PGMNAM 56
C N56 FREE PGMNAM
C PULCHI WHEQ 6
C 60 MOVEL'CXZZXX' PGMNAM
C CALL PGMNAM 56
C N56 FREE PGMNAM
C ENDSL
C ENDSR
C*----------------------------------------------------------------
C NETMON BEGSR
C SELEC
C PULCHI WHEQ 1
C CALL 'WATCHNH'
C PULCHI WHEQ 2
C CALL 'WATCHRH'
C PULCHI WHEQ 3
C CALL 'WATCHHH'
C ENDSL
C ENDSR
C*----------------------------------------------------------------
C RPTPRT BEGSR
C CALL 'BBMENU'
C ENDSR
C*----------------------------------------------------------------
C SYSADM BEGSR
C SELEC
C PULCHI WHEQ 1
C CALL 'MNTJGDY'
C PULCHI WHEQ 2
C CALL 'MNTGYDY'
C PULCHI WHEQ 3
C CALL 'BAKACDAT'
C PULCHI WHEQ 4
C CALL 'RSTACDAT'
C PULCHI WHEQ 5
C CALL 'MNTQLSJ'
C ENDSL
C ENDSR
C*----------------------------------------------------------------
C DATMNT BEGSR
C SELEC
C PULCHI WHEQ 1
C 60 MOVEL'MNTKMDM' PGMNAM
C CALL PGMNAM
C PULCHI WHEQ 2
C CALL 'MNTJYDM'
C PULCHI WHEQ 3
C CALL 'MNTLLDM'
C PULCHI WHEQ 4
C CALL 'MNTHLDM'
C PULCHI WHEQ 5
C CALL 'MNTYWLB'
C PULCHI WHEQ 6
C CALL 'MNTPZDM'
C PULCHI WHEQ 7
C CALL 'MNTZDDM'
C PULCHI WHEQ 8
C CALL 'MNTRQDM'
C PULCHI WHEQ 9
C CALL 'MNTXJDM'
C PULCHI WHEQ 10
C CALL 'MNTCSDM'
C PULCHI WHEQ 11
C CALL 'MNTCDDY'
C PULCHI WHEQ 12
C CALL 'MNTSQLB'
C PULCHI WHEQ 13
C CALL 'MNTXYMM'
C ENDSL
C ENDSR
C*&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
C *PSSR BEGSR
C GOTO MNMENU
C ENDSR
C*@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
上面的示范程序实际编译通过,可以作为创建下拉菜单参考。也可以直接修改本示范程序而不是通过SDA定义来创建下拉菜单。
转载于:https://www.cnblogs.com/etsdpt/archive/2012/01/10/2317073.html
AS/400开发经验点滴(六)如何制作下拉菜单相关推荐
- jq中查找上级_必备实用技能:在EXCEL中制作下拉菜单
发出去表格统计信息,收回来时却发现填得乱糟糟?小白通教你制作下拉菜单,填表人只能规规矩矩从你给的选项中填.认真学习,这个是必备技能哦. 单级下拉菜单 1. 选择需要编辑的单元格,选择"数据- ...
- excel添加列下拉框票价_excel表格下拉表格添加数据-excel2017表格中怎么制作下拉菜单列表框...
在Excel表中,如何将增加下拉菜单的选项? excel中的下拉菜单选项,就是筛选的功能,具体操作如下: 1.首先选中a.b两列数据,在"开始"选项卡上选择"筛选&quo ...
- Excel中如何制作下拉菜单
文字教程 准备好需要生成的清单 选择你想制作下拉菜单的单元格 依次点击数据→数据验证 在弹出的数据验证菜单中选择第一个设置页(默认也是这个) 在允许下面选择序列(会跳出一个来源) 点击选择按钮,选择序 ...
- Excel制作下拉菜单
Excel制作下拉菜单 技巧:选择表格,点击数据选择数据验证(或者有效性),条件:序列,来源即可
- WPS表格如何快速制作下拉菜单
如下图,是某公司销售表,为了方便录入计划在产品列制作下拉菜单. 选中产品列单元格区域 点击下图选项(Excel插件,百度即可了解详细的下载安装方法,本文这里就不做具体的解说演示.) 点击[新增插入] ...
- excel填充序列_excel制作下拉菜单
在 Excel 中,制作一些有选择分类功能的表格时,需要制作下拉菜单,以便于每一行选择和减少输入,那么 Excel下拉菜单怎么做? 1. 首先选中要添加下拉列表的单元格 2. 点击数据验证, 再点击数 ...
- js+css+html制作下拉菜单
js+css+html制作下拉菜单 1 案例需求 2 编写HTML结构代码 3 编写css样式 4 编写JavaScript部分 5 全部代码 1 案例需求 使用JavaScript+css+html ...
- 使用CSS制作下拉菜单样式
CSS制作下拉菜单 制作tooltip显示形式 代码示例 实现原理 HTML 部分 CSS 部分 制作可点击的下拉菜单 实现原理 代码示例 Appdex 制作tooltip显示形式 代码示例 < ...
- css用hover制作下拉菜单
首先我们的需求就是 制作一个鼠标移动到某个区域就会有下拉菜单的弹出,这样会有更多的子类内容,示例代码如下: <!DOCTYPE html> <html lang="en&q ...
- 完全使用CSS制作下拉菜单
在Blueidea看到的一段完全使用CSS制作的下拉菜单,绝对的强~因此收藏了一下. 这个样式最大的收获就是CSS也可以像JS一样,使用例如:div.open,a.outer:hover之类实现类似于 ...
最新文章
- Windows phone 7新开发工具发布
- MySql清空表的方法介绍 : truncate table 表名
- solidworks操作记录
- 2015年你必须学习的编程语言和前端框架
- tomcat https 配置
- ethereum(以太坊)(七)--枚举/映射/构造函数/修改器
- java 轮询请求接口_js调用轮询接口
- android模拟器默认位置的修改
- 最可怕的八种黑客手段,网络攻击真是无孔不入!【转载】
- 第2小节,深入剖析gym环境构建
- (51)FPGA条件选择(case)
- B. 基本概念:类和对象
- 零基础学python电子书-资料│最适合大学生零基础学的Python视频+电子书
- 淘宝技术这十年 -- 目录
- deepfacelab安卓版_deepfacelab
- Git操作不规范,战友提刀来相见。
- 德艺双修才貌双全 史上16位青楼佳人 迷住宋徽宗的李师师
- 人工智能能和人类辩论了;《云网产业发展白皮书》发布
- hdu 5886 Tower Defence 树形期望dp 雪漫防守战
- Cocos Creator Effect 高斯模糊 (带算法)