【发布时间】:2017-06-20 17:32:44
【问题描述】:
目前我正在通过以下方式使用 Jasper Reports 生成 pdf 文件。
我创建了一个 jrxml 文件为“singlePagePdf.jrxml”
我已经声明了一个bean如下
<bean id="singlePagePdf"
class="org.springframework.web.servlet.view.jasperreports.JasperReportsPdfView"
p:url="classpath:reports/singlePagePdf.jrxml"
p:reportDataKey="datasource">
<property name="headers">
<props>
<prop key="Content-Disposition">
attachment; filename=singlePage.pdf
</prop>
</props>
</property>
</bean>
因此,当调用相关 URL 时,我的控制器将按如下方式处理它。
@RequestMapping(value = "/generate-single-pdf", method = RequestMethod.GET)
@ResponseBody
public ModelAndView generatePageForEmployeePdf(@RequestParam("empId") String employeeId) {
List<EmployeeWork> employeeWorkDetails = employeeService.getEmployeeWorkDetails(employeeId);
JRDataSource jrDataSource = new JRBeanCollectionDataSource(employeeWorkDetails);
Map<String, Object> parameterMap = new HashMap<>();
parameterMap.put("title", "Employee Work Deails");
parameterMap.put("employee", employeeId);
parameterMap.put("datasource", jrDataSource);
return new ModelAndView("invoicePdf", parameterMap);
}
目前它成功地为单个员工生成报告。现在我想为相同格式的员工列表创建报告(使用相同的 jrxml 文件)并将其输出到单个 pdf 文件(即具有多个员工工作详细记录的 pdf 文件)
有什么想法吗?
提前致谢
【问题讨论】:
-
您可以使用另一个 jrxml 并将您当前的 jrxml 用作子报表。如果您将 1 个用户作为参数传递,它将仅打印,否则将打印所有用户详细信息。
-
谢谢,@FahadAnjum。目前,我正在寻找一个工作示例,因为我在准备带有子报表参数的 jrxml 时遇到了一些困难。
-
您可以通过多种方式进行操作,修改报告以支持与一个或多个员工的查询、子报告或像这样将碧玉打印添加到一起stackoverflow.com/q/36929868/5292302
标签: spring jasper-reports