如何部署具有Crystal Report的WPF应用程序

本文关键字:Report Crystal WPF 应用程序 何部署 部署 | 更新日期: 2023-09-27 18:19:38

我的项目中有两个水晶报告。

我的项目中有SaleBillReport.rpt文件。它是使用报告对象方法加载的,其代码如下所示。

第一份报告显示为-

情况1:

 SaleBillReport rptObj = new SaleBillReport();//My Rpt file name
 rptObj.SetDataSource(_ReportDataSet);
 _reportViewer.ReportSource = rptObj;

第二份报告显示为-

情况2:

ReportDocument objReportDoc = new ReportDocument();
objReportDoc.Load(@"D:''" + "MyReport.rpt");
ReportViewerNew.ReportSource = objReportDoc;

我的问题是,在部署这个项目时,我不需要把任何.rpt文件放在任何地方。它是在我的应用程序中内置的。

但我必须把我的第二个.rpt文件放在任何路径上显示。(我哪儿也不想放)因此,我如何在部署期间在项目中构建案例2.rpt文件。

提前感谢

如何部署具有Crystal Report的WPF应用程序

使用反射查找应用程序安装在的位置

System.Reflection.Assembly.GetExecutingAssembly

方法外植体

询问该程序集的文件夹,并将您的报告文件名添加到该路径。。。

一个解决方案可以使用反射,但这有点棘手。

第二个也是更简单的一个是使用CCD_ 1。

为此,修改您的案例2代码如下-

ReportDocument objReportDoc = new ReportDocument();
string reportPath = System.IO.Path.Combine(Environment.CurrentDirectory, "MyReport.rpt");
objReportDoc.Load(reportPath);
ReportViewerNew.ReportSource = objReportDoc;

要使您的报告始终永久位于当前目录位置,只需转到MyReport.rpt文件的属性,然后选择始终复制如果更新则复制