自定义报告的 SQL 函数

要帮助编写高级查询,每个函数必须具有占位符。执行时函数占位符会被替换为 SQL 代码。函数和参数的用法类似,但函数的名称以 $(美元符号)作为前缀。和参数不同的是,占位符是已定义的报告元素,无法按执行进行自定义。

下表列出了所有可用的函数占位符:

函数 作用 示例
$TODAY 在数据库服务器上返回当前系统日期。您也可以将昨天编写为 $TODAY-1 或将一周前编写为 $TODAY-7 CreatedAt > ${$TODAY}
$DATE(列) 以 UTC 返回一天开始的时间戳。 列将返回:2019-08-30 08:37:33 (CEST),表示为 2019-08-30 02:00
$DATE(“字符串”) 将给定的字符串转换为数据库日期。 CreatedAt > ${$DATE('01/10/2005')}
$DAYS[p1;p2] 计算两个给定参数之间的天数差异。两个参数可以为表/视图中的列或 $TODAY 以下示例返回上周内创建的行:${$DAYS[CreatedAt;$TODAY]} < 7
$WEEK(参数) 返回给定参数的周数,此参数可为 $TODAY 或列。
$MONTH(参数) 将月份返回为给定参数的数值,此参数可为 $TODAY 或列。
$YEAR(参数) 将年份返回为给定参数的数值,此参数可为 $TODAY 或列。
$USERID 当前登录用户的 ID。
$USERNAME 当前登录用户的姓名。
$PROJECTID 当前选定项目的 ID。
$PROJECTNAME 当前选定项目的名称。
$REPORTNAME 当前选定报告的名称。
$REPORTID 当前选定报告的 ID。

以下是预安装的具有子需求的需求报告的代码。使用此报告将显示选定需求及其需求 ID。还显示有关需求的子需求的完整详细信息。尽管此报告不是自定义报告,但非常有用,因为它利用 $PROJECTID 函数。它还包括 reqID(需求 ID)和 reqProp_Obsolete_0 (显示过时的需求)两个参数。

SELECT r.ReqID, r.ReqCreated, r.ReqName, r.TreeOrder
   FROM RTM_V_Requirements r INNER JOIN   
   TM_ReqTreePaths rtp ON (rtp.ReqNodeID_pk_fk = r.ReqID)   
   WHERE rtp.ParentNodeID_pk_fk=${reqID|22322|Requirement ID} AND   
   r.ProjectID = ${$PROJECTID} AND   
   r.MarkedAsObsolete=${reqProp_Obsolete_0|0|Show obsolete Requirements}   
   ORDER BY r.TreeOrder ASC