Joh*_*nny 5 wpf reportviewer reporting-services
DataTable reportData = this.GetReportData(startId, endId, empId, minAmount, reportType);
ReportViewer reportViewer = new ReportViewer();
reportViewer.ProcessingMode = ProcessingMode.Local;
reportViewer.LocalReport.ReportEmbeddedResource = "PDCL.ERP.Modules.Marketing.Reports.rptDoctorDetail.rdlc";
ReportDataSource ds = new ReportDataSource();
ds.Name = "DoctorDetail_Report";
ds.Value = reportData;
reportViewer.LocalReport.DataSources.Add(ds);
reportViewer.RefreshReport();
this.WindowsFrmHost.Child = reportViewer;
Run Code Online (Sandbox Code Playgroud)
这是我的代码.我正在使用SSRS,但查看器只显示但不显示任何数据.为什么..?
我认为您需要在将报表查看器加载到视图中后调用刷新报表。
这是我的有效代码(reportViewerHost 是 WindowsFormsHost,使用 XAML 在 UserControl 中声明)
private void UserControl_Loaded(object sender, RoutedEventArgs e)
{
SqlReportViewModel report = (SqlReportViewModel)this.DataContext;
Microsoft.Reporting.WinForms.ReportViewer reportviewer = new Microsoft.Reporting.WinForms.ReportViewer();
reportViewerHost.Child = reportviewer;
reportviewer.ProcessingMode = Microsoft.Reporting.WinForms.ProcessingMode.Local;
reportviewer.LocalReport.ReportPath = report.FileName;
report.LoadReport(reportviewer.LocalReport);
reportviewer.RefreshReport();
}
Run Code Online (Sandbox Code Playgroud)
在 SqlReportViewModel 的 LoadReport 方法中,我将数据源设置为
_report.DataSources.Add(new ReportDataSource(dataset.Name, tbl));
Run Code Online (Sandbox Code Playgroud)
其中 _report 是对作为参数传递的 LocalReport 对象的引用
LocalReport _report;
Run Code Online (Sandbox Code Playgroud)
我花了一段时间才弄清楚这一点...希望这有帮助..祝你好运..:)