如何将安装项目与 Crystal 报表一起使用



这是我第一次这样做。

我构建了一个软件。我将使用Visual Studio的安装包。我想我将使用安装项目,该项目为基于 Windows 的应用程序构建安装程序,因为我的项目是在窗口窗体上构建的。我已经包括了水晶报告。就目前而言,当用户单击显示报告的按钮时,我的应用程序中有方法。在该方法中,.rpt 文件路径显示为...。

 cryRpt.Load("C:\MyFolder\MyFolder\ProjectName\FolderName\HRMS\HRMS\Report.rpt"); // this is from my PC.

所以我的问题是我需要知道什么才能设置正确的 .rpt 文件路径。 它将安装在哪里?

为了澄清,我需要在客户端PC上安装水晶报告? http://downloads.businessobjects.com/akdlm/cr4vs2010/CRforVS_13_0.exe

因为我看了这个线程...这里

我需要在客户的PC上做任何其他事情吗?

不确定我是否会遇到与此线程相关的问题,我有硬编码路径,有什么建议吗?

如果有人能在这里帮助我,请提前感谢您。

using CrystalDecisions.CrystalReports.Engine;
private void btnReportA_Click_1(object sender, EventArgs e)
    {
        ReportDocument cryRpt = new ReportDocument();
        cryRpt.Load("C:\MyFolder\MyFolder\ProjectName\FolderName\HRMS\HRMS\Report.rpt");
        crystalReportViewer1.ReportSource = cryRpt;
        crystalReportViewer1.Refresh();
    }
 public partial class MainForm : Form
 {
    public MainForm()
    {
       InitializeComponent();
       myCon = new OleDbConnection(@"Provider=Microsoft.Jet.OLEDB.4.0;Data  
       Source=C:MyFolderMyFolderProjectNameFolderNamedatabase.mdb");
       crystalReportViewer1.Refresh();
    }

使用解决方案更新 1

被查看了水晶报告动态路径,我从代码行中更改了...

cryRpt.Load("C:\MyFolder\MyFolder\ProjectName\FolderName\HRMS\HRMS\Report.rpt");

cryRpt.Load(Application.StartupPath + "\Report.rpt");

然后在 bin\Debug 中移动 rpt 文件

您可以使用以下代码找到您的 bin/调试文件位置...

TextBox1.Text = System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly
().Location);

我从这个网站得到的。

我认为以上是一个解决方案。

每当我发现如何将安装项目与 Crystal 报告一起使用时,我都会提供更新 2,因为我可能需要也可能不需要在客户端的 PC 上更新。

花了几个小时才弄清楚这一点。

更新 2我将打开一个新线程。我认为更新 1 并不是真正的解决方案。

您始终可以将报告添加到项目中,然后像"~Report.rpt"一样引用它。关于部署运行时,请阅读 SAP 关于运行时部署的此 wiki。

最新更新