0

由于过于复杂的原因,我必须将新报告部署到现有的 JasperReports Server 4.5.0 安装中。它无法升级。我认为使用 iReport 4.5.0 来确保与服务器的兼容性是最简单的。我弄错了吗?使用较新的版本,或者切换到 Jaspersoft Studio 或其他方式会更好吗?

该报告涉及具有许多列的交叉表。为了让它们都适合一个标准的横向页面,我需要将列标题的旋转更改为垂直。单元格本身内部的数据非常短。我在 iReport 中找不到更改标题中文本旋转的选项,因此我将 XML 更改为:

                <crosstabColumnHeader>
                    <cellContents backcolor="#F0F8FF" mode="Opaque">
                        <box>
                            <pen lineWidth="0.5" lineStyle="Solid" lineColor="#000000"/>
                        </box>
                        <textField>
                            <reportElement style="Crosstab Data Text" x="0" y="0" width="50" height="30"/>
                            <textElement/>
                            <textFieldExpression><![CDATA[$V{ACTION_DESC}]]></textFieldExpression>
                        </textField>
                    </cellContents>
                </crosstabColumnHeader>

到:

                <crosstabColumnHeader>
                    <cellContents backcolor="#F0F8FF" mode="Opaque">
                        <box>
                            <pen lineWidth="0.5" lineStyle="Solid" lineColor="#000000"/>
                        </box>
                        <textField>
                            <reportElement style="Crosstab Data Text" x="0" y="0" width="50" height="30"/>
                            <textElement rotation="Left"/>
                            <textFieldExpression><![CDATA[$V{ACTION_DESC}]]></textFieldExpression>
                        </textField>
                    </cellContents>
                </crosstabColumnHeader>

(如果你没有看到它,我在 . 中添加了一个rotation="Left"textElement

无论我是预览到 HTML 还是 PDF,它似乎对预览没有任何影响。我看到其他人在比我更早的版本中提到文本旋转,所以我认为 4.5.0 不支持它。再说一遍,我错了吗?

4

1 回答 1

1

是否可以使用JaspersoftStudio ( JSS ) 而不是iReport 4.5.0

是的,用于在本地设计和测试模板。您可以使用兼容模式以JasperReports 4.5.0版本的格式保存模板。

但是我不确定与旧版本的JasperReports Server的集成是否可以在新版本的JSS中正常工作。

交叉表是否支持垂直旋转文本(例如在标题处)?

当然是。旋转由textField元素支持,它不是交叉表的特性。

iReport具有更改文本旋转的能力。您可以在文本属性块中找到属性旋转。

改变文本方向的属性

您遇到问题的原因是textField的大小不足以显示文本。例如,如果我们的textField具有默认的水平文本,其高度太小而无法显示文本,则呈现的结果将为空。

您应该只增加textField的高度来解决问题。


笔记

有关如何在JSS中启用兼容模式的更多详细信息,您可以在此处此处找到

于 2018-11-17T13:03:08.883 回答