我想用jaspersoft studio创建一个非常简单的jasper报告。我想使用groovy函数只返回一个字符串,该字符串将包含在我的报告中。
问题是我真的不知道如何将groovy文件与jrxml文件链接起来。
有什么想法吗?
以下是代码,您会注意到我尝试调用GetName()
函数:
Blank_A4.jrxml文件:
<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();
}
}
这两个文件位于我项目的同一文件夹中。
答案 0 :(得分:0)
不同的选择:
将你的groovy类编译成jar,并将jar作为库添加到你的jasper项目中。调用函数将是这样的:Example.GetName()
可以创建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文件编译。