如何使用Dynamic Jasper

时间:2017-11-01 15:03:43

标签: 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>

有什么方法可以更改上面的内容,这样无论我设置页面的大小,标题文本都会浮动到页面的中间位置?

根据我用Google搜索的内容,我无法在jrxml中动态设置宽度属性,而是需要执行以下操作:

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

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

1 个答案:

答案 0 :(得分:1)

你做不到。 JasperReport对象是一个只读对象。这是编译JasperDesign对象的结果。

能够以编程方式设置页面大小使其动态化!如果您需要再次更改它,请再次生成报告。