-4

我们使用 c# 创建了 windows 应用程序。其中我们使用Microsoft Report Viewer和创建了很多报告Rdlc Pages。但是当我们在另一个系统中安装项目时,不会生成报告,因为它显示了一个错误,例如

找不到文件 Report.rdlc

那么如何解决呢?在我安装应用程序时,是否可以将我系统中包含 Rdlc 页面的文件夹复制到目标系统的指定位置?

或者

还有其他方法可以提供永久路径或相对路径吗?我使用 Microsoft Report Viewer 和 Rdlc 创建了报告。我的代码是

            reportViewer1.Reset();

            con.Open();
            Manufactures ds = new Manufactures();

            SqlCommand cmd = new SqlCommand("Stp_ManufacturerReport_Fetch", con);
            cmd.Parameters.AddWithValue("@CompName", cbCompName.Text);
            cmd.CommandType = CommandType.StoredProcedure;
            SqlDataAdapter da = new SqlDataAdapter(cmd);
            //da.Fill(ds, "Manufactures");
            DataTable dt = new DataTable();
            da.Fill(dt);
            reportViewer1.ProcessingMode = Microsoft.Reporting.WinForms.ProcessingMode.Local;
            reportViewer1.LocalReport.ReportPath = "D:\\Abhith\\TTS\\Cabin\\TTS form Beta\\TTS form Beta\\Manufacturer.rdlc";//PATH OF REPORT
            reportViewer1.LocalReport.DataSources.Clear();
            reportViewer1.LocalReport.DataSources.Add(new Microsoft.Reporting.WinForms.ReportDataSource("Manufactures_ManufacturerReport", dt));//FILLING SOURCE FOR REPORT
            reportViewer1.RefreshReport();//REFRESHING THE REPORT`.

问题出在路径上。当我在另一个系统中使用此应用程序时,找不到路径。所以报告没有生成。任何解决方案?

4

1 回答 1

0

我已经Build action在我的.rdlc文件中指定了Embedded Resource,然后在代码中像这样引用它:

this.reportViewerScraps.LocalReport.ReportEmbeddedResource = "Backa_Artiklar_2.ScrapReportDocument.rdlc";

编辑:根据提问者评论添加信息

rdlc在解决方案资源管理器中有文件:

解决方案资源管理器中的 rdlc

将您的代码行更改为:

reportViewer1.LocalReport.ReportEmbeddedResource = "<namespace>.Manufacturer.rdlc";

请记住更改<namespace>为您的应用程序命名空间

于 2013-03-12T09:57:43.570 回答