I would like to have a pair of TextFields depending on a value. And the "y"-value should be adjusted depending on the empty space.
When the value is "0"
I would like to hide the TextField.
Ie I would like to hide the staticText
and the textField
if the parameter red
is equal to "0"
and have the blue values moved up, in the jrxml-code below:
<staticText>
<reportElement x="100" y="30" width="100" height="30"/>
<text><![CDATA[Red items:]]></text>
</staticText>
<textField>
<reportElement x="200" y="30" width="40" height="30"/>
<textFieldExpression>
<![CDATA[$P{red}]]>
</textFieldExpression>
</textField>
<staticText>
<reportElement x="100" y="60" width="100" height="30"/>
<text><![CDATA[Blue items:]]></text>
</staticText>
<textField>
<reportElement x="200" y="60" width="40" height="30"/>
<textFieldExpression>
<![CDATA[$P{blue}]]>
</textFieldExpression>
</textField>
Example of output:
//if blue = 3 and red = 2 if blue = 3 and red = 0 if blue = 0 and red = 2
Red items: 2 Blue items: 3 Red items: 2
Blue items: 3
These TextFields will be placed at the end of my report. How can I do this?
<reportElement ...>
<printWhenExpression><![CDATA[$P{red} == 0]]></printWhenExpression>
</reportElement>
You can use iReport to modify this with a pleasant UI.
In this way, no, I'm not sure it's possible.
There is an option called Remove Link When Blank
, but it only works if you want to remove the whole line. Here you want to remove one line in specific column.
In this case I would recommend using crosstab
or CrossTables feature.
Give the Column Group the value of X. (supposing X is the column number) And give the Row Group the value of the color field, from here you can change the label dynamically, something like this:
$F{color}==null?"": ($F{color}.equals("RED")?"Red Items":"Blue Items")
you can use like this
Declare RED as [class="java.lang.Number"]
while printing
$P{red}.intValue() == 0 ? null : $P{red}.intValue()
and enable Blank when null option of the field using
textField isBlankWhenNull="true">
<reportElement x="100" y="30" width="100" height="30" isRemoveLineWhenBlank="true"/>
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.