打印数据报表

                                     打印数据报表
开发工具与关键技术:Visual Studio 2015
作者:李德新
撰写时间:2019年6月02日

在生活中我们总是避免不了要在网上去打印一些我们所需要的数据或者是什么资料,因此我们就应该在网上有打印的功能吧!其实呢打印的功能在很久之前就已经有了的,而且还有专门用于打印数据表的插件呢,那么我们就来看看我们是如何去打印数据表单的。
首先,我们要在页面上创建几个或者多个输入框去接收我们查询数据所要用到的条件,因为我们查询数据之前必须要先去查询并筛选出我们所需要的数据,因此我们就应该要在页面上创建几个或者多个输入框去接收我们查询数据所要用到的条件,只有这样我们才可以在打印的按钮上去获取到我们要用到的条件。
在这里插入图片描述
然后,我们就应该要先在页面上去创建一个打印数据的按钮,然后我们再在按钮上去写属于打印的方法。那么我们就先来在页面上去创建一个按钮。
在这里插入图片描述
如上图所示:我们已经在页面上创建了一个按钮,并且为它添加了一个打印的点击事件,在这个按钮上我们还要加上很多的东西我们才可以去打印我们所需要的数据。而在我们打印数据之前我们还要先对数据进行查询以及筛选,而要实现查询与筛选就必须要先获取到我们要查询与筛选的数据的条件,然后再去根据我们给出的条件去查询到数据并筛选出我们需要的数据。
在这里插入图片描述
如图中所示的那样:我们要先去获取到页面上传过来的查询的条件,然后再去根据条件从数据库中查询到我们需要的数据,如此一来,我们就可以根据页面上传过来的条件去数据库中查询到我们所需要的数据,并且筛选出来。
如此我们就要在控制器上写代码了,在控制器上我们查询数据还需要使用到Linq语句中使用group by分组,分组去根据媒体数据的ID 去查询数据并且将数据进行分组,然后再把处理好的数据存放在我们新创建的数据表格之中。
在这里插入图片描述
如图所示:我们使用Linq语句中使用group by分组,根据数据的ID 去查询数据并且已经将数据进行分组,那么我们就可以去查询出我们需要的具体的数据了。
那么,接下来我们就是需要去查询到我们所需要的数据即可。
在这里插入图片描述
如此我们就已经是拿到了我们所需要的数据了,然后就是如何去筛选了。然后如何去筛选就要看每个人不同的看法与需求了,而我们的目的已经达到了,然后就是要如何去转换数据的格式,以及如何把这些数据传输出去了。
要想打印出我们需要的这些数据,我们需要去把我们查询到的这些数据转化为DataTable的格式,那么我们要如何去转化数据的格式呢?我们先是要定义一个要返回的DataTable对象,还要新建一个保存列集合的属性信息数组去存放一些数据,然后我们才能够去循环遍历集合,使用反射获取类型的属性信息在获取到我们需要的信息之后我们在使用反射获取T类型(也就是泛型)的属性信息,返回一个PropertyInfo类型的集合,如下图所示:
在这里插入图片描述
如此我们就可以再新建一个用于添加到DataTable中的DataRow对象,并把我们要转换的数据的格式存放到我们的这个新建一个用于添加到DataTable中的DataRow对象之中即可。
在这里插入图片描述
然后我们就可以去返回DataTable对象,这样我们就可以在我们打印数据标的时候去使用他了,也就可以帮助我们将查询出来的数据转化为DataTable的格式。
在我们完成格式的转化之后我们就可以去实例化我们的数据然后再把它转化为数据流把这些数据传输出去。
在这里插入图片描述
我们第一步显示要实例化数据集,然后再将dtResult放入数据集中名为“tbAchievement”的表格中,在确认数据都放入了数据表中之后就可以实例化数据报表;然后就可以去获取到我们这个报表的物理路径,然后就可以去将我们的数据报表放入到我们的报表模板之中了,接下来我们就可以设置我们这个数据报表的数据源再将这个数据报表转化为文件流输出即可。 最后我们就可以返回一个文件给页面,我们就可以把我们想要的数据报表打印出来了。
如此我们就可以做到打印数据报表的功能了,我们就可以在我们输入特定的条件之后就能筛选出我们想要的数据,并且把它们打印出来了。
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值