如何在RTF模板中根据值为0的条件隐藏整列
RTF模板列隐藏解决方案:列值为'0'时隐藏整列
需求说明
当某列的列值等于'0'时隐藏整列,列值大于'0'时正常显示该列。此前尝试的三种方案均未生效:
尝试过的无效方案
- 方案1
- 列标题:
<if@column:COLUMNAME="0"?> - 单元格:
<if@column:../../COLUMNAME="0"?>
- 列标题:
- 方案2
- 列标题:
<if@column:contains(COLUMNAME, '0')?>COLUMNHEADERNAME> - 单元格:
<if@cell:contains(COLUMNAME, '0')?>
- 列标题:
- 方案3
- 列标题:
<if@column:/COLUMNAME/@type="PRIVATE"?> - 单元格:
<if@column:/COLUMNAME/@type="PRIVATE"?>
- 列标题:
正确实现方法
针对BI Publisher的RTF模板,需确保条件判断语法正确,且完整包裹列的所有内容(标题+数据单元格):
- 列标题区域:用
<?if@column:COLUMNAME > 0?>包裹列标题文本,结尾必须添加闭合标签<?end if?><?if@column:COLUMNAME > 0?>列标题名称<?end if?> - 数据单元格区域:同样用
<?if@column:COLUMNAME > 0?>包裹单元格内容,搭配闭合标签<?if@column:COLUMNAME > 0?><?COLUMNAME?><?end if?>
关键注意事项
- 确认
COLUMNAME是数据源中对应列的正确节点路径,若列节点处于嵌套层级,需根据实际XML结构调整相对路径(如../COLUMNAME) - 若需严格匹配字符串类型的'0',将条件改为
COLUMNAME != '0' - 必须成对使用
<?if?>和<?end if?>,缺失闭合标签会导致模板解析失败 - 当列下所有行值均为0时整列自动隐藏;只要存在一行值大于0,整列就会显示
内容的提问来源于stack exchange,提问作者Eyei
相关产品推荐
相关产品推荐

