2009-09-08 4 views
6

Tôi đang làm việc với các đối tượng ActiveX Delphi và Crystal Reports 9.0.Có cách nào để tải tệp Crystal Report 9.0 từ luồng không?

Tôi biết rằng tôi có thể tải một báo cáo từ một tập tin như thế này:

crApplication.OpenReport (AFileName)

Tuy nhiên, tôi muốn lưu trữ báo cáo của tôi trong bộ nhớ và mở nó từ bộ nhớ thay vì tập tin. Tôi không muốn tạo bất kỳ tệp tạm thời nào trên đĩa của mình.

Bất kỳ ý tưởng nào?

Cảm ơn thời gian của bạn.

+0

vết sưng. Tôi cũng muốn biết điều này (nhưng đối với C#) và sau rất nhiều goolging có vẻ như nó có thể không được, mà là thực sự câm trong quan điểm của tôi. Bạn nghĩ rằng người viết báo cáo tuyệt vời nhất nên có một thứ như vậy. – Earlz

+0

Totaly đồng ý với bạn. Họ đang phát triển CR trong nhiều năm và không ai không bao giờ cần tính năng như vậy? Nó sẽ có sẵn từ ver. 1.0 – Wodzu

+0

Nhưng chắc chắn bạn đã phải viết một tệp báo cáo, vì vậy bạn sẽ không tạo bất kỳ tệp tạm thời nào, bạn chỉ sử dụng tệp báo cáo của mình? Tôi quan tâm đến những gì bạn đang cố gắng đạt được. –

Trả lời

2

Câu trả lời này đến muộn, nhưng muộn còn hơn không ...

Bạn có thể thử với một tập tin với thuộc tính FILE_ATTRIBUTE_TEMPORARY và FILE_FLAG_DELETE_ON_CLOSE. Tệp như vậy là (nếu đủ bộ nhớ cache có sẵn) không được ghi trên đĩa cứng và bị xóa khi ứng dụng của bạn bị đóng.

Có một BLOG trong đó mô tả này:

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

Và có ist một bài báo ở đây:

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

+0

Đây là một ý tưởng rất hay :) Tuy nhiên, tôi nghĩ rằng tệp vẫn có thể được sao chép trong thời gian khi ứng dụng được mở? Dù sao, cũng xứng đáng +1 :) – Wodzu

+0

Vâng, không dễ dàng như vậy, bởi vì các tập tin chỉ trong bộ nhớ cache. Có lẽ nó có thể, nhưng không phải không có khó khăn thị trưởng. Không thể bảo mật 100%, mọi tệp và dữ liệu trong bộ nhớ máy tính của bạn có thể được sao chép ... – Andreas