【问题标题】:Crystal Reports - Suppress formula repeatedCrystal Reports - 抑制公式重复
【发布时间】:2018-02-20 10:31:53
【问题描述】:

我有一个 Crystal Reports 报表,它包含 3 个不同详细信息部分的 3 个子报表。 (细节a,细节b,细节c)

如果我将使用数据库中数据的抑制公式设置为详细信息部分 b 和 c

ISNULL({Table.Field})

当我生成报告时,整个详细信息部分(a、b 和 c)被重复多次,并且数据从 3-93 页报告中复制。

我的数据是结构化广告如下:

DataSource: ReportDS
Table: Client (Showed in details a)
 -Name
 -Surname
 -...
Table: Order (Showed in details b repeated for any order in datasource)
 -Date
 -Total
 -...
Table: Product (Showed in details c repeated for any product in datasource)
 -Name
 -Price

b 节抑制公式:

IF ISNULL({Order.Total}) THEN TRUE ELSE FALSE

c部分抑制公式:

IF ISNULL({Product.Name}) THEN TRUE ELSE FALSE

【问题讨论】:

  • 你在哪里写的抑制公式?
  • 右键单击详细信息部分 b -> 部分表达式 -> 抑制标志 -> 公式并右键单击详细信息部分 c -> 部分表达式 -> 抑制标志 -> 公式
  • 是3个数据源还是一个数据源?
  • 单一数据源
  • 如果它是单一来源,则编辑关于您在每个详细信息部分中显示的数据以及您在详细信息部分 b 和 c 中使用的条件是什么的问题

标签: c# crystal-reports basic


【解决方案1】:
  1. 您是否尝试将抑制命令添加到格式化子报表本身?使用它的格式部分。
  2. 如果这不起作用,请将抑制命令带入子报表并抑制其所有部分。

【讨论】:

  • 1) 我已经尝试过,但问题仍然存在 2) 问题是我从 XML 读取数据,如果 XML 不包含有关该部分水晶报告的信息,则会引发异常跨度>
  • CR 引发异常,因为 XML 中缺少数据列导致报表的数据源具有与报表预期不同的架构。要更正此问题,您需要修改数据源的创建方式,以确保所有列始终存在。您应该能够在您的 C# 代码中执行此操作。如果您使用用于自己构建数据源的代码更新此问题,则此处可能会有所帮助。一个新问题甚至可能是合适的。
猜你喜欢
  • 1970-01-01
  • 2013-10-27
  • 1970-01-01
  • 2011-05-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-12-06
相关资源
最近更新 更多