机房重构——报表

强烈推荐一个大神的人工智能的教程:http://www.captainbed.net/zhanghan数据库

●前言

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

●步骤

1.建立窗体

       在机房中咱们有周结和日结,作相应的部分时候建立相应的窗体。如今我以周结帐单为例!建立出窗体后将下边的报表控件拖到窗体上!spa

                                         

      将日期控件也放到窗体上以后,窗体界面以下:.net

2.建立报表

2.1建立

2.2建立后的界面

     

2.3添加表

      在上述建立的界面中右击添加表设计

                                                      

       出现以下的界面,点击新建:3d

                      

                      

                                 

2.4添加表头和数据

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

2.5简单设计后的报表

2.6配置

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

                           

           选择好报表后进行配置:blog

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

                                    

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

       

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

                    

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这个控件的日期还须要转换一下格式,不然传进数据库也没法正确的执行。经过此次报表发现本身若是心里就战胜本身,那将会浪费不少时间,遇事要耐心一点,认真的解决!