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

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

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

You are not logged in.

Announcement

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


#1 2015-04-23 12:11:39

ゆうしん
Member

検索 部分検索について教えて下さい。

FM11 Win7

部分一致での検索を試みているのですがどうしてもうまくいきません。
例)フィールドに「098765」の数字。
   スクリプトボタン操作にて演算子を使わず
   検索モードにし、「87」だけで検索する。上記数字が検索ができるようにしたいのですが

初心者にて試行錯誤しているのですが
いいトピックまたは方法を教えていただけないでしょうか。

説明がいまいちですが宜しくお願いします。

Offline

#2 2015-04-23 14:30:49

Moz
Member

Re: 検索 部分検索について教えて下さい。

「098765」は数字ではなくテキストです。
あまり重要ではないかも知れませんが全角なのか半角なのかどちらでしょう?

演算子を使う場合は「*87*」で検索できますから
検索モードにして「*87*」で検索される様にすればいいと思いますが、
演算子を使わないでというのはスクリプト内でも演算子を使わずにということですか?
検索したい文字列というのは「87」に限定されるのか他の文字列にも変わるのですか?

Offline

#3 2015-04-23 16:53:27

ゆうしん
Member

Re: 検索 部分検索について教えて下さい。

Moz様、お返事ありがとうございます。

「098765」は全角 テキストフィルードです。
検索モードから上記フィールドに演算子を使用せず、部分(「6」「98」「876」)とかの数字のみで
検索したいだけなのですが・・・

すいません、説明がへたで<(_ _)>

スクリプトボタン設定が出来ればいいなと思っています。

Offline

#4 2015-04-23 17:09:10

Moz
Member

Re: 検索 部分検索について教えて下さい。

演算子を使わずに部分一致は難しいのではと思います。
(他のエキスパートの方如何でしょう?)

検索実行する際に、メニューから検索モードへ切り替えさせるのでなく、
ボタンで検索モードに切り替えさせて検索実行で演算子が補完される様なスクリプトを作成してボタンにすればよいかと。

Offline

#5 2015-04-23 17:33:40

ゆうしん
Member

Re: 検索 部分検索について教えて下さい。

Moz様、ありがとうございます。

違う方法で頑張ってみます。

Offline

#6 2015-04-23 17:39:23

旅人
Member

Re: 検索 部分検索について教えて下さい。

条件でPattrncountする計算フィールドを作って、そこで検索するとか?

Offline

#7 2015-04-23 17:47:31

ゆうしん
Member

Re: 検索 部分検索について教えて下さい。

旅人様、ご返答ありがとうございます。

私、初心者なものですから、よろしければよろしければ

条件でPattrncountする計算フィールドを作って、そこで検索するとか?

この上記方法をおしえて貰えませんか。
あつかましいのは重々感じています。よろしくお願いします

Offline

#8 2015-04-23 18:06:01

チポ
Member

Re: 検索 部分検索について教えて下さい。

レコード数は多いのでしょうか。

それほど大量でなければ、
旅人さんの計算式をポータルフィルタの条件にすることも可能ですね。


また、
部分一致のリレーションを使う方法も有りますね。

検索値入力フィールドにトリガを掛ければ、
入力するだけでレコードが絞り込まれます。


「部分一致 リレーション」
でここを検索すると過去スレがでてくると思いますよ。

Offline

#9 2015-04-23 18:16:20

ゆうしん
Member

Re: 検索 部分検索について教えて下さい。

チポ様、いつもありがとうございます。

過去にもいろいろ助けてもらってます。
検索値入力フィールドにトリガとありますが、
トリガの内容をお教えねがいませんか。

よろしくお願いします。

Offline

#10 2015-04-23 18:32:50

旅人
Member

Re: 検索 部分検索について教えて下さい。

一応、検索モードでは演算子使っていない例 \バキ
こういう意味ではないかも・・・
http://pupld.net/28/150423/2p5j06qqdi/index.cgi
部分一致検索

Offline

#11 2015-04-23 18:36:36

honda
Guest

Re: 検索 部分検索について教えて下さい。

実際のシステムにそのまま使えるかはその他の業務次第ですが、
スクリプトトリガを利用して検索モードで検索条件を加工することで、
あたかもフックしているかのような動作は可能です。

数字ではなくランダムな英数字を使ったサンプルを以下にアップしています。
http://fast-uploader.com/file/6985337018199/
検索モードに切り替えて適当な英数字で検索すると、
フックの有無で返ってくる結果が変わります。

ただし、少し触れば色々と粗が見える程度のサンプルですし、
その粗隠しは、実際のシステムごとで必要性も方法も変わってきます。

-

以下のようなスクリプトを、検索対象フィールドのスクリプトトリガ設定にて、
OnObjectSaveイベントに割り当て、検索モードでのみ有効としています。

If[Get ( ウインドウモード ) = 1 and not IsEmpty(data::target)]
    フィールド設定[data::target; "*" & data::target & "*"]
End If

こうすることで、検索モードを検索実行によって抜けるタイミングで、
検索条件に対するOnObjectSaveが発火し、
検索条件を * で挟んだ上で検索が実行されます。

検索モードに切り替え → 検索条件入力 → Enter という一連の操作に限定できるかぎり、
通常の検索となんら変わらないまま、演算子で制御できます。

しかし、例えばフィールド外のクリックでもイベントは起きてしまいますし、
暗黙の変換が入ることによる事故の可能性もあります。

#12 2015-04-23 21:10:11

Moz
Member

Re: 検索 部分検索について教えて下さい。

皆さんのに乗っかっただけですが、
スクリプトトリガは発火するウインドウモードを指定できるので、
部分一致を行いたいフィールドのトリガを[検索]のみオンで下記スクリプトを指定
私は[OnObjectExit]に乗せました。
検索モード以外ではトリガは発火しません。

変数を設定 [$フィールド名; 値:GetFieldName ( Evaluate (Get ( アクティブフィールド名 ) ) )]
変数を設定 [$フィールド内容; 値:Get ( アクティブフィールド内容 )]
If [not IsEmpty ( $フィールド内容 )]
	フィールドを名前で設定 [$フィールド名; "*" & $フィールド内容 & "*"]
End If

サンプル
http://xfs.jp/sAXHe

D.R.Y. に書いているのでコピペだけで使えるかと。

Last edited by Moz (2015-04-23 21:17:09)

Offline

#13 2015-04-24 08:54:04

ゆうしん
Member

Re: 検索 部分検索について教えて下さい。

honda様、Moz様、すごく感謝感謝感謝しかありません。
思った検索が出来ました。すげーーーーーー感動です。
これからも若輩ものですがご指導よろしくお願いします。

助かりました。<m(__)m>

Offline

#14 2015-04-24 09:50:54

honda
Guest

Re: 検索 部分検索について教えて下さい。

解決してますが、ひとつ補足。

> スクリプトトリガは発火するウインドウモードを指定できるので、
> 部分一致を行いたいフィールドのトリガを[検索]のみオンで下記スクリプトを指定

Mozさんのこの部分ですが、私のサンプルでも、
トリガの動作対象は検索モードのみにしています。
スクリプト自体に Get ( ウインドウモード ) = 1 を入れているのは、
万が一誤ってブラウザモードで動作させてしまった際に、
業務データを汚染してしまわないためのものです。
FileMakerはデフォルトでスクリプト実行のショートカットが割り当てられたり、
何かと誤操作を誘発しやすい構造をしているので。

この点以外は、Mozさんのものの方が汎用的で流用しやすいと思います。

#15 2015-04-24 18:23:42

ゆうしん
Member

Re: 検索 部分検索について教えて下さい。

honda様、補足ありがとうございます。

わたくしの勉強不足な部分を含め、ご丁寧な指導ほんとにありがとうございます。
両方のサンプルにより思ったとおりの検索も出来すごく感動しております。

一時はあきらめかけたのですが、視野が広がり今はすごく満足していた次第です。
ほんとに心から感謝したいと思います。

Offline

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

Board footer

Powered by FluxBB
Modified by Visman

[ Generated in 0.005 seconds, 7 queries executed - Memory usage: 549.48 KiB (Peak: 570.38 KiB) ]