欢迎使用CSDN-markdown编辑器

来源:互联网 发布:东西方神仙大战 知乎 编辑:程序博客网 时间:2024/06/05 20:38

一:jasperReports介绍:
  在web应用中,必须面临大量的报表问题,即将数据库中的数据形成报表并进行打印。传统开发只能使用html页面设计报表,效率低且不支持别的格式。所以jasperReports因运而生。
  jasperReports是一款强大的灵活的报表生成工具,能够生成pdf、html和xml格式的报表,是开源的,可以免费的使用她。并且完全使用java写成,可以用在各种java程序中(她的文档是收费的)。

二:jar说明:
  首先,需要往项目中添加的jar文件有:

    核心包:jasperreports.jar,groovy-all-1.7.2.jar,
    json-lib-2.4-jdk15.jar

    生成pdf组件包:iText.jar  中文字体包:iTextAsian.jar

    apache的commons组件包。

三:ireport介绍:
  iReport是一个能够创建复杂报表的开源项目。它100%使用Java语言编写。是目前全球最为流行的开源报表设计器。因为jasperReports本身没有提供很好的可视化报表设计工具,所以iReport很好的弥补了这个问题。

  下图是自己设计的报表:其中Field和Parameters都是动态获取。

四:代码:
  前台通过url访问action中的方法:

复制代码
// pdf打印
public String myprint() throws Exception {
InputStream in = userService.genPdf();
ActionContext.getContext().getValueStack().set(“pdfStream”, in);
ActionContext.getContext().getValueStack().set(“pdfName”, “用户名单.pdf”);
return “mypdf”;
}
复制代码
  service中的实现方法:

复制代码
@Override
public InputStream genPdf() {
List userLs = this.retrieveAll(null, null, null);
Map