みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。
1.ファイルメーカーで解らない事があればここで質問して下さい。 何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)
You are not logged in.
Pages: 1
いつもお世話になっています。
FM13 Win7使用です。
インターフェイステーブル
業務分類F
詳細GF
区分GF
業務テーブル
業務分類F
詳細F
区分F
リレーション
インターフェイステーブル::業務分類F = 業務テーブル::業務分類F
インターフェイステーブルに業務テーブルのポータルを設置
区分Fは「予定」「緊急」の2種類
詳細Fは「a」「b」「c」「d」の4種類の組み合わせで15種類 組み合わせは1つのときもあれば4つのときもあります(例 a、a+b、a+c+d、c+d・・・)
このときにポータル内に表示させるレコードを 詳細GF 区分GF を使って制限したいと思っています。
制限の方法はandで空欄の場合は制限なし(全レコードを表示)にしたいと思っています。
詳細Fは選択した内容が「含まれる」ものをすべて表示したいです
(例 詳細GF=a a、a+b、a+cなど「a」が入るものをすべて表示
詳細GF=a,b a+b、a+b+c、a+b+dなど「a+b」が入るものをすべて表示)
できますでしょうか?
説明がへたくそで申し訳ありませんが宜しくお願いします。
> 例 a、a+b、a+c+d、c+d・・・
この例のように、
各値の区切りは「+」なんですか?
また、各値の並びは一定なのでしょうか。
例えば、b+a は無いとしていいのでしょうか?
Offline
チポ様
ありがとうございます。
各値の区切りは「+」です。
並び順も「a」「b」「c」「d」の順番で並んでいます
a
b
c
d
a+b
a+c
a+d
b+c
・
・
・
a+b+c+d
のようになっています。
空欄は
IsEmpty ( 詳細GF ) or IsEmpty ( 区分GF )
でいいですね。
詳細の条件は
詳細の + を ¶ に変えて FilterValues で値の有無を判定できます。
式は
Let ( [ sf = Substitute ( 詳細F ; "+" ; ¶ ) ;
sgf = Substitute ( 詳細GF ; "+" ; ¶ ) ;
fv = FilterValues ( sf ; sgf ) ] ;
fv = sgf & ¶ // FilterValues の返り値には最後に ¶ が付いてきます
)
区分の条件は = で結びます。
で、条件式は
( 空欄の条件 ) or ( 詳細の条件 and 区分の条件 )
とすればいいでしょう。
Offline
チポ様ありがとうございます。
そもそもの条件式を
(IsEmpty(詳細GF) or 詳細の条件) and (IsEmpty(区分GF) or 区分の条件)
と考えていたのですがこれは
( 空欄の条件 ) or ( 詳細の条件 and 区分の条件 )
と同じと捉えていいでしょうか?
詳細の条件は
詳細の + を ¶ に変えて FilterValues で値の有無を判定できます。
式は
Let ( [ sf = Substitute ( 詳細F ; "+" ; ¶ ) ;
sgf = Substitute ( 詳細GF ; "+" ; ¶ ) ;
fv = FilterValues ( sf ; sgf ) ] ;
fv = sgf & ¶ // FilterValues の返り値には最後に ¶ が付いてきます
)区分の条件は = で結びます。
先に情報を出していなくて大変申し訳ないのですが、詳細GFはチェックボックスで考えています。
そうすると
sgf = Substitute ( 詳細GF ; "+" ; ¶ ) は sgf = 詳細GF としてしまっていいのでしょうか?
宜しくお願い致します
条件式の and or は私のではダメでした。
takaさんの
> (IsEmpty(詳細GF) or 詳細の条件) and (IsEmpty(区分GF) or 区分の条件)
でいいようですね。
チェックボックスは、
チェックを入れた順に値が改行で並びます。
ですから、
> sgf = Substitute ( 詳細GF ; "+" ; ¶ ) は sgf = 詳細GF
これを良しとしても、
> fv = sgf & ¶
これが確実ではなくなりますね。
ValueCount
で両者の値数の一致を見たらいかがでしょう。
Offline
チポ様
ありがとうございます。
チェックボックスは、
チェックを入れた順に値が改行で並びます。ですから、
> sgf = Substitute ( 詳細GF ; "+" ; ¶ ) は sgf = 詳細GF
これを良しとしても、> fv = sgf & ¶
これが確実ではなくなりますね。ValueCount
で両者の値数の一致を見たらいかがでしょう。
ValueCountを使うとするならばどのような式になるのでしょうか?
Let ( [ sf = Substitute ( 詳細F ; "+" ; ¶ ) ;
sgf = Substitute ( 詳細GF ; "+" ; ¶ ) ;
fv = FilterValues ( sf ; sgf ) ] ;
ValueCount(詳細F) ≦ ValueCount(fv)
)
みたいな形ですか?
もうしわけありませんが良くわかっていないのでご教授願えると幸いです。
Let ( [ sf = Substitute ( 詳細F ; "+" ; ¶ ) ;
sgf = 詳細GF ;
fv = FilterValues ( sf ; sgf ) ] ;
ValueCount ( fv ) = ValueCount ( sgf )
)
でいいでしょう。
Offline
チポ様
無事に作成できました。
ありがとうございました。
Pages: 1
[ Generated in 0.008 seconds, 11 queries executed - Memory usage: 521.59 KiB (Peak: 526.13 KiB) ]