過去の桐井戸端BBS (桐ver.9)
24241 イベントで表引き表の絞り込みを行いたい ながい 2004/01/10-18:17
Treeを拝見して勉強しています。
桐9でイベントに挑戦しています。

受注台帳: [受注番号],[客先名],[製品番号]....
製品台帳: [製品番号],[客先名]....
上記の2つの表を用い,受注入力をします。
受注台帳を入力用フォーム(一覧表形式)で入力していますが,
[受注番号],[客先名]を入力し,[製品番号]にフォーカスした際,
入力された[客先名]で,製品台帳を絞り込み,
絞り込んだ製品台帳を用いた表引きで,[製品番号]を選択入力したいのですが,
どなたか,イベントでの方法をご教示ください。

以上
24247 Re:イベントで表引き表の絞り込み 佐田 守弘 2004/01/11-12:47
記事番号24241へのコメント
ながいさん
タイミングなどの点でうまく行くか解りませんが、考え方は次の通りです。

まず[製品番号]のテキストオブジェクトに対して、フォーカス取得イベントを生成して下さい。
そして、作られたイベントハンドラの中に、次の様なコマンドを記述します。
--------------------------------
代入 &客先名=[客先名]
編集表 製品台帳
解除 *
絞り込み [客先名]{=&客先名}
編集表 受注台帳
--------------------------------
なお、ここで編集表コマンドが必要になるかどうかは、試してみて下さい。
(入っていても実害はないはずですが)

また、作られたイベントハンドラのメインの部分には、
--------------------------------
 表 製品台帳
--------------------------------
を付け加えて下さい。

なお、イベントハンドラに関して、また表引き表の編集状態の継承については
直前のツリー
フォーム入力で表引き表が並べ替え状態にならないことがある」(#24239)
へのコメントを参考にして下さい。

冒頭に「タイミングの点で」と書きましたが、フォーカスした時点で絞り込みを開始して、
タイミング的に間に合うかどうかが微妙です。
大した違いはないのかもしれませんが、あるいは客先名のテキストオブジェクトのソース値更新イベントで
行う方が良いかも知れません。

佐田守弘(KS-00119)
24250 Re:イベントで表引き表の絞り込み bonito 2004/01/11-21:08
記事番号24247へのコメント
ながいさん、佐田さん

私なら
[入力前]イベントで 絞り込み
[ソース値更新]イベントで 絞り込み解除 1
とすると思います
24252 Re:イベントで表引き表の絞り込み 佐田 守弘 2004/01/11-22:22
記事番号24250へのコメント
ながいさん、
質問にはフォーカスを取得したときと書かれておりますが、bonitoさんが書かれている
 >[入力前]イベントで 絞り込み
 >[ソース値更新]イベントで 絞り込み解除 1
の方がオーソドックスかも知れません。

と言うか、フォーカス取得イベントは、この様な目的よりも、
フォーカスを得たオブジェクトの表示を変更するためなどに良く使うイベントです。

しかし少しだけ気になるのは、この絞り込みにどの程度の時間を要するかです。
1つ前の客先名が確定した時点で絞り込みを始めておいた方が良い場合もあるかも知れません。

佐田守弘(KS-00119)

24255 Re:イベントで表引き表の絞り込み ながい 2004/01/12-09:35
記事番号24252へのコメント
早速のご指導ありがとうございます。


>質問にはフォーカスを取得したときと書かれておりますが、bonitoさんが
>書かれている
> >[入力前]イベントで 絞り込み
> >[ソース値更新]イベントで 絞り込み解除 1
>の方がオーソドックスかも知れません。
>
この方法とトライしてみます。
取り急ぎお礼まで


24256 Re:イベントで表引き表の絞り込み しぼうかん 2004/01/12-11:58
記事番号24255へのコメント
ながいさん、こんにちは.

過去ログの

http://www.fuku3.com/~habata/kbbs/kakov9/20384.htm

が参考になりませんか?

24269 Re:イベントで表引き表の絞り込み アックン(=^・^=) 2004/01/14-12:21
記事番号24252へのコメント
佐田さん、bonitoさん> こんにちは。
佐田さんが書かれたたように、もし[客先名]のソース値更新イベントで絞り込むと、
新規行のときは、[客先名]→[製品番号]の入力順になるからうまくいくのですが、
行訂正のときは入力順が必ずしも一定ではありませんから、
いきなり[製品番号]だけ訂正しようとしたら絞り込みしなくて困ったことになりますから、
bonitoさんが書かれたように、入力前イベントで絞り込み→ソース値更
新イベントで絞り込み解除というのが、やはり基本だと思います。
が、できるだけ絞り込みを早めにしておきたいときは、行訂正時を考慮して、
[客先名]のソース値更新と[製品番号]の入力前の両方に、どちらか一方だけで
絞り込みする処理を書くのがいいと思います。

ぼくの場合は、一覧表と伝票に3個のテキストオブジェクト(3個の項目)を
入力順が不定ながらほぼ連続して入力していくケースで、上記の合わせ技(^^;
を使ってます。(表引き表も2個あって、ややこしいから引用はパス。)
なお、過去に同様の質問に何度か回答したと思うのですが、
過去ログ検索してないので詳細不明記憶曖昧であります。(^^;

戻る