Jasper Reports 4.5.0 交叉表中文本的旋转
Rotation of Text in Crosstab in Jasper Reports 4.5.0
由于过于复杂的原因,我必须将新报告部署到现有的 JasperReports Server 4.5.0 安装上。它无法升级。我认为使用 iReport 4.5.0 来确保与服务器的兼容性是最简单的。我错了吗?是使用更新版本更好,还是切换到 Jaspersoft Studio 或其他软件更好?
该报表涉及一个包含许多列的交叉表。为了让它们全部适合一个标准横向页面,我需要将列 headers 的旋转更改为垂直。细胞内部的数据本身非常短。我在 iReport 中找不到更改 header 中文本旋转的选项,因此我将 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>
(如果你看不到,我在 textElement
后面加了一个 rotation="Left"
。)
它似乎对预览没有任何影响,无论我是预览到 HTML 还是 PDF。我看到其他人在比我的版本更早的版本中提到文本旋转,所以我不认为它在 4.5.0 中不受支持。再一次,我错了吗?
是否可以使用 JaspersoftStudio (JSS) 而不是 iReport 4.5.0 ?
是的,用于在本地设计和测试模板。您可以使用兼容模式以JasperReports 4.5.0版本格式保存模板。
但我不确定与旧版本的 JasperReports Server 的集成是否可以在新版本的 JSS 上正常工作。
交叉表是否支持垂直旋转文本(例如 header)?
是的,绝对是。 textField元素支持旋转,不是crosstab的特性。
iReport 可以改变文本的旋转。您可以在 文本属性 [=51 处找到 属性 旋转 =]块。
您遇到问题的原因是 textField 的大小不足以显示文本。例如,如果我们有 textField,默认水平文本的高度太小,无法显示文本,则渲染结果将为空。
您应该增加 textField 的高度来解决问题。
备注
中找到
由于过于复杂的原因,我必须将新报告部署到现有的 JasperReports Server 4.5.0 安装上。它无法升级。我认为使用 iReport 4.5.0 来确保与服务器的兼容性是最简单的。我错了吗?是使用更新版本更好,还是切换到 Jaspersoft Studio 或其他软件更好?
该报表涉及一个包含许多列的交叉表。为了让它们全部适合一个标准横向页面,我需要将列 headers 的旋转更改为垂直。细胞内部的数据本身非常短。我在 iReport 中找不到更改 header 中文本旋转的选项,因此我将 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>
(如果你看不到,我在 textElement
后面加了一个 rotation="Left"
。)
它似乎对预览没有任何影响,无论我是预览到 HTML 还是 PDF。我看到其他人在比我的版本更早的版本中提到文本旋转,所以我不认为它在 4.5.0 中不受支持。再一次,我错了吗?
是否可以使用 JaspersoftStudio (JSS) 而不是 iReport 4.5.0 ?
是的,用于在本地设计和测试模板。您可以使用兼容模式以JasperReports 4.5.0版本格式保存模板。
但我不确定与旧版本的 JasperReports Server 的集成是否可以在新版本的 JSS 上正常工作。
交叉表是否支持垂直旋转文本(例如 header)?
是的,绝对是。 textField元素支持旋转,不是crosstab的特性。
iReport 可以改变文本的旋转。您可以在 文本属性 [=51 处找到 属性 旋转 =]块。
您遇到问题的原因是 textField 的大小不足以显示文本。例如,如果我们有 textField,默认水平文本的高度太小,无法显示文本,则渲染结果将为空。
您应该增加 textField 的高度来解决问题。