这是我第一次这样做。
我构建了一个软件。我将使用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。