2011-01-14 3 views
1

Ich bin neu im Crystal Report. Ich erstellte One Crystal-Bericht in asp.net mit Back-End-C# und fügen Sie Diagramme int it.everything ist gnng richtig, aber wenn ich Anwendung ausführen. es zeigt nur Bericht viwer bar und gibt Fehler, dass dieCrystal Report viwer Problem

Der Report Application Server

fehlgeschlagen

Bitte mir helfen.

Vielen Dank im Voraus

Antwort

1

Es gibt nicht viel Detail in Ihrer Frage.

Wie auch immer, ich habe einen interessanten Post auf MSDN gefunden: http://social.msdn.microsoft.com/Forums/en/vscrystalreports/thread/a6e12469-2bf1-4c4f-b291-0cf06465b740.

Viele Lösungen wurden dort zur Verfügung gestellt, da wir keine weiteren Informationen von Ihnen haben, versuchen Sie alle.

  • Temporäre Dateien: Löschen Sie die temporären Dateien aus dem temporären Ordner. Und starten Sie das System neu.

Ursache: Es ist passiert, wenn das System abnormal heruntergefahren wurde. Der Crystal Reports-Bericht enthält temporäre Berichtsdateien im Temp-Ordner, die nicht ausgewaschen wurden. Aus diesem Grund wurde ein Ladebericht fehlgeschlagen.

  • Registrierung: Ändern Sie die PrintJobLimit von 75 in -1;

HKEY_LOCAL_MACHINE \ SOFTWARE \ Crystal Decisions \ 10.2 \ Report Application Server \ Server \ PrintJobLimit

  • Programmatically:

Wenn Sie keine Lösung für diese doch, hier gefunden haben, ist der Letzte. Dieses C# -Beispiel funktioniert einwandfrei. Hier ein Snippit des Codes unten. Es hebt die Dinge hervor, die aus nichts anderem hervorgingen, was man im Internet lesen konnte.

private ReportDocument CrystalRpt; 
    //Declaring these here and disposing in the Page_Unload event was the key. Then the only other issue was the 
    // limitations of Crystal 11 and simultaneous access to the rpt file. I make a temp copy of the file and use that in the 
    // method. Then I delete the temp file in the unload event. 

    private ReportDocument mySubRepDoc; 
    private ReportClass ReportObject; 
    private string tmpReportName; 

    protected void Page_UnLoad(object sender, EventArgs e) 
    { 
Try 
{ 
      CrystalReportViewer1.Dispose(); 
      CrystalReportViewer1 = null; 
      CrystalRpt.Close(); 
      CrystalRpt.Dispose(); 
      CrystalRpt = null; 
      mySubRepDoc.Close(); 
      mySubRepDoc.Dispose(); 
      mySubRepDoc = null; 
      ReportObject.Close(); 
      ReportObject.Dispose(); 
      ReportObject = null; 
      GC.Collect(); 
      File.Delete(tmpReportName); 

} 
catch 
{ ...Error Handler } 
    } 



protected void Page_Load(object sender, EventArgs e) 
    { 
     CrystalRpt = new ReportDocument(); 
     ConnectionInfo CrystalConn = new ConnectionInfo(); 
     TableLogOnInfo tblLogonInfo = new TableLogOnInfo(); 
     ReportObject = new ReportClass(); 

     TableLogOnInfo CrystalLogonInfo = new TableLogOnInfo(); 
     ParameterField CrystalParameter = new ParameterField(); 
     ParameterFields CrystalParameters = new ParameterFields(); 
     ParameterDiscreteValue CrystalParameterDV = new ParameterDiscreteValue(); 

     TableLogOnInfo ConInfo = new TableLogOnInfo(); 
     SubreportObject mySubReportObject; 
     mySubRepDoc = new ReportDocument(); 

     //Report name is sent in querystring. 
     string ReportName = Request.QueryString["ReportName"]; 

     // I did this because Crystal 11 only supports 3 simultaneous users accessing the report and 
     // we have up to 60 at any time. This copies the actual rpt file to a temp rpt file. The temp rpt 
     // file is used and then is deleted in the Page_Unload event 

     Random MyRandomNumber = new Random(); 
     tmpReportName = ReportName.Replace(".rpt", "").Replace(".ltr", "") + MyRandomNumber.Next().ToString() +".rpt"; 
     File.Copy(ReportName, tmpReportName, true); 

     CrystalRpt.Load(tmpReportName); 
+0

Die Registrierungslösung ist die beste –