我正在建立一个价格表ap,用于我的业务(在C#3.5中使用VS 2008和WinForms)来替换一个excel电子表格,该电子表格遭受了15年的努力,以使其能够做到excel做得不好。< / p>
我在ReportViewer中呈现列表。该报告大约有650行和17列。它加载速度非常快,没有任何条件格式,但随着格式的添加而变得非常慢。
例如,我有一种格式,可根据上次更新项目成本的日期对项目的价格进行颜色编码。我正在使用的代码是:
=Switch(Fields!IsValid.Value="99" or Fields!IsValid.Value="3" or Fields!IsValid.Value="2","MistyRose",Fields!IsValid.Value="1","Khaki",Fields!IsValid.Value="0","Transparent")
还有文本颜色和其他一些列的格式。加载此报告已经使ReportViewer在我的开发计算机上准备报告15秒以上,所以我不想想在办公室里放慢机器需要多长时间。
我试过改变语句格式化的方式(不使用或使用IIf语句等语句......我也试过预先计算字段中的值,以便代码看起来像:
=Fields!PriceBackgroundColor.Value
非常简单......速度不快(它确实有点帮助)
任何人都可以向我指出有关ReportViewer Control中最佳格式化性能的信息或建议解决方案。
麦克
答案 0 :(得分:1)
我从来没有找到过使用ReportViewer控件进行多次条件格式化的方法,而不会让它变慢,所以我将其用于打印列表。默认的打印视图没有条件格式,很少有完整的视图打印,只能由我自己完成,所以我可以等一两分钟。
原型界面正在改为数据网格,最终项目(组合一堆小的aps)将被转移到WPF。
学习是这些项目的主要目标之一,这是一件好事。