lodop 報表套打分頁、每頁帶有表頭等【解決問題:每頁底部最好一條數據顯示不全、遺漏等問題】

function DoPrint(){//打印
         var LODOP=getLodop();
         LODOP.PRINT_INIT("test套打");
         LODOP.SET_PRINT_PAGESIZE(1, 0, 0,"A4");//設置紙張A4打印 橫向
         LODOP.SET_PRINT_STYLE("Alignment",2);
            LODOP.SET_PRINT_STYLEA(0, "ItemType", 1);
         LODOP.SET_PRINT_STYLEA(0, "Horient", 2);
         LODOP.SET_PRINT_MODE("POS_BASEON_PAPER",true);//設置輸出位置以紙張邊緣爲基點。
         LODOP.ADD_PRINT_LINE(50,65,50,700,0,1);//頂部標題底部線條
         LODOP.SET_PRINT_STYLE("FontSize",18);
         LODOP.SET_PRINT_STYLE("Bold",1);
         LODOP.ADD_PRINT_TEXT(16,65,700,30,"宿舍用量統計");
//          tableTitle()
        $.post("${ctx}/report/dormitory/consumption/getPrint",
                {"roomId":$("#roomId").val(),"floorId":$("#floorId").val(),"buildId":$("#buildId").val(),"sdt":getSdt($("#dt").val()),"edt":getEdt($("#dt").val())},
        function(data) {
            LODOP.SET_PRINT_STYLE("FontSize",10);
            LODOP.SET_PRINT_STYLE("Bold",0);
            var totalRows = data.length;//總條數
            var pageHeight = 297;    
            var hasPreviousPage = false; //是否有下一頁 
            var totalPages = 1;
            var pageRecorders=parseInt((pageHeight-50)/13);      //每頁條數
            if((totalRows % pageRecorders) == 0) {
                totalPages = parseInt(totalRows / pageRecorders); 
            }else{ 
                totalPages = parseInt(totalRows / pageRecorders) + 1; 
            }
            if(totalPages == 1){
                hasPreviousPage = false;
            }else{
                hasPreviousPage = true;
            }
            for(var i=0;i<totalPages;i++){            //總頁數
                var tvalue = 0;
                //列頭--------------------------------------------
             
  tableTitle()
                for(var j=i*pageRecorders;j<(i+1)*pageRecorders;j++){
                    if(j>=totalRows){
                        break;
                    }
                
   tableContent(tvalue,data[j]); 
                    tvalue++;
                }
                LODOP.NewPage();
            }
            LODOP.SET_PRINT_MODE("AUTO_CLOSE_PREWINDOW",1);//打印後自動關閉預覽窗口
             LODOP.SET_PRINT_STYLEA(0, "Vorient", 0);
            LODOP.ADD_PRINT_TEXT(580, 660, 165, 22, "第#頁/共&頁");
            LODOP.SET_PRINT_STYLEA(0, "ItemType", 2);
            LODOP.SET_PRINT_STYLEA(0, "Horient", 1);
            LODOP.SET_PRINT_STYLEA(0, "Vorient", 1);    
            LODOP.PREVIEW(); 
        }); 
        
   }

function tableTitle(){//表格標題
        LODOP.SET_PRINT_STYLE("FontSize",11);
        LODOP.ADD_PRINT_LINE(80,10,80,790,0,1);//上線
        LODOP.ADD_PRINT_LINE(150,10,150,790,0,1);//下線
        LODOP.ADD_PRINT_LINE(80,10,150,10,0,1);//左線
        LODOP.ADD_PRINT_LINE(80,790,150,790,0,1);//右線    
        
        //內部豎線1
        LODOP.ADD_PRINT_LINE(80,110,150,110,0,1);
        //房間
        LODOP.ADD_PRINT_TEXT(110,10,100,30,"房間號碼");
        LODOP.ADD_PRINT_LINE(115,110,115,720,0,1);
        //用電統計
        LODOP.ADD_PRINT_TEXT(95,110,305,30,"用電統計");
        LODOP.ADD_PRINT_LINE(80,415,150,415,0,1);
        LODOP.ADD_PRINT_LINE(80,720,150,720,0,1);
        //用水統計
        LODOP.ADD_PRINT_TEXT(95,400,305,30,"用水統計");
        LODOP.ADD_PRINT_LINE(115,250,150,250,0,1);//
        LODOP.ADD_PRINT_LINE(115,355,150,355,0,1);//
        LODOP.ADD_PRINT_LINE(115,415,150,415,0,1);//
        LODOP.ADD_PRINT_LINE(115,555,150,555,0,1);//
        LODOP.ADD_PRINT_LINE(115,660,150,660,0,1);//
        LODOP.ADD_PRINT_TEXT(130,110,140,30,"起止日期");
        LODOP.ADD_PRINT_TEXT(130,250,105,30,"起止表碼");
        LODOP.ADD_PRINT_TEXT(130,355,60,30,"用量");
        LODOP.ADD_PRINT_TEXT(130,415,140,30,"起止日期");
        LODOP.ADD_PRINT_TEXT(130,555,105,30,"起止表碼");
        LODOP.ADD_PRINT_TEXT(130,660,60,30,"用量");
        LODOP.ADD_PRINT_TEXT(110,720,60,30,"樓座");
    }
    
function tableContent(i,o){//打印後臺返回json
        var h=50;
        LODOP.ADD_PRINT_LINE(150+(i+1)*h,10,150+(i+1)*h,790,0,1);//下線
        LODOP.ADD_PRINT_LINE(150+i*h,10,150+(i+1)*h,10,0,1);//左線
        LODOP.ADD_PRINT_LINE(150+i*h,790,150+(i+1)*h,790,0,1);//右線    
        LODOP.ADD_PRINT_LINE(150+i*h,110,150+(i+1)*h,110,0,1);
        LODOP.ADD_PRINT_TEXT(150+i*h+h/4,10,100,30,o.roomNo);
        LODOP.ADD_PRINT_LINE(150+i*h,250,150+(i+1)*h,250,0,1);
        LODOP.ADD_PRINT_LINE(150+i*h,355,150+(i+1)*h,355,0,1);
        LODOP.ADD_PRINT_LINE(150+i*h,415,150+(i+1)*h,415,0,1);
        LODOP.ADD_PRINT_LINE(150+i*h,555,150+(i+1)*h,555,0,1);
        LODOP.ADD_PRINT_LINE(150+i*h,660,150+(i+1)*h,660,0,1);
        LODOP.ADD_PRINT_LINE(150+i*h,720,150+(i+1)*h,720,0,1);
        LODOP.ADD_PRINT_TEXT(150+i*h+h/4,110,140,30,o.eedt);
        LODOP.ADD_PRINT_TEXT(150+i*h+h/4,250,105,30,o.eebm);
        LODOP.ADD_PRINT_TEXT(150+i*h+h/4,355,60,30,o.zongEq);
        LODOP.ADD_PRINT_TEXT(150+i*h+h/4,415,140,30,o.wedt);
        LODOP.ADD_PRINT_TEXT(150+i*h+h/4,555,105,30,o.webm);
        LODOP.ADD_PRINT_TEXT(150+i*h+h/4,660,60,30,o.zongWq);
        LODOP.ADD_PRINT_TEXT(150+i*h+h/4,720,60,30,o.buildName);
    }

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章