资源描述
动态表格使用说明书
一. 动态表格基础介绍:
在动态表格中, 基础是经过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). COMBOBOX………………..下拉列表框
(4). POPWINDOW……………….弹出Windows窗口
(5). DATE………………………...日期格式
(6). N………………………………数字格式
(7). R ..…………………………….文本格式, 但不能够编辑(不带值)
(8). P1……………………………. 文本格式, 但不能够编辑(带值)
(9). HJ…………………………….隐藏栏位
2. RADIO…单选按钮配置
以“职员转正自我考评表”为例, XMLTitle栏位第二参数为: “TEXT,RADIO,TEXT,”而与其相对应第五参数“,优|良|中|差|,,”中红色部分是单选按钮内容。
单选按钮内容之间以“|”间隔。显示样式如图(2)所表示:
图(2)
3. COMBOBOX…下拉列表框配置
以“岗位/薪资异动申请单”为例, XMLTitle栏位第二参数为: “COMBOBOX, 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=item
DialogBox(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,a2
a1=0
a2=0
a3=0
Temp_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栏位
}
}
展开阅读全文