Posted : 2008-09-04 / Category : [work/as]
本来は

1.CRTDSPFにてメニュー画面を作成
2.CRTMSGFにてコマンドオブジェクトの枠を作成(よく分からない…)
3.CRTMNUにて*DSPFのメニューオブジェクト作成
4.CRTMNUにて*MENUのコマンドオブジェクト作成

…であろうと思われます(間違っていたら突っ込みプリーズ)。
MNUDDSとMNUCMDのソースがあったので、上記コマンドで真似して作ろうとしたのですが…
よく分からなかったので、SDAで作っちゃいました。


コマンドはSTRSDA。
今回は2のメニューの設計です。


AS/400 画面設計機能 (SDA)

次の中から1つを選んでください。

1. 画面の設計
2. メニューの設計
3. 表示装置ファイルのテスト




ソース自体はMNUDDS(こちらが画面系)とMNUCMD(こちらがコマンド)なので、
とりあえずコピって作ったMNUDDSを指定すると、その画面が表示されます。

メニューの設計

選択項目を入力して,実行キーを押してください。

原始ファイル . . . . . . . QMNUSRC 名前,リストは F4キー

ライブラリー . . . . . . ABCDOLIB 名前, *LIBL, *CURLIB

メニュー . . . . . . . . . MNUABC 名前,リストは F4キー




ここで存在するファイルを選ばなかったら、新規に作成するんでしょう(たぶん)。


メニュー機能の指定

ファイル . . . . : QMNUSRC メニュー . . . . : MNUABC
ライブラリー . : ABCDOLIB

選択項目を入力して,実行キーを押してください。

メニュー・イメージおよびコマンドの処理 . . . Y Y=YES, N=NO

メニュー・ヘルプの処理 . . . . . . . . . . . N Y=YES, N=NO



行いたい処理にYを入れて実行キーで編集です。
今回ヘルプはないので上のみ。


修正後、F3を押していくと保存(終了)の画面になるのでここで保存&コンパイル指示です。
保存とかコンパイルしなくていいならNを入れればOK。


SDA メニューの終了

ファイル . . . . : QMNUSRC DDS メンバー . . . . : MNUABC
ライブラリー . : ABCDSLIB コマンド・メンバー . : MNUABCQQ

選択項目を入力して,実行キーを押してください。

新しいかまたは更新されたメニュー原始の保管 Y Y=YES, N=NO
選択項目 Y=YES の場合:
原始ファイル . . . . . . . . . . . QMNUSRC 名前 ,
リストは F4キー
ライブラリー . . . . . . . . . . ABCDSLIB 名前 , *LIBL, *CURLIB
テキスト . . . . . . . . . . . . . テストメニュー (ABC)

メニュー・メンバーの置換え . . . . Y Y=YES, N=NO

メニュー・オブジェクトの作成 . . . . . Y Y=YES, N=NO
選択項目 Y=YES の場合:
パラメーターのプロンプト . . . . . Y Y=YES, N=NO
オブジェクト・ライブラリー . . . . ABCDOLIB 名前 , *CURLIB
メニュー・オブジェクトの置換え . . Y Y=YES, N=NO



そこでパラメータのプロンプトを*YESにすると
コマンド入力行を表示するとか機能キーの表示とかのオプション指定画面になります。




メニュー作成 (CRTMNU)

選択項目を入力して,実行キーを押してください。

メニュー . . . . . . . . . . . > MNUABC 名前
ライブラリー . . . . . . . . > ABCDOLIB 名前 , *CURLIB
メニュー・タイプ . . . . . . . > *DSPF *DSPF, *PGM, *UIM
表示装置ファイル . . . . . . . > MNUABC 名前 , *MENU
ライブラリー . . . . . . . . > ABCDOLIB 名前 , *LIBL, *CURLIB
メッセージ・ファイル . . . . . > MNUABC 名前 , *MENU
ライブラリー . . . . . . . . > ABCDOLIB 名前 , *LIBL, *CURLIB
コマンド入力行 . . . . . . . . > *LONG *LONG, *SHORT, *NONE
機能キーの表示 . . . . . . . . > *YES *NO, *YES
現行ライブラリー . . . . . . . > *NOCHG 名前 , *NOCHG, *MNULIB...
実行ライブラリー . . . . . . . > *NOCHG 名前 , *NOCHG, *NONE
メニューの置換え . . . . . . . > *YES *YES, *NO
テキスト ' 記述 ' . . . . . . . > ' テストメニュー '


コマンド入力行はLONGで2行ですね。
機能キーというのはF3終了とかのアレです。


そんな感じでメニュー作成してみました。
もちろんオブジェクトなので、そのメニューを使っていると(例えばそのメニューが
初期表示のユーザーIDでサインオンしてると)置き換えできないのでメッセージ上がります。