带有条件形成晶体的IF声明

时间:2017-10-04 16:01:52

标签: crystal-reports

我想做一个有2个结果的IF语句:

  1. 我想说一句话
  2. 我希望它是一种颜色
  3. 例如:

    IF {Command.Check in/Appt} < 0  
       THEN "Early" AND crGreen
    ELSE "LATE" AND crRed
    

    在上面的例子中,AND不起作用。

      

    此处需要布尔值。

    所以我只需要找到一种方法来获得这两个结果

2 个答案:

答案 0 :(得分:1)

如果不使用共享变量,则无法执行此操作。一个公式,一个输出。

但没有任何迹象表明你不能有两个几乎相同的公式,(一个用于Early / Late,一个用于Red / {{1} }) - 在Crystal中,这是最好的方法。 (很高兴看到你自己想出来。)

Green关键字给您带来麻烦的原因是AND is a Boolean operator。每当您使用AND时,您基本上都在使用此功能:

  

将布尔值ANDFOO作为输入。

     

如果且仅当BARtrue 两者时才返回FOO
  如果其中至少有一个是假的,我会返回BAR

因此false关键字期望输入两个布尔值。相反,你给它一个字符串和一个颜色。询问机器是否红色等于真,它会抱怨。

答案 1 :(得分:0)

好的,虽然我没有通过在公式中添加解决方案找到解决方案,但我确实找到了解决方案。

对于那些遇到同样问题的人,请保留IF声明:

IF {Command.Check in/Appt} < 0  
THEN "Early"
ELSE "LATE"

然后保存并转到Format&gt; Highlight Expert输入您喜欢的格式条件。

在上述情况下,我做了:

  • New&gt; Value of: this field is equal to“早期”Font color绿色
  • New&gt; Value of: this field is equal to“已晚”Font color红色