[報表篇] (9)設置印刷範圍

方法:setPrintArea()

步驟一:模板的新建與導入

步驟二:編輯代碼

步驟三:印刷結果畫面的顯示

一:模板的新建與導入

  1. 點擊鏈接下載報表模板 印刷範圍
  2. 模板導入
    報表模板定義-指定新模板
    選擇需要的模板導入並記住文件ID在代碼中進行更改
    在這裏插入圖片描述

二:編輯代碼

var cy;				
//創建StringBuilder對象				
var strSqlc = new StringBuilder();				
//學生ID				
var NIANDU1 = getObj('txt4');				
var excelDataBean = null;				
var sheeBean = null;				
var excelPrint = getExcelPrint();				
var rowDataList = null;				
var row = null;				
//學生ID				
var XUESHENGID = "";				
try {				
    //追加SQL語句				
    strSqlc.append("SELECT XUESHENGID,STUDENT_FULL_NM_KN,XINGBIE,STUDENT_SUBJECT,CHENGJI FROM M_STUDENT1 ");
    strSqlc.append("where 1 = 1");				
    //判斷ID				
    if (NIANDU1 != null && NIANDU1 != "") {   				
        strSqlc.append(" AND XUESHENGID = '").append(NIANDU1).append("'");				
    }   
    //按ID排序				
    strSqlc.append(" ORDER BY XUESHENGID ");				
    cy = exequeryarrylist(strSqlc.toString());				
    excelDataBean = new ExcelDataBean();				
    //數據不爲空				
    if (cy != null && cy.size() > 0) {				
        // list初始化				
        rowDataList = new ArrayList();				
        sheeBean = new ExcelDataBean();				
        //從數據庫中獲取ID				
        XUESHENGID = cy.get(0).get(0);				
        var conditionMap = new HashMap();     
        //循環數據並取值				
        for (var i = 0; i < cy.size(); i++) {				
            row1 = new ArrayList();				
            row = cy.get(i);				
            // 學生ID				
            row1.add(row.get(0));				
            // 姓名				
            if (nullOrBlank(row.get(1))) {				
                row1.add("");				
            } else {    // 姓名            				
                row1.add(row.get(1));				
            }				
            // 性別				
            if (nullOrBlank(row.get(2))) {				
                row1.add("");				
            } else {				
                // 性別				
                row1.add(row.get(2));				
            }				
            // 科目				
            if (nullOrBlank(row.get(3))) {				
                row1.add("");				
            } else {				
                // 科目				
                row1.add(row.get(3));				
            }				
            // 成績				
            if (nullOrBlank(row.get(4))) {				
                row1.add("");				
            } else {				
                // 成績				
                row1.add(row.get(4));				
            }				
            //判斷ID,換頁打印				
            if (XUESHENGID != row.get(0)) {				
                //拷貝模板的標題部分				
                sheeBean.addCopyItem("A1", "A5");				
                //設定指定單元格的值				
                sheeBean.addItem("A2", "成績表");				
                //單元格類型的設定				
                conditionMap.put(0, new ExcelCellBean(0, 0, "string"));				
                //單元格類型的設定				
                conditionMap.put(1, new ExcelCellBean(0, 1, "string"));				
                //單元格類型的設定				
                conditionMap.put(2, new ExcelCellBean(0, 2, "string"));				
                //單元格類型的設定 				
                conditionMap.put(3, new ExcelCellBean(0, 3, "string"));				
                //單元格類型的設定				
                conditionMap.put(4, new ExcelCellBean(0, 4, "number"));				
                //在excel數據列表中追加數據				
                var listBean = sheeBean.addList("A5", rowDataList, conditionMap);				
                //設置打印範圍				     				
                sheeBean.setPrintArea("0,4,0,8");				
                //追加sheet				
                excelDataBean.addSheet("成績表" + XUESHENGID, sheeBean);				
                sheeBean = new ExcelDataBean();				
                conditionMap = new HashMap();				
                rowDataList = new ArrayList();				
            }				
            XUESHENGID = row.get(0);				
            rowDataList.add(row1);				
        }				
        //拷貝模板的標題部分				
        sheeBean.addCopyItem("A1", "A5");				
        //設定指定單元格的值				
        sheeBean.addItem("A2", "成績表");				
        //單元格類型的設定				
        conditionMap.put(0, new ExcelCellBean(0, 0, "string"));				
        //單元格類型的設定				
        conditionMap.put(1, new ExcelCellBean(0, 1, "string"));				
        //單元格類型的設定				
        conditionMap.put(2, new ExcelCellBean(0, 2, "string"));				
        //單元格類型的設定				
        conditionMap.put(3, new ExcelCellBean(0, 3, "string"));				
        //單元格類型的設定				
        conditionMap.put(4, new ExcelCellBean(0, 4, "number"));				
        //在excel數據列表中追加數據				
        var listBean = sheeBean.addList("A5", rowDataList, conditionMap);				
        //設置打印範圍				
        sheeBean.setPrintArea("0,5,0,7");				
        //追加sheet				
        excelDataBean.addSheet("成績表" + XUESHENGID, sheeBean);				
        excelPrint.setExcelDataBean(excelDataBean);    				
        excelPrint.setTemplateID(132);				
        JsonObj = excelPrint.print("132");				
    } else {				
        //設定錯誤信息				
        excelDataBean.setErrorMsg("數據不存在。");				
        excelPrint.setTemplateID(132);				
        excelPrint.setExcelDataBean(excelDataBean);				
        JsonObj = excelPrint.print("132");				
    }				
} catch (e) {				
    trace(e);				
    ActStr += "alert('" + e + "');";				
}				

工具-自定義函數-新建
在這裏插入圖片描述
創建函數名稱,選擇使用範圍、使用函數的界面和運行端
在這裏插入圖片描述
單擊編輯函數
※第三行代碼getObj()的參數如下圖右側紅框所示 txt4,根據個人設置情況會有所不同
在這裏插入圖片描述
※setTemplateID()和print(" ")的參數爲導入模板時記下的文件ID
製作畫面-畫面版面設計-編輯
在這裏插入圖片描述
進入到界面設計頁面,右擊印刷函數按鈕,選擇函數定義
在這裏插入圖片描述
選擇已經定義好的函數類型及函數名稱,點擊編輯
在這裏插入圖片描述
點擊SQL語句驗證,可以檢驗SQL語句的執行結果
在這裏插入圖片描述

在這裏插入圖片描述

三:印刷結果畫面的顯示

按下印刷函數按鈕,可在Excel文檔中下載報表,顯示結果如下
在這裏插入圖片描述
在這裏插入圖片描述

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