【发布时间】:2017-09-15 23:48:00
【问题描述】:
我的布局中有一个交叉表元素。列组中的一个值为空,我不想在输出中显示该列的空值。
我尝试过检查空值时的空白和修改表达式属性时的打印。但它所做的只是用空白替换空值,但该列仍然出现在输出中。
电流输出
预期输出
【问题讨论】:
我的布局中有一个交叉表元素。列组中的一个值为空,我不想在输出中显示该列的空值。
我尝试过检查空值时的空白和修改表达式属性时的打印。但它所做的只是用空白替换空值,但该列仍然出现在输出中。
电流输出
预期输出
【问题讨论】:
要将列标题中的名称从 null 更改为其他名称,您可以修改 bucketExpression
<bucketExpression><![CDATA[($F{myField==null}?"New name":$F{myField})]]></bucketExpression>
使用它,您还可以将值移动到新的存储桶(列)中。
如果您想删除整个列,AFIK 没有其他方法可以在将数据源中的空值传递给交叉表之前过滤掉它。
选项有:
如果您使用的是 sql 数据源,只需在 where 子句中添加该字段,对于 mysql,这将类似于 WHERE myField is not null
在您的数据源上使用 filterExpression,例如。
<filterExpression><![CDATA[($F{myField}!=null)]]></filterExpression>
开发一个自定义 JRDatasource 包装数据源,如果记录具有 null 值,则忽略并跳转。
结论:要删除列,您需要先从数据源中删除记录,然后再将其传递给交叉表。
【讨论】: