打印水晶报表

    xiaoxiao2025-03-02  38

    作者:坚定的守猴

    撰写日期:2019年5月23日

    开发软件和关键技术:VS; 编程软件_CRforVS_13_0_14

    在项目里面,实现数据的导入和导出是一种必不可少的功能。然而数据的导入导出的方式有很多种。现在我们就来看一下数据导出的一项功能——打印水晶报表。

    之前对于数据的导入或者导出一般的做法都是从外面导入模板进来,然后就再把里面的数据放到模板里面。而水晶报表和它们不一样的是,它有自己的辅助软件,对于报表的格式可以在项目里面自己设计,相比之前模板的方式,灵活性更高一点。它的设计基本思路就是从安装软件→创建数据集→设计表格。我们来结合打印考生成绩的的例子来实现一下这水晶报表的功能。

    首先来简单的看一下需要查询考生信息的代码,为下面导入水晶报表做一个准备。

    采用group by分组的语法查询出用户最高成绩的信息,通过条件筛选把所需要的数据查询出来。

    所需要的数据查询出来了,我们就来说一下水晶报表的软件安装和引用项目的步骤。

    找到这款软件,进行安装到自己的电脑里面。

    然后就到项目里面创建一个文件夹,在里面添加一个数据集

    这个数据集是把所需要打印的数据的字段名称写进里面,这数据集的数据是来源于项目的数据库。数据传递的流程是水晶报表的数据←数据集的字段←项目数据库。修改一下名字,然后就进行添加。

    添加成功之后就到项目里面新创建的文件夹找到已建好的数据集,点击打开里面,然后鼠标右键弹出以上图片中的菜单栏,按照步骤添加一个新的数据集的小表格。

    添加成功后就出现对应的画面。然后就把相应的数据字段添加进去。

    在这需要注意的一点,就是到把表里面的部分字段里的数据类型修改一下。因为表格里面数据类型它都是统一。有部分的数据字段类型是不同,需要自己到属性手动修改。这样就不会到最后数据类型与数据库不一致而查询不出数据。

    数据集的数据添加好了,就开始添加水晶报表的格式文件进来。在文件夹添加一个类,弹出对应的窗口,选择Reporting,找到下面图片中显示的文件,修改一下名称,然后就进行添加。

    添加成功之后,就在打开这文件,里面一开始是空白的,然后就鼠标右键弹出图片中的菜单栏,选择空白报表这一栏,再点击确定。

    下面这一步就是把刚才建好的数据集的数据表导入进来。在打开的报表页面找到字段属性那菜单栏,右键点击里面的数据库字段,出现数据库专家,在项目数据里面找到刚才数据集的数据表,点击“>”之后,等到右边显示这数据表的时候,再点击这张表,完成数据表的添加,就点击确定。(步骤操作和效果图如下)

    一般在添加成功之后在返回数据库字段点击就可以看到这些表的字段。这样做可以在建水晶报表的时候可以提高一下效率。

    经过上面繁琐的操作,下面我们就来体验一下这水晶报表的绘制。

    右键点击插入文本对象之后,在里面输入文字,再选中输入文字的文本框右键就会出现“设置对象格式”的菜单栏,里面有字体,段落等样式的设置。样式可以自定义。

    在页面的底部有“主报表预览”的选项,就是在设计好每一种样式之后,都可以通过这选项去看一下效果,通过每次的预览,设计出自己想要的效果。

    接下来就是把数据集的字段写进来。为了提高效率,从数据库字段那里把里面表格的字段点击拖到“详细资料”那里,这样就会上下两行同时出现属性。就不用一个个的添加这么麻烦。

    之后就在上面那行改为中文文字,设置样式。

    最后就直接看一下这报表做出来的效果

    表格的格式设置好了,接下来就是通过代码的形式把数据导进去了。

    首先把查询到的数据通过IEnumerable类型的集合转换成DataTable类型,返回数据的DataTable的格式。下面就简单说一下这代码块

    定义要返回的DataTable对象

    新建一个用于添加到DataTable中的DataRow对象

    把查询出来的数据转换成DataTable的类型之后,就先把数据集实例化

    将dbReport放入数据集重新命名为所需要查询数据集表的名称,之后就实例化数据报表,获取报表的物理文件路径

    之后就将报表加载到已做好的报表模板当中,设置好报表的数据源,最后就以文件流的形式输出,在这里就让它以pdf文件的格式输出。

    这个操作过程就和导入数据的类似。相对来说这个步骤从代码方面上看要简洁一点。

    完成了报表的数据导入,就到页面JS那边看一下

    设置打印弹出窗口,出现打印的提示信息。

    我们现在来看一下这页面的效果如何

    到页面这边把需要打印的数据查询出来,然后就点击打印当前数据。

    所需要打印的数据到在水晶报表里面了

    我们可以对这份报表文件下载

    以pdf的文件类型输出。就这样,水晶报表的基本思路和代码就介绍完毕了。如有疑问,欢迎询问。

    最新回复(0)