0
try
{
     string spath = AppDomain.CurrentDomain.BaseDirectory;
     spath += "myReportFileName.rpt";

     ReportDocument cryRpt = new ReportDocument();
     cryRpt.Load(spath);

     cryRpt.DataSourceConnections[0].SetConnection("Server Name", "DB Name", true);
     cryRpt.DataSourceConnections[0].IntegratedSecurity = true;
     cryRpt.SetParameterValue("Field Name", "Value");
     cryRpt.RecordSelectionFormula = "Correct Formula";

     crystalReportViewer1.ReportSource = cryRpt;
     crystalReportViewer1.Refresh();
}
catch (System.Exception ex)
{
     MessageBox.Show("Error: " + ex.Message);
}

在我的系统中,这段代码是可以的。但在其他系统中,它有错误。我在所有其他系统中正确安装了水晶报告。

此代码执行时出现错误:

crystaldecisions.crystalreports.engine.reportdocument' 抛出异常

然后我在客户端系统中执行了 CRRuntime_32bit_13_0_3.msi。该错误已解决其他问题:

运行代码后,出现“数据库登录”对话框,我没有自动连接数据库,也没有查看报告文件!!!

请帮帮我,我该怎么办?

4

1 回答 1

0

我解决了我的问题。:) 当我创建项目时,我的系统上安装了 CrystalReport 版本 10。因此,我从 Toolbox Item 中选择了“crystalReportViewer version 10”。我卸载了水晶报表的10版并安装了11版。下一步,我从Visual Studio的工具箱中删除了水晶报告查看器,然后再次从工具箱项中选择了“水晶报告查看器版本11”。

现在我的项目和创建的 exe 文件,在所有具有晶体报告版本 10 的系统中正确执行。

谢谢你!@rene :)

于 2017-01-30T07:20:03.500 回答