初心者のFileMaker pro Q&A (旧掲示板)

みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。

1.ファイルメーカーで解らない事があればここで質問して下さい。 何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)

You are not logged in.

Announcement

新しい掲示板は、こちら:https://fm-aid.com/forum/t/filemaker


#1 2014-02-14 14:35:36

中川 雅允
Member

文字列の複数検索

まんだら ともうします。
初めての投稿です。
現在、FileMaker12を使って、勉強を始めている初心者です。
簡単なことかもしれませんが、たとえば、住所録で検索画面から、複数の市町村を入力して、抽出したい場合の
入力方法がわかりません。
たとえば、住所録の中からいちどで、横浜市、海老名市、厚木市、綾瀬市を含む住所を検索したいのですが。
検索画面の住所のところで、OR検索がかかればいいのですが。
その方法がわかりません、宜しくお願いしたます。

Offline

#2 2014-02-14 14:57:21

barikan
Guest

Re: 文字列の複数検索

検索モードで、新規検索条件とすればOR検索となります。

#3 2014-02-14 15:07:41

中川 雅允
Member

Re: 文字列の複数検索

早速の回答ありがとうございます。
>検索モードで、新規検索条件とすればOR検索となります。

たとえば、検索画面で住所のところに、
横浜市 & 厚木市
又は、
”横浜市” or "厚木市"
等と入力しても、この検索条件に一致するデーターはない。 とでます。

Offline

#4 2014-02-14 15:17:22

中川 雅允
Member

Re: 文字列の複数検索

追伸
>検索モードで、新規検索条件とすればOR検索となります。
いっている意味がわかりました。
たしかに、横浜市と入力してから、新規詮索条件をクリックして、再度、厚木市と入力すればできますね。

でも、私が知りたかったのは、同じ検索窓に複数の検索文字を入力したいとおもったので投稿しました。
横浜市 or 厚木市
のようにです。

Offline

#5 2014-02-14 15:35:09

チポ
Member

Re: 文字列の複数検索

横浜市 or 厚木市

このように入力して、or検索することもスクリプトで可能ですが、
面倒だし、決して入力しやすいとは思えませんよ。


例えば、
検索フィールドだけのリスト表示にして、
そこへ順に入力。

ではいかがでしょう。

最初から複数の検索条件を作っておいて、入力しないでも検索には影響しませんよ。

Offline

#6 2014-02-14 15:41:16

無帽
Guest

Re: 文字列の複数検索

アクセルを踏むとブレーキがかかる方法を知りたい、といってるような。

#7 2014-02-14 16:03:13

Traveller
Guest

Re: 文字列の複数検索

1フィールドに1行で入力したいみたいだから、やっぱスクリプトかな?

#8 2014-02-14 16:35:05

中川 雅允
Member

Re: 文字列の複数検索

回答ありがとうございます。
実は、やりたいことは、スクリプトを使って、住所録のかなで、登録日を範囲指定して、その中から、市町村を複数指定して、
送り状を作ろうかと思ったのです。

そこで、スクリプトを作ってみました。
全レコード表示
レイアウトの切り替え「元のレイアウト」  →これは、表形式表示にしてあります。
検索モードに切り替え「」
「カスタムダイアログを表示」を使って、登録日を範囲指定するようにした。
「カスタムダイアログを表示」を使って、住所を指定して入力できるようにした。
検索実行「」

このスクリプトを実行すると、住所入力画面で先ほどの質問のように、横浜市 or 厚木市 と入力すると。

結果は、この検索条件に一致するレコードなし。 となります。

もちろん、単独で、横浜市 とか入力すれば問題ないのですが。

複数の市町村を入れたい場合、なかなかうまく、スクリプトが作れないので、悩んでいます。

なんか、 関数を使って繰り返すのかな?ともおもったのですが、考えがまとまりませんでした。

以上いろいろとすみません。

Offline

#9 2014-02-14 17:01:53

Shin
Member

Re: 文字列の複数検索

登録日を範囲指定して、テキストの 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

#10 2014-02-14 17:42:07

チポ
Member

Re: 文字列の複数検索

「カスタムダイアログを表示」を使って、登録日を範囲指定するようにした。
「カスタムダイアログを表示」を使って、住所を指定して入力できるようにした。

カスタムダイアログ
ってなんか良さそうですが、
ドロップダウンカレンダーも、値一覧も使えませんよね。


ユーザにもっと優しいインターフェイスを考えた方がいいと思いますよ。

Offline

#11 2014-02-16 15:33:44

中川 雅允
Member

Re: 文字列の複数検索

shinさん ご丁寧な説明ありがとうございます。

最初は,このスクリプトの意味がわからず、関数本を読んで何となく理解できました。

このスクリプトを入力して、実行すると、砂時計になり30分待ってみましたが、エンドレスのようで、キャンセルしました。

スクリプトデバッガーを見てみてわかったのですが、住所入力のカスタムダイアログで例えば、 横浜市 or 厚木市  と入力した場合。

フィールド設定[住所;Trim(GetValue($text;$n))]  の実行で、横浜市になるのですが、

レコード/検索条件複製 のところで、住所フィールドに、横浜市 が表示され

このあと、LOOP を繰り返しても、横浜市がエンドレスで続く形になってしまします。

基本的にLOOPで$textは、横浜市の次は、厚木市になるとおもうのですが、どうもそこがうまくいってないようです。

あと、$nは、いつも値は、1でいいですよね?

Exit Loop if [$n>ValueCount($text)]  で、LOOPが終わらないんです。

色々と質問ばかりですみません。

Offline

#12 2014-02-16 16:16:22

Traveller
Guest

Re: 文字列の複数検索

$nを1ずつ増やすステップが抜けてるみたい。

#13 2014-02-16 16:37:13

中川 雅允
Member

Re: 文字列の複数検索

travellerさん ありがとうございました。

$n+1 を フィールド設定と、変数設定に追加して見ましたらうまくいきました。

Offline

#14 2014-02-16 22:35:01

Shin
Member

Re: 文字列の複数検索

すみません、1行落ちていましたね。(検証したファイルでは、exit loop if の中で、let() の中で触っていました )

Offline

Registered users online in this topic: 0, guests: 1
[Bot] ClaudeBot

Board footer

Powered by FluxBB
Modified by Visman

[ Generated in 0.006 seconds, 7 queries executed - Memory usage: 544.56 KiB (Peak: 565.1 KiB) ]