Report's text field's "stretch with over flow" option add empty row in PDF export - jasper-reports

I have set the "Stretch With Overflow" option True to some text fields , when the data over flow in the jasper viewer is working correctly, the text is on 2 rows but in PDF document the second row is empty: it just adds an empty row.
Exemple xml code :
<textField isStretchWithOverflow="true" isBlankWhenNull="true">
<reportElement positionType="Float" stretchType="RelativeToTallestObject" x="165" y="0" width="35" height="10" isRemoveLineWhenBlank="true" uuid="a5d7ff35-a2dc-480e-80a7-9246d8618b27"/>
<textElement textAlignment="Left">
<font fontName="Futura Std Light" size="7"/>
<paragraph lineSpacing="Single"/>
</textElement>
<textFieldExpression><![CDATA[$F{montant} == null && $F{numeroAppelant} != null ? $F{numeroAppele}.toString():
$F{duree} != null ? $F{duree}.toString() :
$F{volumeKo} != null ? null : $F{montant}.toString()]]>
</textFieldExpression>

I found the solution,
I just set the line spacing property to 1.5 !

I found that when I change the font, it works wright. The problem that the same font on another report works fine with stretch with overflow option.

Related

Jasper report XLS export shows value as String instead of Currency

I have a similar issue as described here but with the value type instead of value pattern. I have a value called 'Balance'
<parameter name="Balance" class="java.lang.String"/>
and corresponding field
<textField isStretchWithOverflow="true" isBlankWhenNull="true">
<reportElement x="400" y="55" width="117" height="7"/>
<textElement textAlignment="Right" verticalAlignment="Top">
<font size="7" isBold="true" pdfFontName="Helvetica" isPdfEmbedded="false"/>
</textElement>
<textFieldExpression><![CDATA[( $P{Balance}.equals(null) ? "" : $P{Balance} )]]></textFieldExpression>
</textField>
When I export my Jasper report as XLS, 'Balance' value comes in correct pattern (ie. $400.20) but Excel consider this as a String instead of Currency.
Any idea how to fix it would be much appreciated.

Text truncated on JasperReports

I have a JasperReports's report within an application that is truncating text and I am unsure how to get it to display the full name.
The code snippet below shows that I have included isStretchWithOverflow="true":
<textField isStretchWithOverflow="true" isBlankWhenNull="true">
<reportElement x="353" y="0" width="79" height="30"/>
<textElement textAlignment="Right"/>
<textFieldExpression class="java.lang.String"><![CDATA[$F{acname}]]></textFieldExpression>
</textField>
The JasperReports's image shows incorrect values. One of these should read: 'Double Time Pay - Bill Regular' and the other 'Double Time Pay - Bill Overtime'.

Add group of text fields but show only one group field which has data in Jasper

I have two groups text fields.
1st group (Stock Code) is :
$F{VW_STOCKOPNAME_S1_KL}
$F{VW_STOCKOPNAME_S2_JB}
$F{VW_STOCKOPNAME_S3_NB}
$F{VW_STOCKOPNAME_S4_SB}
2nd group (Asset Code) is :
$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}
and I have field called Product :
$F{VW_STOCKOPNAME_PRODUCT}
Each product has either Asset Code / Stock Code.
If a product has Asset Code, then Stock Code field is automatically blank,
it works the other way around.
Code || Product
----------------------
1-2-1-1 || Stock Goods
0-2-3-1 || Asset Goods
How can I make it automatically show each product with matching code?
for all the textfields in group add property "Blank When Null"(isBlankWhenNull="true")
update: Added 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>
or you can also use print when expression

Print a field when certain value is not present Jasper reports

I am creating a JasperReports's report using iReport. I have a date field where once instance is 01-JAN-1900. I need any time the date field has this value then null value is printed. I have tried this:
<textField pattern="dd-MMM-yyyy" isBlankWhenNull="true">
<reportElement uuid="4dd05795-8363-4cf3-ad30-239aac3a086f" x="3" y="0" width="63" height="15">
<printWhenExpression><![CDATA[$F{TRAN_DATE} != "01-JAN-1900"]]></printWhenExpression>
</reportElement>
<textElement>
<font size="9"/>
</textElement>
<textFieldExpression><![CDATA[$F{TRAN_DATE}]]></textFieldExpression>
</textField>
But the value is still getting printed. How do I achieve this?
You cannot compare dissimilar types. Drop the String literal and compare datetime types.
If your field $F{TRAN_DATE} is in java.util.Date type, change it to java.lang.String and your condition should work.

IReport: Detail band does not overflow to next page

I have two text fields inside a detail band. Here follows band XML code:
<band height="40" splitType="Prevent">
<textField isStretchWithOverflow="true">
<reportElement positionType="Float" stretchType="RelativeToBandHeight" x="0" y="20" width="100" height="20" isPrintInFirstWholeBand="true" isPrintWhenDetailOverflows="true" uuid="67cd0dfb-9a6d-4468- 8aac-3f48e539c584"/>
<textFieldExpression><![CDATA[$F{Resposta}]]></textFieldExpression>
</textField>
<textField isStretchWithOverflow="true">
<reportElement positionType="Float" stretchType="RelativeToBandHeight" isPrintRepeatedValues="false" x="0" y="0" width="100" height="20" isPrintInFirstWholeBand="true" isPrintWhenDetailOverflows="true" uuid="c7fa90d3-2b11-4127-b319-5461a80acb2d"/>
<textFieldExpression><![CDATA[$F{Nome Questão}]]></textFieldExpression>
</textField>
</band>
As you can see, the text fields position type is "float", stretch type is "Relative to band height" print in first whole band is "true" print when detail overflows is "true" and stretch with overflow is also "true".
Band's Stretch Type is set to "Prevent".
I don't get it why it does not print all the rows I should get with my query. It should continue printing in more pages until all rows were displayed.
Any ideas?
First select your band details and set Stretch Type as "Stretch".
Secondly check and set following details by selecting your field :
Position type: float
Stretch type: relative to tallest object
Stretch with overflow: true (Checked)
Print repeated values: true (Checked)
Even if this not worked then add one more configuration -
Show out of bound content: true (Checked)
Note : If your field wrapped with frame then set frame properties also as above.
If you do above setting then I think there is no need to set detail overflows as "true".