RDLC 如何嵌套多级子报表

kaichhuang 2012-09-05 05:45:16
RDLC 如何实现子报表中嵌套子报表??
...全文
618 5 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
linlanyun0930 2015-04-07
  • 打赏
  • 举报
回复
代码好多。。看的眼都花了,我这种不太会编程的新手还是默默用finereport吧。。向大神学习学习。
愚知 2012-09-05
  • 打赏
  • 举报
回复

private void printRebills(Guid printGuid)
{
ReportViewEmail_form r_f = new ReportViewEmail_form();//Email

ds = (new ReBillManager()).Get_dataset_(printGuid);
if (ds.Tables[0].Rows.Count == 0)
{
return;
}
r_f.rptv.Clear();
r_f.rptv.LocalReport.DataSources.Clear();
r_f.rptv.LocalReport.ReportEmbeddedResource = "SunNet.TEI_Form.Reports.Billing.rebill01.rdlc";

ReportDataSource rds = new ReportDataSource("DataSet1", ds.Tables[0]);

r_f.rptv.LocalReport.DataSources.Add(rds);

r_f.rptv.LocalReport.Refresh();
r_f.rptv.LocalReport.SubreportProcessing += new SubreportProcessingEventHandler(LocalReport_SubreportProcessing);
r_f.rptv.RefreshReport();
m_streams = new List<Stream>();
Warning[] warnings;
r_f.rptv.LocalReport.Render("Image", "<DeviceInfo><OutputFormat>EMF</OutputFormat><PageWidth>11in</PageWidth><PageHeight>8.5in</PageHeight><MarginTop>0in</MarginTop><MarginLeft>0in</MarginLeft><MarginRight>0in</MarginRight><MarginBottom>0in</MarginBottom></DeviceInfo>", CreateStream, out warnings);
m_currentPageIndex = 0;
if (m_streams == null || m_streams.Count == 0)
{
return;
}
PrintDocument printDoc = new PrintDocument();
if (!printDoc.PrinterSettings.IsValid)
{
MessageBox.Show("Can't find printer");
return;
}
printDoc.DefaultPageSettings.Landscape = true;
printDoc.PrinterSettings.Copies = 2;
printDoc.PrinterSettings.Collate = false;
printDoc.PrintPage += new PrintPageEventHandler(PrintPage);
printDoc.Print();
(new ReBillManager()).DeleteALL(printGuid);
}

private void LocalReport_SubreportProcessing(object sender, SubreportProcessingEventArgs e)
{
switch (e.Parameters["type"].Values[0])
{
case "print0":
e.DataSources.Add(new ReportDataSource("DataSet1", ds.Tables[1]));
break;
case "print1":
e.DataSources.Add(new ReportDataSource("DataSet1", ds.Tables[2]));
break;
case "print2":
e.DataSources.Add(new ReportDataSource("DataSet1", ds.Tables[3]));
break;
}
}
kaichhuang 2012-09-05
  • 打赏
  • 举报
回复
localReport.LoadReportDefinition(_service.GenerateRdlc(Server.MapPath("~/mainReport.rdlc"), false));
localReport.LoadSubreportDefinition("subReport", _service.GenerateRdlc(Server.MapPath("~/subReport.rdlc"), true));

如果 ~/subReport.rdlc 里也嵌套了一个 子报表 如:~/subReport1.rdlc

这个该如果处理呢???
愚知 2012-09-05
  • 打赏
  • 举报
回复

1 显示标头 标尾《传给2参数a》

1 2 数据行 《接收1传的参数a》

1 2 3 数据行《接收2传的参数b》

这样的层级结构明白?

4,819

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 图表区
社区管理员
  • 图表区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧