メニュー作成といえば、
- CLP メニュー
- DSPF メニュー
- パネル・グループ・メニュー
の3つがあるが、「1. CLP メニュー」 による CLP と DSPF の組み合わせによってメニューを作成
している開発者が最も多いようである。
中には RPG でメニューを作成している例もある。
少し SDA を学習した人であれば「2. DSPF メニュー」でメッセージ・ファイルと組み合わせて
メニューを作成しているかも知れない。
ところが OS400 のメニューの 90% 以上は「3. パネル・グループ・メニュー」である。
パネル・グループによるメニューは作成が簡単な上に、パフォーマンスにも優れている。また障害が
発生してもメニューまでもが消滅してしまうようなことがないので非常に安定した動作となる。
ソフトウェア製品であれば パネル・グループによるメニューであるべきである。
パネル・グループというと馴染みのない方もまだまだ多いかも知れないがここではパネル・グループの
入門として超簡単なメニューを紹介しよう。
パネル・グループによるメニューの作成を覚えれば、他のメニューを作ることが考えられなくなるほど
便利である。
【 PNLGRPソース】
:PNLGRP. :KEYL NAME=MNUKEYL. :KEYI KEY=ENTER HELP=ENTER ACTION=ENTER. :KEYI KEY=F3 HELP=F3 ACTION='EXIT SET' VARUPD=NO.F3= 終了 :EKEYL. :HELP NAME=ENTER. 実行キー :EHELP. :HELP NAME=F3. 終了 :EHELP. :HELP NAME=OPTION01. 得意先マスターの登録 :EHELP. :HELP NAME=MN01. マスター保守メニュー :EHELP. :PANEL NAME=DSPMNU HELP='MN01' KEYL=MNUKEYL ENTER='MSG CPD9817 QCPFMSG' TOPSEP=SYSNAM. マスター保守メニュー :MENU DEPTH='*' SCROLL=NO BOTSEP=SPACE. :TOPINST. 次の中から1つを選んでください。 :MENUI OPTION=01 ACTION='CMD CALL QTROBJ/PGM001' HELP='OPTION01'. 得意先マスターの登録 PGM001 :EMENU. :CMDLINE SIZE=LONG. 選択項目またはコマンド :EPANEL. :EPNLGRP.
【 解説 】
パネル・グループとは HTML と同じようなタグ言語であって、
全体は:PNLGRP 〜 :EPNLGRP.
というタグで囲まれて、
その内側に:PANEL 〜 :EPANEL.
というパネル・タグで表現されている。
:PANEL
タグとは、DSPF の表示レコードに相当している。
メニューの場合は
- 機能キー記述 (:KEY)
- ヘルプ記述 (:HELP)
- パネル記述 (:PANEL)
があるだけである。
このパネル・グループのソースからメニューを作成するのも非常に簡単であり、
CRTMNU MENU(MYLIB/MN01) TYPE(*UIM) SRCFILE(MYSRCLIB/QPNLSRC) AUT(*ALL)
だけでよい。実行は、
GO MN01
として通常のメニューとして起動することができる。
下記は実行された画面である。