Loswerden von Crystal-Reports-Bericht erzeugt Dateien im temp-Ordner - Visual Studio 2008
Hallo ich habe eingefügt, unten ein Stück code, wo ich bin anzeigen eines Berichts. Ich benutze Visual Studio 2008 Crystal Report engine. Es funktioniert alles gut mit dem Stück code
Problem: Jedesmal, wenn ein Bericht ausgeführt wird, erzeugt es einen ('.*tmp', '.*rpt') Dateien werden in der Regel in einem temp-Ordner c:\windows\temp aber wir können loszuwerden, die *.tmp-Dateien, indem Sie einen Papierkorb auf den Anwendungspool, aber brauchen einen Weg, um loszuwerden, das .rpt-Dateien.
Lösung gefunden: Nennen Close() und Dispose() auf das report-Objekt. Der Weg, den ich mache, ist crReportDoc.Close () - dann crReportDoc.Dispose()
Eigentlichen Problem: Wenn Dispose() aufgerufen wird, kommt der Bericht mit dem folgenden Fehler 'Objektverweis nicht auf eine Instanz eines Objekts'
Ich werde wirklich schätzen, wenn einer der Kollegen Kollegen können mir helfen, mit einer Lösung, wie ich bin ziemlich neu zu Programmieren.
Dank
Dim crReportDoc = New CrystalDecisions.CrystalReports.Engine.ReportDocument
crReportDoc = Session("ReportDocument")
ReportViewer.DisplayToolbar = True
ReportViewer.EnableDrillDown = True
ReportViewer.DisplayGroupTree = False
ReportViewer.Visible = True
ReportViewer.DisplayToolbar = True
ReportViewer.ReportSource = crReportDoc
Du musst angemeldet sein, um einen Kommentar abzugeben.
Einige Male, obwohl Sie, rufen Sie dispose auf Ihre
ReportDocument
Objekt, gefolgt vonGC.Collect()
noch die.rpt
Dateien in Temp Ordner werden nicht bereinigt. Und es gibt ein limit, keine. der.rpt
Dateien in einem Temp-Ordner nach, die CR Stoppt die Ausführung weiterer Bericht Anfragen.Seltsam dies geschieht, wenn Sie erklären, Ihre ReportDocument-Objekt in der Seite, die eine Funktion oder einen event-handler.
Aber wenn Sie erklären, Ihre ReportDocument-in einem Seite weit globalen Kontext dann crystal reports glücklich reinigt der temp .rpt-Dateien, wenn Sie die Dispose-Methode in der
Page_Unload()
event !!!!Für CRystal-Reports-Versionen 13 und höher. Klar temporäre Dateien. Rufen Sie die dispose-in der CrystalReportViewer-Entladen Ereignis -
protected void crReportViewer_Unload(object sender, EventArgs e)
{
CloseReport();
}