在投射对象时发出问题

时间:2014-04-02 13:53:39

标签: jasper-reports libraries

我在类路径中有一个带有jar库的报告,以及一个在该库中定义了对象的数据源。

在TextField中我有这个:

((my.custom.package.MyClass)$F{my_field}.getOne()).getOther()

它编译没有问题。

但如果我试试这个:

((MyClass)$F{my_field}.getOne()).getOther()

iReport 会抛出错误:

MyClass cannot be resolved to a type.

是否有任何形式可以避免使用MyClass的整个限定名称?

3 个答案:

答案 0 :(得分:0)

我相信如果您切换到使用Groovy,那么您可以编写$F{my_field}.one.other

有关此内容的一些信息: http://community.jaspersoft.com/wiki/creating-expressions-using-groovy

我自己并没有这样做。

答案 1 :(得分:0)

您可以尝试将地图设置为my_field并在那里添加所有属性。

((java.util.Map<String,Object>)$F{my_field}).get("desired_key")

答案 2 :(得分:0)

最后我找到了答案:

单击报告根目录,然后在属性面板中转到&#34; Imports&#34;并添加&#34; my.custom.package.MyClass&#34;。

现在我可以在不编写包的情况下使用MyClass。

谢谢大家。