過去の桐井戸端BBS (桐ver.8)
14726 行挿入開始イベントがあるのに、行削除開始イベントがない? pokopon 2002/01/14-10:49
いつもお世話になっています。 どなたかご教授いただければ幸いです。

フォームのイベントハンドラに「行挿入開始イベント」があります。
不用意に行挿入させないように「注意表示」をさせる時に役立っていました。
ところで、ふと気が付いたのですが、
これがあるのに「行削除開始イベント」がありません。
不用意に行を削除させないように「注意表示」をしたいのですが、このイベントがないために、苦労しております。
フォーム自体に「行削除」を許可させなければ良いのでしょうが、実際に削除したい場合もあります。

「行削除開始イベント」の代わりになるイベントってありませんか?
(同様の挙動をするイベントでも結構です)

14727 Re:行挿入開始イベントがあるのに、行削除開始イベントがない? hidetake 2002/01/14-11:11
記事番号14726へのコメント
>フォーム自体に「行削除」を許可させなければ良いのでしょうが、実際に削除した
>い場合もあります。

オブジェクト操作 @フォーム.行削除 = "0"
オブジェクト操作 @フォーム.行削除 = "1"

でオブジェクト操作するのではいかがでしょう?

14728 Re:イベントにこだわっています、が・・・ pokopon 2002/01/14-12:55
記事番号14727へのコメント
hidetakeさん いつもいつもありがとうございます。

>オブジェクト操作 @フォーム.行削除 = "0"
>オブジェクト操作 @フォーム.行削除 = "1"
>でオブジェクト操作するのではいかがでしょう?

実はこれは試したのですが、あくまでイベントにこだわっています。 (^^ゞ
行削除のアクションが行われた時に、
「ダメダメ、削除したら」とメッセージを表示させたいな〜。

オブジェクト操作では、「行削除」そのものがセレクトできない状態(選択不可)です。
でも、よくよく考えてみたら、
まてよ、別にメッセージを表示させなくとも良いかな?
余計なメッセージが出ると、かえってわずらわしいですからね。
知らず知らずのうちに「削除できない」状態の方が、ユーザーにとっては「幸せ」かも知れません。
行セレクタを選択し不用意に「DEL」キーを押しても「何にも起きない」状態の方が良いかも?

ということで、これも「ありっ」という結論に達しました。

でも、どうして
「行挿入開始イベント」があって、「行作削除開始」イベントがないのだろう?
(単なるK3の気まぐれ?)

14729 Re:行挿入開始イベントがあるのに、行削除開始イベントがない? bonito 2002/01/14-13:05
記事番号14727へのコメント
フォーム+イベントで仕組まれていると推察いたします、であれば...

>不用意に行を削除させないように「注意表示」をしたいのですが、このイベントが
>ないために、苦労しております。
>フォーム自体に「行削除」を許可させなければ良いのでしょうが、実際に削除した
>い場合もあります。

許可作業で「行削除」のチェックを外しても、コマンドボタンの行削除_***や一括の行削除・・・は有効です。
(許可作業は会話処理的動作を許可するかどうかの意らしい)
ですから、私の場合は、全てのフォームで「行削除」を許可せず、コマンドボタンのクリックで
(必要なら事前に複数の行を行セレクタで選んでおいてもらって...)
「行削除_指定行」「確認する」 としています。(安直です)
時々どうしても...という必要にせまられて「行削除_指定行」「確認する」をボタンの2行目に設定し、
1行目には「手続き実行」「行削除前の処理」とし、
一般手続き内で必要な処理や特別なメッセージを出したりする事もあったりはしますが...。

ps.
hidetakeさんの
オブジェクト操作に関するコメントで何度も示唆されていたにもかかわらず、
愚かな私が最近やっと気付いた事、
オブジェクト操作 @フォーム.行訂正終了="0"
オブジェクト操作 @フォーム.行訂正終了="1"
イベントハンドラもオブジェクト操作できるって事、
おかしい (^^; タイマーイベントだけは前々から、0とか1とかしてたのに
他のイベントハンドラに応用する事が思いつかなかった...。

14730 Re:行挿入開始イベントがあるのに、行削除開始イベントがない? pokopon 2002/01/14-13:43
記事番号14729へのコメント
bonitoさん こんにちは

>許可作業で「行削除」のチェックを外しても、コマンドボタンの行削除_***や一括の
>行削除・・・は有効です。(許可作業は会話処理的動作を許可するかどうかの意らしい)

貴重な情報、ありがとうございました。 m(__)m
ここまでは試してはおりませんでした。

今回の目的は、あくまで「不用意なキー操作」での行削除防止でした。
行セレクタにカーソルを当てて「DEL」を防ぎたかったわけでです。

実際の行削除は、コマンドボタンに割り付けておきますので、「意図をもった削除」だけをコントロールできます。

ところで、よくよく考えてみたら、「行削除」のチェックは「フォーム」に対してですよね。
フォームからの行削除のアクションに対して「有効」なのでしょう。
コマンドボタンや手続きでの「行削除」は直接「表」に対してのアクションということでしょうから、
このような挙動をするのかな?

ということで、フォームで行削除を許可しない & コマンドボタン(手続き)で対応できます。
オブジェクト操作は必要ないということになりますね。

フォームからの不用意なアクションでの「行削除はダメヨ」メッセージは、出さない方がわずらわしくないと思いましたので、今回は見送りました。

ありがとうございました。

(でも不思議だな? 何で行削除開始イベントを作らなかったのだろうか?)

14821 行挿入イベントの意味 佐田 守弘 2002/01/22-00:18
記事番号14726へのコメント
pokoponさん
オンラインヘルプの「行挿入開始」と「行挿入終了」イベントの説明の中の目的の記述を見て頂ければ、
行挿入開始イベントがあるのに行削除開始イベントがない訳は御理解できると思います。

簡単に言えば、行挿入に入る時に、ファンクションキーの機能の割り付けを変更したり、各種表示を変更する場合があります。
逆に挿入モードが終了して表示モードに戻る時にこれらの表示を元に戻します。
これは、行訂正モードに入る時も同じです。

こういったモードの切り替わりに際して、イベントハンドラで表示や機能などを変更するために、
行挿入開始、行挿入終了、あるいは行訂正開始、行訂正終了のイベントを使います。
行挿入が始まった事を確認するためにも使えないわけではないのですが、本来の目的は上記だろうと思います。

つまりこのイベントで言う行挿入とは、行削除に対しての行挿入ではなく、表示モードに対しての行挿入モードの意味です。
ですから行挿入開始イベントがあるのに、行削除開始イベントがないのは別に不思議ではありません。

参考までに付け加えると、行挿入終了前(行訂正終了前も同じ)イベントは、上記とは目的を異にします。
この終了前は、行挿入して表に書き込む前に、値をチェックして、必要があれば入力をやり直させるためのものです。

佐田守弘(KS-00119)
14824 Re:行挿入イベントの意味 pokopon 2002/01/22-13:22
記事番号14821へのコメント
佐田 守弘さん こんにちは

リプライ、ありがとうございます。

>こういったモードの切り替わりに際して、イベントハンドラで表示や機能などを
>変更するために、行挿入開始、行挿入終了、あるいは行訂正開始、行訂正終了の
>イベントを使います。行挿入が始まった事を確認するためにも使えないわけでは
>ないのですが、本来の目的は上記だろうと思います。

そうですね。フォームのコンディションを設定する準備用の目的のためのイベントですね。
標準で実装されていない理由は、「必要ないから」が理由でしょうね。 (^^ゞ

では、行削除アクション(コマンドボタンやらイベントからも含め、フォーム上からの全てにおいて)が発生した時に、
「削除できません」なんてメッセージボックスを出して警告するということは可能でしょうか?
タイマイベントで表の状態をサーチして・・・・、他にありますか?


戻る