動的クエリーを使用してデータ プル レポートを作成する

ClearQuest を使用することで、実行時にパラメータ値の入力を求めるプロンプトを表示する、動的フィルタを用いたクエリーを構成することができます。 ただし、動的クエリーを使用してデータ プル レポートを作成する場合は、IS_BETWEEN および IS_NOT_BETWEEN 演算子の動作を実現させるための次善策を使用する必要があります。
動的クエリーで使用する各フィルタには、次の情報が含まれます。

たとえば、サンプル クエリー /Public Queries/Reports/State Query について検討してみます。このクエリーには、1 つ以上の状態値を指定できる動的フィルタが含まれます。 各 ClearQuest クライアントには、演算子およびフィルタ値の入力を求めるプロンプトを表示するインターフェイスが用意されています。 データ プルのレポート作成モデルの場合、ClearQuest Reporting Driver ではこの情報を検索するためのメカニズムも必要になります。

動的フィルタによって、2 種類の情報の入力を求めるプロンプトが表示されるため、ClearQuest Reporting Driver では、各フィルタが 2 つの別のパラメータとして処理されます。 実行時に、フィルタの演算子および値を指定してください。 このディストリビューションに同梱されるサンプルには、BIRT ライブラリが含まれます。このライブラリにある演算子パラメータのサンプルを使用して、演算子を表示することができます。 このサンプル パラメータを直接使用したり、独自のレポート用にコントロールをコピーすることもできます。

フィルタ演算子の値

有効なフィルタ演算子の値は、Team API インターフェイス com.ibm.rational.wvcm.stp.cq.CqQuery.Filter.Operation から取得されます。 BIRT および Crystal Reports の両方に、各演算子の値をテキスト ストリングとして公開するメカニズムが用意されています。 定義されている演算子の値は以下のとおりです。
  • HAS_NO_SUBSTRING
  • HAS_SUBSTRING
  • IS_EQUAL
  • IS_GREATER_THAN
  • IS_GREATER_THAN_OR_EQUAL
  • IS_IN_SET
  • IS_LESS_THAN
  • IS_LESS_THAN_OR_EQUAL
  • IS_NOT_EQUAL
  • IS_NOT_IN_SET
  • IS_NOT_NULL
  • IS_NULL

データ プル レポート設計の特殊フィルタ式

データ プル レポート作成モデルを使用する際、IS_BETWEEN 演算子と IS_NOT_BETWEEN 演算子が問題になります。合計 3 つの引数 (演算子、low オペランド、および high オペランド) が必要になるためです。 ClearQuest Reporting Driver では、IS_BETWEEN および IS_NOT_BETWEEN の演算子は直接サポートされません。 ただし、照会ビルダーで AND を用いてグループ化された 2 つのフィルタを使用する ClearQuest クエリーを作成すれば、これらの演算子の動作を実現させることができます。 実行時に、ClearQuest Reporting Driver によって、2 つのフィルタ用に 4 つのパラメータが作成され、IS_BETWEEN 演算子と IS_NOT_BETWEEN 演算子がシミュレートされます。

次の例では、太字で示されたテキスト ストリングが、実行時に提供する値となります。

たとえば、以下のフィルタ式について検討してみます。

DateField
IS_BETWEEN
12-12-2005
AND
12-12-2007

次の例に示した 2 つのフィルタを使用することで、同じ結果が得られます。

DateField
IS_GREATER_THAN_OR_EQUAL
12-12-2005
AND
IS_LESS_THAN_OR_EQUAL
12-12-2007

フィードバック