在Winforms报告上过滤子报表数据

时间:2008-12-18 16:03:00

标签: winforms reporting service subreport

我正在使用Winforms Reporting Services(RDLC)生成具有子报表的报表。 我的问题是子报告没有被父ID过滤。

数据模型的一个简单示例可能是包含Employees的部门。

在报告中,我想显示所有部门,并有一个子报告来显示属于该部门的员工。

我创建了一个包含两个DataTables(部门和员工)的数据集。我使用DepartmentId列在两个表之间创建了一个关系。

在表格I中使用适当的填充命令填写每个表格。我首先填写Department表,然后填写Employee表,即Select * From Deparment和Select * from Employee。

现在对于实际的RDLC: 部门rdlc使用Deparment数据源并显示有关部门的信息。我在这个rdlc上删除了一个子报告控件并设置了属性。我将ReportProperty传递给子报告,即Field!DepartmentId。

在Employee rdlc中,我添加了Employee数据源并在Property!DepartmentId上创建了一个过滤器。

当我运行报告时,我可以遍历每个部门,但子报告不会显示。如果从Employee数据源中删除过滤器,则子报表显示但显示所有员工。

在表单本身中,我处理SubProcessing evert并将Employee数据源添加到报表中。

有关如何将子报表数据链接到父级的任何想法?

1 个答案:

答案 0 :(得分:1)

将ID从父级传递到子报告作为参数,然后根据该参数值过滤子报告中的表。

MSDN - Configuring Subreports and Drillthrough reports