DDS解説書を読むと DSPF でも、結構、GUIコントロールを作成することができる。
ここからのシリーズでは DSPF上での GUIコントロールを紹介する。
最初は「押しボタン」(プッシュ・ボタン)であり、マウスを使って押すことができるボタンである。
【 解説 】
この DSPF画面でOKボタンをマウスの左ボタンで押すと、次々と数値がカウント・アップされる。
【 DSPFソース 】
0001.00 A*%%TS SD 20070817 120013 QTR REL-V5R4M0 5722-WDS 0002.00 A* 11:59:33 QSECOFR REL-R06M00 5714-UT1 0003.00 A*%%EC 0004.00 A DSPSIZ(24 80 *DS3) 0005.00 A MSGLOC(24) 0006.00 A PRINT 0007.00 A R DSPDTA01 0008.00 A*%%TS SD 20070817 120013 QTR REL-V5R4M0 5722-WDS 0009.00 A TEXT(' 明細画面 01') 0010.00 A CF03(03 ' 終了 ') 0011.00 A SETOF(99) 0012.00 A BLINK 0013.00 A 1 27' 押しボタン ' 0014.00 A DSPATR(HI) SOSI A 3 2' 下記は押しボタンのサンプ SOSI A 4 3'OK ボタンを押したときは押 0017.00 A 回数をカウントします。 ' 0018.00 A 8 4' 押した回数 . . . . . . . 0019.00 A KAISU 3Y 0B 8 37 0020.00 A PSHFLD 2Y 0B 8 45PSHBTNFLD(*RSTCSR (*NUMCOL 0021.00 A PSHBTNCHC(1 ' OK ' ENTER) 0022.00 A PSHF10 2Y 0B 10 45PSHBTNFLD(*RSTCSR (*NUMCOL 0023.00 A PSHBTNCHC(1 ' F1O ' CF10 0024.00 A DSPMSG 40A O 20 4DSPATR(HI) 0025.00 A 23 2'F3= 終了 '
【 CLP ソース 】
0001.00 PGM 0002.00 /*---------------------------------------------------------*/ 0003.00 /* BUTTON : 押しボタン */ 0004.00 /*---------------------------------------------------------*/ 0005.00 DCL VAR(&MSG) TYPE(*CHAR) LEN(80) 0006.00 DCLF FILE(QTROBJ/BUTTONFM) 0007.00 0008.00 CHGVAR VAR(&KAISU) VALUE(0) 0009.00 DSPLY: SNDRCVF RCDFMT(DSPDTA01) 0010.00 IF COND(&IN03 *EQ '1') THEN(RETURN) 0011.00 IF COND(&PSHF10 *EQ 1) THEN(DO) 0012.00 CHGVAR VAR(&DSPMSG) VALUE('F10 ボタンが押されました ') 0013.00 ENDDO 0014.00 ELSE CMD(DO) 0015.00 CHGVAR VAR(&DSPMSG) VALUE('OK ボタンが押されました ') 0016.00 ENDDO 0017.00 CHGVAR VAR(&KAISU) VALUE(&KAISU + 1) 0018.00 GOTO DSPLY 0019.00 RETURN 0020.00 0021.00 ERROR: RCVMSG RMV(*NO) MSG(&MSG) 0022.00 SNDMSG: SNDPGMMSG MSG(&MSG) MSGTYPE(*DIAG) 0023.00 ENDPGM