過去の桐井戸端BBS (桐ver.9)
21570 入力支援を使って選んだ文字列で検索するフォームを作成したい 桐初心者 2003/07/24-16:51
こんにちわ、桐初心者です。

入力支援を使ってその駅に停まる新幹線を検索する検索するフォームを作成しているのですが、うまくいきません。
どういうことかというと、以下の通りです。

<東海道・山陽新幹線到着駅.tbl>
オートナンバー | 到着駅 | のぞみ停車 | ひかり停車 | こだま停車
      1  東京     ○      ○      ○
      2  新横浜    ○      ○      ○
      3  小田原    ×      ○      ○
      4  熱海     ×      ○      ○
      5  三島     ×      ○      ○
      6  新富士    ×      ×      ○
  中略・・・
     33  小倉     ○      ○      ○
     34  博多     ○      ○      ○
       (オートナンバーは到着駅が50音順にならないように設定)

この表を元に、下のフォームを作ります。

<新幹線検索.wfm>
     駅名から停車する新幹線を検索
 −−−−−−−−−−−−−−−−−−−−−−
  駅名検索     |
    東京  ▼  |  のぞみ ○
             |  ひかり ○
     検索開始  |  こだま ○
             |   が停車します。

というフォームです。

駅名検索の下にある、入力支援付きテキストボックス(上では東京 ▼です。)から表にある駅名を選ぶ、
「検索開始」を押してのぞみ・ひかり・こだまの結果を表示させたいのですが、どのようにしたらよいのでしょうか?
21572 Re:入力支援のことで うにん 2003/07/24-19:48
記事番号21570へのコメント
><新幹線検索.wfm>
>     駅名から停車する新幹線を検索
> −−−−−−−−−−−−−−−−−−−−−−
>  駅名検索     |
>    東京  ▼  |  のぞみ ○
>           |  ひかり ○
>     検索開始  |  こだま ○
>           |   が停車します。

検索開始を押さなくても、右側の検索結果の部分は
#表引き(&駅名,=,"東海道・山陽新幹線到着駅.tbl",[到着駅],[のぞみ停車])
などで表示すれば済むと思うのですが。

21603 Re:これって入力支援かなぁ? 悲しげ 2003/07/27-19:39
記事番号21570へのコメント
どもっ、桐初心者さん、
お望みのことを、「入力支援ボタン」を使って実現する方法は判りません。
が、普通の「コマンドボタン」でなら簡単に実現できると思います。

例えばこの表自体の一覧表(伝票)フォームを作成し、
そのヘッダ部に検索文字列入力用のテキストを設け、ソースを「&STR」とする。
別にコマンドボタン「検索開始」を設けて、
  機能名    同パラ
表示      確定する
フォーカス移動 t到着駅
検索_比較式  _&STR

このようにして、検索用テキストに値を入れてからコマンドボタンを押せば、
当該駅の行にジャンプするので、一目瞭然かと思うのですが。
さらに云えば「新富士」で
 「のぞみ× ひかり× こだま○が停車します」(a)
または
 「こだまが停車します」           (b)
と表示させるよりも
  6  新富士    ×    ×    ○
のままで見せる方が、より見やすいような気がしないでもありません。(^^;)

もっとも、(a)のように見せたいのなら、簡単な方法としては別項目を設けて、その項目計算式に
"のぞみ"+[のぞみ]
+" ひかり"+[ひかり]
+" こだま"+[こだま]+"が停車します"
とするか、あるいは(b)ならば
#部分列(#条件選択([のぞみ]="○","、のぞみ")+#条件選択([ひかり]="○","、ひかり")+#条件選択([こだま]="○","、こだま"),2)+"が停車します"
と設定しておいて、この別項目のみを表字させるとか。

検索文字列入力用フォームを、どうしてもデータ表と別にしたいのなら話は別ですが、
既に長くなりすぎたので、今宵はこの辺で。
21604 Re:これって入力支援かなぁ? うにん 2003/07/27-20:59
記事番号21603へのコメント
なるほど。
いわれてみれば、そもそも入力支援(表引き)で駅名を件の表から選択するには
件の表とは別の表がフォームの対象表になっていないと不可能ですから、何か変ですね。
入力支援を単なるドロップダウンリストにしてもいいですが、表にあるデータをわざわざ別にリストにするのもあほみたいですし。

#余談ですが、ファイルメーカーだと任意の表の項目値を単一化してドロップダウンに
#してくれる機能があります。

ちなみに私の#表引き()を使った例は、駅名のテキストソースを変数にすれば
キーを指定して1つのレコードからだけデータを表示するフォームなので対象表は不要では
ないかと思ったのですが、対象表がないと#表引き()も使えないのでした。
(確か前にも話題になりましたね。関数では自表は不要なはずなんですが、値条件の表引きと処
理が共有されてるんでしょうかね。。。)

>#部分列(
>#条件選択([のぞみ]="○","、のぞみ")
>+#条件選択([ひかり]="○","、ひかり")
>+#条件選択([こだま]="○","、こだま")
>,2)+"が停車します"
>と設定しておいて、この別項目のみを表字させるとか。

これ、わかりやすそうですね。

21678 Re:これって入力支援かなぁ? 桐初心者 2003/07/31-10:39
記事番号21604へのコメント

返事が遅くなりましたが、悲しげさん、うにんさんありがとうございます。
早速やってみることにします。
21704 Re:これって入力支援かなぁ? 桐初心者 2003/08/01-11:29
記事番号21604へのコメント
うにんさん

>なるほど。
>いわれてみれば、そもそも入力支援(表引き)で駅名を件の表から選択するには
>件の表とは別の表がフォームの対象表になっていないと不可能ですから、何か変ですね。
>入力支援を単なるドロップダウンリストにしてもいいですが、表にあるデータをわざわざ
>別にリストにするのもあほみたいですし。
>
>#余談ですが、ファイルメーカーだと任意の表の項目値を単一化してドロップダウンに
>#してくれる機能があります。
>
>ちなみに私の#表引き()を使った例は、駅名のテキストソースを変数にすれば
>キーを指定して1つのレコードからだけデータを表示するフォームなので対象表は不要では
>ないかと思ったのですが、対象表がないと#表引き()も使えないのでした。
>(確か前にも話題になりましたね。関数では自表は不要なはずなんですが、値条件の表引きと処
>理が共有されてるんでしょうかね。。。)
>
>>#部分列(
>>#条件選択([のぞみ]="○","、のぞみ")
>>+#条件選択([ひかり]="○","、ひかり")
>>+#条件選択([こだま]="○","、こだま")
>>,2)+"が停車します"
>>と設定しておいて、この別項目のみを表字させるとか。
>
>これ、わかりやすそうですね。
>

ありがとうございました。
おかげで完成しました。

戻る