打印水晶报表
(作者:杨先金;撰写时间:2019年4月23日)
1、首先要安装水晶报表,这一步必不可少,安装好了之后,在你的项目里面新建一个文件夹,在这个文件夹里面添加新建项,选择数据集,然后就是添加数据源,这个数据源可以是数据库里的某张表,也可以是自定义的表,在这里我要的表在数据库里并不存在,是由多张表组合成的表,因此就需要自定义一张表作为数据源。
2、自定义数据源:
给它设置标题、表头以及各个字段,当然也不是随便给它设置字段,里面的每一个字段要在数据库中能够找到,并且完全一致,如果有一个字段没有跟数据库那边对应,那么对应出来的水晶报表就会缺少某条数据,就会显示有一行是空的,这样你就要想到是不是你设计数据源的时候打错了字母,导致跟数据库那边对不上,及时更改,最好就是把数据库里面的字段复制过来,避免出错。
3、设计好数据源之后,接下来就是画出水晶报表模板,跟设计数据源一样,画模板的时候也要特别严格,里面的各个字段要跟数据源那边一一对应,有一个特别简单快捷的方法,那就是直接在左侧字段资源管理器那里用鼠标拖动数据源的每一个字段到报表模板,对应表头栏,这样它才能按照固定的格式将数据源里的每一条考生数据映射到水晶报表最终显示到页面。
4、准备工作做好之后,接下来就是代码部分:
在打印报表之前,首先要提示一下用户"确定要打印当前表格中的数据吗?是请点击确定,否则请先筛选数据再进行打印!",确定之后,到控制器请求数据,请求到数据之后,打开新的页面。
控制器:先根据传过来的ID把数据查询并筛选一番,然后将查询出来的数据转化为DataTable格式;
第一步,实例化数据集,即将我们之前设计好的自定义数据源实例化一个出来,用于接收数据;
第二步,将dtResult放入数据集中名为“tbAchievement”的表格中;
第三步,实例化数据报表,也就是刚刚设计好的水晶报表模板;
第四步,获取报表的物理文件路径,相对于项目的一个路径;
第五步,将报表加载到报表模板中;
第六步,设置报表的数据源,这一步就实现了将数据库里面的数据绑定到水晶报表的各个字段;
第七步将报表转化为文件流输出;最后返回一个文件,该文件类型为"application/pdf"格式。
控制器部分的代码如下图所示:
5、下面就是最终效果图:
这是一个pdf格式的水晶报表,可以点击下载或者打印该表。
到这里,水晶报表的打印就完成了。