2.8 フィルタおよび入力コントロールの使用

ドメインは、データを選別するためにさまざまなメカニズムを使用します。

  • ドメイン(およびドメイントピック)は、ドメインでフィールドを選択し、比較値を指定することにより、フィルタできます。ユーザがデータを選択できるようにフィルタを設定できます。

  • ドメイン設計内で、条件に基づいたフィルタも定義できます。これらのフィルタは、レポート実行時にレポートビューアに表示されません。

ドメインまたはトピックのどちらからデータを操作しているかに関係なく、アドホックエディタでフィルタを定義できます。このようなフィルタは、ビューがデフォルトで返すデータ量を削減してビューの初期パフォーマンスを向上させる場合に役立ちます。

ユーザがデータセット全体を参照できないようにするために、ドメイン設計で定義されたJRXMLトピックまたはフィルタで入力コントロールを使用することもできます。詳細については、セクション 2.8.3, 入力コントロールとフィルタを利用できる状況を参照してください。

入力コントロールおよびフィルタはスムーズに相互作用します。たとえば、入力コントロールを含むJRXMLトピックからデータを取得するアドホックビュー内にフィルタを作成できます。

サーバは、フィルタと入力コントロールの両方に照らしてエディタを更新します。入力コントロールとフィルタの組み合わせによってはデータが返されない場合もあるため、空のビューになることがあります。

メモ:結果セットが空の場合、標準フィルタやKeep Only (以下のみを保持)フィルタ、間違って定義された高度なフィルタ式など、フィルタと入力コントロールの組み合わせが矛盾していないかどうかを確認してください(データは、該当するフィルタのサブセットの条件だけではなく、複数のフィルタのすべての条件を満たす必要があります)。詳細については、高度なフィルタリングを参照してください。

JRXMLは、ZENworks Reportingとそれを使用するアプリケーション(iReport DesignerやZENworks Reportingなど)用に作成されたレポートを保存および共有するためのXMLファイル形式です。JRXMLは、XML標準を使用してレポートのすべての構造と設定を正確に定義するオープンなフォーマットです。

場合によっては、フィルタが表示パラメータと衝突する可能性があります。この場合、JRXMLファイルを編集して、衝突の原因になっているフィールドの名前を変更する必要があります。

2.8.1 フィルタの使用

フィルタは次の場所で定義できます。

  • Data Chooser (データセレクタ) (ドメインからビューを作成する場合)

  • アドホックエディタ(ビューがJRXMLトピックに基づいている場合も含む)

Data Chooser (データセレクタ)でフィルタを定義する方法については、データの事前フィルタを参照してください。

さらに、高度な式を使用すると、どのフィルタをどのようにフィールドに適用するかを制御できます。詳細については、高度なフィルタリングを参照してください。

アドホックエディタでフィルタを作成するには:

  1. Data Source Selection (データソースの選択)パネルでフィールドを右クリックして、Create Filter (フィルタの作成)をクリックします。

    新しいフィルタがフィルタパネルに表示されます。フィルタパネルが非表示の場合は、新しいフィルタを作成すると表示されます。

    結果が空の場合、フィルタと入力コントロールの組み合わせが矛盾していないかどうかを確認します。 をクリックして、入力コントロールをフィルタパネルのフィルタと比較します。

  2. フィルタのフィールドを使用して値を変更します。

    選択したデータタイプによっては、フィルタは複数選択、単一選択、またはテキスト入力になる可能性があります。

  3. をクリックして、Minimize All Filters (すべてのフィルタを最小化)またはMaximize All Filters (すべてのフィルタを最大化)を選択すると、フィルタの項目の展開と縮小を切り替えることができます。

  4. をクリックして、Remove All Filters (すべてのフィルタを削除)を選択すると、フィルタを削除できます。

  5. をクリックすると、フィルタの詳細が非表示になります。

  6. をクリックすると、フィルタの詳細が表示されます。

  7. すべて選択チェックボックス(フィルタパネルに表示されている場合)をオンにすると、データセットのすべての値が選択されます。

    すべて選択ボックスは、数値および日付のフィルタパネルには表示されません。

フィルタを変更すると、サーバは新しい値を使用して、表示するデータを決定します。フィルタ内で演算子のみを変更した場合、そのフィルタの値を選択解除してから再度選択して、更新されたフィルタを適用する必要があります。

複数値を持つフィルタの場合、すべての値を再度選択する必要はありません。演算子を変更した後で、<Ctrl>キーを押しながらクリックして値の1つを選択解除し、<Ctrl>キーを押しながらクリックしてその値を再度選択します。

相対日付

現在のシステム日付を基準にした相対的な日付範囲に基づいてビューの情報をフィルタできます。早退日付を表示するには、日付ベースのフィルタを使用し、<Keyword>+/-<Number>という形式を使用して、表示する相対日付または日付範囲を記述するテキスト式を指定します。

  • Keywordは、使用する期間を示します。オプションとして、DAY、WEEK、QUARTER、SEMI、およびYEARがあります。

  • +または-は、その期間が、選択した日付の前後どちらに発生するかを示します。

  • Numberは、フィルタに含める期間の数を示します。

相対日付フィルタを作成するには:

  1. セクション 2.8.1, フィルタの使用の手順に従います。

  2. フィルタの最初のテキストボックスで、相対日付または期間の日付を記述する式を指定します。

  3. フィルタの2番目のテキストボックスで、フィルタの基準にする日付を指定します。

複合フィルタを作成するには:

  1. クロス集計でグループメンバーを右クリックして、Keep Only (以下のみを保持)またはExclude (除外)を選択します。

    内側のグループに対してフィルタを作成した場合、表示されるフィルタは、複合フィルタとして作成されることがあります。

    複合フィルタは編集できませんが、削除は可能です。複合フィルタは、Data Chooser (データセレクタ)ウィザードフィルタが作成されてロックされている場合にも、アドホックエディタに表示されます。

高度なフィルタリング

複数のフィルタを作成した場合、各フィルタは、デフォルトで暗黙的なAND演算子で結合されます。すなわち、テーブル、グラフ、またはクロス集計に表示されているデータは、フィルタがすべて適用された後に残ったデータです。

ただし、高度なフィルタ機能を使用すると、より複雑なネストされたAND、OR、およびNOT演算子を含む高度な式を適用すると同時に、1つのフィールドに複数のフィルタを適用して表示データを制御できます。

高度なフィルタは、次のような状況で役立ちます。

  • 「AND演算子では十分でない場合」。たとえば、アジアおよび太平洋地域にある店舗のデータを表示する必要がある国際的な企業を考えてみましょう。この場合は、次の条件を指定した高度な式を作成できます。

    • Country is USA

      AND

    • State is California OR Washington OR Oregon OR Hawaii OR Alaska

      OR

    • Country is Japan OR Indonesia

      これらの条件すべてにAND演算子を使用すると、空のビューが返されます。これらのエリアすべてに存在する店舗はないからです。

  • 「フィールドの一部の結果を削除する必要がある場合」。たとえば、飲食料品の流通会社が高価格な品目を除くすべてのドリンクの売上を表示したい場合、高度な式に次の条件を含めることができます。

    • Product Group is Beverages

      NOT

    • Price is greater than 39.99

      このフィルタは、Beverage Product Groupのすべての品目を表示しますが、価格が$39.99を超える品目は除外します。

これらは、高度なフィルタによって結果を補完して、ビューの精度を上げることができるシナリオを2つ挙げただけに過ぎません。高度なフィルタを適用できる状況は、ほかにも数多くあります。

高度なフィルタの他のタスクには、次のものがあります。

  • 高度な式の作成

  • 高度な式の編集

  • 高度な式の削除

  • 単一フィールドへの複数フィルタの適用

    メモ:高度なフィルタはビューに適用されますが、フィルタの詳細は、プレビューやそのビューから生成されたレポートには表示されません。

高度なフィルタを作成および適用するには:

  1. セクション 2.8.1, フィルタの使用の説明に従って、使用するデータ用のフィルタを2つ以上作成します。標準のフィールドベースのフィルタにすることも、Keep Only (以下のみを保持)およびExclude (除外)フィルタにすることもできます。

    高度な式で使用するフィルタを作成すると、ビューにデータが表示されなくなります。ほとんどのデータはすべてのフィルタ条件を満たすわけではないためです。高度な式を作成して、ANDの一部をORおよびNOTに変更すると、再びデータが表示されるようになります。

  2. フィルタパネルの最上部で、 をクリックし、Show Expression (式の表示)を選択して、Filter Expression, for (フィルタ式)パネルを表示します。デフォルトでは、Filter Expression, for (フィルタ式)パネルは空です。

  3. Filter Expression, for (フィルタ式)パネルで、編集をクリックします。

  4. Edit Advanced Filters (高度なフィルタの編集)パネルで、フィルタプレビューウィンドウを使用してフィルタを見つけます。

    フィルタに指定する文字は大文字と小文字が区別され、大文字で始める必要があります。

  5. 指定した文字を使用してフィルタ式を入力します。次の演算子を含めます。

    • 「AND」は、結果を絞り込み、演算子の前後にある両方のフィルタ条件を満たすフィールドのみを含めます。

    • 「OR」は、結果の範囲を広げ、演算子の前後にあるいずれかの条件を満たすフィールドを含めます。

    • 「NOT」は、条件に一致する結果を除外します。

    • 「丸カッコ」は、複数のフィルタを式内の単一の項目に結合します。

  6. 検証ボタンをクリックして、式を確認します。

    利用可能なフィルタを使用して式が成功した場合、成功メッセージが表示されます。式が間違っている場合は、無効というメッセージと詳細が表示されます。

  7. 式が正常に検証されたら、送信をクリックします。

    ビューが更新され、新しく適用されたフィルタ条件で表示されます。

高度なフィルタを作成した後で、別のフィルタを式に追加したり、既存の式を削除したりできます。

メモ:高度なフィルタから単純なフィルタを削除する場合、最初に高度なフィルタ式から削除する必要があります。そのため、フィルタを削除すると、高度なフィルタ式が削除されます。

新しいフィルタを既存の高度な式に追加するには:

  1. フィルタパネルで新しいフィルタを作成します。

  2. Filter Expression, for (フィルタ式)パネルで、編集をクリックします。

  3. Edit Advanced Filters (高度なフィルタの編集)パネルで、式に新しいフィルタを追加します。

    未使用のフィルタはフィルタプレビューウィンドウで灰色で表示されています。

  4. 検証をクリックして、新しい式の整合性を確認します。

  5. 式が有効な場合、送信をクリックします。

高度な式からフィルタを削除するには:

  1. Filter Expression, for (フィルタ式)パネルで、編集をクリックします。

  2. Edit Advanced Filters (高度なフィルタの編集)ダイアログで、式からフィルタを削除し、必要に応じて式を更新します。

  3. 検証をクリックして、新しい式の整合性を確認します。

  4. 式が有効な場合、送信をクリックします。

高度な式を操作する場合、既存の式を削除して、新しい式を作成することができます。

ビューから高度な式を削除するには:

  1. Filter Expression, for (フィルタ式)パネルで、編集をクリックします。

  2. Filter Expression (フィルタ式)ボックスから式をクリアします。

  3. 送信をクリックします。

高度な式を調整する場合、フィルタパネルから未使用のフィルタを削除できます。

  • 高度なフィルタからフィルタを削除する場合、フィルタのタイトルバーの にマウスを合わせて、Remove Filter (フィルタの削除)をクリックします。

  • 高度な式を含むすべての既存のフィルタを削除する場合、フィルタパネルの にマウスを合わせて、Remove All Filters (すべてのフィルタの削除)をクリックします。

2.8.2 入力コントロールの使用

アドホックエディタで、トピックで定義された入力コントロールを、ユーザに表示されるとおりに表示できます。コントロールのデフォルト値をそのまま使用することも、他の値を入力することもできます。アドホックエディタは、ツールバーの アイコンをアクティブとして表示することにより、ビューに入力コントロールがあることを示します。 アイコンをクリックして、新しい値を選択するか、このビューの新しいデフォルトとして値を保存します。

フィルタを使用してビューに入力コントロールを追加するには:

  1. フィルタパネルで新しいフィルタを作成するか、既存のフィルタを使用します。

  2. フィルタで、新しいフィルタの横にある をクリックし、Show Operator (演算子の表示)を選択します。

  3. ドロップダウンから演算子を選択し、テキストボックスに値を指定します。

    ビューを使用してレポートを実行すると、フィルタが入力コントロールとして表示されます。

  4. にカーソルを合わせて、Save Ad Hoc View as (アドホックビューに名前を付けて保存)....を選択します。

  5. ビューに名前を付け、場所を選択して、保存をクリックします。

  6. ツールバーで、 をクリックします。

    トピックで定義された入力コントロールだけが表示されます。トピックで入力コントロールが定義されていない場合、ボタンは灰色で表示されます。

ビューの入力コントロールの値を編集するには:

  1. ツールバーで、 をクリックします。

    トピックで定義されている入力コントロールを一覧表示するウィンドウが表示されます。

  2. 新しい値を選択します。

  3. 入力コントロールのデフォルト値を変更するには、Set these values as defaults when saving your view (ビューの保存時にこれらの値をデフォルトに設定する)というラベルの付いたチェックボックスをオンにします。

    ビューを保存すると、選択した値がデフォルト値になります。

  4. OKをクリックします。

    アドホックビューに更新されたデータが表示されます。

2.8.3 入力コントロールとフィルタを利用できる状況

入力コントロールとフィルタは、エディタ内、およびレポート実行時に表示されます。

  • ビューの編集時に入力コントロールを表示するか非表示にするかを設定できます。

    • Always prompt (常にプロンプトを表示)に設定されている入力コントロールは、エディタに表示され、レポート実行前に常に表示されます。

    • Always prompt (常にプロンプトを表示)に設定されていない入力コントロールは、エディタで非表示にされ、レポート実行時に表示されます。

  • Data Chooser (データセレクタ)ウィザードで作成したフィルタをロックまたはロック解除できます。

    • ロック解除されたフィルタは、エディタにフィルタ詳細が表示され、レポート実行時にオプションボタンから使用できます。

    • ロックされたフィルタは、このアイコン .をクリックすると、エディタに入力コントロールが表示されます。ただし、レポート実行時にオプションボタンから使用することはできません。エディタからフィルタを削除し、レポート実行時に、フィルタされていないデータすべてを表示できます。

  • エディタで定義されたフィルタは、常にエディタのフィルタパネルで利用でき、レポート実行時にはオプションボタンから使用できます。

実行するのに長い時間がかかる大きなビューに入力コントロールを設定する場合、ビューをAlways prompt (常にプロンプトを表示)に設定することを検討してください。レポートを実行する前に、レポートビューアにより入力オプションの入力を求めるプロンプトが表示され、レポートがデフォルトの入力オプションで実行されないようにします。

ロック解除されたフィルタは利用可能になります。入力コントロールまたはフィルタがレポートビューアに表示されない場合、オプションボタンをクリックして表示します。

プロンプトを表示するように入力コントロールを設定するには:

  1. リポジトリでトピックを検索し、編集をクリックします。

  2. Controls & Resources (コントロールとリソース)パネルのInput Control (入力コントロール)オプションで、Always prompt (常にプロンプトを表示)をクリックします。

入力コントロールが表示されるかどうかを判断するには:

  1. リポジトリでトピック(パラメータ化されたレポートトピックなど)を検索し、編集をクリックします。

  2. Controls & Resources (コントロールとリソース)パネルで、入力コントロールの名前をクリックします。

  3. Locate Input Control (入力コントロールの検索)パネルで、次へをクリックします。

    Create Input Control (入力コントロールの作成)パネルの下部で、Visible (表示)チェックボックスをオンにすると、レポートの実行時にレポートに入力コントロールが表示されます。

    入力コントロールにデフォルト値を指定しない場合、ユーザがトピックに基づくビューを作成するときに、値を選択するようプロンプトが表示されます。

フィルタをロックするには:

  1. Data Chooser (データセレクタ)で、フィールドを選択してから、Pre-filters (事前フィルタ)をクリックします。

  2. フィールドパネルでフィールドをダブルクリックします。

  3. フィルタパネルで、フィルタを定義します。

    詳細については、データの事前フィルタを参照してください。

  4. Locked (ロック中)チェックボックスをオンにし、OKをクリックします。

  5. Table (テーブル)をクリックして、アドホックエディタを開きます。

    フィルタパネルで、フィルタの名前とロックに関するメモがLocked (ロック中)という見出しの下に表示されます。