报告可视化的问题

时间:2014-08-26 18:28:24

标签: jasper-reports

就像标题所说,我对使用 JasperReports 的报告进行可视化时遇到了问题。首先,我使用Eclipse Indigo和插件Jaspersoft Studio来创建报告和JDK 1.6 U24。

以下代码将帮助我解释我的问题

<textField pattern="dd/MM/yyyy" isBlankWhenNull="true">
    <reportElement positionType="Float" mode="Transparent" x="131" y="79" width="423" height="12" isRemoveLineWhenBlank="true" backcolor="#E1E9F0" uuid="9075f7aa-bd0f-4e78-8eca-102cc38f6f37"/>
    <textElement verticalAlignment="Middle">
        <font fontName="Serif" size="9" isBold="true"/>
    </textElement>
    <textFieldExpression><![CDATA[$F{inscriptionDate}]]></textFieldExpression>
</textField>

问题是当显示报告时,标记texField和textElement的属性被忽略,也就是说,当变量“inscriptionDate”(其为Date类型)时,将忽略textField标记的属性“pattern”。 )在报告中显示。另一个例子是textElement标签的font子标签的“size”和“fontName”属性,与textField一样,这些属性将被忽略,文本将以默认属性显示。

在“size”属性的特定情况下,我试图更改值,但我总是得到相同的结果。有趣的是,“isBold”或“isItalic”属性不会被忽略。

staticText标记也出现同样的问题:

<staticText>
     <reportElement style="titulo2" positionType="Float" mode="Transparent" x="1" y="95" width="553" height="12" backcolor="#E1E9F0" uuid="09fb4cfe-831d-42f3-a32c-66ce4a2bc0f0">
         <printWhenExpression><![CDATA[true]]></printWhenExpression>
    </reportElement>
    <textElement verticalAlignment="Middle" markup="styled">
        <font fontName="Serif" size="9" isBold="true" isItalic="true"/>
    </textElement>
    <text><![CDATA[<style size="9">Some text</style>]]></text>
</staticText>

第一个代码和第二个代码之间的区别在于使用标签<style>(倒数第二行),事实上,我正在使用这个“解决方案”来尝试解决我的问题,但我知道这不是一个合适的解决方案。

我非常感谢帮助...

1 个答案:

答案 0 :(得分:0)

好的,有需要考虑的事情。

  • fontName :何时为文字指定特定字体,该字体必须与JVM一起提供才能应用于报告,如果JVM没有它不会用它所拥有的东西替换它(在大多数情况下Arial)。您需要为所需的字体创建Font Extension
  • 格式化日期:此处的问题可能是报告需要$F{inscriptionDate}以字符串格式化它。但是,您也可以将日期格式设置为new SimpleDateFormat("dd/MM/yyyy").format($F{inscriptionDate})
  • 字体大小:为文本字段指定的字体大小必须有效。这里没有问题的余地。尝试大幅度增加尺寸以确定它是否有效。