Jasper将格式化文本作为字段jasper更改格式

时间:2016-01-21 13:19:36

标签: java jasper-reports

我有一个像这样的简单报告

enter image description here

我传递格式为

的信息

enter image description here

但是,当我看到报告时,我看到像这样完全洗牌或未格式化的东西

enter image description here

我希望文本格式化,就像我从Java传递任何帮助?

我做错了什么?

更新 periodoDisfrutado是java.lang.String类型的字段,我从Java传递了java.lang.String enter image description here

My Java Class将数据发送到报告的方法

enter image description here

我的XML文件是

<group name="empleado">
    <groupExpression><![CDATA[$F{empleado}]]></groupExpression>
    <groupHeader>
        <band height="117">
            <textField>
                <reportElement x="7" y="8" width="547" height="20" forecolor="#FF0000"/>
                <textElement>
                    <font isBold="true"/>
                </textElement>
                <textFieldExpression class="java.lang.String"><![CDATA["Empleado: " + $F{empleado}]]></textFieldExpression>
            </textField>
            <textField>
                <reportElement x="7" y="33" width="148" height="20"/>
                <textElement/>
                <textFieldExpression class="java.lang.String"><![CDATA["Dias de Vacaciones/Año: " + $F{diasTotal}]]></textFieldExpression>
            </textField>
            <textField>
                <reportElement x="161" y="33" width="119" height="20"/>
                <textElement/>
                <textFieldExpression class="java.lang.String"><![CDATA["Dias disfrutados: " + $F{gastados}]]></textFieldExpression>
            </textField>
            <textField>
                <reportElement x="281" y="33" width="105" height="20"/>
                <textElement/>
                <textFieldExpression class="java.lang.String"><![CDATA["Dias restantes: " + $F{restantes}]]></textFieldExpression>
            </textField>
            <textField isStretchWithOverflow="true" isBlankWhenNull="false">
                <reportElement x="176" y="59" width="378" height="56"/>
                <textElement textAlignment="Left"/>
                <textFieldExpression class="java.lang.String"><![CDATA[$F{periodoDisfrutado}]]></textFieldExpression>
            </textField>
            <staticText>
                <reportElement x="7" y="59" width="169" height="20"/>
                <textElement/>
                <text><![CDATA[Periodos de vacaciones disfrutados:]]></text>
            </staticText>
        </band>
    </groupHeader>
</group>

1 个答案:

答案 0 :(得分:1)

我怀疑你传递的是带有分页符,空格和标签的字符串。 Jasper报告将尝试格式化为表格,它只会显示您的字符串,并根据字体类型等,您将得到不同的结果。

如果您想创建表格式而不是字符串,则需要传递JRDataSource,并使用例如subreport来显示数据。

注意:这也将大大改善您对Excel的导出。

设置此数据源的最佳方法取决于您使用的当前数据源类型,$F{periodoDisfrutado}来自何处?