製作資料取出報告時使用動態查詢

ClearQuest 可讓您使用動態過濾器來建立查詢,以便在執行時期提示輸入參數值。 不過,使用動態查詢來製作資料取出報告時,您必須採取暫行解決方法,才能實現 IS_BETWEENIS_NOT_BETWEEN 運算子的行為。
使用動態查詢時,每一個過濾器包含下列資訊:

例如,以查詢範例 /Public Queries/Reports/State Query 做說明。這個查詢包含動態過濾器,可讓您指定一或多個狀態值。 每一個 ClearQuest 用戶端必須提供介面,以提示輸入運算子及過濾器值。 在資料取出報告模型中,「ClearQuest 報告驅動程式」也需要有機制來擷取這項資訊。

因為這些動態過濾器會提示輸入兩項資訊,所以「ClearQuest 報告驅動程式」會將每一個過濾器視為兩個獨立的參數。 在執行時期,您需要指定過濾器運算子和值。 發行套件所提供的範例包含 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_BETWEENIS_NOT_BETWEEN 運算子, 因為總共需要三個引數(運算子、低運算元和高運算元)。 「ClearQuest 報告驅動程式」並未直接支援 IS_BETWEENIS_NOT_BETWEEN 運算子。 不過,在建立 ClearQuest 查詢時,您可以在查詢建置器中使用 AND 來串連兩個過濾器,這樣就能實現這兩個運算子的行為。 在執行時期,「ClearQuest 報告驅動程式」會為這兩個過濾器建立四個參數, 以模擬 IS_BETWEENIS_NOT_BETWEEN 運算子。

在下列範例,粗體字串代表您在執行時期提供的值。

假設使用下列過濾表示式:

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

使用兩個過濾器也能達到相同的結果,如下一個範例所示:

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

意見