過去の桐井戸端BBS (桐ver.8)
17623 イベントでフォーム開始と同時にキー入力画面が出て絞り込みを行うようにしたい DIDI 2002/10/16-23:19
桐8.6を使用しており、下記のことを行いたいのですが、
過去ログをいろいろみさせて頂きましたが、わかりませんでしたので、投稿させて頂きます。

1.Aフォームのコマンドボタンを押すとBフォームが出てくる。
2.Bフォームの立ち上げ(開始)と同時に、キー入力画面が出てきて、絞り込みを行う。(部分一致等をさせたいため。)
3.選択行をダブルクリック等するとAフォームの項目に反映(入力)される。

2.の絞り込みのところは、下記のようかなと、考えましたが、1-2の連携もうまくわかりません。
手続き定義開始 ????::フォーカス取得(文字列 &文字列1)
キー入力 ( 01,01 ),プロンプト = "B" &文字列1
絞り込み [2]_&文字列1, 部分一致検索 = 含む

手続き定義終了

また、3のことは桐のイベントで可能なのでしょうか?

アドバイスよろしくお願い申し上げます。


17624 Re:イベント フォーム開始でキー入力 絞り込み natsu 2002/10/17-17:16
記事番号17623へのコメント
この様な処理方法は、過去ログにもいくつかありますが
(フォーム間での変数引き渡しとでもいいましょうか)

>1.Aフォームのコマンドボタンを押すとBフォームが出てくる。
>2.Bフォームの立ち上げ(開始)と同時に、キー入力画面が出てきて、絞り込み
>を行う。(部分一致等をさせたいため。)
>3.選択行をダブルクリック等するとAフォームの項目に反映(入力)される。

上記 1.2.3.の処理ですが、イベントで処理すると次の通りです

Aフォームのコマンドボタンのイベント(左クリック)
***********************************
キー入力 ( 01,01 ),プロンプト = "文字列を入力して下さい:",&比較式
フォーム呼出し "B"
行訂正 [得意先]=&STR
***********************************
「フォーム呼出し」でB.wfmを開き処理している間も、このボタンの
イベントは継続しているところがポイントです


Bフォームの行セレクタのイベント(左クリック)
***********************************
&STR=[得意先コード]
メソッド呼び出し  @b閉じる.実行( )
***********************************
一覧表フォームなら、あらかじめヘッダ部分にコマンドボタンを
配置しておいてください
(ここではオブジェクト名を "b閉じる" にしておきました)

これで、Bフォームで取得した値が変数に入り、
Aフォームのコマンドボタンのイベント 「行訂正」へ戻ります

あとは、Bフォームのフォーム開始時イベントで 「キー入力」で
取得した&比較式を使って、Bフォームの編集対象表を操作してください

注意する点は、
1)フォーム間での値を受け渡しする変数は、共通もしくは組み込み変数を使用した方が安全
2)Bフォームを開いたけれど、とりあえず値の取得は中止してAフォームに戻る場合は、直接 "b閉じる" ボタンをクリックしますが
そのときのイベントは

キー入力 ( 01,01 ),プロンプト = "文字列を入力して下さい:",&比較式
フォーム呼出し "B",ボタン=&置換式
ケース開始
 ケース (&置換式="b閉じる")
 ケース その他
 行訂正 [得意先]=&STR
ケース終了

となります

17626 ちょっと訂正 natsu 2002/10/17-17:50
記事番号17624へのコメント
>キー入力 ( 01,01 ),プロンプト = "文字列を入力して下さい:",&比較式
>フォーム呼出し "B",ボタン=&置換式
>ケース開始
> ケース (&置換式="b閉じる")
> ケース その他
> 行訂正 [得意先]=&STR
>ケース終了

このケース文だとだめですね
行セレクタをクリックしても訂正されません

"b閉じる"のボタンはオブジェクトの属性で非表示にしておき
もう一つ、"b閉じる_表示"というボタンを作ってください
こちらは普通にクリックできるようにしてください
両方のボタンとも 機能名は”ファイルー閉じる”にしておきます

それで
 ケース (&置換式="b閉じる")
のところを
 ケース(&置換式="b閉じる_表示")
に変更します
17629 ありがとうございました DIDI 2002/10/17-20:26
記事番号17624へのコメント
natsu様:

コメントありがとうございます。

何かとても難しい感じがしました。(今まで、一括処理でほとんど、システムを作ってきたため、イベントは分かりづらいとと感じます。)

これから、アドバイスを少しずつ試していこうと思います。

DIDI

戻る