我的jasper报告中有一个字段,其表达式值类似于
$F{address_street1}+" "+$F{address_street2}+ " " +$F{address_state} + " "+$F{address_country}+ " "+$F{address_zip}
Run Code Online (Sandbox Code Playgroud)
我的问题是,如果这里的任何字段为null,我得到其他东西之间的空值
101 Main St****null****ILUnited States12345
Run Code Online (Sandbox Code Playgroud)
注意突出显示的null.有什么办法可以避免吗?
我已经尝试使用布尔表达式检查其中特定字段的空值并将其替换为空白,但这似乎不起作用.
kro*_*ock 42
将该属性设置isBlankWhenNull
为true.
<textField isBlankWhenNull="true">
Dam*_*ash 35
在表达式中您可以使用Java代码.
所以你需要做的是检查字段的值是否为null,如果然后用空字符串替换它.
$F{address_street1} == null ? "" : $F{address_street1}+ " " +
$F{address_street2} == null ? "" : $F{address_street2}+ " " +
$F{address_state} == null ? "" : $F{address_state} + " " +
$F{address_country} == null ? "" : $F{address_country}+ " " +
$F{address_zip} == null ? "" : $F{address_zip}
Run Code Online (Sandbox Code Playgroud)
rog*_*ler 12
@Vash,是的,这就是我要做的事情,除了我认为您可能希望将每个表达式放在括号内,以便每个表达式独立于其他表达式.像这样:
($F{address_street1} == null ? "" : $F{address_street1}+ " ") +
($F{address_street2} == null ? "" : $F{address_street2}+ " ") +
($F{address_state} == null ? "" : $F{address_state} + " ") +
($F{address_country} == null ? "" : $F{address_country}+ " ") +
($F{address_zip} == null ? "" : $F{address_zip})
Run Code Online (Sandbox Code Playgroud)
如果你可以使用jasperreports-functions并且你想输出String值,你可以使用函数T()来返回文本String或空String.
T($ F {FirstName}您好)
要首先解决此问题,请在IReport中检查字段属性Blank at null复选框,或者它是Jasper jrxml文件:<textField isBlankWhenNull="true">
.
然后我找到了解决这个问题的两种方法.选择下面介绍的一种方式.
1.使用这样的表达式语法
$F{variableName}.equals( "0" )? "" : $F{variableName}
你可以使用像这样的代码
$F{address_street1}.equals("0")? "" : $F{address_street1} + " " +
$F{address_street2}.equals("0")? "" : $F{address_street2} + " " +
$F{address_state}.equals("0")? "" : $F{address_state} + " " +
$F{address_country}.equals("0")? "" : $F{address_country} + " " +
$F{address_zip}.equals("0")? "" : $F{address_zip}
Run Code Online (Sandbox Code Playgroud)
2.使用表达式语法
$F{variableName}== null ? "" : $F{variableName}
你可以使用像这样的代码
$F{address_street1} == null ? "" : $F{address_street1} + " " +
$F{address_street2} == null ? "" : $F{address_street2} + " " +
$F{address_state} == null ? "" : $F{address_state} + " " +
$F{address_country} == null ? "" : $F{address_country} + " " +
$F{address_zip} == null ? "" : $F{address_zip}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
83102 次 |
最近记录: |