過去の桐井戸端BBS (桐ver.9)
23089 コマンドボタンで作ったフォームでの一括処理がうまく動かない わが 2003/10/31-01:45
おひさしぶりです
もろもろを諦め、○○○ステーションもやめて、
安いやつを買ってドライブを増やしてきましたー
その浮いた分とお小遣いと親の愛情で(笑)なんとか9買えましたー

せっかくの5の一括処理が全然だめみたいなので
コマンドボタンでフォームを作り、表と合体させて
めちゃくちゃながら、メニュー画面をフォームで作ってみたのですが
一括処理で、コマンドボタンがゆーこと聞いてくれませんでした
有効のチェックは入っています
一括処理の記述に問題でしょうか??

変数宣言 固有,文字列{&メニュー,&DATA}
変数宣言 固有,整数{&メニューボタン,&DATA1}
変数宣言 固有,整数{&JOB}
名札 開始

表"開始.tbl",更新=禁止,使用フォーム="開始"
フォーム表示
行表示
ケース開始
  ケース(&JOB)
   分岐 あ
  ケース(&JOB)
   分岐 い
  ケース(&JOB)
   分岐 い引越し用
  ケース(&JOB)
   分岐 この辺でやめる
  ケース終了
   終了 表 *

23106 Re:コマンドボタンで作ったフォームでの一括処理 宮城 2003/10/31-13:54
記事番号23089へのコメント
わがさん、こんにちは。

どんな表(更新禁止で開くとは、どんな項目がある?)、
どんなフォーム、どんなコマンドボタンでなにをやろうとしているのか、
これで想像せよと言われてもかなり厳しい・・・。(^_^;;

コマンドボタンで &JOB変数に値入れてメニューで振り分けさせるんでしょうか?

だったら、機能名=なし、機能パラメータリスト=#代入(&JOB,n)  
nはボタンにより 1〜4を振り分けるんですかね?

まあ、ボタンがいうことを聞かない関係があるかはわかりませんが、
明らかにおかしいところから。

ケース分の()内が 「&JOB」だけでみな一緒ってのは、「&JOB=1」
「&JOB=2」・・・の間違いでしょ?


23108 Re:コマンドボタンで作ったフォームでの一括処理 幅田 2003/10/31-17:06
記事番号23089へのコメント
わがさん
こんにちは。

桐v9では、対象表のないフォームも可能です。
主にメニュー用のフォームを作るときに使います。

フォームで表を使用するときは、一括処理で「表 "開始.tbl"」
などとはせずに、フォームの対象表でその表を指定することにより、
そのフォームを開くと同時に表を開くようにすることができます。

また、一括処理(CMDファイル)を使わず、直接メニュー用フォーム
(wfm)から起動して、プログラムをイベントファイル(kev)に
書き込むことも可能です。

従来のように、一括処理(CMD)から、プログラムを起動させる場合ですが、
一例として、下記のように書き換えてみました。

開始.tblは何のために必要なのかの記述がありませんので、
とにかく開始.wfmという対象表なしのコマンドボタンをメニュー形式に
貼り付けただけのフォームを使用しています。

また、それぞれのコマンドボタンは
オブジェクト名を「cあ」、「cい」、・・「c終了」
などとして、機能名には
それぞれ「一括処理へ戻る」を指定しておきます。

なお、ケース範囲(ケース開始からケース終了まで)や、
繰り返しのループ内から、抜け出すときに、
「分岐」コマンドを使ってはいけません。
その場合は、「ケース中止」コマンドを使います。

また、「ケース中止」コマンドで抜け出しても、その後「分岐」
コマンドなどで、サブルーチンへ飛んでも、
また、メニュー内に戻ってくるには、「分岐」コマンドを
使わなくてはならず、だんだんプログラムが大きくなってくると、
その「分岐」コマンドがどこへ飛んでいるのか、わけがわからなく
なってしまう恐れがあるので、

できるだけ、「分岐」コマンドは使わないようにしましょう。

そういう場合は、「手続き実行」コマンドを使います。
そして、そのサブルーチンで、「手続き終了」コマンドが実行された
時点で元のメニューのところに戻ってくるというわけです。


以下、書き換えた一例(変数は書き換えてあります)
==
変数宣言 固有,文字列{ &メイン処理}
変数宣言 固有, 整数{ &メインメニュー}

ウィンドウ作成 "開始.wfm",位置 = ( 0,0 ),ハンドル = &メインメニュー

繰り返し

ウィンドウ会話 &メインメニュー,ボタン = &メイン処理

  条件 ( &メイン処理 = "c終了" ) 繰り返し中止
 
ケース開始
ケース ( &メイン処理 = "cあ" )
     手続き実行 あ
ケース ( &メイン処理 = "cい" )
     手続き実行 い
ケース ( &メイン処理 = "cい引越し用" )
     手続き実行 い引越し用
ケース終了

繰り返し終了

終了

23115 Rメニュー画面からコマンドボタンが起動しません わが 2003/10/31-20:51
記事番号23108へのコメント
宮城さん、幅田さん、どーもありがとーございます
開始フォームが開く事ができました
(開始フォームは、メニューフォームの名前です。すみません説明不足で)

いろいろ教えてくれてありがとーございます
マニュアル読んでもよくわからなかったので、
Ver.5で覚えかじった事と本能のままでここまで来てしまいました(A ̄▽ ̄;)

そして、フォーム上で
メニューの項目をコマンドボタンでリンクするよーに作ったのですが
メニューフォームを直接開けばコマンドボタンが作動してくれるのですが
一括処理から起動させるとコマンドボタンが全然動いてくれないのです
一括処理時に起動するにチェックはしてるのですが。

>オブジェクト名を「cあ」、「cい」、・・「c終了」

なぜ、cを頭につけるのですか?

23120 Re:Rメニュー画面からコマンドボタンが起動しません 幅田 2003/10/31-21:04
記事番号23115へのコメント
わがさん
こんにちは。

>>オブジェクト名を「cあ」、「cい」、・・「c終了」
>なぜ、cを頭につけるのですか?

別にどうしてもつけなくちゃいけないわけでもありません。
私自身のくせで、
コマンドボタンには、c
ラベルオブジェクトには、a
テキストオブジェクトには、t
などをつけて、後からわかりやすいように区別を
しているだけです。

戻る