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