【问题标题】:Jasper pass formatted text as field Jasper change formatJasper 将格式化文本作为字段传递 Jasper 更改格式
【发布时间】:2021-05-23 18:13:35
【问题描述】:

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

我传递的信息格式如下:

{ image deleted }

但是当我看到报告时,我看到一些完全随机或未格式化的内容,如下所示:

我希望文本的格式与我从 Java 传递的一样。我做错了什么?

更新

periodoDisfrutado 是 java.lang.String 类型的一个字段,我从我的 Java 传递一个 java.lang.String:

我的 Java 类将数据发送到报告的方法:

我的 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>

【问题讨论】:

  • 你使用什么数据源?
  • 最好贴出你的代码(示例 jrxml + Java 代码)
  • 数据源只是一个带有一些字段的普通 Java 类。非常感谢查看我编辑的问题
  • 传递jrxml文件的相关部分
  • 看来您所有的“未格式化”文本都在一个 $field 中,所以 jasper 将其格式化为文本,也许您需要将数据重组为数据源并使用子报表...

标签: java jasper-reports


【解决方案1】:

正如我怀疑您传递的字符串包含分页符、空格和制表符一样。 Jasper 报告将尝试格式化为表格,它只会显示您的字符串,并且根据字体类型等,您会得到不同的结果。

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

注意:这也将大大改善您向 excel 的导出。

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

【讨论】:

  • 我开发了一个子报告,效果很好,非常感谢来自委内瑞拉的佩特和问候......
  • 对不起,应该是等。(等等,等等)等等。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多