首页 > 解决方案 > jasper 报告中的文本字段数据截断

问题描述

我有一个带有文本字段的表格,即使文本字段有空间,数据也会被截断,我不确定是由于字体还是还有其他问题

我的 Xml 如下所示

<?xml version="1.0" encoding="UTF-8"?>
<!-- Created with Jaspersoft Studio version 6.8.0.final using JasperReports Library version 6.8.0-2ed8dfabb690ff337a5797129f2cd92902b0c87b  -->
<jasperReport xmlns="http://jasperreports.sourceforge.net/jasperreports" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://jasperreports.sourceforge.net/jasperreports http://jasperreports.sourceforge.net/xsd/jasperreport.xsd" name="Peer_Financial" pageWidth="371" pageHeight="30" columnWidth="371" leftMargin="0" rightMargin="0" topMargin="0" bottomMargin="0" isIgnorePagination="true" uuid="f541b4fb-a36f-4642-8d7a-08f8deae5cfe">
    <property name="com.jaspersoft.studio.data.defaultdataadapter" value="One Empty Record"/>
    <style name="Table_TH" mode="Opaque" backcolor="#F0F8FF">
        <box>
            <pen lineWidth="0.0" lineColor="#000000"/>
            <topPen lineWidth="0.0" lineColor="#000000"/>
            <leftPen lineWidth="0.0" lineColor="#000000"/>
            <bottomPen lineWidth="0.0" lineColor="#000000"/>
            <rightPen lineWidth="0.0" lineColor="#000000"/>
        </box>
    </style>
    <style name="Table_CH" mode="Opaque" backcolor="#BFE1FF">
        <box>
            <pen lineWidth="0.0" lineColor="#000000"/>
            <topPen lineWidth="0.0" lineColor="#000000"/>
            <leftPen lineWidth="0.0" lineColor="#000000"/>
            <bottomPen lineWidth="0.0" lineColor="#000000"/>
            <rightPen lineWidth="0.0" lineColor="#000000"/>
        </box>
    </style>
    <style name="Table_TD" mode="Opaque" backcolor="#FFFFFF">
        <box>
            <pen lineWidth="0.0" lineColor="#000000"/>
            <topPen lineWidth="0.0" lineColor="#000000"/>
            <leftPen lineWidth="0.0" lineColor="#000000"/>
            <bottomPen lineWidth="0.0" lineColor="#000000"/>
            <rightPen lineWidth="0.0" lineColor="#000000"/>
        </box>
    </style>
    <subDataset name="Dataset1" uuid="619e9aee-9ca4-4a77-aded-fbaab6a5afc9">
        <property name="com.jaspersoft.studio.data.defaultdataadapter" value="One Empty Record"/>
        <scriptlet name="Scriptlet_1" class="test.CustomizationReport"/>
        <parameter name="period" class="java.lang.String"/>
        <field name="itemName" class="java.lang.String"/>
        <field name="unit" class="java.lang.String"/>
        <field name="currency" class="java.lang.String"/>
        <field name="companyName1" class="java.lang.String"/>
        <field name="companyName2" class="java.lang.String"/>
        <field name="companyName3" class="java.lang.String"/>
        <field name="companyName4" class="java.lang.String"/>
        <field name="companyData1" class="java.lang.Double"/>
        <field name="companyData2" class="java.lang.Double"/>
        <field name="companyData3" class="java.lang.Double"/>
        <field name="companyData4" class="java.lang.Double"/>
    </subDataset>
    <parameter name="peerFinancialDataSource" class="net.sf.jasperreports.engine.data.JRBeanCollectionDataSource"/>
    <parameter name="period" class="java.lang.String"/>
    <background>
        <band splitType="Stretch"/>
    </background>
    <summary>
        <band height="26" splitType="Stretch">
            <componentElement>
                <reportElement x="0" y="0" width="371" height="26" isRemoveLineWhenBlank="true" isPrintInFirstWholeBand="true" uuid="ac8d3aad-66c7-47ef-9c28-96a27a061aaf">
                    <property name="com.jaspersoft.studio.layout" value="com.jaspersoft.studio.editor.layout.FreeLayout"/>
                    <property name="com.jaspersoft.studio.table.style.table_header" value="Table_TH"/>
                    <property name="com.jaspersoft.studio.table.style.column_header" value="Table_CH"/>
                    <property name="com.jaspersoft.studio.table.style.detail" value="Table_TD"/>
                    <property name="net.sf.jasperreports.export.headertoolbar.table.name" value=""/>
                    <property name="com.jaspersoft.studio.components.autoresize.proportional" value="true"/>
                </reportElement>
                <jr:table xmlns:jr="http://jasperreports.sourceforge.net/jasperreports/components" xsi:schemaLocation="http://jasperreports.sourceforge.net/jasperreports/components http://jasperreports.sourceforge.net/xsd/components.xsd">
                    <datasetRun subDataset="Dataset1" uuid="67b18d99-1e00-4ce6-baa5-525998255b75">
                        <datasetParameter name="period">
                            <datasetParameterExpression><![CDATA[$P{period}]]></datasetParameterExpression>
                        </datasetParameter>
                        <dataSourceExpression><![CDATA[$P{peerFinancialDataSource}]]></dataSourceExpression>
                    </datasetRun>
                    <jr:column width="90" uuid="5184a227-b235-4765-890b-04e16ed74654">
                        <property name="com.jaspersoft.studio.components.table.model.column.name" value="Column1"/>
                        <jr:columnHeader style="Table_CH" height="20" rowSpan="1">
                            <property name="com.jaspersoft.studio.unit.height" value="px"/>
                            <box>
                                <pen lineWidth="0.0" lineStyle="Solid"/>
                                <topPen lineWidth="0.0" lineStyle="Solid" lineColor="#000000"/>
                                <leftPen lineWidth="0.0" lineStyle="Solid" lineColor="#000000"/>
                                <bottomPen lineWidth="0.0" lineStyle="Solid" lineColor="#000000"/>
                                <rightPen lineWidth="0.0" lineStyle="Solid" lineColor="#000000"/>
                            </box>
                            <textField isStretchWithOverflow="true">
                                <reportElement x="0" y="0" width="90" height="20" uuid="351bc635-fdac-4c19-a911-8cf91942523e"/>
                                <box leftPadding="4" rightPadding="4">
                                    <pen lineWidth="1.0" lineColor="#FFFFFF"/>
                                    <topPen lineWidth="0.0" lineStyle="Solid" lineColor="#000000"/>
                                    <leftPen lineWidth="1.0" lineStyle="Solid" lineColor="#FFFFFF"/>
                                    <bottomPen lineWidth="0.0" lineStyle="Solid" lineColor="#000000"/>
                                    <rightPen lineWidth="1.0" lineStyle="Solid" lineColor="#FFFFFF"/>
                                </box>
                                <textElement verticalAlignment="Middle">
                                    <font size="6"/>
                                </textElement>
                                <textFieldExpression><![CDATA["Peer Comp (" + $P{period} +")"]]></textFieldExpression>
                            </textField>
                        </jr:columnHeader>
                        <jr:detailCell height="15">
                            <property name="com.jaspersoft.studio.layout" value="com.jaspersoft.studio.editor.layout.HorizontalRowLayout"/>
                            <property name="com.jaspersoft.studio.unit.height" value="px"/>
                            <box>
                                <topPen lineWidth="0.0" lineStyle="Solid" lineColor="#000000"/>
                                <leftPen lineWidth="0.0" lineStyle="Solid" lineColor="#000000"/>
                                <bottomPen lineWidth="0.0" lineStyle="Solid" lineColor="#000000"/>
                                <rightPen lineWidth="0.0" lineStyle="Solid" lineColor="#000000"/>
                            </box>
                            <textField isStretchWithOverflow="true">
                                <reportElement x="0" y="0" width="90" height="15" uuid="f88cf245-09eb-4a53-8c21-5ce0b2463d3a"/>
                                <box leftPadding="4" rightPadding="4">
                                    <topPen lineWidth="0.0" lineStyle="Solid" lineColor="#000000"/>
                                    <leftPen lineWidth="0.0" lineStyle="Solid" lineColor="#000000"/>
                                    <bottomPen lineWidth="0.0" lineStyle="Solid" lineColor="#000000"/>
                                    <rightPen lineWidth="0.0" lineStyle="Solid" lineColor="#000000"/>
                                </box>
                                <textElement verticalAlignment="Middle">
                                    <font size="5.5"/>
                                </textElement>
                                <textFieldExpression><![CDATA[$F{itemName}==null?"-":$F{itemName}+  " " + (($F{currency}==null || $F{currency}.equals("") )&&($F{unit}==null || $F{unit}.equals(""))?"":       (($F{currency}!=null && !$F{currency}.equals("") )&&($F{unit}!=null && !$F{unit}.equals(""))?"("+ $F{currency} +" "+ $F{unit} + ")":         ( ($F{currency}==null || $F{currency}.equals(""))?"("+$F{unit}+")" :"(" + $F{currency} +  ")"          ) )   )]]></textFieldExpression>
                            </textField>
                        </jr:detailCell>
                    </jr:column>
                    <jr:column width="71" uuid="32e67f8c-3cb2-4c24-a6fa-2a94e3aefa1e">
                        <property name="com.jaspersoft.studio.components.table.model.column.name" value="Column2"/>
                        <jr:columnHeader style="Table_CH" height="20" rowSpan="1">
                            <property name="com.jaspersoft.studio.unit.height" value="px"/>
                            <box>
                                <topPen lineWidth="0.0" lineStyle="Solid" lineColor="#000000"/>
                                <leftPen lineWidth="0.0" lineStyle="Solid" lineColor="#000000"/>
                                <bottomPen lineWidth="0.0" lineStyle="Solid" lineColor="#000000"/>
                                <rightPen lineWidth="0.0" lineStyle="Solid" lineColor="#000000"/>
                            </box>
                            <textField isStretchWithOverflow="true">
                                <reportElement x="0" y="0" width="71" height="20" uuid="55cb313f-138e-40a9-99e9-56d0b7715b7b"/>
                                <box leftPadding="4" rightPadding="4">
                                    <pen lineWidth="1.0" lineColor="#FFFFFF"/>
                                    <topPen lineWidth="0.0" lineStyle="Solid" lineColor="#000000"/>
                                    <leftPen lineWidth="1.0" lineStyle="Solid" lineColor="#FFFFFF"/>
                                    <bottomPen lineWidth="0.0" lineStyle="Solid" lineColor="#000000"/>
                                    <rightPen lineWidth="1.0" lineStyle="Solid" lineColor="#FFFFFF"/>
                                </box>
                                <textElement textAlignment="Right" verticalAlignment="Middle">
                                    <font size="6"/>
                                </textElement>
                                <textFieldExpression><![CDATA[$F{companyName1}]]></textFieldExpression>
                            </textField>
                        </jr:columnHeader>
                        <jr:detailCell height="15">
                            <property name="com.jaspersoft.studio.unit.height" value="px"/>
                            <box>
                                <topPen lineWidth="0.0" lineStyle="Solid" lineColor="#000000"/>
                                <leftPen lineWidth="0.0" lineStyle="Solid" lineColor="#000000"/>
                                <bottomPen lineWidth="0.0" lineStyle="Solid" lineColor="#000000"/>
                                <rightPen lineWidth="0.0" lineStyle="Solid" lineColor="#000000"/>
                            </box>
                            <textField isStretchWithOverflow="true">
                                <reportElement x="0" y="0" width="71" height="15" uuid="12a0f2e9-b0e6-4bbe-bc03-39c031b08e8f"/>
                                <box leftPadding="4" rightPadding="4"/>
                                <textElement textAlignment="Right" verticalAlignment="Middle">
                                    <font size="5.5"/>
                                </textElement>
                                <textFieldExpression><![CDATA[$F{companyData1}== null?"-":$P{Scriptlet_1_SCRIPTLET}.customization(new BigDecimal($F{companyData1}),$F{unit})]]></textFieldExpression>
                            </textField>
                        </jr:detailCell>
                    </jr:column>
                    <jr:column width="70" uuid="8aa254f5-3e7f-4f0c-a736-52ec37ee3f4c">
                        <property name="com.jaspersoft.studio.components.table.model.column.name" value="Column3"/>
                        <jr:columnHeader style="Table_CH" height="20" rowSpan="1">
                            <property name="com.jaspersoft.studio.unit.height" value="px"/>
                            <box>
                                <topPen lineWidth="0.0" lineStyle="Solid" lineColor="#000000"/>
                                <leftPen lineWidth="0.0" lineStyle="Solid" lineColor="#000000"/>
                                <bottomPen lineWidth="0.0" lineStyle="Solid" lineColor="#000000"/>
                                <rightPen lineWidth="0.0" lineStyle="Solid" lineColor="#000000"/>
                            </box>
                            <textField isStretchWithOverflow="true">
                                <reportElement x="0" y="0" width="70" height="20" uuid="c1f0cd97-0cc4-407d-953d-32a0dd9e66e1"/>
                                <box leftPadding="4" rightPadding="4">
                                    <pen lineWidth="1.0" lineColor="#FFFFFF"/>
                                    <topPen lineWidth="0.0" lineStyle="Solid" lineColor="#000000"/>
                                    <leftPen lineWidth="1.0" lineStyle="Solid" lineColor="#FFFFFF"/>
                                    <bottomPen lineWidth="0.0" lineStyle="Solid" lineColor="#000000"/>
                                    <rightPen lineWidth="1.0" lineStyle="Solid" lineColor="#FFFFFF"/>
                                </box>
                                <textElement textAlignment="Right" verticalAlignment="Middle">
                                    <font size="6"/>
                                </textElement>
                                <textFieldExpression><![CDATA[$F{companyName2}]]></textFieldExpression>
                            </textField>
                        </jr:columnHeader>
                        <jr:detailCell height="15">
                            <property name="com.jaspersoft.studio.unit.height" value="px"/>
                            <box>
                                <topPen lineWidth="0.0" lineStyle="Solid" lineColor="#000000"/>
                                <leftPen lineWidth="0.0" lineStyle="Solid" lineColor="#000000"/>
                                <bottomPen lineWidth="0.0" lineStyle="Solid" lineColor="#000000"/>
                                <rightPen lineWidth="0.0" lineStyle="Solid" lineColor="#000000"/>
                            </box>
                            <textField isStretchWithOverflow="true">
                                <reportElement x="0" y="0" width="70" height="15" uuid="a8370250-65d8-4868-bdcf-5bfd332f06de"/>
                                <box leftPadding="4" rightPadding="4"/>
                                <textElement textAlignment="Right" verticalAlignment="Middle">
                                    <font size="5.5"/>
                                </textElement>
                                <textFieldExpression><![CDATA[$F{companyData2}== null?"-":$P{Scriptlet_1_SCRIPTLET}.customization(new BigDecimal($F{companyData2}),$F{unit})]]></textFieldExpression>
                            </textField>
                        </jr:detailCell>
                    </jr:column>
                    <jr:column width="70" uuid="ae8c0468-dab7-418f-a4d5-0ee36e84b7ce">
                        <property name="com.jaspersoft.studio.components.table.model.column.name" value="Column4"/>
                        <jr:columnHeader style="Table_CH" height="20" rowSpan="1">
                            <property name="com.jaspersoft.studio.unit.height" value="px"/>
                            <box>
                                <topPen lineWidth="0.0" lineStyle="Solid" lineColor="#000000"/>
                                <leftPen lineWidth="0.0" lineStyle="Solid" lineColor="#000000"/>
                                <bottomPen lineWidth="0.0" lineStyle="Solid" lineColor="#000000"/>
                                <rightPen lineWidth="0.0" lineStyle="Solid" lineColor="#000000"/>
                            </box>
                            <textField isStretchWithOverflow="true">
                                <reportElement x="0" y="0" width="70" height="20" uuid="12ad46ac-c9be-432a-8fde-083b73d99179"/>
                                <box leftPadding="4" rightPadding="4">
                                    <pen lineWidth="1.0" lineColor="#FFFFFF"/>
                                    <topPen lineWidth="0.0" lineStyle="Solid" lineColor="#000000"/>
                                    <leftPen lineWidth="1.0" lineStyle="Solid" lineColor="#FFFFFF"/>
                                    <bottomPen lineWidth="0.0" lineStyle="Solid" lineColor="#000000"/>
                                    <rightPen lineWidth="1.0" lineStyle="Solid" lineColor="#FFFFFF"/>
                                </box>
                                <textElement textAlignment="Right" verticalAlignment="Middle">
                                    <font size="6"/>
                                </textElement>
                                <textFieldExpression><![CDATA[$F{companyName3}]]></textFieldExpression>
                            </textField>
                        </jr:columnHeader>
                        <jr:detailCell height="15">
                            <property name="com.jaspersoft.studio.unit.height" value="px"/>
                            <box>
                                <topPen lineWidth="0.0" lineStyle="Solid" lineColor="#000000"/>
                                <leftPen lineWidth="0.0" lineStyle="Solid" lineColor="#000000"/>
                                <bottomPen lineWidth="0.0" lineStyle="Solid" lineColor="#000000"/>
                                <rightPen lineWidth="0.0" lineStyle="Solid" lineColor="#000000"/>
                            </box>
                            <textField isStretchWithOverflow="true">
                                <reportElement x="0" y="0" width="70" height="15" uuid="27180bd2-0cb9-4241-b05b-6606ea2886f7"/>
                                <box leftPadding="4" rightPadding="4"/>
                                <textElement textAlignment="Right" verticalAlignment="Middle">
                                    <font size="5.5"/>
                                </textElement>
                                <textFieldExpression><![CDATA[$F{companyData3}== null?"-":$P{Scriptlet_1_SCRIPTLET}.customization(new BigDecimal($F{companyData3}),$F{unit})]]></textFieldExpression>
                            </textField>
                        </jr:detailCell>
                    </jr:column>
                    <jr:column width="70" uuid="d264535d-5713-41fd-a02a-a4d77b1bded1">
                        <property name="com.jaspersoft.studio.components.table.model.column.name" value="Column5"/>
                        <jr:columnHeader style="Table_CH" height="20" rowSpan="1">
                            <property name="com.jaspersoft.studio.unit.height" value="px"/>
                            <box>
                                <topPen lineWidth="0.0" lineStyle="Solid" lineColor="#000000"/>
                                <leftPen lineWidth="0.0" lineStyle="Solid" lineColor="#000000"/>
                                <bottomPen lineWidth="0.0" lineStyle="Solid" lineColor="#000000"/>
                                <rightPen lineWidth="0.0" lineStyle="Solid" lineColor="#000000"/>
                            </box>
                            <textField>
                                <reportElement x="0" y="0" width="70" height="20" uuid="af161ad8-1f01-4e34-a5e3-8bdf9da03005"/>
                                <box leftPadding="4" rightPadding="4">
                                    <pen lineWidth="1.0" lineColor="#FFFFFF"/>
                                    <topPen lineWidth="0.0" lineStyle="Solid" lineColor="#000000"/>
                                    <leftPen lineWidth="1.0" lineStyle="Solid" lineColor="#FFFFFF"/>
                                    <bottomPen lineWidth="0.0" lineStyle="Solid" lineColor="#000000"/>
                                    <rightPen lineWidth="1.0" lineStyle="Solid" lineColor="#FFFFFF"/>
                                </box>
                                <textElement textAlignment="Right" verticalAlignment="Middle">
                                    <font size="6"/>
                                </textElement>
                                <textFieldExpression><![CDATA[$F{companyName4}]]></textFieldExpression>
                            </textField>
                        </jr:columnHeader>
                        <jr:detailCell height="15">
                            <property name="com.jaspersoft.studio.unit.height" value="px"/>
                            <box>
                                <topPen lineWidth="0.0" lineStyle="Solid" lineColor="#000000"/>
                                <leftPen lineWidth="0.0" lineStyle="Solid" lineColor="#000000"/>
                                <bottomPen lineWidth="0.0" lineStyle="Solid" lineColor="#000000"/>
                                <rightPen lineWidth="0.0" lineStyle="Solid" lineColor="#000000"/>
                            </box>
                            <textField isStretchWithOverflow="true">
                                <reportElement x="0" y="0" width="70" height="15" uuid="7310c0c0-dab6-4e51-87b7-66d5a7987042"/>
                                <box leftPadding="4" rightPadding="4">
                                    <topPen lineWidth="0.0" lineStyle="Solid" lineColor="#000000"/>
                                    <leftPen lineWidth="0.0" lineStyle="Solid" lineColor="#000000"/>
                                    <bottomPen lineWidth="0.0" lineStyle="Solid" lineColor="#000000"/>
                                    <rightPen lineWidth="0.0" lineStyle="Solid" lineColor="#000000"/>
                                </box>
                                <textElement textAlignment="Right" verticalAlignment="Middle">
                                    <font size="5.5"/>
                                </textElement>
                                <textFieldExpression><![CDATA[$F{companyData4}== null?"-":$P{Scriptlet_1_SCRIPTLET}.customization(new BigDecimal($F{companyData4}),$F{unit})]]></textFieldExpression>
                            </textField>
                        </jr:detailCell>
                    </jr:column>
                </jr:table>
            </componentElement>
        </band>
    </summary>
</jasperReport>

对于文本字段,我使用下面提到的属性字体:无衬线字体大小:6

我已经尝试过以下属性,但结果是一样的。

<property name="net.sf.jasperreports.print.keep.full.text" value="new Boolean(true)"/>
<property name="net.sf.jasperreports.text.truncate.at.char" value="new Boolean(false)"/>

在此处输入图像描述

最后一栏全文为“*Australian Agriculture Co. Ltd.(AUD)”

即使单元格中有空间,它仍然会被截断。

我正在使用 TIBCO Jaspersoft® Studio 6.8.0 - JasperReports 6.8.0 的可视化设计器。为编写报告

标签: jasper-reports

解决方案


推荐阅读