我的方案是創建一個包含我的報表的DLL,然後將該DLL添加到我的主項目中。我的報告被設置爲嵌入式資源,在我的主項目中,我正在執行以下操作將報告設置到ReportViewer中。將C#拉出報表並將其放入報表查看器
Assembly assembly = Assembly.LoadFrom("MyAssembly.dll");
Stream stream = assembly.GetManifestResourceStream("MyAssembly.Reports.MyReport.rdlc");
MyReportViewer.LocalReport.LoadReportDefinition(stream);
MyReportViewer.RefreshReport();
現在當我這樣做時,我知道報告正在加載,因爲我可以設置ReportParameters。如果它根本沒有加載,我會拋出一個異常,說明參數不存在,或者出現這種情況。
發生什麼事是我的報告將加載所述參數,當我RefreshReport(),我得到這個。
尚未指定報告定義的來源。
任何線索,爲什麼會發生這種情況?我覺得在加載dll報告時我可能會錯過一些東西。但是,當我搜索互聯網時,似乎這是正確的解決方案。
作爲一個方面說明,我在我的.dll中有一個表單,我正在調用並將報表加載到完全正確的狀態。但是,這是另一種情況,因爲該表格明確知道報告的位置。
在這種情況下,我有一個不在.dll裏面的ReportViewer,我試圖將.rdlc裏面的.dll加載到我的ReportViewer中,它不在dll內部。
編輯 最糟糕的是,如果我用下面的代碼,我可以看到我需要的DLL文件。
string[] resources = assembly.GetManifestResourceNames();
「MyApp.Controls.Reports.MyCustomReport.rdlc」
嗨,你有沒有在此期間找到解決方案? – Raphael 2013-12-10 15:04:13