就像标题所说,我对使用 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>
(倒数第二行),事实上,我正在使用这个“解决方案”来尝试解决我的问题,但我知道这不是一个合适的解决方案。
我非常感谢帮助...
答案 0 :(得分:0)
好的,有需要考虑的事情。
JVM
一起提供才能应用于报告,如果JVM
没有它不会用它所拥有的东西替换它(在大多数情况下Arial
)。您需要为所需的字体创建Font Extension
。$F{inscriptionDate}
以字符串格式化它。但是,您也可以将日期格式设置为new SimpleDateFormat("dd/MM/yyyy").format($F{inscriptionDate})
。