2009-09-08 4 views
6

Ich arbeite mit Delphi und Crystal Reports 9.0 ActiveX-Objekten.Gibt es eine Möglichkeit, eine Crystal Reports 9.0-Datei aus einem Stream zu laden?

Ich weiß, dass ich einen Bericht aus einer Datei wie folgt laden:

crApplication.OpenReport (AFileName)

Allerdings würde Ich mag meinen Bericht im Speicher speichern und sie aus dem Speicher öffnen statt Datei. Ich möchte keine temporären Dateien auf meiner Festplatte erstellen.

Irgendwelche Ideen?

Danke für Ihre Zeit.

+0

Beule. Ich würde das auch gerne wissen (aber für C#) und nach einer Menge Googeln scheint es, dass es nicht möglich ist, was meiner Meinung nach wirklich dumm ist. Man sollte meinen, der tollste Reportschreiber sollte so etwas haben. – Earlz

+0

Stimme absolut mit dir überein. Sie entwickeln CR seit Jahren und niemand braucht nie eine solche Funktion? Es sollte seit ver. 1.0 – Wodzu

+0

Aber Sie mussten sicherlich schon eine Reportdatei schreiben, also würden Sie keine temporären Dateien erstellen, Sie benutzen nur Ihre Reportdatei? Ich bin daran interessiert, was Sie erreichen möchten. –

Antwort

2

Diese Antwort kommt spät, aber besser spät als nie ...

Sie können mit Attributen FILE_ATTRIBUTE_TEMPORARY und FILE_FLAG_DELETE_ON_CLOSE mit einer Datei versuchen. Eine solche Datei ist (wenn genügend Cache-Speicher verfügbar ist) nicht auf Festplatte geschrieben und wird gelöscht, wenn Ihre Anwendung geschlossen wird.

Es ist ein Blog, das dies beschreibt:

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

Und es IST ein Artikel hier:

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

+0

Dies ist eine sehr nette Idee :) Ich denke jedoch, die Datei kann noch kopiert werden, während die Anwendung geöffnet wird? Wie auch immer, gut verdient +1 :) – Wodzu

+0

Nun, nicht so einfach, weil die Datei nur im Cache ist. Vielleicht ist es möglich, aber nicht ohne Bürgermeisterschwierigkeiten. 100% Sicherheit ist nicht möglich, jede Datei und Daten im Speicher Ihres Computers können kopiert werden ... – Andreas