所谓子报表:是将子表的内容展示到主表中,说白了就是报表中套报表,可以把多个报表放在一张表里展示,而且主表还可以有自身的表格设计。下图就是将三个子表在一个主表中展示的例子。
那么这样的报表在皕杰报表中是如何实现的呢?
首先在主表中选中需要展示子表的单元格,右键单元格-设置类型-为子报表类型。
然后在这个单元格中使用单元格函数subreport()连接子表。
例如:subreport('Demo/08其它特性/05-1产品.brt')。
再设置这个子报表的单元格属性。
这样一个简单的子报表就设计好了。
另外需说明,子报表函数支持通过主表给子表传参,参数值可以来自主表的参数、单元格值以及单元格集合。
a.子表中有参数 date(日期类型)、type (字符串类型)和 name (字符串组类型)
b.主表中有date1参数(子表data的参数值)、B3(子表type的参数值)和集合F4{}(子表name的参数值)
c.那么子报表连接表达式应该是:
subreport('Demo/图表演示/饼状图.brt',’date=’+tostr(@date1,’yyyy-MM-dd’)+’;type=’+B3+’;name=’+tostr(F4{}))
关于子表的路径:
a、在设计端:subreport的报表路径从主表所在项目作为根目录,然后设置同项目下的子表的路径。例如饼状图.brt,它在项目视图中是Demo-图表演示-饼状图.brt,那么子报表表达式应该是subreport('Demo/图表演示/饼状图.brt')
b、Web端:报表默认是放到WEB-INF/reports(report_config.xml设置报表存放路径的根目录地址)目录下的,如果子表放到WEB-INF/reports/Demo/图表演示/饼状图.brt这个路径下,那么子报表表达式应该是subreport('Demo/图表演示/饼状图.brt')。