我在客户端机器上打开我的项目 exe 时遇到以下问题。
我不明白如何根据客户端机器设置这些报告
错误
<块引用>CrystalDecisions.Shared.CrystalReportsException:加载报告失败。 ---> System.Runtime.InteropServices.COMException: 不支持的操作。无法在 C++ 堆栈中打开 JRC 引擎处理的文档。 在 CrystalDecisions.ReportAppServer.ClientDoc.ReportClientDocumentClass.Open(Object& DocumentPath, Int32 Options) 在 CrystalDecisions.ReportAppServer.ReportClientDocumentWrapper.Open(对象和文档路径,Int32 选项) 在 CrystalDecisions.ReportAppServer.ReportClientDocumentWrapper.EnsureDocumentIsOpened()
以下是我的代码:
ReportDocument cryRpt = new ReportDocument();
TableLogOnInfos crtableLogoninfos = new TableLogOnInfos();
TableLogOnInfo crtableLogoninfo = new TableLogOnInfo();
ConnectionInfo crConnectionInfo = new ConnectionInfo();
Tables CrTables ;
cryRpt.Load(Application.StartupPath+ "CrystalReport1.rpt");
crConnectionInfo.ServerName = "SQLEXPRESS";
crConnectionInfo.DatabaseName = "DEM";
CrTables = cryRpt.Database.Tables ;
foreach (CrystalDecisions.CrystalReports.Engine.Table CrTable in CrTables)
{
crtableLogoninfo = CrTable.LogOnInfo;
crtableLogoninfo.ConnectionInfo = crConnectionInfo;
CrTable.ApplyLogOnInfo(crtableLogoninfo);
}
crystalReportViewer1.ReportSource = cryRpt;
crystalReportViewer1.Refresh();
main.con.Open();
SqlDataAdapter da = new SqlDataAdapter("SELECT * from main", main.con);
DataTable ds = new DataTable();
da.Fill(ds);
CrystalReport1 cr = new CrystalReport1();
cr.SetDataSource(ds);
crystalReportViewer1.ReportSource = cr;
main.con.Close();