2011-09-30 61 views
0

的JavaBean:的JasperReport - JavaBean的数据源来自官方文档官方文档

http://jasperforge.org/uploads/publish/jasperreportswebsite/trunk/sample.reference/datasource/index.html#javabeandatasources

“例如,要检索名为地址的报表字段的值,程序将尝试通过反射的方法调用在当前JavaBean对象上调用getAddress()。“

根据我的经验,我几乎可以确定它不在当前对象上,而是在作为集合传递的所有JavaBean对象(给定类型的)上或一个列表。

当我尝试打印bean的特定实例的属性时,它将打印该bean的所有实例的所有值。任何人都知道如何通过这个?

回答

1

如何打印属性?如果是通过将textField置于细节带中,那么该行为是正确的。这是因为数据集中的每个记录都会重复一次细节带。如果您正在使用bean数据源,这意味着访问来自详细信息带的字段address将针对集合中的每个bean调用getAddress()

如果您不想重复某个元素,请将其移动到其他乐队。或者,如果您只想打印特定bean的值,请在您的元素中添加printWhenExpression

+0

首先,感谢您的回复。我实际上想要传递特定bean的值,好奇的是我正在考虑printWhenExpression,但它并没有让我觉得这是一个“清晰”的解决方案。我是否必须考虑另一个将子bean与父bean关联的bean属性?或者有更简洁的方法来使用printWhenExpression?我的问题更完整的解释在这里:http://jasperforge.org/plugins/espforum/view.php?group_id=102&forumid=103&topicid=92360#92360。再次感谢。 – nunopato

相关问题