h5手机建模帮助手册v4.0

liulichen 贡献于2017-12-06

作者 NTKO  创建于2017-10-27 03:29:00   修改者系统管理员  修改于2017-10-27 03:29:00字数15755

文档摘要:系统设置->表单设计。将自定义的表单设计好之后,点击保存按钮,那么系统就会生成手机客户端所需要的XML文件和JS文件。文件名称:表单ID.xml和表单ID.js。
关键词:

 手机建模帮助手册 目录 1、非系统流程XML配置文件及JS文件的生成 2 2、介绍XML配置文件使用及功能 2 3、简单常用的JS使用(且支持jquery语法) 6 1)函数的组成和基本用法 6 2)Js脚本中的注释方式 6 3)给控件注册事件 6 4)设置控件的编辑状态 7 5)设置控件的显示状态 8 6)给控件赋值 11 7)获取控件值 12 8)动态绑定下拉值 12 9)Sql语句调用 13 10)存储过程调用 14 11)通过以下固定控件获取当前流程表单值 14 12)从表控制 14 13)Sql语句获取图片和地址位置信息 17 14)office控件 17 15)百度编辑控件 17 4、手机客户端常用的调试方式 18 5、注意事项 18 制作人: 制作日期:2016-12 版本号:2.0 版权所有:北京金和软件股份有限公司[2015] 1、非系统流程XML配置文件及JS文件的生成 生成方式:系统设置->表单设计。将自定义的表单设计好之后,点击保存按钮,那么系统就会生成手机客户端所需要的XML文件和JS文件。文件名称:表单ID.xml和表单ID.js。 生成路径: Xml:Jinher\C6\Jhsoft.Web.Module\ModuleSetting\Setting Js:Jinher\C6\Jhsoft.Web.Module\ModuleSetting\Js Xml:Jinher\C6\Jhsoft.Web.Module\ModuleSetting\Setting\ common\ all.xml(viewModel:试图模型。两种模式:view-查看模式,edit-编辑模式。当在编辑模式的情况下,手机支持流程的发起。) 2、介绍XML配置文件使用及功能 在root节点下,包含ModuleName,ModuleID,ModuleType,IsLock,ViewModel,Tables,IEndFlow节点。如图: 1)ModuleName:流程名称 2)ModuleID:流程类型唯一标识ID 3)ModuleType:流程类型。分别有:system、form 2种类型。 4)ViewModel:判断流程是否保存数据。View:不保存数据;edit:保存。 5)Tables:流程中的数据表单内容。 Tables节点下,包含MainTable和SubTables两个节点,分别表示主表表单和从表表单。 MainTable节点下,包含KeyID,SaveTable,IGetData,ISaveData,IUpdateData,CtrlList节点。如图: 制作人: 制作日期:2016-12 版本号:2.0 版权所有:北京金和软件股份有限公司[2015] KeyID:数据表主键。 SaveTable:目标数据表。 IGetData:获取业务数据表的结果集。支持sql语句和存储过程两种方式。 ISaveData:保存业务数据表的操作。该节点下包含Paras和Command节点。 Paras:保存业务数据时,需要传递的参数和对应的字段名称,datafield中的值表示的是字段名称,@符号的内容表示对应的参数名称。 Command:保存时的操作。支持存储过程和sql语句两种。在存储过程中的参数信息,必须要跟Paras中的参数名称保持一致。在sql语句中,insert into (字段名称,……) values(‘参数名称’,……),所有的参数建议用单引号扩起来处理,这样处理出错率会大大降低。另外,需要注意,系统表单(ModuleType为system)存储过程或sql执行后,需要返回业务编号。 IUpdateData:更新业务数据操作。该节点下包含Paras和Command节点。功能类似于ISaveData操作,区别在于Command中的执行命令语句的差别,ISaveData做新增(Insert)操作,而IUpdateData做更新(Update)操作,参数可以保持一致。 CtrlList:手机中需要展示的表单内容。由多个Ctrl节点组成。如图: 制作人: 制作日期:2016-12 版本号:2.0 版权所有:北京金和软件股份有限公司[2015] 上述截图中只是一部分Ctrl,根据不同的表单,展现不同的内容。 每个Ctrl节点中,包含datafield、ctrltitle、ctrlid、ctrltype、isshow、datatype、isbind、defaultvalue、validate、width、height公共属性和func、datasource、selnodes[ctrltype=combobox|radio]单独属性。 datafield:字段名称。必须要与数据表中存在的字段名称保持一致。 ctrltitle:控件标题。 ctrlid:控件ID。表单中要求唯一,不能重复。 ctrltype:控件类型。支持:text、textarea、combobox、radio、checkbox、button、gps、photograph、voice、ueditor控件类型。 isshow:是否显示。1-显示,0-不显示。 datatype:数据类型。支持:varchar,datetime,int,decimal等数据类型。如果是非datetime类型,建议使用varchar,降低出错率。 isbind:是否进行数据绑定。1-绑定数据,0-表示不绑定数据。建议都用1来处理。 defaultvalue:控件默认值。系统自带的默认值有: {UserCode} 用户编号;{UserName} 用户名称;{DeptID} 部门编号;{DeptName} 部门名称;{StationID} 岗位编号;{Station} 岗位名称;{PositionID} 职务编号;{Position} 职务名称;{DateTime} 当前时间,返回时间格式yyyy-MM-dd HH:mm:ss。 注意:使用时一定要带上英文状态下的{}。 validate:输入内容进行验证,多个验证项之间用英文状态下的逗号分隔(“,”)。常用验证有:notnull 必填项;int 整数;varchar(50) 最多输入50个字符。 width:宽度(主表中无效)。 height:高度(主表中无效)。 func:控件事件。控件类型为combobox,响应事件为onchange;控件类型为text,响应事件为onclick,即文本框的点击事件。用来处理一下业务逻辑或者表单内容的展现效果。 制作人: 制作日期:2016-12 版本号:2.0 版权所有:北京金和软件股份有限公司[2015] datasource:动态数据源。适用控件类型combobox,radio。可以通过sql语句来动态进行控件的业务数据绑定。返回的记录集第一列为隐藏的值,第二列为显示文本。如图: selnodes:静态数据源。适用控件类型combobox,radio。如果没有动态数据源的情况下,可以添加静态数据源,进行下拉框或单选框的内容显示。格式:value:text;………,多组value:text,用分号进行分割的一串内容,text表示显示的文本,value表示隐藏的值。如图: SubTables:从表的集合。由多个SubTable节点组成,每个节点都是一个从表内容。 SubTable节点下,同样包含KeyID,SaveTable,IGetData,ISaveData,IUpdateData,CtrlList节点。如图: 其中的节点描述和操作均与MainTable中相同。 不同点: 1) SubTable中的id和cols属性。Id属性表示字表的ID,表单内容中唯一的且不能重复的ID;cols属性表示字表中需要显示的字段内容,如果没有该属性,那么默认为CtrlList中Ctrl的节点个数,如果该属性中有值,那么从表只显示CtrlList中Ctrl的前多少个,剩下的都会被隐藏。 2) 从表的ctrltype目前只支持combobox、text、textarea三种控件。 6)IEndFlow:流程结束的后执行的操作,支持存储过程和sql语句两种处理方式。 制作人: 制作日期:2016-12 版本号:2.0 版权所有:北京金和软件股份有限公司[2015] 3、简单常用的JS使用(且支持jquery语法) 1)函数的组成和基本用法 A) 函数的组成,如果下面内容提到了[方法]一词,那么其实是和函数等同,只是换了一种称法,如图: 由function开头,然后写一个函数名称(参数),最后由{}扩起来,这样就组成了一个函数,名称后面的参数如果没有那么可以不写,函数名称()。 B) 基本用法:如果函数体中有return关键字,那么表示该函数有返回值,没有该关键字表示没有返回值。有返回值的函数需要定义变量进行接收,如:var strName = GetName();没有返回值的函数直接调用就可以了。 2)Js脚本中的注释方式 a) 单行注释:使用 //需要注释的内容 b) 多行注释:使用 /*需要注释的内容*/ 3)给控件注册事件 表单页面中常用几种事件:onclick,onchange,onfocus,onblur,onkeypress等等。 A) onlick:鼠标点击事件,触发鼠标左键点击时调用的内容。 B) onchange:对象内容发生改变事件。如:下拉框改变选项时会触发该事件内容[联动效果],或者文本框内容发生变化后同样也会触发该事件内容。 C) onfocus:对象获得焦点事件。事件触发在onclick之前。 D) onblur:对象失去焦点事件。事件触发在onchange之前。 E) onkeypress:键盘按键事件。即当按下键盘中的一个按键后触发。 事件注册。如图: 制作人: 制作日期:2016-12 版本号:2.0 版权所有:北京金和软件股份有限公司[2015] 通过获取对象document.getElementById(控件ID)后,给控件注册相应的事件。 如果window. addEventListener:如果当前页面中支持这种模式,注册事件会调用[对象.addEventListener(事件类型,事件函数名称,false)] 如果不支持window. addEventListener模式,那么注册事件会调用[txtSummney.attachEvent(事件类型,事件函数名称)] 4)设置控件的编辑状态 控件的编辑状态分为两种,编辑状态和只读状态。 编辑状态:disable属性是false 只读状态:disable属性是true 如下: 制作人: 制作日期:2016-12 版本号:2.0 版权所有:北京金和软件股份有限公司[2015] //下拉只读 document.getElementById("combobox1").setAttribute("disabled", true); //去掉下拉必填* $('#combobox1').parent().parent().find('i').removeClass('must'); $('#combobox1').parent().parent().find('i').text(''); //多选只读 $('#checkbox2').parent().removeAttr("onclick"); $('#checkbox2').parent().unbind("click"); //单选只读 $('#' + 'radio2').find('.radio').removeAttr("onclick"); $('#' + 'radio2').find('.radio').unbind("click"); //去掉单选必填* $('#' + 'radio2').parent().find('i').removeClass('must'); $('#' + 'radio2').parent().find('i').text(''); //文本输入(input)只读 document.getElementById("text3").setAttribute("disabled", true); //去掉文本输入(input)必填* $('#text3').parent().find('i').removeClass('must'); $('#text3').parent().find('i').text(''); //多文本输入(textarea)只读 document.getElementById("textarea1").setAttribute("disabled", true); //去掉文本输入(input)必填* $('#textarea1').parent().find('i').removeClass('must'); $('#textarea1').parent().find('i').text(''); 5)设置控件的显示状态 如下: c) 基本元素的隐藏、显示 //下拉隐藏 $("#combobox1").parent().parent().parent().removeClass("hide").addClass("hide"); $("#combobox1").parent().parent().parent().removeClass("hide"); //多选隐藏 $("#checkbox2").parent().parent().parent().removeClass("hide").addClass("hide"); $("#checkbox2").parent().parent().parent().removeClass("hide"); //单选隐藏 $("#radio2").parent().parent().removeClass("hide").addClass("hide"); 制作人: 制作日期:2016-12 版本号:2.0 版权所有:北京金和软件股份有限公司[2015] $("#radio2").parent().parent().removeClass("hide"); //文本输入(input)隐藏 $("#text3").parent().parent().removeClass("hide").addClass("hide"); $("#text3").parent().parent().removeClass("hide"); //多文本输入(textarea)隐藏 $("#textarea1").parent().parent().removeClass("hide").addClass("hide"); $("#textarea1").parent().parent().removeClass("hide"); //按钮(button)隐藏 $("#button5").parent().parent().removeClass("hide").addClass("hide"); $("#button5").parent().parent().removeClass("hide"); d) 固定元素的隐藏、显示 //主表添加页隐藏 $("#MainContent").removeClass("hide").addClass("hide"); //主表添加页显示 $("#MainContent").removeClass("hide"); //从表列表隐藏 $("#grid1").removeClass("hide").addClass("hide"); //从表列表显示 $("#grid1").removeClass("hide"); //从表对应添加页隐藏 $("#InputCtrl").removeClass("hide").addClass("hide"); $('#InputCtrl').find('.table-view').children('div').removeClass('hide').addClass('hide'); //从表对应添加页显示 $("#MainContent").removeClass("hide").addClass("hide"); $('nav').removeClass('hide').addClass('hide'); $('#InputCtrl').find('.table-view').children('div').removeClass('hide').addClass('hide'); $('#InputCtrl').find('.table-view').children('#InputCtrlDiv'+'grid1').removeClass('hide'); $('#InputCtrl').removeClass('hide'); //拍照按钮隐藏 $(".fa-camera").removeClass("hide").addClass("hide"); 制作人: 制作日期:2016-12 版本号:2.0 版权所有:北京金和软件股份有限公司[2015] //拍照按钮显示 $(".fa-camera").removeClass("hide"); //判断图片上传为空 if(!$('.fa-camera').hasClass('hide') && $('.upload-pic img').length <= 0){ alert("请上传图片"); return false; } //拍照按钮只读 $('.fa-camera').attr("disabled",true); //图片显示区隐藏 $(".upload-pic").removeClass("hide").addClass("hide"); //图片显示区显示 $(".upload-pic").removeClass("hide"); //语音按钮隐藏 $(".fa-microphone").removeClass("hide").addClass("hide"); //语音按钮显示 $(".fa-microphone").removeClass("hide"); //判断音频上传为空 if(!$('.fa-microphone').hasClass('hide') && $('#divhtqVoice .upload-file').length <= 0){ alert("请上传音频"); return false; } //语音按钮只读 $('.fa-microphone').attr("disabled",true); //语音列表区隐藏 $("#divhtqVoice").removeClass("hide").addClass("hide"); //语音列表区显示 $("#divhtqVoice").removeClass("hide"); //地理位置隐藏 $(".sign-date").removeClass("hide").addClass("hide"); //地理位置显示 $(".sign-date").removeClass("hide"); //点击获取定位信息 隐藏 $('.sign-date').find('span').eq(2).removeClass("hide").addClass("hide"); //点击获取定位信息 显示 $('.sign-date').find('span').eq(2).removeClass("hide"); //判断定位信息为空 if(!$('.sign-date').hasClass('hide') && $('.sign-date').find('span').eq(1).text().trim()==""){ alert("请重新获取定位信息"); 制作人: 制作日期:2016-12 版本号:2.0 版权所有:北京金和软件股份有限公司[2015] return false; } //获取定位信息功能(1、点击获取定位信息;2、点击当前定位信息再次获取) 只读 $('.sign-date').find('.content').attr("disabled",true); 6)给控件赋值 e) 文本框进行赋值 document.getElementById(控件ID).value=值 f) 下拉框赋值 //下拉默认选中 obj:下拉框对象;strValue:值 //示例:ComboSelected(document.getElementById("combobox1"),"1001"); function ComboSelected(obj, strValue) { for (var i = 0; i < obj.options.length; i++) { if (obj.options[i].value == strValue) { obj.options[i].selected = true; } } } g) 单选赋值 //为radio赋值 //示例:RadioSelected(document.getElementsByName("radio2"),"22"); function RadioSelected(obj,strValue){ for (var i = 0; i < obj.length; i++) { if($(obj[i]).parent().find('span').eq(1).text()==strValue) { obj[i].value="true"; } } } h) 多选赋值 //为Checkbox赋值 //示例:CheckSelected(document.getElementById("checkbox2"),"是"); function CheckSelected(obj,strValue){ if(strValue== "是"){ obj.value="true"; } else{ obj.value="false"; } } 制作人: 制作日期:2016-12 版本号:2.0 版权所有:北京金和软件股份有限公司[2015] 7)获取控件值 i) 获取文本框或者下拉框的值 var strName = document.getElementById(“txtName”).value j) 获取单选值 //获取radio选中值 //示例:getRadio(document.getElementsByName("radio2"),document.getElementById("text4"),document.getElementById("text5")); function getRadio(obj,objName,objValue){ for (var i = 0; i < obj.length; i++) { if (obj[i].value=="true") { //radio名称 objName.value=$(obj[i]).parent().find('text').text(); //radio值 objValue.value=$(obj[i]).parent().find('span').eq(1).text(); } } } k) 获取多选值 //获取Checkbox值 //示例:getCheck(document.getElementById("checkbox2")); function getCheck(obj){ var strReturnValue=""; if (obj.value=="true") { strReturnValue="是"; } return strReturnValue; } 8)动态绑定下拉值 //动态绑定下拉(绑定职务) function BindPosition() { var _strSql = " select PosiID,PosiName from Positions where DelFlag=0"; var strArray = SqlToArrayList(_strSql); var ddl = document.getElementById("combobox1"); if (strArray.length > 0) { for (var i = 0; i < strArray.length; i++) { 制作人: 制作日期:2016-12 版本号:2.0 版权所有:北京金和软件股份有限公司[2015] ddl.options.add(new Option(strArray[i].PosiName, strArray[i].PosiID)); } } } function SqlToArrayList(strSql) { var ret = SelectSql(strSql); var _strArray = eval(ret); return _strArray; } 9)Sql语句调用 //sql语句调用(增) function sqladd(){ var strsql = "INSERT INTO Station(StaID,StaName,StaDesc,StaIsdriver,StaType,DelFlag)VALUES('1025','开发工程师三','',0,0,0)" ; SelectSql(strsql); } //sql语句调用(改) function sqlupdate(){ var strsql = "update Station set StaName='开发工程师三1' where StaID='1025'"; SelectSql(strsql); } //sql语句调用(删) function sqldelete(){ var strsql = "delete from Station where StaID='1025'"; SelectSql(strsql); } //sql语句调用(查) function sqlselect(){ var strStaID=""; var strStaName=""; var sql1 = "select StaID,StaName from Station where StaID='1025'"; var ret =SelectSql(sql1); var dp = eval(ret); //通过查询语句分别获得的字段值 strStaID=dp[0].StaID; strStaName=dp[0].StaName; alert(strStaID); alert(strStaName); } 制作人: 制作日期:2016-12 版本号:2.0 版权所有:北京金和软件股份有限公司[2015] 10)存储过程调用 //sql存储过程调用(获取用户权限部门) function GetQXBM(usercode) { var retDepts = ""; var sql = "exec pt_Role2SearchUserRoleDepts '" + usercode + "','IHRM_Station'"; var ret = SelectSql(sql); var dp = eval(ret); if (dp.length > 0) { for (var i = 0; i < dp.length; i++) { retDepts += ""; } } return retDepts + ""; } 11)通过以下固定控件获取当前流程表单值 //获取当前用户ID document.getElementById("hdCurUser").value; //获取当前部门ID document.getElementById("hdCurDept").value; //获取服务器当前时间 document.getElementById("hdCurDate").value; //判断流程的发起状态 0 表示发起 1 表示审批中(针对流程) document.getElementById("hdAppFlag").value; //流程ID(针对流程) document.getElementById("hdAppID").value; //系统业务表主键(针对非自定义表单流程) document.getElementById("hdAppOID").value; //表单业务表主键(针对自定义表单流程) document.getElementById("hdAppOValues").value; //获取点击流程按钮 store.get("WF_AppBtn") 12)从表控制 l) 从表数据增加。需要在MainTable>CtrlList节点中增加控件类型为按钮、且func 制作人: 制作日期:2016-12 版本号:2.0 版权所有:北京金和软件股份有限公司[2015] =”子表id.Append()”的节点。如下节点: m) 从表不需要再额外增加编辑、删除事件。如果需要对行增加其他事件,可以在SubTable节点中增加键值func="trClick()"。如下图: n) 从表列表只读, gridid标识从表ID。 function RecordReadOnly(gridid){ $('#'+gridid).find('TBODY').find('tr').each(function() { $(this).unbind("click"); }); } //判断从表列表记录是否为空 gridid,表示从表ID function RecordIsEmpty(gridid) { if($('#'+gridid).find('TBODY').html().trim() == ""){ alert("从表数据必填!"); } } //从表列表字段隐藏,其中,gridid,表示从表ID;fieldname,表示从表字段名称; 示例:RecordFieldHide("grid1","dz") function RecordFieldHide(gridid,fieldname){ $('#' + gridid).find('thead').find('tr').find('th').each(function (index) { if($(this).attr('name')==fieldname){ $(this).removeClass('hide').addClass('hide'); } }) $('#' + gridid).find('TBODY').find('tr').find('td').each(function (index) { if($(this).attr('name')==fieldname){ $(this).removeClass('hide').addClass('hide'); } }) } //从表列表字段显示,其中,gridid,表示从表ID;fieldname,表示从表字段名称; 示例:RecordFieldShow("grid1","dz") function RecordFieldShow(gridid,fieldname){ $('#' + gridid).find('thead').find('tr').find('th').each(function (index) { if($(this).attr('name')==fieldname){ $(this).removeClass('hide'); 制作人: 制作日期:2016-12 版本号:2.0 版权所有:北京金和软件股份有限公司[2015] } }) $('#' + gridid).find('TBODY').find('tr').find('td').each(function (index) { if($(this).attr('name')==fieldname){ $(this).removeClass('hide'); } }) } //获取从表列表字段值,其中,gridid,表示从表ID;fieldname,表示从表字段名称;index=0,表示此从表第1行; // index=1,表示此从表第2行;示例:getRecordFieldValue("grid1","dz",1) function getRecordFieldValue(gridid,fieldname,index){ $('#' + gridid).find('TBODY').find('tr').eq(index).find('td').each(function () { if($(this).attr('name')==fieldname){ if ($('#txt_sub_' + gridid + '_' + fieldname).attr("name") == "combobox") { //获取从表下拉字段text alert($(this).find('span').eq(0).text()); //获取从表下拉字段value alert($(this).find('span').eq(1).text()); } else{ alert($(this).text()); } } }) } //设置从表列表字段值,其中,gridid,表示从表ID;fieldname,表示从表字段名称;index=0,表示此从表第1行; // index=1,表示此从表第2行;value,表示赋值内容;示例:setRecordFieldValue("grid1","dz",1,"金和软件") function setRecordFieldValue(gridid,fieldname,index,value){ $('#' + gridid).find('TBODY').find('tr').eq(index).find('td').each(function () { if($(this).attr('name')==fieldname){ if ($('#txt_sub_' + gridid + '_' + fieldname).attr("name") == "combobox") { //设置从表下拉字段text $(this).find('span').eq(0).text(value); //设置从表下拉字段value 制作人: 制作日期:2016-12 版本号:2.0 版权所有:北京金和软件股份有限公司[2015] $(this).find('span').eq(1).text(value); } else{ $(this).text(value); } } }) } 13)Sql语句获取图片和地址位置信息 o) 获取图片:  select filename,extend,controlID,attachid,filepos From FC_ATTACH where djsn = '表单SN ' and djbh = '表单主键'; 将获取到的filevalue(此值为图片地址),赋值给img的属性src即 p) 获取地理位置:  select filevalue from OaPlus_Files where filetype='position' and fileModelType='表单SN' and fileModelId='表单主键'; 将获取到的filevalue赋值给显示地理位置的控件即可 14)office控件 Office 控件在手机端呈现按钮,通过按钮点击,使用wps打开对应的文档。 如需要查看office文档,需要在节点MainTable> CtrlList中增加一个控件类型为按钮、且func="openOffice(1)"的节点。如果是系统流程,需要设置对应的datafield来指定文件位置。以录用申请为例: 属性说明: ctrlid="__Content" 控件编号。根据控件编号判断当前为正文文件名字段。 datafield 加载对应字段名称。 moduleid 指定正文保存时对应的文件夹名。 func="openOffice(0)" 点击按钮调用的事件。参数0:编辑; 1:查看 15)百度编辑控件 百度编辑器控件需要在节点MainTable> CtrlList 中增加控件类型为ueditor的节点。如下: 制作人: 制作日期:2016-12 版本号:2.0 版权所有:北京金和软件股份有限公司[2015] 属性说明: fieldattr:0:编辑 1:只读 datafield:对应字段。如果是表单中的html控件,不需要进行指定字段。信息发布模块需要指定该字段,目前信息发布不支持百度控件内容保存,只能进行查看。 4、手机客户端常用的调试方式 在手机上调试方法。在相应的脚本中进行alert调试,如:将alert(1)放置对应函数体中,通过代码顺序进行逐行alert调试,直到不弹出alert。 5、注意事项 1、 通过表单自动生成的js中,有如下方法。 a) FormPreLoad():表示页面加载时需要执行的方法,通过这个方法可以给对应的控件进行赋值,设置状态等。由于自动生成的时候,函数中并没有内容,所以该内容需要进行独自编写。 b) checkFormData():表示流程按钮提交前事件,函数中并没有内容,所以该内容需要进行独自编写,该函数中可以通过store.get("WF_AppBtn")获取流程按钮类型。 c) subcheckFormData(gridid):表示从表添加页保存按钮提交前事件,函数中并没有内容,所以该内容需要进行独自编写。 d) AfterSubTSubmit(tableid,flag):从表保存按钮提交后事件。参数 tableid:从表id,参数flag默认值为0。 e) GetDataFromBusiness(btntype, appid, appoid, isnewflag):流程提交前获取分支条件字符串,返回格式:LType:H;llimit:1; btntype:流程按钮类型;appid:流程编号;appoid:业务编号;isnewflag:默认值为0。 f) afterComplete(btntype, appid, appoid, isnewflag):手机端流程提交后执行事件(目前只支持转下一步)。btntype:流程按钮类型;appid:流程编号;appoid:业务编号;isnewflag:默认值为0。 2、 从表命名规律:在js中获取从表对象时的ID名称。 a) 从表中字段对象的ID均以“txt_sub_从表ID_字段名称(字段名称小写)”命名; 3、 手机客户端js生成规律 目前新建的表单后,自动生成的js中只提供4个方法FormPreLoad, checkFormData,AfterApproveSubmit,subcheckFormData(gridid)那么很多js都需要进行编写。 那么现在提供一种减少js编程工作量的方法,就是将通用性的js脚本代码放在Jhsoft.Web.module\ModuleSetting\js\common\templateform.js 制作人: 制作日期:2016-12 版本号:2.0 版权所有:北京金和软件股份有限公司[2015] 文件中,那么重新保存表单之后,通用性的脚本就自动生成了。 4、 为避免js函数同名造成的冲突,建议在手机客户端js中的脚本函数编写规则:“Form_”+自定义函数名称,示例: function Form_add(){ } 5、 生成的js需要是utf-8的格式。用记事本打开对应生成的js,选择utf-8的编码方式进行“另存为”。如下图: 6、信息发布流程XML配置文件及JS文件的创建步骤 1、 根据sql脚本在数据库中获取信息发布新建模块的模块编号。 select * from MessageModuleType where ModuleTypeName='财经新闻' and DelFlag=0 ModuleTypeID为模块编号;需要参数ModuleTypeName 为模块名称(见下图)。 制作人: 制作日期:2016-12 版本号:2.0 版权所有:北京金和软件股份有限公司[2015] 2、 创建信息发布新建模块的xml配置文件和js文件。 环境中已存在信息发布流程的配置文件和js文件模板,路径分别是Jinher\C6\Jhsoft.Web.Module\ModuleSetting\Setting\ioa_message1000.xml和Jinher\C6\Jhsoft.Web.Module\ModuleSetting\js\ioa_message1000.js。分别将xml配置文件和js文件进行复制、粘贴,文件名称分别进行重命名,命名规则为ioa_message+模块编号+.+文件后缀名。Xml配置文件为例:通过步骤1获取模块id为2007,则文件名为 ioa_message2007.xml。 3、 修改xml配置文件。 打开新增模块的xml配置文件,将文件中模块类型编号1000替换为新增模块的模块编号。 制作人: 制作日期:2016-12 版本号:2.0 版权所有:北京金和软件股份有限公司[2015]

下载文档到电脑,查找使用更方便

文档的实际排版效果,会与网站的显示效果略有不同!!

需要 10 金币 [ 分享文档获得金币 ] 0 人已下载

下载文档