ireport使用table组件,显示页面

1.从组件面板添加一个table组件到报表中。



2.设计table的字段头.


合并操作

1.


2.

删除你不需要的列

新增你的合并列


3.在报表Parameters里新增一个参数dets(java.util.List)

4.配置table数据集

a.重命令数据集(方便)

右键-》属性,即可修改.

b.添加一个Parameters

新增一个table1(net.sf.jasperreports.engine.JRDataSource)

c.手动配置代码,把dets参数传递给table1接收


[html]  view plain copy
  1. <datasetParameter name="table1">  
  2.     <datasetParameterExpression><![CDATA[new net.sf.jasperreports.engine.data.JRBeanCollectionDataSource($P{dets})]]></datasetParameterExpression>  
  3. </datasetParameter>  
  4. <dataSourceExpression><![CDATA[new net.sf.jasperreports.engine.data.JRBeanCollectionDataSource($P{dets})]]></dataSourceExpression>  

d.添加Fields,显示的字段



5.报表设计完成



6.编写java代码以传递javaBean数据源的方式调用报表并显示

[java]  view plain copy
  1. /** 
  2.  * 打印报表 ckz 
  3.  *  
  4.  * @param billcode 
  5.  * @param req 
  6.  * @param resp 
  7.  * @throws Exception 
  8.  */  
  9. @SuppressWarnings({ "rawtypes""unchecked" })  
  10. @Transactional(readOnly = true)  
  11. public void doReport(String billcode,String exportType,HttpServletRequest request,HttpServletResponse response){  
  12.     try {  
  13.         String root_path = request.getSession ().getServletContext ().getRealPath ("");  
  14.         List list = binadjustBillMasDao.queryBinadjustbillDS (billcode);  
  15.         List datalist = binadjustBillDetDao.queryBinadjustbillDet (billcode);  
  16.         // 设置report参数  
  17.         Map params = new HashMap ();  
  18.         String username = (String) request.getSession ().getAttribute ("employeename");  
  19.         params.put ("username", username);  
  20.         params.put ("title""物资调整单");  
  21.         params.put ("dets", datalist);  
  22.         params.put ("SUBREPORT_DIR", root_path + "\\webresource\\reports\\binadjust\\");  
  23.         params.put ("logo", root_path + IReportConstant.LOGOIMAGEURL);  
  24.         // 获取打印报表所需的数据  
  25.         String jaspername = "/binadjust/report_binadjustbill_mas_cn.jasper";  
  26.         //注:list的size的大小,决定报表里的Detail显示几次,比如:size=2,那么加载后的报表就有2个table显示  
  27.         JasperHelper.exportmain (exportType, jaspername, list, params, "binadjust", request, response);  
  28.     } catch (Exception ex) {  
  29.         PrintWriter out = null;  
  30.         try {  
  31.             response.setCharacterEncoding ("UTF-8");  
  32.             out = response.getWriter ();  
  33.             out.write ("<h1 style='position: absolute;left: 50%;top: 50%;margin-left: -180px;margin-top: -10px;'>打印报表出错,请重试!</h1>");  
  34.         } catch (IOException e) {  
  35.             e.printStackTrace ();  
  36.         } finally {  
  37.             out.close ();  
  38.         }  
  39.         ex.printStackTrace ();  
  40.     }  
  41.   
  42.     response.setCharacterEncoding ("UTF-8");  
  43.     response.setContentType ("text/html;charset=UTF-8");  
  44.   
  45. }  
7、效果

  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值