過去の桐井戸端BBS (桐ver.7)
816 メニュー処理:こんなのは? ikjun 1998/12/13-20:20
 皆さんこんばんは、メニューがたくさんあることを考えて次のような処理を考えてみました。
考え方としてはあらかじめ作った定義に変数として、タイトルや実行する一括処理の名前などを引き渡し、それによってメニューが実行されると言うものです。
他に必要なものは"Menu.wfm"だけで、タイトルをテキストで

*販売管理メニュー
変数宣言 文字列{&タイトル,&メニュー,&メニュー1,&メニュー2,&メニュー3,&メニュー4,&メニュー終了}
変数宣言 文字列{&一括メニュー1,&一括メニュー2,&一括メニュー3,&一括メニュー4,&一括メニュー終了}
&タイトル="販売管理メニュー"
&メニュー1 ="売上伝票入力",&一括メニュー1 ="販売管理_売上伝票"
&メニュー2 ="各印刷処理", &一括メニュー2 ="販売管理_各印刷処理"
&メニュー3 ="請求書発行", &一括メニュー3 ="販売管理_請求書発行"
&メニュー4 ="マスター処理",&一括メニュー4 ="販売管理_マスター処理"
&メニュー終了="終了", &一括メニュー終了="販売管理_終了"
手続き実行 メニュー実行(&タイトル,&メニュー1,&メニュー2,&メニュー3,&メニュー4,&メニュー終了,&一括メニュー1,&一括メニュー2,&一括メニュー3,&一括メニュー4,&一括メニュー終了)
*   
*5行固定のメニューのライブラリー
手続き定義開始 メニュー実行(文字列 &タイトル,文字列 &メニュー1, 文字列
 &メニュー2,文字列 &メニュー3,文字列 &メニュー4,文字列 &メニュー終了,文字列 &一括メニュー1,文字列 &一括メニュー2,文字列 &一括メニュー3,文字列 &一括メニュー4,文字列 &一括メニュー終了)
*宣言部           
変数宣言 整数{&メニューHandle}
変数宣言 文字列{&ObjectName}
*メニュー表示部
表 "環境設定.tbl",表番号=1,モード=参照 ,使用フォーム="Menu.WFM"
&メニューHandle=1
ウィンドウ作成 フォーム,位置=(20,20),ハンドル=&メニューHandle
&ObjectName="メニュー1"
オブジェクト操作 ハンドル=&メニューHandle ,&ObjectName.標題 = &メニュー1
&ObjectName="メニュー2"
オブジェクト操作 ハンドル=&メニューHandle ,&ObjectName.標題 = &メニュー2
&ObjectName="メニュー3"
オブジェクト操作 ハンドル=&メニューHandle ,&ObjectName.標題 = &メニュー3
&ObjectName="メニュー4"
オブジェクト操作 ハンドル=&メニューHandle ,&ObjectName.標題 = &メニュー4
&ObjectName="終了"
オブジェクト操作 ハンドル=&メニューHandle ,&ObjectName.標題 = &メニュー終了
*一括処理の分岐処理
ウィンドウ会話 &メニューHandle,ボタン = &メニュー
/* 押されたボタンによる処理 */
ケース開始
ケース ( &メニュー = "メニュー1" )
一括処理実行 &一括メニュー1
ケース ( &メニュー = "メニュー2" )
一括処理実行 &一括メニュー2
ケース ( &メニュー = "メニュー3" )
一括処理実行 &一括メニュー3
ケース ( &メニュー = "メニュー4" )
一括処理実行 &一括メニュー4
ケース ( &メニュー = "終わり" )
一括処理実行 &一括メニュー終了
ケース終了
手続き定義終了
817 Re:メニュー処理:こんなのは?間違えた! ikjun 1998/12/13-20:51
記事番号816へのコメント
 中途半端で送ってしまいました。済みません!以下が送るべき本文でした。
一括処理の中身は変わらないです。

 皆さんこんばんは、メニューがたくさんあることを考えて次のような処理を考えてみました。
考え方としてはあらかじめ作った手続き処理に変数として、タイトルや実行する一括処理の名前などを引き渡し、それによってメニューが実行されると言うものです。

 他に必要なものは"Menu.wfm"だけで、テキストで&タイトルが表示されるところと、コマンドボタンをメニュー1、メニュー2・・・・と定義します。

 細部のアレンジは自分のセンスで好きなようにして下さい。

 "環境設定.tbl"は実際には必要はないのですが、私は会社名や住所などをそこにいれて、表示するようにしてます。

 これをライブラリ登録しておけば、実際に実行するプログラムは変数を直接入力すれば、一行で済んでしまいますので、使い方によっては便利かなと思います。

 それとメニューの形がいつも同じというのも、統一感があって個人的には好きです。

 なお、これはあくまでサンプルなので実際の運用では問題があると思います。
もし使うなら各自で変更して使って下さい。もちろん、バグ等の責任はいっさいもちません。
各自の責任です。

 著作権どうのこうのというほどのものではありません。
ただ、自分で作ったふりすることだけはしないでください。
あとはフリーのサンプルとして好きにして下さい。

 もっといい方法があれば、情報待ってます。
834 Re:メニュー処理:有り難うございます 小松 1998/12/17-06:56
記事番号817へのコメント
ikjunさん、有り難うございます。今週は東京出張やらなにやらでバタバタしてインターネットも開けませんでした。
早速メニュー処理を御考案いただき心より感謝申し上げます。

私もメニューは、出来る限りシンプル、スッキリが好みです。
ikjunさんのメニューサンプルをじっくり勉強して、早く、DOS時代のようなメニューを作り上げたいと思っております。
現時点ではじっくり取り組む時間がないので、正月休みに頑張ります。

有り難うございました。
851 メニューについて(No1 ikjun さん) 前田 1998/12/18-17:31
前掲載の「メニュー」早速活用させてもらいました。
以前は変数に値を代入して処理の分岐を行っておりましたが初挑戦です。
ただ私が未だウインドウ処理の理解が不十分のためうまく完動しません。
アドバイスをいただけないでしょうか、また「/」で始まる行分が理解できません。
よろしくお願いします。

*販売管理メニュー
変数宣言 共通,文字列{&メニュー,&メニュー1,&メニュー2,&メニュー3,&メニ
ュー4,&メニュー5,&メニュー6,&メニュー7,&メニュー8,&メニュー9,&メニュ
ー10,&メニュー11,&メニュー12,&メニュー終了}
変数宣言 文字列{&一括メニュー1,&一括メニュー2,&一括メニュー3,&一括メニ
ュー4,&一括メニュー5,&一括メニュー6,&一括メニュー7,&一括メニュー8,&一
括メニュー9,&一括メニュー10,&一括メニュー11,&一括メニュー12,&一括メ
ニュー終了}
&メニュー1 ="売上入力" ,&一括メニュー1 ="Prg-01" &メニュー2
="売上データ" ,&一括メニュー2 ="prg-011"
&メニュー3 ="伝票入力" ,&一括メニュー3 ="prg-02" &メニュー4
="入金データ" ,&一括メニュー4 ="prg-02"
&メニュー5 ="台帳印刷" ,&一括メニュー5 ="prg-03" &メニュー6
="台帳修正" ,&一括メニュー6 ="prg-03"
&メニュー7 ="得意先M" ,&一括メニュー7 ="prg-06" &メニュー8
="商品M" ,&一括メニュー8 ="prg-06"
&メニュー9 ="請求先M" ,&一括メニュー9 ="prg-06" &メニュー1
0 ="売上台帳" ,&一括メニュー10 ="prg-06"
&メニュー11 ="請求書発行" ,&一括メニュー11 ="prg-04" &メニュー1
2 ="月次処理" ,&一括メニュー12 ="prg-05"
&メニュー終了 ="終了" ,&一括メニュー終了="終了"
手続き実行 メニュー実行(&メニュー1,&メニュー2,&メニュー3,&メニュー4,&
メニュー5,&メニュー6,&メニュー7,&メニュー8,&メニュー9,&メニュー1
0,&メニュー11,&メニュー12,&メニュー終了,&一括メニュー1,&一括メニュー
2,&一括メニュー3,&一括メニュー4,&一括メニュー5,&一括メニュー6,&一括メ
ニュー7,&一括メニュー8,&一括メニュー9,&一括メニュー10,&一括メニュー1
1,&一括メニュー12,&一括メニュー終了)
手続き定義開始 メニュー実行(文字列 &メニュー1, 文字列 &メニュー2,文字
列 &メニュー3,文字列 &メニュー4,文字列 &メニュー5,文字列 &メニ
ュー6,文字列 &メニュー7,文字列 &メニュー8,文字列 &メニュー9,文字列
 &メニュー10,文字列 &メニュー11,文字列 &メニュー12,文字列 &メニ
ュー終了,文字列 &一括メニュー1,文字列 &一括メニュー2,文字列 &一括メニ
ュー3,文字列 &一括メニュー4,文字列 &一括メニュー5,文字列 &一括メニュ
ー6,文字列 &一括メニュー7,文字列 &一括メニュー8,文字列 &一括メニュー
9,文字列 &一括メニュー10,文字列 &一括メニュー11,文字列 &一括メニュ
ー12,文字列 &一括メニュー終了)
変数宣言 整数{&メニューHandle} 変数宣言 文字列{&ObjectName}
852 Re:メニューについて(No2 ikjun さん) 前田 1998/12/18-17:35
記事番号851へのコメント
長すぎましたので2枚目です。

*メニュー表示部
表 "menu.tbl",表番号=1,モード=参照 ,使用フォーム="menu.WFM" &メニューHandle=1 ウィンドウ作成 フォーム
,位置=(20,20),ハンドル=&メニューHandle
&ObjectName="メニュー1" オブジェクト操作 ハンドル=&メニューHandle ,&ObjectName.標題 = &メニュー1
&ObjectName="メニュー2" オブジェクト操作 ハンドル=&メニューHandle ,&ObjectName.標題 = &メニュー2
&ObjectName="メニュー3" オブジェクト操作 ハンドル=&メニューHandle ,&ObjectName.標題 = &メニュー3
&ObjectName="メニュー4" オブジェクト操作 ハンドル=&メニューHandle ,&ObjectName.標題 = &メニュー4
&ObjectName="メニュー5" オブジェクト操作 ハンドル=&メニューHandle ,&ObjectName.標題 = &メニュー5
&ObjectName="メニュー6" オブジェクト操作 ハンドル=&メニューHandle ,&ObjectName.標題 = &メニュー6
&ObjectName="メニュー7" オブジェクト操作 ハンドル=&メニューHandle ,&ObjectName.標題 = &メニュー7
&ObjectName="メニュー8" オブジェクト操作 ハンドル=&メニューHandle ,&ObjectName.標題 = &メニュー8
&ObjectName="メニュー9" オブジェクト操作 ハンドル=&メニューHandle ,&ObjectName.標題 = &メニュー9
&ObjectName="メニュー10" オブジェクト操作 ハンドル=&メニューHandle ,&ObjectName.標題 = &メニュー10
&ObjectName="メニュー11" オブジェクト操作 ハンドル=&メニューHandle ,&ObjectName.標題 = &メニュー11
&ObjectName="メニュー12" オブジェクト操作 ハンドル=&メニューHandle ,&ObjectName.標題 = &メニュー12
&ObjectName="終了"
オブジェクト操作 ハンドル=&メニューHandle ,&ObjectName.標題 = &メニュー終了
*一括処理の分岐処理
ウィンドウ会話 &メニューHandle,ボタン = &メニュー
/* 押されたボタンによる処理 */
ケース開始 ケース ( &メニュー = "メニュー1" ) 一括処理実行 &一括メニュー1
ケース ( &メニュー = "メニュー2" ) 一括処理実行 &一括メニュー2  ケース ( &メニュー = "メニュー3" )
一括処理実行 &一括メニュー3
ケース ( &メニュー = "メニュー4" ) 一括処理実行 &一括メニュー4  ケース ( &メニュー = "メニュー5" )
一括処理実行 &一括メニュー5
ケース ( &メニュー = "メニュー6" ) 一括処理実行 &一括メニュー6  ケース ( &メニュー = "メニュー7" )
一括処理実行 &一括メニュー7
ケース ( &メニュー = "メニュー8" ) 一括処理実行 &一括メニュー8  ケース ( &メニュー = "メニュー9" )
一括処理実行 &一括メニュー9
ケース ( &メニュー = "メニュー10" ) 一括処理実行 &一括メニュー10 ケース ( &メニュー = "メニュー11" )
一括処理実行 &一括メニュー11
ケース ( &メニュー = "メニュー12" ) 一括処理実行 &一括メニュー12 ケース ( &メニュー = "終了" ) 一括
処理実行 &一括メニュー終了
ケース終了   手続き定義終了
868 Re: ikjun 1998/12/21-02:26
記事番号852へのコメント
 とりあえず、未完成のWebPageに考え方を載せときました。そっちに忙しくて前田さんのソースはよく見ていません。
とりあえず、ここを見てくれませんか?

http://ikjun.programmer.webjump.com/
870 Re: 小松 1998/12/21-06:49
記事番号868へのコメント
早速、ikjunさんのHP拝見致しました。メニュー作成の解説記事、これから大いに勉強いたします。

HP自体わくわくするような内容で、早速ブックマークに登録しました。
インターネットを開く楽しみが又一つ増えました。ご発展を大いに期待しております。

とりあえず感想と御礼です。
872 Re: ikjun 1998/12/21-16:01
記事番号870へのコメント
>HP自体わくわくするような内容で、早速ブックマークに登録しました。
>インターネットを開く楽しみが又一つ増えました。ご発展を大いに期待しております。

 えーと、あまり期待されてもちょっと困まります、WebPageそのものは完成するまで公開しない予定だったものなので、まあ、気長に考えて下さい。
幅田さん、佐田さんとは違うことをしたいとは思っているのですが・・・・両者とも完成度が高いだけになかなか大変ですね!

 内容はいま書いてあるメニューとは、全然違うものになる可能性があります。
できあがったら結構つまんないものになっているかも知れません。

 桐メニューライブラリは、もうちょっと何とかしようとは思ってますが?
884 Re: 前田 1998/12/23-19:02
記事番号872へのコメント
大助かりです!
私たち(失言、私)にとって幅広い情報が得られると言うのは大変助かります。
またすごいことが出来るんだと再奮闘する勇気がわいて参ります。
主題のメニューについては稼働中です、ありがとうございます。
またオブジェクトの操作でボタンを非表示にしたり、ラベルに都度都度の状況を表示したりと多方面に活用できそうです。

戻る