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