text-expression中的if-else-if-else

che*_*rit 14 expression jasper-reports

我必须显示列: - 发送 - 接收 - 已取消

在报告列中,通过检查DB中的值"状态".因此,如果Status等于1,则发送,= 2接收,= 3取消.

jasper报告中的文本字段表达式(?a:b)只能采用一个条件,我如何给出多个条件?喜欢if-else阶梯的东西?

Gor*_*don 26

您可以使用嵌套的三元语句来实现此目的,但它很麻烦.

例如:

(i == 1) ? "Send" : ((i == 2)? "Received" : "Cancelled");
Run Code Online (Sandbox Code Playgroud)


小智 7

您可以使用replace()方法,但是如果不是,则必须将字段的类更改为String,EX:

$F{f_phone_type}.replace("0","Phone/ATA").replace("1","Gateway").replace("2","SIPTrunk")
Run Code Online (Sandbox Code Playgroud)