如何快速的10分钟制作一张主从表单及功能

本文介绍如何使用快速开发平台建立一张主从表单页面

我们的网址:www.sdpsoft.com

QQ:136846796 电话:13506214148 微信: candynext

1、建立数据源

新建一张“测试_奖励管理_主表_页面”的数据源:

点击同步字段可以将此表中的字段同步过来(如图所示)

新建一张“测试_奖励管理_从表_页面”的数据源

2、在页面设计中制作页面

新建一张页面配置其信息

页面类型选择主从表单类型

脚本引用: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 = "";

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;

}

//#endregion

在web中生成:

在系统中查看此页面:

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,456评论 5 477
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,370评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,337评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,583评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,596评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,572评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,936评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,595评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,850评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,601评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,685评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,371评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,951评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,934评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,167评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 43,636评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,411评论 2 342

推荐阅读更多精彩内容