java - 如何在Java应用程序中定义两个JRDataSource?

标签 java jasper-reports

我的报告中有两个条形图,必须由两个对象列表填充。我不想将查询放入我的报告中。我想从我的 java 应用程序传递这两个列表。我已经用一个对象列表和一个条形图完成了此操作,但我不知道如何用两个对象列表来完成此操作。

是否可以在Java应用程序中定义两个JRDataSource?如果是,我该如何填写报告?

    List<Employee> employee = new ArrayList<Employee>();    
    Map<String, Object> parameters = new HashMap<String, Object>();
    JRDataSource datasource = new JRBeanCollectionDataSource(employee, true);
    JasperPrint jp = JasperFillManager.fillReport(input,parameters,datasource);
    JRExporter exporter = new JRPdfExporter();
    exporter.setParameter(JRExporterParameter.OUTPUT_FILE_NAME, output);
    exporter.setParameter(JRExporterParameter.JASPER_PRINT, jp);
    exporter.exportReport();

最佳答案

简单地创建例如两个 JRBeanCollectionDatasources 并将它们作为参数传递给您的报告。然后,使用参数作为图表的数据源表达式。

关于java - 如何在Java应用程序中定义两个JRDataSource?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17008847/

相关文章:

java - 我的项目运行,但有几个错误,例如我需要删除的行

java - 在计算重写 hashcode() 和 equals() 时是否应该考虑所有字段?

mysql - 如何在 MySQL/iReport 中使用多列连接获得所需的输出?

java - 在参数化的junit测试用例中运行特定的测试用例

java - geronimo-web.xml 在 WebSphere 中做什么?

jasper-reports - 避免在JRXML中重复列标题

java - 如何在条形图中显示每个条形的条形值?

gradle - 使用gradle将jrxml转换为碧 Jade

jasper-reports - 如何处理 "Byte data not found"

java - JAVA中静态成员的内存范围