PANEL-WORKER

13. 超簡単なメニューの作成

メニュー作成といえば、

  1. CLP メニュー
  2. DSPF メニュー
  3. パネル・グループ・メニュー

の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

として通常のメニューとして起動することができる。
下記は実行された画面である。