如何在报表中插入自定义Groovy方法?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在报表中插入自定义Groovy方法?相关的知识,希望对你有一定的参考价值。
我想用jaspersoft studio创建一个非常简单的jasper报告。我想使用groovy函数只返回一个字符串,该字符串将包含在我的报告中。
问题是我真的不知道如何将groovy文件与jrxml文件链接。
有任何想法吗 ?
这是代码,您会注意到我尝试调用GetName()
函数:
Blank_Arch.Jamesx圆角:
<jasperReport xmlns="http://jasperreports.sourceforge.net/jasperreports" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://jasperreports.sourceforge.net/jasperreports http://jasperreports.sourceforge.net/xsd/jasperreport.xsd" name="Blank_A4" language="groovy" pageWidth="595" pageHeight="842" columnWidth="555" leftMargin="20" rightMargin="20" topMargin="20" bottomMargin="20" uuid="033445e4-caf8-491f-baf8-453af181b515">
<property name="com.jaspersoft.studio.data.defaultdataadapter" value="One Empty Record"/>
<queryString>
<![CDATA[]]>
</queryString>
<background>
<band splitType="Stretch"/>
</background>
<title>
<band height="79" splitType="Stretch">
<textField>
<reportElement x="220" y="20" width="100" height="30" uuid="7af5e6b8-02c1-4a18-b40c-f2dd1bc90268"/>
<textFieldExpression><![CDATA[GetName()]]></textFieldExpression>
</textField>
</band>
</title> ...
Blank_A4.groovy文件:
class Example {
static def GetName() {
return "Hello";
}
static void main(String[] args) {
GetName();
}
}
这两个文件位于我项目的同一文件夹中。
答案
不同的选择:
- 将你的groovy类编译成jar,并将jar作为库添加到你的jasper项目中。调用函数将是这样的:
Example.GetName()
- 在Jaspersoft Studio中,可以创建
Functions Library
https://community.jaspersoft.com/wiki/jaspersoft-studio-expression-editor-how-extend-it-and-contribute-your-own-functions-part-2 - 如果你从groovy环境(而不是从工作室)运行你的报告,可以添加带有groovy文件(类)的文件夹作为groovy引擎类加载器的类路径。因此可以使用动态groovy文件编译。
以上是关于如何在报表中插入自定义Groovy方法?的主要内容,如果未能解决你的问题,请参考以下文章
Groovy自定义 Xml 生成器 BuilderSupport ( nodeCompleted 方法获取节点闭合信息 )
Visual Studio 自定义代码片段在方法定义的参数列表中不起作用