我有一个需要以PDF格式显示大量报告的Web应用程序。它是一个asp.net应用程序,我使用SSRS LocalReport对象以PDF格式渲染,然后写入页面。我必须使用本地模式(而不是远程模式),因为我在发送到报告进行渲染之前对C#中的数据进行了大量处理。
我发现这些报告需要很长时间才能呈现 - 有些会在几分钟内完成。这是不可接受的,因为之前我在2000年使用Crystal Reports V8编写的应用程序在几秒钟内就会呈现这些报告。
我正在使用VS 2012和报告查看器2012,我很惊讶技术在12年内已经退步了很多。
我注意到SSRS在页面呈现方面存在巨大的问题,我认为这是因为SSRS的结构是基于控件的,而不是基于页面的Crystal Reports。因此,Crystal在页面大小调整,页眉,页脚和页面编号等方面并没有那么多。
任何有类似问题和任何建议的人都会非常感激。
答案 0 :(得分:2)
我做了大量的研究和实验,并且能够显着提高报告速度。我想分享一些我实施的改进。
1。)不要使用全局总页数,因为它会强制报告处理两次。
2.)在将数据分配给字段时避免使用表达式。我发现这是造成延误的主要原因。我正在使用的一些表达......
= Format(myDate, "dd-MMM-yy")
= ": " + myfield.value
我在代码中完成了所有格式化并将格式化数据提供给报表,并且不让报表执行任何表达式处理。
3。)文档图应该只是一个字段,不要使用任何表达式。
4.。)尽可能将Textboxes CanGrow属性设置为false。
5.避免使用报告中的代码部分。
我希望将来可以帮助别人。
答案 1 :(得分:0)
Reporting Services具有名为“InteractiveSize”的报告级别属性。这可以设置为0,0这基本上意味着整个报表在屏幕上呈现。将其设置为适当的A4(21厘米,29.7厘米)或其他标准页面大小,例如US Letter(21.6cm,27.9cm)将使报表渲染器按需渲染页面,就像Crystal一样。