2017-02-02 1 views
0

Я пытаюсь добавить reportviewer в мое приложение WPF. Я следовал инструкциям на This Site, но теперь я получаю эту ошибку:Определение отчета для отчета «[Имя отчета]» не указано

An error occurred during local report processing. The report definition for report 'ConSegReport' has not been specified. Object reference not set to an instance of an object.

Вот мой код:

private void Reportviewer_Load(object sender, EventArgs e) 
    { 
     if (!_IsReportViewerLoaded) 
     { 
      Microsoft.Reporting.WinForms.ReportDataSource reportData = new Microsoft.Reporting.WinForms.ReportDataSource(); 
      Consolidated_DBDataSet conSet = new Consolidated_DBDataSet(); 
      conSet.BeginInit(); 

      reportData.Name = "ConSegSet"; 
      reportData.Value = conSet.Cnsldtd_Performance_tbl; 
      this.reportViewer.LocalReport.DataSources.Add(reportData); 
      this.reportViewer.LocalReport.ReportEmbeddedResource = "FP Reporting Dashboard.ConSegReport.rdlc"; 

      conSet.EndInit(); 

      Consolidated_DBDataSetTableAdapters.Cnsldtd_Performance_tbl_CLONETableAdapter conAD = new Consolidated_DBDataSetTableAdapters.Cnsldtd_Performance_tbl_CLONETableAdapter(); 
      conAD.ClearBeforeFill = true; 
      conAD.Fill(conSet.Cnsldtd_Performance_tbl_CLONE); 

      reportViewer.RefreshReport(); 

      _IsReportViewerLoaded = true; 
     } 
    } 

Я также установить .rdlc файл «Копировать если новее "для каталога вывода.

ответ

0

Я никогда не пробовал ссылаться на встроенный отчет, который всегда был загружен в SSRS.

Вот мой код, может быть, это поможет:

IReportServerCredentials irsc = new CustomReportCredentials(rc.report_ssrs_username, 
    rc.report_ssrs_password, rc.report_ssrs_domain); 
ReportViewer1.ServerReport.ReportServerCredentials = irsc; 
ReportViewer1.ServerReport.ReportPath = rc.report_ssrs_path; 
ReportViewer1.ServerReport.ReportServerUrl = new System.Uri(rc.report_ssrs_url); 

SqlConnectionStringBuilder conString = new Database().conBuilder; 
List<ReportParameter> parameters = new List<ReportParameter>(); 
parameters.Add(new ReportParameter("ConString", conString.ConnectionString)); 
ReportViewer1.ServerReport.SetParameters(parameters); 
DataSourceCredentials dsc = new DataSourceCredentials(); 
dsc.Name = ReportViewer1.ServerReport.GetDataSources()[0].Name; 
dsc.UserId = conString.UserID; 
dsc.Password = conString.Password; 
ReportViewer1.ServerReport.SetDataSourceCredentials(new DataSourceCredentials[] { 
    dsc }); 

ReportViewer1.ShowCredentialPrompts = false; 
ReportViewer1.ServerReport.Refresh(); 

Позвольте мне знать, если у вас есть какие-либо вопросы о том, что я здесь. У нас есть одна таблица, которая определяет все наши отчеты и запрашивает их, чтобы динамически отображать элемент управления reportviewer.

Как примечание, я использовал бы соглашение об именовании подчеркивания для файла RDLC. Это может привести к сбою кода, если он не учитывается правильно. Также попробуйте указать, что это полный путь для проверки, что это не проблема относительного пути, если он пытается ссылаться на файл из каталога отладки или выпуска.

Смежные вопросы