2017-02-02 3 views
0

Ich versuche, meiner WPF-Anwendung einen Reportviewer hinzuzufügen. Ich habe die Schritte auf This Site gefolgt, aber jetzt bin ich immer diese Fehlermeldung:Die Berichtsdefinition für den Bericht '[Berichtsname]' wurde nicht angegeben.

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.

Hier ist mein Code:

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

ich auch die RDLC Datei eingestellt haben, dass „zu Kopieren, falls neuere "für das Ausgabeverzeichnis.

Antwort

0

Ich habe noch nie versucht, einen eingebetteten Bericht zu referenzieren, der immer auf SSRS hochgeladen wurde.

Hier ist mein Code, vielleicht wird es helfen:

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

Lassen Sie mich wissen, wenn Sie Fragen zu haben, was ich hier habe. Wir haben eine einzige Tabelle, die alle unsere Berichte definiert und diese abfragt, um das Berichtsviewer-Steuerelement dynamisch zu rendern.

Nur als eine Randnotiz würde ich eine Unterstreichungskonvention für die RDLC-Datei verwenden. Das könnte zu einem Fehler führen, wenn es nicht korrekt berechnet wird. Versuchen Sie es auch zu referenzieren, es wird ein vollständiger Pfad sein, um zu verifizieren, dass dies kein relativer Pfad ist, wenn versucht wird, die Datei aus dem Debug- oder Release-Verzeichnis zu referenzieren.

Verwandte Themen