みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。
1.ファイルメーカーで解らない事があればここで質問して下さい。 何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)
You are not logged in.
Pages: 1
まんだら ともうします。
初めての投稿です。
現在、FileMaker12を使って、勉強を始めている初心者です。
簡単なことかもしれませんが、たとえば、住所録で検索画面から、複数の市町村を入力して、抽出したい場合の
入力方法がわかりません。
たとえば、住所録の中からいちどで、横浜市、海老名市、厚木市、綾瀬市を含む住所を検索したいのですが。
検索画面の住所のところで、OR検索がかかればいいのですが。
その方法がわかりません、宜しくお願いしたます。
Offline
検索モードで、新規検索条件とすればOR検索となります。
早速の回答ありがとうございます。
>検索モードで、新規検索条件とすればOR検索となります。
たとえば、検索画面で住所のところに、
横浜市 & 厚木市
又は、
”横浜市” or "厚木市"
等と入力しても、この検索条件に一致するデーターはない。 とでます。
Offline
追伸
>検索モードで、新規検索条件とすればOR検索となります。
いっている意味がわかりました。
たしかに、横浜市と入力してから、新規詮索条件をクリックして、再度、厚木市と入力すればできますね。
でも、私が知りたかったのは、同じ検索窓に複数の検索文字を入力したいとおもったので投稿しました。
横浜市 or 厚木市
のようにです。
Offline
横浜市 or 厚木市
このように入力して、or検索することもスクリプトで可能ですが、
面倒だし、決して入力しやすいとは思えませんよ。
例えば、
検索フィールドだけのリスト表示にして、
そこへ順に入力。
ではいかがでしょう。
最初から複数の検索条件を作っておいて、入力しないでも検索には影響しませんよ。
Offline
アクセルを踏むとブレーキがかかる方法を知りたい、といってるような。
1フィールドに1行で入力したいみたいだから、やっぱスクリプトかな?
回答ありがとうございます。
実は、やりたいことは、スクリプトを使って、住所録のかなで、登録日を範囲指定して、その中から、市町村を複数指定して、
送り状を作ろうかと思ったのです。
そこで、スクリプトを作ってみました。
全レコード表示
レイアウトの切り替え「元のレイアウト」 →これは、表形式表示にしてあります。
検索モードに切り替え「」
「カスタムダイアログを表示」を使って、登録日を範囲指定するようにした。
「カスタムダイアログを表示」を使って、住所を指定して入力できるようにした。
検索実行「」
このスクリプトを実行すると、住所入力画面で先ほどの質問のように、横浜市 or 厚木市 と入力すると。
結果は、この検索条件に一致するレコードなし。 となります。
もちろん、単独で、横浜市 とか入力すれば問題ないのですが。
複数の市町村を入れたい場合、なかなかうまく、スクリプトが作れないので、悩んでいます。
なんか、 関数を使って繰り返すのかな?ともおもったのですが、考えがまとまりませんでした。
以上いろいろとすみません。
Offline
登録日を範囲指定して、テキストの or 検索をするためには、
検索モードに切り替え「」
「カスタムダイアログを表示」を使って、登録日を範囲指定するようにした。
「カスタムダイアログを表示」を使って、住所を指定して入力できるようにした。
変数を設定[$text ; substitute ( 住所 ; " or " ; ¶ )]
変数を設定[$n ; 1]
loop
フィールド設定[住所 ; Trim ( GetValue ( $text ; $n ) )]
exit loop if ( $n > ValueCount ( $text ) )
検索条件を複製
end loop
検索実行「」
みたいな感じになるでしょうが、条件に and や括弧が含まれてしまうと、ものすごく面倒になります。(昔10階層までのものを1週間くらいかけて作り、今でも動いています)
Last edited by Shin (2014-02-14 17:03:54)
Offline
「カスタムダイアログを表示」を使って、登録日を範囲指定するようにした。
「カスタムダイアログを表示」を使って、住所を指定して入力できるようにした。
カスタムダイアログ
ってなんか良さそうですが、
ドロップダウンカレンダーも、値一覧も使えませんよね。
ユーザにもっと優しいインターフェイスを考えた方がいいと思いますよ。
Offline
shinさん ご丁寧な説明ありがとうございます。
最初は,このスクリプトの意味がわからず、関数本を読んで何となく理解できました。
このスクリプトを入力して、実行すると、砂時計になり30分待ってみましたが、エンドレスのようで、キャンセルしました。
スクリプトデバッガーを見てみてわかったのですが、住所入力のカスタムダイアログで例えば、 横浜市 or 厚木市 と入力した場合。
フィールド設定[住所;Trim(GetValue($text;$n))] の実行で、横浜市になるのですが、
レコード/検索条件複製 のところで、住所フィールドに、横浜市 が表示され
このあと、LOOP を繰り返しても、横浜市がエンドレスで続く形になってしまします。
基本的にLOOPで$textは、横浜市の次は、厚木市になるとおもうのですが、どうもそこがうまくいってないようです。
あと、$nは、いつも値は、1でいいですよね?
Exit Loop if [$n>ValueCount($text)] で、LOOPが終わらないんです。
色々と質問ばかりですみません。
Offline
$nを1ずつ増やすステップが抜けてるみたい。
travellerさん ありがとうございました。
$n+1 を フィールド設定と、変数設定に追加して見ましたらうまくいきました。
Offline
すみません、1行落ちていましたね。(検証したファイルでは、exit loop if の中で、let() の中で触っていました )
Offline
Pages: 1
[ Generated in 0.006 seconds, 7 queries executed - Memory usage: 544.56 KiB (Peak: 565.1 KiB) ]