大家知道 IBM i 的操作界面主要是绿屏方式,用起来简单快捷、稳定可靠。绿屏方式不仅可以进行文字显示, IBM i 还提供了 GUI 控件来实现图形界面的一些功能,例如可以实现“按钮”、“下拉菜单”、“滚动列表”等功能,这对于三四十年前没有图形显示的文字终端来说非常有意义,至今宝刀不老依然发挥着重要作用。
为了更好地说明 GUI 控件,下面举一个例子来简单地说明如何在 IBM i 绿屏方式下实现 GUI 的“按钮”功能。
创建 DSPF 。
可以用 DDS 或 SDA 来定义。
A*%%TS SD 20220602 230157 XIAOQING REL-V7R2M0 5770-WDS
A*%%EC
A************************************************************
A* *
A* DISPLAY FILE *
A* *
A* EDITED BY XIAOQING,2022/6 *
A* *
A************************************************************
A DSPSIZ(24 80 *DS3)
A MSGLOC(24)
A PRINT
A R DSPDTA01
A*%%TS SD 20220602 230157 XIAOQING REL-V7R2M0 5770-WDS
A TEXT('报表屏幕 01')
A CF03(03 '退出 ')
A SETOF(99)
A BLINK
A
A 2 2'USER:'
A 2 8USER
A 2 34'SYSTEM:'
A 2 42SYSNAME
A 2 70DATE(*SYS) EDTCDE(Y)
A 1 32'按钮测试画面'
A DSPATR(HI)
A COLOR(YLW)
A 4 2'说明:'
A 5 2' OK或F01按钮被按下时,开始计数-
A 。'
A 8 2'按下OK键的次数统计...'
A 10 2'按下F01键的次数统计...'
A COUNTOK 3Y 0B 8 37
A COUNTF01 3Y 0B 10 37
A PSHFLD 2Y 0B 8 45PSHBTNFLD(*RSTCSR (*NUMCOL 3))
A PSHBTNCHC(1 'OK')
A PSHF01 2Y 0B 10 45PSHBTNFLD(*RSTCSR (*NUMCOL 3))
A PSHBTNCHC(1 'F01' CF01)
A DSPMSG 40A O 20 4DSPATR(HI)
A 23 2'F3 EXIT'
A COLOR(RED)
编写一个 CLP 来调用这个 DSPF 。
这个 CLP 程序的作用是对按钮的点击次数进行统计,也可以通过“ Reset All ”按钮对统计结果清零。例如“ OK ”按钮每被点击一次,计数器就会累计一次,同时在屏幕上进行显示,大家可以通过下面的视频查看程序的执行效果。
/********************************************************************/
/* CREATE A BUTTON ON DISPLAY FILE AND TEST */
/* CONTROL LANGUAGE PROGRAM */
/* */
/* EDITED BY XIAOQING 2022/06 */
/********************************************************************/
PGM
DCL VAR(&MSG) TYPE(*CHAR) LEN(80)
DCLF FILE(XQLIB/BUTTONF)
CHGVAR VAR(&COUNTOK) VALUE(0)
CHGVAR VAR(&COUNTF01) VALUE(0)
DSPLY: SNDRCVF RCDFMT(DSPDTA01)
IF COND(&IN03 *EQ '1') THEN(RETURN)
IF COND(&PSHF01 *EQ 1) THEN(DO)
CHGVAR VAR(&DSPMSG) VALUE('F01 按钮被按下 ')
CHGVAR VAR(&COUNTF01) VALUE(&COUNTF01 + 1)
ENDDO
ELSE IF COND(&PSHFLD *EQ 1) THEN(DO)
CHGVAR VAR(&DSPMSG) VALUE('OK 按钮被按下 ')
CHGVAR VAR(&COUNTOK) VALUE(&COUNTOK + 1)
ENDDO
GOTO DSPLY
RETURN
ERROR: RCVMSG RMV(*NO) MSG(&MSG)
SNDMSG: SNDPGMMSG MSG(&MSG) MSGTYPE(*DIAG)
ENDPGM
大家可以从上面的例子看到,在 AS/400 绿屏方式下通过了 GUI 控件实现按钮功能比较容易,不需要编写大段的代码。后面有机会还将介绍“下拉菜单”、“下拉列表”等 GUI 界面的实现方法。
仅供参考。
如果觉得我的文章对您有用,请点赞。您的支持将鼓励我继续创作!
赞3
添加新评论2 条评论
2022-07-12 11:37
2022-07-07 19:06