- 论坛徽章:
- 0
|
按:前几天,有两位朋友谈及下拉菜单。我也来凑凑热闹,毕竟是自己的亲自经验。
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参考书。下面就是我创建的一个下拉菜单的示范显示文件:
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程序:
上面的示范程序实际编译通过,可以作为创建下拉菜单参考。也可以直接修改本示范程序而不是通过SDA定义来创建下拉菜单。
BLOG LIOU
2004.2.11 |
|