2009-09-08 76 views
6

我正在使用Delphi和Crystal Reports 9.0 ActiveX对象。有没有办法从流中加载Crystal Report 9.0文件?

我知道,我可以从这样的文件中加载报告:

crApplication.OpenReport(AFileName)

不过,我想我的存储报告中的内存和存储,而不是打开它文件。 我不想在我的磁盘上创建任何临时文件。

任何想法?

谢谢你的时间。

+0

肿块。我也想知道这个(但是对于C#),并且在经过大量的goolging之后,它似乎不可能,这在我看来确实是愚蠢的。你会认为最惊人的报告作者应该有这样的事情。 – Earlz 2009-12-11 15:22:06

+0

Totaly同意你的意见。他们正在开发CR多年,没有人不需要这样的功能?它应该可用,因为ver。 1.0 – Wodzu 2009-12-11 22:13:06

+0

但是你肯定已经写过报告文件了,所以你不会创建任何临时文件,你只是使用你的报告文件?我对你想要达到的目标感兴趣。 – 2009-12-22 14:31:16

回答

2

这个答案来得晚,但迟到总比不到好...

您可以用属性FILE_ATTRIBUTE_TEMPORARY和FILE_FLAG_DELETE_ON_CLOSE文件试试。这样的文件(如果有足够的高速缓存可用)不写在硬盘上,并在应用程序关闭时删除。

有描述该BLOG的:

http://blogs.msdn.com/b/larryosterman/archive/2004/04/19/116084.aspx

而且这里有一个北京时间文章:

How to create temporary file (0x100) to accelerate application

+0

这是一个非常好的想法:)但是,我认为该文件仍然可以在应用程序打开的时候被复制?无论如何,当之无愧+1 :) – Wodzu 2011-05-01 13:01:11

+0

好吧,不是那么容易,因为文件只在缓存中。也许这不可能,但不是没有市长的困难。 100%的安全性是不可能的,您的计算机内存中的每个文件和数据都可以被复制... – Andreas 2011-05-11 08:21:53

相关问题