机房重构——报表的创建,显示

        在机房收费的历程中,报表是少不了的,几乎任何一个管理系统都会用到报表这样的一个方便统计的图表,我们在VB6.0的机房用过了报表,是第三方的插件,grid++的报表,因为是第三方的报表,所以在设计上还是有不足的地方,不能满足所有的需求,而这一次在VS中,报表就来的方便多了,VS自己就带了一个报表控件,这个控件ReportViewer虽然也有不好的地方,但是比起原来的报表也是方便多了。


一、报表的绘制


        说道画报表这个问题,还是要先从VS中的报表原理来讲起。

机房重构——报表的创建,显示_第1张图片首先来看,ReportViewer就是一个报表的容器,里面的报表是可以替换的,所以在显示报表之前需要先给这个控件指定一个报表文件(*.rdlc),然后这个控件在指定的同时会加载这个报表文件,由报表文件获得数据之后然后再显示到控件中,最后我们才能看到报表的外在表现形式。

        所以第一步我们要做的就是建立这个所谓的报表“真”文件,也就是*.rdlc的文件。

我做好的文件如下图:


其中的数据区就是从数据源实例中得到的。所以在画这个报表文件之前要先指定数据集。在控件上点击右上的小箭头,点设计新报表:

然后就会出现新建数据集的一个对话框,写好名称后,点击数据源上的新建,指定数据库后就可以用自己数据库的数据集来创建数据集。

机房重构——报表的创建,显示_第2张图片

机房重构——报表的创建,显示_第3张图片

创建好数据库连接了以后,我们就要开始选择数据集中所要包含的信息了,如图,需要什么表的字段,就添加什么字段。机房重构——报表的创建,显示_第4张图片

创建好数据集后会默认选中,然后进行下一步。

机房重构——报表的创建,显示_第5张图片

然后就是排列字符串了,在排列的时候要知道自己要把数据显示在什么地方,这里要一字排开,所以选择按行来排列其中求和列随便添加一个就可以了,它是放在最后面进行统计用的:


然后再选择需要排列的方式和展示方法:


最后选择完了颜色之后就可以进行报表的设计了。

初始的状态是这样的:机房重构——报表的创建,显示_第6张图片我们可以向报表面板里面添加控件,也就是一些字符和必要的函数,这都在左面的工具箱和报表数据有体现,其中工具箱是用来添加控件用的,可以添加新的表,lable框,还有一些常用的东西。而报表数据则是有一些给定的参数和自己设计的参数等数据构成。

机房重构——报表的创建,显示_第7张图片

添加完成了之后就成了最后的结果了,记住自己添加的参数,下一步就是添加数据了。


二、添加显示数据


在用报表实例之前要先添加报表的引用:

Imports Microsoft.Reporting.WinForms
然后写代码:

        Dim rptDataSource As New ReportDataSource
        Dim params() As ReportParameter =      '给报表的参数赋值
        {
            New ReportParameter("DateStart", Date.Parse(dtpStart.Text)),
            New ReportParameter("DateEnd", Date.Parse(dtpEnd.Text)),
            New ReportParameter("UserIDHost", UserNameHost)
        }
        '设置报表数据源名称  
        rptDataSource.Name = "DataSet1"     '指定数据集名
        '设置报表数据源实例  
        rptDataSource.Value = DayCheckList   '写的数据源名称

        rptvDayCheck.LocalReport.ReportEmbeddedResource = "UI.DayCheckReport.rdlc"   '报表文件名
        rptvDayCheck.LocalReport.DataSources.Clear()     '清空存在报表
        rptvDayCheck.LocalReport.DataSources.Add(rptDataSource)     '添加数据源
        rptvDayCheck.LocalReport.SetParameters(params)      '传递参数

        rptvDayCheck.RefreshReport()     '刷新报表控件

然后报表就可以显示了。


三、总结


        通过这次报表的学习,体会到了自己实际制作报表的艰辛,也知道了VS的人性化不是一点半点的,所以我们还是需要继续的学习,为了优化着想。


你可能感兴趣的:(重构,报表,机房收费系统)