みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。
1.ファイルメーカーで解らない事があればここで質問して下さい。 何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)
You are not logged in.
Pages: 1
ポータル内のデータで番号昇順にソートした、番号フィールドがあるのですが、
これを同じ番号のフィールドを最初のフィールドだけ表示して、
その後の同じ番号のフィールドを条件付き書式で表示しないようにしたいのですが、
どのような式で可能となるのか、ご教授をお願いします。
ファイルメーカー12です。
関連テーブルで
各レコードで値がユニークになるフィールドを作り、
ポータル表示の降順になるように番号を振ります。
自己リレーションを
現在ポータルに表示しているリレーションの照合フィールド同士と、
番号フィールド同士をandで照合し、
ユニークフィールドの降順にソート指定します。
条件付き書式の条件を
ユニーク ≠ 自己リレーション::ユニーク
として、
文字色を背景色にします。
Offline
ポータルに表示している側のテーブル(明細?)に計算フィールド
GetNthRecord ( 明細::番号 ; Get ( レコード番号 ) ) = GetNthRecord (明細::番号 ; Get ( レコード番号 ) -1)
を作ってこの結果を使う?
表示だけでよいならリレーションやフィールドを増やさない方法もあります。
FileMaker 12 からの {{取得関数の中身}} がテキストオブジェクトに配置でき
条件付き書式内で Self すると値そのものが返ってくることを利用します。
テキストオブジェクトを配置して1行目に番号フィールドをマージで(例:<<TO名::番号フィールド>>
改行して2行目に {{レコード番号}} とします。
1行目だけが見えるような状態にインスペクタで高さを調整します。
条件付き書式を以下のように設定します。
非表示のやり方は文字色を背景と同じ色にするでもよし、
FileMaker Go のことを考えないならば 500pt 下付き で見えなくするでもよしです。
Let ( [
行番号 = GetAsNumber ( GetValue ( Self ; 2 ) )
] ;
TO名::数字フィールド = GetNthRecord ( TO名::番号フィールド ; 行番号 - 1 )
) // Let
テキストの2行目にはポータル行番号が入っているので GetValue ( Self ; 2 )で取得します。
GetNthRecord ( 数字フィールド ; 行番号 - 1 ) で 1個前の行番号の番号フィールドの値を取得し、
自身の行の数字フィールドと比較しています。
Last edited by Moz (2014-04-07 14:37:26)
Offline
計算フィールド(非保存)は
Get ( レコード番号 )
だけにしておくと、どのフィールドにも使えます。
子テーブル側に追加するのは非保存の計算フィールド
Get ( レコード番号 ) だけでいいという意味ですよね。
そうです。
Self = GetNthRecord ( Evaluate ( GetFieldName ( Self ) ) ; 子テーブル側::非保存の計算フィールド - 1 )
Pages: 1
[ Generated in 0.006 seconds, 9 queries executed - Memory usage: 555.75 KiB (Peak: 579.28 KiB) ]