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

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

例如,以查詢範例 /Public Queries/Reports/State Query 做說明。這個查詢包含動態過濾器,可讓您指定一或多個狀態值。每一個 ClearQuest Client 都會提供介面,以提示輸入運算子及過濾器值。在資料取出報告模型中,「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

意見