如何在BIP的RTF模板中为日期字段加1天并实现日期对比判断
BIP(RTF模板)日期加1天对比实现方案
核心实现逻辑
BIP RTF模板依托内置的XPath扩展函数处理日期运算,先将两个日期字段转换为标准日期类型,对目标日期执行加1天操作后直接对比即可。
具体使用方法
场景1:单条记录满足条件时输出指定文本
直接在需要打印"Successful"的位置插入以下BI Publisher域代码即可:
<?if:xdos:add-day(xs:date(CompletetdDate),1) = xs:date(ReportedDate)?>Successful<?end if?>
如果你的日期字段带时分秒,需要忽略时间部分仅对比日期,使用以下代码:
<?if:xdos:add-day(xdof:date-trunc(CompletetdDate),1) = xdof:date-trunc(ReportedDate)?>Successful<?end if?>
场景2:过滤整份数据集,仅保留符合条件的记录
在数据集循环标签中加入条件判断,示例如下:
<?for-each:ROWSET/ROW[xdos:add-day(xs:date(CompletetdDate),1) = xs:date(ReportedDate)]?> <!-- 此处放置你需要输出的记录内容 --> <?end for-each?>
注意事项
- 11g及以上版本的BIP均原生支持上述
xdos、xdof扩展函数,无需额外配置 - 若日期字段以字符串格式存储,需先用
xdof:str-to-date()转换为日期类型再运算,示例:xdof:str-to-date(CompletetdDate,'yyyy-MM-dd'),第二个参数替换为你实际的日期字符串格式 - 注意核对字段名拼写,避免字段不存在导致的公式报错
内容的提问来源于stack exchange,提问作者Nikita
相关产品推荐
相关产品推荐

