本文介紹如何使用快速開發平臺創建一張主從表單頁面html
SDP軟件快速開發平臺介紹網址:www.sdpsoft.comnode
QQ:136846796c++
一、創建數據源web
新建一張「測試_獎勵管理_主表_頁面」的數據源:ajax
點擊同步字段能夠將此表中的字段同步過來(如圖所示)sql
新建一張「測試_獎勵管理_從表_頁面」的數據源數據庫
二、在頁面設計中製做頁面oracle
新建一張頁面配置其信息 sqlserver
頁面類型選擇主從表單類型測試
腳本引用:test.js
添加數據集合(數據源): 主表信息 而且經過「添加字段」添加「主表主鍵字段」
添加從表信息:集合層次選擇從集 關聯字段添加 BillCode 以及 EmpCode 關聯上級字段 BillCode
經過複製粘貼製做好的頁面表頭到頁面中:
快速生成控件:點擊快速生成控件按鈕生成控件而且完善控件信息
生成出來的頁面:
經過拖拉的方式完善頁面的美觀效果
添加從表至頁面中配置信息:
定義人員編號文本按鈕的js事件 在test.js中會用到
在控件中定義按鈕單擊雙擊事件:
保存事件:Punish_Page_Save() 刪除:Punish_Page_Delete() 審覈:Punish_Page_Check() 退出:Punish_Page_Exit()
增行:Punish_Page_AddRow() 刪行:Punish_Page_DelRow()
在test.js中調用事件來實現按鈕的功能
//#region 獎勵管理--主單列表 // 獎勵管理--主單列表--頁面加載 function Reward_MainList_Init() { func_InitPageDataSource(); } // 獎勵管理--主單列表--新增事件 function Reward_MainList_Add() { func_AddNewDataBill(560, 540, "Rsgl_Reward_Form.html", "獎勵管理", "Reward_MainList"); } // 獎勵管理--主單列表--編輯事件 function Reward_MainList_Edit() { func_ModifyDataBill(560, 540, "Rsgl_Reward_Form.html", "獎勵管理", "Reward_MainList"); } // 獎勵管理--主單列表--查詢事件 function Reward_MainList_Search() { func_AdvQueryByGrid("Reward_MainList"); } // 獎勵管理--主單列表--輸出事件 function Reward_MainList_Export() { func_ExportRecord("Reward_MainList"); } //#endregion //#region 獎勵管理--編輯頁面 // 獎勵管理--編輯頁面_頁面加載 function Reward_Page_Init() { func_InitPageDataSource(); if (sys_parameter.billstate == "edit") { if ($id("txt_Status").value != "草稿") { func_LockAllControl(); func_UnLockOneControl("btn_Exit"); } } else { func_LockOneControl("btn_Delete"); func_LockOneControl("btn_Check"); } } // 獎勵管理--編輯頁面--保存事件 function Reward_Page_Save() { func_SaveBillData(); } // 獎勵管理--編輯頁面--刪除事件 function Reward_Page_Delete() { if ($id("txt_BillCode").value == "") { alert("單據編號爲空!不容許刪除!"); return; } func_DeleteBillData(); } // 獎勵管理--編輯頁面--審覈事件 function Reward_Page_Check() { if ($id("dt_EffectDate").value == "") { alert("生效日期不容許爲空!"); return; } if (confirm("提示:是否確認審覈?")) { var _nowDateTime = func_GetNowDate(); var _runStrSql = "update Rsgl_Reward_Main set Status= '已審',CheckEmpCode='" + userinfo.usercode + "',CheckEmpName='" + userinfo.username + "',"; switch (userinfo.dbtype) { // 數據庫類型 case "oracle": _runStrSql += "CheckDate = to_date('" + _nowDateTime + "','yyyy-MM-dd HH24:mi:ss')"; break; case "sqlserver": default: _runStrSql += "CheckDate = '" + _nowDateTime + "'"; break; } _runStrSql += " where BillCode='" + $id("txt_BillCode").value + "'"; var _runParams = "<sql><![CDATA[" + encodeURI(_runStrSql) + "]]></sql>"; var _runResXml = Runajax("execsql", _runParams); if (_runResXml != "0") { alert("審覈成功!"); location.reload(); // 從新加載刷新當前頁面 } else { alert("審覈失敗!"); } } } // 獎勵管理--編輯頁面--退出事件 function Reward_Page_Exit() { func_CloseDialog(); } // 獎勵管理--編輯頁面--增行事件 function Reward_Page_AddRow() { func_AddRow("Emp_List"); } // 獎勵管理--編輯頁面--刪行事件 function Reward_Page_DelRow() { func_DelRow("Emp_List"); } // 獎勵管理--編輯頁面--人員選擇 function Reward_Page_SelectEmp(_rowIndex, _colIndex) { btnRowIndex = _rowIndex; btnColIndex = _colIndex; func_OpenPage(630, 445, "人員選擇", "Basis_EmpBaseInfo_BaseSelect.html", "Reward_Page_SetEmp()"); } // 獎勵管理--編輯頁面--人員回填 function Reward_Page_SetEmp(retXmlVal) { var recXmlDoc = loadXML(retXmlVal); if (!recXmlDoc) return; // 編輯列表中的按鈕事件的實例 var tmNowRow = func_GetRowObj("Emp_List", btnRowIndex); if (!tmNowRow) return; for (var rr = 0; rr < recXmlDoc.documentElement.childNodes.length; rr++) { var recRow = recXmlDoc.documentElement.childNodes(rr); for (var cc = 0; cc < recRow.childNodes.length; cc++) { // 根據綁定的字段名字轉換成小寫來獲取 switch (recRow.childNodes[cc].nodeName.toLowerCase()) { case "empcode": tmNowRow.cells[3].innerHTML = recRow.childNodes[cc].text; break; case "empname": tmNowRow.cells[4].innerHTML = recRow.childNodes[cc].text; break; case "orgcode": tmNowRow.cells[5].innerHTML = recRow.childNodes[cc].text; break; case "orgname": tmNowRow.cells[6].innerHTML = recRow.childNodes[cc].text; break; } } break; // 此處只獲取一條 } retXmlVal = null; recXmlDoc = null; }
在web中生成:
在系統中查看此頁面: