使用Japserreport填充报表数据(3)

E中以PDF文件的格式显示静态的中文字符串,在大多数的情况下,打印的数据来自于一些变量,在JasperReports工具中传递数据并填充到 报表只有两种方式,即使用Parameters参数和JRDataSource数据源,而Parameters参数的使用方式就是从Servlet向报表 传递参数,而JRDataSource数据源可以使用原始数据表中的数据在报表上进行显示,如图1.33所示。

使用Japserreport填充报表数据(3)_第1张图片

这两种方式都可以通过Servlet进行传递,本示例就来实现通过Parameters传递数据到报表的功能。
  新建报表模板文件

在iReport工具中新建一个报表,界面如图1.34所示。

使用Japserreport填充报表数据(3)_第2张图片

在图1.34中有很多的Band,如Title、Page Footer等。

本示例其实并不需要这么多的Band,所以可以删除一些没有使用到的Band,删除的办法是:在左边的Report Inspector面板中选择没有用到的Band,单击鼠标右键,在弹出的快捷菜单中选择Delete Band命令即可,如图1.35所示。

使用Japserreport填充报表数据(3)_第3张图片

只留有Detail 1,如果嫌Detail 1的高度不够可以用鼠标直接拖曳高度即可,效果如图1.36所示。

使用Japserreport填充报表数据(3)_第4张图片

然后选择"组件面板"中的Line工具绘画表格,如图1.37所示。

设计的表格样式如图1.38所示。

使用Japserreport填充报表数据(3)_第5张图片

利用Line设计的表格)中可以看到有些单元格的内容为空,这些内容就是通过在Servlet中传递参数的形式显示到报表中的。

新建Web项目并创建Servlet,核心代码如下:

 ServletOutputStream servletOutputStream = response.getOutputStream();  
            InputStream reportStream = getServletConfig().getServletContext()  
            .getResourceAsStream("/report2.jasper");  
           // HashMap<String, Object> paramHashMap = new HashMap<String, Object>();  
            HashMap paramHashMap = new HashMap();  
            paramHashMap.put("param_username", "高洪岩");  
            paramHashMap.put("param_age", "40");  
            paramHashMap.put("param_type", "专家号");  
            paramHashMap.put("param_isHisSec", "是");  
            paramHashMap.put("param_isVip", "是");  
            JasperRunManager.runReportToPdfStream(reportStream,  
            servletOutputStream, paramHashMap, new JREmptyDataSource());  
            response.setContentType("application/pdf");  
            servletOutputStream.flush();  
            servletOutputStream.close();  
        }   
        catch (JRException e)   
        {   // TODO Auto-generated catch block  
            e.printStackTrace();  
        }  

从代码中可以看到实例化了一个HashMap,HashMap中的数据通过key和value键值对的形式来进行组织,key有 param_username和param_age等,这些key对应的值要显示到报表上,所以需要在iReport中引用这5个参数,引用的过程也就是 在iReport中创建Parameters对象。

创建一个参数,操作的步骤如图1.39所示。

对参数Parameter设置名称 ,需要注意的是,此参数名称必须和HashMap中的key值相同,这样就可以从Servlet的HashMap中根据key值取到对应的值并且打印到报表中。

还要在属性面板中将属性值的提示功能去掉,如图1.40所示。

创建好5个Parameter,效果如图1.41所示。

把5个Parameter参数分别拖到空的单元格中,然后设置它的字体大小及样式,设置好的布局如图1.42所示。

预览一下报表,生成.jasper文件,效果如图1.43所示。

把这个report1.jasper文件复制到Web项目的WebRoot文件夹下,部署项目:

你可能感兴趣的:(使用Japserreport填充报表数据(3))