過去の桐井戸端BBS (桐ver.8)
12489 フォームのコマンドボタンで開いた対象表がフォームを閉じても画面に残ってしまう。 masa 2001/08/01-12:53
みなさんこんにちは
簡単な事なのかも知れませんが、過去ログでも見つけきれなかったので教えて下さい。
今、フォームのコマンドボタンでその対象表を開くように設定しているのですが、フォームを閉じた後も表が画面に残っています。
フォームを閉じたらその表も閉じるにはどう設定したらいいのでしょうか?
よろしくお願いします。

12490 Re:フォームと対象表について追加 masa 2001/08/01-12:58
記事番号12489へのコメント
ちなみにコマンドボタンは機能名1に「ウィンドウ」の「多重化 表編集」だけある状態です。
よろしくお願いします
12498 Re:フォームと対象表について追加 佐田 守弘 2001/08/02-00:23
記事番号12490へのコメント
masaさん
コマンドボタンの機能名で多重化した表を、元のフォームから閉じるのは結構面倒そうですね。
詳しくは後から述べますが、イベントないしは、一括処理を使う必要があるかと思います。

まず、多重化された表は、そのフォームで編集されている訳ではないので、
フォームを閉じただけでは多重化した表は閉じられません。
フォームを閉じた時に、多重化した表も一緒に閉じたいとしたら、多重化した表を閉じるコマンドを実行する必要があります。

まず他の表を閉じるコマンドですが、イベントファイルの中に
--------------------------
手続き定義開始 表閉じ()
 終了 表 *
手続き定義終了
--------------------------
の様な一般手続きを作っておきます。

そして、フォームには[表閉じ](他の名前でも構わない)といったコマンドボタンを作っておき、
この機能名に「手続き実行」「表閉じ」と設定します。
更にフォームのオプションのタブを開いて、[終了時]に実行するコマンドボタン名に、この[表閉じ]を指定します。

以上によって、フォームを閉じる時にこのボタンが実行され、一般手続きのコマンドでその時に開かれている全ての表が閉じられると思います。

●問題は
問題は、上記のコマンドでは閉じたくない他の表まで閉じてしまう事です。
同時に複数のフォームが開かれている時の挙動はどうなるか分かりません。

もし多重化した表だけを閉じるのであれば、コマンドボタンの機能名で多重化するのではなく、
一般手続きの中で多重化コマンドで多重化を行い、その時に開く表の表番号を指定するか、調べる必要があると思います。
またこの場合に、多重化していないのに多重化した時に開かれる表を閉じようとすると、
表が開かれていないのでエラーになるかと思います。

従って、多重化しているかどうか、閉じようとする表が開かれているかどうか、
その表は多重化した表であるかどうかなどをチェックしながら該当する表であれば閉じ、
そう出なければ何もしないといった処理を行う一般手続きを作成する必要があろうかと思います。

佐田守弘(KS-00119)
12510 Re:ありがとうございます。不明な所があったら又教えて下さい。 masa 2001/08/02-20:24
記事番号12498へのコメント
佐田 守弘さん こんばんは
いつもどうもありがとうございます。
まだまだフォームは勉強中な状態なので頑張ってみます。
不明な所が出てきましたら、又教えて下さい。よろしくお願いします。

戻る