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 (フィルタの作成)をクリックします。

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

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

    Oracleデータベースの場合、フィルタの作成中に「Null」値を使用できます。MS SQLおよびSybaseデータベースの場合は、空を使用できます。

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

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

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

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

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

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

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

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

メモ:すべて選択チェックボックスは、レポート実行時に必ずすべての値が選択されることを保証しません。このチェックボックスは、データセットで現在使用できるすべての値を素早く選択するためのショートカットです。値の編集時またはレポート実行時にすべての値がビューに必ず表示されるようにするには、フィルタを完全に削除します。パネルで、テーブルの列の右クリックコンテキストメニューからフィルタを作成することもできます。[グラフ]タブで、[Data Source Selection (データソースの選択)]パネルのフィールドを右クリックする必要があります。

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

複数値を持つフィルタの場合、すべての値を再度選択する必要はありません。演算子を変更した後で、<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つのフィールドに複数のフィルタを適用して表示データを制御できます。

メモ:カスタムフィルタはOLAP接続から作成されたアドホックビューでは使用できません。

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

  • 「AND演算子では十分でない場合」。たとえば、多国籍企業がその企業のウォールストリートのオフィスに配置されたライセンス供与されていないWindows OS製品のデータを確認したいとします。この例では、ユーザは次の列を含むテーブルを持っています。

    • サイト

    • OS製品名

    • ライセンスタイプ

    上記の特定のライセンスデータを分析するために、ユーザは[ライセンスタイプ]フィールド用の2つのフィルタを含む次の(単純な)フィルタを作成します。

    • A): サイトがWall Streetと等しい

    • B): OS製品名にWindowsが含まれている

    • C): ライセンスタイプがUnknownと等しい

    • D): ライセンスタイプがEvalと等しい

    次に、必要な情報のみを表示するために、次のカスタム式を作成します。

    • A AND (B AND (C OR D))

    これは次のように解釈されます。

    • (サイトがWall Street) AND ((OS製品名がWindowsを含む) AND ((ライセンスタイプがUnknown) OR (ライセンスタイプがEval)))

  • 「フィールドの一部の結果を削除する必要がある場合」。たとえば、この企業が完全にライセンス供与されたWindows OS製品を除くすべてのデータを確認しようとしていて、ユーザが次の列を含むテーブルを持っているとします。

    • OS製品名

    • ライセンスタイプ

    上記の特定のライセンスデータを分析するために、ユーザは次の(単純な)フィルタを作成します。

    • A): OS製品名にWindowsが含まれている

    • B): ライセンスタイプがfullと等しい

    次に、必要な情報のみを表示するために、次のカスタム式を作成します。

    • A AND (NOT B)

    これは次のように解釈されます。

    • (OS製品名がWindowsを含む) AND (NOT (ライセンスタイプがFullと等しい))

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

カスタムフィルタの他のタスクには、次のものがあります。

  • カスタム式の作成

  • カスタム式の編集

  • カスタム式の削除

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

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

カスタムフィルタを作成して適用するには:

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

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

  2. フィルタパネルの最下部で、カスタムフィルタ式セクションを展開します。

  3. テキスト入力ボックスで、文字指定を使用し、次の演算子を含むフィルタ式を入力します。

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

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

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

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

      メモ:フィルタの文字指定は大文字と小文字を区別します。大文字を使用する必要があります。

  4. 適用をクリックします。ビューが更新され、新しく適用したフィルタ条件を反映します。

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

メモ:削除したい単純なフィルタがカスタムフィルタの一部の場合、まずカスタムフィルタ式から該当のフィルタを削除する必要があります。このようにしないでフィルタを削除すると、カスタムフィルタ式が削除されます。

新しいフィルタを既存のカスタム式に追加するには:

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

  2. カスタムフィルタ式で、テキスト入力ボックス内をクリックし、式を編集します。

  3. 新しいフィルタを式に追加します。

  4. 適用をクリックして、新しい条件を適用します。

カスタム式からフィルタを削除するには:

  1. カスタムフィルタ式セクションを展開します。

  2. テキスト入力ボックスで、不要なフィルタを式から削除し、必要に応じて式を調整します。

  3. 適用をクリックして、新しい条件を適用します。

カスタム式を操作する場合、既存の式を削除して、新しい式を作成することができます。

カスタム式をビューから削除するには:

  1. カスタムフィルタ式セクションを展開します。

  2. テキスト入力ボックスから式をクリアします。

  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 (ロック中)という見出しの下に表示されます。