はじめに
ビューにフィルターが適用されているか否かを判定する計算フィールドの作成方法をご紹介します。
今回ご紹介するのは以下の2パターンです。
A.'すべて'が選択されているか
B.単一の値で絞り込まれているか
注意点
・今回ご紹介する方法では、複数のフィルターを設定している場合に特定のフィルターのみについて適用されているか否かを判定することはできません。
・フィルターとして使用するフィールドにNULLが含まれると正しい結果とならないため、その場合はIFNULL関数で空白('')に置換してください。
・フィルターとして使用するフィールドの値が1種類だけの場合は判定できません。
使用するデータソース
目的
画像のビューでフィルターを操作した場合に、パターンAとBを判定して真偽を返す計算フィールドを作成します。
パターンA('すべて'が選択されているか)
「フィルター判定(すべて)」フィールドを作成
TOTAL(COUNTD([名称])) = MAX({FIXED: COUNTD([名称])})
左:フィルター適用後の名称の種類をカウント
右:フィルター適用前の名称の種類をカウント
等号が成立する場合はフィルター適用前後で種類数が変わらないため絞り込みはされていない、つまり'すべて'が選択されていると判定します。
'すべて'を選択
'すべて'以外を選択
パターンB(単一の値で絞り込まれているか)
「フィルター判定(単一)」フィールドを作成
TOTAL(MAX([名称]))=TOTAL(MIN([名称]))
ビューの名称が1種類だけの場合MAXとMINが一致するため、単一の値が選択されていると判定します。
単一の値を選択
複数の値を選択
※表計算の方向については、すべてのフィールドのチェックボックスにチェックが入っている状態にしてください。
OK
NG
終わりに
このフィールドを使用することで、フィルターで絞り込んだ場合にビューの色を変更するといったことが可能となります。
ご活用いただければ幸いです。