打印水晶报表

插件使用 专栏收录该内容
6 篇文章 0 订阅

作者:李光辉

撰写时间:2019.5.7

打印是我们需要常用的的功能之一,下面是我收集的一些水晶报表的基础资料和学习理解过程:首先是下载水晶报表的插件并安装,设置报表的数据源,创建一个数据集来编辑出数据源的位置,画出水晶报表的模板样式。

可以通过两种方式添加数据源:一种是通过与数据库的表进行连接,把需要的表添加进来: 用水晶报表的“数据库专家”直接连接数据库,报表数据会即时显示在报表上,即把数据直接从数据库拉到报表上,这样与程序没有直接关系,即报表与数据库之间多了一个数据连接,与程序的数据库连接没有直接关系
在这里插入图片描述

另一种是数据库里没有你需要的表或者需要的数据不完整,只能自己进行设计: 先在程序中建立数据集,然后设计报表,再用程序填充数据到数据集,这样报表会显示这些数据。
在这里插入图片描述

把数据表中的一些字段拖放到报表的"组头"部分,给其它段中添加其它东西,设置文本对象的格式,设计完后如下图(.表头写到页眉节;明细写到详细资料节;脚注写到组尾):
在这里插入图片描述

.以上做完后,就要用程序把数据填充到数据集中,这样报表才能显示出来,下面来介绍一下打印水晶报表的代码部分(打印步骤相对固定,记住以下方法即可使用)

将IEnumerable类型的集合转换为DataTable类型:
在这里插入图片描述
在这里插入图片描述

然后在控制器写一个方法,对需要打印的数据进行查询以及筛选,查询及筛选的代码就省略介绍了

下面介绍一下打印中需要处理的几个重要 步骤:

将查询出来的数据转化为DataTable的格式

DataTable dtResult =
LINQToDataTable(listResult);

1、实例化数据集

PrintReport.ReportDB dbReport = new PrintReport.ReportDB();

2、将dtResult放入数据集中名为“tbAchievement”的表格中

dbReport.Tables[“tbAchievement”].Merge(dtResult);

3、实例化数据报表

PrintReport.AchievementReport rp = new PrintReport.AchievementReport();

4、获取报表的物理文件路径

string strRpPath = Server.MapPath("~/") + “Areas\ExaminationManagement\PrintReport\AchievementReport.rpt”;

5、将报表加载到报表模板中

rp.Load(strRpPath);

6、设置报表的数据源

rp.SetDataSource(dbReport);

7、将报表转化为文件流输

StreamdbStream=rp.ExportToStream(CrystalDecisions.Shared.ExportFormatType.PortableDocFormat);

return File(dbStream, “application/pdf”);

打印的原理从本质上和Windows窗体画图的原理是一样的,你在窗体里面画了一个圆,那么同样的代码,打印机也会在纸张的同一个位置打印了出一个圆,它们所不同的就是输出终端而已,

基本步骤:1.创建项目Print 2.主界面添加一个按钮 3.和水晶报表预览控件 4.右击资源管理器,添加一个数据集 5.按步骤添加自己的数据库到数据集中、添加完毕 6.再右击项目,新建添加水晶报表 7.接着选择报表里面需要的表,字段,按步骤操作 8.接着双击刚才添加的按钮
9.代码流程控制部分

  • 2
    点赞
  • 0
    评论
  • 0
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

©️2021 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值