如何在Crystal Reports公式中使用if then else构建字符串

13

顺便说一下,这是Visual Studio 2003中的Crystal Reports 9。

有关Crystal Reports公式语法的简单问题:如何使用if-then子句构建公式的结果?

具体来说,我想要像这样的东西:

dim val as string
val = {table.level}
if {table.uom_id} = 5 then 
  val = val & ' feet'
else
  val = val $ ' meters'
end if

并且val应该是这个公式的结果。

顺便问一下,有没有编写这些内容的快捷方式? 这些代码非常冗长,使用三目运算符会非常方便。

1个回答

18

您的示例接近正确。只需使用Crystal语法,如下所示:

stringvar val := {table.level};

if {table.uom_id} = 5 then
  val := val + ' feet'
else
  val := val + ' meters';

//to return a value, just plop it down at the end
val

但如果您需要更简洁的内容,请使用以下内容:

if {table.uom_id} = 5 then
  {table.level} + ' feet'
else
  {table.level} + ' meters';

是的,如果Crystal允许您从另一个函数中调用一个函数(带参数),那么生活将会变得轻松得多。 - JosephStyons
实际上,我认为Crystal确实允许您从公式中调用函数。 - SarekOfVulcan
你可以调用另一个 Crystal 函数,但是你不能传递任何参数。 - JosephStyons

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接