フィルター
フィルターを使用するとデータを絞り込めます。タスク、レポート、オブジェクトおよびユーザーにフィルターを追加できます。静的の場合も動的の場合もあります。
種類
フィルターを使用する方法をいくつか示します:
- タスク: 公開タスクを現在の四半期からの共有データだけにフィルターします。
- レポート: 上位 5 人の売り手に関連した情報を表示するようにレポートをフィルターします。
- オブジェクト: 食品の売上を詳しく示す円グラフを、果物の売上のみを表示するようにフィルターします。
- ユーザー: ユーザー グループをフィルターして、地理的な位置に関連するデータのみが表示されるようにします。
静的フィルターは、QlikView または Qlik Sense のフィールド値のリストから選択します。フィルターは手動で編集して値を変更する必要があります。
動的フィルターは、QlikView または Qlik Sense の式と検索を使用します。式では QlikView または Qlik Sense ルールおよび構文を使用し、1 つの値を返します。式は評価され、結果をもとにデータが絞られます。検索では、QlikView または Qlik Sense で利用できるさまざまな種類の検索項目を活用します。新しい値を取得するために動的フィルターを変更する必要はありません。
フィルター評価
フィルターは各レポート生成の前に確認されます。タスク、ユーザー、レポートのフィルターはドキュメントのデータと照合されます。フィルターが無効である場合、フィルターを [タスクの実行] ページに適用できないことを告げるエラーメッセージが表示されます。これはレポート条件の計算の前、およびレポート生成の前に起こります。初期状態でフィールドの選択項目がない場合は、順番にフィルターを適用して Qlik NPrinting を解決します。
フィルターが 1 つの場合は、以下のように評価します。
- [値の上書き] を選択してすべてのフィールドの選択項目をクリアします。
- 評価値を使用して各フィールドの式を計算します。
- 値と検索に基づいて選択項目をすべてのフィールドに適用します。
フィルターが複数の場合は、以下の順序で評価されます。
- すべてのタスク フィルターは並べ替え順に従って一度に適用されます。
- すべてのユーザー フィルターは並べ替え順に従って一度に適用されます。
- すべてのレポート フィルターは並べ替え順に従って一度に適用されます。
- すべてのオブジェクト フィルターは並べ替え順に従って一度に適用されます。
ルール
Qlik NPrinting でのフィルター ルールは、限られたオプションで予想可能な動作を提供します。
- 静的な値を管理するために、最初に評価値を計算します。
- フィルター処理した場合に過去の選択が上書きされるとは限りません。厳密な序列はありません。
- 各フィルターは、タスク -> ユーザー -> レポート -> オブジェクトの順に分析されます。
- 異なるレベルのフィルター フィールドの値が交差します。
- 交差によって空の結果が返された場合、フィルター チェーンは無効になります。
- アプリ内でタスク、レポート、オブジェクト、またはユーザーに適用できるフィルター数に制限はありません。ただしオブジェクト フィルターは、単一のオブジェクトにつき 1 つしか適用できません。
- フィルター結果の適用が不可能な選択の場合、次の特定のエラーが返されます。「現在のドキュメント データにフィルター {0} を適用することはできません。評価で要求されるフィールドは {1} です。」
これらの動作を変更できるフラグが 1 つあります。[値の上書き] です。このフラグはフィルターの特定のフィールドに関連しており、チェーンの特定のレベルにある特定のフィールドの選択項目をクリアできます。また、代わりに他の値を追加することもできます。
フィルター結果の例
以下の例は、同じフィールドの異なる値の特定のエンティティにフィルターを割り当て、[値の上書き] を選択または選択解除した状態を示します。
例 1
- タスク フィルター: Country = Italy、Spain
- ユーザー フィルター: -
- レポート フィルター: Country = Italy、Germany
- フィルター適用後の結果: Country = Italy
例 2
- タスク フィルター: Country = Italy、Spain
- ユーザー フィルター:値を上書き = Country をチェックする
- レポート フィルター: Country = Italy、Germany
- フィルター適用後の結果: Country = Italy、Germany
例 3
- タスク フィルター: Country = Italy、Spain
- ユーザー フィルター: Country = Italy、Germany
- レポートフィルター:値を上書き = Country をチェックする
- ユーザー フィルター: Country = すべての国
例 4
- タスク フィルター: Country = Italy
- ユーザー フィルター: -
- レポート フィルター: Country = Germany
- 結果フィルター: 空
例 5
- タスク フィルター: Country = Italy
- ユーザー フィルター:値を上書き= Country で true
- レポート フィルター: Country = Germany
- 結果フィルター: Germany
値の選択
[値] ドロップダウン メニューには、以下の選択肢があります。
- [値は]: 文字列を選択する場合はこのオプションを使用します。たとえば、Country フィールドで USA を選択します。
- [数値 は]: QlikView と Qlik Sense では、すべてのフィールド値は潜在的に dual 値です。フィールド値には数値とテキスト値の両方を使用できます。例として、日付では数値が 40908、テキスト表記が「2011-12-31」となります。数値を選択する場合はこのオプションを選択します。
- [値の評価]: 評価が必要な数式を挿入する場合はこのオプションを選択します。1 つの値が返されます。
- [詳細検索]: QlikView または Qlik Sense の詳細検索を使用して値を選択する場合は、このオプションを使用します。
右側に [完全キャッシュ] 通知が表示された場合、Qlik NPrinting キャッシュにはフィールドのすべての値が含まれることを示します。つまり、[値] ダイアログ ボックスに入力し始めると、Qlik NPrinting は入力した文字列と一致するすべての値を検索します。
個別の値が大量にある場合、Qlik NPrinting キャッシュは QlikView フィールドの最初の 1,000 個の値のみを保存します。この場合、[完全キャッシュ] の緑のラベルは表示されません。代わりに、値のフィールドの右側に [検索] ボタンが表示されます。検索対象の文字列あるいはその一部を入力します。[検索] をクリックし、Qlik NPrinting に対し、接続されている QlikView ドキュメント内の文字列の検索を強制します。個別の値が大量にある場合は、フィルターする値全体を手動で挿入する必要があります。
静的フィルターの作成
以下を実行します。
- [アプリ] を選択してから [フィルター] を選択します。
- [フィルターの作成] をクリックします。
- フィルターの [名前] を入力します。
- [アプリ] ドロップダウン リストからアプリを選択します。
- [作成] をクリックします。
- フィルター メニューで [フィールド] をクリックします。
- [フィールドの追加] をクリックします。
- [接続] から該当の接続を選択します。
-
[名前] の下でフィールド名を選択します。
-
[値の上書き] を選択できます。このチェック ボックスを選択すると、同じフィールドの他のフィルターによって適用されるすべての選択項目が削除され、現在のフィルターで設定されたフィールドの値に置き換えられます。[値の上書き] が選択されていない場合、選択したフィールドに適用された異なるフィルターのフィールド値の積集合によって、新しいフィルターが作成されます。
情報メモそのフィールドに対して空の値を使用したフィルターを作成し、[値の上書き] チェック ボックスを選択することで、フィールド上のすべての選択項目をクリアできます。
フィールドに値を追加する
以下を実行します。
- ドロップダウン リストから値の種類を選択します。
- 値は
- 数値は
- 値の評価
- 詳細検索
- 値の種類に応じて、リストからの選択、文字列の入力、または式の入力を行うことができます。参照先: 値の選択
-
二番目の値を追加したい場合は、[値の追加] をクリックします。
新しい空の行が表示されます。
- 2 番目の値を追加します。
- [作成] をクリックします。
[除外を選択] の値によるフィルターの作成
フィルターの作成時に、[除外を選択] チェック ボックスを使用して特定の値を除外することができます。例えば、特定の年または地理的地域からデータを除外したい場合があります。これは Qlik Sense および QlikView での [除外を選択] 操作に似ています。
以下を実行します。
- [アプリ] を選択してから [フィルター] を選択します。
- [フィルターの作成] をクリックします。
- フィルターの [名前] を入力します。
- [アプリ] ドロップダウン リストからアプリを選択します。
- [作成] をクリックします。フィルター メニューで [フィールド] をクリックします。
- [フィールドの追加] をクリックします。[接続] から該当の接続を選択します。
- [名前] の下でフィールド名を選択します。
- 値の種類を選択します。
-
除外したい値を選択します。
例えば、フィールドが [Country] の場合に、[Sweden] および [Italy] を除外できます。
- [除外を選択] チェック ボックスをクリックします。
- [作成] をクリックします。
評価値を使用した動的フィルターを作成する
QlikView と Qlik Sense の式を用いてフィルターに使用する値を計算することができます。各数式は、1 つの値を返し、QlikView または Qlik Sense の構文を使用する必要があります。たとえば、去年の値を計算する式を使用して、フィルターの [年] フィールドの値と比較することができます。
以下を実行します。
- 新しいフィルターを作成します。
-
[値] タブをクリックし、ドロップダウンから [値の評価] を選択します。
このオプションを使用すると、数式が QlikView または Qlik Sense に送信されます。これにより結果を評価して返し、フィルターで使用します。
- 値ボックスに数式を入力します。
たとえば、去年の値を取得するには、「=Year(now())-1」と入力します。
- 別の数式を追加するには [値の追加] をクリックします。同じフィールドに複数の値を追加すると、論理「OR」結合が作成されます。フィルターは 1 つまたは両方の値と一致するデータを保持します。
- [作成] をクリックします。
詳細検索を使用して動的フィルターを作成する
QlikView および Qlik Sense の詳細検索を使用して、フィルターで使用する値のセットを選択できます。
いくつかの種類の詳細検索に対応しています。
- テキスト: テキストと完全に一致するすべての値が選択されます。
- ワイルドカード: テキスト検索では、*、?、および ^ をワイルドカードとして使用できます。
- *: 0 またはそれ以上の未定義文字のプレースホルダー。
- ?: 1 つの未定義文字のプレースホルダー。
- ^: 次の文字が単語の始まりになるように指定するプレースホルダー。
- 数値: 検索が < または > で始まる場合は、数値検索として評価されます
- 式: 検索が = で始まる場合は、式検索として評価されます。式の結果はブール値として解釈されます:
- 0=false
- Any other value=true
[値の上書き] が使用されていない場合、詳細検索の結果は、前のフィルターのフィールドで選択された値と部分的に重なります。式検索から生成される値セットは、評価値の計算方法と同様に、現在の選択条件によって異なります。アプリやドキュメントで現在の選択条件を無視したい場合は、次のように設定します。
- Qlik Sense:set 分析と set 数式
- QlikView:set 分析と set 数式
対応していない動的検索のタイプがあります。以下は予期しない結果を返す可能性があります:
- 標準: 挿入されたテキストが項目値の単語の先頭と一致する検索。ワイルドカード検索でより正確な結果が得られます: *^検索するテキスト*。
- あいまい: ~ で始まる検索。QlikView および Qlik Sense では、あいまい検索は画面に表示されているリストの最初の値を選択します。Qlik NPrinting では、リスト内のすべての値を選択します。
- 複合: 検索テキストを ( ) で囲み、|、&、^ などの演算子を使用して他の検索タイプを混合させる検索。
以下を実行します。
- 新しいフィルターを作成します。
-
[値] で、ドロップダウン リストから [詳細検索] を選択します。
このオプションは、QlikView および Qlik Sense で選択されたフィールドで検索を実行し、フィルターで使用するように返します。
-
値ボックスに対応している検索のうち、1 つを入力します。
たとえば、今年を除いて各年のデータを取得するには、=Year<Year(now()) と入力します。
- 別の詳細検索を追加するには [値の追加] をクリックします。同じフィールドに複数の値を追加すると、論理「OR」結合が作成されます。フィルターは 1 つまたは両方の値と一致するデータを保持します。
- [作成] をクリックします。
変数に基づくフィルターの作成
変数をフィルターに使用することができ、変数値をレポート生成時に直接設定することができます。これによって、変数が QlikView あるいは Qlik Senseで持っている元の値が一時的に書き換えられます。
変数に基づくフィルターは、動的フィルター、静的フィルターのどちらにも設定できます。このフィルターは、レポート、タスク、ユーザーあるいはオブジェクトに追加することが可能です。
例: 同じチャート オブジェクトを持ちながら、変数値によって異なる結果を示す 2 つのレポートを作成することができます。あるいは、異なる変数に基づくフィルターを持ち、公開タスクが 2 つあるレポートを 1 つ作成することができます。
以下を実行します。
- 新しいフィルターを作成します。
- [値] タブをクリックし、[変数の作成] をクリックします。
- ドロップダウン リストから接続先を選択します。[名前] から軸を選択します。
-
[値] で、既存の軸を入力します。
適用される前に変数を評価する場合は、[評価] のチェック ボックスを選択します。
- [作成] をクリックします。
レポートへのフィルターの追加
フィルターをレポート、タスク、オブジェクト、またはユーザーに追加する前に、フィルターを作成する必要があります。別のエンティティ内で新しいフィルターを作成することはできません。
以下を実行します。
- レポートを新規作成するか、既存のレポートを開きます。
- メイン メニューで [フィルター] をクリックします。
- 目的のフィルターを [利用可能なアイテム] から選択します。
- [ ] をクリックし、フィルターを [選択されたアイテム] 列に移します。
- [フィルターの追加] をクリックします。
オブジェクトへのフィルターの適用
特定のテーブルまたは画像をフィルターする場合、オブジェクト フィルターが便利です。たとえば、フィルターのないレポートがあり、昨年の売上のみを表示するテーブルを追加する場合は、オブジェクト フィルターを適用するとよいでしょう。
オブジェクトは単一のフィルターのみ持てます。単独のオブジェクトに複雑なフィルターを加える必要がある場合、レポートのテンプレートを編集する前に固有のフィルターを作成しなければなりません。
以下を実行します。
- [レポート] 画面で該当のレポートをクリックします。
- [テンプレートの編集] ボタンをクリックして Qlik NPrinting Designer テンプレート エディターを開きます。
- 左側のパネルでフィルターするオブジェクトのタイプを右クリックし、[Add objects] (オブジェクトの追加) を選択します。
テーブルおよび画像をフィルターできます。
- 新しいウィンドウが開きます。フィルターするオブジェクトを選択し、[OK] をクリックします。
- 新しいオブジェクトをドラッグして左パネルからレポート テンプレートに移します。
- [プロパティ] パネルで、[フィルター] に移動し、¥ をクリックします。
- 新しいウィンドウが開きます。使用するフィルターを選択し、[OK] をクリックします。 情報メモ誤って違うフィルターを選んだ場合には、[¥] アイコンの横にある消しゴムのアイコンをクリックすればオブジェクトからすべてのフィルターを削除できます。
- [プレビュー] をクリックします。
レポート オブジェクトには、フィルターに関連した情報のみが表示されます。
ユーザーに関連付けられたオブジェクト フィルターのインポート
性能上の理由から、ユーザーに関連付けられたオブジェクト フィルターは Qlik NPrinting Designer には自動的に含まれていません。何千ものユーザーに関連付けられたフィルターのすべてをインポートするには長い時間がかかり、Qlik NPrinting がストールする可能性もあります。
この動作は webengine.config ファイルを編集することで変更できます。
以下を実行します。
- webengine.config ファイルを開きます。
- 行 <!-<add key="include-user-filters" />-> のコメントを解除します。
- Qlik NPrinting Designer を一旦閉じてから開きます。
-
これでこれらのフィルターは、リポジトリに保存されたすべてのフィルターをアップロードするようになりました。
保存されているフィルター数によって、これには非常に長い時間がかかる可能性があります。
webengine.config ファイルを編集したくない場合、特定のユーザー フィルターを手動でインポートすることができます。その方法は 2 つあります:
- フィルターの関連付けをすべてのユーザーから削除する。
- フィールドおよび値が同じで、いかなるユーザーにもリンクされていない、新しいフィルターを作成する。
レポート動作の設定
チャートやテーブルのオブジェクト フィルター エラーをレポートでどう処理するかを、テンプレートで設定することができます。レポートを開き、[エラーの処理] まで下向きにスクロールして次の 2 つのオプションのいずれかを選択します:
-
レポートを生成する。無効なコンテンツの場合、プレースホルダーの画像が表示されます。
無効なチャートの場合、プレースホルダーの画像が表示されます。その場合、灰色の背景に「Invalid selections」(無効な選択です) という黒いオーバーレイ テキストが表示されます。これらの画像は、レポート テンプレートの最大サイズ設定に従ってサイズ調整されます。無効なテーブルは空のテーブルに置き換えられます。この場合文字は表示されません。
-
レポートを生成しない。レポートは問題が解決されるまで生成されません。
レポート全体の生成が失敗します。ユーザーはレポートを閲覧できません。
Qlik NPrinting April 2018 以降、プレースホルダー画像を追加するのが新規レポートの既定の動作になっています。Qlik NPrinting February 2018 以前のバージョンからより新しいバージョンに更新した場合、レポートでは、以前からの既存のレポート エラー動作が引き継がれます。
空のコンテンツの設定
プレースホルダーの画像として、空のコンテンツが表示されます。その場合、「Invalid selections」(無効な選択です) という黒いオーバーレイ テキストが表示されます。このオーバーレイ テキストは変更可能です。
以下を実行します。
- 設定ファイル scheduler.config を開きます。
- 「empty-content-text」(空のコンテンツ テキスト) を検索します。この行のコメントを解除し、値を編集します。
- Qlik NPrinting スケジューラー サービス を再起動します。
この変更は空のコンテンツのプレースホルダーすべてに適用されます。
トラブルシューティング
自分のサイクル化されたレポートを含むフォルダーに、[失敗] のラベルが付いたレポートが表示される
考えられる原因
レポートに非互換性フィルターが含まれています。
提案されたアクション
レポートに関連付けられているフィルターを確認してください。例えば、次の 2 つのフィルターがあるとします。
- 1 つ目に含まれる内容 → 年: 2012、2013
- 2 つ目に含まれる内容 → 年: 2014
両方のフィルターを使用した場合、フィルターの積集合によって空のセットが生成されます。
レポートの生成が失敗する
考えられる原因
レポートのタスク、ユーザー、レポート、およびオブジェクトのフィルター階層で、同じ軸が使用されています。
提案されたアクション
同じ軸を使用するフィルターを変更または削除してください。