c# - 当 DataSet 表 1 为空时,Crystal Report 不显示数据

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

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

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

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

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

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

  • 删除了Database Expert 的所有链接。
  • EnforceConstraints 的 DataSet 属性设置为 False
  • 删除了 DataSet 上的所有主键。
  • Database Expert 中删除了表 1,然后重新添加。

Database Expert 没有链接或索引:

DatabaseExpert no links or indexes

没有键的数据集,表不相关:

DataSet with no keys, tables are not related

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

最佳答案

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

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

关于c# - 当 DataSet 表 1 为空时,Crystal Report 不显示数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34265008/

相关文章:

visual-studio - Visual Studio 2010 中的绿条

mysql - 如何在mysql 'after next tuesday at 11:59PM'子句中写入 'where'

mysql - 从 ListView 内容生成报表到 Crystal 报表时提示数据库登录

crystal-reports - 向 Crystal Reports 添加具有透明度的图像

c# - 为什么新创建的 EF 实体在尝试保存时抛出 ID is null 异常?

c# - 如何避免为实现相同接口(interface)的类编写重复的单元测试?

c# - Windows Phone 8 上存在哪些 URI 协议(protocol)?

c# - 处理第一次通过 foreach 的更简洁的方式?

c# - 如何从YouTube获取视频下载链接?

c# - 多个API调用的Asp.net MVC4并行编程