在VS 2010 RDLC中将报表参数传递给SubReport
在VS 2010 RDLC中将报表参数传递给SubReport
我在VS 2010中定义并将报告参数传递给子报告时遇到了一些麻烦。在VS 2008的设计视图中,我能够右键单击并定义报告参数并将其传递给我。
在VS 2010中,缺少提示。 所以我的问题是,如何将父报表中的值传递给VS 2010中的子报表?
此外,这是VS 2010内部的“报告属性”对话框中显示的内容:
暂时我在XML中手动定义了子报表中的参数,但是当我尝试将任何类型的参数传递给子报表时,我从主报表中收到错误。
错误是:
An error occurred during local report processing. Value cannot be null. Parameter name: value
我没有在任何地方定义一个名为value的参数。
-
转到子报表 – > 报表数据窗格 – > 参数并添加要接收的参数。
-
转到MainReport – > 右键单击SubReport – > Subreport Properties – > Parameters并添加相同的参数名称,然后从下拉列表中选择相关值。
-
处理
SubreportProcessing
事件并设置子报表的数据源。 在我的例子中,主报告数据源是List
类型,参数是OrderID
。 示例代码如下。
ReportViewer1.LocalReport.SubreportProcessing += new SubreportProcessingEventHandler(SetSubDataSource);
public void SetSubDataSource(object sender, SubreportProcessingEventArgs e) { var mainSource = ((LocalReport) sender).DataSources["MainDataSet1"]; var orderId = int.Parse(e.Parameters["OrderID"].Values.First()); var subSource = ((List)mainSource.Value).Single(o => o.OrderID == orderId).Suppliers; e.DataSources.Add(new ReportDataSource("SubDataSet1", subSource)); }
var subSource =((List)mainSource.Value).Single(o => o.OrderID == orderId)。供应商;
什么意思