如何使用 Dynamic Jasper 动态设置 JRXML 属性
How to set JRXML properties dynamically using Dynamic Jasper
我有一个现有的动态 jasper 报告需要修改,以便可以动态设置页面方向和大小。我已经能够使用 dynamicReportBuilder.setPageSizeAndOrientation(...)
实现此目的。问题是,当我改变页面大小时,标题不再位于页面中间...
我将标题定义为:
<title>
<band height="20" splitType="Stretch">
<textField>
<reportElement x="0" y="0" width="760" height="20"/>
<textElement textAlignment="Center" verticalAlignment="Middle">
<font fontName="ConjectSans" size="14" isBold="false"/>
</textElement>
<textFieldExpression><![CDATA[$P{title}]]>
</textFieldExpression>
</textField>
</band>
</title>
有什么办法可以改变上面的内容,使标题文本浮动到页面中间,而不管我将页面设置成多大?
根据我用谷歌搜索的内容,我无法在 jrxml
中动态设置 width 属性,相反我需要做一些类似的事情:
JRElement element = jasperReport.getTitle().getElementByKey("graphWidthKey");
element.setWidth(100);
但是如何从动态 Jasper 的 DynamicReportBuilder
访问 JasperReport
object?
你不能那样做。 JasperReport 对象是一个只读对象。它是编译JasperDesign对象的结果。
能够以编程方式设置页面大小使其动态化!如果您需要再次更改它,请重新生成报告。
我有一个现有的动态 jasper 报告需要修改,以便可以动态设置页面方向和大小。我已经能够使用 dynamicReportBuilder.setPageSizeAndOrientation(...)
实现此目的。问题是,当我改变页面大小时,标题不再位于页面中间...
我将标题定义为:
<title>
<band height="20" splitType="Stretch">
<textField>
<reportElement x="0" y="0" width="760" height="20"/>
<textElement textAlignment="Center" verticalAlignment="Middle">
<font fontName="ConjectSans" size="14" isBold="false"/>
</textElement>
<textFieldExpression><![CDATA[$P{title}]]>
</textFieldExpression>
</textField>
</band>
</title>
有什么办法可以改变上面的内容,使标题文本浮动到页面中间,而不管我将页面设置成多大?
根据我用谷歌搜索的内容,我无法在 jrxml
中动态设置 width 属性,相反我需要做一些类似的事情:
JRElement element = jasperReport.getTitle().getElementByKey("graphWidthKey");
element.setWidth(100);
但是如何从动态 Jasper 的 DynamicReportBuilder
访问 JasperReport
object?
你不能那样做。 JasperReport 对象是一个只读对象。它是编译JasperDesign对象的结果。
能够以编程方式设置页面大小使其动态化!如果您需要再次更改它,请重新生成报告。