我正在为医学实验室创建一个应用程序。因此,当用户在文本框中输入结果值并单击“提交”按钮时。然后在值转到数据库之前使用结果值创建报告。我正在使用jasper报告。我怎么能这样做?
答案 0 :(得分:2)
您希望为报表使用bean数据源,而不是将数据源用于数据库。因此,不是直接从数据库提供数据,而是向它提供一组自定义bean(基本POJO)。
可以在这里找到一个很好的例子:http://javabeansinjasper.blogspot.co.uk/
您需要遵循的步骤是:
1)为报告创建单个POJO
2)创建引用POJO属性的报告模板(使用iReport)。因此,对于类Person,您可能有一个名为firstName的属性。在报告模板中,这将使用$ F {firstName}
引用3)编译您的报告并通过数据源将您的集合加载到其中:
Person p = ...;
List<Person> persons = ...;
persons.add(p);
Map parameters = new HashMap<String, Object>();
JasperDesign jasperDesign = JRXmlLoader.load("/path/to/report/template.jrxml");
JasperReport jasperReport = JasperCompileManager.compileReport(jasperDesign);
JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport, parameters, new JRBeanCollectionDataSource(persons));
JasperExportManager.exportReportToPdfFile(jasperPrint,"PersonsReport.pdf");