动态表格制作说明书

  • 格式:doc
  • 大小:233.50 KB
  • 文档页数:6

动态表格使用说明书一.动态表格基本介绍:在动态表格中,基本是通过XMLTitle 、XMLContents 、TOT_ID 、SHOWJS四个栏位来实现的。

其中1. XMLTitle栏位:XMLTitle栏位中放的是动态表格的表标题、表格栏位的样式、栏位的宽度、栏位内容的检测以及一些动作按钮。

例如:“员工转正自我考核表”中,XMLTitle栏位的内容为:"工作内容(按重要性顺序排列),绩效,绩效评为中差的原因分析,^TEXT,RADIO,TEXT,^250,200,200,^y,y,n^,优|良|中|差|,,^不能为空请检查|必须是日期型数据|必须是数字型数据|输入了非法字符|^新增&y|删除&y|修改&y|插入&y|确定&y|取消&y|选择"以“^”为界限,XMLTitle栏位的内容可以分为如下几个参数:第一参数:表格标题,如:“工作内容(按重要性顺序排列),绩效,绩效评为中差的原因分析”。

第二参数:栏位类型,类型的详细说明见后面。

如:“TEXT,RADIO,TEXT”第三参数:表格栏位宽度。

如:“250,200,200,”第四个参数:是否为空检测。

当为“y”时检测,“n”时不检测。

如:“y,y,n”第五个参数:辅助参数,根据第二个参数不同有不同的用法,详见类型使用说明第六个参数:提示说明(可以不考虑)。

如:“不能为空请检查|必须是日期型数据|必须是数字型数据|输入了非法字符”是对内容进行检测后的提示说明。

第七个参数:按钮上的文字定义(可以不考虑)。

如:“新增&y|删除&y|修改&y|插入&y|确定&y|取消&y|选择”是一些相关按钮上的文字定义。

2. XMLContents栏位:XMLContents栏位是对动态表格的内容进行传值的!当表单提交后,自动将动态表格的内容付给XMLContents,例如将下面动态表格的值传给XMLContents栏位,图(4)XMLContents栏位的内容为:“旺旺三期表单的测试~中~不合格~^动态表格的制作~优~~^”,其中列与列之间的用“~”间隔;行与行之间用“^”间隔;流程走到第二站,在只读状况下动态表格显示为:图(5)3. TOT_ID栏位:TOT_ID栏位是调用XMLTitle栏位的内容!其公式为:"[<DIV ID='HTMLTitle'></DIV>]"4. SHOWJS栏位:SHOWJS栏位控制动态表格的样式以及显示;在第一站,当要对动态表格进行编辑时,内容为:"[<script>"+"var TitleValue=document.all('XMLTitle').value;"+"var XC='XMLContents';"+"var Hid='HTMLTitle';"+"var Radioname='F';"+"var sort=true; "+ "var table_width=750;"+ "var NoChinese='No';"+"SetHTMLTitle('NULL',Hid,TitleValue,XC,Radioname,sort,table_width,NoChinese); "+" </script>]"当SetHTMLTitle函数的第一个参数为'NULL'时,动态表格为编辑状态,当第一个参数为‘READ’时为编辑状态;’Hid,TitleValue’是调用'HTMLTitle'栏位当中的值;‘XC’是调用'XMLContents'栏位的值;table_width 是动态表格的宽度; NoChinese是判断是否显示序号。

而SetHTMLTitle函数的函数体在“共用资源”—>档案—>AutoTable.js中。

二.动态表格栏位类型的详细说明1. 动态表格栏位的格式有:(第二参数)(1). TEXT…………………….. …文本格式(2). RADIO……………………….单选按钮(3). .BOBOX………………..下拉列表框(4). POPWINDOW……………….弹出Windows窗口(5). DATE………………………...日期格式(6). N………………………………数字格式(7). R ..…………………………….文本格式,但不可以编辑(不带值)(8). P1……………………………. 文本格式,但不可以编辑(带值)(9). HJ…………………………….隐藏栏位2. RADIO…单选按钮的配置以“员工转正自我考核表”为例,XMLTitle栏位的第二参数为:“TEXT,RADIO,TEXT,”而与其相对应的第五参数“,优|良|中|差|,,”中的红色部分是单选按钮的内容。

单选按钮内容之间以“|”间隔。

显示样式如图(2)所示:图(2)3..BOBOX…下拉列表框的配置以“岗位/薪资异动申请单”为例,XMLTitle栏位的第二参数为:“.BOBOX,POPWINDOW,”而与其相对应的第五参数“签呈|试用期满通知单|员工转正自我考核表|试用/合同期满考核表|员工岗位异动考核表|其它|,,”中的红色部分是下拉列表框的内容。

下拉列表框内容之间以“|”间隔。

显示样式如图(3)所示:图(3)4. POPWINDOW…弹出窗口的配置以“岗位/薪资异动申请单”为例,XMLTitle栏位的第二参数为:“,POPWINDOW ,”而与其相对应的第五参数为空。

只需在JS表头里添加一段OpenPopWindow函数,其内容为:function OpenPopWindow(item,Dis_XMLContents_name,ind){DialogBoxName = "SelectForms"ExchangeFields =""screenh='550'screenw='525'field_jSRadioname=itemDialogBox(DialogBoxName,ExchangeFields, screenh, screenw,false);}其中SelectForms为弹出表单的名称,ExchangeFields为返回的值,screenh、screenw为弹出表单的长度跟宽度。

显示样式如图(3)所示.5. DATE…日期型的配置以“携眷/携眷变更/取消携眷申请表”为例,其第四标题的内容为日期格式,则XMLTitle 栏位的第二参数为:“, , ,DATEBR,”, 而与其相对应的第五参数为空:“,,,,”。

只需在子表单中添加一个DATEBR栏位,另外在DATEBR栏位的onFocus属性里添加一下一段JavaScript代码:“document.all("edtJavaScript_F")[3].value=this.value;”。

其显示样式如图(4)所示:图(4)点击按钮弹出如下窗口:6. DATE…多日期型的配置若动态表格的第三、第四列都是日期型的,则XMLTitle栏位的第二参数为:“, , DATEBR,DATEBR1,”, 而与其相对应的第五参数为空:“,,,,”。

只需在子表单中添加DATEBR和DATEBR1两个栏位。

而DATEBR栏位的onFocus属性内容为“document.all("edtJavaScript_F")[2].value=this.value;”。

DATEBR1栏位的onFocus属性内容为“document.all("edtJavaScript_F")[3].value=this.value;”。

7. 栏位的检测(1)防空的检测:若 XMLTitle栏位第二参数内的值为TEXT格式,且相对应的第四参数为“y”的情况下,如果栏位值为空,则在表单提交时会自动提示“不能为空请检查”(第六参数的第一个值)。

(2)其它错误的检测若 XMLTitle栏位第二参数内的值为DATE格式,且相对应的第四参数为“y”的情况下,如果栏位的值不是正确的日期类型,则在表单提交时会自动提示“必须是日期型数据”(第六参数的第二个值)。

若 XMLTitle栏位第二参数内的值为N(数字)格式,且相对应的第四参数为“y”的情况下,如果栏位的值不是正确的数字类型,则在表单提交时会自动提示“必须是数字型数据”(第六参数的第三个值)。

8.动态表格的计算以“员工绩效考核表”为例,如图所示:项目a1的工作权重乘以考核得分加上a2的工作权重乘以考核得分再加上……….,然后把结果统计在动态表格下面的栏位里。

对于上面的计算则要进行一下设置:(1)将XMLTitle栏位第二参数的第二列和第三列置为“N”,如:“TEXT,N,N,TEXT,”。

(2)在JS表头里添加下面两段函数:function henxiang_calcu(item,Dis_XMLContents_name) ///对“工作权重、考核得分”内容的检测{ if (Dis_XMLContents_name=="XMLContents"){ if ((parseFloat(item[1].value)>100) | (parseFloat(item[1].value)<0)) ///判断值是否在0-100之间{ msgBox("工作权重请输入0-100之间的数字",1)return false}if ((parseFloat(item[2].value)>100) | (parseFloat(item[2].value)<0)) ///判断值是否在0-100之间{ msgBox("考核得分请输入0-100之间的数字",1)return false}}}function zhongxiang_calcu(Dis_XMLContents_name) ///对动态表格进行统计{if (Dis_XMLContents_name=="XMLContents") ///判断当前输入的值与XMLContents是否相等{var Temp_v=document.all(Dis_XMLContents_name).value ///若相等则付给 Temp_v var a1,a2a1=0a2=0a3=0Temp_v=Temp_v.split("^") //////取出当前一行动态表格的值 for (var MM=0;MM<Temp_v.length-1;MM++){var Tempi=Temp_v[MM]Tempi=Tempi.split("~") ///取出每一个栏位的值付给Tempi for(var j=0;j<Tempi.length-1;j++){ temp_va=Tempi[j]if (!isNaN(temp_va)){if (j ==1) ///如果是在第二列,则将值付给a1{ a1=parseFloat(temp_va)}if (j ==2){a2= parseFloat(temp_va)*a1/100 ///将第三列的值乘以a1/100付给a2(统计一行的值)a3=a3+a2 ///对每一行的总和进行相加付给a3}}}}document.forms(0).SUMFRACTION.value=a3 ///将统计和付给SUMFRACTION栏位 }}。