zoukankan      html  css  js  c++  java
  • Lodop 分页详解,可详细了呢

    首先我们在打印之前数据肯定是要准备好的,首先把标题 题头等信息准备好,然后循环列表采用json串的方式,这样方便遍历和修改

    直接把list转换成json,然后赋值给一个对象的某个属性。这样前台就可以直接遍历json串了。

    json = JsonUtiles.getJsonDataFromCollection(list);//分页newpage用,传递json串,然后解析

    finalModel.setJsonString(json);
    model.addAttribute("singleInfo",finalModel);

    这样json串就传递到前台了。

    前台只需 var jsonString = '${singleInfo.jsonString}';
         var jsonList = eval("(" + jsonString + ")");

    这样就可以获得json串了。

    下面开始分页(下面是lodop部分):

    var totalRows = jsonList.length;             //总记录条数,这里就是在前台获得的json串
    var hasPreviousPage = false;              //是否有下一页
    var pageHeight = 140;                   //纸张高度(单位mm)
    var pageRecorders = parseInt((pageHeight-40)/6);    //纸张高度去掉页眉数据,去掉上面的一些标题页码等占用的距离,如果没有直接写就可以,本文高度为 6mm,所以除以6
    var totalPages = 1;
    if((totalRows % pageRecorders) == 0) {
    totalPages = parseInt(totalRows / pageRecorders);
    }else{
    totalPages = parseInt(totalRows / pageRecorders) + 1;
    }
    if(totalPages == 1){
    hasPreviousPage = false;
    }else{
    hasPreviousPage = true;
    }

        alert("页码 : "+totalPages);
            alert("每页 : "+pageRecorders+"条");
            for(var i=0;i<totalPages;i++){            //总页数
                var tvalue = 0;
                //列头--------------------------------------------
         这里如姓名,性别,所在班级等    

        LODOP.ADD_PRINT_TEXT("30mm","12mm","22mm","5mm","记账日期");
        LODOP.ADD_PRINT_TEXT("30mm","32mm","22mm","5mm","记账时间");

                for(var j=i*pageRecorders;j<(i+1)*pageRecorders;j++){
                    if(j>=totalRows){
                        break;
                    }
                //数据---------------------------------------------    
         这里如: 小红  女  A12班

          LODOP.ADD_PRINT_TEXT((38+(tvalue*6))+"mm","12mm","20mm","10mm",jsonList[j].chargeDate);
          LODOP.ADD_PRINT_TEXT((38+(tvalue*6))+"mm","32mm","25mm","5mm",jsonList[j].chargeTime);

                    tvalue++;
                }
                LODOP.NewPage();
            }

    最后还可以加上合计等 :

    LODOP.ADD_PRINT_TEXT("118mm", "12mm", "80mm", "5mm",男生: "+123+" 女生:"+guestSum);

    LODOP.SET_PRINT_STYLEA(0, "PageIndex", "Last");

    0 代表当前元素,pageindex代表页码  last 代表最后一页

    这样lodop  分页打印就完成了。

  • 相关阅读:
    Hashset 常用的方法
    List新增的方法
    关于集合
    转载关于sql 注入
    可变参数和preparestatement 结合使用
    数据库连接 中的测试事例,包括工具类,配置文件,查询,增加,以及查询后返回对象
    在静态方法中不能调用非静态变量,但getclass()可以换个形式来调用
    用一个对象中读出信息进行出入的代码片段
    新建maven项目更改 web版本
    elasticsearch 局部更新
  • 原文地址:https://www.cnblogs.com/xiehaoyu/p/6229971.html
Copyright © 2011-2022 走看看