DevExpress XtraReports将子报表数据源绑定到报表的集合数据源

时间:2018-04-05 15:16:06

标签: collections devexpress subreport xtrareport

我在将 DevExpress XtraReport 子报告的数据源绑定到包含报告数据源的数据源方面遇到了一些麻烦。数据源是一个对象集合。

如果我创建一个带有子细节部分的基本报告,那么一切都很好。

例如,对象集合是公司列表。每家公司都有一份地址列表和一份联系人列表。我正在尝试的是为每个(细节)公司创建一个包含两个子报表的报表。

从几篇网络文章中,我认为这种方法似乎可行:

report.ContactSubreport.ReportSource.DataSource = report.Datasource

我使用子报告的BeforePrint事件从脚本调用。

我还尝试将datamember设置为子集合的名称:

report.ContactSubreport.ReportSource.DataMember = "Contacts"

非常感谢任何帮助或建议。谢谢!

1 个答案:

答案 0 :(得分:1)

根据我收集的信息,您只需要显示属于当前主记录的子集合的记录。

在这种情况下,最好处理那些XRSubreports的BeforePrint事件,然后在其中调用主报表的XtraReport.GetCurrentRow方法。此方法调用将返回一个主记录(即“ Company”对象的实例)。这将使您可以将“ Company.Addresses”列表传递到第一个子报表,而将“ Company.Contacts”列表传递给第二个子报表。因此,将只在两个子报表中打印仅与每个“公司”相对应的详细信息。