過去の桐井戸端BBS (桐ver.9)
23196 イベントでエラーが起きたとき次の処理に進まずに元にもどるよう制御したい Yano 2003/11/05-10:56
記事番号23196へのコメント
フォームからコマンドボタンでイベントを実行させたとき、エラーがでた後、次に進まず、もとのフォームに戻したいのです。
昔のBasic言語の on error gosub〜, resume〜 のイメージです。
このような処理は可能でしょうか。

具体的な状況は次の通りです。
ネットワークで使用。
ファイル共有はしない。
コマンドボタンでイベントを呼び出し、いくつかのファイルを併合して集計する処理を実行。
他のPCで使用しているファイルがあるとき、「他のユーザーが使用中です。」のエラーが表示。
ダイアローグボックスを閉じると、そのファイルの併合はしないで、次の処理に進んでしまう。

この最後の所を次に進まず、元のメニュー(フォーム)に戻るようにしたいのですが...

よろしくお願いします。
23200 Re:エラー制御について うにん 2003/11/05-11:52
記事番号23197へのコメント

>コマンドボタンでイベントを呼び出し、いくつかのファイルを併合して集計
>する処理を実行。
>他のPCで使用しているファイルがあるとき、「他のユーザーが使用中で
>す。」のエラーが表示。
>ダイアローグボックスを閉じると、そのファイルの併合はしないで、次の処
>理に進んでしまう。

併合ということはファイル排他が必要なので、併合に使う表を全部
表  <表ファイル名>,モード = 専有,終了状態 = &変数
で開いて、&変数によって処理を変えるようにします。

23208 Re:エラー制御について Yano 2003/11/05-23:11
記事番号23200へのコメント
&変数によって処理を変えるということは理解できました。
ありがとうございました。
ただ、メニュー(フォーム)のコマンドボタンのイベントタブで、
まず左クリックによってイベント処理をして、
その後、コマンドボタンタブに記述した処理−次のメニュー(○○.wfm)を開く−を実行するようにしてあるのですが、
&変数によって処理を変えることで、このコマンドボタンタブの処理をパスする方法がわかりません。

コマンドボタンタブで○○.wfmを開く代わりに、イベントの中で○○.wfmを開くようにしてみたのですが、
開いた後の処理に問題が生じ(モーダルフォーム云々)うまくいきません。
もう少し考えてみます。

23209 Re:エラー制御について 悲しげ 2003/11/05-23:42
記事番号23208へのコメント
タイトルの「エラー制御」とは直接関係ないコメントになりますが、

>コマンドボタンのイベントタブで、まず左クリックによってイベント処理
>その後、コマンドボタンタブに記述した処理−次のメニュー(○○.wfm)
>を開く−を実行するようにしてある
>&変数によって処理を変えることで、このコマンドボタンタブの処理を
>パスする方法がわかりません。

コマンドボタンの「マウス左クリック」イベントとボタンの本来の「機能」の両方を実行させると云う組み方をしている訳ですね。
この両方を実行させると、(1)先ずはじめに「マウス左クリック」イベントに記述した処理が実行され、
(2)それが終わると今度はコマンドの本来の機能が実行されることはご承知のとおりです。
さて、変数の値によって(1)の後に(2)を実行させたりさせなかったりすることは、
さほど難しいことでもありません。
マウス左クリックイベントの記述を眺めむるに

手続き定義開始 b某ボタン::マウス左クリック(……参照 長整数 &処理中止)

となっています。
この「&処理中止」の値が真(例えば&処理中止=1)であれば、
引き続く桐の本来の機能を一時的に実行させないことができます。
ですから、このイベントプロシージャ内で例えば

 if(&某変更="処理をパスする内容")
  &処理中止=1
  ・・・・・
 else
  ・・・・・
 end

のように記述すればよい訳です。



あるいは、「マウス左クリック」イベントと併用せずに、ボタンの機能の
4行の中だけでもお求めのことが可能な場合もあります。

機能     同パラ
手続き実行  某処理
実行条件   &某変数<>"処理をパスする内容"
開く     "○○.wfm"



>コマンドボタンタブで○○.wfmを開く代わりに、イベントの中で○○.wfmを開く
>ようにしてみたのですが、開いた後の処理に問題が生じ(モーダルフォーム
>云々)うまくいきません。

これは全く別件の問題ですね?
「モーダルフォーム」だけでやるとこの辺りの扱いは超簡単になると思うのですが、
ま、その辺は各人のお好みでしょうから。
23255 Re:エラー制御について Yano 2003/11/07-23:13
記事番号23209へのコメント
今まで &処理中止の値を参照して実行を制御させたことがありませんでした。
また、手続き実行も、すべてマウス左クリックのイベントによるものばかりで、
ボタンの機能としては使っていませんでした。
いろいろヒントになりました。
ありがとうございました。

戻る