机房重构——报表

●前言

      一个星期 又一个星期,犹记第一次敲机房时候的感受,弄报表这一块的时候觉得很乱。这次用.net重构听说VS自带报表功能,心里就开心了不少,结果弄得时候弄了几天没有成功,就开始完善窗体。后来又接着弄,还是没有成功,心里上就有点“怕”了。一提到报表自己第一心态是我不会!今天我想找师傅验收一下,所以下午自己的心里特别的轻松,今天一定要弄出来,就一点点的重头开始做了。最终!我成功的做出来了!开心啊!

●步骤

1.创建窗体

       在机房中我们有周结和日结,做相应的部分时候创建相应的窗体。现在我以周结账单为例!创建出窗体后将下边的报表控件拖到窗体上!

                                         机房重构——报表_第1张图片

      将日期控件也放到窗体上之后,窗体界面如下:


2.创建报表

2.1创建



2.2创建后的界面

     

2.3添加表

      在上述创建的界面中右击添加表

                                                      

       出现如下的界面,点击新建:

机房重构——报表_第2张图片

                      机房重构——报表_第3张图片

                      机房重构——报表_第4张图片

                                 

2.4添加表头和数据

        添加完表后界面如下,表头可以单击进行修改,数据区可以点击下图中框出来的地方选择相应数据库中的字段。

机房重构——报表_第5张图片

2.5简单设计后的报表


2.6配置

       这样就完了吗?NO!接下里我们再回到周结账单的窗体上。在下图中的小三角中选择报表。

                           机房重构——报表_第6张图片

           选择好报表后进行配置:

机房重构——报表_第7张图片

   点击在数据设计器中编辑查询后,出现如下界面,按照红框中画出的步骤进行操作。

                                    机房重构——报表_第8张图片

   点击配置后出现如下向导,点击查询生成器:

       

   点击查询生成器后界面如下,可以去掉不需要查出的字段,添加自己的SQL查询条件,然后一直下一步直到完成。其中的@DateStart和@DateEnd都是参数,一会需要在U层代码中传入参数。

                    机房重构——报表_第9张图片

3.代码实现

Imports Microsoft.Reporting.WinForms   '引用
 Private Sub frmWeekCheck_Load(sender As Object, e As EventArgs) Handles MyBase.Load
        Me.ReportViewer1.RefreshReport()  '显示报表

    End Sub
 Private Sub btnQuery_Click(sender As Object, e As EventArgs) Handles btnQuery.Click
        Dim daychecksource As New ReportDataSource
        'Me.T_BillTableAdapter.Fill(Me.ChargeSystemDataSet.T_Bill, Format(DateStart.Value, "yyyy-MM-dd"))
        '设置报表数据源名称
        daychecksource.Name = "WeekCheck"
        '设置报表数据源实例
        daychecksource.Value = ChargeSystemDataSet1.T_Bill
        Me.ReportViewer1.LocalReport.ReportEmbeddedResource = "UI.WeekCheck.rdlc"
        '清空存在报表 
        Me.ReportViewer1.LocalReport.DataSources.Clear()
        '添加数据源
        Me.ReportViewer1.LocalReport.DataSources.Add(daychecksource)
        '传递参数  
        Me.T_BillTableAdapter.Fill(Me.ChargeSystemDataSet1.T_Bill, Format(DateStart.Value, "yyyy-MM-dd"), Format(DateEnd.Value, ("yyyy-MM-dd")))
        '刷新报表
        Me.ReportViewer1.RefreshReport()
    End Sub

●总结

      我用的是比较简单的这种绑定数据源的方法。代码只需要在U层中编写就可以。关键容易出错的地方就是参数的传递。而且DateTimePicker这个控件的日期还需要转换一下格式,否则传进数据库也无法正确的执行。通过这次报表发现自己如果内心就打败自己,那将会浪费很多时间,遇事要耐心一点,认真的解决!





你可能感兴趣的:(机房重构——报表)