2012-04-04 5 views
2

Ich habe Business-Objekt namens "TeamMaster", , in denen ich drei Eigenschaften definieren, Id, Name & Flg. in meinem .rdlc Bericht ich trage TeamMaster Objekt als Datenquelle, jetzt schreibe ich den folgenden Code in Seite laden Ereignis des Formulars, in dem ich Bericht Viewer-Steuerelement hinzufügen, und ich definiere meinen Bericht als lokaler Bericht.Wie bond rdlc Bericht mit Business-Objekt?

using (RDLC_DEMO_DBEntities objdatabase = new RDLC_DEMO_DBEntities()) 
     { 
      lstTeamMstr = objdatabase.TeamMasters.ToList(); 
     } 
     this.TeamMasterBindingSource.DataSource = lstTeamMstr; 
     this.reportViewer1.RefreshReport(); 

, wenn ich diesen Code überprüfen mit Debug-i erhalten 6 Datensätze in TeamBindingSource, aber in Fenster Bericht zeigt nur sechs leere Zeilen, , was ist das Problem?

Antwort

1

Folgen Sie diesen Code: >>

string path = HttpContext.Current.Server.MapPath(Your Report path); 
ReportViewer1.Reset(); //important 
ReportViewer1.ProcessingMode = Microsoft.Reporting.WebForms.ProcessingMode.Local; 

// Add sub report even handler if you need 
***ReportViewer1.LocalReport.SubreportProcessing += new SubreportProcessingEventHandler(MySubreportProcessingEventHandler);*** 
LocalReport objReport = ReportViewer1.LocalReport; 
objReport.ReportPath = path; 
// Add Parameter If you need 
List<ReportParameter> parameters = new List<ReportParameter>(); 
parameters.Add(new ReportParameter("Name", Value)); 
ReportViewer1.LocalReport.SetParameters(parameters); 
ReportViewer1.ShowParameterPrompts = false; 
ReportViewer1.ShowPromptAreaButton = false; 
ReportViewer1.LocalReport.Refresh(); 

//Add Datasourdce 
ReportDataSource reportDataSource = new ReportDataSource(); 
reportDataSource.Name = "Datasource Name Used due to report design"; 
reportDataSource.Value = DataSourceValue(Your object data-source); 
objReport.DataSources.Add(reportDataSource); 
objReport.Refresh(); 

Hier Subreport Selbst-Handler-Code

private void MySubreportProcessingEventHandler(object sender, SubreportProcessingEventArgs e) 
{ 
//You can get parameter from main report 
int paramname = int.Parse(e.Parameters[0].Values[0].ToString()); 
//You can also add parameter in sub report if you need like main report 

//Now add sub report data source  
e.DataSources.Add(new ReportDataSource("DataSource Name",DataSourceValue))); 
} 

Wenn Sie Drillthrough- Bericht erstellen müssen als diesen Link folgen Click here for Drillthrough report

+0

gespeichert mich eine Menge Zeit . Vielen Dank! –