Crystal报表取消链接子报表

时间:2015-05-05 14:28:40

标签: c# winforms visual-studio-2010 crystal-reports report

我有一份包含多个部分的水晶报告

  • 页面标题a(公司信息)
  • 页面标题b(子报告:具有特定国家/地区的列表)
  • 页面标题c(子报告:具有特定产品列表)
  • 页面标题d(子报告:具有特定项目列表)

报告的数据来源由数据集" 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报表中的数据。

到目前为止,子报告列出了所有国家和所有产品,而不是数据表中的内容。

编辑: 值得一提的是:子报告和主要报告没有任何关系。我只希望将数据推送到相关的子报告

感谢您的帮助

1 个答案:

答案 0 :(得分:0)

我不完全确定..但我曾经做过一次......

  
    
        
  1. 确保您的报告具有基于主报告主键的组(您要将所有子报告链接到该组)

  2.     
  3. 右键点击子报告

  4.     
  5. 更改子报告链接

  6.     
  7. 在可用字段中选择子报告或相应数据表的列名称

  8.     
  9. 点击添加将其添加到要链接的字段中     它还会在子报告参数中显示使用下面的下拉列表

  10.     
  11. 检查标志 - 根据字段

  12. 选择子报告中的数据     
  13. 选择您在第一步中制作的主报告主键组

  14.        

希望它有效.. :)