5250画面を GUI化またはWeb化するときに、開発者が真っ先に希望するコントロールが
プルダウン候補を可能とするコンボボックスである。
DDS記述でコンボボックスを表示することができればよいのだが残念ながらDSPF には
コンボボックスの機能はない。
良く似た機能としてメニュー・バーがあるが、メニュー・バーは機能の選択に利用されるもので
コンボボックスとは異なっている。
コンボボックスを利用したい理由はユーザーに選択候補を見せることである。
選択候補自体は DDS で VALUES キーワードによって定義することができるので
EnterpriseServer Ver5.0 の AutoWeb では VALUES
と TEXT
を組み合わせることで
コンボボックスを実現することができる。
0001.00 A*%%TS SD 19940302 221529 QTR REL-V2R2M0 5738-PW1 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 19940302 221529 QTR REL-V2R2M0 5738-PW1 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' 下記はコンボボックッスの 0016.00 A ルです ' SOSI A 4 3'DDS の VALUES キーワード * SOSI A コンボボックスに変換され * 0019.00 A 8 2' 担当者 ' 0020.00 A JUTANT 4A B 8 12VALUES('0001' '0002' '0003' SOSI A TEXT('" 中村 " " 田中 " "鈴木") 0022.00 A 23 2'F3= 終了 '
指定は簡単で VALUE('候補1' '候補2' ... '候補N')
に対応してテキストを二重引用符で
囲んでTEXT('"テキスト1" "テキスト2" ... "テキストN")
と定義すれば
テキスト1, テキスト2, ... テキストN がコンボボックスの候補として表示されてその選択値が
候補1, 候補2, ... 候補N のいずれかとしてフィールド値として渡されることになる。
0001.00 PGM 0002.00 /*---------------------------------------------------------*/ 0003.00 /* COMBO : コンボボックッス */ 0004.00 /*---------------------------------------------------------*/ 0005.00 DCL VAR(&MSG) TYPE(*CHAR) LEN(80) 0006.00 DCLF FILE(QTROBJ/COMBOFM) 0007.00 0008.00 CHGVAR VAR(&JUTANT) VALUE('0003') 0009.00 DSPLY: SNDRCVF RCDFMT(DSPDTA01) 0010.00 IF COND(&IN03 *EQ '1') THEN(RETURN) 0011.00 GOTO DSPLY 0012.00 RETURN 0013.00 0014.00 ERROR: RCVMSG RMV(*NO) MSG(&MSG) 0015.00 SNDMSG: SNDPGMMSG MSG(&MSG) MSGTYPE(*DIAG) 0016.00 ENDPGM