剖析解决VB.NET报表问题效率低下的原因
2013-09-10 09:48
281 查看
在做机房收费系统时,想必大家都在报表这个问题上花费较长的时间吧,光是调试报表这个问题,就花了我四天的时间。 所以针对这个问题进行一个小小的总结,主要不是想知道自己在思考和解决问题上,存在什么问题?
报表简单的说是用表格和图表的形式动态的显示数据,有关如何设计报表,在网上有很多资料,在这里我就不重复说明了,有谁想了解如何设计报表的可以参照下面的一篇博客:
http://blog.csdn.net/xiaoxian8023/article/details/7106588
先看我的机房收费系统中报表的代码:
以上这段代码,主要是通过代码将数据源绑定到窗体的报表控件,并且将rdlc文件嵌入到Windows窗体中!但是在运行当中,出现了以下的错误:
刚开始出现上面的问题,猜测会是参数设置出现了问题,所以一个个对参数又进行了一一排错,但是还是没解决问题。 后来再网上查找了一下解决方案,但是大多数还是说跟参数的设置有关。 (注意,我的搜索—>本地报表处理期间出错)
后来,在实在没有办法的情况下,找来了伟大的小崔。 在看小崔解决问题的过程中,发现我们前期想问题的方式,还是有点相似的。 以前在解决问题的时候,都是胡乱的搜索,但是很明显这次比以前进步多了。
后期,小崔搜索第一步:准确的确定关键字(本地报表处理期间出错 传参) 第二步:只查看有关参数说法!一下子就找到了新的解决方案:路径上出现了错误。这样就自然而然的把焦点定位到下面一句代码:
以上代码定义了即要嵌入到Winform窗体的报表的路径。查看了一下UI层的程序集名称,如下图:
发现在新建项目的时候,直接就把项目名称设置为JIFAGN_Charge ,但是默认的是UI层!所以报表在运行的时候,找不到UI这个程序集名称!在离真相往往还差一步的情况下,自己就止步不前了,就拿这次来说,多了两个字“参数”,结果就出来了,但是自己就没有往这方面思考过。这是为什么呢?而往往在解决一个小小问题上,自己都需要花费半天或是一天的时间,效率是极其的低下!
就像一只无头苍蝇一样,没有方向的乱串!
所以,准确的确定关键字和查找范围,可以大大提高解决问题的效率。
报表简单的说是用表格和图表的形式动态的显示数据,有关如何设计报表,在网上有很多资料,在这里我就不重复说明了,有谁想了解如何设计报表的可以参照下面的一篇博客:
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这个程序集名称!在离真相往往还差一步的情况下,自己就止步不前了,就拿这次来说,多了两个字“参数”,结果就出来了,但是自己就没有往这方面思考过。这是为什么呢?而往往在解决一个小小问题上,自己都需要花费半天或是一天的时间,效率是极其的低下!
就像一只无头苍蝇一样,没有方向的乱串!
所以,准确的确定关键字和查找范围,可以大大提高解决问题的效率。
相关文章推荐
- VB.NET章鱼哥出品—怎样解决MDI子窗口被父窗口中的控件覆盖的问题
- VB.net使用多线程与委托解决时间延迟的问题
- vb.net中使用GetPrivateProfileString访问INI文件,解决中文路径问题
- 【原创】构建高性能ASP.NET站点 第七章 如何解决内存的问题(前篇)—托管资源优化—垃圾回收机制深度剖析
- asp.NET 2.0中引发CSS失效问题原因和解决方法
- VB.Net水晶报表:记录选择公式无效,显示出所有记录的解决方法
- 不选择使用Lucene的6大原因(转载) - Hubble.net 将尽可能解决这些问题
- 机房收费系统总结之4——VB.NET 轻松解决判断文本框、组合框为空问题
- 【原创】构建高性能ASP.NET站点 第七章 如何解决内存的问题(前篇)—托管资源优化—垃圾回收机制深度剖析
- 不选择使用Lucene的6大原因(转载) - Hubble.net 将尽可能解决这些问题
- 使用doublebuffered来解决VB.net中datagridview数据显示和滚动慢和卡顿的问题
- vb.net从DataGridView复制到Excel.代码实现,解决中文乱码问题 (转载+亲自实践)
- [VB.NET]请教一个 水晶报表 问题!
- asp.net 2.0 水晶报表部署问题解决过程
- vb.Net中http+ssl问题的超级简单解决方法
- [VB.NET]水晶报表问题?、急~~~~~
- [VB.NET]我是新手,想让高手帮忙解决个问题
- VS.NET下水晶报表分发时的问题及解决(转贴)
- VB.net——窗体相互操作的问题解决
- [VB.NET]在线急等问题解决方法!~~~