您的位置:首页 > 其它

报表制作简化版

2016-05-22 16:58 190 查看

前言:

机房收费系统无论是重构还是第一版,都用到了报表,为什么在一个系统中要添加报表呢?报表的作用是什么呢?报表百科。我理解的报表是:向上级报告情况的一个媒介,没有固定的格式。之前在项目中,我们真正给企业做过一次报表,是以导出word的形式生成的,大概格式如图:






这次在自己的《机房收费系统》中设计报表,我使用的VS中自带的报表制作工具:ReportViewer。之前看前辈的博客,大家用的方法大多是以绑定数据源的方式,将数据库中的信息显示到报表中,制作过程相当精彩。详情参考博客:
http://blog.csdn.net/zlt995768025/article/details/50887984
/article/4088307.html

看了前辈的博客,发现了一个问题,控件ReportViewer和控件Datagridview给人的感觉是一样的,连接数据库的步骤也几乎是一样的。我们可以直接通过将Datagridview绑定数据源的方式显示数据库中的信息,也可以通过从数据库中查找,再将一条一条数据返回的形式显示数据库中的信息。那么,ReportViewer是不是也有另一种显示数据库信息的方式呢?我们能不能通过三层架构,将信息返回到U层后,直接把查到的数据赋值给报表中的变量,让其显示呢?

实验证明,一切都是有可能的!

引用:

Imports Microsoft.Reporting.WinForms


新建报表:



这一步和前辈的步骤是一样的。

设置参数:



参数,个人理解是传递数据的变量

相关代码:

'显示报表信息
'设置嵌入报表的资源的名称;
ReportViewer1.LocalReport.ReportEmbeddedResource = "UI.Report1.rdlc"
'清空报表数据源;
ReportViewer1.LocalReport.DataSources.Clear()
'给参数赋值;

'给参数赋值
Dim params1() As ReportParameter = {New ReportParameter("ManagerId", ManagerId),
New ReportParameter("DateNow", DateTime.Now.ToString("yyyy-MM-dd")),
New ReportParameter("SaleCount", SaleCountSum),
New ReportParameter("RefundCount", RefundCountSum),
New ReportParameter("RechargeSum", RechargeSum),
New ReportParameter("RefundSum", RefundSum)}
'传递报表中的参数集合
ReportViewer1.LocalReport.SetParameters(params1)
Me.ReportViewer1.RefreshReport()


在这里不需要用代码连接数据源和数据库,只需要还按照以前的查询语句,把从数据库中查到的数据赋值给参数就可以了

成果图:



大家可以根据自己的想象力自行美化,添加图片或者线条,我在这里就不展示了。(如果有看不懂的地方,请留言,编者会为大家一一解答)

小结:

1、报表制作是一个小马过河,自己探索的过程,深浅,难易,只有自己尝试过了才知道。

2、即使走在别人后面,我们也可以另辟蹊径,勇于探索是不分早晚的。

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: