I am currently working for the web based LMS applications which required to generate lots of crystal reports.
My problem is that, it generates the report only fixed number of time (i.e. 75 times Max). After this it display a message 'The maximum report processing jobs limit configured by your system administrator has been reached '
I had tried to find its solution over the internet but unfortunately could not solve the above mention problem. Here is my code which I'm using...
using System;using System.Data;using System.Data.SqlClient;using System.Configuration;using System.Web;using System.Web.Security;using System.Web.UI;using System.Web.UI.WebControls;using System.Web.UI.WebControls.WebParts;using System.Web.UI.HtmlControls;using CrystalDecisions.CrystalReports.Engine;using CrystalDecisions.Shared;using System.Collections;
public partial class Report : System.Web.UI.Page
{
string name;
private ReportDocument rpt;
private void SetDBLogonForReport(ConnectionInfo connectionInfo, ReportDocument reportDocument)
Tables tables = reportDocument.Database.Tables;
foreach (CrystalDecisions.CrystalReports.Engine.Table table in
tables)
TableLogOnInfo tableLogonInfo = table.LogOnInfo;
tableLogonInfo.ConnectionInfo = connectionInfo;
table.ApplyLogOnInfo(tableLogonInfo);
}
protected void Page_Load(object sender, EventArgs e)
rpt = new ReportDocument();
name = Session["name"].ToString();
string reportPath = Server.MapPath("Report.rpt");
rpt.Load(reportPath);
ConnectionInfo connectionInfo = new ConnectionInfo();
connectionInfo = SqlCon.GetCrystalConnection();
SetDBLogonForReport(connectionInfo, rpt);
CrystalReportViewer1.ReportSource = rpt;
ParameterFields ParamFields = this.CrystalReportViewer1.ParameterFieldInfo;
ParameterField login = new ParameterField();
login.Name = "LoginName";
ParameterDiscreteValue login_Value = new ParameterDiscreteValue();
login_Value.Value = name;
login.CurrentValues.Add(login_Value);
ParamFields.Add(login);
foreach (TableLogOnInfo cnInfo in this.CrystalReportViewer1.LogOnInfo)
cnInfo.ConnectionInfo = connectionInfo;
this.CrystalReportViewer1.RefreshReport();
protected void Page_Unload(object sender, EventArgs e)
CrystalReportViewer1.Dispose();
GC.Collect();
GC.WaitForPendingFinalizers();
protected void CrystalReportViewer1_Unload(object sender, EventArgs e)
this.CrystalReportViewer1.ReportSource = null;
if (rpt != null)
rpt.Close();
rpt.Dispose();
rpt = null;
Please advice how we can achieve the desired results as soon as possible .