java - 如何使用 Dynamic Jasper 动态设置 JRXML 属性

标签 java jasper-reports 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>

有什么方法可以更改上述内容,以便无论我设置页面大小如何,标题文本都会 float 到页面中间?

根据我在 google 上搜索到的信息,我无法在 jrxml 中动态设置宽度属性,而是需要执行以下操作:

JRElement element = jasperReport.getTitle().getElementByKey("graphWidthKey");
element.setWidth(100);

但是如何从动态 Jasper 的 DynamicReportBuilder 访问 JasperReport 对象?

最佳答案

你不能那样做。 JasperReport 对象是只读对象。它是编译 JasperDesign 对象的结果。

能够以编程方式设置页面大小使其变得动态!如果需要再次更改,则重新生成报告。

关于java - 如何使用 Dynamic Jasper 动态设置 JRXML 属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47057831/

相关文章:

java - 通过 DynamicJasper 使用没有实体的 jdbc 连接生成报告

java - 无法访问类 com.sun.org.apache.xerces.internal.impl.dv.util.Base64

maven - 解决 jasper 报告在 Maven 中的依赖关系

java - 如何在 Maven 上为 Jasper Reports 添加自定义字体

java - 如何使用java代码在主报表中添加子报表

java - 如何在 DynamicJasper 中抑制列标题的显示?

java - jsp:this指的是jsp页面的jave代码块<%%>中的哪个对象?

Java 坐标

java - 为什么在 HashTable ADT 的实现中有一个嵌套类(来自教科书的代码)?

list - 如何在 DynamicJasper 中设置 list<String> 的值