内建数据集是指数据集的结构和数据都存入报表模板,运算报表的时候不再需要从数据源取数。一般情况下,主要满足以下两种需要:
1、可以让用户快速的体验建立报表的过程,只需在报表设计器中定义一个内建数据集,录入一些模拟数据就可以在报表中使用了,这样给用户的体验过程带来了极大的方便。
2、可以用于报表的跟踪调试,当报表预览结果和预想的结果不符合时,可以把数据集转为内建,然后把报表模板发给技术支持人员,方便支持人员跟踪调试(否则,在无源的状态下,不能调试则无法及时发现问题)。
当然,根据用户特殊需求,内建数据集也可以作为一个巧妙的功能点来使用。
比如,有用户采用MVC框架结构,控制层调用服务层产生报表要展现的数据,报表只需将服务层返回的数据展现即可,不需要任何数据方面运算。
往往这种情况,在未考虑到内建数据集的时候,基本的解决方案是自定义数据集,由自定义数据集直接调用服务层返回数据封装成Dataset用于展现。再或者控制层获取到数据后保存成文件,再由自定义数据集读取展现。
但,客户要求严格按照mvc结构来做,不允许报表调用服务层。保存成文件再读取又怕并发大出问题,过程也繁琐。这就无法让报表读到生成的数据了。那么这个时候,内建数据集就很好用了。
基本的原理是,终端用户发请求是控制层,控制层从服务层获取数据,后控制层读取已定义好格式的报表文件,将获取的数据封装成报表的内建数据集即可,最终采用bean形式直接跳转到展现层展示报表。
以上核心部分就是如何给报表设置内建数据集,也是本文要介绍的内容,主要以测试代码形式说明:
importcom.r