码迷,mamicode.com
首页 > 编程语言 > 详细

ireport5.6使用table组件,如何用table显示javaBean数据源

时间:2015-08-04 11:25:07      阅读:482      评论:0      收藏:0      [点我收藏+]

标签:ireport   table   ireport合并列   javabean数据源   

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接收

技术分享

<datasetParameter name="table1">
	<datasetParameterExpression><![CDATA[new net.sf.jasperreports.engine.data.JRBeanCollectionDataSource($P{dets})]]></datasetParameterExpression>
</datasetParameter>
<dataSourceExpression><![CDATA[new net.sf.jasperreports.engine.data.JRBeanCollectionDataSource($P{dets})]]></dataSourceExpression>

d.添加Fields,显示的字段

技术分享

技术分享

5.报表设计完成

技术分享


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

    /**
     * 打印报表 ckz
     * 
     * @param billcode
     * @param req
     * @param resp
     * @throws Exception
     */
    @SuppressWarnings({ "rawtypes", "unchecked" })
    @Transactional(readOnly = true)
    public void doReport(String billcode,String exportType,HttpServletRequest request,HttpServletResponse response){
        try {
            String root_path = request.getSession ().getServletContext ().getRealPath ("");
            List list = binadjustBillMasDao.queryBinadjustbillDS (billcode);
            List datalist = binadjustBillDetDao.queryBinadjustbillDet (billcode);
            // 设置report参数
            Map params = new HashMap ();
            String username = (String) request.getSession ().getAttribute ("employeename");
            params.put ("username", username);
            params.put ("title", "物资调整单");
            params.put ("dets", datalist);
            params.put ("SUBREPORT_DIR", root_path + "\\webresource\\reports\\binadjust\\");
            params.put ("logo", root_path + IReportConstant.LOGOIMAGEURL);
            // 获取打印报表所需的数据
            String jaspername = "/binadjust/report_binadjustbill_mas_cn.jasper";
            //注:list的size的大小,决定报表里的Detail显示几次,比如:size=2,那么加载后的报表就有2个table显示
            JasperHelper.exportmain (exportType, jaspername, list, params, "binadjust", request, response);
        } catch (Exception ex) {
            PrintWriter out = null;
            try {
                response.setCharacterEncoding ("UTF-8");
                out = response.getWriter ();
                out.write ("<h1 style='position: absolute;left: 50%;top: 50%;margin-left: -180px;margin-top: -10px;'>打印报表出错,请重试!</h1>");
            } catch (IOException e) {
                e.printStackTrace ();
            } finally {
                out.close ();
            }
            ex.printStackTrace ();
        }

        response.setCharacterEncoding ("UTF-8");
        response.setContentType ("text/html;charset=UTF-8");

    }
7、效果

技术分享


版权声明:本文为博主原创文章,未经博主允许不得转载。

ireport5.6使用table组件,如何用table显示javaBean数据源

标签:ireport   table   ireport合并列   javabean数据源   

原文地址:http://blog.csdn.net/u013474104/article/details/47271375

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!