SSRS LocalReport模式需要很长时间才能以PDF格式呈现

时间:2013-02-22 18:53:24

标签: reporting-services

我有一个需要以PDF格式显示大量报告的Web应用程序。它是一个asp.net应用程序,我使用SSRS LocalReport对象以PDF格式渲染,然后写入页面。我必须使用本地模式(而不是远程模式),因为我在发送到报告进行渲染之前对C#中的数据进行了大量处理。

我发现这些报告需要很长时间才能呈现 - 有些会在几分钟内完成。这是不可接受的,因为之前我在2000年使用Crystal Reports V8编写的应用程序在几秒钟内就会呈现这些报告。

我正在使用VS 2012和报告查看器2012,我很惊讶技术在12年内已经退步了很多。

我注意到SSRS在页面呈现方面存在巨大的问题,我认为这是因为SSRS的结构是基于控件的,而不是基于页面的Crystal Reports。因此,Crystal在页面大小调整,页眉,页脚和页面编号等方面并没有那么多。

任何有类似问题和任何建议的人都会非常感激。

2 个答案:

答案 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一样。