У меня есть основной отчет, который должен иметь 2 или более вложенных отчетов.В Form_Load я запрограммировал это так: -
cmdReport.CommandText = "SELECT * FROM tblA; SELECT * FROM tblB; SELECT * FROM tblC";
// tblA is main report
// execute query by SqlDataReader drReport and load result to dataset dsReport
drReport = cmdReport.EcecuteReader();
dsReport.Load(drReport, LoadOption.OverwriteChanges, dsReport.Tables[0], tables[1], Tables[2]);
// prepare report rptMain for view
reportViewer1.LocalReport.ReportEmbeddedResource = "rptMain.rdlc");
// add a handler for SubreportProcessing
reportViewer1.LocalReport.SubreportProcessing += new SubreportProcessingEventHandler (SubreportProcessingEventHandler);
// then
ReportDataSource rds = new ReportDataSource();
rds.Name = "DataSet1" // DataSet1 is the name of DataSet in main and subreports
rds.Value = dsReport.Table[0];
reportViewer1.LocalReport.DataSources.Add(rds);
// preview the report
reportViewer1.RefreshReport();
// In the SubreportProcessingEventHandler I coded thus:-
void SubreportProcessingEventHandler(object sender, SubreportProcessingEventArgs e)
{
e.DataSources.Add(new ReportDataSource("DataSet1", dsReport.Table[1]));
e.DataSources.Add(new ReportDataSource("DataSet1", dsReport.Table[2]));
}
Во время выполнения я вижу отчет с данными из tblA и вложенный отчет по tblB.Подотчет для tblC показывает только статический текст, но в отчете отсутствуют данные!
Буду признателен, если кто-нибудь сможет подсказать мне правильное кодирование, чтобы все данные подотчетов могли отображаться в основном отчете.1007 * Спасибо заранее.