|
管理员
  
|
1#
大 中
小 发表于 2007-10-11 17:45 只看该作者
多种自动下拉式菜单
脚本说明:
把如下代码加入<body>区域中
<style>
.BODY
{
FONT-SIZE: 9pt;
}
TABLE.datatable
{
CURSOR: default;
BORDER-COLLAPSE: collapse
}
TABLE.datatable THEAD
{
FONT-SIZE: 9pt;
BACKGROUND-COLOR: #e0e0e0;
TEXT-ALIGN: center
}
TABLE.datatable TBODY
{
FONT-SIZE: 9pt
}
TABLE.datatable TFOOT
{
FONT-SIZE: 9pt;
BACKGROUND-COLOR: #e0e0e0;
TEXT-ALIGN: center
}
TABLE.datatable TR.tr1
{
BACKGROUND-COLOR: white
}
TABLE.datatable TR.tr2
{
BACKGROUND-COLOR: whitesmoke
}
TABLE.datatable TR.active_tr
{
BACKGROUND-COLOR: #e0f0ff;
}
TABLE.datatable TR.current_tr
{
BACKGROUND-COLOR: #ffebcd;
}
TABLE.datatable TD.active_cell
{
BACKGROUND-COLOR: #ffffe0;
}
TABLE.dropdowntable
{
BORDER-RIGHT: gray 1px solid;
BORDER-TOP: gray 1px solid;
BORDER-LEFT: gray 1px solid;
CURSOR: default;
BORDER-BOTTOM: gray 1px solid;
BORDER-COLLAPSE: collapse
}
TABLE.dropdowntable THEAD
{
FONT-WEIGHT: bolder;
FONT-SIZE: 9pt;
BACKGROUND-COLOR: #d7ebeb;
TEXT-ALIGN: center
}
TABLE.dropdowntable TBODY
{
FONT-SIZE: 9pt
}
TABLE.dropdowntable TFOOT
{
FONT-SIZE: 9pt;
BACKGROUND-COLOR: #d7ebeb
}
TABLE.dropdowntable TR.tr1
{
BACKGROUND-COLOR: #f0f9ff
}
TABLE.dropdowntable TR.tr2
{
BACKGROUND-COLOR: #e0f0ff
}
TABLE.dropdowntable TR.active_tr
{
BACKGROUND-COLOR: #ffebcd
}
TABLE.dropdowntable TR.current_tr
{
BACKGROUND-COLOR: #ffebcd;
}
.editor
{
FONT-SIZE: 9pt;
BORDER-RIGHT: DarkGray 1px solid;
BORDER-TOP: DarkGray 1px solid;
SCROLLBAR-FACE-COLOR: window;
SCROLLBAR-HIGHLIGHT-COLOR: lightgrey;
BORDER-LEFT: DarkGray 1px solid;
SCROLLBAR-SHADOW-COLOR: gray;
SCROLLBAR-3DLIGHT-COLOR: window;
BORDER-BOTTOM: DarkGray 1px solid;
SCROLLBAR-DARKSHADOW-COLOR: window;
}
.active_editor
{
FONT-SIZE: 9pt;
BORDER-RIGHT: #333333 1px solid;
BORDER-TOP: #333333 1px solid;
SCROLLBAR-FACE-COLOR: #f0f9ff;
SCROLLBAR-HIGHLIGHT-COLOR: lightgrey;
BORDER-LEFT: #333333 1px solid;
SCROLLBAR-SHADOW-COLOR: gray;
SCROLLBAR-3DLIGHT-COLOR: #f0f9ff;
BORDER-BOTTOM: #333333 1px solid;
SCROLLBAR-DARKSHADOW-COLOR: #f0f9ff;
BACKGROUND-COLOR: #e0f0ff;
}
.dockeditor
{
FONT-SIZE: 9pt;
BORDER-RIGHT: #333333 1px solid;
BORDER-TOP: #333333 1px solid;
SCROLLBAR-FACE-COLOR: window;
SCROLLBAR-HIGHLIGHT-COLOR: lightgrey;
BORDER-LEFT: #333333 1px solid;
SCROLLBAR-SHADOW-COLOR: gray;
SCROLLBAR-3DLIGHT-COLOR: window;
BORDER-BOTTOM: #333333 1px solid;
SCROLLBAR-DARKSHADOW-COLOR: window
}
.button
{
BORDER-RIGHT: DarkGray 1px solid;
BORDER-TOP: DarkGray 1px solid;
FONT-SIZE: 9pt;
BORDER-LEFT: DarkGray 1px solid;
CURSOR: hand;
BORDER-BOTTOM: DarkGray 1px solid;
HEIGHT: 22px;
BACKGROUND-COLOR: #d4d0c8;
}
.button_down
{
BORDER-RIGHT: #dddddd 1px solid;
BORDER-TOP: #666666 1px solid;
FONT-SIZE: 9pt;
BORDER-LEFT: #666666 1px solid;
CURSOR: hand;
BORDER-BOTTOM: #dddddd 1px solid;
HEIGHT: 22px;
BACKGROUND-COLOR: #fff1da
}
TABLE.datapilot
{
CURSOR: default;
}
TABLE.datapilot BUTTON
{
CURSOR: hand;
HEIGHT: 20px
}
.editorholder
{
}
.datascrollbar
{
CURSOR: hand;
}
TABLE.tree
{
BORDER-RIGHT: silver 1px solid;
BORDER-TOP: silver 1px solid;
BORDER-LEFT: silver 1px solid;
CURSOR: default;
BORDER-BOTTOM: silver 1px solid;
BORDER-COLLAPSE: collapse
}
TABLE.tree TBODY
{
FONT-SIZE: 9pt
}
TABLE.tree TR.tr1
{
HEIGHT: 20px;
BACKGROUND-COLOR: white
}
TABLE.tree TR.tr2
{
HEIGHT: 20px;
BACKGROUND-COLOR: white
}
TABLE.tree TR.active_tr
{
HEIGHT: 20px;
BACKGROUND-COLOR: #ffebcd
}
TABLE.tree TR.rightclick_tr
{
HEIGHT: 20px;
BACKGROUND-COLOR: #e0f0ff
}
TABLE.tree BUTTON
{
BORDER-RIGHT: gray 1px solid;
BORDER-TOP: gray 1px solid;
MARGIN-BOTTOM: 2px;
BORDER-LEFT: gray 1px solid;
WIDTH: 11px;
CURSOR: hand;
MARGIN-RIGHT: 3px;
BORDER-BOTTOM: gray 1px solid;
HEIGHT: 15px
}
TABLE.tree IMG
{
MARGIN-RIGHT: 2px
}
.fieldlabel
{
font-size:9pt;
}
.datalabel
{
font-size:9pt;
}
.tabpage
{
border-bottom: gray 1px solid;
font-size:9pt;
cursor: default;
}
#CalendarTable
{
BORDER-COLLAPSE: collapse;
BORDER-RIGHT: gray 1px solid;
BORDER-TOP: gray 1px solid;
FONT-SIZE: 9pt;
BORDER-LEFT: gray 1px solid;
BORDER-BOTTOM: gray 1px solid;
CURSOR: default
}
#CalendarTable .calendar_title
{
BACKGROUND-COLOR: #e4e4e4;
}
#CalendarTable .calendar_footer
{
BACKGROUND-COLOR: #e4e4e4;
}
#CalendarTable .calendar_week
{
BACKGROUND-COLOR: #e4e4e4;
}
#CalendarTable .calendar_data
{
BACKGROUND-COLOR: #f0f9ff;
}
.title1
{
HEIGHT: 26;
FONT-WEIGHT: bold;
FONT-SIZE: 10pt;
COLOR: #2f2f2f;
MARGIN-BOTTOM: 4pt;
filter: progid  XImageTransform.Microsoft.Gradient(GradientType=1, StartColorStr=silver, EndColorStr=white)
}
.title2
{
HEIGHT: 20;
BACKGROUND-COLOR: #d4d0c8;
BORDER-RIGHT: 1px outset;
BORDER-TOP: 1px outset;
MARGIN-BOTTOM: 2px;
BORDER-LEFT: 1px outset;
BORDER-BOTTOM: 1px outset;
BORDER-COLLAPSE: collapse;
FONT-SIZE: 9pt
}
.footer1
{
BACKGROUND-COLOR: white;
MARGIN-BOTTOM: 2pt;
}
DIV
{
SCROLLBAR-FACE-COLOR: Gainsboro;
SCROLLBAR-HIGHLIGHT-COLOR: gray;
SCROLLBAR-SHADOW-COLOR: gray;
SCROLLBAR-3DLIGHT-COLOR: Gainsboro;
SCROLLBAR-DARKSHADOW-COLOR: Gainsboro;
SCROLLBAR-ARROW-COLOR: gray;
}
</style>
<script language="javascript">
<!--
//---- General Setting ----
var xForm_Library_path = "/xform/_xForm_Library/";
var showSubmitCommand = false;
var disableSystemContextMenu = false;
//---- String Table ----
var constErrType = "错误 类型";
var constErrDescription = "错误描述";
var constErrUnknown = "未知错误!";
var constErrDataType = "数据超长或类型不匹配!";
var constErrKeyViolence = "主键或外键约束错误!";
var constErrUnsupportBrowse = "由于您使用的不是 Microsoft Internet Explorer 5.0 或更高版本的浏览器,您将无法获得本页面正确的显示结果!\n本页面中使用的 xForm 技术推荐您使用 Microsoft Internet Explorer 5.5 或更高版本的浏览器,以获得最佳的运行效果。";
var constErrDownLoadFailed = " 下载数据失败!";
var constErrUpdateFailed = "保存数据失败!";
var constErrAddDataField = "您不能对已完成初始化的记录集添加字段!";
var constErrEmptyFieldName = "字段名不能为空!";
var constErrCantFindMasterField = "主表字段%s不存在!";
var constErrCantFindDetailField = "从表字段%s不存在!";
var constErrLoadPageOnDetailDataset = "已建立主从绑定的从表记录集不能执行分批下载!";
var constErrLoadPageAfterSort = "已进行客户端排序的记录集不能执行分批下载!";
var constErrFieldValueRequired = "字段[%s]的内容不能为空!";
var constErrKeyFieldRequired = "没有定义主键字段!";
var constErrUpdateFieldRequired = "没有可更新的字段!";
var constErrTypeInt = "您输入的值[%s]不是一个有效的整数!";
var constErrTypeNumber = "您输入的值[%s]不是一个有效的数字!";
var constErrTypeDate = "您输入的值[%s]不是一个有效的日期型值!";
var constErrTypeDateTime = "您输入的值[%s]不是一个有效的日期+时间型值!";
var constErrTypeTime = "您输入的值[%s]不是一个有效的时间型值!";
var constErrOutOfDropDownList = "您输入了无效的值!";
var constErrNoCurrentRecord = "由于记录集没有当前记录而无法修改字段值!";
var constDatasetConfirmCancel = "您确定要撤消对当前记录的修改吗?";
var constDatasetConfirmDelete = "您确定要删除当前记录吗?";
var constDatasetMoveFirst = "移动到第一条记录";
var constDatasetPrevPage = "向前翻页";
var constDatasetMovePrev = "移动到上一条记录";
var constDatasetMoveNext = "移动到下一条记录";
var constDatasetNextPage ="向后翻页";
var constDatasetMoveLast = "移动到最后一条记录";
var constDatasetInsertRecord = "插入一条新记录";
var constDatasetAppendRecord = "添加一条新记录";
var constDatasetDeleteRecord = "删除当前记录";
var constDatasetEditRecord = "修改当前记录";
var constDatasetCancelRecord = "撤销对当前记录的修改";
var constDatasetUpdateRecord = "确认对当前记录的修改";
var constBtnInsertRecord = "插入";
var constBtnAppendRecord = "添加";
var constBtnDeleteRecord = "删除";
var constBtnEditRecord = "修改";
var constBtnCancelRecord = "撤销";
var constBtnUpdateRecord = "确认";
var constJanuary = "一月";
var constFebrary = "二月";
var constMarch = "三月";
var constApril = "四月";
var constMay = "五月";
var constJune = "六月";
var constJuly = "七月";
var constAugust = "八月";
var constSeptember = "九月";
var constOctober= "十月";
var constNovember = "十一月";
var constDecember = "十二月";
var constMonday = "一";
var constTuesday = "二";
var constWednesday = "三";
var constThursday = "四";
var constFriday = "五";
var constSaturday = "六";
var constSunday = "日";
var constLastYear = "上一年";
var constNextYear = "下一年";
var constLastMonth = "上个月";
var constNextMonth = "下个月";
var constToday = "今天";
var constDownLoadingData = "正在下载数据...";
var constCancelSort = "不排序";
//-->
//-----------------------
// xForm v2.0
// Developer: bao yilei
// Nov, 2001
//-----------------------
var _rightclick_row=null;
function initTree(tree){
for (var i=1; i<=8; i++){
var tmpDataset=tree.getAttribute("dataset"+i);
if (typeof(tmpDataset)!="undefined") eval("tree.dataset"+i+"="+tmpDataset+";");
}
tree.repeatrow=tree.rows[0].cloneNode(true);
tree.deleteRow(0);
var nodes=new pArray();
nodes.level=1
nodes.tree=tree;
tree.nodes=nodes;
}
function getTreeNodeStyle(row){
if (row.rowIndex % 2)
return "tr1";
else
return "tr2";
}
function refreshTreeNodeColor(row){
var tree=getTableByRow(row);
var selectNode=tree.selectNode;
if (selectNode && selectNode.row==row){
row.className="active_tr";
}
else{
row.className=getTreeNodeStyle(row);
}
}
function refreshTreeColor(tree, startIndex){
var row;
var maxIndex=tree.rows.length-1;
for(var i=startIndex; i<=maxIndex; i++){
row=tree.rows ;
refreshTreeNodeColor(row);
}
}
function refreshTree(tree){
clearChildTreeNodes(tree);
expandTreeNode(tree);
var nodes=tree.nodes;
setActiveTreeNode(tree, nodes.firstUnit);
}
function refreshTreeNode(node){
var row=node.row;
if (row){
for(var i=0; i<row.cells.length; i++)
refreshElementValue(row.cells);
}
}
function insertTreeNode(tree, parentNode, label, tag, record, mode, node){
function getSlideNext(node){
if (node){
var result=node.nextUnit;
if (!result) result=getSlideNext(node.parentNode);
return result;
}
}
var nodes, level;
if (parentNode){
if (!parentNode.childNodes) parentNode.childNodes=new pArray();
nodes=parentNode.childNodes;
level=parentNode.level;
}
else{
nodes=tree.nodes;
level=0;
}
if (!nodes) return;
var newNode=new Object();
newNode.tree=tree;
newNode.level=level+1;
newNode.parentNode=parentNode;
newNode.label=label;
newNode.tag=tag;
newNode.record=record;
newNode.hasChild=true;
newNode.expanded=false;
var newRow;
if (!parentNode || (parentNode && (parentNode.expanding || parentNode.expanded))){
var _mode, _node;
switch (mode){
case "begin":{
_node=nodes.firstUnit;
if (_node){
_mode="before";
}
else{
_mode="after";
if (node) _node=node.parentNode;
}
break;
}
case "before":{
_node=node;
_mode="before";
break;
}
case "after":{
_node=node.nextUnit;
if (_node){
_mode="before";
}
else{
_node=getSlideNext(node.parentNode);
if (_node){
_mode="before";
}
else{
_mode="end";
}
}
break;
}
default:{
_node=getSlideNext(parentNode);
if (_node){
_mode="before";
}
else{
_mode="end";
}
break;
}
}
if (!_node){
_mode="end";
}
else{
var row=_node.row;
}
newRow=tree.repeatrow.cloneNode(true);
switch (_mode){
case "begin":{
tree.tBodies[0].insertAdjacentElement("afterBegin", newRow);
break;
}
case "before":{
row.insertAdjacentElement("beforeBegin", newRow);
break;
}
case "after":{
row.insertAdjacentElement("afterEnd", newRow);
break;
}
default:{
tree.tBodies[0].insertAdjacentElement("beforeEnd", newRow);
break;
}
}
newRow.cells[0].node=newNode;
newNode.row=newRow;
}
pArray_insert(nodes, mode, node, newNode);
if (parentNode){
parentNode.hasChild=true;
refreshTreeNode(parentNode);
}
if (tree.selectNode==null) setActiveTreeNode(tree, newNode);
var eventName=getElementEventName(tree, "onInitTreeNode");
fireUserEvent(eventName, [tree, newNode]);
refreshTreeNode(newNode);
if (newRow) refreshTreeColor(tree, newRow.rowIndex);
return newNode;
}
function deleteTreeNode(node){
var tree=node.tree;
var nodes;
if (node.parentNode)
nodes=node.parentNode.childNodes;
else
nodes=tree.nodes;
collapseTreeNode(tree, node);
pArray_delete(nodes, node);
if (node.row){
var rowIndex=node.row.rowIndex;
node.row.removeNode(true);
refreshTreeColor(tree, rowIndex);
node.row=null;
}
if (node==tree.rightSelectNode) tree.rightSelectNode=null;
if (node==tree.selectNode) tree.selectNode=null;
if (node.parentNode){
var parentNode=node.parentNode;
parentNode.hasChild=(parentNode.childNodes)?parentNode.childNodes.length:false;
refreshTreeNode(parentNode);
}
}
function _expandTreeNode(node){
var nodes=node.childNodes;
if (!nodes) return;
var tree=node.tree;
var row=node.row;
var _node=nodes.firstUnit;
while (_node){
var newRow=tree.repeatrow.cloneNode(true);
row.insertAdjacentElement("afterEnd", newRow);
newRow.cells[0].node=_node;
_node.row=newRow;
refreshTreeNode(_node);
row=newRow;
_node=_node.nextUnit;
}
_node=nodes.firstUnit;
while (_node){
if (_node.expanded) _expandTreeNode(_node);
_node=_node.nextUnit;
}
}
function expandTreeNode(tree, node){
try{
if (node){
if (node.expanded) return;
var eventName=getElementEventName(tree, "beforeExpandNode");
var event_result=fireUserEvent(eventName, [tree, node]);
if (event_result) throw event_result;
node.expanding=true;
}
if (node && node.childNodes){
_expandTreeNode(node);
}
else{
var level=(node)?node.level:0;
eval("var child_dataset=tree.getAttribute(\"dataset"+(level+1)+"\");");
if (child_dataset){
if (level>0){
eval("var dataset=tree.getAttribute(\"dataset"+level+"\");");
if (dataset) dataset.setRecord(node.record);
}
var record=child_dataset.getFirstRecord();
while (record){
insertTreeNode(tree, node, record[0], null, record);
record=record.getNextRecord();
}
}
}
var eventName=getElementEventName(tree, "afterExpandNode");
fireUserEvent(eventName, [tree, node]);
if (node){
node.expanded=true;
node.hasChild=(node.childNodes)?node.childNodes.length:false;
refreshTreeColor(node.tree, node.row.rowIndex);
refreshTreeNode(node);
}
}
catch (e){
processException(e);
}
finally{
if (node) node.expanding=false;
}
}
function _collapseTreeNode(node){
if (!node.childNodes) return;
var _node=node.childNodes.firstUnit;
while (_node){
if (_node==_node.tree.selectNode){
_node.tree.selectNode=null;
setActiveTreeNode(_node.tree, _node.tree.nodes.firstUnit);
}
_collapseTreeNode(_node);
if (_node.row) _node.row.removeNode(true);
_node=_node.nextUnit;
}
}
function collapseTreeNode(tree, node){
try{
if (!node) return;
if (!node.expanded) return;
var eventName=getElementEventName(tree, "beforeCollapseNode");
var event_result=fireUserEvent(eventName, [tree, node]);
if (event_result) throw event_result;
_collapseTreeNode(node);
var eventName=getElementEventName(tree, "beforeCollapseNode");
fireUserEvent(eventName, [tree, node]);
node.expanded=false;
refreshTreeColor(node.tree, node.row.rowIndex);
refreshTreeNode(node);
}
catch (e){
processException(e);
}
}
function clearChildTreeNodes(tree, node){
function deleteNodes(nodes){
var unit=nodes.firstUnit;
var _unit;
while (unit){
_unit=unit;
unit=unit.nextUnit;
deleteTreeNode(_unit);
}
}
if (node){
if (node.childNodes){
deleteNodes(node.childNodes);
delete(node.childNodes);
}
}
else{
var nodes=tree.nodes;
if (nodes)
{
deleteNodes(nodes);
}
}
}
function TreeNodeClick(tree, node){
if (node && node.expanded){
collapseTreeNode(tree, node);
}
else{
expandTreeNode(tree, node);
}
}
function setActiveTreeNode(tree, node){
var old_node=tree.selectNode;
var old_row, row;
if (old_node) old_row=old_node.row;
if (node) row=node.row;
if (old_row!=row){
tree.selectNode=node;
if (old_row) refreshTreeNodeColor(old_row);
if (row) refreshTreeNodeColor(row);
clearTimeout(tree.timeout_id);
_stored_element=[tree, node];
var eventName=getElementEventName(tree, "onNodeChanged");
if (isUserEventDefined(eventName))
tree.timeout_id=setTimeout("fireUserEvent("+eventName+", _stored_element);", 400);
}
}
function resetRightClickRow(){
try{
if (_rightclick_row) refreshTreeNodeColor(_rightclick_row);
}
catch (e){
//do nothing
}
finally{
_rightclick_row=null;
}
}
function _tree_expendclick(button){
var cell=button.treenode;
var row=getRowByCell(cell);
var node=row.cells[0].node;
var tree=getTableByRow(row);
TreeNodeClick(tree, node);
event.cancelBubble=true;
}
function _tree_onmousedown(row){
if (event.srcElement.id=="_button_expand") return;
var tree=getTableByRow(row);
var selectNode=tree.selectNode;
var node=row.cells[0].node;
if (event.button==2){
if (isTrue(tree.getAttribute("rightSelect"))){
tree.rightSelectNode=node;
row.className="rightclick_tr";
try{
if (_rightclick_row) refreshTreeNodeColor(_rightclick_row);
}
catch (e){
//do nothing
}
_rightclick_row=row;
setTimeout("resetRightClickRow()", 1000);
}
else
setActiveTreeNode(tree, node);
}
else{
setActiveTreeNode(tree, node);
}
}
function processTreeKeyDown(tree, keycode){
function getCurrentNode(){
var node=tree.selectNode;
if (!node){
var nodes=tree.nodes;
node=nodes.firstUnit;
}
return node;
}
switch (keycode){
//Left
case 37:{
var node=getCurrentNode();
if (node && node.hasChild && node.expanded){
TreeNodeClick(tree, node);
}
break;
}
//Up
case 38:{
var node=getCurrentNode();
var rowIndex=node.row.rowIndex;
if (rowIndex>0){
setActiveTreeNode(tree, tree.rows[rowIndex-1].cells[0].node);
}
break;
}
//Right
case 39:{
var node=getCurrentNode();
if (node && node.hasChild && !node.expanded){
TreeNodeClick(tree, node);
}
break;
}
//Down
case 40:{
var node=getCurrentNode();
var rowIndex=node.row.rowIndex;
if (rowIndex+1<tree.rows.length){
setActiveTreeNode(tree, tree.rows[rowIndex+1].cells[0].node);
}
break;
}
}
}
function _tree_onkeydown(tree){
processTreeKeyDown(tree, event.keyCode);
}
//-----------------------
// xForm v2.0
// Developer: bao yilei
// Nov, 2001
//-----------------------
var _activeElement=null;
var _activeEditor=null;
var _activeTable=null;
var _dropdown_window=null;
var _app_id="", _page_id="";
var _document_loading=false;
var _stored_element=null;
var _array_dataset=new Array();
var _tabpage_list=new Array();
var _skip_activeChanged=false;
function getIEVersion(){
var index=window.clientInformation.userAgent.indexOf("MSIE");
if (index<0){
return "";
}
else{
return window.clientInformation.userAgent.substring(index+5, index+8);
}
}
function getRowByCell(cell){
return cell.parentElement;
}
function getTableByCell(cell){
var tbody=getRowByCell(cell).parentElement;
if (tbody) return tbody.parentElement;
}
function getTableByRow(row){
var tbody=row.parentElement;
if (tbody) return tbody.parentElement;
}
function getElementEventName(element, eventName){
var result="";
if (element.attrib!="dockeditor")
result=element.id+"_"+eventName;
else{
var holder=element.editorHolder;
if (holder) result=holder.id+"_"+eventName;
}
return result;
}
function isUserEventDefined(function_name){
if (function_name=="") return false;
var result;
eval("result=(typeof("+function_name+")!=\"undefined\");");
return result;
}
function fireUserEvent(function_name, param){
var result;
var paramstr="";
for(i=0; i<param.length; i++){
if (i==0)
paramstr="param["+i+"]";
else
paramstr=paramstr+",param["+i+"]";
}
if (isUserEventDefined(function_name))
eval("result="+function_name+"("+paramstr+");");
return result;
}
function processActiveElementChanged(activeElement){
function isChildofTable(obj) {
var result=null;
var tmpObj;
if (obj.getAttribute("attrib")=="dockeditor")
tmpObj=obj.editorHolder;
else
tmpObj=obj;
if (tmpObj.getAttribute("attrib")=="tablecell") result=getTableByCell(tmpObj);
return result;
}
function set_activeEditor(editor){
if (_activeEditor!=editor){
if (_activeEditor){
if (needUpdateEditor){
if (_activeEditor.window==window)
updateEditorInput(_activeEditor);
else
_activeEditor.window.updateEditorInput(_activeEditor);
}
if (typeof(hideDropDownBtn)!="undefined") hideDropDownBtn();
switch (_activeEditor.getAttribute("attrib")){
case "editor":{
_activeEditor.className="editor";
break;
}
case "dockeditor":{
hideDockEditor(_activeEditor);
break;
}
}
_activeEditor.use_keyField=false;
refreshElementValue(_activeEditor);
}
if (editor && !editor.readOnly){
var field=getElementField(editor);
if (editor.getAttribute("attrib")=="editor"){
editor.className="active_editor";
if (field){
editor.dataType=field.dataType;
editor.editorType=field.editorType;
}
}
if (field) editor.maxLength=(field.size>0)?field.size:2147483647;
if (editor.getAttribute("dataType")=="date" || editor.getAttribute("dataType")=="datetime")
editor.dropDown_mode="date";
editor.contentEditable=(!isTrue(editor.getAttribute("dropDown_fixed")));
editor.use_keyField=true;
refreshElementValue(editor);
if (!isTrue(editor.getAttribute("dropDown_fixed")) && !compareText(editor.type, "checkbox")) editor.select();
if (typeof(showDropDownBtn)!="undefined"){
showDropDownBtn(editor);
if (isTrue(editor.getAttribute("autoDropDown"))){ showDropDownBox(editor);}
}
}
_activeEditor=editor;
}
}
function processElementBlur(){
var doblur=(activeElement!=_activeEditor);
if (_activeElement){
if (typeof(_dropdown_btn)!="undefined" && _dropdown_btn){
doblur=doblur && (_activeElement!=_dropdown_btn) &&
(activeElement!=_dropdown_btn);
}
if (typeof(_dropdown_box)!="undefined" && _dropdown_box){
var editor=_dropdown_box.editor;
doblur=doblur && (activeElement!=editor) &&
(!isChild(activeElement, _dropdown_box));
}
if (doblur){
if (_activeEditor && _activeEditor.dropDown_visible){
if (typeof(hideDropDownBox)!="undefined") hideDropDownBox();
hideStatusLabel(window);
}
set_activeEditor(null);
}
}
else{
doblur=false;
}
if (activeElement==document.body && _skip_activeChanged){
_skip_activeChanged=false;
return;
}
if ((doblur || !_activeEditor)){
var activeTable=isChildofTable(activeElement);
if (_activeTable!=activeTable){
if (_activeTable){
_activeTable.focused=false;
var row=_activeTable.activeRow;
if (row) refreshTableRowStyle(row);
var eventName=getElementEventName(_activeTable, "onBlur");
fireUserEvent(eventName, [_activeTable]);
}
_activeTable=activeTable;
if (_activeTable){
_activeTable.focused=true;
var row=_activeTable.activeRow;
if (row) refreshTableRowStyle(row);
var eventName=getElementEventName(_activeTable, "onFocus");
fireUserEvent(eventName, [_activeTable]);
}
}
}
}
try{
if (window.closed) return;
if (activeElement==_activeElement) return;
if (activeElement){
processElementBlur();
switch (activeElement.getAttribute("attrib")){
case "tablecell":{
var row=getRowByCell(activeElement);
var table=getTableByRow(row);
var dataset=getElementDataset(activeElement);
table._activeCell=activeElement;
table._activeCellIndex=activeElement.cellIndex;
if (row.record){
if (dataset.window==window)
_dataset_setRecord(dataset, row.record);
else
dataset.window._dataset_setRecord(dataset, row.record);
}
setActiveTableCell(row, activeElement.cellIndex);
break;
}
case "editor":;
case "dockeditor":{
set_activeEditor(activeElement);
break;
}
}
}
_activeElement=activeElement;
}
catch(e){
processException(e);
}
}
function _document_onpropertychange() {
if (event.propertyName=="activeElement")
processActiveElementChanged(document.activeElement);
}
function _document_onkeydown(){
switch (event.keyCode){
case 123:{
if (_app_id && _page_id){
showModalDialog(xForm_Library_path+"tool/property.asp?app_id="+_app_id+"&page_id="+_page_id+"&modal_mode=1", document,
"dialogHeight: 440px; dialogWidth: 600px; center: Yes; help: No; resizable: Yes; status: No");
}
break;
}
}
}
function _document_oncontextmenu(){
event.returnValue=(!disableSystemContextMenu);
if (typeof(_array_menu)=="undefined") return;
for(var i=0; i<_array_menu.length; i++){
var strHolders=_array_menu.popupHolders;
if (getValidStr(strHolders)!=""){
var arrayHolder=strHolders.split(",");
for(var j=0; j<arrayHolder.length; j++){
if (arrayHolder[j]=="") continue;
var needPopup;
eval("needPopup=isChild(event.srcElement,"+arrayHolder[j]+")");
if (needPopup){
showPopupMenu(_array_menu);
event.returnValue=false;
return;
}
}
}
}
}
function _control_onkeydown() {
function getCell(element){
if (element.getAttribute("attrib")=="tablecell")
return element;
else if (element.in_table)
return element.editorHolder;
}
function processTab(element){
var obj=null;
if (element.in_table){
obj=element.editorHolder;
}
else{
obj=element;
}
if (!obj) return;
if (event.shiftKey)
obj=getPriorTabElement(obj);
else
obj=getNextTabElement(obj);
if (obj){
try{
obj.focus();
event.returnValue=false;
}
catch(e){
event.returnValue=true;
}
}
}
element=event.srcElement;
if (isDropdownBoxVisible()){
if (_dropdown_window) _dropdown_window.processDropDownKeyDown(event.keyCode);
event.returnValue=true;
}
else{
var rowindex, colindex;
switch (event.keyCode) {
//Tab
case 9:{
processTab(element);
break;
}
//Enter
case 13:{
if (!compareText(element.tagName, "textarea") || event.shiftKey || event.ctrlKey || event.altKey){
var cell=getCell(element);
if (cell && !event.shiftKey){
var row=getRowByCell(cell);
var table=getTableByRow(row);
var maxIndex=checkTableCellIndex(table, 9999, 9999);
if (row.rowIndex==maxIndex[0] && cell.cellIndex==maxIndex[1] && !isTrue(table.getAttribute("readOnly"))){
var dataset=getElementDataset(element);
dataset.insertRecord("end");
dataset.modified=false;
setActiveTableCell(table.activeRow, 0);
}
else
processTab(element);
}
}
break;
}
//ESC
case 27:{
if (!element.modified){
var dataset=getElementDataset(element);
if (!dataset || dataset.state=="none") break;
var cell=getCell(element);
if (cell && !isTrue(getTableByCell(cell).getAttribute("readOnly"))){
if (isTrue(getTableByCell(cell).getAttribute("confirmCancel"))){
if (confirm(constDatasetConfirmCancel)){
dataset.cancelRecord();
}
}
else{
dataset.cancelRecord();
}
}
}
else{
setElementValue(element, element.old_value);
}
event.returnValue=false;
break;
}
//Left
case 37:{
var cell=getCell(element);
if (cell){
if ((event.ctrlKey) || (event.altKey)){
var table=getTableByCell(cell);
var rowIndex=getRowByCell(cell).rowIndex;
var cellIndex=cell.cellIndex;
cellIndex--;
setFocusTableCell(table, rowIndex, cellIndex);
event.returnValue=false;
}
}
break;
}
//Up
case 38:{
var cell=getCell(element);
if (cell){
var dataset=getElementDataset(element);
if (dataset){
dataset.movePrev();
event.returnValue=false;
}
}
else{
switch (element.getAttribute("dropDown_mode")){
case "staticlist":{
var fieldName=(element.getAttribute("dropDown_mapValue"))?"name":"value";
var tempDataset=getDropDownItems(element);
var record=tempDataset.locate(fieldName, element.value);
if (record){
tempDataset.setRecord(record);
tempDataset.movePrev();
}
processDropDownSelected(element, tempDataset.record, true);
event.returnValue=false;
break;
}
case "dataset":{
var tempDataset=element.getAttribute("dropDown_dataset");
if (typeof(tempDataset)=="string") tempDataset=getDatasetByID(tempDataset);
if (tempDataset) tempDataset.movePrev();
processDropDownSelected(element, tempDataset.record, true);
event.returnValue=false;
break;
}
}
}
break;
}
//Right
case 39:{
var cell=getCell(element);
if (cell){
if ((event.ctrlKey) || (event.altKey)){
var table=getTableByCell(cell);
var rowIndex=getRowByCell(cell).rowIndex;
var cellIndex=cell.cellIndex;
cellIndex++;
setFocusTableCell(table, rowIndex, cellIndex);
event.returnValue=false;
}
}
break;
}
//Down
case 40:{
if (event.altKey){
showDropDownBox(element);
}
else{
var cell=getCell(element);
if (cell){
var table=getTableByCell(cell);
var dataset=getElementDataset(element);
if (dataset){
dataset.moveNext();
if (dataset.eof && !isTrue(table.getAttribute("readOnly")) && !isTrue(dataset.readOnly)){
dataset.insertRecord("end");
dataset.modified=false;
}
event.returnValue=false;
}
}
else{
switch (element.getAttribute("dropDown_mode")){
case "staticlist":{
var fieldName=(element.getAttribute("dropDown_mapValue"))?"name":"value";
var tempDataset=getDropDownItems(element);
var record=tempDataset.locate(fieldName, element.value);
if (record){
tempDataset.setRecord(record);
tempDataset.moveNext();
}
processDropDownSelected(element, tempDataset.record, true);
event.returnValue=false;
break;
}
case "dataset":{
var tempDataset=element.getAttribute("dropDown_dataset");
if (typeof(tempDataset)=="string") tempDataset=getDatasetByID(tempDataset);
if (tempDataset) tempDataset.moveNext();
processDropDownSelected(element, tempDataset.record, true);
event.returnValue=false;
break;
}
}
}
}
break;
}
//Insert
case 45:{
var cell=getCell(element);
if (cell && !isTrue(getTableByCell(cell).getAttribute("readOnly"))){
var dataset=getElementDataset(element);
if (!isTrue(dataset.readOnly)){
dataset.insertRecord("before");
dataset.modified=false;
}
}
break;
}
//Delete
case 46:{
var cell=getCell(element);
if (cell && !isTrue(getTableByCell(cell).getAttribute("readOnly"))){
if (event.ctrlKey){
if (isTrue(getTableByCell(cell).getAttribute("confirmDelete"))){
var dataset=getElementDataset(element);
if (!isTrue(dataset.readOnly) && confirm(constDatasetConfirmDelete)){
dataset.deleteRecord();
}
}
else{
var dataset=getElementDataset(element);
dataset.deleteRecord();
}
event.returnValue=false;
}
}
break;
}
//F2
case 113:;
//F7
case 118:{
showDropDownBox(element);
break;
}
}
}
}
function getAbsPosition(obj, offsetObj){
var _offsetObj=(offsetObj)?offsetObj:document.body;
var x=obj.offsetLeft;
var y=obj.offsetTop;
var tmpObj=obj.offsetParent;
while ((tmpObj!=_offsetObj) && tmpObj){
x+=tmpObj.offsetLeft+tmpObj.clientLeft-tmpObj.scrollLeft;
y+=tmpObj.offsetTop+tmpObj.clientTop-tmpObj.scrollTop;
tmpObj=tmpObj.offsetParent;
}
return ([x, y]);
}
function isChild(obj, parentObj) {
var tmpObj=obj;
var result=false;
if (parentObj) {
while (tmpObj) {
if (tmpObj==parentObj){
result=true;
break;
}
tmpObj=tmpObj.parentElement;
}
}
return result;
}
function disableDocument(window){
if (typeof(_over_label)=="undefined"){
document.body.insertAdjacentHTML("beforeEnd", "<div id=_over_label language=javascript"+
" style=\"position: absolute; background-color: black; left:0; top:0; z-index: 9999; filter:alpha(opacity=30)\"></div>");
}
document.body._documentDisabled=true;
_over_label.style.width=document.body.clientWidth + document.body.scrollLeft;
_over_label.style.height=document.body.clientHeight + document.body.scrollTop;
_over_label.style.visibility="visible";
}
function enableDocument(window){
_over_label.style.visibility="hidden";
document.body._documentDisabled=false;
}
function isDocumentEnable(){
return (!isTrue(document.body._documentDisabled));
}
function initElementDataset(element){
var dataset=element.getAttribute("dataset");
if (dataset) setElementDataset(element, dataset);
}
function initElement(element){
var initChildren=true;
var _attrib=element.getAttribute("attrib");
if (_attrib){
switch (_attrib){
case "fieldlabel":{
if (!element.className) element.className=_attrib;
var dataset;
var _dataset=element.getAttribute("dataset");
if (typeof(_dataset)=="string"){
dataset=getDatasetByID(_dataset);
}
else{
dataset=_dataset;
}
element.dataset=dataset;
refreshElementValue(element);
break;
}
case "columnheader":{
if (!element.className) element.className=_attrib;
element.noWrap=true;
element.onclick=_table_head_onclick;
element.onmouseover=_table_head_onmouseover;
element.onmouseout=_table_head_onmouseout;
refreshElementValue(element);
break;
}
case "columnfooter":{
if (!element.className) element.className=_attrib;
refreshElementValue(element);
break;
}
case "datalabel":{
if (!element.className) element.className=_attrib;
initElementDataset(element);
break;
}
case "editor":;
case "dockeditor":{
if (!element.className) element.className=_attrib;
if (getValidStr(element.getAttribute("dropdown_cached"))=="" && getIEVersion()>"5.0")
element.dropdown_cached=true;
initElementDataset(element);
with (element){
if (tagName.toLowerCase()=="input" && compareText(type, "checkbox")){
style.borderColor="window";
onclick=_checkbox_onclick;
}
language="javascript";
onkeydown=_control_onkeydown;
onkeypress=_editor_onkeypress;
onpropertychange=_editor_onpropertychange;
}
break;
}
case "datatable":{
if (isTrue(element.getAttribute("isDropDownTable"))){
if (!element.className) element.className="dropdowntable";
}
else{
if (!element.className) element.className="datatable";
}
initElementDataset(element);
initDataTable(element, !isTrue(element.getAttribute("skipRebuild")));
element.onkeydown=_control_onkeydown;
initChildren=false;
break;
}
case "tablecell":{
if (!element.className) element.className=_attrib;
break;
}
case "datapilot":{
if (!element.className) element.className=_attrib;
initElementDataset(element);
initDataPilot(element);
initChildren=false;
break;
}
case "button":{
if (!element.className) element.className=_attrib;
element.hideFocus=true;
setButtonDown(element, element.getAttribute("down"))
element.onmousedown=_button_onmousedown;
element.onmouseover=_button_onmouseover;
element.onmouseout=_button_onmouseout;
break;
}
case "tree":{
if (!element.className) element.className=_attrib;
initTree(element);
initChildren=false;
break;
}
case "tabpage":{
if (!element.className) element.className=_attrib;
initTabPage(element);
initChildren=false;
break;
}
case "datascrollbar":{
if (!element.className) element.className=_attrib;
initElementDataset(element);
element.onlosecapture=_scrollbar_change;
break;
}
default:{
if (element.className &&_attrib) element.className=_attrib;
break;
}
}
element.window=window;
fireUserEvent("document_onInitElement", [element, _attrib]);
}
return initChildren;
}
function initElements(element){
if (compareText(element.getAttribute("attrib"), "tabpage")){
_tabpage_list[_tabpage_list.length]=element;
}
else{
if (!initElement(element)) return;
}
for (var i=0; i<element.children.length; i++){
initElements(element.children);
}
}
function uninitElement(element){
var _attrib=element.getAttribute("attrib");
switch (_attrib){
case "datalabel":;
case "editor":;
case "dockeditor":;
case "datatable":;
case "tablecell":;
case "datapilot":;
case "datascrollbar":{
if (typeof(setElementDataset)!="undefined") setElementDataset(element, null);
break;
}
}
}
function uninitElements(element){
for(var i=0; i<_array_dataset.length; i++){
var dataset=_array_dataset;
if (dataset.window==window) dataset.setMasterDataset(null);
}
if (!element) element=document.body;
for (var i=0; i<element.children.length; i++){
uninitElements(element.children);
}
uninitElement(element);
}
function _window_onunload() {
uninitElements(document.body);
}
function initTabPages(){
for (var i=0; i<_tabpage_list.length; i++){
initElement(_tabpage_list);
}
}
function initDocument(){
if (getIEVersion()<"5.0"){
alert(constErrUnsupportBrowser);
return;
}
_document_loading=true;
try{
with (document){
for(var i=0; i<_array_dataset.length; i++){
initDataset(_array_dataset);
}
if (typeof(_setElementsProperties)!="undefined") _setElementsProperties();
initElements(body);
for(var i=0; i<_array_dataset.length; i++){
var dataset=_array_dataset;
if (dataset.masterDataset && dataset.masterLinks){
dataset.setMasterDataset(dataset.masterDataset, dataset.masterLinks, dataset.detailSql);
}
dataset.refreshControls();
}
setTimeout("initTabPages()", 0);
language="javascript";
onpropertychange=_document_onpropertychange;
onkeydown=_document_onkeydown;
oncontextmenu=_document_oncontextmenu;
}
if (!window.onunload) window.onunload=_window_onunload;
if (typeof(sizeDockEditor)!="undefined") setInterval("adjustControlsSize();", 300);
processActiveElementChanged(document.activeElement);
}
finally{
_document_loading=false;
}
}
var _ad_box=null;
var _ad_interval=50;
var _ad_count=_ad_interval;
function adjustControlsSize(){
function showAD(){
_ad_count++;
if (!_ad_box || _ad_count>_ad_interval){
if (_ad_box) _ad_box.removeNode(true);
_ad_box=document.createElement("<A target='_blank' href='#' style='color: blue; font-size: 9pt; position: absolute'></A>");
_ad_box.innerText="www.chinaesteel.com.cn";
document.body.appendChild(_ad_box);
_ad_count=0;
_ad_interval=45+Math.random()*10;
}
_ad_box.style.left=document.body.clientWidth+document.body.scrollLeft-_ad_box.offsetWidth-6;
_ad_box.style.top=document.body.clientHeight+document.body.scrollTop-_ad_box.offsetHeight-3;
}
if (typeof(sizeDockEditor)!="undefined"){
sizeDockEditor();
if (typeof(sizeDropDownBtn)!="undefined" && _activeEditor) sizeDropDownBtn(_activeEditor);
if (typeof(sizeDropDownBox)!="undefined") sizeDropDownBox();
}
showAD();
}
function getPriorTabElement(obj){
var i=obj.sourceIndex-1;
var elementCount=document.all.length
var tmpObj, result=null;
while (i>=0){
tmpObj=document.all;
if ((tmpObj!=obj && tmpObj.isTextEdit && tmpObj.tabIndex!=-1 && !tmpObj.disabled && !tmpObj.readOnly)
|| tmpObj.getAttribute("attrib")=="tablecell"){
result=document.all;
break;
}
i--;
}
return result;
}
function getNextTabElement(obj){
var i=obj.sourceIndex+1;
var elementCount=document.all.length
var tmpObj, result=null;
while (i<elementCount){
tmpObj=document.all;
if ((tmpObj!=obj && tmpObj.isTextEdit && tmpObj.tabIndex!=-1 && !tmpObj.disabled && !tmpObj.readOnly)
|| tmpObj.getAttribute("attrib")=="tablecell"){
result=document.all;
break;
}
i++;
}
return result;
}
function getElementDataset(element){
switch (element.getAttribute("attrib")){
case "tablecell":{
var table=getTableByCell(element);
if (table){
return table.getAttribute("dataset");
}
break;
}
case "tablerow":{
var table=getTableByRow(element);
if (table){
return table.getAttribute("dataset");
}
break;
}
case "dockeditor":{
var holder=element.editorHolder;
if (holder){
return getElementDataset(holder);
}
break;
}
default:{
return element.getAttribute("dataset");
break;
}
}
}
function getElementField(element){
var dataset=getElementDataset(element);
if (!dataset) return;
return dataset.getField(element.getAttribute("dataField"));
}
function getElementValue(element){
var eventName=getElementEventName(element, "onGetValue");
if (isUserEventDefined(eventName)){
var event_result=fireUserEvent(eventName, [element, value]);
return event_result;
}
switch (element.getAttribute("attrib")){
case "editor":;
case "dockeditor":{
switch (element.type.toLowerCase()){
case "checkbox":{
return element.checked;
break;
}
default:{
var result;
if (compareText(element.getAttribute("dropDown_mode"), "staticlist") && isTrue(element.getAttribute("dropDown_mapValue"))){
var items=getDropDownItems(element);
if (items){
var item=items.find(["name"], [element.value]);
if (item) result=item.getFieldText("value");
}
}
else
result=element.value;
return result;
break;
}
}
break;
}
case "datascrollbar":{
return element.Value;
break;
}
default:{
return element.value;
break;
}
}
}
function setElementValue(element, value){
function getEditorValue(element, value){
if (compareText(element.getAttribute("dropDown_mode"), "staticlist")
&& isTrue(element.getAttribute("dropDown_mapValue"))){
element.keyValue=value;
var result="";
var items=getDropDownItems(element);
if (items){
var item=items.find(["value"], [value]);
if (item) result=item.getFieldText("name");
}
return result;
}
else
return getValidStr(value);
}
switch (element.getAttribute("attrib")){
case "fieldlabel":;
case "columnfooter":;
case "columnheader":{
var eventName=getElementEventName(element, "onSetValue");
if (isUserEventDefined(eventName)){
if (!fireUserEvent(eventName, [element, value])) break;
}
element.innerHTML=value;
break;
}
case "datalabel":{
var eventName=getElementEventName(element, "onSetValue");
if (isUserEventDefined(eventName)){
if (!fireUserEvent(eventName, [element, value])) break;
}
element.innerText=value;
break;
}
case "editor":;
case "dockeditor":{
var eventName=getElementEventName(element, "onSetValue");
if (isUserEventDefined(eventName)){
if (!fireUserEvent(eventName, [element, value])) break;
}
switch (element.type.toLowerCase()){
case "checkbox":{
element.checked=isTrue(value);
break;
}
default:{
element.value=getEditorValue(element, value);
break;
}
}
break;
}
case "tablecell":{
var eventName=getElementEventName(element, "onSetValue");
if (isUserEventDefined(eventName)){
if (!fireUserEvent(eventName, [element, value])) break;
}
var tmpHTML;
switch (element.getAttribute("editorType")){
case "checkbox":{
if (isTrue(value)){
tmpHTML="<font face=Marlett size=2>a</font>";
}
else{
tmpHTML="<font face=Webdings size=1 color=silver>c</font>";
}
element.innerHTML=tmpHTML;
break;
}
default:{
tmpHTML=getEditorValue(element, value);
if (tmpHTML=="") tmpHTML=" ";
element.innerText=tmpHTML;
}
}
break;
}
case "treenode":{
var node=element.node;
var canceled=false;
var eventName=getElementEventName(getTableByCell(element), "onSetValue");
if (isUserEventDefined(eventName)){
canceled=(!fireUserEvent(eventName, [element, value]));
}
if (!canceled) element.innerHTML=value;
var tmpHTML="";
if (node.imageUrl){
if (node.hasChild && node.expanded && node.expandImageUrl)
tmpHTML="<img src=\""+node.expandImageUrl+"\" style=\"margin-right: 4px\">";
else
tmpHTML="<img src=\""+node.imageUrl+"\" style=\"margin-right: 4px\">";
element.insertAdjacentHTML("afterBegin", tmpHTML);
}
var record=node.data;
var button
if (node.hasChild){
var button_img=(node.expanded)?"collapse.gif":"expand.gif";
button=document.createElement("<img id=_button_expand hideFocus=true src=\""+xForm_Library_path+"image/"+button_img+"\" width=11px height=11px"+
" language=javascript onclick=\"return _tree_expendclick(this);\" style=\"cursor: hand; margin-top: 3px; margin-left: 4px; margin-right: 4px\">");
button.treenode=element;
element.insertAdjacentElement("afterBegin", button);
}
else{
element.insertAdjacentHTML("afterBegin", "<img id=_button_expand hideFocus=true src=\""+xForm_Library_path+"image/NoChild.gif\" width=11px height=11px"+
" style=\"cursor: hand; margin-top: 3px; margin-left: 4px; margin-right: 4px\">");
}
tmpHTML="";
element.button=button;
for(var i=1; i<node.level; i++){
tmpHTML+="????"
}
element.insertAdjacentHTML("afterBegin", tmpHTML);
break;
}
case "datascrollbar":{
element.Value=value;
element.old_value=element.Value;
break;
}
default:{
element.value=value;
}
}
}
function refreshElementValue(element){
var dataset;
var _attrib=element.getAttribute("attrib");
switch (_attrib){
case "fieldlabel":{
var label=element.getAttribute("dataField");
var field=getElementField(element);
if (field){
label=field.label;
if (isTrue(field.notNull) && !isTrue(field.readOnly) && !isTrue(field.dataset.readOnly)){
label="<font color=red>*</font>"+label;
}
}
setElementValue(element, label);
break;
}
case "columnheader":;
case "columnfooter":{
var label=getValidStr(element.getAttribute("label"));
var field=getElementField(element);
if (label==""){
if (field){
label=field.label;
if (isTrue(field.notNull) && !isTrue(field.readOnly) && !isTrue(field.dataset.readOnly)){
label="<font color=red>*</font>"+label;
}
}
else{
label=getValidStr(element.getAttribute("dataField"));
}
}
setElementValue(element, label);
break;
}
case "tablecell":{
var row=getRowByCell(element);
var record=row.record;
var dataField=element.getAttribute("dataField");
if (dataField=="select") break;
if (record)
setElementValue(element, record.getFieldText(dataField));
else
setElementValue(element, "");
break;
}
case "treenode":{
var node=element.node;
if (node)
setElementValue(element, node.label);
else
setElementValue(element, "");
break;
}
case "datascrollbar":{
dataset=getElementDataset(element);
if (dataset){
if (dataset.bof){
setElementValue(element, element.Min);
}
else if (dataset.eof){
setElementValue(element, element.Max);
}
else{
setElementValue(element, element.Max/2);
}
element.old_value=getElementValue(element);
}
break;
}
default:{
dataset=getElementDataset(element);
var value="";
if (dataset){
var fieldName;
if (element.use_keyField && element.getAttribute("keyField")){
fieldName=element.getAttribute("keyField");
if (fieldName && dataset.getField(fieldName))
value=dataset.getFieldText(fieldName);
else if (element.keyValue)
value=element.keyValue;
}
else{
fieldName=element.getAttribute("dataField");
if (fieldName) value=dataset.getFieldText(fieldName);
}
setElementValue(element, value);
}
element.old_value=getElementValue(element);
element.modified=false;
break;
}
}
}
function refreshButtonColor(button){
if (isTrue(button.getAttribute("down"))){
button.className="button_down";
button.style.backgroundColor="#fff1da";
}
else{
button.className="button";
button.style.backgroundColor="#d4d0c8";
}
}
function setButtonDown(button, down){
button.down=isTrue(down);
refreshButtonColor(button);
}
function _button_onmousedown(){
var button=event.srcElement;
var menu=button.getAttribute("menu");
if (typeof(menu)=="string" && menu!=""){
eval("menu="+menu);
button.menu=menu;
}
if (menu){
showPopupMenu(menu, button);
}
}
function _button_onmouseover(){
try{
var button=event.srcElement;
if (button.disabled) return;
button.style.backgroundColor="white";
if (_menu_frame){
var old_button=_menu_frame.button;
if (old_button){
var menu=button.getAttribute("menu");
if (typeof(menu)=="string"){
eval("menu="+menu);
button.menu=menu;
}
if (button==old_button){
clearTimeout(_menu_frame.timeout_id);
}
else if (menu){
showPopupMenu(menu, button);
button.focus();
}
}
}
}
catch(e){
//do nothing
}
}
function _button_onmouseout(){
try{
var button=event.srcElement;
if (button.disabled) return;
refreshButtonColor(button);
if (button.menu_opened) hidePopupMenu();
}
catch(e){
//do nothing
}
}
function _scrollbar_change(){
var scrollbar=event.srcElement;
var dataset=scrollbar.getAttribute("dataset");
var oldValue=scrollbar.old_value;
if (scrollbar.Value!=oldValue){
dataset.move(scrollbar.Value-oldValue);
refreshElementValue(scrollbar);
}
}
function getDropDownItems(editor){
var items=editor._dropDown_items;
if (!items){
initDropDownItems(editor);
items=editor._dropDown_items;
}
return items;
}
function setDropDownItems(editor, items){
editor.dropDown_items=items;
editor._dropDown_items=null;
}
function _initDropDownItems(itemsStr, mapValue){
if (!itemsStr) return null;
var splitStr=";";
var arrayItem=createDataset();
arrayItem.id="_dropDown_items";
arrayItem.readOnly=true;
if (mapValue){
var field;
field=arrayItem.addField("name");
field=arrayItem.addField("value");
field.visible=false;
var tmp=itemsStr.split(splitStr);
var index;
for (var i=0; i<tmp.length; i++ ){
index=tmp.indexOf("=");
record=new Array();
record[0]=getDecodeStr(tmp.substr(0, index));
record[1]=getDecodeStr(tmp.substr(index+1));
pArray_insert(arrayItem, "end", null, record);
}
}
else{
arrayItem.addField("value");
var tmp=itemsStr.split(splitStr);
for (var i=0; i<tmp.length; i++ ){
record=new Array();
record[0]=getDecodeStr(tmp);
pArray_insert(arrayItem, "end", null, record);
}
}
return arrayItem;
}
function initDropDownItems(editor){
var dropDown_items=editor.getAttribute("dropDown_items");
if (!dropDown_items) return;
var items=_initDropDownItems(dropDown_items, isTrue(editor.getAttribute("dropDown_mapValue")));
if (!items) return;
initDataset(items);
editor._dropDown_items=items;
}
function isDropdownBoxVisible(){
if (typeof(_dropdown_box)!="undefined" && _dropdown_box)
return (_dropdown_box.style.visibility=="visible")
else
return false;
}
function getStatusLabel(text){
if (typeof(_status_label)=="undefined"){
document.body.insertAdjacentHTML("beforeEnd", "<DIV id=_status_label nowrap style=\"position: absolute; visibility: hidden;"+
" padding-left: 16px; padding-right: 16px; height: 22px; font-size: 9pt; background-color: #e0f0ff; border: 1 solid silver; padding-top:3; z-index: 10000\"></DIV>");
}
_status_label.innerHTML=text;
}
function showStatusLabel(parent_window, text, center){
parent_window.getStatusLabel(text);
parent_window._status_label.style.visibility="visible";
if (center){
parent_window._status_label.style.posLeft=(document.body.clientWidth - _status_label.offsetWidth) / 2;
parent_window._status_label.style.posTop=(document.body.clientHeight - _status_label.offsetHeight) / 2;
parent_window.document.onmousemove=null;
}
else{
parent_window._document_onmousemove();
parent_window.document.onmousemove=parent_window._document_onmousemove;
}
}
function hideStatusLabel(parent_window){
if (!parent_window.closed && parent_window._status_label){
parent_window.document.onmousemove=null;
parent_window._status_label.style.visibility="hidden";
}
}
function _document_onmousemove(){
locateStatusLabel(event.x + document.body.scrollLeft+1, event.y + document.body.scrollTop+1);
}
function locateStatusLabel(x, y){
if (x==0 && y==0) return;
var posX=document.body.clientWidth + document.body.scrollLeft - _status_label.offsetWidth;
var posY=document.body.clientHeight + document.body.scrollTop - _status_label.offsetHeight;
posX=(x<posX)?x:posX;
posY=(y<posY)?y:posY;
_status_label.style.posLeft=posX + 1;
_status_label.style.posTop=posY + 1;
}
function initDataPilot(dataPilot){
if (!dataPilot.getAttribute("pageSize")){
var dataset=getElementDataset(dataPilot);
if (dataset) dataPilot.pageSize=dataset.pageSize;
}
var pageSize=dataPilot.getAttribute("pageSize");
for(i=0; i<dataPilot.children.length; i++){
dataPilot.children.removeNode(true);
}
var buttons_str=getValidStr(dataPilot.getAttribute("buttons"));
if (buttons_str=="" || compareText(buttons_str, "default"))
buttons_str="movefirst,prevpage,moveprev,movenext,nextpage,movelast,appendrecord,deleterecord,cancelrecord,updaterecord";
else if (compareText(buttons_str, "readonly"))
buttons_str="movefirst,prevpage,moveprev,movenext,nextpage,movelast";
buttons_str=buttons_str.toLowerCase();
var buttons=buttons_str.split(",");
var row=dataPilot.insertRow();
row.align="center";
for(i=0; i<buttons.length; i++){
btn=document.createElement("<input type=button class=button hideFocus=true style=\"height: 22px\">");
btn.tabIndex=-1;
btn.onmouseover=_button_onmouseover;
btn.onmouseout=_button_onmouseout;
btn.onclick=_datapilot_onclick;
btn.dataset=dataPilot.getAttribute("dataset");
btn.buttonType=buttons;
btn.datapiolt=dataPilot;
switch(buttons){
case "movefirst":{
btn.style.fontFamily="Webdings";
btn.value="9";
btn.title=constDatasetMoveFirst;
btn.style.width=30;
break;
}
case "prevpage":{
btn.style.fontFamily="Webdings";
btn.value="7";
btn.title=constDatasetPrevPage;
btn.style.width=30;
break;
}
case "moveprev":{
btn.style.fontFamily="Webdings";
btn.value="3";
btn.title=constDatasetMovePrev;
btn.style.width=30;
break;
}
case "movenext":{
btn.style.fontFamily="Webdings";
btn.value="4";
btn.title=constDatasetMoveNext;
btn.style.width=30;
break;
}
case "nextpage":{
btn.style.fontFamily="Webdings";
btn.value="8";
btn.title=constDatasetNextPage;
btn.style.width=30;
break;
}
case "movelast":{
btn.style.fontFamily="Webdings";
btn.value=":";
btn.title=constDatasetMoveLast;
btn.style.width=30;
break;
}
case "insertrecord":{
btn.value=constBtnInsertRecord;
btn.title=constDatasetInsertRecord;
btn.style.width=45;
break;
}
case "appendrecord":{
btn.value=constBtnAppendRecord;
btn.title=constDatasetAppendRecord;
btn.style.width=45;
break;
}
case "deleterecord":{
btn.value=constBtnDeleteRecord;
btn.title=constDatasetDeleteRecord;
btn.style.width=45;
break;
}
case "editrecord":{
btn.value=constBtnEditRecord;
btn.title=constDatasetEditRecord;
btn.style.width=45;
break;
}
case "cancelrecord":{
btn.value=constBtnCancelRecord;;
btn.title=constDatasetCancelRecord;
btn.style.width=45;
break;
}
case "updaterecord":{
btn.value=constBtnUpdateRecord;
btn.title=constDatasetUpdateRecord;
btn.style.width=45;
break;
}
}
btn.id=dataPilot.id+"_"+btn.buttonType;
row.insertCell().appendChild(btn);
}
refreshDataPilot(dataPilot);
}
function setDataPilotButtons(dataPilot, buttons){
dataPilot.buttons=buttons;
initDataPilot(dataPilot);
}
function refreshDataPilot(dataPilot){
function refreshButton(btn, enable){
btn.disabled=!enable;
if (enable){
}
else{
btn.style.backgroundColor="#d4d0c8";
}
}
var dataset=getElementDataset(dataPilot);
var row=dataPilot.rows[0];
for(var i=0; i<row.cells.length; i++){
var btn=row.cells.children[0];
switch(btn.buttonType){
case "movefirst":;
case "moveprev":{
refreshButton(btn, (dataset && !dataset.bof));
break;
}
case "prevpage":{
refreshButton(btn, (dataset && dataset.record && dataset.record.pageIndex>1));
break;
}
case "movenext":;
case "movelast":{
refreshButton(btn, (dataset && !dataset.eof));
break;
}
case "nextpage":{
refreshButton(btn, (dataset && dataset.record && dataset.record.pageIndex<dataset.totalPage));
break;
}
case "insertrecord":;
case "appendrecord":{
refreshButton(btn, (dataset && !dataset.readOnly));
break;
}
case "editrecord":{
refreshButton(btn, (dataset && !(dataset.bof && dataset.eof) && !dataset.readOnly));
break;
}
case "deleterecord":{
refreshButton(btn, (dataset && !(dataset.bof && dataset.eof) && !dataset.readOnly));
break;
}
case "cancelrecord":;
case "updaterecord":{
refreshButton(btn, (dataset && (dataset.state=="insert" || dataset.state=="modify") && !dataset.readOnly));
break;
}
}
fireUserEvent(getElementEventName(dataPilot, "onRefreshButton"), [dataPilot, btn, btn.buttonType, dataset]);
}
}
function _datapilot_onclick(){
if (event.srcElement.disabled) return;
var datapiolt=event.srcElement.datapiolt;
var dataset=getElementDataset(datapiolt);
var eventName=getElementEventName(datapiolt, "onButtonClick");
var event_result=fireUserEvent(eventName, [datapiolt, event.srcElement, event.srcElement.buttonType, dataset]);
if (event_result) return;
var pageSize=datapiolt.getAttribute("pageSize");
switch(event.srcElement.buttonType){
case "movefirst":{
dataset.moveFirst();
break;
}
case "prevpage":{
var pageIndex=(dataset.record)?dataset.record.pageIndex-1:1;
dataset.moveToPage(pageIndex);
break;
}
case "moveprev":{
dataset.movePrev();
break;
}
case "movenext":{
dataset.moveNext();
break;
}
case "nextpage":{
var pageIndex=(dataset.record)?dataset.record.pageIndex+1:1;
dataset.moveToPage(pageIndex);
break;
}
case "movelast":{
dataset.moveLast();
break;
}
case "insertrecord":{
dataset.insertRecord("before");
break;
}
case "appendrecord":{
dataset.insertRecord("end");
break;
}
case "editrecord":{
dataset_setState(dataset, "modify");
break;
}
case "deleterecord":{
if (isTrue(datapiolt.getAttribute("confirmDelete"))){
if (confirm(constDatasetDeleteRecord)) dataset.deleteRecord();
}
else
dataset.deleteRecord();
break;
}
case "cancelrecord":{
if (isTrue(datapiolt.getAttribute("confirmCancel"))){
if (confirm(constDatasetCancelRecord)) dataset.cancelRecord();
}
else
dataset.cancelRecord();
break;
}
case "updaterecord":{
dataset.updateRecord();
break;
}
}
}
function initTabPage(tabpage){
var tabItems=tabpage.getAttribute("tabItems");
if (!tabItems) return;
var tabs=tabItems.split(";");
for(i=0; i<tabpage.children.length; i++){
tabpage.children.removeNode(true);
}
var row=tabpage.insertRow();
var cell=row.insertCell();
cell.firstcell=true;
cell.innerHTML="<img src=\""+xForm_Library_path+"image/start_tab.gif\" width=8px height=22px>";
var label, tabcode, index;
for(i=0; i<tabs.length; i++){
index=tabs.indexOf("=");
if (index>=0){
label=tabs.substr(0, index);
tabcode=tabs.substr(index+1);
}
else{
label=tabs;
tabcode=tabs;
}
cell=row.insertCell();
cell.tab_index=i;
cell.tab_code=tabcode;
cell.style.backgroundColor="#e5e5e5";
cell.style.borderTop="gray 1px solid";
btn=document.createElement("<button hideFocus=true style=\"border-style: none; font-size: 9pt; cursor: hand\"></button>");
btn.value=label;
btn.tabIndex=-1;
btn.style.height=15;
btn.style.backgroundColor="#e5e5e5";
btn.onclick=_tabpage_onclick;
btn.onmouseover=_tabpage_onmouseover;
btn.onmouseout=_tabpage_onmouseout;
btn.tab=cell;
cell.appendChild(btn);
cell=row.insertCell();
if (i!=tabs.length-1){
cell.innerHTML="<img src=\""+xForm_Library_path+"image/tab.gif\" width=15px height=22px>";
}
else{
cell.lastcell=true;
cell.innerHTML="<img src=\""+xForm_Library_path+"image/end_tab.gif\" width=15px height=22px>";
}
eval("if (typeof("+tabpage.id+"_"+tabcode+")!=\"undefined\"){ "+
tabpage.id+"_"+tabcode+".style.visibility=\"hidden\";"+
tabpage.id+"_"+tabcode+".style.position=\"absolute\";}");
}
cell=row.insertCell();
cell.width="100%";
setActiveTabIndex(tabpage, 0);
}
function setTabs(tabpage, tabs){
tabpage.tabs=tabs;
initTabPage(tabpage);
}
function _setActiveTab(cell){
try{
var row=getRowByCell(cell);
var tabpage=getTableByRow(row);
var selectCell=tabpage.selectTab;
if (selectCell==cell) return;
var oldCode=(selectCell)?selectCell.tab_code:"";
var newCode=cell.tab_code;
var eventName=getElementEventName(tabpage, "beforeTabChange");
var event_result=fireUserEvent(eventName, [tabpage, oldCode, newCode]);
if (event_result) throw event_result;
if (selectCell){
var prevCell=row.cells[selectCell.cellIndex-1];
var nextCell=row.cells[selectCell.cellIndex+1];
selectCell.style.backgroundColor="#e5e5e5";
selectCell.firstChild.style.backgroundColor="#e5e5e5";
selectCell.firstChild.style.fontWeight="";
if (prevCell.firstcell)
prevCell.firstChild.src=xForm_Library_path+"image/start_tab.gif";
else
prevCell.firstChild.src=xForm_Library_path+"image/tab.gif";
if (nextCell.lastcell)
nextCell.firstChild.src=xForm_Library_path+"image/end_tab.gif";
else
nextCell.firstChild.src=xForm_Library_path+"image/tab.gif";
eval("if (typeof("+tabpage.id+"_"+oldCode+")!=\"undefined\") "+tabpage.id+"_"+oldCode+".style.visibility=\"hidden\"");
}
var prevCell=row.cells[cell.cellIndex-1];
var nextCell=row.cells[cell.cellIndex+1];
cell.style.backgroundColor="#ffebcd";
cell.firstChild.style.backgroundColor="#ffebcd";
cell.firstChild.style.fontWeight="bold";
if (prevCell.firstcell)
prevCell.firstChild.src=xForm_Library_path+"image/active_start_tab.gif";
else
prevCell.firstChild.src=xForm_Library_path+"image/active_tab1.gif";
if (nextCell.lastcell)
nextCell.firstChild.src=xForm_Library_path+"image/active_end_tab.gif";
else
nextCell.firstChild.src=xForm_Library_path+"image/active_tab2.gif";
eval("if (typeof("+tabpage.id+"_"+newCode+")!=\"undefined\") "+tabpage.id+"_"+newCode+".style.visibility=\"\"");
tabpage.selectTab=cell;
tabpage.selectCode=cell.tab_code;
tabpage.selectIndex=cell.tab_index;
var eventName=getElementEventName(tabpage, "afterTabChange");
fireUserEvent(eventName, [tabpage, oldCode, newCode]);
}
catch(e){
processException(e);
}
}
function setActiveTab(table, tabcode){
if (!tabcode) return;
for(var i=0; i<table.cells.length; i++){
if (table.cells.tab_code==tabcode){
_setActiveTab(table.cells);
break;
}
}
}
function setActiveTabIndex(table, index){
for(var i=0; i<table.cells.length; i++){
if (table.cells.tab_index==index){
_setActiveTab(table.cells);
break;
}
}
}
function _tabpage_onclick(){
_setActiveTab(event.srcElement.tab);
}
function _tabpage_onmouseover(){
event.srcElement.style.color="blue";
event.srcElement.style.textDecorationUnderline=true;
}
function _tabpage_onmouseout(){
event.srcElement.style.color="black";
event.srcElement.style.textDecorationUnderline=false;
}
//-----------------------
// xForm v2.0
// Developer: bao yilei
// Nov, 2001
//-----------------------
function _execSQL(SQL, connection, pageSize, absolutePage){
try{
if (SQL){
var _url=xForm_Library_path+"getdataset.asp?SQL="+escape(SQL)+"&conn_id="+escape(connection);
if (!(pageSize>0)) pageSize=9999;
_url+="&pageSize="+pageSize;
if (absolutePage)
_url+="&absolutePage="+absolutePage;
else
_url+="&absolutePage=1";
var XMLDoc=new ActiveXObject("MSXML.DOMDocument");
XMLDoc.async=false;
XMLDoc.load(_url);
var XMLRoot=XMLDoc.documentElement;
if (isTrue(XMLRoot.selectSingleNode("SUCCESS").text)){
var result=new Object();
result.field_str=getValidStr(XMLRoot.selectSingleNode("FIELD").text);
result.record_str=getValidStr(XMLRoot.selectSingleNode("RECORD").text);
delete XMLDoc;
return result;
}
else{
var error_text=XMLRoot.selectSingleNode("ERRORTEXT").text;
delete XMLDoc;
throw constErrDownLoadFailed+"\n"+constErrDescription+":"+error_text;
}
}
}
catch(e){
processException(e);
}
}
function execSQL(SQL, connection, pageSize, absolutePage){
var result=_execSQL(SQL, connection, pageSize, absolutePage);
if (result){
if (result.field_str!=""){
var dataset=createDataset("", result.field_str, result.record_str);
dataset.pageSize=pageSize;
initDataset(dataset);
delete result;
return dataset;
}
else{
return true;
}
}
else
return false;
}
function createParameters(){
var parameters=new Array();
parameters.setValue=parameters_setValue;
parameters.getValue=parameters_getValue;
return parameters;
}
function parameters_setValue(name, value){
var count=this.length;
var founded=false;
for (var i=0; i<count; i++){
if (compareText(this.name, name)){
founded=true;
break;
}
}
if (!founded){
i=count;
this=new Object();
}
this.name=name;
this.value=value;
}
function parameters_getValue(name){
var count=this.length;
var founded=false;
for (var i=0; i<count; i++){
if (compareText(this.name, name)){
return this.value;
break;
}
}
}
function execStoredProcedure(commandText, connection, parameters, pageSize, absolutePage){
var dataset=null;
try{
if (commandText){
var param_str="";
for(var i=0; i<parameters.length; i++){
param_str += "?m_names="+parameters.name+"?m_values="+parameters.value;
}
var _url=xForm_Library_path+"execStoredProc.asp?commandText="+escape(commandText)+"&conn_id="+escape(connection)+param_str;
if (!(pageSize>0)) pageSize=9999;
_url+="&pageSize="+pageSize;
if (absolutePage)
_url+="&absolutePage="+absolutePage;
else
_url+="&absolutePage=1";
var XMLDoc=new ActiveXObject("MSXML.DOMDocument");
XMLDoc.async=false;
XMLDoc.load(_url);
var XMLRoot=XMLDoc.documentElement;
if (isTrue(XMLRoot.selectSingleNode("SUCCESS").text)){
var paramsNode=XMLRoot.selectSingleNode(" ARAMS");
var param_names=paramsNode.selectSingleNode("NAME").text;
var param_values=paramsNode.selectSingleNode("VALUE").text;
if (param_names){
param_names=param_names.split(",");
param_values=param_values.split(",");
for(var i=0; i<param_names.length; i++){
if (parameters) delete parameters;
parameters=new Object();
parameters.name=param_names;
parameters.value=getDecodeStr(param_values);
}
}
if (XMLRoot.selectSingleNode("DATASET")){
var datasetNode=XMLRoot.selectSingleNode("DATASET");
var field_str=datasetNode.selectSingleNode("FIELD").text;
var record_str=datasetNode.selectSingleNode("RECORD").text;
if (field_str){
dataset=createDataset("", field_str, record_str);
dataset.pageSize=pageSize;
initDataset(dataset);
}
}
delete XMLDoc;
}
else{
delete XMLDoc;
throw constErrDownLoadFailed+"\n"+constErrDescription+":"+XMLRoot.selectSingleNode("errortext").text;
}
}
return dataset;
}
catch(e){
processException(e);
}
}
function getDatasetByID(ID){
for(var i=0; i<_array_dataset.length; i++){
if (_array_dataset.id==ID) return _array_dataset;
}
var result;
eval("if (typeof("+ID+")!=\"undefined\") result="+ID+";");
return result;
}
function setElementDataset(element, dataset){
var _dataset;
if (typeof(dataset)=="string"){
_dataset=getDatasetByID(dataset);
}
else{
_dataset=dataset;
}
var old_dataset=element.getAttribute("dataset");
if (old_dataset){
var array=old_dataset.editors;
if (array) pArray_ex_delete(array, element);
}
if (_dataset){
var array=_dataset.editors;
if (!array){
array=new pArray();
_dataset.editors=array;
}
pArray_ex_insert(array, element);
}
element.dataset=_dataset;
}
function _dataset_getField(fields, fieldName){
var field=null;
if (typeof(fieldName)=="number"){
field=fields[fieldName];
}
else if (typeof(fieldName)=="string"){
var fieldIndex=fields["_index_"+fieldName.toLowerCase()];
if (!isNaN(fieldIndex)) field=fields[fieldIndex];
}
return field;
}
function dataset_getField(fieldName){
var dataset=this;
return _dataset_getField(dataset.fields, fieldName);
}
function appendFromDataString(dataset, recordStr, init){
if (!recordStr) return;
var records=recordStr.split(";");
for(var i=0; i<records.length; i++){
var record=records.split(",");
for(var j=0; j<record.length; j++){
record[j]=getDecodeStr(record[j]);
}
pArray_insert(dataset, "end", null, record);
if (init) initRecord(record, dataset);
}
}
function transferToDataString(dataset){
var result="";
var i=0;
var record=dataset.getFirstRecord();
while (record){
if (i!=0) result+=";";
for(var j=0; j<dataset.fields.fieldCount; j++){
if (j!=0) result+=",";
result+=getEncodeStr(record.getFieldText(j));
}
record=record.getNextRecord();
i++;
}
return result;
}
function createDataset(ID, fieldStr, recordStr){
var dataset=new pArray();
dataset.fields=new Array();
dataset.fields.fieldCount=0;
dataset.addField=dataset_addField;
dataset.sourceType="custom";
dataset.pageSie=9999;
dataset.totalPage=1;
dataset.absolutePage=1;
if (ID){
dataset.id=ID;
_array_dataset[_array_dataset.length]=dataset;
}
if (fieldStr){
var fields=fieldStr.split(",");
for(var i=0; i<fields.length; i++){
dataset.addField(fields);
}
}
appendFromDataString(dataset, recordStr);
return dataset;
}
function dataset_addField(name, dataType){
var dataset=this;
try{
if (getValidStr(name)=="")
throw constErrEmptyFieldName;
if (dataset.prepared)
throw constErrAddDataField;
name=name.toLowerCase();
var field=new Object;
var i=dataset.fields.length;
dataset.fields["_index_"+name]=i;
dataset.fields=field;
dataset.fields.fieldCount++;
field.index=i;
field.dataset=dataset;
field.fields=dataset.fields;
field.name=name;
field.label=name;
field.fieldName=name;
field.visible=true;
field.dataType=dataType;
switch (dataType){
case "int":;
case "float":{
field.editorType="text";
field.align="right";
field.vAlign="top";
break;
}
case "longtext":{
field.editorType="textarea";
field.align="left";
field.vAlign="top";
break;
}
case "bool":{
field.editorType="checkbox";
field.align="middle";
field.vAlign="middle";
break;
}
case "date":{
field.editorType="text";
field.align="left";
field.vAlign="top";
field.size=10;
break;
}
case "datetime":{
field.editorType="text";
field.align="left";
field.vAlign="top";
field.size=19;
break;
}
case "time":{
field.editorType="text";
field.align="left";
field.vAlign="top";
field.size=8;
break;
}
default:{
field.editorType="text";
field.align="left";
field.vAlign="top";
break;
}
}
return field;
}
catch(e){
processException(e);
}
}
function initFieldArray(dataset, fields){
var fieldCount=fields.fieldCount;
fields.dataset=dataset;
for(var i=0; i<fieldCount; i++){
if (dataset.id){
if (fields.id && typeof(_element_property)!="undefined"){
var root=_element_property[fields.id];
if (root){
var property_count=root.length;
for(var j=0; j<property_count; j++)
eval("fields."+root[j].property+"=getDecodeStr(root[j].value)");
}
}
}
fields[fieldCount+i]=new Object;
fields[fieldCount+i].name="_cur_"+fields.name;
fields["_index__cur_"+fields.name]=fieldCount+i;
fields[fieldCount*2+i]=new Object;
fields[fieldCount*2+i].name="_old_"+fields.name;
fields["_index__old_"+fields.name]=fieldCount*2+i;
fields.readOnly=isTrue(fields.readOnly);
fireDatasetEvent(dataset, "onInitField", [dataset, fields]);
}
}
function initRecord(record, dataset, skipSaveOld){
record.dataset=dataset;
record.fields=dataset.fields;
record.recordState="none";
record.pageIndex=1;
record.visible=true;
record.saveOldValue=dataset._saveOldValue;
record.getFieldValue=dataset._getFieldValue;
record.getFieldText=dataset._getFieldText;
record.setFieldValue=dataset._setFieldValue;
record.getPrevRecord=dataset._getPrevRecord;
record.getNextRecord=dataset._getNextRecord;
if (!skipSaveOld) record.saveOldValue();
}
function initDataset(dataset){
if (dataset.prepared) return;
dataset.disableControlCount=1;
dataset.disableEventCount=1;
try{
if (dataset.id && typeof(_element_property)!="undefined"){
var root=_element_property[dataset.id];
if (root){
var property_count=root.length;
for(var i=0; i<property_count; i++)
eval("dataset."+root.property+"=getDecodeStr(root.value)");
}
}
dataset.window=window;
dataset.bof=true;
dataset.eof=true;
dataset.state="none";
dataset.readOnly=isTrue(dataset.readOnly);
dataset.sortFields="";
dataset.loadedPage=new Array();
if (dataset.absolutePage>0) dataset.loadedPage[dataset.absolutePage-1]=true;
dataset._saveOldValue=record_saveOldValue;
dataset._getFieldValue=record_getFieldValue;
dataset._getFieldText=record_getFieldText;
dataset._setFieldValue=record_setFieldValue;
dataset._getPrevRecord=record_getPrevRecord;
dataset._getNextRecord=record_getNextRecord;
dataset.getField=dataset_getField;
dataset.getFieldValue=dataset_getFieldValue;
dataset.getFieldText=dataset_getFieldText;
dataset.setFieldValue=dataset_setFieldValue;
dataset.disableControl=dataset_disableControl;
dataset.enableControl=dataset_enableControl;
dataset.disableEvent=dataset_disableEvent;
dataset.enableEvent=dataset_enableEvent;
dataset.refreshControls=dataset_refreshControls;
dataset.setRecord=dataset_setRecord;
dataset.setReadOnly=dataset_setReadOnly;
dataset.setFieldReadOnly=dataset_setFieldReadOnly;
dataset.getFirstRecord=dataset_getFirstRecord;
dataset.getLastRecord=dataset_getLastRecord;
dataset.move=dataset_move;
dataset.movePrev=dataset_movePrev;
dataset.moveNext=dataset_moveNext;
dataset.moveFirst=dataset_moveFirst;
dataset.moveLast=dataset_moveLast;
dataset.find=dataset_find;
dataset.locate=dataset_locate;
dataset.updateRecord=dataset_updateRecord;
dataset.cancelRecord=dataset_cancelRecord;
dataset.insertRecord=dataset_insertRecord;
dataset.deleteRecord=dataset_deleteRecord;
dataset.copyRecord=dataset_copyRecord;
dataset.loadpage=dataset_loadpage;
dataset.loadDetail=dataset_loadDetail;
dataset.isPageLoaded=dataset_isPageLoaded;
dataset.moveToPage=dataset_moveToPage;
dataset.setMasterDataset=dataset_setMasterDataset;
dataset.flushData=dataset_flushData;
dataset.clearData=dataset_clearData;
dataset.passData=dataset_passData;
dataset.sort=dataset_sort;
fireDatasetEvent(dataset, "onInitDataset", [dataset]);
dataset.setReadOnly(isTrue(dataset.readOnly));
initFieldArray(dataset, dataset.fields);
var record=dataset.firstUnit;
while (record){
initRecord(record, dataset);
record=record.nextUnit;
}
dataset.moveFirst();
dataset.prepared=true;
}
finally{
dataset.disableControlCount=0;
dataset.disableEventCount=0;
}
}
function _dataset_setMasterDataset(dataset, masterDataset, linkString, detailSql){
if (dataset.masterDataset){
var array=dataset.masterDataset.detailDatasets;
if (array) pArray_ex_delete(array, dataset);
}
if (typeof(masterDataset)=="string") masterDataset=getDatasetByID(masterDataset);
dataset.masterDataset=masterDataset;
dataset.detailSql=detailSql;
if (masterDataset){
var array=masterDataset.detailDatasets;
if (!array){
array=new pArray();
masterDataset.detailDatasets=array;
}
pArray_ex_insert(array, dataset);
var links=linkString.split(";");
var field, fieldName;
dataset.masterLinks=new Array();
for(var i=0; i<links.length; i++){
index=links.indexOf("=");
dataset.masterLinks=new Object();
if (index>=0){
fieldName=links.substr(0, index);
}
else{
fieldName=links;
}
field=masterDataset.getField(fieldName);
if (field){
dataset.masterLinks.master_field=field.name;
dataset.masterLinks.master_index=field.index;
}
else
throw constErrCantFindMasterField.replace("%s", fieldName);
if (index>=0){
fieldName=links.substr(index+1);
}
else{
fieldName=links;
}
field=dataset.getField(fieldName);
if (field){
dataset.masterLinks.detail_field=field.name;
dataset.masterLinks.detail_index=field.index;
}
else{alert(dataset.id)
throw constErrCantFindDetailField.replace("%s", fieldName);
}
}
delete links;
delete dataset.loaded_detail;
dataset.loaded_detail=new Array;
masterDataset.loadDetail();
}
}
function dataset_setMasterDataset(masterDataset, linkString, detailSql){
var dataset=this;
try{
_dataset_setMasterDataset(dataset, masterDataset, linkString, detailSql);
}
catch (e){
processException(e);
}
}
function _dataset_loadDetail(dataset){
if (!dataset.record) return;
if (dataset.detailDatasets){
var unit=dataset.detailDatasets.firstUnit;
while (unit && unit.data){
try{
var detail_dataset=unit.data;
var keycode="";
for(var i=0; i<detail_dataset.masterLinks.length; i++){
keycode+=dataset.record[detail_dataset.masterLinks.master_index];
}
var keycode_founded=false;
for(var i=0; i<detail_dataset.loaded_detail.length; i++){
if (detail_dataset.loaded_detail==keycode){
keycode_founded=true;
break;
}
}
if (!keycode_founded){
var dataset_inserted=false;
var event_result=fireDatasetEvent(detail_dataset, "beforeLoadDetail", [detail_dataset, dataset]);
if (event_result) throw event_result;
if (detail_dataset.detailSql){
var SQL=detail_dataset.detailSql;
for(var i=0; i<detail_dataset.masterLinks.length; i++){
var re="["+detail_dataset.masterLinks.master_field+"]";
SQL=SQL.replace(re, dataset.record[detail_dataset.masterLinks.master_index]);
}
var result=_execSQL(SQL, detail_dataset.connection);
if (result)
appendFromDataString(detail_dataset, result.record_str, true);
delete result;
}
detail_dataset.loaded_detail[detail_dataset.loaded_detail.length]=keycode;
}
detail_dataset.refreshControls();
detail_dataset.moveFirst();
unit=unit.nextUnit;
}
catch (e){
processException(e);
}
}
}
}
function dataset_loadDetail(){
var dataset=this;
try{
_dataset_loadDetail(dataset);
}
catch (e){
processException(e);
}
}
function dataset_isPageLoaded(pageIndex){
var dataset=this;
return dataset.loadedPage[pageIndex-1];
}
function _dataset_loadpage(dataset, pageIndex){
if (pageIndex<1 || pageIndex>dataset.totalPage || dataset.isPageLoaded(pageIndex)) return;
if (dataset.masterDataset) throw constErrLoadPageOnDetailDataset;
if (dataset.sortFields) throw constErrLoadPageAfterSort;
var result=_execSQL(dataset.sql, dataset.connection, dataset.pageSize, pageIndex);
if (result && result.record_str){
var tmpArray=new pArray();
appendFromDataString(tmpArray, result.record_str);
var record=tmpArray.lastUnit;
while (record){
initRecord(record, dataset);
record.pageIndex=pageIndex;
record=record.prevUnit;
}
var inserted=false;
var record=dataset.lastUnit;
while (record){
if (record.pageIndex<pageIndex){
pArray_insertArray(dataset, "after", record, tmpArray);
inserted=true;
break;
}
record=record.prevUnit;
}
if (!inserted) pArray_insertArray(dataset, "begin", null, tmpArray);
delete tmpArray;
dataset.loadedPage[pageIndex-1]=true;
dataset.refreshControls();
}
delete result;
}
function dataset_loadpage(pageIndex){
try{
var dataset=this;
_dataset_loadpage(dataset, pageIndex);
}
catch (e){
processException(e);
}
}
function _dataset_clearData(dataset){
dataset.disableControl();
try{
if (dataset.loaded_detail) delete dataset.loaded_detail;
if (dataset.loadedPage) delete dataset.loadedPage;
dataset.loadedPage=new Array();
if (dataset.absolutePage>0) dataset.loadedPage[dataset.absolutePage-1]=true;
pArray_clear(dataset);
dataset.moveFirst();
}
finally{
dataset.enableControl();
dataset.refreshControls();
}
}
function dataset_clearData(){
try{
var dataset=this;
_dataset_clearData(dataset);
}
catch (e){
processException(e);
}
}
function _dataset_passData(to_dataset, mode, record, from_dataset){
pArray_insertArray(to_dataset, mode, record, from_dataset);
}
function dataset_passData(mode, record, from_dataset){
var dataset=this;
pArray_insertArray(dataset, mode, record, from_dataset);
}
function freeDataset(dataset){
if (dataset.detailDatasets) pArray_clear(dataset.detailDatasets);
if (dataset.editors) pArray_clear(dataset.editors);
delete dataset.masterLinks;
pArray_clear(dataset.fields);
dataset.clearData();
delete dataset;
}
function _dataset_flushData(dataset, SQL, connection, pageSize, absolutePage){
dataset.disableControl();
try{
if (!SQL) SQL=dataset.sql;
if (!connection) connection=dataset.connection;
if (typeof(pageSize)=="undefined") pageSize=dataset.pageSize;
if (typeof(absolutePage)=="undefined") absolutePage=dataset.absolutePage;
dataset.clearData();
dataset.sql=SQL;
dataset.connection=connection;
dataset.pageSize=pageSize;
dataset.absolutePage=absolutePage;
var result=_execSQL(SQL, connection, pageSize, absolutePage);
if (result){
appendFromDataString(dataset, result.record_str, true);
dataset.moveFirst();
}
delete result;
}
finally{
dataset.enableControl();
dataset.refreshControls();
}
}
function dataset_flushData(SQL, connection, pageSize, absolutePage){
try{
var dataset=this;
_dataset_flushData(dataset, SQL, connection, pageSize, absolutePage)
}
catch (e){
processException(e);
}
}
function dataset_moveToPage(pageIndex){
try{
var dataset=this;
if (!dataset.isPageLoaded(pageIndex)) _dataset_loadpage(dataset, pageIndex);
var record=dataset.getFirstRecord();
while (record){
if (record.pageIndex>=pageIndex){
_dataset_setRecord(dataset, record);
break;
}
record=record.getNextRecord();
}
}
catch (e){
processException(e);
}
}
function record_saveOldValue(){
var record=this;
var fieldCount=record.fields.fieldCount;
for(var i=0; i<fieldCount; i++){
record[fieldCount+i]=record;
record[fieldCount*2+i]=record;
}
}
function _dataset_sort(dataset, fields){
function quickSort(_array, _fields, _low, _high){
function compareRecord(record, _mid_data){
if (_fields.length>0){
var value1, value2;
for (var i=0; i<_fields.length; i++){
if (_field.ascend){
value1=1;
value2=-1;
}
else{
value1=-1;
value2=1;
}
if (record.getFieldValue(_fields.index)>_mid_data){
return value1;
}
else if (record.getFieldValue(_fields.index)<_mid_data){
return value2;
}
}
}
else{
if (record.recordno>_mid_data[0]){
return 1;
}
else if (record.recordno<_mid_data[0]){
return -1;
}
}
return 0;
}
var low=_low;
var high=_high;
var mid=getInt((low+high)/2);
var mid_data=new Array();
if (_fields.length>0){
for (var i=0; i<_fields.length; i++)
mid_data=_array[mid].getFieldValue(_fields.index);
}
else{
mid_data[0]=_array[mid].recordno;
}
do {
while (compareRecord(_array[low], mid_data)<0) low++;
while (compareRecord(_array[high], mid_data)>0) high--;
if (low<=high){
var tmp=_array[low];
_array[low]=_array[high];
_array[high]=tmp;
low++;
high--;
}
}while (low<=high)
if (high>_low) quickSort(_array, _fields, _low, high);
if (_high>low) quickSort(_array, _fields, low, _high);
}
var _field=new Array();
if (fields){
var fields_array=fields.split(",");
for (var i=0; i<fields_array.length; i++){
_field=new Object();
_field.ascend=true;
var firstchar=fields_array.substring(0, 1);
var fieldName;
if (firstchar=="+" || firstchar=="-"){
if (firstchar=="-") _field.ascend=false;
fieldName=fields_array.substring(1, fields_array.length);
}
else{
fieldName=fields_array;
}
for (var j=0; j<dataset.fields.fieldCount; j++){
if (compareText(fieldName, dataset.fields[j].name)){
_field.index=j;
break;
}
}
}
}
function customSort(_array, _low, _high){
function compareRecord(record1, record2){
var event_name=getElementEventName(dataset, "onCompareRecord");
if (isUserEventDefined(event_name)){
return fireUserEvent(event_name, [record1.dataset, record1, record2]);
}
}
var low=_low;
var high=_high;
var mid_record=_array[getInt((low+high)/2)];
do {
while (compareRecord(_array[low], mid_record)<0) low++;
while (compareRecord(_array[high], mid_record)>0) high--;
if (low<=high){
var tmp=_array[low];
_array[low]=_array[high];
_array[high]=tmp;
low++;
high--;
}
}while (low<=high)
if (high>_low) customSort(_array, _low, high);
if (_high>low) customSort(_array, low, _high);
}
var _field=new Array();
if (fields){
if (fields!="#custom"){
var fields_array=fields.split(",");
for (var i=0; i<fields_array.length; i++){
_field=new Object();
_field.ascend=true;
var firstchar=fields_array.substring(0, 1);
var fieldName;
if (firstchar=="+" || firstchar=="-"){
if (firstchar=="-") _field.ascend=false;
fieldName=fields_array.substring(1, fields_array.length);
}
else{
fieldName=fields_array;
}
for (var j=0; j<dataset.fields.fieldCount; j++){
if (compareText(fieldName, dataset.fields[j].name)){
_field.index=j;
break;
}
}
}
}
}
if (!dataset.firstUnit) return;
var tmp_array=new Array();
try{
var record=dataset.firstUnit;
var i=0;
while (record){
tmp_array[i++]=record;
if (!dataset.sortFields) record.recordno=i;
record=record.nextUnit;
}
dataset.sortFields=fields;
if (fields!="#custom"){
quickSort(tmp_array, _field, 0, tmp_array.length-1);
}
else{
customSort(tmp_array, 0, tmp_array.length-1);
}
dataset.firstUnit=null;
dataset.lastUnit=null;
for (var i=0; i<tmp_array.length; i++){
pArray_insert(dataset, "end", null, tmp_array);
}
dataset.refreshControls();
}
finally{
delete tmp_array;
for (var i=0; i<_field.length; i++) delete _field;
delete _field;
}
}
function dataset_sort(fields){
try{
var dataset=this;
_dataset_sort(dataset, fields);
}
catch (e){
processException(e);
}
}
function dataset_setReadOnly(readOnly){
var dataset=this;
dataset.readOnly=readOnly;
_broadcastDatasetMsg(_notifyDatasetStateChanged, dataset);
}
function dataset_setFieldReadOnly(fieldName, readOnly){
var dataset=this;
var field=dataset.getField(fieldName);
if (field){
field.readOnly=readOnly;
_broadcastFieldMsg(_notifyFieldStateChanged, dataset, dataset.record, field);
}
}
function fireDatasetEvent(dataset, eventName, param){
if (dataset.disableEventCount>0) return;
var result;
result=fireUserEvent(getElementEventName(dataset, eventName), param);
return result;
}
function dataset_isRecordValid(record){
if (!record)
return false;
else{
var result=(record.recordState!="delete" && record.recordState!="discard" && record.visible);
var dataset=record.dataset;
var masterDataset=dataset.masterDataset;
if (result){
if (masterDataset){
if (!masterDataset.record) return false;
for(var i=0; i<dataset.masterLinks.length; i++){
if (masterDataset.record[dataset.masterLinks.master_index]!=
record[dataset.masterLinks.detail_index]){
result=false;
break;
}
}
}
if (dataset.filtered && !(record==dataset.record && dataset.state!="none")){
var event_name=getElementEventName(dataset, "onFilterRecord");
if (isUserEventDefined(event_name)){
if (!fireUserEvent(event_name, [dataset, record])) result=false;
}
}
}
return result;
}
}
function dataset_setBofnEof(dataset, BofValue, EofValue){
if (dataset.bof!=BofValue || dataset.eof!=EofValue){
dataset.bof=BofValue;
dataset.eof=EofValue;
_broadcastDatasetMsg(_notifyDatasetStateChanged, dataset, dataset.record);
}
}
function _do_dataset_setRecord(dataset, record){
if (dataset.record!=record){
if (dataset.record){
_dataset_updateRecord(dataset);
}
if (dataset.detailDatasets){
var detailDataset=dataset.detailDatasets.firstUnit;
while (detailDataset){
_dataset_updateRecord(detailDataset);
detailDataset=detailDataset.nextUnit;
}
}
var event_result=fireDatasetEvent(dataset, "beforeScroll", [dataset]);
if (event_result) throw event_result;
dataset.record=record;
dataset.modified=false;
if (dataset.disableControlCount<1) dataset.loadDetail();
fireDatasetEvent(dataset, "afterScroll", [dataset]);
_broadcastDatasetMsg(_notifyDatasetCursorChanged, dataset, record);
}
}
function _dataset_setRecord(dataset, record){
_do_dataset_setRecord(dataset, record);
if (record){
dataset_setBofnEof(dataset, false, false);
dataset_setBofnEof(dataset, false, false);
}
}
function dataset_setRecord(record){
try{
_dataset_setRecord(this, record);
}
catch(e){
processException(e);
}
}
function validateDatasetCursor(dataset){
var down_found=false, up_found=false;
var record=dataset.record;
while (record){
if (dataset_isRecordValid(record)){
_do_dataset_setRecord(dataset, record);
up_found=true;
break;
}
record=_record_getPrevRecord(record);
}
var record=dataset.record;
while (record){
if (dataset_isRecordValid(record)){
_do_dataset_setRecord(dataset, record);
down_found=true;
break;
}
record=_record_getNextRecord(record);
}
if (!up_found && !down_found)
_do_dataset_setRecord(dataset, null);
dataset_setBofnEof(dataset, (!up_found), (!down_found));
}
function dataset_setState(dataset, state){
dataset.state=state;
_broadcastDatasetMsg(_notifyDatasetStateChanged, dataset, dataset.record);
fireDatasetEvent(dataset, "onStateChanged", [dataset]);
}
function record_getFieldValue(fieldName){
var record=this;
var fields=record.fields;
var fieldIndex=-1;
var result;
if (fields){
if (typeof(fieldName)=="number"){
fieldIndex=fieldName;
}
else if (typeof(fieldName)=="string"){
fieldIndex=fields["_index_"+fieldName.toLowerCase()];
}
if (!isNaN(fieldIndex) && fieldIndex!=-1){
result=getTypedValue(record[fieldIndex], fields[fieldIndex].dataType);
}
}
return result;
}
function dataset_getFieldValue(fieldName){
var dataset=this;
if (dataset.record)
return dataset.record.getFieldValue(fieldName);
else
return "";
}
function record_getFieldText(fieldName){
var record=this, field, result="";
var value=record.getFieldValue(fieldName);
var field=record.dataset.getField(fieldName);
switch (typeof(value)){
case "number":{
if (!isNaN(value)){
if (field.dataType=="float")
return result=formatFloat(value, 2);
else
return result=value+"";
}
break;
}
case "object":{
if (!isNaN(value)){
if (field){
result=formatDateTime(value, field.dataType);
}
}
break;
}
default:{
result=getValidStr(value);
break;
}
}
return result;
}
function dataset_getFieldText(fieldName){
var dataset=this;
if (dataset.record)
return dataset.record.getFieldText(fieldName);
else
return "";
}
function _record_setFieldValue(record, fieldName, value){
var dataset=record.dataset;
var fields=record.fields;
var fieldIndex=-1;
if (fields){
if (typeof(fieldName)=="number"){
fieldIndex=fieldName;
}
else if (typeof(fieldName)=="string"){
fieldIndex=fields["_index_"+fieldName.toLowerCase()];
}
if (!isNaN(fieldIndex) && fieldIndex!=-1){
var event_result=fireDatasetEvent(dataset, "beforeChange", [dataset, fields[fieldIndex], value]);
if (event_result) throw event_result;
switch (fields[fieldIndex].dataType){
case "float":{
record[fieldIndex]=parseFloat(value);
break;
}
case "int":{
if (typeof(value)=="number")
record[fieldIndex]=Math.round(value);
else
record[fieldIndex]=Math.round(parseFloat(value));
break;
}
case "date":;< |