【问题标题】: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,否则,就像您的问题一样,很难添加想法和更准确的答案。

标签: c# sql-server wpf visual-studio crystal-reports


【解决方案1】:

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

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

{Discount} = 0

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

【讨论】:

【解决方案2】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-04
    • 2014-10-23
    • 1970-01-01
    • 1970-01-01
    • 2019-02-11
    • 1970-01-01
    相关资源
    最近更新 更多