2010-06-02 21 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; 

este es mi código. Estoy utilizando SSRS pero el visor solo muestra pero no contiene ningún dato. ¿Por qué ...?Problema de informe de SSRS en wpf

+0

¿Ha intentado agregar controladores de eventos a ReportError o RenderingCompleted para ver si hay alguna información adicional proveniente del control del visor? –

Respuesta

1

Creo que necesita llamar al informe de actualización después de cargar el reportviewer en la vista.

Aquí está mi código que funciona (reportViewerHost es WindowsFormsHost, declaró en control de usuario usando XAML)

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

en el Método LoadReport del SqlReportViewModel, yo pongo la fuente de datos como

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

donde _report es la referencia al objeto LocalReport pasado como argumento

LocalReport _report; 

Me tomó un tiempo para resolver esto ... espero que esta ayuda .. buena suerte .. :)

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; 

esperemos que contestará a su pregunta.

Cuestiones relacionadas