📄 service.js
字号:
}
function doServ()
{
//得到数据岛
var argu = createArgument(doServ.arguments);
//
var req = getRequest(this.serviceName,argu);
var rtn=true;
if(!rtn)
return;
var res = sendd(req);
return res;
}
function doServiceSave()
{
//得到数据岛
var argu = createArgument(doServiceSave.arguments);
//
var req = getRequest(this.serviceName,argu);
var res = sendSave(req);
return res;
}
function getRtnCode()
{
return this.rtnCode;
}
function getCode()
{
return this.code;
}
function getMessage()
{
return this.message;
}
////////////////////类Service定义结束///////////////////////////////
//弹出提示窗口
//所有页面内的alert()需替换成showMessage();
//功能:弹出提示,视消息级别flag,在工作区状态栏给出提示!
//flag:消息级别:-1——调试信息;0——一般消息提示;1——警告信息;2——错误信息;3——致命错误
//默认为1——警告信息
function showMessage(str,flag)
{
if(flag == null)
{
alert("警告:\n\n"+str);
if(top.FRM_RIGHT !=null)
top.FRM_RIGHT.setMessage(str,1);
return;
}else if(flag == -1){
var url = location.href;
var idx = url.indexOf("/work/");
var file = url.substring(0,idx+6)+"/public/js/showMessage.htm";
file="showMessage.htm";
var rtn = showModalDialog(file,str,'dialogWidth=480px;dialogheight=530px;status:no;help:no');
return (rtn == null)? false : true;;
}else{
alert("消息级别:"+flag+"\n\n"+str);
}
}
/*
//审核
//sExp:审核的表达式:id1+id2>id3
//sMsg:审核不满足条件的提示信息,提示信息
//关系表达式:>,>=,<,<=,==
//运算符:(,),+,-,*,/
var aSymbol = new Array("+","-","*","<",">","=","/","(",")");//按可能出现的几率排序
function auditExp(sExp,sMsg)
{
}
*/
/*--------------------------------------------------------------------------------
/**节点之间的数据复制。一般用于把doservice()返回的数据,映射到页面的相应的数据岛中。
* @param oSrc 获得原数据的节点。
* @param oTarget 一般为页面上的数据岛,也可以是个节点。
* @param targetNodeName 目标节点名称。必须写出该节点的完整路径,如:ROOT/ITEMS
*/
function xmlNodeCopy(oSrc,oTarget,targetNodeName){
var oSrcNode = oSrc.getElementsByTagName(targetNodeName)(0);
var oTargetNode = oTarget.getElementsByTagName(targetNodeName)(0);
//如果没有子节点则视为单独的节点,直接对其赋值
if(oSrcNode.childNodes.length == 0) {
oTargetNode.text = oSrcNode.text;
return;
}
//如果有子节点,为处理可增行的节点问题,将先删除目标节点的所有自节点,
//然后将源节点的所有子节点拷贝到目标节点
while(oTargetNode.childNodes.length > 0)
{
oTargetNode.removeChild(oTargetNode.childNodes(0));
}
for(var i=0;i<oSrcNode.childNodes.length;i++)
{
oTargetNode.appendChild(oSrcNode.childNodes(i).cloneNode(true));
}
}
/**此函数用于把输入的日期变成输入月的第一天的日期。
* 用于DataWindow内,例如:用户输入"2002-02-03",界面显示为"2002-02-01";
* @param1 oDataWindow 数据窗口
* @param2 obj 格式化日期的输入框
*/
function formatMonthFirstD(oDataWindow,obj)
{
var iRowNum=oDataWindow.getObjPoint(obj)[0];
var iColNum=oDataWindow.getObjPoint(obj)[1]
var tempDate=oDataWindow.getCellValue(iRowNum,iColNum);
oDataWindow.setCellValue(iRowNum,iColNum,formatMonthFirst(tempDate));
}
/**此函数用于把输入的日期变成输入月的第一天的日期。
* 例如:用户输入"2002-02-03",界面显示为"2002-02-01";
* @param strDate 要格式化日期值,字符型
* @return 格式化后的月初值
*/
function formatMonthFirst(strDate){
var tempDate=strDate;
var index1=tempDate.lastIndexOf(".");
var index2=tempDate.lastIndexOf("-");
if ((index1!=-1) || (index2!=-1))
{
var index3=index1;
if (index2>index1)
{
index3=index2;
}
return tempDate.substring(0,index3+1)+"01";
}
else if ((index1==-1) && (index2==-1) && tempDate.length==8)
{
return tempDate.substring(0,tempDate.length-2)+"01";
}
}
/**此函数用于把输入的日期变成输入月的最后一天的日期。
* 用于DataWindow内,例如:用户输入"2002-03-03",界面显示为"2002-03-31";
* @param1 oDataWindow 数据窗口
* @param2 obj 格式化日期的输入框
*/
function formatMonthLastD(oDataWindow,obj)
{
var iRowNum=oDataWindow.getObjPoint(obj)[0];
var iColNum=oDataWindow.getObjPoint(obj)[1]
var tempDate=oDataWindow.getCellValue(iRowNum,iColNum);
oDataWindow.setCellValue(iRowNum,iColNum,formatMonthLast(tempDate));
}
/**此函数用于把输入的日期变成输入月的最后一天的日期。
* 例如:用户输入"2002-03-03",界面显示为"2002-03-31";
* @param strDate 要格式化日期值,字符型
* @return 格式化后的月末值
*/
function formatMonthLast(strDate)
{
var tempDate=strDate;
var index1=tempDate.lastIndexOf(".");
var index2=tempDate.lastIndexOf("-");
var index11=tempDate.indexOf(".");
var index22=tempDate.indexOf("-");
//形式如2002-2-2,2002.2.3的解析
if ((index1!=-1) || (index2!=-1))
{
var index3=index1;
if (index2>index1)
{
index3=index2;
}
index33=index11;
if ((index22<index11 && index22!=-1)||(index11==-1 && index22!=-1))
{
index33=index22;
}
var dTempDate=new Date();
dTempDate.setYear(getStrInt(tempDate.substring(0,index33)));
dTempDate.setMonth(getStrInt(tempDate.substring(index33+1,index3)));
//设置当月的最后一天
dTempDate.setDate(0);
return tempDate.substring(0,index3+1)+dTempDate.getDate();
//形式如20020202的解析
}
else if ((index1==-1) && (index2==-1) && tempDate.length==8)
{
var dTempDate=new Date();
dTempDate.setYear(getStrInt(tempDate.substring(0,4)));
dTempDate.setMonth(getStrInt(tempDate.substring(4,6)));
//设置当月的最后一天
dTempDate.setDate(0);
return tempDate.substring(0,tempDate.length-2)+dTempDate.getDate();
}
}
/** 在xml里按关键字查找一个节点的值。
* @param1 parentNode 要查找节点的上级节点
* @param2 keyNodeName 关键字节点的名称
* @param3 keyNodeValue 关键字节点的值
* @param4 resultNodeName 返回节点的名称
* @return resultNodeValue 返回节点的值
*/
function findNodeValue(parentNode,keyNodeName,keyNodeValue,resultNodeName)
{
var resultNodeValue="";
for (var i=0;i<parentNode.length;i++ )
{
var snv=parentNode(i).getElementsByTagName(keyNodeName).item(0).text;
if (snv==keyNodeValue)
{
resultNodeValue=parentNode(i).getElementsByTagName(resultNodeName).item(0).text;
break;
}
}
return resultNodeValue;
}
/** 在xml里按关键字查找一条节点记录。
* @param1 parentNode 要查找节点的上级节点
* @param2 keyNodeName 关键字节点的名称
* @param3 keyNodeValue 关键字节点的值
* @return resultNode 返回符合条件的节点(与keyNode同级)记录,包括多个字段。
*/
function findNode(parentNode,keyNodeName,keyNodeValue)
{
var resultNodeValue="";
for (var i=0;i<parentNode.length;i++ )
{
var snv=parentNode(i).getElementsByTagName(keyNodeName).item(0).text;
if (snv==keyNodeValue)
{
resultNode=parentNode(i);
break;
}
}
return resultNode;
}
/**用于把一个日期string 转换成一个 Date 类型的值
* @param strDate 要转换的字符串 ‘20020303’ 或 ‘2002-3-3’ 或 ‘2002.3.3’
* @return 日期类型值
*/
function strToDate(strDate)
{
var tempDate=strDate;
var index1=tempDate.lastIndexOf(".");
var index2=tempDate.lastIndexOf("-");
var index11=tempDate.indexOf(".");
var index22=tempDate.indexOf("-");
//形式如2002-2-2,2002.2.3的解析
if ((index1!=-1) || (index2!=-1))
{
var index3=index1;
if (index2>index1)
{
index3=index2;
}
index33=index11;
if ((index22<index11 && index22!=-1)||(index11==-1 && index22!=-1))
{
index33=index22;
}
var dTempDate=new Date();
dTempDate.setYear(tempDate.substring(0,index33));
var sTemp=getStrInt(tempDate.substring(index33+1,index3));
dTempDate.setMonth(sTemp-1);
var sTemp1=getStrInt(tempDate.substring(index3+1,tempDate.length));
dTempDate.setDate(sTemp1);
return dTempDate;
//形式如20020202的解析
}
else if ((index1==-1) && (index2==-1) && tempDate.length==8)
{
var dTempDate=new Date();
dTempDate.setYear(tempDate.substring(0,4));
dTempDate.setMonth(getStrInt(tempDate.substring(4,6))-1);
dTempDate.setDate(getStrInt(tempDate.substring(6,8)));
return dTempDate;
}
}
/** 把“09” 转换成 “9”
* 因为 parseInt("08"),parseInt("09")返回的结果为0;
*/
function getStrInt(srcStr)
{
if (srcStr.substring(0,1)=="0")
{
srcStr=srcStr.substring(1,2);
}
return srcStr;
}
/** 把一个日期类型的值转换成,按一定格式格式化的字符串。(目前只做‘yyyy-mm-dd’)
* @dDate 要格式化的日期值
* @return 格式化后的日期字符串
*/
function formatDate(dDate)
{
return dDate.getYear()+"-"+(dDate.getMonth()+1)+"-"+dDate.getDate();
}
/** 用于格式化xml文件的节点值
* 只针对<>33,333,333.00<>数值节点,转换为<>33333333.00<>
* <>200.200,000%<> 转换为<>2.00200000<>
* @param 页面数据岛的ID
* @param 要格式化节点的上级节点
* @return 格式化后的xml数据
*/
function formatXML(xmlId,nodeName)
{
formatNode(xmlId.getElementsByTagName(nodeName));
return xmlId.xml;
}
/** 只针对<>33,333,333.00<>数值节点,转换为<>33333333.00<>
* <>200.200,000%<> 转换为<>2.00200000<>
* 不能用在<>sss,ssss,ss<>的节点。
* @param obj 要格式化的xml节点的上级节点。
*
*/
function formatNode(obj)
{
for (var j=0;j<obj.length;j++)
{
for (var i=0;i<obj(j).childNodes.length;i++)
{
var sValue=obj(j).childNodes(i).text;
if (sValue.indexOf(",")==-1 && sValue.indexOf("%")==-1)
{
continue;
}
var sResult="";
if (sValue.indexOf(",")!=-1)
{
var aValue=sValue.split(",");
for (var j1=0;j1<aValue.length;j1++ )
{
sResult=sResult+aValue[j1];
}
}
if (sResult=="")
{
sResult=sValue;
}
if (sValue.indexOf("%")!=-1)
{
var sResult1=parseFloat(sResult,10)/100;
sResult=sResult1.toString();
}
obj(j).childNodes(i).text=sResult;
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -