添加一组文本字段,但只显示一个在Jasper中包含数据的组字段

时间:2015-09-29 01:07:35

标签: jasper-reports

我有两组文字字段。

第一组(股票代码)是:

$F{VW_STOCKOPNAME_S1_KL}
$F{VW_STOCKOPNAME_S2_JB}
$F{VW_STOCKOPNAME_S3_NB}
$F{VW_STOCKOPNAME_S4_SB}

第二组(资产代码)是:

$F{VW_STOCKOPNAME_A1_GOLONGAN}
$F{VW_STOCKOPNAME_A2_BIDANG}
$F{VW_STOCKOPNAME_A3_KELOMPOK}
$F{VW_STOCKOPNAME_A4_SUBKELOMPOK}
$F{VW_STOCKOPNAME_A5_SUBSUBKEL}

我有一个名为Product的字段:

 $F{VW_STOCKOPNAME_PRODUCT}

每种产品都有资产代码/股票代码。 如果产品具有资产代码,则“股票代码”字段将自动为空白, 它的工作原理相反。

Code    || Product
----------------------
1-2-1-1 || Stock Goods
0-2-3-1 || Asset Goods

如何让它自动显示具有匹配代码的每个产品?

1 个答案:

答案 0 :(得分:0)

为组中的所有文本字段添加属性“空白时为空”(isBlankWhenNull =“true”)

更新:添加了PrintWhenExpression

<textField isStretchWithOverflow="true" isBlankWhenNull="true">
<reportElement x="143" y="29" width="260" height="20" isRemoveLineWhenBlank="true">
    <printWhenExpression><![CDATA[($F{VW_STOCKOPNAME_S1_KL}!=null && $F{VW_STOCKOPNAME_S2_JB}!=null && $F{VW_STOCKOPNAME_S3_NB}!=null && $F{VW_STOCKOPNAME_S4_SB}!=null)]]></printWhenExpression>
</reportElement>
<box leftPadding="2"/>
<textElement verticalAlignment="Middle">
    <font isBold="true"/>
</textElement>
<textFieldExpression class="java.lang.String"><![CDATA[$F{VW_STOCKOPNAME_S1_KL}]]></textFieldExpression>

或者您也可以使用print when expression