ireport5.6使用table组件,如何用table显示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、效果

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

时间: 2024-10-06 05:55:24

ireport5.6使用table组件,如何用table显示javaBean数据源的相关文章

React中使用Ant Table组件

一.Ant Design of React http://ant.design/docs/react/introduce 二.建立webpack工程 webpack+react demo下载 项目的启动,参考 三.简单配置 1.工程下载下来之后,在src目录下新建目录“table”,新建app.js,内容如下. import React from 'react'; import ReactDOM from 'react-dom'; import ExampleTable from './Exam

Ant Table组件

http://www.cnblogs.com/hujunzheng/p/5689650.html React中使用Ant Table组件 v一.Ant Design of React http://ant.design/docs/react/introduce v二.建立webpack工程 webpack+react demo下载 项目的启动,参考 v三.简单配置 1.工程下载下来之后,在src目录下新建目录“table”,新建app.js,内容如下. import React from 're

iview修改table组件实现循环向上滚屏

前提,最近项目中需要实现table的滚屏效果,并且使用的是iview的table组件,踩坑,填坑如下. 1.首先找到Table组件中的table,就是这个class:ivu-table-body template部分代码 1 div class="headcol" > 2 <Table border :columns="columns7" :data="data6" ></Table> 3 </div>

jasper使用table组件设计复杂的表头

1.1 设计报表模板 1.1.1 新建模板DemoReport5.jrxml,去掉不需要的Band,保留Title,Page Header,Detail 1 , PageFooter.将组件Table拖入到Detail1 中,跳出Dataset窗口.选择 Create .. ,然后Next 1.1.2 给Dataset命名.选择 Createnew dateset ... ,然后Next 1.1.3 只保留Column Header,然后 Finish 1.1.4 点击Detail中的Table

使用 antd Table组件, 异步获取数据

使用React.js + Redux + antd 制作CMS 后台内容管理系统,分享一点点积累,欢迎讨论. 在this.state中初始化数据: this.state = { pageNum:1, /*翻页查询*/ pageSize:10, /*分页查询*/ activePage: 1, /*默认显示一页*/ selectedRowKeys: [], // 这里配置默认勾选列 loading: false, /*antd*/ selectedRow:[] } 在制作过程中,根据需要把antd的

JS表格组件神器bootstrap table详解(基础版)

这篇文章主要介绍了JS表格组件神器bootstrap table,bootstrap table界面采用扁平化的风格,用户体验比较好,更好兼容各种客户端,需要了解更多bootstrap table的朋友可以参考下 一.Bootstrap Table的引入 关于Bootstrap Table的引入,一般来说还是两种方法: 1.直接下载源码,添加到项目里面来.由于Bootstrap Table是Bootstrap的一个组件,所以它是依赖Bootstrap的,我们首先需要添加Bootstrap的引用.

关于MUI v0.18.0版本 Table组件里的复选框不能选的解决方案

前段时间在用MUI的时候,Table组件出现复选框不能选的bug(描述: 点击复选框,点击事件会触发,复选框勾选状态无变化). 解决方法: 用CheckBox组件代替Table组件自带的复选框. 解决思路: 1.将CheckBox分为两种,一种是表头里的全选框(以下称全选框),一种是列表行里普通的复选框(以下称普通框): 2.将普通框进行单独封装(原因: 1.便于单个普通框自己管理自己的勾选状态,2.当全选框的勾选状态发生变化时,可以通过props将全选框的状态赋给它,从而实现全选的功能): 关

JS组件系列——Bootstrap Table 表格行拖拽

原文:JS组件系列--Bootstrap Table 表格行拖拽 前言:之前一直在研究DDD相关知识,好久没更新JS系列文章了.这两天做了一个简单的业务需求,觉得效果还可以,今天在这里分享给大家,欢迎拍砖~~ 一.业务需求及实现效果 项目涉及到订单模块,那天突然接到一个需求,说是两种不同状态的订单之间要实现插单的效果,页面上呈现方式是:左右两个Table,左边Table里面是状态为1的订单,右边Table里面是状态为2订单,左边Table里面的行数据拖动到右边Table里面指定行的位置,拖动完成

微信小程序简易table组件实现

前提:微信小程序自1.6.3基础库版本库开始支持简洁组件,之前的版本因不支持,故在引用组件处默认为空节点.关于微信小程序已有模板为何还需构建组件?一是因为组件可以更方便的自定义并绑定行为,二是在其他页面引用时,无需通过import,只需在该页面json文件下配置usingComponents属性即可.(原本想在app.json文件里配置这个属性,从此一劳永逸,但目前貌似还不支持,至少我尝试的时候还不行-.-) 思路:主要是将table的head和tbody部分的数据抽象出来,使之只需要传值就可直