[報表篇]小計欄
步驟一:製作表和畫面
步驟二:模板的新建與匯入
步驟三:編輯程式碼
步驟四:印刷結果畫面的顯示
一:製作表和畫面
(一)製作表
1.如下所示在資料庫中新建一張表
SQL文:
CREATE TABLEm_student1
(
XUESHENGID
varchar(10) NOT NULL,
LASTNAME
varchar(15) DEFAULT NULL,
FIRSTNAME
varchar(15) DEFAULT NULL,
STUDENT_FULL_NM_KN
varchar(40) DEFAULT NULL,
XINGBIE
varchar(20) DEFAULT NULL,
CHENGJI
int(11) DEFAULT NULL,
STUDENT_SUBJECT
varchar(5) DEFAULT NULL,
FIRST_REG_DTM
datetime DEFAULT NULL,
FIRST_REG_ID
varchar(50) DEFAULT NULL,
LAST_UPDATE_DTM
datetime DEFAULT NULL,
LAST_UPDATE_ID
varchar(50) DEFAULT NULL,
PRIMARY KEY (XUESHENGID
)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
定義匯入-定義內容(新增SQL文)-建立
修改專案名稱,點選儲存(記得勾選反映到資料庫)
(一)建立兩個畫面
1.畫面:印刷函式
製作畫面-畫面版面設計-新建
建立介面名,填寫TextBox,列印按鈕的專案數,點選儲存。新增選單,選擇一個資料夾儲存
畫面跳轉到介面設計頁面,如下圖所示修改專案名並設計頁面
※介面設計結束後記得按設計欄中的儲存按鈕儲存頁面。
2.畫面:印刷函式畫面
製作畫面-畫面科目定義-新建
建立介面名,填寫管理ID(可填1),選擇關聯表,勾選需要編輯的專案。同印刷函式,將畫面新增到選單並選擇資料夾
點選介面專案定義的[畫面版面設計轉移]按鈕,跳轉到介面設計頁面
重新定義科目屬性,右擊科目右側的文字框,選擇專案定義
按下圖所示更改科目屬性,點選儲存
※介面設計結束後記得按設計欄中的儲存按鈕儲存頁面。
登入使用者介面新增資料
INSERT INTO
m_student1
VALUES (‘k0001’, ‘王’, ‘明明’, ‘王明明’, ‘男’, ‘88’, ‘0’, ‘2018-12-13 19:42:58’, ‘’, ‘2018-12-13 19:42:58’, ‘’);
INSERT INTOm_student1
VALUES (‘k0001’, ‘王’, ‘明明’, ‘王明明’, ‘男’, ‘60’, ‘1’, ‘2018-12-13 19:43:24’, ‘yong_yong01test1’, ‘2018-12-13 19:46:59’, ‘yong_yong01test1’);
INSERT INTOm_student1
VALUES (‘k0001’, ‘王’, ‘明明’, ‘王明明’, ‘男’, ‘100’, ‘2’, ‘2018-12-13 19:47:44’, ‘yong_yong01test1’, ‘2018-12-13 19:47:44’, ‘yong_yong01test1’);
INSERT INTOm_student1
VALUES (‘k0002’, ‘李’, ‘華’, ‘李華’, ‘女’, ‘45’, ‘0’, ‘2018-12-13 19:49:32’, ‘yong_yong01test1’, ‘2018-12-13 19:49:32’, ‘yong_yong01test1’);
INSERT INTOm_student1
VALUES (‘k0002’, ‘李’, ‘華’, ‘李華’, ‘女’, ‘99’, ‘1’, ‘2018-12-13 19:50:15’, ‘yong_yong01test1’, ‘2018-12-13 19:50:15’, ‘yong_yong01test1’);
INSERT INTOm_student1
VALUES (‘k0002’, ‘李’, ‘華’, ‘李華’, ‘女’, ‘78’, ‘2’, ‘2018-12-13 19:50:46’, ‘yong_yong01test1’, ‘2018-12-13 19:50:46’, ‘yong_yong01test1’);
二:模板的新建與匯入
- 下載報表模板並編輯內容
- 模板匯入
報表模板定義-指定新模板
選擇需要的模板匯入並記住檔案ID在程式碼中進行更改
三:編輯程式碼
var cy;
//建立StringBuilder物件
var strSqlc = new StringBuilder();
//學生ID
var NIANDU1 = getObj('txt4');
//全域性變數
var excelDataBean = null;
//區域性變數
var sheeBean = null;
//excel印刷
var excelPrint = getExcelPrint();
var rowDataList = null;
var row = null;
try {
//追加SQL語句
strSqlc.append("SELECT XUESHENGID,STUDENT_FULL_NM_KN,XINGBIE,STUDENT_SUBJECT,CHENGJI FROM M_STUDENT1 ");
//判斷ID
if (NIANDU1 != null && NIANDU1 != "") {
//追加SQL語句
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();
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));
}
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);
//追加sheet
excelDataBean.addSheet("成績表", sheeBean);
//設定小計欄
var listcount = listBean.setCount("A6", "A6", "A6");
excelPrint.setExcelDataBean(excelDataBean);
//輸入模板檔案ID
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文件中下載報表,顯示結果如下