BI Publisher开发报表同时使用if判断和for-each@section按组分页不显示的问题

在去年的一个项目上有个需求是BIP中如果模版选择不对,那么会提示报错,我是通过《Oracle BI Publiser实现判断模版与数据是否匹配并输出》这种方法实现的,今天有个类似的需求,就是EBS的报表程序中会定义一个模版参数(可选择Excel或PDF),当选择不同模版类型时,程序要取不同的数据,并且在不同的数据模版中输出报表。我在实现的时候,数据源的取得直接在PL/SQL程序包中取得,而在开发报表RTF模版的时候遇到问题了。

我在同一个RTF文件中同时开发两种模版,然后分别根据if判断来选择各自的模版,这种思路是OK的,也测试通过。但是,其中有一个模版需要实现分组,就是对于每一个供应商,那么都要在不同的页面显示各自完整的数据,我想着是通过for-each@section:group来实现,如下图1所示:

使用for-each@section

图1:使用for-each@section

可是加载了XML数据,然后预览的时候发现,虽然实现了分页,分页数目也是对的,但是却什么都没有显示,一片空白。后来,我试着去掉了@section,发现可以输出;然后去掉了if判断,也发现可以输出,但是同时使用if判断,也加上@section来实现按组分页,就不行了。对于这个问题,最后没办法,使用了另一个方法实现:

使用split-by-page-break实现分页

图2:使用split-by-page-break实现分页

如上图2,不使用@section,换成在<?end for-each?>前加上<?split-by-page-break?>来实现。

本文标题:BI Publisher开发报表同时使用if判断和for-each@section按组分页不显示的问题

本文链接:http://yedward.net/?id=311

本文版权归作者所有,欢迎转载,转载请以文字链接的形式注明文章出处。

相关文章