在jrxml中访问/导入用户定义的类

时间:2009-12-15 22:35:48

标签: import jasper-reports

是否有人尝试在jasper报告(.jrxml文件)中导入用户定义的类? 我想在我的jasper报告中使用一些(用户定义的)Util类来烹饪一些bean属性。我正在使用Javabean数据源

如果您需要进一步澄清,请与我们联系。

导入类的语法是

<import value="java.util.HashMap"/>

我想用

<import value="mypackage.MyUtil" />
 ....
 ....
<field name="myVar" class="java.lang.String">
    <fieldDescription><![CDATA[MyUtil.cook(myData)]]>
    </fieldDescription>
</field>

MyUtil.java的简单定义可能是

package mypackage;
public class MyUtil
{
    public static String cook(String data)
    {
        return data + "_cooked";
    }
}

2 个答案:

答案 0 :(得分:6)

我想在问这个问题之前我应该​​充分尝试过。

除此之外没有什么需要 jrxml中有两个部分: 1.从javabean源定义字段 2.使用步骤1中定义的字段填充详细信息带

中的值

我试图在javabean成员用于创建字段之前烹饪它们的价值 因此,jasper试图将该“表达式”解析为javabean成员。

以下是错误的

<field name="myVar" class="java.lang.String">
     <fieldDescription><![CDATA[MyUtil.cook(myData)]]>
     </fieldDescription>
</field>

当我在字段值上使用Util类时,它可以工作。

<textField>
    <reportElement x="200" y="0" width="100" height="13"/>
    <textElement/>
    <textFieldExpression class="java.lang.String">
         <![CDATA[MyUtil.cook($F{myVar})]]>
    </textFieldExpression>
</textField>

由于 Nayn

答案 1 :(得分:3)

您必须在iReport中设置classpath。这取决于其版本,但通常在Settings/Classpath

之下