我将Crystal Reports XI与C#Visual Studio 2005一起使用。 我正在尝试从摘要数据集创建子报表。 一个简单的例子是公司列表与员工。 我加载公司数据集(使用CompanyId)。 我想创建一个由CompanyId链接的子报表,根据需要加载(显然)数据集。如果我将所有细节加载到一个怪物数据集中,我可以创建这个子报告,但在我的实际实现中,这将涉及加载数百万个细节行(不是一个选项)。
有没有办法可以捕获SubReport事件并从我的数据库连接加载数据集?我基本上想拦截子报表链接调用以自己构建数据集。
答案 0 :(得分:1)
这很简单。在您拥有的xsd数据集中创建2个数据表。根据公共ID /密钥值获取这两个数据表的值。将一个数据集表复制到另一个,如
ds2.Tables.Add(ds1.Tables[0].Copy());
然后,
rpt.Load(path + @"Report\Report1.rpt");
rpt.SetDataSource(ds2); //datasource is single
crystalReportViewer.ReportSource = FFrpt;
当你添加子报告时,获取第二个表作为数据源及其值。 将这些字段添加到子报表中,完成它!
此致 希亚姆