2

我将 Crystal Reports XI 与 C# Visual Studio 2005 一起使用。我正在尝试从汇总数据集创建子报表。一个简单的示例是包含员工的公司列表。我加载公司数据集(使用 CompanyId)。我想创建一个由 CompanyId 链接的子报表,从而按需加载(显然)数据集。如果我将所有细节加载到一个怪物数据集中,我可以创建这个子报表,但在我的实际实现中,这将涉及加载数百万个细节行(不是一个选项)。

有没有办法可以捕获 SubReport 事件并从我的数据库连接加载数据集?我基本上想拦截子报表链接调用来自己构建数据集。

4

1 回答 1

1

这是完全可能的。在您拥有的 xsd 数据集中创建 2 个数据表。根据公共 ID/键值获取这 2 个数据表的值。将一个数据集表复制到另一个像

ds2.Tables.Add(ds1.Tables[0].Copy());  

然后,

rpt.Load(path + @"Report\Report1.rpt");
rpt.SetDataSource(ds2); //datasource is single
crystalReportViewer.ReportSource = FFrpt;

当您添加子报表时,获取第二个表作为数据源及其值。将这些字段添加到您的子报表中,完成!

问候希亚姆

于 2011-05-04T07:33:40.567 回答