過去の桐井戸端BBS (桐ver.9)
18481 コマンドボタンを押したときにはソース値更新イベントが働かないようにしたい 良平 2003/01/14-19:24
ソース値更新イベントについて教えてください。

----------------------------------------------------
手続き定義開始 伝票番号::ソース値更新()
  if(&伝票番号<>"")
    -----
    (処理)
    -----
  else
    確認 "伝票番号を入力してください。"
    method @伝票番号.フォーカス設定()
  end
手続き定義終了
--------------------------------------------------------------
入力用フォームの最初の項目に伝票番号というオブジェクトを作成し
未定義だったらエラー表示させる処理をしたいのですが
何も入力せずエンターキーを押せば思ったとおりの動きをします。
同時に機能名 閉じるというコマンドボタンを作成し、
それを押したら入力しない状態でも作業を中止しフォームを閉じたいと思います。
でも、ソース値更新イベントが働いてしまうらしく
確認メッセージが表示されOKを押すとフォームが閉じられます。

何も入力しなくても、コマンドボタン閉じるを押したら
メッセージを出さないで閉じたいと思いますがいい方法はないでしょうか?

ちなみに、フォームのオプション->実行コマンド ESCキーに
このコマンドボタン閉じるを指定して、ESCを押すと
確認メッセージを出さないで閉じます。

うまく伝わったかどうか不安ですが
ESCを押した時と同じ挙動をさせたいと思いますが
その方法があれば教えてください。お願いします。
18487 Re:ソース値更新について ONnoji 2003/01/14-20:37
記事番号18481へのコメント
良平さん、こんばんは。

コマンドボタン閉じるでフラグを立てたらる方法を考えてみました。

※タイトルーのバッテン[×]ボタンを実行された場合にはやはり駄目ですが…

*------------------------------------*
名札 メイン
 変数宣言 局所,整数{ &mExit }



手続き定義開始 伝票番号::ソース値更新( )
 if ( .not &mExit )

  if(&伝票番号<>"")
    -----
    (処理)
    -----
  else
    確認 "伝票番号を入力してください。"
    method @伝票番号.フォーカス設定()
  end

 end
手続き定義終了
*------------------------------------*


コマンドボタン閉じる

  機能名  機能パラメータリスト
[1]なし    #代入( &mExit, 1 )
[2]閉じる
[3]なし
[4]なし


>ちなみに、フォームのオプション->実行コマンド ESCキーに
>このコマンドボタン閉じるを指定して、ESCを押すと
>確認メッセージを出さないで閉じます。

この場合には[ソース値更新]イベント自体が発生しないと思いました。

外していたらすいません。


18509 Re:ソース値更新について 良平 2003/01/15-10:00
記事番号18487へのコメント
ONnojiさんは No.18487「Re:ソース値更新について」で書きました。

ありがとうございます。見事にできました。
こういうフォームがたくさんありますので1つ1つ直します。
×で閉じるのは 表示させないようにすればいいので問題ないです。

しかし、どうしてこうなるのか半分くらいしかわかりません。
よ〜く見て考えてみます。

助かりました。ありがとうございます。
18510 Re:ソース値更新について 良平 2003/01/15-10:05
記事番号18509へのコメント
よく見たら理解できました。ありがとうございました。
これから使わしていただきます。
18515 Re:否定演算子( .not )を使わない方が分かりやすいかもしれませんね。 ONnoji 2003/01/15-14:33
記事番号18510へのコメント
良平さん、こんにちは。

前回の「18487 Re:ソース値更新について」は負論理だったので分かりにくかったかと思います。
正論理では次のようになります。

*------------------------------------*
名札 メイン
 変数宣言 局所,整数{ &mLive = 1 }



手続き定義開始 伝票番号::ソース値更新( )
 if ( &mLive )

  if(&伝票番号<>"")
    -----
    (処理)
    -----
  else
    確認 "伝票番号を入力してください。"
    method @伝票番号.フォーカス設定()
  end

 end
手続き定義終了
*------------------------------------*

コマンドボタン閉じる

  機能名  機能パラメータリスト
[1]なし    #代入( &mLive, 0 )
[2]閉じる
[3]なし
[4]なし

否定演算子( .not )を使わない方が分かりやすいかもしれませんね。(^^ゞ

戻る