みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。
1.ファイルメーカーで解らない事があればここで質問して下さい。 何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)
You are not logged in.
Pages: 1
お世話になります。
FMP 15 Advanced、Windows10
品番の文字列から文字列の条件に合致したものだけを検索したいのですが、条件式が複雑でわからないので教えてください。
■品番の例
■品番の構成
・ハイフンの前はアルファベット3〜4文字 + 数字1文字
・ハイフンの後ろは数字4文字
・ハイフンの後 + 数字4文字 の後ろはアルファベット9〜10文字
■検索条件
・ハイフンの後ろの数字4文字
→ 1111 or 222 or 3333 or 4444 (4文字の4種類)
→ 品番例では、1234 部分
・ハイフンの後ろ + 数字4文字 に続くアルファベットの 3・4番目の文字
→ AB or CD or EF (2文字ずつの3種類)
→ 品番例では、CD 部分
・ハイフンの後ろ + 数字4文字 に続くアルファベットの 5・6番目の文字
→ GH or IJ (2文字ずつの2種類)
→ 品番例では、EF 部分
4種類 × 3種類 × 2種類 = 24種類もあって、どうしたらよいのか・・・。
ご指導よろしくお願い致します。
Last edited by 柿ぴー (2017-09-18 00:41:45)
Offline
品番から3つの条件に対応した箇所の文字列をそれぞれ3つの計算フィールドに切り出して、
その3つのフィールドでAND検索すれば良いでしょう。
【3計算フィールド追加】
・「第一条件」計算フィールドの式: Middle(GetValue(Substitute(品番;["-";¶]); 2); 1; 4)
・「第二条件」計算フィールドの式: Middle(GetValue(Substitute(品番;["-";¶]); 2); 7; 2)
・「第三条件」計算フィールドの式: Middle(GetValue(Substitute(品番;["-";¶]); 2); 9; 2)
【検索】
・検索モード
・検索キーワード指定:「第一条件」="1234" and 「第二条件」="CD" and 「第三条件」="EF"
・検索実行
Offline
#2回答は#1説明を勘違いしてるかも?
・もしかして、マルチキーOR照合の3連結複合条件ですか?
・それなら、全件ヒットするデカルト積[X]自己リレーションのポータルに、
計算式のポータルフィルターを掛け、ポータル表示するのが簡便かな。
・また、もし実体レコードセットが必要でも「関連レコードへ移動」で簡単に抽出できます。
【ポータルフィルターの計算式】
Let([
#kwd1=List("1111";"2222";"3333";"4444");
#kwd2=List("AB";"CD";"EF");
#kwd3=List("GH";"IJ");
#stg=GetValue(Substitute(ポータル::品番;["-";¶]); 2);
#stg1= Middle(#stg; 1; 4);
#stg2= Middle(#stg; 7; 2);
#stg3= Middle(#stg; 9; 2)
];
FilterValues(#stg1;#kwd1)≠""
and
FilterValues(#stg2;#kwd2)≠""
and
FilterValues(#stg3;#kwd3)≠""
)
Offline
検索値:
ABC5-####AB@@@@GHI
で検索で大丈夫では...?
# 任意の1つの数字
@ 任意の1文字
Offline
Hiro様、qb_dp様ありがとうございます。
お礼が遅くなりまして申し訳ありません。
拙い説明のためわかりにくくてすみませんでした。
お陰様で#3のHiro様の教えていただいた方法でできました!
> ・もしかして、マルチキーOR照合の3連結複合条件ですか?
3連結複合条件というのですね。
頭に入れておきます。
ポータルフィルターの計算式もとても勉強になりました。
今後、教えていただいたことを活かしていけるように頑張ります。
qb_dp様もありがとうございます。
今回は3連結複合条件でしたので、Hiro様の方法で進めさせていただきましたが、検索条件のところで「#」や「@」を使ったことがなかったので勉強になりました。
お二方、本当にありがとうございました!
Offline
Pages: 1
[ Generated in 0.018 seconds, 7 queries executed - Memory usage: 513.2 KiB (Peak: 517.74 KiB) ]