【发布时间】:2023-04-07 14:07:01
【问题描述】:
您好,我在使用 RDLC 子报表时遇到问题。 我有一个非常简单的设置,我有人和他们的住所。
问题是没有加载包含每个人的住所的子报告,因为从未触发 SubreportProcessing 事件。
我已经这样设置了我的报告查看器:
private void LoadAnniversaryReport()
{
DataSet dt = new ResidentSearchServiceClient().GetAnniversaries();
residenceDataTable = dt.Tables[1];
ReportDataSource personDataSource = new ReportDataSource("Dataset", dt.Tables[0]);
this.ReportViewer.LocalReport.ReportPath = "Reports\\Anniversary\\Anniversary.rdlc";
this.ReportViewer.LocalReport.DataSources.Clear();
this.ReportViewer.LocalReport.DataSources.Add(personDataSource);
this.ReportViewer.LocalReport.SubreportProcessing += ResidenceSubreportProcessing;
this.ReportViewer.Refresh();
this.ReportViewer.RefreshReport();
_isReportViewerLoaded = true;
}
子报表有一个名为“Id”的参数。这是子报表参数定义的xml:
<ReportParameters>
<ReportParameter Name="Id">
<DataType>Float</DataType>
<Nullable>true</Nullable>
<Prompt>ReportParameter1</Prompt>
</ReportParameter>
</ReportParameters>
以及父子报表和参数定义
<Subreport Name="PersonResidences">
<ReportName>PersonResidences</ReportName>
<Parameters>
<Parameter Name="Id">
<Value>=Fields!ENTITYID.Value</Value>
</Parameter>
</Parameters>
<OmitBorderOnPageBreak>true</OmitBorderOnPageBreak>
<Style>
<Border>
<Style>None</Style>
</Border>
</Style>
</Subreport>
“ReportName”是文件系统上报告的确切名称,不带 .rdlc 扩展名。两个报告都在同一个子目录中。
父报表没有子报表也能正常工作。
我知道以前有人问过这个问题,但似乎没有一个答案能解决我的问题。
任何帮助将不胜感激。
编辑: 遵循本教程并遇到完全相同的问题 https://www.c-sharpcorner.com/article/rdlc-subreport-using-c-sharp-and-wpf/
【问题讨论】:
标签: c# events report rdlc subreport