プルダウン・メニューのように候補をプルダウンできるコンボボックスは代表的な GUIコントロールの
ひとつですが、DDS記述にはその機能はありません。
良く似た機能として DDS の VALUES
キーワードがありますが、AutoWebでは VALUES
キーワードと
TEXT
キーワードを組み合わせることによって静的コンボボックスを形成することができます。
担当者コードの静的コンボボックス
A 8 2' 担当者 ' A JUTANT 4A B 8 12VALUES('0001' '0002' '0003') A TEXT('" 中村 " " 田中 " "鈴木"')
静的コンボボックスへの構成
VALUES
キーワードに加えて、TEXT
キーワードを対応する項目を
"(テキスト)" .... の形式で定義してください。
これによって AutoWeb にはコンボボックスの定義であると解釈されて次のように表示されます。
担当者コードの静的コンボボックスの HTML表示
TEXTキー・ワードの50バイトまでの制限の注意
DDS TEXTキー・ワードに入れられる文字列は 最大50バイト
までという制限があります。
しかし CRTDSPF コマンドでは TEXTキー・ワードが
50バイトをオーバーしたとしてもエラーにはなりません。
50バイト以降の文字列が切除されて DSPF に登録されます。
このため 50バイトを超えて記述すると
コンボボックスの後続の候補が表示されなくなってしまいます。
詳細は IBM DDS解説書をご参照ください。
【例】
ID 重大度 メッセージ * CPD5262 10 テキストに 50 桁を超える文字が入っています。
50バイトを超える候補の文字列の定義の方法
コンボボックスの簡単な候補であれば 50文字以内に収まりますが
候補の記述が 50文字を超える場合でも、次の方法によって 50文字超の候補を定義することができます。
-
TEXTキー・ワードを
TEXT('*COMBO')
としてコンボボックスであることを宣言したから
同じ(行, 桁)
の位置に HTMLキー・ワードを使って次のように候補を定義する。
【例】 サンプル・ソース: PGM101FM
A TKKBN 1A B 3 30 A VALUES('1' '2' '3' '4' '5' '9') A TEXT('*COMBO') A 3 30HTML('" 設備 " + A " ユニット " + A " 部品 " + A " 素材 " + A " 木型 " + A " その他 "')
解説
コンボボックスの自動 SUBMIT
コンボボックスで候補の選択を行うと自動的に SUBMIT 投入させることができます。
例えば表示する国際言語をコンボボックスの中から選ぶだけで
OK ボタンを押したのと同じ仕組みに作ることができます。
静的コンボボックスを示すテキストの中に文字列「*SBM
」を入れておくと
自動 SUBMIT するコンボボックスが生成されます。
【例】言語を選択すると自動 SUBMIT されるコンボボックス
A* 5 60' 言語 ' A LANG_ 6A O 5 60MSGID(MSG0013 *LIBL/USRMSG) A LANG 3A B 5 67 A VALUES('JPN' 'CHN') A TEXT('" 日本語 " " 中国語 " *SBM')
【解説】
フィールド: LANG はコンボボックスですが *SBM
が指定されているため
<select id='B0567' name=B0567 field='LANG' OnChange="ON_KEYDWN('ENTER');"> <option value="JPN" selected> 日本語 </option> <option value="CHN"> 中国語 </option> </select>
のようなコンボボックスが生成されます。
OnChange="ON_KEYDWN('ENTER');"
とは このコンボボックスで選択があると ON_KEYDWN('ENTER') という
JavaScript 関数が実行されます。
これは ENTER キー (実行キー) が押されたのと同じことになります。
SFL レコード上の静的コンボボックス
SFL レコード上にも静的コンボボックスを定義することができます。
記述の方法は VALUES + TEXT による通常の静的コンボボックスです。
【例】
A TKKBN 1A B 6 47VALUES('1' '2' '3') A TEXT('" 得意先 ", " 請求先 " " 納 - A 入先 "')
元のフィールド TKKBN のテキストを
TEXT('*COMBO')
として宣言して同じ
(3, 30)
の位置に HTMLキー・ワードを使って候補の文字列を宣言しています。