Crystal Reports Exception: The maximum report processing jobs limit configured by your system administrator has been reached

You have to Dispose your report instance after all. If you Dispose the report after showing it, you will never see the error "The maximum report processing jobs limit configured by your system administrator has been reached" again.

  Dim report1 As rptBill = clsBill.GetReport(billNumber)

  rpt.Print()

  'Cleanup the report after that!
  rpt.Close()
  rpt.Dispose()

I would recommend moving your close/dispose/gc.collect code outside of that unload process. In other words:

  1. Load report
  2. Assign to Viewer Control
  3. Show Report in Viewer Control
  4. Close Viewer Control and Unload (completely)
  5. Then close/dispose/gc.collect outside of any viewer control code

My guess is the viewer control is not completely closed when the report is being cleaned up.

Crystal is a very memory intensive process and very finicky.


Crystal Report document implements IDisposable interface. So all you have to do is to enclose the report's instance with using statement. It will be automatically closed and disposed once the using statement is completed. You can write something like that:

using(var report = GetInvoiceReport())
{
     // your logic here
}

or (depends on your context):

using(var report = new ReportDocument())
{
     // your logic here
}