I installed SAP crystal report setup n generate a report whic is working fine on my PC but When I merge the code on website running on server it shows error :
system.runtime.interopservices.comexception error on crystal report load
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using DataAccessLayer;
using System.Data;
using System.Data.SqlClient;
using CrystalDecisions.CrystalReports;
using CrystalDecisions.CrystalReports.Engine;
using CrystalDecisions.Web;
using CrystalDecisions.Shared;
public partial class Pages_PM_revenuesummary : System.Web.UI.Page
{
SAM_ERPEntities context = new SAM_ERPEntities();
public DateTime today = DateTime.Today.Date;
ReportDocument report = new ReportDocument();
ReportDocument subreport = new ReportDocument();
int PortalId;
int ProjectStatusId;
int ProjectTypeId;
DateTime StartDate;
DateTime EndDate;
string projectStatus;
string projectType;
string projectPortal;
protected void Page_Load(object sender, EventArgs e)
{
lblMessage.Text = "";
CrystalReportViewer1.Visible = false;
if (!IsPostBack)
{
CrystalReportViewer1.Visible = false;
txtEndDate.Text = today.Date.ToString("MM/dd/yyyy");
txtStartDate.Text = DateTime.Now.Date.AddMonths(-1).ToString("MM/dd/yyyy");
BindPortals();
BindProjectType();
BindProjectStatus();
}
if (hd_ReportVisible.Value =="true")
{
Load_Report();
}
}
public void BindPortals()
{
var portals = new SAM_ERPEntities().Portals.Where(c => c.IsActive == true).OrderBy(c => c.PortalName)
.Select(c => new
{
PortalId = c.PortalId,
PortalName = c.PortalName
});
BindDropDown(ddlPortal, portals, "PortalName", "PortalId", true, false);
}
public void BindProjectType()
{
var projectType = new SAM_ERPEntities().ProjectTypes.Where(c => c.IsActive == true).OrderBy(c => c.ProjectTypeId)
.Select(c => new
{
ProjectTypeId = c.ProjectTypeId,
ProjectTypeName = c.ProjectTypeName
});
BindDropDown(ddlProjectType, projectType, "ProjectTypeName", "ProjectTypeId", true, false);
}
public void BindProjectStatus()
{
var projectStatus = new SAM_ERPEntities().ProjectStatus.Where(c => c.IsActive == true).OrderBy(c => c.ProjectStatusId)
.Select(c => new
{
ProjectStatusId = c.ProjectStatusId,
ProjectStatusName = c.ProjectStatusName
});
BindDropDown(ddlProjectStatus, projectStatus, "ProjectStatusName", "ProjectStatusId", true, false);
}
protected void btnShowRevenueSummary_Click(object sender, EventArgs e)
{
DateTime startdate = Convert.ToDateTime(txtStartDate.Text);
DateTime enddate = Convert.ToDateTime(txtEndDate.Text);
if (enddate == startdate)
{
lblMessage.Text = "Start Date & End Date can't be same!";
}
else if (enddate < startdate)
{
lblMessage.Text = "End Date must be greated than Start Date!";
}
else
{
lblMessage.Text = "";
Load_Report();
}
//string PType = "RevenueSummary";
//Response.Redirect("reportviewer.aspx?sdate=" + StartDate + "&edate=" + EndDate + "&PtId" + ProjectTypeId + "&PsId" + ProjectStatusId + "&PoId" + PortalId + "&PType" + PType);
}
public void Load_Report()
{
CrystalReportViewer1.Visible = true;
hd_ReportVisible.Value = "true";
PortalId = Convert.ToInt16(ddlPortal.SelectedItem.Value);
ProjectStatusId = Convert.ToInt16(ddlProjectStatus.SelectedItem.Value);
ProjectTypeId = Convert.ToInt16(ddlProjectType.SelectedItem.Value);
StartDate = Convert.ToDateTime(txtStartDate.Text);
EndDate = Convert.ToDateTime(txtEndDate.Text);
projectPortal = ddlPortal.SelectedItem.Text;
projectStatus = ddlProjectStatus.SelectedItem.Text;
projectType = ddlProjectType.SelectedItem.Text;
DateTime sdate = StartDate.Date;
DateTime edate = EndDate.Date;
var selectData = context.USP_PM_GetRevenueSummaryDetails(ProjectStatusId, ProjectTypeId, PortalId, StartDate, EndDate);
DataTable dtdata = new DataTable();
DataColumn dtcolumn = dtdata.Columns.Add("Id", typeof(int));
dtcolumn.AutoIncrement = true;
dtdata.Columns.Add("ProjectTypeName", typeof(string));
dtdata.Columns.Add("CurrencyCode", typeof(string));
dtdata.Columns.Add("TotalBudget", typeof(decimal));
dtdata.Columns.Add("TotalReceivedPayment", typeof(decimal));
dtdata.Columns.Add("TotalEscrowedPayment", typeof(decimal));
dtdata.Columns.Add("TotalRemainingPayment", typeof(decimal));
dtdata.Columns.Add("TotalProjects", typeof(decimal));
dtdata.Columns.Add("ProjectCreated", typeof(decimal));
dtdata.Columns.Add("ScriptApproved", typeof(decimal));
dtdata.Columns.Add("StoryBoardApproved", typeof(decimal));
dtdata.Columns.Add("VoiceOverApproved", typeof(decimal));
dtdata.Columns.Add("IllustrationApproved", typeof(decimal));
dtdata.Columns.Add("AnimationApproved", typeof(decimal));
foreach (var item in selectData)
{
DataRow dr = dtdata.NewRow();
string name = item.ProjectTypeName.ToString();
dr["ProjectTypeName"] = (item.ProjectTypeName).ToString();
dr["CurrencyCode"] = (item.CurrencyCode).ToString();
dr["TotalBudget"] = Convert.ToDecimal(item.TotalBudget);
dr["TotalReceivedPayment"] = Convert.ToDecimal(item.Received);
dr["TotalEscrowedPayment"] = Convert.ToDecimal(item.Escrowed);
dr["TotalRemainingPayment"] = Convert.ToDecimal(item.Remaining);
dr["TotalProjects"] = Convert.ToDecimal(item.TotalProject);
dr["ProjectCreated"] = Convert.ToDecimal(item.TotalProjectCreated);
dr["ScriptApproved"] = Convert.ToDecimal(item.ScriptApproved);
dr["StoryBoardApproved"] = Convert.ToDecimal(item.StoryboardApproved);
dr["VoiceOverApproved"] = Convert.ToDecimal(item.VoiceOverApproved);
dr["IllustrationApproved"] = Convert.ToDecimal(item.IllustrationApproved);
dr["AnimationApproved"] = Convert.ToDecimal(item.AnimationApproved);
dtdata.Rows.Add(dr);
}
dtdata.AcceptChanges();
report.Load(Server.MapPath("~/Pages/PM/Reports/revenuesummaryRpt.rpt"));
report.SetDataSource(dtdata);
report.OpenSubreport("revenuesummaryTotalRpt.rpt").SetDataSource(RevenueSummaryTotal());
report.SetParameterValue("FromDate", edate);
report.SetParameterValue("ToDate", sdate);
report.SetParameterValue("ProjectType",projectType);
report.SetParameterValue("ProjectStatus", projectStatus);
report.SetParameterValue("Portal", projectPortal);
CrystalReportViewer1.ReportSource = report;
//btn_Close.Visible = true;
}
public DataTable RevenueSummaryTotal()
{
var subData = context.USP_PM_GetRevenueSummaryTotal(ProjectStatusId, ProjectTypeId, PortalId, StartDate, EndDate);
DataTable dtsubdata = new DataTable();
DataColumn dtsubcolumn = dtsubdata.Columns.Add("Id", typeof(int));
dtsubcolumn.AutoIncrement = true;
dtsubdata.Columns.Add("CurrencyCode", typeof(string));
dtsubdata.Columns.Add("TotalBudget", typeof(decimal));
dtsubdata.Columns.Add("TRemaining", typeof(decimal));
dtsubdata.Columns.Add("TEscrowed", typeof(decimal));
dtsubdata.Columns.Add("TReceived", typeof(decimal));
dtsubdata.Columns.Add("Total_Projects", typeof(int));
foreach (var item in subData)
{
DataRow dr = dtsubdata.NewRow();
dr["CurrencyCode"] = (item.CurrencyCode).ToString();
dr["TotalBudget"] = Convert.ToDecimal(item.TotalBudget);
dr["TRemaining"] = Convert.ToDecimal(item.TRemaining);
dr["TReceived"] = Convert.ToDecimal(item.TReceived);
dr["TEscrowed"] = Convert.ToDecimal(item.TEscrowed);
dr["Total_Projects"] = Convert.ToInt16(item.TotalProjects);
dtsubdata.Rows.Add(dr);
}
dtsubdata.AcceptChanges();
return dtsubdata;
}
protected void Page_Unload(object sender, EventArgs e)
{
report.Close();
report.Dispose();
}
public void BindDropDown(DropDownList ddlGeneral, Object dataSource, string dataTextField, string dataValueField, bool hasSelectItem, bool hasOtherItem)
{
ddlGeneral.DataSource = dataSource;
ddlGeneral.DataTextField = dataTextField;
ddlGeneral.DataValueField = dataValueField;
ddlGeneral.DataBind();
if (hasSelectItem == true)
{
ddlGeneral.Items.Insert(0, new ListItem("All", "0"));
}
if (hasOtherItem == true)
{
ddlGeneral.Items.Add(new ListItem("-OTHER-", "-100"));
}
}
}
I run the same setuo on server machine,I tryed the code on server machine but still the same error on
report.Load(Server.MapPath("~/Pages/PM/Reports/revenuesummaryRpt.rpt"));
The same server path run without error on my Pc .kindly help me out