1

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

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

我正在使用 VS 2012 和 Report Viewer 2012,我很惊讶技术在 12 年内倒退了这么多。

我注意到 SSRS 通常在页面渲染方面存在巨大问题,我认为这是因为 SSRS 的结构是基于控制的,而不是真正基于页面的 Crystal Reports。因此,Crystal 在页面大小、页眉、页脚和页码方面并没有那么纠结。

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

4

2 回答 2

3

我做了很多研究和实验,能够显着加快报告速度。我想分享一些我实施的改进。

1.) 不要使用全局总页数,因为它会强制对报告进行两次处理。

2.) 将数据分配给字段时避免使用表达式。我发现这是造成延误的主要原因。我使用的一些表达方式...

                  = Format(myDate, "dd-MMM-yy")
                  = ": " + myfield.value

我在代码中进行了所有格式化,并将格式化的数据提供给报表,并且没有让报表进行任何表达式处理。

3.) 文档地图应该只是一个字段,不要使用任何表达式。

4.) 尽可能将 Textboxes CanGrow 属性设置为 false。

5.) 避免在报告中使用代码部分。

我希望这对将来的其他人有所帮助。

于 2013-03-28T02:03:58.800 回答
0

Reporting Services 有一个名为“InteractiveSize”的报表级别属性。这可以设置为 0,0,这基本上意味着整个报表都呈现在屏幕上。将此设置为适当的 A4 (21cm,29.7cm) 或其他标准页面尺寸,例如 US Letter (21.6cm,27.9cm) 将导致报表呈现器按需呈现页面,与 Crystal 的做法相同。

于 2013-02-25T00:31:19.147 回答