私はJavaで取り組んでいるジャスパーレポートを持っています。
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>
私の問題は、同じレポート内の 2 つの異なるテーブルに対して動的にこれを行う方法を考え出すことです。動的に追加されるデータの反復を 1 回しか使用できないようです。同じレポート内に生成された 2 つの完全に異なるテーブルがある結果を達成しようとしています。この質問が明確でない場合は、お知らせください。修正を試みます。ありがとう。