在构建数据拉取报告时使用动态查询

ClearQuest 可让您构造带动态过滤器的查询,这种查询在运行时提示用户输入参数值。但是,当您使用动态查询来构建数据拉取报告时,必须使用变通办法来实现 IS_BETWEENIS_NOT_BETWEEN 运算符的效果。
对于动态查询,每个过滤器包含以下信息:

例如,请考虑样本查询 /Public Queries/Reports/State Query。此查询包含一个动态过滤器,该过滤器用于指定一个或多个状态值。每个 ClearQuest 客户端都提供了一个界面,用于提示输入运算符和过滤器值。在数据拉取报告模型中,ClearQuest Reporting Driver 还需要一种检索此信息的机制。

由于动态过滤器提示输入两段信息,因此 ClearQuest Reporting Driver 将每个过滤器视为两个单独的参数。在运行时,您将指定过滤器运算符和值。包含在分发包中的样本包括一个 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 Reporting Driver 不直接支持 IS_BETWEENIS_NOT_BETWEEN 运算符。但是,可通过其他办法来取得这两个运算符的效果,方法是在查询构建器中创建一个使用两个过滤器的 ClearQuest 查询,并且这两个过滤器用 AND 组合在一起。在运行时,ClearQuest Reporting Driver 创建对应两个过滤器的四个参数,从而模拟 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

反馈