Crystal 报告多个 OR 运算符不起作用的抑制公式
Crystal reports suppression formula with multiple OR operators not working
我正在尝试向我的 Crystal 报告 (XI) 字段添加一个非常简单的抑制公式,但它没有按预期工作。
我希望在满足特定条件时显示文本框,否则禁止显示。勾选抑制框后,我当前的公式如下:
{table1.field1} = "V1" or
{table1.field2} <> "V2" or
PageNumber > 1
如果满足 1、2 或所有 3 个条件的任意组合,则显示文本(field1
和 field2
都不会 return null
)。
但是 Crystal Reports 仅评估公式的第一行;如果 field1 = V2
则该字段不显示。
如有任何帮助,我们将不胜感激。
试试这个如果你只想在归档级别抑制 - 保持它在归档级别;如果你想压制整个部分 - 把它放在部分级别。
如果
({table1.field1} = "V1" 或 {table1.field2} <> "V2" 或 PageNumber > 1)
然后
错误的
否则为真
抑制公式的工作原理是在计算结果为 true
时抑制对象,而不是相反。换句话说,你需要否定你的整个公式。
not(
{table1.field1} = "V1" or
{table1.field2} <> "V2" or
PageNumber > 1
)
成为,通过德摩根定律
not({table1.field1} = "V1") and
not({table1.field2} <> "V2") and
not(PageNumber > 1)
然后可以简化为:
{table1.field1}<>"V1" and
{table1.field2="V2" and
PageNumber = 1
这有点令人困惑,但请尝试以下方式...
如果你想满足所有 3 个条件,那么你需要先写那个,因为如果首先满足任何一个条件,那么控制将永远不会达到 statisying all 3 conditions
,然后你的常规条件才能满足每一个。
所以你的公式是:
If
({table1.field1} = "V1" and
{table1.field2} <> "V2" and
PageNumber > 1)
then false //don't Supress when all are met
else if {table1.field1} = "V1"
Then false //field1 is met so don't supress
else if {table1.field2} <> "V2"
then false //field2 is met don't supress
else if PageNumber > 1
then false //3rd condition is met don't supress
else true //Supress anything as all conditions were failed
我正在尝试向我的 Crystal 报告 (XI) 字段添加一个非常简单的抑制公式,但它没有按预期工作。
我希望在满足特定条件时显示文本框,否则禁止显示。勾选抑制框后,我当前的公式如下:
{table1.field1} = "V1" or
{table1.field2} <> "V2" or
PageNumber > 1
如果满足 1、2 或所有 3 个条件的任意组合,则显示文本(field1
和 field2
都不会 return null
)。
但是 Crystal Reports 仅评估公式的第一行;如果 field1 = V2
则该字段不显示。
如有任何帮助,我们将不胜感激。
试试这个如果你只想在归档级别抑制 - 保持它在归档级别;如果你想压制整个部分 - 把它放在部分级别。
如果 ({table1.field1} = "V1" 或 {table1.field2} <> "V2" 或 PageNumber > 1) 然后 错误的 否则为真
抑制公式的工作原理是在计算结果为 true
时抑制对象,而不是相反。换句话说,你需要否定你的整个公式。
not(
{table1.field1} = "V1" or
{table1.field2} <> "V2" or
PageNumber > 1
)
成为,通过德摩根定律
not({table1.field1} = "V1") and
not({table1.field2} <> "V2") and
not(PageNumber > 1)
然后可以简化为:
{table1.field1}<>"V1" and
{table1.field2="V2" and
PageNumber = 1
这有点令人困惑,但请尝试以下方式...
如果你想满足所有 3 个条件,那么你需要先写那个,因为如果首先满足任何一个条件,那么控制将永远不会达到 statisying all 3 conditions
,然后你的常规条件才能满足每一个。
所以你的公式是:
If
({table1.field1} = "V1" and
{table1.field2} <> "V2" and
PageNumber > 1)
then false //don't Supress when all are met
else if {table1.field1} = "V1"
Then false //field1 is met so don't supress
else if {table1.field2} <> "V2"
then false //field2 is met don't supress
else if PageNumber > 1
then false //3rd condition is met don't supress
else true //Supress anything as all conditions were failed