みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。
1.ファイルメーカーで解らない事があればここで質問して下さい。 何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)
You are not logged in.
Pages: 1
いつもお世話になっています。
FMPro13 Win7使用しています。
入力Tに「チャンネルF」「日付F」を作成し以下のようにレコードを作成しています
チャンネルF 日付F
1000 1/1
1001 1/2
1002 1/2
1000 1/3
1001 1/4
この時、ポータルを使用して
チャンネルF 日付F
1000 1/3
1001 1/4
1002 1/2
というようにチャンネルの重複をなくして一番新しい日付のみ表示させることはできますでしょうか?
回答宜しくお願いします
元フィールドにシリアル番号を振っていくようにします。
チャンネルとキーに自己リレーションを張り、シリアル値 = Max ( リレーション::シリアル値 ) をポータルフィルターに設定しておけばいいでしょうね。
Offline
元フィールドにシリアル番号を振っていくようにします。
チャンネルとキーに自己リレーションを張り、シリアル値 = Max ( リレーション::シリアル値 ) をポータルフィルターに設定しておけばいいでしょうね。
Shin様
回答ありがとうございます。
少し付け加えたいのですが、
入力Tに「チャンネルF」「日付F」「病棟F」を作成、「病棟F」と「チャンネルF」で自己リレーションしレイアウトTに「病棟F」でリレーションしています。
入力用T
病棟F チャンネルF 日付F
14-1 1000 1/1
14-1 1001 1/2
14-2 2000 1/2
14-1 1002 1/2
14-1 1000 1/3
14-2 2001 1/3
14-1 1001 1/4
というレコードがあります。
この時、レイアウト用Tの「病棟F」に【14-1】と入力すると以下のレコードのみがポータル内に表示されるようになっています。
14-1 1000 1/1
14-1 1001 1/2
14-1 1002 1/2
14-1 1000 1/3
14-1 1001 1/4
ここからチャンネルの重複をなくしたいと考えています。
元フィールドにシリアル番号は作りました。その後のリレーションをどう作成していいかがわかりません。
質問の内容が変わってしまい申し訳ありませんがご回答よろしくお願いします。
病棟とチャンネルでの自己リレーションに変更すればいいと思いますが。
Offline
自己解決しました。
Shin様
回答してくださりありがとうございました。
taka様
taka様とまったく同じ処理をやりたいのですが自己リレーションとシリアルの組み合わせでは2重の絞り込みができません。
どのようにして自己解決されたのかご教示ください。
よろしくお願いいたします。
hiro9876様
入力用T:チャンネルF 日付F 病棟F 最新判定F(計算 If(Max(入力用T2::日付)=入力用T::日付F ; "最新" ; "終了") )
表示用T:病棟F(グローバルフィールド)
リレーション: 入力用T::病棟F=表示用T:病棟F
自己リレーション: 入力用T::チャンネルF=入力用T2::チャンネルF and 入力用T::チャンネルF=入力用T2::チャンネルF
表示用Tに入力用Tのポータルを設置
ポータルフィルタを 入力用T::最新判定F="最新"
これでできると思いますがいかがでしょうか?
間違えた。。。
自己リレーションは
入力用T::チャンネルF=入力用T2::チャンネルF and 入力用T::病棟F=入力用T2::病棟F
です
Pages: 1
[ Generated in 0.021 seconds, 9 queries executed - Memory usage: 512.19 KiB (Peak: 516.73 KiB) ]