DOBON.NET DOBON.NETプログラミング掲示板過去ログ

検索フォームの作成

環境/言語:[OS : Windows 2000 Professional / 言語 : Visual Basic .NET / .NET Framework : 1.1]
分類:[.NET]

検索用のフォームを作成しているのですがうまく動作させることができません。
実際に行おうとしていることは、データ一覧表示されるフォームが3つありまして、
それぞれのフォームには異なるデータの一覧が表示されています。
各データ表示画面に検索ボタンを作成し、クリックされたら検索項目の入力ダイアログが表示されるようになっています。
検索フォームには、検索キーと検索する値を入力する項目があります。入力後、検索フォームにある検索ボタンをクリックする度に表示されているデータ内を検索し、表示を移動させたいのです。
データ表示フォームと検索フォームが1対1なら「別フォームのデータを取得する」を参照してなんとかできたのですが、データ表示が複数存在した場合どのようにしたらいいのかわかりません。
こんにちは、じゃんぬねっと です。

■No8468に返信(TETUさんの記事)
> データ表示フォームと検索フォームが1対1なら「別フォームのデータを取得する」を
> 参照してなんとかできたのですが、データ表示が複数存在した場合どのようにしたらいいのかわかりません。

「検索フォーム」というのは、結果を返すだけにしておくべきではないのでしょうか?
それ以上の役割 (外部への関与) を担ってしまうと、汎用的でなくなってしまいますよね?
結果を返すメソッドを実装すれば汎用的に使えるのではないかと思います。

# 実際、私はそうやってますから。



   /*******************************************
     * @Remarks    じゃんぬねっと
     * @Homepage  http://f57.aaa.livedoor.jp/~jeanne/
     * @Blog        http://www.ailight.jp/blog/jeanne/
     *******************************************/
■No8470に返信(じゃんぬねっとさんの記事)
> 「検索フォーム」というのは、結果を返すだけにしておくべきではないのでしょうか?
> それ以上の役割 (外部への関与) を担ってしまうと、汎用的でなくなってしまいますよね?
> 結果を返すメソッドを実装すれば汎用的に使えるのではないかと思います。
>
> # 実際、私はそうやってますから。
>

もう少し詳しく教えていただけないでしょうか?

結果だけを返すようにするということは、検索ボタンをクリックしたときに一度だけ
検索をするということになるのでしょうか? それとも各データ表示画面に次のデータへの検索ボタンを追加するということなのでしょうか?
■No8495に返信(TETUさんの記事)
> 結果だけを返すようにするということは、検索ボタンをクリックしたときに一度だけ
> 検索をするということになるのでしょうか?
「検索」はあくまで、検索フォーム側に実装するべきでしょう。
検索フォームで [OK] 何かが押されたタイミングで、返せばいいでしょう。
私は、呼び出された側が、呼び出し元を意識するなと言いたかったのですが...

 〜 ここで、最初の質問を読み返してみました 〜

もし、検索フォームが同一インスタンス Only であり、
"同時"に返すフォームが複数あるのならば、その仕様はちょっと頂けないですね。

# オブジェクト指向云々の前に、モジュールの独立性を無視してるような...。

もしそうならば、検索フォームのインスタンスに、
返したい側のフォームのインスタンスを全部格納しておけば解決するでしょうが...。

# 本来、検索フォームというのは、そういう使い方しちゃいけないような... (^-^;)
■No8499に返信(じゃんぬねっとさんの記事)
> 「検索」はあくまで、検索フォーム側に実装するべきでしょう。
> 検索フォームで [OK] 何かが押されたタイミングで、返せばいいでしょう。
> 私は、呼び出された側が、呼び出し元を意識するなと言いたかったのですが...
>
>  〜 ここで、最初の質問を読み返してみました 〜
>
> もし、検索フォームが同一インスタンス Only であり、
> "同時"に返すフォームが複数あるのならば、その仕様はちょっと頂けないですね。

複数のフォームから同時に返すフォームはありません。一つのデータ表示画面で検索を行います。

> # オブジェクト指向云々の前に、モジュールの独立性を無視してるような...。
>
> もしそうならば、検索フォームのインスタンスに、
> 返したい側のフォームのインスタンスを全部格納しておけば解決するでしょうが...。

上記のように返したい側のフォームのインスタンスを全部格納すればよいと最初思ったのですが、それでは汎用性もないと思い、他の方法がないかと考えていてどうしたらよいか分からなくなりました。

> # 本来、検索フォームというのは、そういう使い方しちゃいけないような... (^-^;)

自分もそう思いますがまだ.NETに関して知識があまりないのでどのようにしたらようかが
検討がつかず困ってます。
2005/01/18(Tue) 11:32:28 編集(投稿者)

■No8500に返信(TETUさんの記事)
> 一つのデータ表示画面で検索を行います。
初めに投稿した内容と矛盾してませんか?

> 上記のように返したい側のフォームのインスタンスを全部格納すればよいと最初思ったのですが、
> それでは汎用性もないと思い、他の方法がないかと考えていて
> どうしたらよいか分からなくなりました。

うーん、これが譲れないとムリでしょう。

--------------------------------------------------------------------------------
> 検索フォームには、検索キーと検索する値を入力する項目があります。
> 入力後、検索フォームにある検索ボタンをクリックする度に表示されているデータ内を
> 検索し、表示を移動させたいのです。
--------------------------------------------------------------------------------

> 自分もそう思いますがまだ.NETに関して知識があまりないのでどのようにしたらようかが
> 検討がつかず困ってます。
何度も言うように、呼び出された側が呼び出した側を意識しない仕様にすれば、
汎用性がなくなることはありません。
整理すると、
--------------------------------------------------------------------------------
検索フォームには、検索キーと検索する値を入力する項目があります。
入力後、検索フォームにある検索ボタンをクリックする度に表示されているデータ内を
検索し、表示を移動させたいのです。
--------------------------------------------------------------------------------
です。
表現の仕方が下手で迷惑かけてすいません。m(__)m

呼び出された側が呼び出した側を意識しないようにする方法が分かりません。
「OK」ボタン等ををクリックするタイミングで返すということはわかるのですが
どのように返せばいいのでしょうか? 呼び出した側がわからないと分からないと
かえすことができないのでは…
■No8504に返信(TETUさんの記事)
> 表示されているデータ内を検索し、表示を移動させたいのです。

これが、

> データ一覧表示されるフォームが3つありまして、

ですね?

その 3 つのフォームが別インスタンスなのはわかりますが、
同じ型 (クラス) のフォームではないのですね?
ようやく飲み込めてきました。

だとすると、仕様が仕様なだけに、汎用的にしようとすると余計に混乱しちゃいますね。
(動的に、振り分けちゃうと、仕様と競合が取れなくなって宜しくないですから)
検索フォームに、インスタンスをそのまま保持させちゃった方がいいですね。

そんな無茶な (仕様の) 検索フォームは、今後使うこともないでしょうし、
後から見た時に、まだ修正しやすいでしょうから。

# 飲み込みが遅くて、すいませんでした m(_ _)m

DOBON.NET | プログラミング道 | プログラミング掲示板