保存并重新加载已保存的rdlc报告

时间:2010-07-14 08:54:45

标签: wpf rdlc

我正在WPF中开发一个应用程序,我需要生成并显示报告。我正在使用RDLC生成和显示报告。报告的要求是

  1. 应生成并显示报告。
  2. 用户应该能够保存报告(他们没有指定保存报告的格式。)
  3. 用户应该能够加载并查看已保存的报告。
  4. 我目前正在做的是,我正在从RDLC文件生成临时pdf文件以显示报告。如果用户希望保存报告,则报告将保存为PDF,否则将删除临时PDF文件。当用户想要加载保存的报告时,他可以,因为它是PDF格式。

    在程序中,我在WPF中使用“winformhost”控件来显示报告。还使用了ReportViewer控件。

    但我现在面临的问题是,由于我们使用的是“winformhost”控件和PDF格式,因此显示报告的速度相当慢。

    我的问题是,如果我使用这种生成报告并以PDF格式显示报告的逻辑,我怎样才能提高性能?如果不可能,有没有其他方法可以保存报告并随时重新加载,这会增加报告显示的过程?

    提前致谢, 阿尼什

1 个答案:

答案 0 :(得分:0)

在我看来,您可以通过分离问题来提高绩效。我的意思是,最好从自定义类生成报表的数据集,而不是直接从DB生成。

例如,如果我希望我的报告显示:订单年份 - 订单总数 - 客户。我将创建一个类

class CustomerStatistics
{
    public int OrderYear {get;set;}
    public int OrderQty {get;set;}
    public string CustomerName {get;set;}

} 

完成后,您将能够利用多线程。例如,我知道OrderQty的计算需要一段时间,所以我把它放在一个单独的线程中。

此外,您可以通过为需要浏览大型数据集的繁重计算创建存储过程来提高性能。如果是这种情况,您应该使用INTERSECT,EXCEPT等设置操作。优化查询。

这是我的一些想法。

干杯。