我有一个网页,在ReportViewer中显示RDLC报告。主报告中的每条记录都有一个子报告。将参数从主报告传递到RDLC中的子报告
我需要将主报表中每个记录的3个字段的数据作为参数传递给子报表存储过程。
主报告工作,但它只是说
Error: Subreport could not be shown
我在这两份报告中定义的所有参数,而我处理localReport_SubreportProcessing事件
C#代码
protected void Page_Load(object sender, EventArgs e)
{
this.ReportViewer1.LocalReport.DataSources.Add(new ReportDataSource("Refs_MainDs", SqlDs_RefsReportsMain));
this.ReportViewer1.LocalReport.SubreportProcessing += new SubreportProcessingEventHandler(localReport_SubreportProcessing);
}
void localReport_SubreportProcessing(object sender, SubreportProcessingEventArgs e)
{
e.DataSources.Add(new ReportDataSource("Refs_SubDs", SqlDs_RefsReportsSub));
}
ASP代码
<rsweb:ReportViewer ID="ReportViewer1" runat="server" Height="800px" Width="100%" Font-Names="Verdana" Font-Size="8pt" BorderColor="#666666"
BorderStyle="Solid" BorderWidth="1px" AsyncRendering="False" ShowPrintButton="False" >
<LocalReport ReportPath="Reports\EOD_Refs_MainReport.rdlc" >
<DataSources>
<rsweb:ReportDataSource DataSourceId="SqlDs_RefsReportsMain" Name="Refs_DataSource" />
<rsweb:ReportDataSource DataSourceId="SqlDs_RefsReportsSub" Name="Refs_DataSource" />
</DataSources>
</LocalReport>
和
<asp:SqlDataSource ID="SqlDs_RefsReportsMain" runat="server" ConnectionString="<%$ ConnectionStrings:AlphaConnectionString %>"
SelectCommand="rpt_RefsReport_Main" SelectCommandType="StoredProcedure">
<SelectParameters>
<asp:QueryStringParameter Name="RefsID" QueryStringField="RefsID" Type="String" />
</SelectParameters>
您已经在子报表中设置了您的参数以从父报表的Fields集合中检索它们的值? –
此外,虽然我没有这样做过网络报告:ReportDataSource标记的名称属性应该是相同的吗? –
最后,作为一个实验,可能值得看看是否可以自行加载子报表。 –