欢迎来到Doc100.Net免费学习资源知识分享平台!
您的位置:首页 > 程序异常 >

剖析解决vb.net报表有关问题效率低下的原因

更新时间: 2014-01-05 03:06:35 责任编辑: Author_N1

 

剖析解决VB.NET报表问题效率低下的原因

  在做机房收费时,想必大家都在报表这个问题上花费较长的时间吧,我也是光是调试报表这个问题,就花了我四天的时间。 所以针对这个问题进行一个小小的总结,主要不是想知道自己在思考和解决问题上,存在什么问题? 


  报表简单的说是用表格和图表的形式动态的显示数据,有关如何设计报表,在网上有很多资料,在这里我就不重复说明了,有谁想了解如何设计报表的可以参照下面的一篇博客: 

       http://blog.csdn.net/xiaoxian8023/article/details/7106588

   

  先看我的机房收费系统中报表的代码:   

        Dim strStart As String
        Dim strEnd As String
        Dim myTable As New DataTable

        strStart = Trim(DateStart.Text)      '取得开始时间
        strEnd = Trim(DateEnd.Text)          '取得结束时间

        If DateStart.Text > DateEnd.Text Then
            MsgBox("输入的日期不符合要求,请重新输入!")
            Exit Sub
        End If

        myTable = Recheck.QuerySession(strStart, strEnd)

        '声明一个报表数据源对象  
        Dim rptDataSource As New ReportDataSource
        '设置报表数据源名称  
        rptDataSource.Name = "ChargeDataSet"
        '设置报表数据源实例  
        rptDataSource.Value = myTable

        '设置嵌入报表的资源的名称  
        ReportViewer1.LocalReport.ReportEmbeddedResource = "UI.ChargeReport.rdlc"

        '清空报表数据源  
        ReportViewer1.LocalReport.DataSources.Clear()
        '添加报表数据源  
        ReportViewer1.LocalReport.DataSources.Add(rptDataSource)

        '设置报表中的参数集合,这里传递的参数,名字大小写必须一致,  
        '且其本身数据类型必须与报表中定义的数据类型也必须一致。  
        Dim params() As ReportParameter =
            {
                New ReportParameter("DateStart", DateStart.Text),
                New ReportParameter("DateEnd", DateEnd.Text)
            }

        '传递报表中的参数集合  
        ReportViewer1.LocalReport.SetParameters(params)

        '刷新报表  
        Me.ReportViewer1.RefreshReport()

    End Sub


  以上这段代码,主要是通过代码将数据源绑定到窗体的报表控件,并且将rdlc文件嵌入到Windows窗体中!但是在运行当中,出现了以下的错误:



  刚开始出现上面的问题,猜测会是参数设置出现了问题,所以一个个对参数又进行了一一排错,但是还是没解决问题。 后来再网上查找了一下解决方案,但是大多数还是说跟参数的设置有关。 (注意,我的搜索—>本地报表处理期间出错


  后来,在实在没有办法的情况下,找来了伟大的小崔。 在看小崔解决问题的过程中,发现自己前期想问题的方式,还是有点相似的。 以前在解决问题的时候,都像是无头苍蝇乱串,但是现在很明显这次进步多了。

 

  后期,小崔搜索第一步:准确的确定关键字(本地报表处理期间出错传参) 第二步:只查看有关参数说法!一下子就找到了新的解决方案:路径上出现了错误。这样就自然而然的把焦点定位到下面一句代码:

 

  '设置嵌入报表的资源的名称  
        ReportViewer1.LocalReport.ReportEmbeddedResource = "UI.ChargeReport.rdlc"

          以上代码定义了即要嵌入到Winform窗体的报表的路径。查看了一下UI层的程序集名称,如下图:

      

  发现在新建项目的时候,直接就把项目名称设置为JIFAGN_Charge ,但是默认的是UI层!所以报表在运行的时候,找不到UI这个程序集名称!在离真想往往还差一步的情况下,自己就止步不前了,就拿这次来说,多了两个字“参数”,结果就出来了,但是自己就没有往这方面思考过。这是为什么呢?而往往在解决一个小小问题上,自己都需要花费半天或是一天的时间,效率是极其的低下! 就像一只无头苍蝇一样,没有方向的乱串!

  所以,准确的确定关键字和查找范围,可以大大提高解决问题的效率。


上一篇:上一篇
下一篇:下一篇

 

随机推荐程序问答结果

 

 

如对文章有任何疑问请提交到问题反馈,或者您对内容不满意,请您反馈给我们DOC100.NET论坛发贴求解。
DOC100.NET资源网,机器学习分类整理更新日期::2014-01-05 03:06:35
如需转载,请注明文章出处和来源网址:http://www.doc100.net/bugs/t/18355/
本文WWW.DOC100.NET DOC100.NET版权所有。