如何在BI Publisher(RTF模板)中实现Status列条件计数?
BI Publisher RTF模板统计Status取值数量的实现方法
直接统计法(无需分组)
如果不需要按Status分组展示,直接用count函数结合节点值过滤即可:
- 统计Present数量:
Count of 'Present': <?count(//Status[text()='Present'])?> - 统计Absent数量:
Count of 'Absent': <?count(//Status[text()='Absent'])?>
分组统计法(适合按Status分组展示)
如果需要按Status分组并展示每组数量,先通过for-each-group指令分组,再统计每组数据:
<?for-each-group:ROW;group-by:Status?> Status: <?current-grouping-key()?> - Count: <?count(current-group())?> <?end for-each-group?>
注意:将代码中的ROW替换为你数据集中实际的行节点名称。
你之前代码的问题
- 未执行分组操作就使用
current-group(),该函数仅在分组上下文内有效; - 使用了属性选择器
[@value='Present'],但你的Status取值是节点文本内容而非属性,应改用节点值匹配[text()='Present']; - 无需用
if判断包裹,直接通过count过滤就能得到对应取值的数量。
内容的提问来源于stack exchange,提问作者Eleyas Khandakar
相关产品推荐
相关产品推荐

