var __milSep = ""; // JavaScript的全局常量:千分位 //根据指定的URL打开模式窗口 function showUrlByModalDialog(url,height){ paras="dialogHeight:"+ height + "px;dialogWidth:700px;scroll:no;resizable:yes;status:no;"; return window.showModalDialog(url,window,paras); } //根据指定的URL打开模式窗口 function showUrlByModalDialog(url,height,width){ paras="dialogHeight:"+ height + "px;dialogWidth:"+width+"px;scroll:no;resizable:yes;status:no;"; return window.showModalDialog(url,window,paras); } //根据指定的URL打开模式窗口 function showUrlByModalDialog2(url,height,width){ paras="dialogHeight:"+ height + "px;dialogWidth:"+width+"px;scroll:yes;resizable:yes;status:no;"; return window.showModalDialog(url,window,paras); } /* Function: 选择供应商,单选 Document by Lithium 2003-1-2 Last modified by TonyLee 2004-9-27 supplierType: 供应商类型 selectName: 调用该方法的控件名称 other:保留 */ function selectSupplier(selectName, supplierType, other){ url="/Honglian/jsp/util/SelectSupplierIframe.jsp?selectName=" + selectName + "&supplierType=" + supplierType + "&other=" + other; paras="dialogHeight:500px;dialogWidth:650px;scroll=no;resizable=no;status=no"; window.showModalDialog(url,window,paras); } /* Function: 选择客户,单选 Document by Lithium 2004-9-27 Last modified by TonyLee 2004-9-27 customerType: 供应商类型 selectName: 调用该方法的控件名称 other:保留 */ function selectCustomer(selectName, customerType, other){ url="/Honglian/jsp/util/SelectCustomerIframe.jsp?selectName=" + selectName + "&customerType=" + customerType + "&other=" + other + "&first=1"; paras="dialogHeight:500px;dialogWidth:650px;scroll=no;resizable=no;status=no"; window.showModalDialog(url,window,paras); } /* Function: 选择产品,单选多选可控 Document by Lithium 2004-10-06 Last modified by TonyLee 2004-10-06 selectName: 调用该方法的控件名称 selectType: 选择类型,是单选还是多选 other:保留 */ function selectProduct(selectName, selectType, other){ url="/Honglian/jsp/util/SelectProductIframe.jsp?selectName=" + selectName + "&selectType=" + selectType + "&other=" + other + "&first=1"; paras="dialogHeight:500px;dialogWidth:650px;scroll=no;resizable=no;status=no"; window.showModalDialog(url,window,paras); } /* Function: 选择竞争对手 Document by Lithium 2004-10-07 Last modified by TonyLee 2004-10-07 selectName: 调用该方法的控件名称 selectType: 选择类型,是单选还是多选 other:保留 */ function selectCompetitor(selectName, competitorType, other){ url="/Honglian/jsp/util/SelectCompetitorIframe.jsp?selectName=" + selectName + "&selectType=" + competitorType + "&other=" + other + "&first=1"; paras="dialogHeight:500px;dialogWidth:650px;scroll=no;resizable=no;status=no"; window.showModalDialog(url,window,paras); } /* Function: 选择用户 Document by Lithium 2004-10-11 Last modified by TonyLee 2004-10-11 selectName: 调用该方法的控件名称 type: 选择类型,是单选还是多选 other:保留 */ function selectUser(selectName, type, other){ url="/Honglian/jsp/util/SelectUserIframe.jsp?selectName=" + selectName + "&selectType=" + type + "&other=" + other + "&first=1"; paras="dialogHeight:500px;dialogWidth:650px;scroll=no;resizable=no;status=no"; window.showModalDialog(url,window,paras); } /* Function: 产品序列号 新增 删除等 参数:inoutPKID: 出入库单的PK inoutFlag: 出库或入库 warehouesID: 仓库 flag:出入库类型 optFlag :操作标识(新增,修改) */ function pdSerial(inoutPKID, inoutFlag, warehouseID, flag,optFlag){ url="/Honglian/jsp/sto/PdSerialNoRecIFrame.jsp?warehouseInOutID=" + inoutPKID + "&inoutFlag=" + inoutFlag + "&warehouseID=" + warehouseID + "&flag=" + flag + "&optFlag=" + optFlag; paras="dialogHeight:500px;dialogWidth:650px;scroll=no;resizable=no;status=0"; window.showModalDialog(url,window,paras); } /* Function: 取字符串字节长度 Document by Lithium 2002-5-13 Last modify by Lithium 2002-5-13 */ function realLength(str) { var j=0; for (var i=0;i<=str.length-1;i++) { j=j+1; if ((str.charCodeAt(i))>127) { j=j+1; } } return j; } /* Function: 去空格函数 Document by Lithium 2002-5-10 Last modify by Lithium 2002-5-10 */ function trim(s) { s=_leftTrim(_rightTrim(s)); return s; } function _leftTrim(s) { while(s.charAt(0)==" ") { s=s.substring(1); } return s; } function _rightTrim(s) { while(s.charAt(s.length - 1)==" ") { s=s.substring(0,s.length-1); } return s; } function _leftTrim0(s) { while(s.charAt(0)=='0') { s=s.substring(1); } return s; } function MM_reloadPage(init) { //reloads the window if Nav4 resized if (init==true) with (navigator) {if ((appName=="Netscape")&&(parseInt(appVersion)==4)) { document.MM_pgW=innerWidth; document.MM_pgH=innerHeight; onresize=MM_reloadPage; }} else if (innerWidth!=document.MM_pgW || innerHeight!=document.MM_pgH) location.reload(); } MM_reloadPage(true); // 依据ID查找控件 function MM_findObj(n, d) { //v4.01 var p,i,x; if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) { d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p); } if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i" + myText + ""; //tdObj.innerText = tdStr; //alert(tblObj.innerHTML); var rows = parseInt(tblObj.rows) + 1; MM_changeProp(tableID,'','rows',rows); var tmpi = rows*15; if (tmpi > 250) tmpi = 250; MM_changeProp(selectID+"Div",'','style.height',tmpi,'Div'); } /* Document by novell 2004-12-31 功能:侦听页面事件 */ function MM_listener(){ var eventSrc = window.event.srcElement; var evt = window.event.type; if (eventSrc.tagName == "TD" && eventSrc.myText!=null){ if(evt=='click'){ var ids = eventSrc.id.split("Td"); var idStr = ids[0]; DD_changeSelected(idStr,eventSrc.myText ,eventSrc.myValue); }else if(evt=='mouseover'){ eval("DD_mouseOver('" + eventSrc.id + "')"); }else if(evt=='mouseout'){ eval("DD_mouseOut('" + eventSrc.id + "')"); } } } /* Document by novell 2004-12-31 功能:清除下拉列表显示字段 selectID:下拉列表对象 */ function MM_clearItemToSelect(selectID){ var tableID = selectID + "Table"; var tblObj = MM_findObj(tableID); var rowsNum = parseInt(MM_getProp(tableID, 'rows')); var rows = rowsNum; if(rowsNum>=1){ for(var i=1;i 250) tmpi = 250; MM_changeProp(selectID+"Div",'','style.height',tmpi,'Div'); MM_changeSelectedIndex(comboBox,0); } /* Document by novell 2004-12-31 功能:判断下拉列表是否改变 obj:下拉列表对象 */ function MM_judgeItemIsChange(obj){ var itemID; var currentID; var selectedID ; var itemText; itemID = obj.id; selectedID = MM_getProp(itemID, 'myValue'); itemText = MM_getProp(itemID, 'myText'); var arr = itemID.split('ID'); var currentIDName = arr[0] + 'ID'; currentID = MM_getProp(currentIDName, 'value'); if(currentID == selectedID) alert('yes'); else alert('no'); } /* document by Tony 2004-12-29 objName:下拉列表的对象名 newValue:待修改的下拉列表框的选中值 flag: 鼠标单击为1,程序直接给下拉列表赋值为0 功能:修改下拉列表的选中值并判断触发下拉列表框的onchange事件 */ function DD_changeSelected(objName, newText, newValue, flag){ var oldValue = MM_getProp(objName, 'value'); MM_changeProp(objName,'','value',newValue); //改变下拉列表框的选中值 MM_changeProp(objName+'Disp','','value',newText); if ((flag != 0) && (oldValue != newValue)){ var obj = MM_findObj(objName+"Disp") obj.fireEvent("onchange"); } } /* document by Tony 2004-12-29 objName:下拉列表的对象名 功能:鼠标划过下拉列表框的下拉内容时改变其背景和前景色 */ function DD_mouseOver(objName){ MM_changeProp(objName,'','style.backgroundColor','#0035AA','TD'); MM_changeProp(objName,'','style.color','FFFFFF','TD'); } /* document by Tony 2004-12-29 objName:下拉列表的对象名 功能:鼠标划过下拉列表框的下拉内容时改变其背景和前景色 */ function DD_mouseOut(objName){ MM_changeProp(objName,'','style.backgroundColor','#ffffff','TD'); MM_changeProp(objName,'','style.color','#000000','TD'); } /* document by Tony 2004-10-18 expression:计算公式 功能:根据单价、数量等输入框后的公式计算小计 说明:赋值元素和计算元素的下标都在前面 */ function subTotal(expression, precision){ // 对象名前缀 var cPrefix = parseInt(event.srcElement.name); // 解析传入的公式 var tmpExp = expression.split("="); if(tmpExp.length!=2){ alert(event.srcElement.name + "的计算公式错误"); return; } // 等号左边的被赋值对象 var leftElement = cPrefix+tmpExp[0]; if(MM_findObj(leftElement) == null){ alert('不存在元素‘'+leftElement+'’,请检查!'); return; } // 等号右边的计算公式(目前只允许乘法) var formula = tmpExp[1]; var calcElements = formula.split("*"); var _result = 1; // 循环进行计算 for(i=0; i0){ cPrefix = parseInt(tmp); if(!isNaN(cPrefix)){ break; } tmp = tmp.substring(1, tmp.length); i = tmp.length; } // 解析传入的公式 var tmpExp = expression.split("="); if(tmpExp.length!=2){ alert(event.srcElement.name + "的计算公式错误"); return; } // 等号左边的被赋值对象 var leftElement = tmpExp[0]+cPrefix; if(MM_findObj(leftElement) == null){ alert('不存在元素‘'+leftElement+'’,请检查!'); return; } // 等号右边的计算公式(目前只允许乘法) var formula = tmpExp[1]; var calcElements = formula.split("*"); var _result = 1; // 循环进行计算 for(i=0; i0){ cPrefix = parseInt(tmp); if(!isNaN(cPrefix)){ break; } tmp = tmp.substring(1, tmp.length); i = tmp.length; } // 解析传入的公式 var tmpExp = expression.split("="); if(tmpExp.length!=2){ alert(event.srcElement.name + "的计算公式错误"); return; } // 等号左边的被赋值对象 var leftElement = tmpExp[0]+cPrefix; if(MM_findObj(leftElement) == null){ alert('不存在元素‘'+leftElement+'’,请检查!'); return; } // 等号右边的计算公式(目前只允许两个元素相除) var formula = tmpExp[1]; var calcElements = formula.split("/"); var _result = 1; var _element1 = calcElements[0]+cPrefix; var _element2 = calcElements[1]+cPrefix; var _value1 = MM_getProp(_element1, 'value'); var _value2 = MM_getProp(_element2, 'value'); _value1 = removeMilSep(_value1); _value2 = removeMilSep(_value2); _result = _value1 / _value2; // 格式化并赋值 if (precision==null) { precision = 2; } _result = formatNumStr(_result, precision) MM_changeProp(leftElement,'','value',_result); } /* document by Tony 2004-10-18 fld: 输入框 precision: 精度(小数位数) 功能:自动千分位,输入框的onkeypress事件调用 */ function chkNumInput(fld, precision) { var key = ''; var strCheck; // Valid charactors var keyCode = event.keyCode; var value = fld.value; var dotPos; var inputPos; if(precision>0){ strCheck = '0123456789.'; }else{ strCheck = '0123456789'; } dotPos = value.indexOf("."); // dot position inputPos = getPos(fld); // input positon key = String.fromCharCode(keyCode); // Get key value from key code if (keyCode == 13) return true; // Enter if(strCheck.indexOf(key) == -1) event.keyCode = 0; // Not a valid key if(dotPos != -1 && key == ".") event.keyCode = 0; // repeat enter "." if(value == "0"){ // 输入框为0再输入时判断 if(document.selection.type == "None"){ if(inputPos==1){ if(key!=".") event.keyCode = 0; } } } if(dotPos != -1 && inputPos > dotPos){ if(document.selection.type == "None"){ if(value.length-value.indexOf(".")-1 >= precision) event.keyCode = 0; // exceed the precision } } if(key=="0" && value.length>0){ // 输入0时判断 if(inputPos==0){ // 在最前面插入 if(value.charAt(0)!=".") event.keyCode = 0; }else if(inputPos==1){ if(value.charAt(0)=="0") event.keyCode = 0; } } } /* document by Tony 2004-10-24 precision:小数位数 功能:格式化数值字符串 */ function formatNumStr(str, precision){ var i = j = 0; var aux=''; var _value; var _dataPart; var _integralPart; var _decimalPart; var decOb; str = String(str); str = trim(str); _value = removeMilSep(str); if(isNaN(_value)) return "0"; _dataPart = _value.split("."); _integralPart = _dataPart[0]; if(_integralPart==""){ _integralPart = "0"; } if(_dataPart.length==1){ // 只有整数部分 _decimalPart = ""; }else{ _decimalPart = _dataPart[1]; } decOb = formatDecimalPart(_decimalPart, precision); _integralPart = String(parseInt(_integralPart)+parseInt(decOb.intPart)); // 加千分位 for (j = 0, i = _integralPart.length-1; i >= 0; i--) { if (j == 3) { aux = __milSep + aux; j = 0; } aux = _integralPart.charAt(i) + aux; j++; } _integralPart = aux; _value = _integralPart; if(decOb.decPart != ""){ _value = _value + "." + decOb.decPart; } if(str=="" && !isNaN(str) && parseFloat(_value)==0){ _value = ""; } return _value; } function decFormatRet(intPart, decPart){ this.intPart = intPart; this.decPart = decPart; } /* document by Tony 2004-10-24 str:小数部分,不包含小数点 precision:小数位数 功能:为小数部分补零 */ function formatDecimalPart(str, precision){ var i=0; var aux=str; var retOb; var power = 1; var intPart, decPart; var tmp = parseFloat("0."+str); if(str.length > precision){ for(i=0; i0){ for(i=aux.length; i-1){ value = value.replace(__milSep, ""); } } return value; } /* Function: 支持null的NOT Document by Lithium 2002-5-10 Last modify by Lithium 2002-5-10 */ function NOT(b) { if (b==null) { return null; } return !b; } /* Function: 判断是否是0-9的数字 Document by Lithium 2002-5-10 Last modify by Lithium 2002-5-10 */ function isNumber(c) { if (c.length!=1) { return null; } if ((c>='0') && (c<='9')) return true; else return false; } /* Function: 判断是否是数字编码 Document by Lithium 2002-5-15 Last modify by Lithium 2002-5-15 */ function isNumString(s) { if(s.length==0) { return null; } for(var i=0; i2029) { return false; } if(parseInt(month)>12 || parseInt(month)<1) { return false; } var m=parseInt(month) var d=31 if(m==4 ||m==6 || m==9 || m==11) { d=30 } if(m==2) { if(isLeapYear(parseInt(year))) { d=29 }else { d=28 } } if(parseInt(day)>d) { return false; } return true; } function isLeapYear(argYear) { return (((argYear%4==0) && !(argYear%100==0)) || (argYear%400==0)); } /* Function: 字符串普通检测函数 Document by Lithium 2002-5-13 Last modify by Tony 2004-10-27 */ function chkInput(str, maxLen, errMsg) { str=trim(str); // Remove the blanks if(realLength(str)>maxLen) { alert(errMsg+"中输入了太多文字!") return false } return true } /* Function: 字符串检测函数 Document by Lithium 2002-5-13 Last modify by Lithium 2002-5-13 */ function chkString(str, mandatory, minLen, maxLen, errMsg) { str=trim(str); // Remove the blanks if(str.length==0) { if(mandatory) { alert(errMsg+"不能为空!") return false }else { return true } } if(minLen<1) { minLen=1 } if(realLength(str)maxLen) { alert(errMsg+"的长度必须在 "+minLen+"-"+maxLen+" 之间!") return false } return true } /* Function: 数值检测函数 Document by Lithium 2002-5-13 Last modify by Lithium 2002-5-13 */ function chkNumeric(str, mandatory, minValue, maxValue, errMsg) { str=trim(str); // Remove the blanks if(str.length==0) { if(mandatory) { alert(errMsg+"不能为空!") return false }else { return true } } if(isNaN(str)) { alert(errMsg+"输入错误!") return false } if(strmaxValue) { alert(errMsg+"必须在 "+minValue+"-"+maxValue+" 之间!") return false } return true } /* Function: 整数检测函数 Document by Lithium 2002-6-5 Last modify by Lithium 2002-6-6 */ function chkInt(str, mandatory, minValue, maxValue, errMsg) { str=trim(str); // Remove the blanks if(str.length==0) { if(mandatory) { alert(errMsg+"不能为空!") return false }else { return true } } if(isNaN(str)) { alert(errMsg+"输入错误!") return false } if(_leftTrim0(str)!="") { if(parseInt(_leftTrim0(str))!=str || str.indexOf(".") != -1) { alert(errMsg+"必须为整数!") return false } } if(strmaxValue) { alert(errMsg+"必须在 "+minValue+"-"+maxValue+" 之间!") return false } return true } /* Function: 身份证号检测函数 Document by Lithium 2002-5-13 Last modify by Lithium 2002-5-13 */ function chkId(str, mandatory, errMsg) { str=trim(str); // Remove the blanks if(str.length==0) { if(mandatory) { alert(errMsg+"不能为空!") return false }else { return true } } if(realLength(str)!=15 && realLength(str)!=18) { alert(errMsg+"输入错误!") return false } return true } /* Function: 邮编检测函数 Document by Lithium 2002-5-13 Last modify by Lithium 2002-5-13 */ function chkZipCode(str, mandatory, errMsg) { str=trim(str); // Remove the blanks if(str.length==0) { if(mandatory) { alert(errMsg+"不能为空!") return false }else { return true } } if(realLength(str)!=6) { alert(errMsg+"输入错误!") return false } return true } /* Function: EMail检测函数 Document by Lithium 2002-5-13 Last modify by Lithium 2002-5-13 */ function chkEMail(str, mandatory, errMsg) { str=trim(str); // Remove the blanks if(str.length==0) { if(mandatory) { alert(errMsg+"不能为空!") return false }else { return true } } for (i=0; i15) { alert(errMsg+"输入超长!") return false } return true } /* Function: 下拉列表框检测函数 Document by Lithium 2004-10-27 Last modify by Tony 2004-10-27 */ function chkCombo(str, mandatory, errMsg) { str=trim(str); // Remove the blanks if(str=="" || str=="none") { if(mandatory) { alert("请选择一个"+errMsg+"!") return false }else{ if(str=="none") { alert("请选择一个有效的"+errMsg+"!") return false; }else{ return true; } } } return true } /* Function: 单击List的页面的列表标题调用,实现单击列排序。 Document by Tony 2004-12-15 */ function myTrClickForOrder(){ var orderField = event.srcElement.name; var oldOrderField = document.formName.myOrderFields.value; var i = oldOrderField.indexOf(" "); if(i != -1){ oldOrderField = oldOrderField.substring(0, i); } if(orderField != oldOrderField){ parent.myOrderDirection = "desc"; } if (orderField == null || orderField == ""){ return; } if (parent.myOrderDirection == "desc"){ parent.myOrderDirection = "asc"; }else{ parent.myOrderDirection = "desc" } document.formName.myOrderFields.value = orderField + " " + parent.myOrderDirection; submitForm('','OptQueryCondition',''); } function myTrClickForOrder2(optKind){ var orderField = event.srcElement.name; var oldOrderField = document.formName.myOrderFields.value; var i = oldOrderField.indexOf(" "); if(i != -1){ oldOrderField = oldOrderField.substring(0, i); } if(orderField != oldOrderField){ parent.myOrderDirection = "desc"; } if (orderField == null || orderField == ""){ return; } if (parent.myOrderDirection == "desc"){ parent.myOrderDirection = "asc"; }else{ parent.myOrderDirection = "desc" } document.formName.myOrderFields.value = orderField + " " + parent.myOrderDirection; submitForm('',optKind,''); } /* Function: 用于设置排序列的排序图标。 Document by Tony 2004-12-15 */ function setOrderDirectionFlag(){ var orderField = document.formName.myOrderFields.value; if (orderField == null || trim(orderField).length == 0){ return; } var x = orderField.indexOf(","); if(x != -1){ return; } var i = orderField.indexOf(" "); if(i != -1){ orderField = orderField.substring(0, i); } orderField = orderField.replace('.', '_'); var o_orderField = MM_findObj(orderField); if (o_orderField == null){ return; } var myOrderFlag = document.createElement("img"); eval(orderField + ".insertBefore(myOrderFlag)"); var srcPath; if (parent.myOrderDirection == 'desc'){ srcPath = "/Honglian/images/down.gif"; }else if(parent.myOrderDirection == 'asc'){ srcPath = "/Honglian/images/up.gif"; }else{ srcPath = "/Honglian/images/aaa.gif"; } myOrderFlag.src = srcPath; } /* Function: 判断是否有分页信息,若有将“gotoPage”和“currentPage”置为零。 Document by Tony 2005-1-14 */ function resetPagination(){ var oGotoPage = document.all.item("gotoPage"); var oCurrentPage = document.all.item("currectPage"); if (oGotoPage != null && oCurrentPage != null){ oGotoPage.value = 1; oCurrentPage.value = 1; } } function doAllSelect(obj,checkName) { var obj_checkName = document.getElementsByName(checkName); if(obj.checked==true) { for(i=0;i"; } else { td_content.style.display='block'; } }else{ tmpContent=true; td_content.style.display='none'; } //alert(td_content.innerHTML); } } function previewImage(obj) { var w=window.clientWidth; var h=window.clientHeight; var left=0; var top=0; var html=obj.outerHTML; /* var pop=window.createPopup(); var popDocument=pop.document; var popBody=popDocument.body; popBody.style.backgroundColor="red"; popBody.innerHTML=html; pop.show(left,top,obj.width,obj.height,obj); */ } var imgTemp=false; function hideImage() { try{ document.body.removeChild(imgTemp); } catch(exception) {} } function showImage(obj) { hideImage(); var divw=400; var divh=300; var w=document.body.clientWidth; var h=document.body.clientHeight; var left=(w-divw)/2; var top=(h-divh)/2+document.body.scrollTop; if(left<0)left=0; if(top<0)top=0; //创建图片 var img=document.createElement("img"); img.src=obj.path; var width=img.width; var height=img.height; if(width>divw||height>divh){ var x=width/divw; var y=height/divh; var t=Math.max(x,y); width=width/t; height=height/t; } //创建table var table=document.createElement("table"); table.cellPadding="0"; table.cellSpacing="0"; var row=table.insertRow(); var cell=row.insertCell(); cell.style.cursor="pointer"; cell.style.height="12"; cell.style.backgroundColor="#336699"; cell.align="right"; cell.innerHTML="关闭 "; row=table.insertRow(); var div=row.insertCell(); img.width=width; img.height=height; div.style.backgroundColor="#CCCCCC"; table.style.position="absolute"; table.style.width=divw; table.style.height=divh+20; table.style.left=left; table.style.top=top; div.vAlign="middle"; div.align="middle"; imgTemp=table; div.appendChild(img); document.body.appendChild(table); } function viewImage(path) { var str=document.createElement("img"); str.setAttribute("src","../../images/houtai/pic.gif"); str.setAttribute("width","15"); str.setAttribute("height","15"); str.style.cursor="pointer"; str.setAttribute("onmouseover","showImage(this)"); //str.setAttribute("onmouseout","hideImage()"); str.setAttribute("path",path); document.write(str.outerHTML); //document.write(""); } function viewDiv(obj) { var div_obj=document.getElementById(obj); var display=div_obj.style.display; if(display=='none') { div_obj.style.display='block'; }else{ div_obj.style.display='none'; } }