みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。
1.ファイルメーカーで解らない事があればここで質問して下さい。 何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)
You are not logged in.
Pages: 1
いつもお世話になっています。
FM13 Win7使用です。
マスタT:IDF 分類F 名称F
表示用T:リレーション用GF
マスタT::IDF×表示用T::リレーション用GF でリレーションを組んでいます。
表示用Tを作成したのはフォーム画面にリスト形式のようにレコードを表示させたかったからです。
表示用Tのレイアウトにポータルを設置しマスタTの内容を表示させています。
通常状態ですとフィルタをかけていないのですべてのレコードがポータル内に表示されます。
この時、例えば
①分類="A" のレコードのみを表示させる、
②分類="A" and 名称="123" のレコードのみを表示させる
といったポータル内のレコードの絞り込みのようなことをポータルフィルターやリレーションを使って行うことはできるのでしょうか?
基本的にはすべてのレコードをポータル表示させておきたいです。
宜しくお願いします。
リレーション用GF にその条件を
分類="A"
とか
分類="A" and 名称="123"
とか入れれば、フィルタはEvaluate(リレーション用GF)
ただしフィールド名にテーブル名が必要かも。
表示用T::分類="A"
calcer様
お早い回答ありがとうございます。
Evaluate関数使用したことが無いので頭にありませんでした。
確認させて頂きたいのですが、
リレーション用GF にその条件を
分類="A"
とか
分類="A" and 名称="123"
とか入れれば、
とありますが、リレーションはIDFで行っています。
この場合、リレーションの変更は必要なのでしょうか?(分類や名称をリレーションしなくていいのでしょうか?)
フィルタはEvaluate(リレーション用GF)
ただしフィールド名にテーブル名が必要かも。
表示用T::分類="A"
フィルタというのはポータルフィルタでよろしいのでしょうか?
お手数おかけして申し訳ないですが宜しくお願い致します。
Xリレーションなのでフィールド値は関係ありません。
ポータルフィルタの計算式でやるので、リレーションの変更は不要です。
空の場合はフィルタしたくないので、
Case ( IsEmpty(リレーション用GF) ; 1 ; Evaluate(リレーション用GF) )
の方がいいかな?
条件式をユーザに入れさせるのは親切とは言い難いので、自分が使うんでなければフィールドごとにリレーションする方法を考えた方がいいでしょう。
けど、逆に設定はフィールド数とかandだけでいいのか条件によって複雑になります。フィールド名が書いてないので設定が簡単で汎用的な方を書いた。
表示用Tに、分類を作り、
ポータルフィルタの条件式を
IsEmpty ( 表示用T::分類 ) or 表示用T::分類 = マスタ::分類
とすると、
表示用の分類が空白なら全ての分類、
入力が有ればその値のレコードを表示します。
名称も同じようにして、それぞれを
andでつないだ条件式にすればいいですね。
これの方が分りやすいかも。
Offline
calcer様 チポ様
ありがとうございます。
チポ様のやり方が簡潔で分かりやすかったのでそちらの方法でやらせて頂きました。
ありがとうございました。
Pages: 1
[ Generated in 0.011 seconds, 7 queries executed - Memory usage: 508.34 KiB (Peak: 514.97 KiB) ]