我有一份正在使用 Java 编写的 Jasper 报告。
在 Java 中,我可以使用以下代码使用数据动态填充 bean:
List<ThemeBean> themes = new ArrayList<ThemeBean>();
CSVReader csvReader = new CSVReader(new FileReader(csvFilename));
List<String[]> data = csvReader.readAll();
for(String[] d : data) {
ThemeBean tb = new ThemeBean();
tb.setThemes(d[0]);
tb.setComments(d[1]);
tb.setSentiment(d[2]);
themes.add(tb);
}
JasperDesign jasperDesign = JRXmlLoader.load(fileName);
JRBeanCollectionDataSource ds = new JRBeanCollectionDataSource(themes);
JasperReport jasperReport = JasperCompileManager.compileReport(jasperDesign);
JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport, null, ds);
当 .jrxml 文件在标签中指定了正确的字段和 textFieldExpression 时,这很有效......
以下内容使用已构建的列表动态填充:
<textFieldExpression><![CDATA[$F{themes}]]></textFieldExpression>
我的问题是弄清楚如何为同一报告中的两个不同表动态地执行此操作。看来我只能用于动态添加数据的一次迭代。我正在尝试实现在同一个报告中生成两个完全不同的表的结果。如果这个问题不清楚,请告诉我,我会尝试解决它。谢谢。