【问题标题】:How to Show/Hide field by another field visibility in crystal report如何通过水晶报表中的另一个字段可见性显示/隐藏字段
【发布时间】:2018-04-11 10:01:41
【问题描述】:

我在 vb.net 中使用水晶报表,我想通过另一个字段的可见性来显示/隐藏某些字段。首先我将抑制条件添加到一个字段,如 =>

if Not OnfirstRecord And ({Field1} = previous({Field1})) then
true

我已经添加了这个条件,因为我不想显示重复的字段并且它可以工作。然后我在水晶报告中添加了该行,该行仅在 field1 visible = true 时显示。

我的想法是在 field1 可见时显示线条,在 field1 隐藏时隐藏。那么如何显示条件取决于 field1 可见性的线条?

【问题讨论】:

    标签: crystal-reports suppress


    【解决方案1】:

    我不知道如何检查字段是否被抑制,但由于您使用公式来抑制要测试抑制的字段,因此您只需反转该公式中使用的逻辑.

    如果Field_A有以下抑制公式:

    if Not OnfirstRecord And ({Field1} = previous({Field1})) then
    true
    else
    false
    

    那么 Field_B 就会有这个抑制公式:

    if Not OnfirstRecord And ({Field1} = previous({Field1})) then
    false
    else
    true
    

    另外,我想指出,您并不总是需要在抑制公式中使用 If..Then..Else 逻辑。您在 If 语句中使用的表达式最终将评估为真或假值。您可以将抑制公式缩短为仅表达式本身,并且抑制的工作方式与您的编码相同,但编码更少。 :)

    由于您使用了 if 语句,我在您的逻辑中添加了一个 else。当您没有为真值和假值指定条件时,使用 If 语句的抑制公式可能会产生意外结果。当您只返回一个真值时,公式只能抑制该字段。一旦一条记录的计算结果为真,如果需要抑制下一条记录,则公式永远不能将值设置回假。这也是为什么最好只在抑制公式中使用表达式的另一个原因。由于表达式的计算结果始终为 true 或 false,因此它们可以帮助您防止陷入没有指定 else 条件的 if 语句的逻辑陷阱。

    【讨论】:

    • 感谢@R.McMillan 的解释,
    猜你喜欢
    • 1970-01-01
    • 2012-03-17
    • 1970-01-01
    • 2015-08-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多