gpt4 book ai didi

java - 从 Jasperstudio 触发 Java

转载 作者:太空宇宙 更新时间:2023-11-04 12:38:46 26 4
gpt4 key购买 nike

我有以下Java代码,它将通过修改JRXML来修改矩形的宽度。但是报表运行时如何调用Java代码呢? Scriptlet 没有多大帮助。有没有办法调用studio中的Java/jar文件来动态改变文本对象的宽度?

public class widthAdjust {

public static void main(String[] args) {
JasperDesign design;
try {
design = JRXmlLoader.load("C:\\GanttChart_Java.jrxml");
System.out.println(design);
JRField[] fields = design.getFields();
JRVariable[] variables = design.getVariables();

int newWidth = 100;
int newX = 100;
JRDesignBand baseBand = (JRDesignBand) design.getSummary();
JRElement[] elements = baseBand.getElements();
System.out.println(elements);
for (int counter = 0; counter < elements.length; counter++) {
JRDesignElement element = (JRDesignElement) elements[counter];
element.setWidth(newWidth);
element.setX(newX);
}
JasperCompileManager.compileReportToFile(design,"C:\\GanttChart_Java.jasper");
JasperCompileManager.writeReportToXmlFile("C:\\GanttChart_Java.jasper","C:\\GanttChart_Java.jrxml");
JasperCompileManager.compileReport("C:\\GanttChart_Java.jrxml");
} catch (JRException e) {
e.printStackTrace();
}}}

最佳答案

要更改元素的属性,最好的方法是运行 Java 代码并使用 Jasper API。

相反,从 .jasper-report 中调用 Java 代码(据我所知)是不可能的,因为 jasper 文件已经是具有特定宽度的编译报告。

关于java - 从 Jasperstudio 触发 Java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37044047/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com