在水晶报表中添加条件行

Posted

技术标签:

【中文标题】在水晶报表中添加条件行【英文标题】:Add a conditional row in crystal report 【发布时间】:2021-02-24 21:58:24 【问题描述】:

我正在开发一个 C# 应用程序,该应用程序将使用热敏打印机打印账单/收据。我正在使用 Crystal Reports 来生成报告/账单。

我希望报告有 4 个字段(项目名称、数量、金额、折扣)。有时可能会有折扣,否则不会。这个报告的格式应该是这样的(参考见this)

| Item Name | Qty | Amount$ |
|---------------------------|
| Abc       |  1  |  100    |
| You Saved 4$    |         |
|---------------------------|
| Def       |  1  |  50     |
|---------------------------|

从表中可以看出,Item = Abc 有折扣,因此折扣行(您节省了 4 美元)存在,对于 Item=Def 没有折扣,因此该行不存在。

我怎样才能达到这样的效果?

编辑已解决。

【问题讨论】:

我们需要查看您的相关代码 sn-p 以及您自己解决此问题的最佳尝试。你有错误吗?还是输出不符合您的预期?请编辑您的问题并添加详细信息。 这更像是一个设计的东西,我只需要一些关于这个(我想要的东西)实际被调用的指针。水晶报表中有一个交叉表选项,但我没有交叉表与我想要的有关。 @huzaifa99 考虑更改 SQL 查询(而不是名为“折扣”的列)“折扣”的值作为换行符添加到“项目名称”中列(存在折扣时) - 并按照 devlin carnate 告诉您的操作:add your relevant code snippet and your best attempt at resolving this yourself,否则,就像您的问题一样,很难添加想法和更准确的答案。 【参考方案1】:

不需要额外的列。 右键单击详细信息部分,然后选择“在下面插入部分”。 这应该会导致 Detail a(放置正常内容的位置)和 Detail b 部分(放置折扣信息的位置。

在细节 b 的 Suppress 表达式中有一个表达式,例如:

Discount = 0

这将导致该部分仅在折扣不为零时可见。

【讨论】:

这是结果的样子,忽略它们都是虚拟的值。 pdfhost.io/edit?doc=fe33a0b0-c809-4472-951b-e81a5999b8e6【参考方案2】:

这可能不是您案例的完整答案,但它通常适用并给您一个想法。

您可以有条件地抑制乐队。 我认为您将数据集传递给报告。如果是这样,请向您的数据集添加一个新列。对于每一行,该列应定义是否需要抑制波段。并在您的条件下使用该列来抑制乐队。

【讨论】:

以上是关于在水晶报表中添加条件行的主要内容,如果未能解决你的问题,请参考以下文章

Winform中怎么使用水晶报表?

C# winform 用水晶报表 如何做能显示出图中上面那2行数据?

在水晶报表中添加记录数

VB.net中如何制作水晶报表?

C#怎么生成水晶报表

水晶报表 如何设置水晶报表 crystal reports 的字段自动换行