有无条件打印水晶报表

有无条件打印水晶报表

开发工具与关键技术:Visual Studio 前端

作者:盘子

撰写时间: 2019年 08 月 01 日

在做项目过程中,每个模块总少不了对数据的打印与导出这两个功能。现在来总结一下做这两个功能所出现的错误点以及学习有关的知识点。打印与导出可以说是一样的,在这里主要是对打印水晶报表进行总结,导出只是提一下,因为出现的问题一样,打印的问题解决后,导出所出现的问题点也就解决了。

问题点:点击打印、导出,(页面无法跳转到打印、导出页面),打印、导出页面输出只有一个双引号 “” 空白页面(如最后的效果截图图一)

  1. 前提条件:数据、代码完整、没有Bug
  2. 查找问题出现的原因:
  1. 水晶报表名称、数据集名称是否一致;

(上面所出现的问题,主要是因为水晶报表名称不一致,改为一致后问题解决)

2.报表元素的数据类型是否正确(是否与控制器查询的数据类型一致,报表的数据类型是否要更改(string类型改为dateTime类型或decimal类型))

3.在做水晶报表,如果发现要更改、添加、删除报表里的数据或数据类型,要打印的报表数据要重新刷新并引入,而且水晶报表也要要重新画(一般除了报表标题以及页脚两个部分不用更改之外,要打印的内容部分要全部更改,即要重新拉表格数据、重新画表)

  1. 控制器代码:查询需要打印的数据代码截图:报表名称要数据集里创建的报表名称一致(如图,蓝色框)

有无条件打印水晶报表_第1张图片

封装好的IEnumerable类型集合可以直接使用(一般都是直接Ctrl + C使用的,怕敲错代码)

5、一个数据集里可以创建多张水晶报表(多张报表共用一个数据集),可以跨区域创建。如果是跨区域,就要在获取物理文件地址的代码语句中,更改区域名和报表模板名称,若不跨区域,就只更改报表模板名称。如上面的代码截图,三个红色框标记的地方的名称是要保持一致的。

有无条件打印水晶报表_第2张图片

  1. 视图代码:有条件打印与无条件筛选打印。有条件打印即控制器那边的代码带有参数查询表格数据,无条件打印即查询需要打印的数据时不带参数的。如上面控制器的代码截图所示,是无条件打印,打印查询的表明后面的括号里无参数,即是空的,有条件打印即带参数,就需要在括号里面放参数(如后面那些被注释掉的“int 参数”)。

如果想要在打印报表时可以进行数据筛选打印单条或者多条,查询数据就需要带有参数。不需要进行筛选打印即只是简单的打印全部的数据信息,查询数据时可以不带参数。可以根据自己的实际需要选择哪一种打印方法。两种打印条件的打印方法截图,如下:

有无条件打印水晶报表_第3张图片       

  1. 最后是效果截图,在最开始打印报表时,打印页面输出为带有一个双引号“”的空白页面,

如效果图图一。解决问题后,打印的报表出现。

有无条件打印水晶报表_第4张图片

你可能感兴趣的:(打印,水晶报表)