我有一份包含多个部分的水晶报告
报告的数据来源由数据集" DS1"通过C#应用程序(推送方法)
由于背景中的逻辑复杂,因此决定使用数据集" DS1"使用4个数据表(tbl0,tbl1,tbl2,tbl3)来 分别 数据集中的正确数据。
数据集没有任何关系,因为我已将最终数据结果直接加载到数据集中的相关数据表中
DataTable dt1 = new DataTable();
DataTable dt2 = new DataTable();
DataTable dt3 = new DataTable();
DataTable dt4 = new DataTable();
Load_CompanyInfo(country_ID, ref dt1);
Load_Countries(_ApprovalID, ref dt2);
Load_Products(_ApprovalID, ref dt3);
Load_Items(_ApprovalID, ref dt4);
_ds_tmp.Tables.Add(dt1);
_ds_tmp.Tables.Add(dt2);
_ds_tmp.Tables.Add(dt3);
_ds_tmp.Tables.Add(dt4);
在表单ReportView.cs中,我已将数据集分配给报告。
rep_c_single.SetDataSource(ds.Tables[0]); // Main company info
rep_c_single.Subreports[0].SetDataSource(ds.Tables[1]); // countries
rep_c_single.Subreports[1].SetDataSource(ds.Tables[2]); // products
rep_c_single.Subreports[2].SetDataSource(ds.Tables[3]); // items
rep_c_single.Refresh();
cr_Viewer.ReportSource = rep_c_single;
在报告文件中,子报告没有主报告的链接字段。 因为最终数据是在数据表中准备的。 我只想独立于主报表数据源显示Sub报表中的数据。
到目前为止,子报告列出了所有国家和所有产品,而不是数据表中的内容。
编辑: 值得一提的是:子报告和主要报告没有任何关系。我只希望将数据推送到相关的子报告
感谢您的帮助
答案 0 :(得分:0)
我不完全确定..但我曾经做过一次......
确保您的报告具有基于主报告主键的组(您要将所有子报告链接到该组)
右键点击子报告
更改子报告链接
在可用字段中选择子报告或相应数据表的列名称
点击添加将其添加到要链接的字段中 它还会在子报告参数中显示使用下面的下拉列表
- 选择子报告中的数据
检查标志 - 根据字段
- 醇>
选择您在第一步中制作的主报告主键组
希望它有效.. :)