js_service2

/**此函数用于把输入的日期变成输入月的最后一天的日期。
*  用于DataWindow内,例如:用户输入"2002-03-03",界面显示为"2002-03-31";
*  @param oDataWindow 数据窗口
*  @param 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.setDate(1);
		dTempDate.setYear(parseInt(tempDate.substring(0, index33), 10));
		var iMonth=parseInt(tempDate.substring(index33 + 1, index3), 10);
		dTempDate.setMonth(iMonth);
		//设置当月的最后一天
		dTempDate.setDate(0);
		if (iMonth==1 || iMonth==3 || iMonth==5  || iMonth==7  || iMonth==8 || iMonth==10 || iMonth==12 ) //月份1有问题,直接拼串
		{
			return tempDate.substring(0, index3 + 1) + "31";
		}
		return tempDate.substring(0, index3 + 1) + dTempDate.getDate();
	//形式如20020202的解析
	} else if ((index1 == -1) && (index2 == -1) && tempDate.length == 8) {
		var dTempDate = new Date();
        dTempDate.setDate(1);
		dTempDate.setYear(parseInt(tempDate.substring(0, 4), 10));
		var iMonth=parseInt(tempDate.substring(4, 6), 10);
		dTempDate.setMonth(iMonth);
		//设置当月的最后一天
		dTempDate.setDate(0);
		if (iMonth==1 || iMonth==3 || iMonth==5  || iMonth==7  || iMonth==8 || iMonth==10 || iMonth==12)
		{
			return tempDate.substring(0, tempDate.length - 2) + "31";
		}
		return tempDate.substring(0, tempDate.length - 2) + dTempDate.getDate();
	}
}

/** 在xml里按关键字查找一个节点的值。
 *   @param parentNode 要查找节点的上级节点 
 *   @param keyNodeName 关键字节点的名称
 *   @param keyNodeValue 关键字节点的值
 *   @param 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里按关键字查找一条节点记录。
*   @param parentNode 要查找节点的上级节点 
*   @param keyNodeName 关键字节点的名称
*   @param keyNodeValue 关键字节点的值
*   @return resultNode 返回符合条件的节点(与keyNode同级)记录,包括多个字段。
*/
function findNode(parentNode, keyNodeName, keyNodeValue) {
	var resultNode = null;

	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 year = parseInt(tempDate.substring(0, index33), 10);
		var month = parseInt(tempDate.substring(index33 + 1, index3), 10)-1;
		var date = parseInt(tempDate.substring(index3 + 1, tempDate.length), 10);
		var dTempDate = new Date(year,month,date);
		return dTempDate;
	//形式如20020202的解析
	} else if ((index1 == -1) && (index2 == -1) && tempDate.length == 8) {

		var year = parseInt(tempDate.substring(0, 4), 10);
		var month = parseInt(tempDate.substring(4, 6), 10) - 1;
		var date = parseInt(tempDate.substring(6, 8), 10);
		var dTempDate = new Date(year,month,date);
		return dTempDate;
	}
}

/** 把一个日期类型的值转换成,按一定格式格式化的字符串。(目前只做‘yyyy-mm-dd’)
*   @param dDate 要格式化的日期值,为Date类型 
*   @return 格式化后的日期字符串
*   @history:
*    Modify by gaozg 2006-05-23
*    修改对天数不能格式化为两位的错误 
*    modified by 高占国 2006-07-06
*    该方法存在问题传入参数如果日期在2000年之前如(1999-02-01),则返回的串为99-02-01
*    修改getYear()方法为getFullYear
*/
function formatDate(dDate) {
	var iMonth = (dDate.getMonth() + 1);

	var sMonth = iMonth.toString();

	if (sMonth.length == 1) {
		sMonth = "0" + sMonth;
	}
  var iDay=dDate.getDate();
  
  var sDay=iDay.toString();
  
  if (sDay.length == 1) {
		sDay = "0" + sDay;
	}
	return dDate.getFullYear() + "-" + sMonth + "-" + sDay;
}

/** 用于格式化xml文件的节点值
*   只针对<>33,333,333.00<>数值节点,转换为<>33333333.00<>
*   <>200.200,000%<> 转换为<>2.00200000<>
*   @param xmlId 页面数据岛的ID
*   @param nodeName 要格式化节点的上级节点
*   @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;
		}
	}
}

/** 格式化一个节点的值
*   @param obj 要格式化的节点
*/
function formatNodeValue(obj) {
	var sValue = obj(0).text;

	obj(0).text = formatValue(sValue);
}

/** 格式化一个33,333,333.00或200.200,000%的值
*   为33333333.00,2。00200000
*   @param srcStr 要格式化的字符串
*   @return 格式化后的值
*/
function formatValue(srcStr) {
	var sValue = srcStr;

	if (sValue.indexOf(",") == -1 && sValue.indexOf("%") == -1) {
		return sValue;
	}

	var sResult = "";

	if (sValue.indexOf(",") != -1) {
		var aValue = sValue.split(",");

		for (var j = 0; j < aValue.length; j++) {
			sResult = sResult + aValue[j];
		}
	}

	if (sResult == "") {
		sResult = sValue;
	}

	if (sValue.indexOf("%") != -1) {
		var sResult1 = parseFloat(sResult, 10) / 100;

		sResult = sResult1.toString();
	}

	return sResult;
}

/** 把一个浮点数,以小数点后几位四舍五入  
*   @param srcValue 要舍位的值
*   @param iCount  要舍位到小数点后几位
*   return 四舍五入后的数
*/
function round(srcValuef, iCount) {
	var srcValue=srcValuef;
	var zs=true;
	//判断是否是负数
	if (srcValue<0)
	{
        srcValue=Math.abs(srcValue);
		zs=false;
	}
	var iB = Math.pow(10, iCount);
	//有时乘100结果也不精确
    var value1=srcValue * iB;

    var anumber=new Array();
    var anumber1=new Array();

    var fvalue=value1;
	var value2=value1.toString();
    var idot=value2.indexOf(".");
    //如果是小数
	if (idot!=-1)
	{
        anumber=srcValue.toString().split(".");
		//如果是科学计数法结果
		if (anumber[1].indexOf("e")!=-1)
		{
            return Math.round(value1)/iB;
		}
	    anumber1=value2.split(".");
        if (anumber[1].length<=iCount)
        {
			return parseFloat(srcValuef,10);
        } 
		var fvalue3=parseInt(anumber[1].substring(iCount,iCount+1),10);
		if (fvalue3>=5)
		{
			fvalue=parseInt(anumber1[0],10)+1;
		} else {
			//对于传入的形如111.834999999998 的处理(传入的计算结果就是错误的,应为111.835)
			if (fvalue3==4 && anumber[1].length>10 && parseInt(anumber[1].substring(iCount+1,iCount+2),10)==9 )
			{
                fvalue=parseInt(anumber1[0],10)+1;
			} else {
				fvalue=parseInt(anumber1[0],10);
			}
		}
	}
    //如果是负数就用0减四舍五入的绝对值
	if (zs)
	{
		return fvalue/iB;
	} else {
		return 0-fvalue/iB;
	}
}

/** 把数值转换为大写金额
*   @param num 数值,为数值或字符型
*   @return 大写金额字符
*/
function convertCN(num) {
	var arr1 = new Array("仟", "佰", "拾", "亿", "仟", "佰", "拾", "万", "仟", "佰", "拾", "圆", "点", "角", "分");

	var arr3 = new Array("零", "壹", "贰", "叁", "肆", "伍", "陆", "柒", "捌", "玖");
	num = num.toString();
	//判断是否为负
	var bfs=false;
	if (num.indexOf("-")!=-1)
	{
		num=num.substring(1,num.length);
		bfs=true;
	}
	var point = num.indexOf(".");

	if (point < 0)
		point = num.length;

	var len = arr1.length - point - 3;
	var strRet = "", lastChar = "";

	for (i = 0; i < num.length; i++) {
		if (i != point) {
			val = arr1[i + len];
			if (num.charAt(i) != "0" || (i==point-1 && point==1) )
				strRet += arr3[num.charAt(i)] + val;
			else {
				lastChar = strRet.substr(strRet.length - 1);
				if (val == "亿" || val == "万" || val == "圆" || val == "分") {
					if (lastChar == "零")
						strRet = strRet.substr(0, strRet.length - 1);

					lastChar = strRet.substr(strRet.length - 1);

					if (!((val == "万" && lastChar == "亿") || (val == "分" && lastChar == "角") || (val == "角" && lastChar == "圆")))
						strRet += val;
				} else {
					if (lastChar != "零")
						strRet += "零";
				}
			}
		}
	}

	//去分
	var ifen = strRet.indexOf("分");

	if (ifen >= 0) {
		var sffen = strRet.substring(ifen - 1, ifen);

		if (sffen == "圆") {
			strRet = strRet.substring(0, ifen);
		}
	}

	//加整
	var sfyuan = strRet.substring(strRet.length - 1, strRet.length);

	if (sfyuan == "圆" || sfyuan == "角") {
		strRet = strRet + "整";
	}
    
	//加负
    if (bfs)
    {
		strRet="(负数)"+strRet;
    }
	return strRet;
}

/** 使页面的层&lt;DIV&gt;显示/隐藏<br>
 *  要求页面的层&lt;DIV&gt;用如下方法引用:style="display:none"或style="display:"<br>
 *  调用方法:showHideLayers("Layer1","show","Layer2","hide"),即:方法成对出现,参数1为层ID,参数2为是否隐藏
 */
function showHideLayers() {
	var args = showHideLayers.arguments;

	for (var i = 0; i < args.length - 1; i += 2) {
		var isShow = (args[i + 1] == "show") ? "''" : "'none'";

		var script = args[i] + ".style.display=" + isShow;
		eval(script);
	}
}
/** 显示/隐藏某一区域(层)
 * @param oLayer 区域(层)名,为对象,并非字符串
 * @param oImg 图片区域对象名&lt;img id="img_switch" src="img_open"&gt;
 * @param sImg1 区域显示时的图片
 * @param sImg2 区域隐藏时的图片
 */
function switchLayer(oLayer, oImg, sImg1, sImg2) {
	var flag = oLayer.style.display;

	if (flag == "none") {
		oLayer.style.display = "block";

		oImg.src = sImg1;
	} else {
		oLayer.style.display = "none";

		oImg.src = sImg2;
	}
}

/** 按xml中的某一节点进行对xml排序 类似这种结构(ROOT/ITEM/NODENAME...)
*   @param dsoName 数据岛名称
*   @param colNodeName 列对应数据结点名称
*   @param orderType ture/false 升序/降序
*/
function xmlOrderBy(dsoName, colNodeName, orderType) {
	var root = dsoName.documentElement.cloneNode(true);

	var rootTemp = dsoName.createNode("element", root.nodeName, "");
	var ilen = root.childNodes.length;

	//排序
	for (var i = 0; i < ilen; i++) {
		var node1 = root.childNodes(0);

		var value1 = root.childNodes(0).getElementsByTagName(colNodeName)(0).text;
		var ilen1 = root.childNodes.length;

		for (var j = 0; j < ilen1; j++) {
			if (orderType) { //升序		
				if (root.childNodes(j).getElementsByTagName(colNodeName)(0).text < value1) {
					node1 = root.childNodes(j);
				}
			} else {
				//降序
				if (root.childNodes(j).getElementsByTagName(colNodeName)(0).text > value1) {
					node1 = root.childNodes(j);
				}
			}
		}

		rootTemp.appendChild(node1);
	}

	//替换成排序后的xml
	dsoName.removeChild(dsoName.documentElement);
	dsoName.appendChild(rootTemp);
}

/** 删除数据窗口中关键数据为空的行
*   @param dwid 数据窗口
*/
function deleteNullRow(dwid) {
	var iRowNum = dwid.getRowCount();

	var iColNum = dwid.getColCount();

	for (var i = iRowNum - 1; i >= 0; i--) {
		for (var j = 0; j < iColNum; j++) {
			if (dwid.col(j).fill == true && dwid.row(i).cell(j).value.toString() == "") {
				dwid.deleteRow(i);
				break;
			}
		}
	}
}

/** 检查日期时间的合法性 必须格式为“2003-09-09 或 2003-9-09 ”才返回ture,否则返回false
*   @param str 要检查的日期字符串。
*   @return true/false 
*/
function checkDate(str){		 
    var reg = /^(\d+)-(\d{1,2})-(\d{1,2})$/; 
    var r = str.match(reg); 
    if(r==null)return false; 
    r[2]=r[2]-1; 
    var d= new Date(r[1], r[2],r[3]); 
    if(d.getFullYear()!=r[1])return false; 
    if(d.getMonth()!=r[2])return false; 
    if(d.getDate()!=r[3])return false; 
    return true;
}

/** 检查日期时间的合法性 必须格式为“2003-09-09 08:08:08”才返回ture,否则返回false
*   @param str 要检查的日期时间字符串。
*   @return true/false 
*/
function checkDateTime(str){		 
    var reg = /^(\d+)-(\d{1,2})-(\d{1,2}) (\d{1,2}):(\d{1,2}):(\d{1,2})$/; 
    var r = str.match(reg); 
    if(r==null)return false; 
    r[2]=r[2]-1; 
    var d= new Date(r[1], r[2],r[3], r[4],r[5], r[6]); 
    if(d.getFullYear()!=r[1])return false; 
    if(d.getMonth()!=r[2])return false; 
    if(d.getDate()!=r[3])return false; 
    if(d.getHours()!=r[4])return false; 
    if(d.getMinutes()!=r[5])return false; 
    if(d.getSeconds()!=r[6])return false; 
    return true;
}

////////////////内部协查管理//////////////////
///////////////////////////////////////////////
/**通过本页面的nbxc_check(NSRSBH,YWHJ_DM,MKMC,HDNR)方法调用弹出窗口。
* @param NSRSBH 个人识别号
* @param YWHJ_DM 业务环节代码
* @param MKMC 模块名称
* @param HDNR 内容
* @param serviceName 服务名,如:"common.CtaisMasterBndService.commonNsrEntered"
* @param GZBZ 更正标志 //cheys 2004/02/17 added
* @return  true/false 成功/失败
*/

function defaultNsrEntry(NSRSBH,YWHJ_DM,MKMC,HDNR,serviceName,GZBZ)
{

	var service = new Service(serviceName);
//	var sArgu=service.doService("NSRSBH",NSRSBH,"HDNR",HDNR,"MKMC",MKMC,"YWHJ",YWHJ_DM);
	if (GZBZ != null)
	{
		var sArgu=service.doService("NSRSBH",NSRSBH,"HDNR",HDNR,"MKMC",MKMC,"YWHJ",YWHJ_DM,"GZBZ",GZBZ);
	}
	else{
		var sArgu=service.doService("NSRSBH",NSRSBH,"HDNR",HDNR,"MKMC",MKMC,"YWHJ",YWHJ_DM);
	}
	var rtnCode=service.getRtnCode();
	if (rtnCode=="0")
	{
		  var oDoc=loadXml(sArgu);//解析xml
		  var tbtjts = oDoc.selectSingleNode("//TBTJTS").text;
		  if(tbtjts != "null"){
			  showMessage(tbtjts);
		  }
		  var isXcExisted = oDoc.selectSingleNode("//DO_XC").text;
		  var oNode = oDoc.selectSingleNode("//NBXCXX");
		  if(isXcExisted=="Y"){
			 return	nbxc_check(NSRSBH,YWHJ_DM,MKMC,HDNR,oNode);		
		  }
	}else{
		showMessage(service.getMessage());
		return false;
	}
 }
 
/**通过本页面的nbxc_check(NSRSBH,YWHJ_DM,MKMC,HDNR)方法调用弹出窗口。
* @param NSRSBH 个人识别号
* @param YWHJ_DM 业务环节代码
* @param MKMC 模块名称
* @param HDNR 内容
* @param oDoc XML内容
* @return  true/false 成功/失败
*/
  function nbxc_check(NSRSBH,YWHJ_DM,MKMC,HDNR,oDoc)
 {
	var sid = createWorkId(); 
	var service = new Service("jcfz.nx.nx_check.NxCheckBndService.init",sid);
	var sArgu=service.doService("NSRSBH",NSRSBH,"YWHJ_DM",YWHJ_DM,"MKMC",MKMC,"HDNR",HDNR,"NBXC","N");
	var rtnCode=service.getRtnCode();
	if (rtnCode=="1")
	{
	   showMessage("检查该个人内部监控失败!");
	   return false;
	}

	  var count=oDoc.childNodes.length;
	  if (count!=0)
	  {

		  for (var i=0;i<count ;i++ )
		  {
			  var NBXCXH=oDoc.getElementsByTagName("NBXCXH")(i).text;
			  var scontinue=oDoc.getElementsByTagName("CONTINUE")(i).text;
			  var write_jkrz=oDoc.getElementsByTagName("WRITEJKRZ")(i).text;
			  var paraArray = new Array();
			  paraArray[0]=NBXCXH;
			  paraArray[1]=scontinue;
			  //var serviceId = getWorkId();
			  paraArray[2]=sid;
			  paraArray[3]=write_jkrz;
			  
			  var isContinue=showModalDialog(URL_NBXC,paraArray,'dialogWidth=600px;dialogheight=300px;status:no;help:no');
			  //如果点"关闭"按钮,那么视同终止操作
			  if(isContinue=="STOP"){
				  return false;
			  }
			  if (isContinue==null)
			  {
				  if (write_jkrz=="FALSE")
				  {
					 return false;
				  }
				  var service = new Service("jcfz.nx.nx_check.NxCheckBndService.saveJkrz",sid);
				  var sArgu=service.doService("NBXCXH",NBXCXH,"CZFS","STOP");
				  var rtnCode=service.getRtnCode();
				  if (rtnCode=="0")
				  {
					  showMessage(service.getMessage());
					  return false;
				  }else{
					  showMessage(service.getMessage());
					  return false;
				  }
			  }
		  }
	  }

	  return true;
}



/**不走界面服务流程,直接通过本页面的nbxc_check(NSRSBH,YWHJ_DM,MKMC,HDNR)方法调用弹出窗口。
* @param NSRSBH 个人识别号
* @param YWHJ_DM 业务环节代码
* @param MKMC 模块名称
* @param HDNR 内容
* @return  true/false 成功/失败
*/
 function interface_nbxc_check(NSRSBH,YWHJ_DM,MKMC,HDNR)
 {
	if(interface_nbxc_check.arguments.length!=4){
		showMessage("调用方法参数个数不等于4!")
		return false;
	}
	if (NSRSBH=="")
	{
		showMessage("个人识别号不能为空!");
		return false;
	}
	if (YWHJ_DM=="")
	{
		showMessage("业务环节代码不能为空!");
		return false;
	}
	if (MKMC=="")
	{
		showMessage("模块名称不能为空!");
		return false;
	}
	var service = new Service("jcfz.nx.nx_check.NxCheckBndService.init");
	var sArgu=service.doService("NSRSBH",NSRSBH,"YWHJ_DM",YWHJ_DM,"MKMC",MKMC,"HDNR",HDNR,"NBXC","Y");
	var rtnCode=service.getRtnCode();
	if (rtnCode=="0")
	{
		  var oDoc=loadXml(sArgu);//解析xml
		  var count=oDoc.documentElement.childNodes.length;
		  if (count!=0)
		  {
			  for (var i=0;i<count ;i++ )
			  {
				  var NBXCXH=oDoc.getElementsByTagName("NBXCXH")(i).text;
				  var scontinue=oDoc.getElementsByTagName("CONTINUE")(i).text;
				  var write_jkrz=oDoc.getElementsByTagName("WRITEJKRZ")(i).text;
				  var paraArray = new Array();
				  paraArray[0]=NBXCXH;
				  paraArray[1]=scontinue;
				  var serviceId = getWorkId();
				  paraArray[2]=serviceId;
				  paraArray[3]=write_jkrz;
				  
				  var isContinue=showModalDialog(URL_NBXC,paraArray,'dialogWidth=600px;dialogheight=300px;status:no;help:no');
				  //如果点"关闭"按钮,那么视同终止操作
				  if(isContinue=="STOP"){
					  return false;
				  }
				  if (isContinue==null)
				  {
					  if (write_jkrz=="FALSE")
					  {
						 return false;
					  }
					  var service = new Service("jcfz.nx.nx_check.NxCheckBndService.saveJkrz");
					  var sArgu=service.doService("NBXCXH",NBXCXH,"CZFS","STOP");
					  var rtnCode=service.getRtnCode();
					  if (rtnCode=="0")
					  {
						  showMessage(service.getMessage());
						  return false;
					  }else{
						  showMessage(service.getMessage());
						  return false;
					  }
				  }
				  
			  }
		  }
		  return true;
	}else if (rtnCode=="1")
	{
	   showMessage("检查该个人内部监控失败!");
	   return false;
	}
}
/////////////内部协查管理////////////////

/**
*自动更正输入错误
*此函数用于 会计期间或页码输入框 的 onchange事件或onblur 事件中,当用户输入错误的值后,自动更正错误
*@param obj 输入框
*@param minValue 最小值
*@param maxValue 最大值
*/
function gzInput(obj,minValue,maxValue){
	var sValue = parseInt(obj.getValue(),10);
	if (sValue > maxValue )
	{
		obj.setValue(maxValue);
	}
	if (sValue < minValue)
	{
		obj.setValue(minValue);
	}
}

/**
*检查控件的输入值是否在指定的期间内,用于提交请求之前的合法性检查
*@param obj 输入框
*@param minValue 最小值
*@param maxValue 最大值
*@return true|false 正确|错误
*/
function checkInput(obj,minValue,maxValue){
	var sValue = parseInt(obj.getValue(),10);
	if (sValue > maxValue || sValue <minValue)
	{		
		if (!obj.disabled)// 如果没有被disable,则移焦点过来。
		{
			obj.select();
			obj.focus();
		}
		return false;
	}
	return true;
}


/** 调入Web页打印预览页面
 * @param pagesize 纸张:目前为:A2,A3,A4,A5,如果纸张超过A2横向将不予调整,如果为null则自动调整
 * @param pageori 打印方向:0/1,纵/横,如果为null则自动调整
 * @param header 页眉(参考IE的打印设置):&b&b&d
 * @param footer 页脚(参考IE的打印设置):&b&p/&P&b
 * @param margin 页边距(毫米,参考IE的打印设置):用“|”线分开的4个值,分别代表上右下左四个边距(与CSS的margin等属性规则相同)。
 *	如果只有2个值,则上下边取第一个值;左右边取第二个值
 * @param fontsize 字号(pt),如果不需要该参数,可将其设为null或者干脆不写该参数
 * @param caller 将回调的函数,默认为interface_getHTML(),因为同一页面内可能需要不同的打印接口函数,所以需要能够指定
 * @return window对象
 */
function toPrinter(pagesize,pageori,header,footer,margin,fontsize,caller){
	var argus = caller == null? "?" : "?caller="+caller+"&";
	argus += "pagesize="+pagesize+"&pageori="+pageori
		+"&pageheader="+header+"&pagefooter="+footer+"&pagemargin="+margin;
	if (fontsize != null && fontsize != "") {
		argus += "&fontsize="+fontsize;
	}
	var wh = "width="+(screen.width-11)+",height="+(screen.height-55);
	var param = "toolbar=no,location=no,status=yes,resizable=no,scrollbars=yes,top=0,left=0,"+wh;
	return window.open(URL_TO_PRINT+argus,"_blank",param);
}

/** 调入Web页Excel输出
 * @return window对象
*/
function toExcel(){
	var wh = "width="+(screen.width-11)+",height="+(screen.height-55);
	var param = "toolbar=no,location=no,status=yes,resizable=no,scrollbars=yes,top=0,left=0,"+wh;
	return window.open(URL_TO_EXCEL,"_blank",param);
}

/** 校验并格式化日期 (用户录入 2003-8-1 ,先进行日期校验 checkData()  ,再进行格式化 formatData() 2003-08-01 )
 * @param obj 需要校验的日期对象。
 */
function check_format_date(obj) {
	vdate=obj.value;
	if (!obj.checkData())
	{
		if (obj.value.length==10)
		{
			showMessage("录入日期 '"+vdate+"' 非法,请重新录入。");
			obj.value="";
			return false;
		}
		obj.value=obj.formatData(obj.value);
	}
	if (!obj.checkData())//
	{
		showMessage("录入日期 '"+vdate+"' 非法,请重新录入。");
		obj.value="";
		return false;
	}
	return true;
}
//--------------------------------------------------------------------------------------
/** 设置审批意见的值(2003-9-4)//返回带同意和不同意的字符串
*@param obj 审批意见的值 (str)
*@param flag 点击同意或不同意按钮 (同意:Y  、不同意:N)
*/
function setSpyjValue(obj,flag)
{
	if (flag=="Y"){
		if (obj=="")//如果为空则直接填写“ 同意”
		{
			obj="同意";
		}else{
			if (obj.indexOf("不同意")==0)  //如果是“ 不同意”则删除不字。
			{
				var iYjLen=obj.length;
				obj = obj.substring(1,iYjLen);
			}else if (obj.indexOf("同意")==0)
			{
				
			}else{
				obj ="同意,"+obj.substring(0,iYjLen);//如果没有“同意”则添加。
			}
		}
	}else if (flag=="N"){
		if (obj=="")
		{
			obj="不同意";
		}else{
			if (obj.indexOf("同意")==0)
			{
				var iYjLen=obj.length;
				obj = "不"+obj.substring(0,iYjLen);
			}else if (obj.indexOf("不同意")==0)
			{
			
			}else{
				obj ="不同意,"+obj.substring(0,iYjLen);
			}
		}
	}
	return obj;
}
//--------------------------------------------------------------------------------------
/**此函数用于把输入的日期变成输入上一个月的最后一天的日期。
*  例如:用户输入"2002-03-03",界面显示为"2002-02-31"; 2003-01-16  界面显示为 2002-12-31
*  @param strDate 要格式化日期值,字符型 格式必须为 yyyy-mm-dd
*  @return 格式化后的月末值
*/
function formatPeriorMonthLast(strDate) {
	var dStr=strDate;
	mm=dStr.split('-');
	var tempStr="";
	if (mm[1]=='01'||mm[1]=='1')
	{
		dStr=parseInt(dStr.substring(0,4),10)-1+"-12-31";
		return dStr;
	}else{
		if (parseInt(mm[1],10)-1>9)
		{
			tempStr=parseInt(mm[1],10)-1;
		}else{
			tempStr=parseInt(mm[1],10)-1;
			tempStr="0"+tempStr;
		}
		tempdate=dStr.substring(0,5)+tempStr+'-01';
		dStr=formatMonthLast(tempdate);
		return dStr;
	}
}



/**此函数用于把输入的日期变成输入上一个月的第一天的日期。
*  例如:用户输入"2002-03-03",界面显示为"2002-02-01"; 2003-01-16  界面显示为 2002-12-01
*  @param strDate 要格式化日期值,字符型 格式必须为 yyyy-mm-dd
*  @return 格式化后的月初值
*/

function formatPeriorMonthFirst(strDate) {
	var dStr=strDate;
	mm=dStr.split('-');
	var tempStr="";
	if (mm[1]=='01'||mm[1]=='1')
	{
		dStr=parseInt(dStr.substring(0,4),10)-1+"-12-01";
		return dStr;
	}else{
		if (parseInt(mm[1],10)-1>9)
		{
			tempStr=parseInt(mm[1],10)-1;
		}else{
			tempStr=parseInt(mm[1],10)-1;
			tempStr="0"+tempStr;
		}
		tempdate=dStr.substring(0,5)+tempStr+'-01';
		dStr=formatMonthFirst(tempdate);
		return dStr;
	}
}


////////////////注册表编辑类start//////////////////////
/**
 * 注册表编辑器,封装对注册表的操作
 */
function RegEdit(){
	this.shell = new ActiveXObject("WScript.Shell");
	this.regRead = regRead;
	this.regWrite = regWrite;
	this.regDelete = regDelete;
}

/** 返回名为 strName 的注册键或值。
 * @param strName 要读取的键或值。如果 strName 以反斜线 (\) 结束,本方法将返回键,而不是值
 * @return 名为 strName 的注册键或值
 */
function regRead(strName){
	var val = null;
	try {
		val = this.shell.regRead(strName);
	} catch (e) {
		//alert(e.message);
	}
	return val;
}

/** 设置 strName 指定的注册键或值
 * @param strName 要写的键或值的名称.如果 strName 以反斜线 (\) 结束,本方法将返回键,而不是值
 * @param anyValue 要写入键或注册表值中的值
 * @param strType 可选项。要保存到注册表中的值的数据类型REG_SZ、REG_EXPAND_SZ、REG_DWORD、REG_BINARY
 */
function regWrite(strName,anyValue,strType){
	if(strType == null)
		strType = "REG_SZ";
	this.shell.regWrite(strName,anyValue,strType);
}

/** 从注册表中删除 strName 指定的键或值。
 * @param strName 要删除的键或值的名字。如果 strName 以反斜线 (\) 结束,本方法将删除键,而不是值
 */
function regDelete(strName){
	this.shell.regDelete(strName);
}

////////////////注册表编辑类end//////////////////////

////////////////全局变量管理start///////////////////
function setGlobalVar(name,value){
	var FRM_RIGHT=getFRM_RIGHT();
	if(FRM_RIGHT!=null){
		FRM_RIGHT.setGlobalVar(name,value);
	}
}
function getGlobalVar(name){
	var FRM_RIGHT=getFRM_RIGHT();
	if(FRM_RIGHT!=null){
		return FRM_RIGHT.getGlobalVar(name);
	}
	return null;
}
function clearGlobalVar(name){
	var FRM_RIGHT=getFRM_RIGHT();
	if(FRM_RIGHT!=null){
		FRM_RIGHT.clearGlobalVar(name);
	}
}
////////////////全局变量管理end/////////////////////


///印章管理,返回当前操作人员使用的印章/////////////////////
/**  公用函数
*/

var SIGNATUREPATH="c:\\ctais\\signature\\";
function getPicture(zsr_dm){
	var sid = createWorkId();
	var svc = new Service("util.yzgl.YzInterfaceBndService.init",sid);
	var oArg=svc.doService("ZSR_DM",zsr_dm);
	if (svc.getCode() != "2000")
	{
		showMessage(svc.getMessage());
		return;
	}else{		
		var oDoc = loadXml(oArg);		
		if (oDoc.selectSingleNode("ROOT/SIGNATUREID").text == "")
		{
			return "";
		}else{
			return SIGNATUREPATH + oDoc.selectSingleNode("ROOT/SIGNATUREID").text+".jpg";
		}
	}
}

function getWszsr_dm(swws_dm,wspzxh)
{
	var sid = createWorkId();
	var service = new Service("jcfz.common.wszsr.WszsrBndService.init",sid);
	var srAuge = service.doService("SWWS_DM",swws_dm,"WSPZXH",wspzxh);
	var msg = service.getMessage();
	var code = service.getCode();
	if (code=="2000")
	{
		//解析xml
		var oDoc = loadXml(srAuge);
		return oDoc.selectSingleNode("ROOT").text;
	}
	else
	{
		showMessage(msg);
		return ""; 
	}
}

/** 将XML转换到DOT文档模版内
 * @param doc XML Document
 * @param swws_dm 文书代码
 * @param bz 稽查还是违章
 */
function toWord(doc,swws_dm,bz,zsr_dm){
	try {
		var strTempleteUrl = "http://" + location.host + getSiteRootUrl() +"/work/public/wsmodel"
		var ole = new ActiveXObject("Word.Application");
		try{
			if (typeof(bz)=="undefined"||bz=="")
			{
				ole.documents.open(strTempleteUrl + "/dot/" + swws_dm + ".doc");
			}else if (bz=="WZ")
			{
				ole.documents.open(strTempleteUrl + "/dot/" + swws_dm + "_wz.doc");
			}else if (bz=="JC")
			{
				ole.documents.open(strTempleteUrl + "/dot/" + swws_dm + "_jc.doc");
			}else if (bz=="WS")
			{
				ole.documents.open(strTempleteUrl + "/dot/" + swws_dm + ".doc");
			}else 
			{
				ole.documents.open(strTempleteUrl + "/dot/" + swws_dm + ".doc");
			}
		} catch(e2) {
			try{
				ole.documents.open(strTempleteUrl + "/dot/" + swws_dm + ".doc");
			}catch(e1){
				ole.quit();
				showMessage("新建Word异常:"+e1.message,0);
			}
		}
		ole.Visible = true;
		if(doc==null)
		{
			ole.run("toWord",null);	
		}else{
			ole.run("toWord",doc.documentElement);
//			if (typeof(zsr_dm)=="undefined"||zsr_dm=="")
//			{
				ole.run("RemoveSignatureLabel");
//			}else{
//				var picName = getPicture(zsr_dm);
//				if(picName != ""){
//				  ole.run("AddSignature",picName);
//				}else{
//				  showMessage("没有定义机关签章!",0);
//				  //return;
//				}
//			}
		}
		//设置文书的模板为只读
		if(bz=="WS")
           	ole.run("setReadOnly","eo5w3960ie");
	} catch (e) {
		ole.quit();
		showMessage("新建Word异常:"+e.message,0);
	}
}

var TZDNODE =null;
/**申报模块加打印通知单功能
*/
function sb_print_wfwztzd(oDoc){
	TZDNODE = oDoc;
	toPrinter("A4","0",null,null,"20|20|20|20",null,"interface_printTzd");

}

/**toPrinter函数的接口函数
*/
function interface_printTzd(){
	var oDoc = loadFile(URL_TZD);	//样式表
	var oNode =TZDNODE;

	if (oNode == null)
	{
		return null;
	}
	return oNode.transformNode(oDoc);
}

/** 计算字符串的字节长度
* 一个汉文按两个字节计算
*/
String.prototype.ByteLength = function() {
	return this.replace(/[^\x00-\xff]/gi, "xx").length;
}

/** 裁减字符串两端的空格
*/
String.prototype.trim = function() {
    return this.replace(/(^\s*)|(\s*$)/g, "");
}

/** 字符串替换
*/
String.prototype.replaceAll = function(srcText, targetText) {
	//String.replace只能替换一次
	var str = this;
	for(var strTemp=str.replace(srcText, targetText); strTemp!=str; strTemp=str.replace(srcText, targetText) ) {
		str = strTemp;
	}
	
	return str;
}

/** 获取代码XML
 *   	与ctais.services.xml的功能相似,不过后者用于jsp中。
 * @param tabname 表名
 * @param columnNames 列名称数组
 * @param hint Oracle Hint
 * @param filter 条件
 * @return 代码XML。格式为:/ROOT/ITEM
*/
function createDmXml(tableName, columnNames, hint, filter) {
	if((tableName != null) && (columnNames instanceof Array) && (columnNames.length > 0)) {
		var service = new Service("common.xtservice.island.XmlIslandBndService.init");
		var res=service.doService("TABLENAME", tableName
									, "COLUMNNAMES", columnNames.join(",")
									, "HINT", (hint == null)? "": hint
									, "FILTER", (filter == null)? "": filter );
		var code=service.getCode();   
		if(code == "2000"){
			return res;
		}
		else{
			return "";
		}
	}
}


/** 用于格式化xml文件的节点值
*   只针对<><、>、&、'、"、<>数值节点,转换为<><、>、&、'、"、<>
*   @param xmlId 页面数据岛的ID
*   @param nodeName 要格式化节点的上级节点
*   @return 格式化后的xml数据
*/
function formatNodeXML(xmlId, nodeName) {
	formatNodeName(xmlId.getElementsByTagName(nodeName));
	return xmlId.xml;
}

/** 只针对<><、>、&、'、"、<>数值节点,转换为<><、>、&、'、"、<>
*   不能用在<>sss,ssss,ss<>的节点。
*   @param obj 要格式化的xml节点的上级节点。
*
*/
function formatNodeName(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&& sValue.indexOf("&") == -1&& sValue.indexOf("\'") == -1&& sValue.indexOf("\"") == -1) {
				continue;
			}
			if (sValue.indexOf("<") != -1) {
				aValue = sValue.replace("<","<");
			}
			if (sValue.indexOf(">") != -1) {
				aValue = sValue.replace(">",">");
			}
			if (sValue.indexOf("&") != -1) {
				aValue = sValue.replace("&","&");
			}
			if (sValue.indexOf("\'") != -1) {
				aValue = sValue.replace("\'","'");
			}
			if (sValue.indexOf("\"") != -1) {
				aValue = sValue.replace("\"",""");
			}
			obj(j).childNodes(i).text = aValue;
		}//for i
	}//for j
}


function getOptionTree(htmlurl) {
  newwin=window.open(htmlurl,"window","left=350,top=240,width=350,height=350,toolbar=no,location=no,directories=no,status=yes,menubar=no,scrollbars=no, resizable=no");
  newwin.focus();
  return false;
}

function getOptionList(htmlurl) {
  newwin=window.open(htmlurl,"homeWin","toolbar=no,location=no,directories=no,status=yes,menubar=no,scrollbars=yes,resizable=yes,width=580,height=480,left=250,top=150");
  newwin.focus();
  return false;
}

你可能感兴趣的:(数据结构,oracle,xml,prototype,J#)