代码之家  ›  专栏  ›  技术社区  ›  Rob Packwood

针对.NET中的大量内存数据生成报告的最有效方法是什么?

  •  4
  • Rob Packwood  · 技术社区  · 16 年前

    现在我有一个过程,一次处理2500张钞票,当每个范围完成时,写出一个包含所有数据的XML文件。然后我使用Crystal Reports报告这些数据,这需要几分钟的时间。我正在寻找一个更好的方式来报告这些数据,需要一些建议。

    Crystal解析XML的速度慢吗?我尝试将Crystal放入内存中的数据集,但似乎一旦我查看了500条左右的记录,XML路由实际上更加高效。我是否应该将数据写入我们的SQL数据库,并使用索引优化进行报告?还是我错过了一个更快的替代方法?

    4 回复  |  直到 16 年前
        1
  •  2
  •   Reed Copsey    16 年前

    根据我的经验,Crystal Reports在非常大的报告项目上进展缓慢。

    Telerik's reporting tool 为了这个。

        2
  •  2
  •   Community Mohan Dere    9 年前

    您是否考虑过多线程处理报告?或者使用多个服务器/服务来处理报告生成的子集。

    我们使用晶体报告席,发现它非常缓慢。此外,当从单个服务执行多线程时,Crystal reports对您可以创建的线程报告数量有限制。

    因此,请将多个服务/服务器作为生成子集的选项。

    编辑

    Crystal Question 在X-)之前

        3
  •  2
  •   Austin Salonen gmlacrosse    16 年前

    我过去在CR遇到过同样的事情。当我遇到这个问题时,我将新开发的XML样式表转换为HTML。它执行速度更快,但开发时间更长。

        4
  •  1
  •   Community Mohan Dere    9 年前

    就我个人而言,我发现Crystal Reports是一个占用内存的工具,即使是很小的数据集也需要很长时间才能启动。我们还在VS2008中为使用Win2K的用户开发,因此存在版本冲突,因为VS2008附带的CR版本仅适用于XP或更高版本。

    我把我们所有的报告都转换成了 in-memory objects serialized to XML ,可通过XSL转换为HTML/CSS,并可使用WebBrowser控件打印。现在,我们的报告会在XML构建后立即加载,而不是等待Crystal启动,这将查看时间从约30秒减少到不到一秒,MSI大小从约27MB减少到1.5MB。