CL

110. CLP メニューを GO MENU に変換するには?

現在、多くの IBM i ユーザーではメニューというと CALL MN01 のように CLP や RPG で
作成したプログラムをメニューとして呼び出して使用している例が多い。

AutoWeb のメニューは IBM i のメニューをツリー・ビューとして表示することができる。
例えば

のメニューは次のようにツリー・ビューとして表示される。

ツリー・ビューにすると

  • 操作はクリックするだけの操作なので誰にでもわかる。
  • メニュー全体の構造がひとめで理解できる。
  • 同時に複数のサブ・メニューを開いて検討することができる。
  • 「お気に入り」に登録しておけば「お気に入り」を選択するだけで
    希望する業務を直ちに選択することができる。

という利点がある。
IBM i の操作にまだ不慣れな新入社員などが IBM i のメニュー構造が理解できないのは
あるメニューから別のメニューを選択して画面が遷移すると元のメニュー画面が
消えてしまうため不安になるのと同時に処理構造を記憶しておいて自分が
今どこにいてるのかを常に把握しておかなければならないストレスがかかるからである。

これをツリー・ビューにしてしまえばそのようなストレスからは解放され
快適な操作を行うことができる。

前置きが長くなってしまったがこのような AutoWeb のツリー・ビューによるメニュー表示
を紹介すると決まって「うちはプログラムによる CALL 呼出しのメニューなんですが?」
との質問が挙がる。
もちろん AutoWeb では CALL 型式のプログラム型式のメニューであっても
ツリー・ビューとして表示できます、というのが回答なのであるが
実はプログラム型式のメニューも簡単に GO MENU 型式のメニュー・オブジェクト
( *MENU )に簡単に変換することができる。

コマンド入力画面において CRTMNU + [ F4キー ] を押すと

                            メニュー作成  (CRTMNU)            
                                                              
選択項目を入力して,実行キーを押してください。                
                                                              
メニュー  . . . . . . . . . . .   MN01           名前         
 ライブラリー  . . . . . . . . . . .     QTROBJ       名前 , *CURLI
メニュー・タイプ  . . . . . . .   *PGM          *DSPF, *PGM, *

のように表示される。
メニュー・オブジェクトを指定してメニュー・タイプに *PGM を指定すると
メニュー・オブジェクト( *MENU )を生成することができて
GO MN01 のようにしてメニューを呼び出すことができる。

参考までに *DSPF とは SDA によって作成されるメニューであり
*UIM とは パネル・グループ( *PNLGRP ) によって作成されるメニューである。
もっとも パネル・グループ( *PNLGRP )の場合はパネル・グループ( *PNLGRP )の
ソースから CRTMNU コマンドによって、直接、メニュー・オブジェクト( *MENU )を
作成することができる。
CLP などでメニューを作成する人が多いが、パネル・グループ( *PNLGRP )による
メニュー作成も試して欲しい。
13. 超簡単なメニューの作成」に紹介しているのでパネル・グループ( *PNLGRP )を
覚えるとこれほど簡単で品質の高いメニューはないことにきづくはずである。
ちなみに IBM 提供のメニューの 90%以上はパネル・グループ( *PNLGRP )で
作成されているメニューである。