将数据从主数据集传递到表数据集

时间:2014-10-09 08:23:02

标签: jasper-reports javabeans jaspersoft-studio

我使用一个表在 Jaspersoft Studio 5.6.1 中创建简单报告。

通过JRBeanCollectionDataSource从 Java 向此报告发送数据。

在报告中,我已经可以通过以下字段获取此数据:report-> DAtaset和查询...... - > JavaBean选项卡 - > 在类名中写 Java 类,它出现在JRBeanCollectionDataSource中的列表中 - >添加所选字段

所以现在我可以显示传入的数据。

但如果我想在表中执行 - 我需要创建数据集(为什么?)并选择“使用相同的连接来填充主报告”#39;将相同的字段添加到新数据集并不会有帮助,也无法选择“连接到域”'对于数据集。没有显示错误。

enter image description here

2 个答案:

答案 0 :(得分:1)

  

我需要创建数据集(为什么?)

Jasper Reports表中与主报表松散耦合,即表需要自己的dataset才能处理。

现在说,您JRBeanCollectionDataSource准备好了报告,并希望用它来填充table。我说的表需要自己的数据集,也需要自己的datasource

现在,您可以指定datasource或使用相同的连接将表格填充为主报告。

有关jasper报告表的更多信息,请访问this链接,在java部分访问here

答案 1 :(得分:0)

我有类似的问题。我发现你只需要在你的报告表中设置REPORT_CONNECTION参数,比如说

jaspercomunity
<{3>}中的

然后将值保留为空白。稍后在java代码中使用maper对象来设置与数据库的SQL连接,如下所示:

Connection conn = DriverManager.getConnection("jdbc:mysql://localhost/test?user=root&password=admin");
HashMap<String, Object> hm = new HashMap<String, Object>();
hm.put("REPORT_CONNECTION", conn);
jasperPrint = JasperFillManager.fillReport(reportPath, hm, beanCollectionDataSource);