如何将自定义Groovy方法嵌入JasperReports报表?
在Jaspersoft Studio中关联Groovy类与jrxml并调用其方法
我来帮你搞定这个Groovy和报表关联的问题~你现在遇到的问题主要是两个点:一是Groovy类没被加入报表能访问的classpath里,二是方法调用的写法没对应上类结构。按下面的步骤操作就能解决:
1. 确保Groovy类被编译并加入项目classpath
- 首先,把你的
Blank_A4.groovy文件移到项目的src目录下(如果没有src目录,右键项目 -> New -> Source Folder新建一个),Jaspersoft Studio会自动编译这个目录下的Groovy文件到项目的classpath中。 - 如果不想移动文件,右键Groovy文件所在的文件夹 -> Build Path -> Add to Build Path,这样Studio会把这个目录当成源码目录来编译。
2. 修改jrxml中的方法调用写法
你的GetName()是Example类里的静态方法,不能直接写GetName()来调用,必须指定类名(如果有包的话还要加上包名)。修改textFieldExpression部分:
<textFieldExpression><![CDATA[Example.GetName()]]></textFieldExpression>
如果你的Groovy类放在某个包下(比如com.my.report),那就要写成:
<textFieldExpression><![CDATA[com.my.report.Example.GetName()]]></textFieldExpression>
3. 验证效果
- 保存Groovy文件和jrxml文件,然后点击报表预览按钮,就能看到返回的"Hello"字符串了。
- 如果还是报错,右键项目 -> Clean and Build重新编译,检查项目的bin目录里有没有生成
Example.class文件,确保编译成功。
另外给你个小建议:Groovy类里的main方法可以删掉,报表调用静态方法不需要这个入口~
内容的提问来源于stack exchange,提问作者Couim
相关产品推荐
相关产品推荐

