〜メニューについて〜


■書式


■機能


メニューの必要性

★メニューコマンドはキー入力操作の簡易化として考えることができる。


メニューコマンドとその指定方法

サンプルプログラム(抜粋)

1行目 メニュー &メニュー2,初期項目=&メニュー2,画面消去=しない,文字選択=する\

    ,{1,1, 1,"1:祝・祭日の編集”,白,下線}\

    ,{2,1,22,"2:学校行事の編集”,白,下線}\

    ,{3,1,43,"3:再編集後の印刷”,白,下線}\

    ,{4,1,64,"4:処理を終了する”,白,下線}

2行目 ケース開始  
3行目

    ケース (&メニュー2=1)

4行目

    ・・・・・省略・・・・・

5行目

    画面消去 (1,1)-(21,80)

6行目

      ケース (&メニュー2=2)

7行目

      ・・・・・省略・・・・・

8行目

      画面消去 (1,1)-(21,80)

9行目

      ケース (&メニュー2=3)

10行目

      ・・・・・省略・・・・・

11行目

      画面消去 (1,1)-(21,80)

12行目

    ケース (&メニュー2=4)

13行目

    繰り返し中止

14行目 ケース終了

【解説】

1行目;メニューコマンドによって、画面には

    1:祝・祭日の編集  2:学校行事の編集   3:再編集後の印刷   4:処理を終了する

    と表示されています。"画面消去=しない"というのは、1〜4の数字を選択しキー入力した後も、画面を

    そのまま残すということです。また、”文字選択=する”というのは、矢印キーで番号を選択する以外に、

    1〜4の番号をキー入力しても選択できるということです。変数&メニュー2にはここで選択した1〜4の

    どれかの数が代入されます。

2行目;ケースコマンドと14行目のケース終了コマンドで囲まれた範囲内で、変数&メニュー2に代入された数に応じて

    以下で説明する処理を行います。

3行目;変数&メニュー2に1が代入されているときに3行目〜5行目までの処理を行い、

 〜  

5行目;指定した範囲の画面を消去し、14行目移行の制御に移行します。

6行目;変数&メニュー2に2が代入されているときに6行目〜8行目までの処理を行い、

 〜  

8行目;指定した範囲の画面を消去し、14行目移行の制御に移行します。

9行目;変数&メニュー2に3が代入されているときに9行目〜11行目までの処理を行い、

 〜  

11行目;指定した範囲の画面を消去し、14行目移行の制御に移行します。

12行目;変数&メニュー2に4が代入されているときに13行目の処理を行います。

13行目;繰り返しを中止し、14行目以降の制御に移行します。

14行目;ケースを終了し、14行目以降の制御へ移行します。


テクニック1【メニューコマンドとディスク・ファイル関数でファイルの保護を】

■関連する関数

サンプルプログラム(抜粋)

(注;サンプルプログラムのなかで、一連の処理手順に関係のないものは省いています。)

1行目 代入 &表名=#連結(”行事”,#文字列(&年度),”.TBL”)
2行目 代入 &表=#ファイルサイズ(&表名)
3行目 分岐 (&表=-1) , 処理2
4行目 メニュー &保護,{0,10,10,"指定年度の行事予定表は以前作成しましたね。",白}\

         ,{1,14,17,"使用する",白}\

         ,{2,16,17,"使用しない",白}\

        ,{0,16,27,": 以前作成した表は消去されます。",白}\

        ,{0,18,15,"↑・↓キーで注意して選択し、ENTキーを押して下さい。",赤}

5行目 分岐 (&保護=1) , 処理3
6行目 名札 処理2
7行目 ファイル複写 "行事モト.TBL",&表名
8行目 名札 処理3

【解説】

1行目;一括処理を実行すると、最初にキー入力した数字がすでに&年度なる変数に代入されています。その数字を使って
    ファイル名を作成し、変数&表名に代入しています。

    例えば"1997"と入力していた場合、行事1997.TBLというファイル名を変数&表名に代入します。

2行目;&表名のファイルサイズ、すなわち行事1997.TBLのファイルサイズを変数&表に代入します。

3行目;もし行事1997.TBLというファイルが存在しないときは変数&表に-1という数字が返り6行目に分岐し、そのまま
    7、8行目へ移行します。

4行目;画面には   指定年度の行事予定表は以前作成しましたね。

              使用する

             使用しない:以前作成した表は消去されます。

            ↑・↓キーで注意して選択し、ENTキーを押して下さい。

    と表示されています。

    行事1997.TBLというファイルが存在すると認識されたので、メニューコマンドを使って以前のファイルを使うか
    それとも新しく作り直すかを選択します。これはファイルの保護という観点から色々なところで使用出来ると思います。

5行目;4行目で1を選択した場合、以前の表を使用します。そのため、7行目のファイル複写は行わずに8行目に分岐します。

7行目;4行目で2を選んだ場合、前もって作っておいた行事モト.TBLというデータの入力されていないファイルを行事1997.TBL
    に複写します。この場合、ミス入力を懸念される方もいらっしゃるかと思いますが、1または2以外の数字を入力しても
    先には進まないようになっていますのでご安心下さい。これによって以前存在したファイルは消去されたことになりま
    す。


テクニック2【メニューコマンドとディスク・ファイル関数でファイルの保護を】

■関連する関数

【リスト1】の2行目と3行目を関数#ファイル検索を用いて書き換えてみます。

【リスト2】

1行目 代入 &表名=#連結(”行事”,#文字列(&年度),”.TBL”)
2行目 代入 &表=#ファイル検索(&表名,1)
3行目 分岐 (&表=#未定義) , 処理2
4行目 メニュー &保護,{0,10,10,"指定年度の行事予定表は以前作成しましたね。",白}\

         ,{1,14,17,"使用する",白},{2,16,17,"使用しない",白}\

        ,{0,16,27,": 以前作成した表は消去されます。",白}\

        ,{0,18,15,"↑・↓キーで注意して選択し、ENTキーを押して下さい。",赤}

5行目 分岐 (&保護=1) , 処理3
6行目 名札 処理2
7行目 ファイル複写 "行事モト.TBL",&表名
8行目 名札 処理3

【解説】

2行目;&表名のファイル検索をしてファイルすなわち行事1997.TBLのファイルが存在すればそのファイル名を変数&表に代入
    します。ここで、【リスト1】では変数&表の変数宣言は数値型でしたが、【リスト2】での変数&表の変数宣言は
    文字列型にする必要があります。

3行目;もし行事1997.TBLというファイルが存在しないときは変数&表に#未定義値が返り6行目に分岐し、そのまま7、8行目
    へ移行します。


目次に戻る



ホームページに戻る