报表按内容类别分页展现问题

最近发现一些客户的需求,用字符串组参数传递给报表某个参数的若干值,然后报表根据传过来的值分类,每一个分类在页面上形成一个报表,并且占一页,导出excel的时候也分页显示,下面就用一个简单的小例子实现上面的需求。

第一步:新建一张报表,连接demo数据源。

新建一张报表,报表连接sql数据源,给报表增加一个参数arg1,类型为字符串组,然后增加一个数据集ds1,数据集的sql为:SELECT 类别.类别ID,类别.类别名称,类别.说明 FROM 类别 ,给数据集增加两个参数,参数的样式如下图所示:

然后增加数据集的检索条件:类别.类别ID in (?) or ? is null,最后数据集的sql样式如下图所示:

第二步:设计报表

设计一张如下图所示的报表,报表的上面和下面都有一个空白行:

第三步:设置行后分页和左主格

设置A3B3C3单元格的左主格为A2,然后设置第三行为行后分页,如下图所示:

第四步:制作参数模板

新建一张可以填报的普通报表,连接demo数据源,然后新建一个数据集ds1,数据集的sql为:SELECT 类别.类别ID,类别.类别名称 FROM 类别,然后如下图所示,设置B1单元格的编辑风格为下拉数据集,具体的样式如下图所示:

然后设置B1的变量名为arg1,设置的方法见下图:

第五步:保存并发布报表

保存主报表名字为fenye.raq,参数模板的名字为fenye_arg.raq,然后在设计器中发布主报表,并选择相应的参数,就能看到下面两幅图的效果:

这样就实现了根据类别分类,每个类别在一页纸上展现,导出的时候也会跟页面上一样,分多个sheet页展现,上面的需求也就实现了。