我使用JasperReports和Spring MVC 3生成用于在Web应用程序中显示表数据的HTML报告。JasperReports HTML报告分页
JasperReports提供某种分页方法吗?或者,是否可以使用一些Spring MVC实用程序对生成的报告中的数据进行分页?
我使用JasperReports和Spring MVC 3生成用于在Web应用程序中显示表数据的HTML报告。JasperReports HTML报告分页
JasperReports提供某种分页方法吗?或者,是否可以使用一些Spring MVC实用程序对生成的报告中的数据进行分页?
是的,JasperReports提供了一些分页方法。
您可以设置此参数出口商:
JRHtmlExporterParameter.BETWEEN_PAGES_HTML
JRHtmlExporterParameter.IS_REMOVE_EMPTY_SPACE_BETWEEN_ROWS
的BETWEEN_PAGES_HTML
出口参数接受java.lang.String中替换默认页面分隔导出为HTML 时格式为。
当设置为Boolean.TRUE,所述IS_REMOVE_EMPTY_SPACE_BETWEEN_ROWS
出口 参数确保对所得到的HTML表中的所有空行被折叠。
当PROPERTY_ONE_PAGE_PER_SHEET
没有被设置,所有文档页面将被打印出到单个片材。分页符显示为页面之间的补充空行。
你可以阅读this guide了解更多信息并探索this exampleStruts。
您可以使用IS_IGNORE_PAGINATION
内置报告参数或isIgnorePagination
报告的模板属性。
您可以设置此参数以避免将文档分成多个页面。
您可以使用JasperReports API - JasperDesign.setIgnorePagination(boolean ignorePagination)方法。
附加:
相关职位上的SO:Is Jasper Reports the appropriate solution to display reports in a web application?
你可以看一下样本报告$JASPERREPORTS_DIR$\demo\samples\nopagebreak
文件夹(分布有的JasperReports包)。
我看过这个例子:http://helptodeveloper.blogspot.com/2010/02/jasper-reports-with-pagination.html并检查了包含在JasperReports包中的webapp
演示(特别是viewer.jsp
)。
我试着用Spring MVC实现类似的东西。
在我控制器类我修改我的请求处理方法这样:
@RequestMapping("/report")
public ModelAndView showHtmlReport(HttpServletRequest request,
HttpServletResponse response,
@RequestParam(value = "page", required = false) String pageIndex,
ModelMap model) {
// do something...
if (StringUtils.isNotBlank(pageIndex)
&& StringUtils.isNumeric(pageIndex)) {
model.put("page_index", new Integer(pageIndex));
}
// do something else...
return new ModelAndView("htmlReport", model);
}
然后,我已经扩展Spring提供的标准JasperReportsHtmlView
,覆盖renderReport
方法:
@Override
protected void renderReport(JasperPrint populatedReport,
Map<String, Object> model, HttpServletResponse response)
throws Exception {
// check something...
if (model.containsKey("page_index")) {
Map<net.sf.jasperreports.engine.JRExporterParameter, Object> expParams =
this.getConvertedExporterParameters();
expParams.put(
net.sf.jasperreports.engine.JRExporterParameter.PAGE_INDEX,
model.get("page_index"));
}
// check something else...
super.renderReport(populatedReport, model, response);
}
注意:我实际上扩展了html-view类为另一个reas (Images not shown in JasperReports' html report),但按照同样的方法我也解决了这个问题。
注意pt.2:我是Spring Framework的新手,所以如果我的回答不完全正确......试着理解我! :)
谢谢!我正试图将页面放在与您建议的示例非常相似的页面上,并带有PREV和NEXT按钮。 – davioooh
我真的希望JR提供一些综合分页系统(更复杂的东西...) 我会尝试跟随你的指示。非常感谢你。 – davioooh
@DavidC。欢迎,大卫 –