我想堅持一種形式和ReportViewer
控制,並在運行時分配各種報告和數據源。通過快速谷歌檢查顯示的多樣和複雜的解決方案促使我寧願在這裏問。我怎樣才能做到這一點?如何使用EF數據源爲多個報表重用一個ReportViewer控件?
回答
你需要一個形式設有的ReportViewer控制,RDLC報告和數據源;可能有幾種實現方法,但是您可以使用「報告管理器」類來顯示每種方法顯示特定的報告(例如:ShowOrdersReport()
,ShowTimeSheetReport()
等) - 或者您可以使用Show()
方法定義基類ReportBase
類實現在需要時......對於參數的提示什麼工作,這將從根本上歸結爲這樣:
var reportForm = new ReportViewerForm(); // instantiate the form
// load the report definition into the viewer:
reportForm.reportViewer1.LocalReport.ReportEmbeddedResource = "Namespace.Report.rdlc";
// loading the data works great with a DataSet:
var data = _reportingDataSet.Tables[0];
// create the ReportDataSource with the report data:
var reportDataSource = new ReportDataSource("rdsReportDataSource", data);
reportForm.ShowReport(new[] { reportDataSource });
在這裏,你會想注入_reportingDataSet
依賴;如果您使用參數化存儲過程,則在填充DataSet之前,您需要提示輸入報告參數。
ShowReport()
方法將數據源添加到LocalReport.DataSources
,然後調用RefreshReport()
它顯示您指定的報告。
public void ShowReport(IEnumerable<ReportDataSource> dataSources)
{
foreach (var dataSource in dataSources)
reportViewer1.LocalReport.DataSources.Add(dataSource);
reportViewer1.RefreshReport();
}
如果使用Crystal報表,然後使用該負載報告按一下按鈕 CrystalReportViewer.ReportSource = REPORTNAME
如果您正在使用MS ReportViewer控件則需要兩個重要的步驟,以顯示報告
- 指定的報告文件路徑的ReportViewer
- 設置數據源
因此,例如名爲reportViewer1 ReportViewer控件需要顯示SomeReport.rdlc文件是必需的,然後下面的代碼(讓我們在點擊按鈕說)
this.reportViewer1.LocalReport.ReportPath = @"Add absolute path of rdlc file"//e.g. @"C:\SomeReport.rdlc" ;
this.reportViewer1.RefreshReport();
這只是一個簡單的例子,爲了簡單起見,我用靜態報告,如果您需要顯示來自數據庫的數據,則只需在調用RefreshReport之前分配數據源屬性即可。例如,
this.reportViewer1.LocalReport.DataSources.Add(MyreportDataSource);
其中MyreportDataSource的類型是ReportDataSource的對象,就可以很容易地轉換任何ADO.net數據表來ReportDataSource對象。
我希望這麼多的信息會爲你做,如果你想看到你可以在這個位置是指一篇很好的文章更多的細節
不,我正在使用MS ReportViewer控件和rdlc報告。 – ProfK
- 1. 如何使用wcf服務作爲ReportViewer控件的數據源?
- 2. 在一個水晶報表中使用多個數據源
- 3. 一個數據源的多個控件
- 4. 帶ReportViewer的RDL報表的數據源
- 5. 使用數據表作爲數據源填充網絡reportviewer
- 6. 如何將多個列表合併並作爲一個GridView數據源使用
- 7. 如何使用require JS爲數據表配置多個源?
- 8. 如何僅爲RDLC報表設計器和ReportViewer使用一個DataSet?
- 9. 在Reporting Services報表上使用多個數據源?
- 10. 微軟報表查看器使用鑽取多個數據源
- 11. SSRS報表數據源用於查詢多個數據庫
- 12. 如何重用多個視圖的實體框架數據源WPF EF MVVM
- 13. 如何在Silverlight中爲多個控件使用一個動畫
- 14. 使用多個dbcontexts在同一個數據庫與EF 6
- 15. ASPX中的數據表用作多個用戶控件的數據源
- 16. ReportViewer:將多個報告合併到一個報告中
- 17. 如何使用一個TreeView作爲綁定源其他控件
- 18. 如何在Razor中使用ReportViewer控件?
- 19. 如何在一個控件中多次使用用戶控件
- 20. 具有多個數據源的水晶報表,其中一個爲空
- 21. 的ReportViewer與BusinessObject的數據源顯示一個空表
- 22. 如何使用x ++引用報表數據源表
- 23. 如何使用多個List <>作爲DatagridView的數據源
- 24. 將多個對象設置爲水晶報表的數據源
- 25. 如何使用主報表數據源中的另一個數據源添加餅圖
- 26. 如何使用一對多關係基於XML數據源製作報表?
- 27. 使用多個數據源中晶體報告
- 28. 多個rdlc文件在一個報表查看器控件中 - 可以使用子報表完成嗎?
- 29. 如何更改從數據源報告的列的值Reportviewer
- 30. Pentaho - CDE如何使用一個數據源與一個執行兩個組件
如果RDLC報告具有參數,則需要傳遞它們:var imageFolder = new ReportParameter(「imageFolder」,「file://」+ ConfigurationManager.AppSettings [「ReportImagesFolder」]); reportForm.reportViewer1.LocalReport.EnableExternalImages = true; reportForm.reportViewer1.LocalReport.SetParameters(new [] {imageFolder});' –