客户端机器上的水晶报表路径问题

时间:2021-04-16 11:49:05

标签: c# crystal-reports client

我在客户端机器上打开我的项目 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();

0 个答案:

没有答案