Tips

不要な詳細フォームを開かない方法2

日付2007/09/04
ID07-016
バージョン2004
プラットフォームMac / Win

リストフォームを表示させてダブルクリックしてレコードを選択させた結果だけを得たいときには、リストフォーム上でダブルクリックして開かれる詳細フォームが邪魔になるかもしれません。そのようなときに、FILTER EVENTコマンドが有用なのは、すでに下記のTipsにてご紹介させていただきました。

Tips: 不要な詳細フォームを開かない方法

レコードをダブルクリックしたときに、特に何も処理をしないのであれば問題はありません。しかしレコードをダブルクリックしたときに、何か処理をするようにメソッドを作成した時には問題があるかもしれません。

Case of 
   \ (Form event=On Double Clicked )
   ALERT([Table]Field)
   FILTER EVENT
End case 

上記のメソッドは、レコードをダブルクリックすると詳細フォームを開く代わりに[Table]Fieldの内容をアラートボックスで表示します。このメソッドが書かれたリストフォーム上、例えばヘッダエリアにボタンがあったらどうでしょうか。そのボタンをダブルクリックしたとき、エラーになるかもしれません。

ボタンを通して発生したフォームイベントのダブルクリックが、レコードの存在しない場所で発生するため、思わぬ所でエラーになることがあります。そのような時には、そのボタンの処理の最後に次のコードを加えます。

If (Form event=On Double Clicked )
   ABORT
End if 

そして、そのボタンプロパティのフォームイベント「On Double Clicked」が発生するように、プロパティリストのOn Double Clickedにチェックを入れます。これで問題は解消されるはずです。

ABORTの代わりにFILTER EVENTを記述すると、期待通りの効果にはならないのでご注意ください。なぜならこのケースにおいてはメソッドに対して動作の継続を停止しなければならず、FILTER EVENTは4Dに対してのイベントフィルタであるのでメソッドが動作してしまうからです。