当DataSet表中的一个为空时,Crystal Report不显示数据

时间:2015-12-14 10:43:18

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

我正在使用Crystal Reports和VS 2010. Crystal Report正在显示DataSet中2个表的数据。

表1(GetReceptionInfo)包含报告标题中的一些信息:名称,ID,日期,时间 表2(SelectReceptionWork)包含报告详细信息部分中的记录。

当我在表2中返回记录时尝试查看CR时,CR工作正常,但是当我没有返回任何记录时尝试查看它(仅在表2中但是表1中有HAS记录)Crystal Report全是空的。

我从DataSet中预览了表1,它工作正常,但不在报告上。

我尝试了以下步骤,但结果仍然相同(每次更改后都验证了数据库):

  • 数据库专家中删除了所有链接。
  • EnforceConstraints的DataSet属性设置为False
  • 删除了DataSet上的所有主键。
  • 数据库专家中删除了表1并再次添加。

数据库专家没有链接或索引:

DatabaseExpert no links or indexes

DataSet没有键,表格不相关:

DataSet with no keys, tables are not related

如果问题不明确,我可以发布报告的截图,但我担心它可能不清楚,因为它是用阿拉伯语写的。

1 个答案:

答案 0 :(得分:1)

选项A:如果可以加入GetReceptionInfo和SelectReceptionWorkWhen 。然后,您需要使用左连接加入表 - 而不是相等的连接。当你在"链接"选项卡,单击并从要加入的字段拖动到要加入的字段。这将创建一个小线。然后,双击该行。它会弹出一个页面,让您选择所需的连接类型。选择"左外连接"

选项B:如果GetReceptionInfo和SelectReceptionWorkWhen 不打算加入,那么最好的办法就是从主报表中删除标题表(GetReceptionInfo)。仅包含表SelectReceptionWork。这应列出您想要的所有数据。但是,您仍然需要显示该标题信息。因此,为此,创建一个仅使用GetReceptionInfo作为其数据源的SubReport,并将该SubReport添加到crystal报表的Report Header(或Page Header)部分。