2010-06-02 88 views
5
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; 

這是我的代碼。我使用SSRS,但查看器只顯示但不顯示任何數據。 爲什麼..?wpf中的SSRS報告問題

+0

您是否嘗試將事件處理程序添加到ReportError或RenderingCompleted以查看是否有任何其他信息來自查看器控件? – 2010-11-23 10:08:52

回答

1

我認爲你需要在reportviewer加載到視圖後調用刷新報告。

這裏是我的代碼工作(reportViewerHost是WindowsFormsHost,使用XAML在用戶控件聲明)在SqlReportViewModel的LoadReport方法

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(); 
     } 

,我設置數據源爲

_report.DataSources.Add(new ReportDataSource(dataset.Name, tbl)); 

哪裏_report是對作爲參數傳遞的LocalReport對象的引用

LocalReport _report; 

我花了一段時間來算出這個...希望這有助於.. 好運.. :)

0
ReportViewer reportViewer = new ReportViewer(); 
DataTable reportData = this.GetReportData(startId, endId, empId, minAmount, reportType); 
reportViewer.LocalReport.ReportPath = "Reports//abc.rdlc"; 
ReportDataSource ds = new ReportDataSource("DataSet1", reportData); 
//DataSet1 is the datasetname of the datasource on the rdlc report 
reportViewer.LocalReport.DataSources.Add(ds); 
reportViewer.RefreshReport(); 
Reports.TReportViewer report = new Reports.TReportViewer(); 
//TReportViewer is the window of wpf application where i set the reportviewerhost. 
report.reportViewerHost.Child = reportViewer; 

希望它會回答你的問題。