2009-09-04 23 views
0

我们开发了一套水晶报告(不是我的想法),它将重新创建我们发送的一些样本PDF表单。我们已经为报表中的每个页面导入了背景图像(从原始PDF中获取),然后我们将数据字段拖放到这些数据字段之上。Crystal reports - 内存不足异常

现在,尽管原始图像我们用于背景相对较小,但rpt文件非常大(约50 MB)。这有点麻烦,但现在,当我们部署到服务器时,我们发现在尝试运行报告时,我们会发现内存不足错误。

有任何人任何想法:

  1. 一个更好的办法来做到这一点。

  2. 该报告文件太大(以及如何减少它)的原因。

  3. 一个想法,为什么我们得到内存不足的错误。

+0

什么版本的Crystal Reports? – MartW 2009-09-04 16:29:44

+0

50米报告文件。该死的! – dotjoe 2009-09-04 18:13:17

+0

这是与视觉工作室2008安装的版本。是的50M - 这是一个可怕的痛苦。 – Paddy 2009-09-04 19:44:04

回答

0

哇,讨厌。您是否可以分割这些报告,以便每个报告只有一个图像?

如果不是,那么您必须查看通过代码将图像加载到报告中。在报告中保存图像本身总是会大量增加水晶报表(比如它将它们作为TIFFs或其他内容存储在内部),但有可能通过使用较小图像的代码来实现。 此代码示例可能会有所帮助:

https://www.sdn.sap.com/irj/boc/index?rid=/library/uuid/f02cd85d-cf66-2b10-878d-9337242838f0

+0

这是我们正在研究的方法。使报告的设计更令人讨厌,但它看起来是必要的。感谢您的链接 - 这是实际指向SAP网站的少数几个网站之一,而不是旧的,已停用的业务对象网站。 – Paddy 2009-09-06 10:10:46

0

这些错误很可能来自图像本身。虽然您可能会将它们作为小JPG文件传递给报告,但报告本身可能会将它们转换为位图,这可能会非常巨大。

第一步:重新创建没有任何图像的报告,以确定图像是否会造成巨大的尺寸。如果大小下降到例如5 MB,您肯定知道这些图像会导致问题,需要找到解决方法。

要解决这个问题,您需要找到一种方法来告诉报告以JPG压缩方式存储这些图像以再次减小尺寸。不过,我不知道Crystal Reports和/或您的项目是否可行。

(在最坏的情况下,您的报告不仅保存了这些图像作为位图,但它也将其延伸到一个尺寸覆盖整个页面,从而使他们甚至更大!)

+1

我已经完成了验证图像导致问题的过程。我在水晶报告中看不到任何方法来告诉它如何存储图像,这有点麻烦...... – Paddy 2009-09-04 10:31:38

+0

所以,你需要以某种方式减小这些图像的大小。或者向服务器添加更多内存。你使用的是32位服务器还是64位服务器?如果是64位,Web应用程序是否也被设计为64位,包括Crystal Reports? – 2009-09-04 15:33:59