//拼音字典字典缓存全局变量 window.PINYIN_DICT_CACHE = null; /** * Purpose:全角转半角,返回转换后的字符串 * Inputs: String * Returns:String */ function qj2bj(str){ //全角字符 var qj = new Array('0','1','2','3','4','5','6','7','8','9','(',')','-','A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z'); //半角字符 var bj = new Array('0','1','2','3','4','5','6','7','8','9','(',')','-','A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z'); var newStr = ""; var change = false; for(var i=0;i='0'&& temp<='9')||(temp=='.')) {} //check input in 0-9 and '.' else { return false; } } return true; } /** * Purpose: 判断输入是否为电话号码 * Inputs: String * Returns: True, False */ function isPhoneNumber(str) { var i,strlengh,tempchar; str=CStr(str); if(str=="") return false; strlength=str.length; for(i=0;i= 0) { if (wordOnly) { var before = ind - 1; var after = ind + oldTerm.length; if (!(space(wk.charAt(before)) && space(wk.charAt(after)))) { next = ind + oldTerm.length; continue; } } target = target.substring(0,ind) + newTerm + target.substring(ind+oldTerm.length,target.length); wk = wk.substring(0,ind) + newTerm + wk.substring(ind+oldTerm.length,wk.length); next = ind + newTerm.length; if (next >= wk.length) { break; } } return target; } /** *判断输入是否为年月(格式:yyyymm) *输入:string *返回:true-是,false-否 */ function isNY(str){ if(str.length != 6) return false; var yy=str.substring(0,4); var mm=str.substring(4,6); if(!isInteger(yy)) return false; if(!isInteger(mm)) return false; if(yy<"1900"||yy>"2999") return false; if(mm<"01"||mm>"12") return false; return true; } /** * Purpose: 判断输入是否为日期,录入的格式可以为yyyy-mm-dd,yyyymmdd,yyyy/mm/dd * Inputs: String * Returns: True, False */ function isDate(str) { var sYear =''; var sMonth=''; var sDay =''; var arry; var j =0; var i =0; var s="-"; i = str.indexOf(s); if(i==-1){s="/";} i = str.indexOf(s); if(i==-1){s="";} if(i>-1){ j = str.lastIndexOf(s); } //yyyy-mm-dd 或 yyyy/mm/dd if(i>0 && str.length != 10){ return false; } if(i>0){ if((i != 4)||(j != 7)) return false; arry = str.split(s); sYear =arry[0]; sMonth =arry[1]; sDay =arry[2]; } if(i==-1 && str.length != 8){ return false; } //yyyymmdd if(i==-1 && str.length == 8){ sYear =str.substr(0,4); sMonth =str.substr(4,2); sDay =str.substr(6,2); } if(sDay==""){return false;} if(sDay!=""&&!FWisDate(sYear,sMonth,sDay)){ return false; }else{ return true; } return false; } /** * Purpose: 判断输入是否为日期 格式:yyyy-MM-dd,且为合法的日期 * Inputs: String * Returns: True, False */ function isDate2(strDate) { strDate = strDate.replace(/(^\s+)?(\s+$)?/gi, ""); var strSeparator = "-"; var strDateArray; var intYear; var intMonth; var intDay; var boolLeapYear; var ln_len=strDate.length; if(ln_len<8||ln_len>10) return false;//长度判断 strDateArray = strDate.split(strSeparator); if(strDateArray.length!=3) return false; intYear = parseInt(strDateArray[0],10); intMonth = parseInt(strDateArray[1],10); intDay = parseInt(strDateArray[2],10); if(isNaN(intYear)||isNaN(intMonth)||isNaN(intDay)) return false; if(intYear<1900||intYear>2999) return false; if(intMonth>12||intMonth<1) return false; if((intMonth==1||intMonth==3||intMonth==5||intMonth==7||intMonth==8||intMonth==10||intMonth==12)&&(intDay>31||intDay<1)) return false; if((intMonth==4||intMonth==6||intMonth==9||intMonth==11)&&(intDay>30||intDay<1)) return false; if(intMonth==2){ if(intDay<1) return false; boolLeapYear = false; if((intYear%100)==0){ if((intYear%400)==0) boolLeapYear = true; } else{ if((intYear%4)==0) boolLeapYear = true; } if(boolLeapYear){ if(intDay>29) return false; } else{ if(intDay>28) return false; } } return true; } /** * Purpose: 判断输入是否为日期 格式:yyyy-MM-dd 或者 yyyy-MM-dd hh:mm:ss,且为合法的日期 * Inputs: String * Returns: True, False */ function isDate3(strDate) { strDate = strDate.replace(/(^\s+)?(\s+$)?/gi, ""); var ln_len=strDate.length; if((ln_len<8||ln_len>10) && (ln_len<17||ln_len>19)) return false;//长度判断 if ( ln_len >=8 && ln_len <= 10 ) return isDate(strDate); if ( ln_len >=17 && ln_len <= 19 ) return isDateTime(strDate); return false; } /** * Purpose: 判断输入是否为日期 格式:yyyy-MM,且为合法的日期 * Inputs: String * Returns: True, False */ function isDateShort(strDate) { var strSeparator = "-"; var strDateArray; var intYear; var intMonth; var intDay; var boolLeapYear; var ln_len=strDate.length; if(ln_len<6||ln_len>7) return false;//长度判断 strDateArray = strDate.split(strSeparator); if(strDateArray.length!=2) return false; intYear = parseInt(strDateArray[0],10); intMonth = parseInt(strDateArray[1],10); if(isNaN(intYear)||isNaN(intMonth)) return false; if(intYear<1900||intYear>2999) return false; if(intMonth>12||intMonth<1) return false; return true; } /** * Purpose: 判断输入是否为日期 格式:yyyyMM,且为合法的日期 * Inputs: String * Returns: True, False */ function isDateClose(strDate) { var strSeparator = "-"; var strDateArray; var intYear; var intMonth; var intDay; var boolLeapYear; var charMonth; var ln_len=strDate.length; if(ln_len!=6) return false;//长度判断 intYear = parseInt(strDate.substr(0,4)); intMonth = parseInt(strDate.substr(4,6)); charMonth = strDate.substr(4,6); if(isNaN(intYear)||isNaN(intMonth)) return false; if(intYear<1900||intYear>2999) return false; if(charMonth>12||charMonth<1) return false; return true; } /** * Purpose: 判断输入是否为时间,格式:hh:mm:ss,且为合法的24小时制时间 * Inputs: String * Returns: True, False */ function isTime2(strTime) { var hStr; var mStr; var sStr; var h; var m; var s; if(strTime.length == 8) { if((strTime.substring(2,3)==":")&&(strTime.substring(5,6)==":")) { hStr = strTime.substring(0,2); mStr = strTime.substring(3,5); sStr = strTime.substring(6,8); h = parseInt(hStr); m = parseInt(mStr); s = parseInt(sStr); if((h<=23)&&(m<=59)&&(s<=59)) return true; else return false; } } else { return false; } } /** * Purpose: 判断输入是否为日期+时间,格式:yyyy-MM-dd hh:mm:ss,且为合法的日期和合法的24小时制时间 * Inputs: String * Returns: True, False */ function isDateTime(str){ // alert(str); var ln_len=str.length; if(ln_len<17||ln_len>19) return false;//长度判断 var str1=str.split(" "); // alert(str1.length); // alert(str1[0]); // alert(str1[1]); if(isDate(str1[0])){ if(isDate2(str1[0])){ if(isTime2(str1[1])){ return true; } } } return false; } /** * Purpose: 从身份证号码取生日 * Inputs: String * Returns: String */ function getBirthday(str) { if(str!="") { if(str.length==15) { var year = "19" + str.substring(6,8); var month = str.substring(8,10); var day = str.substring(10,12); var retStr = year + "-" + month + "-" + day; //window.alert(year); //window.alert(month); //window.alert(day); //window.alert(retStr); return retStr; } else if(str.length==18) { var year = str.substring(6,10); var month = str.substring(10,12); var day = str.substring(12,14); var retStr = year + "-" + month + "-" + day; return retStr; } } else return ""; } /** * Purpose: 判断输入是否为空 * Inputs: String * Returns: True, False */ function isNull(str) { var temp; temp = CStr(str); try{ temp =$.trim(temp); }catch(e){} if(typeof(str)=="undefined" || str==null || (temp=="")||(temp.length==0)) { return true; } return false; } /** * added by runfly on 07-06-12 * Purpose: 类似oracle数据库的nvl函数 * Inputs: String str * Inputs: String defv 默认值 * Returns: 如果str为空,则返回defv,若不为空,返回str */ function nvl(str,defv) { if(typeof(str)=="undefined" || str==null || str=="" || str.toLowerCase()=="null"){ return defv; }else{ return str; } } /** * Purpose: 判断输入是否为数值(包括小数点) * Inputs: String ,lenStr表示要判断的小数位数,如4,表示小数点后不能超过4位 * Returns: True, False */ function checkFloat(str, lenStr) { if(str=="") return true; //alert('str=' + str); var tmp; var temp; var i; var num; num = -1; tmp =str; for(i=0;i='0'&& temp<='9')||(temp=='.')){ if (num >= 0){num = num+1;} if (temp=='.'){num = 0;} } //check input in 0-9 and '.' else { return false; } } if (num > lenStr || num == 0){return false;} return true; } /** * * Purpose: 检查整个表单中输入组件的输入情况的合法性,只包含非空、字符和日期型的校验 * Inputs: 表单, * Inputs: options,其它校验规则,格式如:{valLenRule:'char'} * 长度校验规则valLenRule,byte:按字节校验,char:按字符校验,默认按字节校验 * Returns: True, False */ function validateForm(dform,options){ var notnullStr = ''; var notnullArr = []; var numberStr = ''; var numberArr = []; var numberAgeStr = ''; var numberAgeArr = []; var numberAgeLawMaleStr = ''; var numberAgeLawMaleArr = []; var numberAgeLawFemaleStr = ''; var numberAgeLawFemaleArr = []; var numberHeightStr = ''; var numberHeightArr = []; var numberWeightStr = ''; var numberWeightArr = []; var postcodeStr = ''; var postcodeArr = []; var dateStr = ''; var dateArr = []; var mailStr = ''; var mailArr = []; var dateLongStr = ''; var dateLongArr = []; var dateShortStr = ''; var dateShortArr = []; var dateCloseStr = ''; var dateCloseArr = []; var dateTimeStr = ''; var dateTimeArr = []; var floatStr = ''; var floatArr = []; var floatSightStr = ''; var floatSightArr = []; var bitLStr =''; var bitLArr = []; var telLStr =''; var telLArr = []; var colorStr =''; var colorArr = []; var sfzStr =''; var sfzArr = []; var chineseStr = ''; var chineseArr = []; var notHasChineseStr = ''; var notHasChineseArr = []; var basicCondiction ={length:0}; theForm = dform; //检查不安全的字符串 for (i = 0; i < theForm.elements.length; i ++){//遍历form中的字段 var isInvalide=false; ele = theForm.elements[i]; if(null != ele.value){ for(var unsafei=0;unsafei0&&s.length!=6){ postcodeArr.push(ele); } } //证件类型 if($(ele).hasClass('combobox')){ ele.className = ele.className.replace(/valueInvalide/,''); if(ele.cn!=null){ if(ele.value=='6'){//证件类型为身份证 var zjhm; eval("zjhm=theForm."+ele.cn); zjhm.className = ele.className.replace(/valueInvalide/,''); if(zjhm.value!=''){ if(!FWidcardCheck(zjhm.value)){ sfzStr = sfzStr + '\n' + _IDCARD_MSG; sfzArr.push(zjhm); jQuery(zjhm).addClass('valueInvalide'); } } }//=6 }//ele.cn!=null }//combobox if(ele.vldStr==null){ continue; }else if(ele.vldStr==''){ continue; } colName = theForm.elements[i].name;//字段的名称 validStrs = theForm.elements[i].vldStr; name_validStrs = validStrs.split('=');//得到字段的中文名称 if (name_validStrs.length == 2){ colName = name_validStrs[0]; validStrs = name_validStrs[1]; pint=parseInt(theForm.elements[i].value); pfloat=parseFloat(theForm.elements[i].value); } tmpArray = validStrs.split('+'); for (j = 0; j < tmpArray.length; j ++){//检查该字段的校验类型 if (tmpArray[j] == 'nn' ){ if(isNull(theForm.elements[i].value)){ //有非空却为空的字段 notnullStr = notnullStr + '\n' + colName; notnullArr.push(theForm.elements[i]); //属于封装过的下拉框 var eleName = theForm.elements[i].className; if(eleName.indexOf('combobox')!=-1 ||eleName.indexOf('incombox')!=-1 ||eleName.indexOf('dbcombox')!=-1||eleName.indexOf('zjcombox')!= -1){ try{ var span = jQuery.data(theForm.elements[i], 'fwcombox').fwcombox; var input = jQuery('.fwcombox-text',span); input.addClass('valueInvalide'); isInvalide=true; }catch(e){ jQuery(theForm.elements[i]).addClass('valueInvalide'); } }else{ //加入底框的颜色 jQuery(theForm.elements[i]).addClass('valueInvalide'); } }else{ //取消valueInvalide标志 //属于封装过的下拉框 var eleName = theForm.elements[i].className; if(eleName.indexOf('combobox')!=-1 ||eleName.indexOf('incombox')!=-1 ||eleName.indexOf('dbcombox')!=-1||eleName.indexOf('zjcombox')!= -1){ try{ var span = jQuery.data(theForm.elements[i], 'fwcombox').fwcombox; var input = jQuery('.fwcombox-text',span); input.removeClass('valueInvalide'); }catch(e){ jQuery(theForm.elements[i]).removeClass('valueInvalide'); } }else{ //加入底框的颜色 jQuery(theForm.elements[i]).removeClass('valueInvalide'); } } }else if(tmpArray[j] == 'n' && !isNull(theForm.elements[i].value) && !isInteger(theForm.elements[i].value)){//有不合法的数字型字段 numberStr = numberStr + '\n' + colName; numberArr.push(theForm.elements[i]); }else if(tmpArray[j] == 'h' && !isNull(theForm.elements[i].value)){//有不合法的身高型字段 if(isInteger(theForm.elements[i].value) && (pint>0) && (pint<300)){ }else{ numberHeightStr = numberHeightStr + '\n' + colName; numberHeightArr.push(theForm.elements[i]); } }else if(tmpArray[j] == 'w' && !isNull(theForm.elements[i].value)){//有不合法的体重型字段 if(isInteger(theForm.elements[i].value) && (pint>0) && (pint<200)){ }else{ numberWeightStr = numberWeightStr + '\n' + colName; numberWeightArr.push(theForm.elements[i]); } }else if(tmpArray[j] == 'a' && !isNull(theForm.elements[i].value)){//有不合法的年龄型字段 if(isInteger(theForm.elements[i].value) && (pint>0) && (pint<200)){ }else{ numberAgeStr = numberAgeStr + '\n' + colName; numberAgeArr.push(theForm.elements[i]); } }else if(tmpArray[j] == 'alm' && !isNull(theForm.elements[i].value)){//有不合法的法定男性年龄型字段 if(isInteger(theForm.elements[i].value) && (pint>=16) && (pint<=60)){ }else{ numberAgeLawMaleStr = numberAgeLawMaleStr + '\n' + colName; numberAgeLawMaleArr.push(theForm.elements[i]); } }else if(tmpArray[j] == 'alf' && !isNull(theForm.elements[i].value)){//有不合法的法定女性年龄型字段 if(isInteger(theForm.elements[i].value) && (pint>=16) && (pint<=55)){ }else{ numberAgeLawFemaleStr = numberAgeLawFemaleStr + '\n' + colName; numberAgeLawFemaleArr.push(theForm.elements[i]); } }else if(tmpArray[j] == 'p' && !isNull(theForm.elements[i].value)){//有不合法的邮政编码型字段 if(isInteger(theForm.elements[i].value) && (theForm.elements[i].value.length == 6)){ }else{ postcodeStr = postcodeStr + '\n' + colName; postcodeArr.push(theForm.elements[i]); } }else if(tmpArray[j]=='ml' && !isNull(theForm.elements[i].value) && !isEmail(theForm.elements[i].value)){//有不合法的邮箱字段 mailStr = mailStr + '\n' + colName; mailArr.push(theForm.elements[i]); }else if(tmpArray[j] == 't' && !isNull(theForm.elements[i].value) && !isPhoneNumber(theForm.elements[i].value)){//有不合法的电话号码型字段 telLStr = telLStr + '\n' + colName; telLArr.push(theForm.elements[i]); }else if(tmpArray[j] == 'd' && !isNull(theForm.elements[i].value) && !isDate3(theForm.elements[i].value)){//有不合法的日期型字典 dateStr = dateStr + '\n' + colName; dateArr.push(theForm.elements[i]); }else if(tmpArray[j] == 'dl' && !isNull(theForm.elements[i].value) && !isDateTime(theForm.elements[i].value)){//有不合法的(YYYY-MM-DD HH24:MI:SS)日期型字典 dateLongStr = dateLongStr + '\n' + colName; dateLongArr.push(theForm.elements[i]); }else if(tmpArray[j] == 'ds' && !isNull(theForm.elements[i].value) && !isDateShort(theForm.elements[i].value)){//有不合法的(YYYY-MM)日期型字典 dateShortStr = dateShortStr + '\n' + colName; dateShortArr.push(theForm.elements[i]); }else if(tmpArray[j] == 'dc' && !isNull(theForm.elements[i].value) && !isDateClose(theForm.elements[i].value)){//有不合法的(YYYYMM)日期型字典 dateCloseStr = dateCloseStr + '\n' + colName; dateCloseArr.push(theForm.elements[i]); }else if(tmpArray[j] == 'dt' && !isNull(theForm.elements[i].value) && !isTime2(theForm.elements[i].value)){//有不合法的(HH24:MI:SS)时间型字典 dateTimeStr = dateTimeStr + '\n' + colName; dateTimeArr.push(theForm.elements[i]); }else if(tmpArray[j] == 'ac' && !isNull(theForm.elements[i].value) && !isAllChinese(theForm.elements[i].value)){//不合法的纯中文字符串 chineseStr = chineseStr + '\n' + colName; chineseArr.push(theForm.elements[i]); }else if(tmpArray[j] == 'nc' && !isNull(theForm.elements[i].value) && hasChinese(theForm.elements[i].value)){//不合法的非中文字符串 notHasChineseStr = notHasChineseStr + '\n' + colName; notHasChineseArr.push(theForm.elements[i]); }else if(tmpArray[j].indexOf('f')!=-1&&tmpArray[j]!='alf'){ //校验浮点型数据类型 var tmp = tmpArray[j]; var len = tmp.length; var ips = tmp.indexOf('f'); var str = ""; var val = theForm.elements[i].value; var ixu =0; //小数位数 var izu =0; //整数位数 if(val==''){ continue; }else{ val = val.replace(/,/gi,''); } if(!isFloat(val)){ floatStr = floatStr + '\n' + colName +' 必须为数值 '; floatArr.push(theForm.elements[i]); continue; } if(ips!=-1&&(ips+1)!=len){ str = tmp.split('f'); ixu = parseInt(str[1],10); if(!checkFloat(val, ixu)){ floatStr = floatStr + '\n' + colName +' 必须为'+ixu+'位小数 '; floatArr.push(theForm.elements[i]); continue; } }else{ var ips2 = val.indexOf('.'); if(ips2!=-1){ floatStr = floatStr + '\n' + colName +' 不能带有小数 '; floatArr.push(theForm.elements[i]); continue; } } str = tmp.split('f'); if(str[0]==''){ izu = 1; }else{ izu = parseInt(str[0],10); } str = val.split('.'); tmp = str[0]; len = tmp.length; if(parseInt(len,10) > izu){ floatStr = floatStr + '\n' + colName +' 不能大于'+izu+'位整数 '; floatArr.push(theForm.elements[i]); continue; } }else if(tmpArray[j] == 'sfz' && !isNull(theForm.elements[i].value) && !FWidcardCheck(theForm.elements[i].value)){//有不合法的身份证型字段 sfzStr = sfzStr + '\n' + colName +' '+_IDCARD_MSG; sfzArr.push(theForm.elements[i]); }else if(tmpArray[j] == 's'&& !isNull(theForm.elements[i].value)){//有不合法的视力型字段 if(checkFloat(theForm.elements[i].value, 1) && (((pfloat>=0.1) && (pfloat<=1.5))||((pfloat>=4.0)&&(pfloat<=5.2))) ){ }else{ floatSightStr = floatSightStr + '\n' + colName; floatSightArr.push(theForm.elements[i]); } }else if(tmpArray[j] == 'c'&& !isNull(theForm.elements[i].value)){//有不合法的颜色型字段 var c1=theForm.elements[i].value.substr(0,1); var c2=theForm.elements[i].value.substr(1,6); if((theForm.elements[i].value.length==7) && (c1=="#") && (parseInt(c2,16)>=0) && (parseInt(c2,16)<=16777215)){ }else{ colorStr = colorStr + '\n' + colName; colorArr.push(theForm.elements[i]); } }else if(tmpArray[j].substr(0,1) == 'l'){ var tmpA1=new String(); var bitL; tmpA=tmpArray[j]; if(arguments.length==2){ if(options.valLenRule=='char'){ bitL=(theForm.elements[i].value).length; }else{ bitL=bitLength(theForm.elements[i].value); } }else{ bitL=bitLength(theForm.elements[i].value); } var tmpAL=tmpA.length; var pos1=tmpA.indexOf("("); var pos2=tmpA.indexOf("-"); var pos3=tmpA.indexOf(")"); var bitL1=0; var bitL2=0; if(pos2!=-1){ bitL1=tmpA.substring(pos1+1,pos2); bitL2=tmpA.substring(pos2+1,pos3); }else{ bitL1=0; bitL2=tmpA.substring(pos1+1,pos3); } if(bitL!=0){ if(isInteger(bitL1)&&isInteger(bitL2)){ if(bitLbitL2){ bitLStr = bitLStr + '\n' +colName+'(字母或数字长度应在'+bitL1+'和'+bitL2+'之间,汉字长度应在'+Math.floor(parseInt(bitL1)/2)+'和'+Math.floor(parseInt(bitL2)/2)+'之间)'; bitLArr.push(theForm.elements[i]); } } } }else if(tmpArray[j].substr(0,2) == 'sn'){ var tmpA=tmpArray[j].substr(2); if(!basicCondiction[tmpA]){ basicCondiction[tmpA]=[]; basicCondiction.length++; } var one={ 'colName':colName, 'title':colName, 'isNull':isNull(theForm.elements[i].value), 'target':theForm.elements[i] }; basicCondiction[tmpA].push(one); } } } if (notnullStr.length > 0){ FWalert('以下字段不能为空!' + notnullStr); tryFocusEditableOne(notnullArr); return false; }else if (sfzStr.length > 0){ FWalert('以下身份证型字段不合法!' + sfzStr); tryFocusEditableOne(sfzArr); return false; }else if (numberStr.length > 0){ FWalert('以下数字型字段不合法!' + numberStr); tryFocusEditableOne(numberArr); return false; }else if (numberHeightStr.length > 0){ FWalert('以下身高型字段不合法!' + numberHeightStr); tryFocusEditableOne(numberHeightArr); return false; }else if (numberWeightStr.length > 0){ FWalert('以下体重型字段不合法!' + numberWeightStr); tryFocusEditableOne(numberWeightArr); return false; }else if (numberAgeStr.length > 0){ FWalert('以下年龄型字段不合法!' + numberAgeStr); tryFocusEditableOne(numberAgeArr); return false; }else if (numberAgeLawMaleStr.length > 0){ FWalert('以下法定男性年龄(16~60)型字段不合法!' + numberAgeLawMaleStr); tryFocusEditableOne(numberAgeLawMaleArr); return false; }else if (numberAgeLawFemaleStr.length > 0){ FWalert('以下法定女性年龄(16~55)型字段不合法!' + numberAgeLawFemaleStr); tryFocusEditableOne(numberAgeLawFemaleArr); return false; }else if (postcodeStr.length > 0){ FWalert('以下邮政编码型字段不合法!' + postcodeStr); tryFocusEditableOne(postcodeArr); return false; }else if (telLStr.length > 0){ FWalert('以下电话型字段不合法!(格式示例:+86020-12345678)' + telLStr); tryFocusEditableOne(telLArr); return false; }else if (dateStr.length > 0){ FWalert('以下日期型字段格式不合法!(格式示例:2005-05-05)' + dateStr); tryFocusEditableOne(dateArr); return false; }else if (dateLongStr.length > 0){ FWalert('以下日期型字段格式不合法!(格式示例:2005-05-05 23:59:59)' + dateLongStr); tryFocusEditableOne(dateLongArr); return false; }else if (dateShortStr.length > 0){ FWalert('以下日期型字段格式不合法!(格式示例:2005-05)' + dateShortStr); tryFocusEditableOne(dateShortArr); return false; }else if (dateCloseStr.length > 0){ FWalert('以下日期型字段格式不合法!(格式示例:200505)' + dateCloseStr); tryFocusEditableOne(dateCloseArr); return false; }else if (dateTimeStr.length > 0){ FWalert('以下时间型字段格式不合法!(格式示例:23:59:59)' + dateTimeStr); tryFocusEditableOne(dateTimeArr); return false; }else if (chineseStr.length > 0){ FWalert('以下纯中文字符串不合法!' + chineseStr); tryFocusEditableOne(chineseArr); return false; }else if (notHasChineseStr.length > 0){ FWalert('以下非中文字符串不合法!' + notHasChineseStr); tryFocusEditableOne(notHasChineseArr); return false; }else if (floatStr.length > 0){ FWalert('以下浮点型字段不合法!' + floatStr); tryFocusEditableOne(floatArr); return false; }else if (floatSightStr.length > 0){ FWalert('以下浮点型字段不合法!(示例:0.1~1.5 或者 4.0~5.2)' + floatSightStr); tryFocusEditableOne(floatSightArr); return false; }else if (bitLStr.length > 0){ FWalert('以下字段长度不合法!' + bitLStr); tryFocusEditableOne(bitLArr); return false; }else if (colorStr.length > 0){ FWalert('以下颜色型字段不合法!' + colorStr); tryFocusEditableOne(colorArr); return false; }else if (mailStr.length > 0){ FWalert('以下email地址型字段不合法!' + mailStr); tryFocusEditableOne(mailArr); return false; } if(basicCondiction.length>0){ for(var att in basicCondiction){ if(att=='length')continue; var flag=false; var msg='下列字段之一必录:'; var arr = []; for(v_index=0;v_index 1){ FWalert("您只能选择一条记录!"); return false; } if (flag && count == 1){ return true; } return false; } /** * Purpose: 根据列表中的选择(checkbox,可选多条)进行修改操作,调用 * 该函数进行检查,如果勾选项数量为空或者超过一个时,提示出错, * 否则从多记录表中checkbox 的VALUE中取值例如: value=”001|002” * Inputs: 表单,勾选框的名字、表单、存取ID的变量(2个以上) * Returns: true、false * 使用方法:confirmEditCon2(document.showform, * 'checkbox', * hiddenform, * 'AAA100|AAA102') *调用上面的函数后,以下的的AAA100以及AAA102的值为001和002 *
* * *
*/ function confirmEditCon2(aform, checkboxName,editform,eles){ theForm = aform; if(theForm.elements == null){ FWalert("要提交的表单没有数据"); return false; } var count=0; index = -1; flag = false; for (i = 0; i < theForm.elements.length; i ++){ if (theForm.elements[i].name == checkboxName && (theForm.elements[i].type == "checkbox" || theForm.elements[i].type == "radio" )){ if (theForm.elements[i].checked){ flag = true; index = i; count = count + 1; continue; } } } if(count == 0){ FWalert("您没有选择要操作的记录!"); return false; } if (flag && count > 1){ FWalert("您只能选择一条记录!"); return false; } if (flag && count == 1){ split_pot=theForm.elements[index].value; split_array=split_pot.split("|"); arr2=eles.split("|"); if (arr2.length != split_array.length){ FWalert("主键数目不匹配"); FWalert("checkbox:"+split_array.length+";form.value:"+arr2.length); } for(j=0; j2)i=12-i; else if(i==2)i="X"; else if(i<2)i=1-i; if(inputstr.substr(17,1)==i) {return true;} else { FWalert("公民身份号码输入不合法!校验位错误"); return false;} } function checkID(inputStr,objName,format){ var temp; var year,month,day; if(inputStr.length != format){ FWalert(objName+"格式不对,应为“"+format+"”位。"); return false; } else { if(format==18){ temp=inputStr.substring(6,10); year=parseInt(temp,10); if(year<1900 || year>2200){ FWalert(objName+"年份应介于1900与2200之间,请重新输入!"); return false; } } else if(format==15){ temp=inputStr.substring(6,8); year=parseInt(temp,10); if(year<00 || year>99){ FWalert(objName+"年份应介于00与99之间,请重新输入!"); return false; } } if(format==18) temp=inputStr.substring(10,12); else if(format==15) temp=inputStr.substring(8,10); month=parseInt(temp,10); if(month<1 ||month>12){ FWalert(objName+"月份必须介于1与12之间!"); return false; } if(format==18) temp=inputStr.substring(12,14); else if(format==15) temp=inputStr.substring(10,12); day=parseInt(temp,10); if((day==0)||(day>31)){ FWalert(objName+"日必须介于0与31之间!"); return false; }else if(day>28 && day<31){ if(month==2){ if(day!=29){ FWalert(objName+year+"年"+month+"月无"+day+"日。"); return false; } else { if((year%4)!=0){ FWalert(objName+year+"年"+month+"月无"+day+"日。"); return false; } else { if((year%100==0)&&(year%400!=0)){ FWalert(objName+year+"年"+month+"月无"+day+"日。"); return false; } } } } } else if(day==31){ if((month==2)||(month==4)||(month==6)||(month==9)||(month==11)){ FWalert(objName+month+"月无"+day+"日"); return false; } } } return true; } function is0AndPosInteger(inputVal) { var format=inputVal.length; if(format==18){ var lastChar = inputVal.charAt(inputVal.length-1); if(lastChar=="X") inputVal=inputVal.substring(0, inputVal.length-1); } for (var i = 0; i < inputVal.length; i++) { var oneChar = inputVal.charAt(i); if (oneChar < "0" || oneChar > "9") { return false; } } return true; } /** ** 获取中文字符串的拼音首字母 ** **/ var CH2EN = "YDYQSXMWZSSXJBYMGCCZQPSSQBYCDSCDQLDYLYBSSJGYZZJJFKCCLZDHWDWZJLJPFYYNWJJTMYHZWZHFLZPPQHGSCYYYNJQYXXGJHHSDSJNKKTMOMLCRXYPSNQSECCQZGGLLYJLMYZZSECYKYYHQWJSSGGYXYZYJWWKDJHYCHMYXJTLXJYQBYXZLDWRDJRWYSRLDZJPCBZJJBRCFTLECZSTZFXXZHTRQHYBDLYCZSSYMMRFMYQZPWWJJYFCRWFDFZQPYDDWYXKYJAWJFFXYPSFTZYHHYZYSWCJYXSCLCXXWZZXNBGNNXBXLZSZSBSGPYSYZDHMDZBQBZCWDZZYYTZHBTSYYBZGNTNXQYWQSKBPHHLXGYBFMJEBJHHGQTJCYSXSTKZHLYCKGLYSMZXYALMELDCCXGZYRJXSDLTYZCQKCNNJWHJTZZCQLJSTSTBNXBTYXCEQXGKWJYFLZQLYHYXSPSFXLMPBYSXXXYDJCZYLLLSJXFHJXPJBTFFYABYXBHZZBJYZLWLCZGGBTSSMDTJZXPTHYQTGLJSCQFZKJZJQNLZWLSLHDZBWJNCJZYZSQQYCQYRZCJJWYBRTWPYFTWEXCSKDZCTBZHYZZYYJXZCFFZZMJYXXSDZZOTTBZLQWFCKSZSXFYRLNYJMBDTHJXSQQCCSBXYYTSYFBXDZTGBCNSLCYZZPSAZYZZSCJCSHZQYDXLBPJLLMQXTYDZXSQJTZPXLCGLQTZWJBHCTSYJSFXYEJJTLBGXSXJMYJQQPFZASYJNTYDJXKJCDJSZCBARTDCLYJQMWNQNCLLLKBYBZZSYHQQLTWLCCXTXLLZNTYLNEWYZYXCZXXGRKRMTCNDNJTSYYSSDQDGHSDBJGHRWRQLYBGLXHLGTGXBQJDZPYJSJYJCTMRNYMGRZJCZGJMZMGXMPRYXKJNYMSGMZJYMKMFXMLDTGFBHCJHKYLPFMDXLQJJSMTQGZSJLQDLDGJYCALCMZCSDJLLNXDJFFFFJCZFMZFFPFKHKGDPSXKTACJDHHZDDCRRCFQYJKQCCWJDXHWJLYLLZGCFCQDSMLZPBJJPLSBCJGGDCKKDEZSQCCKJGCGKDJTJDLZYCXKLQSCGJCLTFPCQCZGWPJDQYZJJBYJHSJDZWGFSJGZKQCCZLLPSPKJGQJHZZLJPLGJGJJTHJJYJZCZMLZLYQBGJWMLJKXZDZNJQSYZMLJLLJKYWXMKJLHSKJGBMCLYYMKXJQLBMLLKMDXXKWYXYSLMLPSJQQJQXYXFJTJDXMXXLLCXQBSYJBGWYMBGGBCYXPJYGPEPFGDJGBHBNSQJYZJKJKHXQFGQZKFHYGKHDKLLSDJQXPQYKYBNQSXQNSZSWHBSXWHXWBZZXDMNSJBSBKBBZKLYLXGWXDRWYQZMYWSJQLCJXXJXKJEQXSCYETLZHLYYYSDZPAQYZCMTLSHTZCFYZYXYLJSDCJQAGYSLCQLYYYSHMRQQKLDXZSCSSSYDYCJYSFSJBFRSSZQSBXXPXJYSDRCKGJLGDKZJZBDKTCSYQPYHSTCLDJDHMXMCGXYZHJDDTMHLTXZXYLYMOHYJCLTYFBQQXPFBDFHHTKSQHZYYWCNXXCRWHOWGYJLEGWDQCWGFJYCSNTMYTOLBYGWQWESJPWNMLRYDZSZTXYQPZGCWXHNGPYXSHMYQJXZTDPPBFYHZHTJYFDZWKGKZBLDNTSXHQEEGZZYLZMMZYJZGXZXKHKSTXNXXWYLYAPSTHXDWHZYMPXAGKYDXBHNHXKDPJNMYHYLPMGOCSLNZHKXXLPZZLBMLSFBHHGYGYYGGBHSCYAQTYWLXTZQCEZYDQDQMMHTKLLSZHLSJZWFYHQSWSCWLQAZYNYTLSXTHAZNKZZSZZLAXXZWWCTGQQTDDYZTCCHYQZFLXPSLZYGPZSZNGLNDQTBDLXGTCTAJDKYWNSYZLJHHZZCWNYYZYWMHYCHHYXHJKZWSXHZYXLYSKQYSPSLYZWMYPPKBYGLKZHTYXAXQSYSHXASMCHKDSCRSWJPWXSGZJLWWSCHSJHSQNHCSEGNDAQTBAALZZMSSTDQJCJKTSCJAXPLGGXHHGXXZCXPDMMHLDGTYBYSJMXHMRCPXXJZCKZXSHMLQXXTTHXWZFKHCCZDYTCJYXQHLXDHYPJQXYLSYYDZOZJNYXQEZYSQYAYXWYPDGXDDXSPPYZNDLTWRHXYDXZZJHTCXMCZLHPYYYYMHZLLHNXMYLLLMDCPPXHMXDKYCYRDLTXJCHHZZXZLCCLYLNZSHZJZZLNNRLWHYQSNJHXYNTTTKYJPYCHHYEGKCTTWLGQRLGGTGTYGYHPYHYLQYQGCWYQKPYYYTTTTLHYHLLTYTTSPLKYZXGZWGPYDSSZZDQXSKCQNMJJZZBXYQMJRTFFBTKHZKBXLJJKDXJTLBWFZPPTKQTZTGPDGNTPJYFALQMKGXBDCLZFHZCLLLLADPMXDJHLCCLGYHDZFGYDDGCYYFGYDXKSSEBDHYKDKDKHNAXXYBPBYYHXZQGAFFQYJXDMLJCSQZLLPCHBSXGJYNDYBYQSPZWJLZKSDDTACTBXZDYZYPJZQSJNKKTKNJDJGYYPGTLFYQKASDNTCYHBLWDZHBBYDWJRYGKZYHEYYFJMSDTYFZJJHGCXPLXHLDWXXJKYTCYKSSSMTWCTTQZLPBSZDZWZXGZAGYKTYWXLHLSPBCLLOQMMZSSLCMBJCSZZKYDCZJGQQDSMCYTZQQLWZQZXSSFPTTFQMDDZDSHDTDWFHTDYZJYQJQKYPBDJYYXTLJHDRQXXXHAYDHRJLKLYTWHLLRLLRCXYLBWSRSZZSYMKZZHHKYHXKSMDSYDYCJPBZBSQLFCXXXNXKXWYWSDZYQOGGQMMYHCDZTTFJYYBGSTTTYBYKJDHKYXBELHTYPJQNFXFDYKZHQKZBYJTZBXHFDXKDASWTAWAJLDYJSFHBLDNNTNQJTJNCHXFJSRFWHZFMDRYJYJWZPDJKZYJYMPCYZNYNXFBYTFYFWYGDBNZZZDNYTXZEMMQBSQEHXFZMBMFLZZSRXYMJGSXWZJSPRYDJSJGXHJJGLJJYNZZJXHGXKYMLPYYYCXYTWQZSWHWLYRJLPXSLSXMFSWWKLCTNXNYNPSJSZHDZEPTXMYYWXYYSYWLXJQZQXZDCLEEELMCPJPCLWBXSQHFWWTFFJTNQJHJQDXHWLBYZNFJLALKYYJLDXHHYCSTYYWNRJYXYWTRMDRQHWQCMFJDYZMHMYYXJWMYZQZXTLMRSPWWCHAQBXYGZYPXYYRRCLMPYMGKSJSZYSRMYJSNXTPLNBAPPYPYLXYYZKYNLDZYJZCZNNLMZHHARQMPGWQTZMXXMLLHGDZXYHXKYXYCJMFFYYHJFSBSSQLXXNDYCANNMTCJCYPRRNYTYQNYYMBMSXNDLYLYSLJRLXYSXQMLLYZLZJJJKYZZCSFBZXXMSTBJGNXYZHLXNMCWSCYZYFZLXBRNNNYLBNRTGZQYSATSWRYHYJZMZDHZGZDWYBSSCSKXSYHYTXXGCQGXZZSHYXJSCRHMKKBXCZJYJYMKQHZJFNBHMQHYSNJNZYBKNQMCLGQHWLZNZSWXKHLJHYYBQLBFCDSXDLDSPFZPSKJYZWZXZDDXJSMMEGJSCSSMGCLXXKYYYLNYPWWWGYDKZJGGGZGGSYCKNJWNJPCXBJJTQTJWDSSPJXZXNZXUMELPXFSXTLLXCLJXJJLJZXCTPSWXLYDHLYQRWHSYCSQYYBYAYWJJJQFWQCQQCJQGXALDBZZYJGKGXPLTZYFXJLTPADKYQHPMATLCPDCKBMTXYBHKLENXDLEEGQDYMSAWHZMLJTWYGXLYQZLJEEYYBQQFFNLYXRDSCTGJGXYYNKLLYQKCCTLHJLQMKKZGCYYGLLLJDZGYDHZWXPYSJBZKDZGYZZHYWYFQYTYZSZYEZZLYMHJJHTSMQWYZLKYYWZCSRKQYTLTDXWCTYJKLWSQZWBDCQYNCJSRSZJLKCDCDTLZZZACQQZZDDXYPLXZBQJYLZLLLQDDZQJYJYJZYXNYYYNYJXKXDAZWYRDLJYYYRJLXLLDYXJCYWYWNQCCLDDNYYYNYCKCZHXXCCLGZQJGKWPPCQQJYSBZZXYJSQPXJPZBSBDSFNSFPZXHDWZTDWPPTFLZZBZDMYYPQJRSDZSQZSQXBDGCPZSWDWCSQZGMDHZXMWWFYBPDGPHTMJTHZSMMBGZMBZJCFZWFZBBZMQCFMBDMCJXLGPNJBBXGYHYYJGPTZGZMQBQTCGYXJXLWZKYDPDYMGCFTPFXYZTZXDZXTGKMTYBBCLBJASKYTSSQYYMSZXFJEWLXLLSZBQJJJAKLYLXLYCCTSXMCWFKKKBSXLLLLJYXTYLTJYYTDPJHNHNNKBYQNFQYYZBYYESSESSGDYHFHWTCJBSDZZTFDMXHCNJZYMQWSRYJDZJQPDQBBSTJGGFBKJBXTGQHNGWJXJGDLLTHZHHYYYYYYSXWTYYYCCBDBPYPZYCCZYJPZYWCBDLFWZCWJDXXHYHLHWZZXJTCZLCDPXUJCZZZLYXJJTXPHFXWPYWXZPTDZZBDZCYHJHMLXBQXSBYLRDTGJRRCTTTHYTCZWMXFYTWWZCWJWXJYWCSKYBZSCCTZQNHXNWXXKHKFHTSWOCCJYBCMPZZYKBNNZPBZHHZDLSYDDYTYFJPXYNGFXBYQXCBHXCPSXTYZDMKYSNXSXLHKMZXLYHDHKWHXXSSKQYHHCJYXGLHZXCSNHEKDTGZXQYPKDHEXTYKCNYMYYYPKQYYYKXZLTHJQTBYQHXBMYHSQCKWWYLLHCYYLNNEQXQWMCFBDCCMLJGGXDQKTLXKGNQCDGZJWYJJLYHHQTTTNWCHMXCXWHWSZJYDJCCDBQCDGDNYXZTHCQRXCBHZTQCBXWGQWYYBXHMBYMYQTYEXMQKYAQYRGYZSLFYKKQHYSSQYSHJGJCNXKZYCXSBXYXHYYLSTYCXQTHYSMGSCPMMGCCCCCMTZTASMGQZJHKLOSQYLSWTMXSYQKDZLJQQYPLSYCZTCQQPBBQJZCLPKHQZYYXXDTDDTSJCXFFLLCHQXMJLWCJCXTSPYCXNDTJSHJWXDQQJSKXYAMYLSJHMLALYKXCYYDMNMDQMXMCZNNCYBZKKYFLMCHCMLHXRCJJHSYLNMTJZGZGYWJXSRXCWJGJQHQZDQJDCJJZKJKGDZQGJJYJYLXZXXCDQHHHEYTMHLFSBDJSYYSHFYSTCZQLPBDRFRZTZYKYWHSZYQKWDQZRKMSYNBCRXQBJYFAZPZZEDZCJYWBCJWHYJBQSZYWRYSZPTDKZPFPBNZTKLQYHBBZPNPPTYZZYBQNYDCPJMMCYCQMCYFZZDCMNLFPBPLNGQJTBTTNJZPZBBZNJKLJQYLNBZQHKSJZNGGQSZZKYXSHPZSNBCGZKDDZQANZHJKDRTLZLSWJLJZLYWTJNDJZJHXYAYNCBGTZCSSQMNJPJYTYSWXZFKWJQTKHTZPLBHSNJZSYZBWZZZZLSYLSBJHDWWQPSLMMFBJDWAQYZTCJTBNNWZXQXCDSLQGDSDPDZHJTQQPSWLYYJZLGYXYZLCTCBJTKTYCZJTQKBSJLGMGZDMCSGPYNJZYQYYKNXRPWSZXMTNCSZZYXYBYHYZAXYWQCJTLLCKJJTJHGDXDXYQYZZBYWDLWQCGLZGJGQRQZCZSSBCRPCSKYDZNXJSQGXSSJMYDNSTZTPBDLTKZWXQWQTZEXNQCZGWEZKSSBYBRTSSSLCCGBPSZQSZLCCGLLLZXHZQTHCZMQGYZQZNMCOCSZJMMZSQPJYGQLJYJPPLDXRGZYXCCSXHSHGTZNLZWZKJCXTCFCJXLBMQBCZZWPQDNHXLJCTHYZLGYLNLSZZPCXDSCQQHJQKSXZPBAJYEMSMJTZDXLCJYRYYNWJBNGZZTMJXLTBSLYRZPYLSSCNXPHLLHYLLQQZQLXYMRSYCXZLMMCZLTZSDWTJJLLNZGGQXPFSKYGYGHBFZPDKMWGHCXMSGDXJMCJZDYCABXJDLNBCDQYGSKYDQTXDJJYXMSZQAZDZFSLQXYJSJZYLBTXXWXQQZBJZUFBBLYLWDSLJHXJYZJWTDJCZFQZQZZDZSXZZQLZCDZFJHYSPYMPQZMLPPLFFXJJNZZYLSJEYQZFPFZKSYWJJJHRDJZZXTXXGLGHYDXCSKYSWMMZCWYBAZBJKSHFHJCXMHFQHYXXYZFTSJYZFXYXPZLCHMZMBXHZZSXYFYMNCWDABAZLXKTCSHHXKXJJZJSTHYGXSXYYHHHJWXKZXSSBZZWHHHCWTZZZPJXSNXQQJGZYZYWLLCWXZFXXYXYHXMKYYSWSQMNLNAYCYSPMJKHWCQHYLAJJMZXHMMCNZHBHXCLXTJPLTXYJHDYYLTTXFSZHYXXSJBJYAYRSMXYPLCKDUYHLXRLNLLSTYZYYQYGYHHSCCSMZCTZQXKYQFPYYRPFFLKQUNTSZLLZMWWTCQQYZWTLLMLMPWMBZSSTZRBPDDTLQJJBXZCSRZQQYGWCSXFWZLXCCRSZDZMCYGGDZQSGTJSWLJMYMMZYHFBJDGYXCCPSHXNZCSBSJYJGJMPPWAFFYFNXHYZXZYLREMZGZCYZSSZDLLJCSQFNXZKPTXZGXJJGFMYYYSNBTYLBNLHPFZDCYFBMGQRRSSSZXYSGTZRNYDZZCDGPJAFJFZKNZBLCZSZPSGCYCJSZLMLRSZBZZLDLSLLYSXSQZQLYXZLSKKBRXBRBZCYCXZZZEEYFGKLZLYYHGZSGZLFJHGTGWKRAAJYZKZQTSSHJJXDCYZUYJLZYRZDQQHGJZXSSZBYKJPBFRTJXLLFQWJHYLQTYMBLPZDXTZYGBDHZZRBGXHWNJTJXLKSCFSMWLSDQYSJTXKZSCFWJLBXFTZLLJZLLQBLSQMQQCGCZFPBPHZCZJLPYYGGDTGWDCFCZQYYYQYSSCLXZSKLZZZGFFCQNWGLHQYZJJCZLQZZYJPJZZBPDCCMHJGXDQDGDLZQMFGPSYTSDYFWWDJZJYSXYYCZCYHZWPBYKXRYLYBHKJKSFXTZJMMCKHLLTNYYMSYXYZPYJQYCSYCWMTJJKQYRHLLQXPSGTLYYCLJSCPXJYZFNMLRGJJTYZBXYZMSJYJHHFZQMSYXRSZCWTLRTQZSSTKXGQKGSPTGCZNJSJCQCXHMXGGZTQYDJKZDLBZSXJLHYQGGGTHQSZPYHJHHGYYGKGGCWJZZYLCZLXQSFTGZSLLLMLJSKCTBLLZZSZMMNYTPZSXQHJCJYQXYZXZQZCPSHKZZYSXCDFGMWQRLLQXRFZTLYSTCTMJCXJJXHJNXTNRZTZFQYHQGLLGCXSZSJDJLJCYDSJTLNYXHSZXCGJZYQPYLFHDJSBPCCZHJJJQZJQDYBSSLLCMYTTMQTBHJQNNYGKYRQYQMZGCJKPDCGMYZHQLLSLLCLMHOLZGDYYFZSLJCQZLYLZQJESHNYLLJXGJXLYSYYYXNBZLJSSZCQQCJYLLZLTJYLLZLLBNYLGQCHXYYXOXCXQKYJXXXYKLXSXXYQXCYKQXQCSGYXXYQXYGYTQOHXHXPYXXXULCYEYCHZZCBWQBBWJQZSCSZSSLZYLKDESJZWMYMCYTSDSXXSCJPQQSQYLYYZYCMDJDZYWCBTJSYDJKCYDDJLBDJJSODZYSYXQQYXDHHGQQYQHDYXWGMMMAJDYBBBPPBCMUUPLJZSMTXERXJMHQNUTPJDCBSSMSSSTKJTSSMMTRCPLZSZMLQDSDMJMQPNQDXCFYNBFSDQXYXHYAYKQYDDLQYYYSSZBYDSLNTFQTZQPZMCHDHCZCWFDXTMYQSPHQYYXSRGJCWTJTZZQMGWJJTJHTQJBBHWZPXXHYQFXXQYWYYHYSCDYDHHQMNMTMWCPBSZPPZZGLMZFOLLCFWHMMSJZTTDHZZYFFYTZZGZYSKYJXQYJZQBHMBZZLYGHGFMSHPZFZSNCLPBQSNJXZSLXXFPMTYJYGBXLLDLXPZJYZJYHHZCYWHJYLSJEXFSZZYWXKZJLUYDTMLYMQJPWXYHXSKTQJEZRPXXZHHMHWQPWQLYJJQJJZSZCPHJLCHHNXJLQWZJHBMZYXBDHHYPZLHLHLGFWLCHYYTLHJXCJMSCPXSTKPNHQXSRTYXXTESYJCTLSSLSTDLLLWWYHDHRJZSFGXTSYCZYNYHTDHWJSLHTZDQDJZXXQHGYLTZPHCSQFCLNJTCLZPFSTPDYNYLGMJLLYCQHYSSHCHYLHQYQTMZYPBYWRFQYKQSYSLZDQJMPXYYSSRHZJNYWTQDFZBWWTWWRXCWHGYHXMKMYYYQMSMZHNGCEPMLQQMTCWCTMMPXJPJJHFXYYZSXZHTYBMSTSYJTTQQQYYLHYNPYQZLCYZHZWSMYLKFJXLWGXYPJYTYSYXYMZCKTTWLKSMZSYLMPWLZWXWQZSSAQSYXYRHSSNTSRAPXCPWCMGDXHXZDZYFJHGZTTSBJHGYZSZYSMYCLLLXBTYXHBBZJKSSDMALXHYCFYGMQYPJYCQXJLLLJGSLZGQLYCJCCZOTYXMTMTTLLWTGPXYMZMKLPSZZZXHKQYSXCTYJZYHXSHYXZKXLZWPSQPYHJWPJPWXQQYLXSDHMRSLZZYZWTTCYXYSZZSHBSCCSTPLWSSCJCHNLCGCHSSPHYLHFHHXJSXYLLNYLSZDHZXYLSXLWZYKCLDYAXZCMDDYSPJTQJZLNWQPSSSWCTSTSZLBLNXSMNYYMJQBQHRZWTYYDCHQLXKPZWBGQYBKFCMZWPZLLYYLSZYDWHXPSBCMLJBSCGBHXLQHYRLJXYSWXWXZSLDFHLSLYNJLZYFLYJYCDRJLFSYZFSLLCQYQFGJYHYXZLYLMSTDJCYHBZLLNWLXXYGYYHSMGDHXXHHLZZJZXCZZZCYQZFNGWPYLCPKPYYPMCLQKDGXZGGWQBDXZZKZFBXXLZXJTPJPTTBYTSZZDWSLCHZHSLTYXHQLHYXXXYYZYSWTXZKHLXZXZPYHGCHKCFSYHUTJRLXFJXPTZTWHPLYXFCRHXSHXKYXXYHZQDXQWULHYHMJTBFLKHTXCWHJFWJCFPQRYQXCYYYQYGRPYWSGSUNGWCHKZDXYFLXXHJJBYZWTSXXNCYJJYMSWZJQRMHXZWFQSYLZJZGBHYNSLBGTTCSYBYXXWXYHXYYXNSQYXMQYWRGYQLXBBZLJSYLPSYTJZYHYZAWLRORJMKSCZJXXXYXCHDYXRYXXJDTSQFXLYLTSFFYXLMTYJMJUYYYXLTZCSXQZQHZXLYYXZHDNBRXXXJCTYHLBRLMBRLLAXKYLLLJLYXXLYCRYLCJTGJCMTLZLLCYZZPZPCYAWHJJFYBDYYZSMPCKZDQYQPBPCJPDCYZMDPBCYYDYCNNPLMTMLRMFMMGWYZBSJGYGSMZQQQZTXMKQWGXLLPJGZBQCDJJJFPKJKCXBLJMSWMDTQJXLDLPPBXCWRCQFBFQJCZAHZGMYKPHYYHZYKNDKZMBPJYXPXYHLFPNYYGXJDBKXNXHJMZJXSTRSTLDXSKZYSYBZXJLXYSLBZYSLHXJPFXPQNBYLLJQKYGZMCYZZYMCCSLCLHZFWFWYXZMWSXTYNXJHPYYMCYSPMHYSMYDYSHQYZCHMJJMZCAAGCFJBBHPLYZYLXXSDJGXDHKXXTXXNBHRMLYJSLTXMRHNLXQJXYZLLYSWQGDLBJHDCGJYQYCMHWFMJYBMBYJYJWYMDPWHXQLDYGPDFXXBCGJSPCKRSSYZJMSLBZZJFLJJJLGXZGYXYXLSZQYXBEXYXHGCXBPLDYHWETTWWCJMBTXCHXYQXLLXFLYXLLJLSSFWDPZSMYJCLMWYTCZPCHQEKCQBWLCQYDPLQPPQZQFJQDJHYMMCXTXDRMJWRHXCJZYLQXDYYNHYYHRSLSRSYWWZJYMTLTLLGTQCJZYABTCKZCJYCCQLJZQXALMZYHYWLWDXZXQDLLQSHGPJFJLJHJABCQZDJGTKHSSTCYJLPSWZLXZXRWGLDLZRLZXTGSLLLLZLYXXWGDZYGBDPHZPBRLWSXQBPFDWOFMWHLYPCBJCCLDMBZPBZZLCYQXLDOMZBLZWPDWYYGDSTTHCSQSCCRSSSYSLFYBFNTYJSZDFNDPDHDZZMBBLSLCMYFFGTJJQWFTMTPJWFNLBZCMMJTGBDZLQLPYFHYYMJYLSDCHDZJWJCCTLJCLDTLJJCPDDSQDSSZYBNDBJLGGJZXSXNLYCYBJXQYCBYLZCFZPPGKCXZDZFZTJJFJSJXZBNZYJQTTYJYHTYCZHYMDJXTTMPXSPLZCDWSLSHXYPZGTFMLCJTYCBPMGDKWYCYZCDSZZYHFLYCTYGWHKJYYLSJCXGYWJCBLLCSNDDBTZBSCLYZCZZSSQDLLMQYYHFSLQLLXFTYHABXGWNYWYYPLLSDLDLLBJCYXJZMLHLJDXYYQYTDLLLBUGBFDFBBQJZZMDPJHGCLGMJJPGAEHHBWCQXAXHHHZCHXYPHJAXHLPHJPGPZJQCQZGJJZZUZDMQYYBZZPHYHYBWHAZYJHYKFGDPFQSDLZMLJXKXGALXZDAGLMDGXMWZQYXXDXXPFDMMSSYMPFMDMMKXKSYZYSHDZKXSYSMMZZZMSYDNZZCZXFPLSTMZDNMXCKJMZTYYMZMZZMSXHHDCZJEMXXKLJSTLWLSQLYJZLLZJSSDPPMHNLZJCZYHMXXHGZCJMDHXTKGRMXFWMCGMWKDTKSXQMMMFZZYDKMSCLCMPCGMHSPXQPZDSSLCXKYXTWLWJYAHZJGZQMCSNXYYMMPMLKJXMHLMLQMXCTKZMJQYSZJSYSZHSYJZJCDAJZYBSDQJZGWZQQXFKDMSDJLFWEHKZQKJPEYPZYSZCDWYJFFMZZYLTTDZZEFMZLBNPPLPLPEPSZALLTYLKCKQZKGENQLWAGYXYDPXLHSXQQWQCQXQCLHYXXMLYCCWLYMQYSKGCHLCJNSZKPYZKCQZQLJPDMDZHLASXLBYDWQLWDNBQCRYDDZTJYBKBWSZDXDTNPJDTCTQDFXQQMGNXECLTTBKPWSLCTYQLPWYZZKLPYGZCQQPLLKCCYLPQMZCZQCLJSLQZDJXLDDHPZQDLJJXZQDXYZQKZLJCYQDYJPPYPQYKJYRMPCBYMCXKLLZLLFQPYLLLMBSGLCYSSLRSYSQTMXYXZQZFDZUYSYZTFFMZZSMZQHZSSCCMLYXWTPZGXZJGZGSJSGKDDHTQGGZLLBJDZLCBCHYXYZHZFYWXYZYMSDBZZYJGTSMTFXQYXQSTDGSLNXDLRYZZLRYYLXQHTXSRTZNGZXBNQQZFMYKMZJBZYMKBPNLYZPBLMCNQYZZZSJZHJCTZKHYZZJRDYZHNPXGLFZTLKGJTCTSSYLLGZRZBBQZZKLPKLCZYSSUYXBJFPNJZZXCDWXZYJXZZDJJKGGRSRJKMSMZJLSJYWQSKYHQJSXPJZZZLSNSHRNYPZTWCHKLPSRZLZXYJQXQKYSJYCZTLQZYBBYBWZPQDWWYZCYTJCJXCKCWDKKZXSGKDZXWWYYJQYYTCYTDLLXWKCZKKLCCLZCQQDZLQLCSFQCHQHSFSMQZZLNBJJZBSJHTSZDYSJQJPDLZCDCWJKJZZLPYCGMZWDJJBSJQZSYZYHHXJPBJYDSSXDZNCGLQMBTSFSBPDZDLZNFGFJGFSMPXJQLMBLGQCYYXBQKDJJQYRFKZTJDHCZKLBSDZCFJTPLLJGXHYXZCSSZZXSTJYGKGCKGYOQXJPLZPBPGTGYJZGHZQZZLBJLSQFZGKQQJZGYCZBZQTLDXRJXBSXXPZXHYZYCLWDXJJHXMFDZPFZHQHQMQGKSLYHTYCGFRZGNQXCLPDLBZCSCZQLLJBLHBZCYPZZPPDYMZZSGYHCKCPZJGSLJLNSCDSLDLXBMSTLDDFJMKDJDHZLZXLSZQPQPGJLLYBDSZGQLBZLSLKYYHZTTNTJYQTZZPSZQZTLLJTYYLLQLLQYZQLBDZLSLYYZYMDFSZSNHLXZNCZQZPBWSKRFBSYZMTHBLGJPMCZZLSTLXSHTCSYZLZBLFEQHLXFLCJLYLJQCBZLZJHHSSTBRMHXZHJZCLXFNBGXGTQJCZTMSFZKJMSSNXLJKBHSJXNTNLZDNTLMSJXGZJYJCZXYJYJWRWWQNZTNFJSZPZSHZJFYRDJSFSZJZBJFZQZZHZLXFYSBZQLZSGYFTZDCSZXZJBQMSZKJRHYJZCKMJKHCHGTXKXQGLXPXFXTRTYLXJXHDTSJXHJZJXZWZLCQSBTXWXGXTXXHXFTSDKFJHZYJFJXRZSDLLLTQSQQZQWZXSYQTWGWBZCGZLLYZBCLMQQTZHZXZXLJFRMYZFLXYSQXXJKXRMQDZDMMYYBSQBHGZMWFWXGMXLZPYYTGZYCCDXYZXYWGSYJYZNBHPZJSQSYXSXRTFYZGRHZTXSZZTHCBFCLSYXZLZQMZLMPLMXZJXSFLBYZMYQHXJSXRXSQZZZSSLYFRCZJRCRXHHZXQYDYHXSJJHZCXZBTYNSYSXJBQLPXZQPYMLXZKYXLXCJLCYSXXZZLXDLLLJJYHZXGYJWKJRWYHCPSGNRZLFZWFZZNSXGXFLZSXZZZBFCSYJDBRJKRDHHGXJLJJTGXJXXSTJTJXLYXQFCSGSWMSBCTLQZZWLZZKXJMLTMJYHSDDBXGZHDLBMYJFRZFSGCLYJBPMLYSMSXLSZJQQHJZFXGFQFQBPXZGYYQXGZTCQWYLTLGWSGWHRLFSFGZJMGMGBGTJFSYZZGZYZAFLSSPMLPFLCWBJZCLJJMZLPJJLYMQDMYYYFBGYGYZMLYZDXQYXRQQQHSYYYQXYLJTYXFSFSLLGNQCYHYCWFHCCCFXPYLYPLLZYXXXXXKQHHXSHJZCFZSCZJXCPZWHHHHHAPYLQALPQAFYHXDYLUKMZQGGGDDESRNNZLTZGCHYPPYSQJJHCLLJTOLNJPZLJLHYMHEYDYDSQYCDDHGZUNDZCLZYZLLZNTNYZGSLHSLPJJBDGWXPCDUTJCKLKCLWKLLCASSTKZZDNQNTTLYYZSSYSSZZRYLJQKCQDHHCRXRZYDGRGCWCGZQFFFPPJFZYNAKRGYWYQPQXXFKJTSZZXSWZDDFBBXTBGTZKZNPZZPZXZPJSZBMQHKCYXYLDKLJNYPKYGHGDZJXXEAHPNZKZTZCMXCXMMJXNKSZQNMNLWBWWXJKYHCPSTMCSQTZJYXTPCTPDTNNPGLLLZSJLSPBLPLQHDTNJNLYYRSZFFJFQWDPHZDWMRZCCLODAXNSSNYZRESTYJWJYJDBCFXNMWTTBYLWSTSZGYBLJPXGLBOCLHPCBJLTMXZLJYLZXCLTPNCLCKXTPZJSWCYXSFYSZDKNTLBYJCYJLLSTGQCBXRYZXBXKLYLHZLQZLNZCXWJZLJZJNCJHXMNZZGJZZXTZJXYCYYCXXJYYXJJXSSSJSTSSTTPPGQTCSXWZDCSYFPTFBFHFBBLZJCLZZDBXGCXLQPXKFZFLSYLTUWBMQJHSZBMDDBCYSCCLDXYCDDQLYJJWMQLLCSGLJJSYFPYYCCYLTJANTJJPWYCMMGQYYSXDXQMZHSZXPFTWWZQSWQRFKJLZJQQYFBRXJHHFWJJZYQAZMYFRHCYYBYQWLPEXCCZSTYRLTTDMQLYKMBBGMYYJPRKZNPBSXYXBHYZDJDNGHPMFSGMWFZMFQMMBCMZZCJJLCNUXYQLMLRYGQZCYXZLWJGCJCGGMCJNFYZZJHYCPRRCMTZQZXHFQGTJXCCJEAQCRJYHPLQLSZDJRBCQHQDYRHYLYXJSYMHZYDWLDFRYHBPYDTSSCNWBXGLPZMLZZTQSSCPJMXXYCSJYTYCGHYCJWYRXXLFEMWJNMKLLSWTXHYYYNCMMCWJDQDJZGLLJWJRKHPZGGFLCCSCZMCBLTBHBQJXQDSPDJZZGKGLFQYWBZYZJLTSTDHQHCTCBCHFLQMPWDSHYYTQWCNZZJTLBYMBPDYYYXSQKXWYYFLXXNCWCXYPMAELYKKJMZZZBRXYYQJFLJPFHHHYTZZXSGQQMHSPGDZQWBWPJHZJDYSCQWZKTXXSQLZYYMYSDZGRXCKKUJLWPYSYSCSYZLRMLQSYLJXBCXTLWDQZPCYCYKPPPNSXFYZJJRCEMHSZMSXLXGLRWGCSTLRSXBZGBZGZTCPLUJLSLYLYMTXMTZPALZXPXJTJWTCYYZLBLXBZLQMYLXPGHDSLSSDMXMBDZZSXWHAMLCZCPJMCNHJYSNSYGCHSKQMZZQDLLKABLWJXSFMOCDXJRRLYQZKJMYBYQLYHETFJZFRFKSRYXFJTWDSXXSYSQJYSLYXWJHSNLXYYXHBHAWHHJZXWMYLJCSSLKYDZTXBZSYFDXGXZJKHSXXYBSSXDPYNZWRPTQZCZENYGCXQFJYKJBZMLJCMQQXUOXSLYXXLYLLJDZBTYMHPFSTTQQWLHOKYBLZZALZXQLHZWRRQHLSTMYPYXJJXMQSJFNBXYXYJXXYQYLTHYLQYFMLKLJTMLLHSZWKZHLJMLHLJKLJSTLQXYLMBHHLNLZXQJHXCFXXLHYHJJGBYZZKBXSCQDJQDSUJZYYHZHHMGSXCSYMXFEBCQWWRBPYYJQTYZCYQYQQZYHMWFFHGZFRJFCDPXNTQYZPDYKHJLFRZXPPXZDBBGZQSTLGDGYLCQMLCHHMFYWLZYXKJLYPQHSYWMQQGQZMLZJNSQXJQSYJYCBEHSXFSZPXZWFLLBCYYJDYTDTHWZSFJMQQYJLMQXXLLDTTKHHYBFPWTYYSQQWNQWLGWDEBZWCMYGCULKJXTMXMYJSXHYBRWFYMWFRXYQMXYSZTZZTFYKMLDHQDXWYYNLCRYJBLPSXCXYWLSPRRJWXHQYPHTYDNXHHMMYWYTZCSQMTSSCCDALWZTCPQPYJLLQZYJSWXMZZMMYLMXCLMXCZMXMZSQTZPPQQBLPGXQZHFLJJHYTJSRXWZXSCCDLXTYJDCQJXSLQYCLZXLZZXMXQRJMHRHZJBHMFLJLMLCLQNLDXZLLLPYPSYJYSXCQQDCMQJZZXHNPNXZMEKMXHYKYQLXSXTXJYYHWDCWDZHQYYBGYBCYSCFGPSJNZDYZZJZXRZRQJJYMCANYRJTLDPPYZBSTJKXXZYPFDWFGZZRPYMTNGXZQBYXNBUFNQKRJQZMJEGRZGYCLKXZDSKKNSXKCLJSPJYYZLQQJYBZSSQLLLKJXTBKTYLCCDDBLSPPFYLGYDTZJYQGGKQTTFZXBDKTYYHYBBFYTYYBCLPDYTGDHRYRNJSPTCSNYJQHKLLLZSLYDXXWBCJQSPXBPJZJCJDZFFXXBRMLAZHCSNDLBJDSZBLPRZTSWSBXBCLLXXLZDJZSJPYLYXXYFTFFFBHJJXGBYXJPMMMPSSJZJMTLYZJXSWXTYLEDQPJMYGQZJGDJLQJWJQLLSJGJGYGMSCLJJXDTYGJQJQJCJZCJGDZZSXQGSJGGCXHQXSNQLZZBXHSGZXCXYLJXYXYYDFQQJHJFXDHCTXJYRXYSQTJXYEFYYSSYYJXNCYZXFXMSYSZXYYSCHSHXZZZGZZZGFJDLTYLNPZGYJYZYYQZPBXQBDZTZCZYXXYHHSQXSHDHGQHJHGYWSZTMZMLHYXGEBTYLZKQWYTJZRCLEKYSTDBCYKQQSAYXCJXWWGSBHJYZYDHCSJKQCXSWXFLTYNYZPZCCZJQTZWJQDZZZQZLJJXLSBHPYXXPSXSHHEZTXFPTLQYZZXHYTXNCFZYYHXGNXMYWXTZSJPTHHGYMXMXQZXTSBCZYJYXXTYYZYPCQLMMSZMJZZLLZXGXZAAJZYXJMZXWDXZSXZDZXLEYJJZQBHZWZZZQTZPSXZTDSXJJJZNYAZPHXYYSRNQDTHZHYYKYJHDZXZLSWCLYBZYECWCYCRYLCXNHZYDZYDYJDFRJJHTRSQTXYXJRJHOJYNXELXSFSFJZGHPZSXZSZDZCQZBYYKLSGSJHCZSHDGQGXYZGXCHXZJWYQWGYHKSSEQZZNDZFKWYSSTCLZSTSYMCDHJXXYWEYXCZAYDMPXMDSXYBSQMJMZJMTZQLPJYQZCGQHXJHHLXXHLHDLDJQCLDWBSXFZZYYSCHTYTYYBHECXHYKGJPXHHYZJFXHWHBDZFYZBCAPNPGNYDMSXHMMMMAMYNBYJTMPXYYMCTHJBZYFCGTYHWPHFTWZZEZSBZEGPFMTSKFTYCMHFLLHGPZJXZJGZJYXZSBBQSCZZLZCCSTPGXMJSFTCCZJZDJXCYBZLFCJSYZFGSZLYBCWZZBYZDZYPSWYJZXZBDSYUXLZZBZFYGCZXBZHZFTPBGZGEJBSTGKDMFHYZZJHZLLZZGJQZLSFDJSSCBZGPDLFZFZSZYZYZSYGCXSNXXCHCZXTZZLJFZGQSQYXZJQDCCZTQCDXZJYQJQCHXZTDLGSCXZSYQJQTZWLQDQZTQCHQQJZYEZZZPBWKDJFCJPZTYPQYQTTYNLMBDKTJZPQZQZZFPZSBNJLGYJDXJDZZKZGQKXDLPZJTCJDQBXDJQJSTCKNXBXZMSLYJCQMTJQWWCJQNJNLLLHJCWQTBZQYDZCZPZZDZYDDCYZZZCCJTTJFZDPRRTZTJDCQTQZDTJNPLZBCLLCTZSXKJZQZPZLBZRBTJDCXFCZDBCCJJLTQQPLDCGZDBBZJCQDCJWYNLLZYZCCDWLLXWZLXRXNTQQCZXKQLSGDFQTDDGLRLAJJTKUYMKQLLTZYTDYYCZGJWYXDXFRSKSTQTENQMRKQZHHQKDLDAZFKYPBGGPZREBZZYKZZSPEGJXGYKQZZZSLYSYYYZWFQZYLZZLZHWCHKYPQGNPGBLPLRRJYXCCSYYHSFZFYBZYYTGZXYLXCZWXXZJZBLFFLGSKHYJZEYJHLPLLLLCZGXDRZELRHGKLZZYHZLYQSZZJZQLJZFLNBHGWLCZCFJYSPYXZLZLXGCCPZBLLCYBBBBUBBCBPCRNNZCZYRBFSRLDCGQYYQXYGMQZWTZYTYJXYFWTEHZZJYWLCCNTZYJJZDEDPZDZTSYQJHDYMBJNYJZLXTSSTPHNDJXXBYXQTZQDDTJTDYYTGWSCSZQFLSHLGLBCZPHDLYZJYCKWTYTYLBNYTSDSYCCTYSZYYEBHEXHQDTWNYGYCLXTSZYSTQMYGZAZCCSZZDSLZCLZRQXYYELJSBYMXSXZTEMBBLLYYLLYTDQYSHYMRQWKFKBFXNXSBYCHXBWJYHTQBPBSBWDZYLKGZSKYHXQZJXHXJXGNLJKZLYYCDXLFYFGHLJGJYBXQLYBXQPQGZTZPLNCYPXDJYQYDYMRBESJYYHKXXSTMXRCZZYWXYQYBMCLLYZHQYZWQXDBXBZWZMSLPDMYSKFMZKLZCYQYCZLQXFZZYDQZPZYGYJYZMZXDZFYFYTTQTZHGSPCZMLCCYTZXJCYTJMKSLPZHYSNZLLYTPZCTZZCKTXDHXXTQCYFKSMQCCYYAZHTJPCYLZLYJBJXTPNYLJYYNRXSYLMMNXJSMYBCSYSYLZYLXJJQYLDZLPQBFZZBLFNDXQKCZFYWHGQMRDSXYCYTXNQQJZYYPFZXDYZFPRXEJDGYQBXRCNFYYQPGHYJDYZXGRHTKYLNWDZNTSMPKLBTHBPYSZBZTJZSZZJTYYXZPHSSZZBZCZPTQFZMYFLYPYBBJQXZMXXDJMTSYSKKBJZXHJCKLPSMKYJZCXTMLJYXRZZQSLXXQPYZXMKYXXXJCLJPRMYYGADYSKQLSNDHYZKQXZYZTCGHZTLMLWZYBWSYCTBHJHJFCWZTXWYTKZLXQSHLYJZJXTMPLPYCGLTBZZTLZJCYJGDTCLKLPLLQPJMZPAPXYZLKKTKDZCZZBNZDYDYQZJYJGMCTXLTGXSZLMLHBGLKFWNWZHDXUHLFMKYSLGXDTWWFRJEJZTZHYDXYKSHWFZCQSHKTMQQHTZHYMJDJSKHXZJZBZZXYMPAGQMSTPXLSKLZYNWRTSQLSZBPSPSGZWYHTLKSSSWHZZLYYTNXJGMJSZSUFWNLSOZTXGXLSAMMLBWLDSZYLAKQCQCTMYCFJBSLXCLZZCLXXKSBZQCLHJPSQPLSXXCKSLNHPSFQQYTXYJZLQLDXZQJZDYYDJNZPTUZDSKJFSLJHYLZSQZLBTXYDGTQFDBYAZXDZHZJNHHQBYKNXJJQCZMLLJZKSPLDYCLBBLXKLELXJLBQYCXJXGCNLCQPLZLZYJTZLJGYZDZPLTQCSXFDMNYCXGBTJDCZNBGBQYQJWGKFHTNPYQZQGBKPBBYZMTJDYTBLSQMPSXTBNPDXKLEMYYCJYNZCTLDYKZZXDDXHQSHDGMZSJYCCTAYRZLPYLTLKXSLZCGGEXCLFXLKJRTLQJAQZNCMBYDKKCXGLCZJZXJHPTDJJMZQYKQSECQZDSHHADMLZFMMZBGNTJNNLGBYJBRBTMLBYJDZXLCJLPLDLPCQDHLXZLYCBLCXZZJADJLNZMMSSSMYBHBSQKBHRSXXJMXSDZNZPXLGBRHWGGFCXGMSKLLTSJYYCQLTSKYWYYHYWXBXQYWPYWYKQLSQPTNTKHQCWDQKTWPXXHCPTHTWUMSSYHBWCRWXHJMKMZNGWTMLKFGHKJYLSYYCXWHYECLQHKQHTTQKHFZLDXQWYZYYDESBPKYRZPJFYYZJCEQDZZDLATZBBFJLLCXDLMJSSXEGYGSJQXCWBXSSZPDYZCXDNYXPPZYDLYJCZPLTXLSXYZYRXCYYYDYLWWNZSAHJSYQYHGYWWAXTJZDAXYSRLTDPSSYYFNEJDXYZHLXLLLZQZSJNYQYQQXYJGHZGZCYJCHZLYCDSHWSHJZYJXCLLNXZJJYYXNFXMWFPYLCYLLABWDDHWDXJMCXZTZPMLQZHSFHZYNZTLLDYWLSLXHYMMYLMBWWKYXYADTXYLLDJPYBPWUXJMWMLLSAFDLLYFLBHHHBQQLTZJCQJLDJTFFKMMMBYTHYGDCQRDDWRQJXNBYSNWZDBYYTBJHPYBYTTJXAAHGQDQTMYSTQXKBTZPKJLZRBEQQSSMJJBDJOTGTBXPGBKTLHQXJJJCTHXQDWJLWRFWQGWSHCKRYSWGFTGYGBXSDWDWRFHWYTJJXXXJYZYSLPYYYPAYXHYDQKXSHXYXGSKQHYWFDDDPPLCJLQQEEWXKSYYKDYPLTJTHKJLTCYYHHJTTPLTZZCDLTHQKZXQYSTEEYWYYZYXXYYSTTJKLLPZMCYHQGXYHSRMBXPLLNQYDQHXSXXWGDQBSHYLLPJJJTHYJKYPPTHYYKTYEZYENMDSHLCRPQFDGFXZPSFTLJXXJBSWYYSKSFLXLPPLBBBLBSFXFYZBSJSSYLPBBFFFFSSCJDSTZSXZRYYSYFFSYZYZBJTBCTSBSDHRTJJBYTCXYJEYLXCBNEBJDSYXYKGSJZBXBYTFZWGENYHHTHZHHXFWGCSTBGXKLSXYWMTMBYXJSTZSCDYQRCYTWXZFHMYMCXLZNSDJTTTXRYCFYJSBSDYERXJLJXBBDEYNJGHXGCKGSCYMBLXJMSZNSKGXFBNBPTHFJAAFXYXFPXMYPQDTZCXZZPXRSYWZDLYBBKTYQPQJPZYPZJZNJPZJLZZFYSBTTSLMPTZRTDXQSJEHBZYLZDHLJSQMLHTXTJECXSLZZSPKTLZKQQYFSYGYWPCPQFHQHYTQXZKRSGTTSQCZLPTXCDYYZXSQZSLXLZMYCPCQBZYXHBSXLZDLTCDXTYLZJYYZPZYZLTXJSJXHLPMYTXCQRBLZSSFJZZTNJYTXMYJHLHPPLCYXQJQQKZZSCPZKSWALQSBLCCZJSXGWWWYGYKTJBBZTDKHXHKGTGPBKQYSLPXPJCKBMLLXDZSTBKLGGQKQLSBKKTFXRMDKBFTPZFRTBBRFERQGXYJPZSSTLBZTPSZQZSJDHLJQLZBPMSMMSXLQQNHKNBLRDDNXXDHDDJCYYGYLXGZLXSYGMQQGKHBPMXYXLYTQWLWGCPBMQXCYZYDRJBHTDJYHQSHTMJSBYPLWHLZFFNYPMHXXHPLTBQPFBJWQDBYGPNZTPFZJGSDDTQSHZEAWZZYLLTYYBWJKXXGHLFKXDJTMSZSQYNZGGSWQSPHTLSSKMCLZXYSZQZXNCJDQGZDLFNYKLJCJLLZLMZZNHYDSSHTHZZLZZBBHQZWWYCRZHLYQQJBEYFXXXWHSRXWQHWPSLMSSKZTTYGYQQWRSLALHMJTQJSMXQBJJZJXZYZKXBYQXBJXSHZTSFJLXMXZXFGHKZSZGGYLCLSARJYHSLLLMZXELGLXYDJYTLFBHBPNLYZFBBHPTGJKWETZHKJJXZXXGLLJLSTGSHJJYQLQZFKCGNNDJSSZFDBCTWWSEQFHQJBSAQTGYPQLBXBMMYWXGSLZHGLZGQYFLZBYFZJFRYSFMBYZHQGFWZSYFYJJPHZBYYZFFWODGRLMFTWLBZGYCQXCDJYGZYYYYTYTYDWEGAZYHXJLZYYHLRMGRXXZCLHNELJJTJTPWJYBJJBXJJTJTEEKHWSLJPLPSFYZPQQBDLQJJTYYQLYZKDKSQJYYQZLDQTGJQYZJSUCMRYQTHTEJMFCTYHYPKMHYZWJDQFHYYXWSHCTXRLJHQXHCCYYYJLTKTTYTMXGTCJTZAYYOCZLYLBSZYWJYTSJYHBYSHFJLYGJXXTMZYYLTXXYPZLXYJZYZYYPNHMYMDYYLBLHLSYYQQLLNJJYMSOYQBZGDLYXYLCQYXTSZEGXHZGLHWBLJHEYXTWQMAKBPQCGYSHHEGQCMWYYWLJYJHYYZLLJJYLHZYHMGSLJLJXCJJYCLYCJPCPZJZJMMYLCQLNQLJQJSXYJMLSZLJQLYCMMHCFMMFPQQMFYLQMCFFQMMMMHMZNFHHJGTTHHKHSLNCHHYQDXTMMQDCYZYXYQMYQYLTDCYYYZAZZCYMZYDLZFFFMMYCQZWZZMABTBYZTDMNZZGGDFTYPCGQYTTSSFFWFDTZQSSYSTWXJHXYTSXXYLBYQHWWKXHZXWZNNZZJZJJQJCCCHYYXBZXZCYZTLLCQXYNJYCYYCYNZZQYYYEWYCZDCJYCCHYJLBTZYYCQWMPWPYMLGKDLDLGKQQBGYCHJXY"; function GetChFirstLetter(str){ if(!str || str.length==0) return ""; var py = ""; for(var i=0;i=CH2EN.length){//不是汉字,返回字符本身 py += str.charAt(i); }else{ py += CH2EN.charAt(ind); } } return py; } /** *置输入框为不可编辑状态 *theForm : FORM 名字 string 如:'aform' *fields : FORM 中的输入框名字 string 如:'GMSFHM',有多个的写法:['XM','GMSFHM'] *flag : -1 表示,除了指定的fields之外 *author : herong */ function toDisabled(theForm,fields,flag){ if (typeof theForm == 'string') { var formStr = " var theForm = document."+theForm+" ;"; eval(formStr); } if(fields == null || fields == ''){ var tagObjs = theForm.elements; for(var i=0,j=0; i0){ setTimeout(function(){ jQuery(my_div).remove(); if(jQuery(framework_message_layer).is(':empty')){ jQuery(framework_message_layer).remove(); window.clearInterval(clearIntervalID); framework_message_layer=null; } },delay*1000); } } function recurrectLocation(){ if(framework_message_layer==null) {clearInterval(clearIntervalID);return;} var posX,posY; if (window.innerHeight) { posX = window.pageXOffset; posY = window.pageYOffset; } else if (document.documentElement && document.documentElement.scrollTop) { posX = document.documentElement.scrollLeft; posY = document.documentElement.scrollTop; } else if (document.body) { posX = document.body.scrollLeft; posY = document.body.scrollTop; } framework_message_layer.style.top=String(posY+10)+'px'; framework_message_layer.style.right=String(posX+10)+'px'; } /** * 作者:刘斯宇 * 日期:2005-08-24 * 功能:转换身份证号(无提示信息) * 参数意义:str 身份证号码 * 返回值:身份证号码 或 * 0 传入参数str为null * -1 公民身份证长度不是15或18位 * -1 15位公民身份证不是数字 * -3 18位公民身份证前17位不是数字 * -4 没有通过18位校验 * 使用方法: transformSfzh_na("123456789"); */ function transformSfzh_na(str){ var newstr="new"; if ((isNull(str)) || (str == "null") || (str == "")){ return 0; } if (str.length!=15 && str.length !=18){ //alert("公民身份证长度不正确应该为15或18位!"); return -1; } if (str.length==15){ if (isNaN(str)==true){ //alert("15位公民身份证应该为数字!"); return -2; } newstr = transact_na(str); } if (str.length==18){ if (isNaN(str.substr(0,17))==true){ //alert("18位公民身份证前17位应该为数字!"); return -3; } newstr = str; } if (IDCard_validate(newstr)==true){ return newstr; }else{ return -4; } } function OpenHelp(url){ var w=600; var h=400; var l = (screen.Width-w)/2; var t = (screen.Height-h)/2; window.open(url,"","top=" +t+ ", left=" + l+",width="+w+",height="+h+",toolbar=no,resizable=yes,status=no"); } /** * * 父下拉框 parentOBJ * 子录入框 childOBJ * 功能描述: 证件类型的处理 选择了证件类型为身份证号码后,录入的证件号码 */ function zjlx(parentOBJ,childOBJ){ FWzjlx(parentOBJ,childOBJ); } /**功能描述:多记录列表数据显示完毕后调用 *入参 : * ListID 多记录表的配置ID名称 * FunName 自定义的函数名 * 应用的方式: * jQuery(function(){ * onListLoad('fw_blank_bulletin','myfun'); * }); * function myfun(){} * **/ function onListLoad(ListID,FunName){ FWonListLoad(ListID,FunName); } /**功能描述:双击多记录列表数据后调用自定义函数 *入参 : * ListID 多记录表的配置ID名称 * FunName 自定义的函数名,必须有入参 rowIndex,rowData *应用的方式: *jQuery(function(){ *onDblClickListRow('fw_blank_bulletin','myfun'); *}); *function myfun(rowIndex,rowData){} * **/ function onDblClickListRow(ListID,FunName){ FWonDblClickListRow(ListID,FunName); } /**功能描述:单击多记录列表数据后调用自定义函数 *入参 : *ListID 多记录表的配置ID名称 *FunName 自定义的函数名,必须有入参 rowIndex,rowData *应用的方式: *jQuery(function(){ *onClickListRow('fw_blank_bulletin','myfun'); *}); *function myfun(rowIndex,rowData){} * **/ function onClickListRow(ListID,FunName){ FWonClickListRow(ListID,FunName); } /**功能描述:where条件修改后,重新刷新多记录表的数据 *入参 : *ListID 多记录表的配置ID名称 *Where 新的查询条件 *pageNum 为刷新列表后显示第几页的数据,-1表示当前页,默认为1 *应用的方式: *getListData('fw_blank_todolist'," OPERID='23' "); **/ function getListData(ListID,Where,pageNum){ FWgetListData(ListID,Where,pageNum); } //form内部控件的设置和获取 /**从html的form里面提取控件的值,用object表示,属性名是控件的名称,属性值是控件的值。 * 如果form里面有重名控件,那么属性值是个数组。另外,checkbox和可以多选的下拉列表的值 * 总是数组。 */ function GetForm(form){ return FWGetForm(form); } /**设置form内各个控件的值 * 与GetForm相对应,values是一个object,具体要求请参阅FWGetForm */ function SetForm(form,values){ return FWSetForm(form,values); } /** * * @param obj 下拉框对象 * @param val 值 * 功能说明:因为下拉框经过封装,在JS脚本内赋值给下拉框时, * 下拉框会没有反应,需要调用此函数来赋值 */ function setCombVal(combox,val){ FWsetCombVal(combox,val); } /** * * @param obj 多记录表单内配置的对象 * @param 第几行 * 功能说明:一个多记录表格中,每一行记录有一个控件例如 checkbox,radion,超链接等 * 使用方法 * 测试 * function myFun(obj){ * var rownum = getGridRowIndex(obj); * } */ function getGridRowIndex(obj){ var tr = $(obj).parent().parent(); var rownum = tr.attr('fwdatagrid-row-index'); rownum = parseInt(rownum,10); return rownum; } /** * * @param configID 配置表单的ID * @param query 查询的入参 例如 XB=1 * 功能说明:查询多记录表单中符合查询条件的记录所在的行号,从0开始算 * 若查询不到则返回-1 * 举例:var i = getGridRowIndexBS('bxgx_cbgx_rydj','JFRYLB=22'); * 多个查询条件 * var i = getGridRowIndexBS('bxgx_cbgx_rydj','XM=张小小&&XB=9'); */ function getGridRowIndexBS(configID,query){ var rows = $('#'+configID).fwdatagrid('getRows'); var array = query.split("&&"); var index = -1; if(rows==null){ FWalert("配置表单不存在!"); return index; } if(query==''||query==null){ FWalert("查询条件不能为空!"); return index; } for(var i=0;ioption', obj).each(function(){ var v = $(this).attr('value'); if(v == value){ s = $(this).html(); return false; } }); return s; } /** *将包含在form内的单记录表格的信息复制到多记录表格内 * @param theform 为form对象 * @param configID 多记录表单的配置ID * @return void * 使用方法 formToGird(aform,"zzy_t2"); */ function formToGird(theform,configID){ var rst = GetForm(theform); jQuery('select',theform).each(function(){ var txt=""; if(this.value!=''){ txt = getComText(this); } rst['_DIC_'+this.name]=txt; }); var target =$('#'+configID).get(0); var headers = $.data(target, 'fwdatagrid').options.data.headers; var datas={}; for(var i=0;i 100 || val < 0)){ obj.value=''; FWalert("比例必需在0至100范围内"); setTimeout(function(){obj.focus();},0); } /*自动四舍五入保留小数后两位*/ else{ var valNew = Math.round(val*100)/100; obj.value=valNew; } } /** * 日期格式转换 * @param str 日期字符串 * @param ft1 当前的日期格式 * @param ft2 转换后的日期格式 * @returns 转换后的日期 * 使用方法:var sDate = formateDateStr('20110131','yyyymmdd','yyyy-mm-dd'); */ function formateDateStr(str,ft1,ft2){ var sYear =""; var sMm =""; var sDd =""; var sDate=""; var ft_1 = ft1.toLowerCase(); var ft_2 = ft2.toLowerCase(); var iY=0,iM=0,iD=0; iY = ft_2.indexOf('yyyy'); iM = ft_2.indexOf('mm'); iD = ft_2.indexOf('dd'); if(iY==-1||iM==-1||iD==-1){ alert(ft2+' 格式不正确!'); return ''; } iY = ft_1.indexOf('yyyy'); iM = ft_1.indexOf('mm'); iD = ft_1.indexOf('dd'); if(iY==-1||iM==-1||iD==-1){ alert(ft1+' 格式不正确!'); return ''; } sYear = str.substr(iY,4); sMm = str.substr(iM,2); sDd = str.substr(iD,2); sDate=ft_2.replace(/yyyy/gi,sYear); sDate=sDate.replace(/mm/gi,sMm); sDate=sDate.replace(/dd/gi,sDd); return sDate; } /** * 日期比较函数 * 判断如果date1大于date2就给出msg提示 * @param date1 开始日期 * @param date2 终止日期日期 * @param msg 自定义的提示信息 * 日期的格式支持 yyyymmdd、yyyy-mm-dd、yyyy/mm/dd * 使用方法:compareDate('2011-01-01','2011-01-02','日期比较失败'); */ function compareDate(date1,date2,msg){ var sYear =''; var sMonth=''; var sDay =''; var sDate1=''; var sDate2=''; var arry; var s=''; var i=0,j=0,iDate1=0,iDate2=0; var b1 = isDate(date1); var b2 = isDate(date2); if(!b1){ alert(date1+' 日期不正确!'); return false; } if(!b2){ alert(date2+' 日期不正确!'); return false; } i = date1.indexOf('-'); if(i>0){ s="-"; } i = date1.indexOf('/'); if(i>0){ s="/"; } if(s==''){ sDate1 = date1; }else{ arry = date1.split(s); sYear =arry[0]; sMonth =arry[1]; sDay =arry[2]; sDate1 =sYear+sMonth+sDay; } s=""; i = date2.indexOf('-'); if(i>0){ s="-"; } i = date2.indexOf('/'); if(i>0){ s="/"; } if(s==''){ sDate2 = date2; }else{ arry = date2.split(s); sYear =arry[0]; sMonth =arry[1]; sDay =arry[2]; sDate2 =sYear+sMonth+sDay; } iDate1 = parseInt(sDate1,10); iDate2 = parseInt(sDate2,10); if(iDate1<=iDate2){ return true; }else{ alert(msg); return false; } return false; } /** * 日期比较函数 * 判断如果date1大于date2就给出msg提示,并光标自动定位到obj控件上 * @param date1 开始日期 * @param date2 终止日期日期 * @param msg 自定义的提示信息 * 日期的格式支持 yyyymmdd、yyyy-mm-dd、yyyy/mm/dd * 使用方法:compareDate2(aform.test,'2011-01-01','2011-01-02','日期比较失败'); */ function compareDate2(obj,date1,date2,msg){ var b = compareDate(date1,date2,msg); var inp = $(obj); if(!b){ setTimeout(function(){inp.focus();},0); } return b; } /** * 行选择函数 * 改变选中行的颜色或是单击某行记录的任何地方进行勾选 * 主要是配合 onClickListRow、onDblClickListRow 使用 * @param idstr 只读多记录表单的配置ID * @param rowindex 行序号(从0开始) * @param type 应用的类型字符串例如:row=s|input=checkbox * 其中 row 属性表示行的颜色需要改变 * 若 row=n 表示不需要改变行颜色 * 若 row=s 表示单选行只改变选中行的颜色 * 若 row=m 表示只要选中都改变颜色 * input 属性表示选择行后勾选框的勾选上 * 若 input=checkbox 表示多选框 * 若 input=radio 表示单选框 *使用方法: * 1.改变行颜色而且是单选行,若列表有勾选框不自动勾选 * var sMark='row=s' * gridRowSelected('zhcx_grjbzltest3',0,sMark); * 2.改变行颜色,若列表有勾选框自动勾选 * var sMark='row=s|input=checkbox' * gridRowSelected('zhcx_grjbzltest3',0,sMark); */ function gridRowSelected(idstr,rowindex,type){ var grid =$('#'+idstr); var tmp,chk,arry1,arry2,sRow='',sInput=''; var str = type.toLowerCase(); if(str==''||str==null){ str='row=s|input=checkbox'; } arry1 = str.split('|'); for(var i=0;i'}, * {'colname':'CSRQ','type':'DATE','exp':'>='}, * {'colname':'JBRQ','type':'DATETIME'}, * {'colname':'JE','type':'NUMBER'}, * {'colname':'ZJBH','type':'STRING','begin':'','end':'%','exp':'like'}, * {'colname':'YWLSH','type':''} * ]; * var con = spliceWhere('ybdy_spdjcx_sqxd_cxtj',row); * 具体的含义详见开发手册 */ function spliceWhere(idStr,ColRow){ var row = []; var b = false; var arrCol=[]; var strWhere='',j=0; var myobj = $('#'+idStr).get(0); if(typeof ColRow =='object' && typeof ColRow.sort == 'function' && typeof ColRow.length == 'number'){ row = ColRow; } //找出有特别设置的字段 for(var i=0;i var colname ='',colvalue=''; var begin='', end='', tmp='', type='STRING'; var date1='', date2='', iLen=0, iPos=0; if(row[i]['colname']==null){ continue; } colname = row[i]['colname']; //判断是否存在值 有时需要查询的字段不在界面上 开始日期、终止日期对应的字段XXX日期等 if(typeof $('[NAME="'+colname+'"]',myobj).get(0)=='object'){ //取相应字段的值 colvalue =$('[NAME="'+colname+'"]',myobj).get(0).value; if(colvalue==''||colvalue==null){ continue; } } if(row[i]['begin']!=null){begin=row[i]['begin'];} if(row[i]['end']!=null){end=row[i]['end'];} type=row[i]['type']; arrCol[j]=colname;//放入数组的目的是为了下面过滤掉,不要重复组合 j++; //处理需要过滤不组合到WHERE内的字段 if(type==null||type==''){ continue; } //是否配置了表达式 if(row[i]['exp']!=null){ exp = row[i]['exp']; exp = exp.toLowerCase(); iPos = exp.indexOf(','); //检查是否配置了 <,> 等表达式 if(iPos>0){ var arrExp = exp.split(','); exp='='; exp1 = arrExp[0]; exp2 = arrExp[1]; } } if(strWhere==''){ strWhere =' ' + colname; }else{ strWhere = strWhere + ' and ' + colname; } //拼接上表达式 strWhere += ' ' + exp +' '; if(exp!='like'){ //调用内部函数组合查询条件 strWhere = dt(myobj,strWhere,type,colname,colvalue,begin,end,exp1,exp2); if(begin!=''){ arrCol[j]=begin; j++;} if(end!=''){arrCol[j]=end;j++;} } if(exp=='like'){ if((begin==''&&end=='')||(begin=='%'&&end=='%')){ strWhere += "'%" + colvalue + "%'"; } if(begin=='%'&&end==''){ strWhere += "'%" + colvalue + "'"; } if(begin==''&&end=='%'){ strWhere += "'" + colvalue + "%'"; } } }//for end here //下面开始处理没有特别设置的字段 jQuery(':input',myobj).each(function(){ b=false; if(this.name==null|| this.name==''||this.name=='_multiple'){ return true; //循环下一个相当于FOR循环continue } //过滤掉已经特殊处理过的字段 for(var k=0; k=';} //若没有配则设置默认值 if(e2==''){e2='<=';} if(bg==''&&en==''){ if(ty=='NUMBER'){sW += clv;} if(ty=='STRING'){sW += "'" + clv + "'";} if(ty=='DATE'){sW += "to_date('" + clv + "','yyyy-mm-dd')"; } if(ty=='DATETIME'){sW += "to_date('" + clv + "','yyyy-mm-dd hh24:mi:ss')"; } if(ty=='DATETONUM6'){ clv = clv.replace(/-/gi, ""); if(clv.length>6){ clv = clv.substr(0,6); } sW += clv; } if(ty=='DATETONUM8'){ clv = clv.replace(/-/gi, ""); sW += clv; } if(ty=='DATETONUM14'){ clv = clv.replace(/-/gi, ""); clv = clv.replace(/:/gi, ""); clv = clv.replace(/ /gi, ""); var iL = clv.length; while(iL<14){ clv+='0'; iL = clv.length; } sW += clv; } return sW; } //说明是有开始字段跟终止字段 if(bg!=''&&en!=''){ if(typeof $('[NAME="'+bg+'"]',obj).get(0)!='object'){ alert('字段='+bg+' 不存在!'); return ''; } if(typeof $('[NAME="'+en+'"]',obj).get(0)!='object'){ alert('字段='+en+' 不存在!'); return ''; } d1=$('[NAME="'+bg+'"]',obj).get(0).value; d2=$('[NAME="'+en+'"]',obj).get(0).value; iL = sW.length-2; sW = sW.substr(0,iL); //去掉=号 //开始字段录入值 if(d1!=''){ if(ty=='NUMBER'){sW += " "+e1+d1;} if(ty=='STRING'){sW += " "+e1+"'"+d1+"'";} if(ty=='DATE'){ sW += " "+e1+" to_date('" + d1 + "','yyyy-mm-dd')";}; if(ty=='DATETIME'){sW += " "+e1+" to_date('" + d1 + "','yyyy-mm-dd hh24:mi:ss')";}; if(ty=='DATETONUM6'){ d1 = d1.replace(/-/gi, ""); if(d1.length>6){ d1 = d1.substr(0,6); } sW += " "+e1 + " " + d1; } if(ty=='DATETONUM8'){ d1 = d1.replace(/-/gi, ""); sW += " "+e1 + " " + d1; } if(ty=='DATETONUM14'){ d1 = d1.replace(/-/gi, ""); d1 = d1.replace(/:/gi, ""); d1 = d1.replace(/ /gi, ""); var iL = d1.length; while(iL<14){ d1+='0'; iL = d1.length; } sW += " "+e1 + " " + d1; } if(d2!=''){ sW += " and " + cln; } } //终止字段录入值 if(d2!=''){ if(ty=='NUMBER'){ sW += " "+e2+" " + d2;}; if(ty=='STRING'){ sW += " "+e2+" '" + d2 + "'";}; if(ty=='DATE'){ sW += " "+e2+" to_date('" + d2 + "','yyyy-mm-dd')";}; if(ty=='DATETIME'){sW += " "+e2+" to_date('" + d2 + "','yyyy-mm-dd hh24:mi:ss')";}; if(ty=='DATETONUM6'){ d2 = d2.replace(/-/gi, ""); if(d2.length>6){ d2 = d2.substr(0,6); } sW += " "+e2 + " " + d2; } if(ty=='DATETONUM8'){ d2 = d2.replace(/-/gi, ""); sW += " "+e2 + " " + d2; } if(ty=='DATETONUM14'){ d2 = d2.replace(/-/gi, ""); d2 = d2.replace(/:/gi, ""); d2 = d2.replace(/ /gi, ""); var iL = d2.length; if(iL==8){ d2+='235959';//23:59:59 }else{ while(iL<14){ d2+='0'; iL = d2.length; } } sW += " "+e2 + " " + d2; } } //若开始字段和终止字段都没有录入值 if(d1==''&&d2==''){ tp = 'and ' + cln; iP = sW.indexOf(tp); sW = sW.substr(0,iP); //去掉and 和列名 } } return sW; }//dt } /** *判断是否为正数,负数 *event :事件对象 *author :youyizhong *date :20110824 */ function zfpd(obj, flag){ var val = obj.value; var vldStr = obj.vldStr; var arr = vldStr.split("="); var name = arr[0]; /*不能为负数*/ if(flag == 1){ if(val < 0){ obj.value = ''; FWalert(name+"不能为负数"); setTimeout(function(){obj.focus();},0); } } /*不能为正数*/ if(flag == -1){ if(val > 0){ obj.value = ''; FWalert(name+"不能为正数"); setTimeout(function(){obj.focus();},0); } } } /** * 通用报表打印函数 * @param cfgId 报表配置ID,应用fw_report_conf 内的ID * @param form 对象 * @param ndp (true/false)是否显示直接调用默认的打印机打印的按钮 * @param nsp (true/false)暂时没有用 * @param target 指定报表显示方式 可以是 blank、_self、iframe.name * @param needSaveAsExcel 是否需要显示导出EXCEL按钮 * @param excelPageStyle 导出EXCEL是否需要分页 * 主要的功能是根据配置ID,查询fw_report_conf表的REPORTPARM字段的值 * 即报表的全部入参。根据入参的名称查询form中相同名称的录入值,自动匹配 * 后传给报表作为查询数据的条件,最后生成报表的预览。 * 使用方法: * reportGenerate('bxgx_rydj_grjbzl_rpt',aform,false,true,'blank',true,false); * 具体的使用说明详见手册 */ function reportGenerate(cfgId,form,ndp,nsp,target,needSaveAsExcel,excelPageStyle){ var _needSaveAsExcel = needSaveAsExcel||false; var _excelPageStyle = excelPageStyle||false; if(cfgId==''||cfgId==null){ FWalert("入参报表的配置ID不能为空!"); return; } //执行AJAX获取该ID对应的配置 new Service().appendQuery([{ configId:'FW_CONFIG.FW_REPORT_CONF_Q', parameters:{ID:cfgId}, transform:'firstRow' }]).sentAjax(function(data){//处理成功的函数 _rpt_1(cfgId,data,form,ndp,nsp,target,_needSaveAsExcel,_excelPageStyle); return true; },function(XMLHttpRequest, textStatus, errorThrown){//处理失败的函数 var tipMsg = XMLHttpRequest.responseText; FWalert("错误信息:" + tipMsg); if(window['fwReportGentBack']){ //调用回调函数 fwReportGentBack(); } }); //内置函数 function _rpt_1(cfgId,data,dataForm,ndp,nsp,target,needSaveAsExcel,excelPageStyle){ var frms = document.getElementsByTagName("form"); var iLen = frms.length; var params = data[0]["REPORTPARM"]; var commService = data[0]["COMMSERVICE"]; var commProc = data[0]["COMMPROC"]; var arrParams; var tmp=""; var fw_id=""; var fwparams=""; var fwmap = {}; //找出已经存在相同的form删掉 for(var i=0;i"; var where = ''; //WHERE条件 try{ where =dataForm['FWWHERE'].value; }catch(e){} tmp+=" "; var btnBack ='YES'; //显示返回按钮 try{ btnBack =dataForm['FWBTNBACK'].value; }catch(e){} tmp+=" "; var btnClose ='YES'; //显示关闭按钮 try{ btnClose =dataForm['FWBTNCLOSE'].value; }catch(e){} tmp+=" "; arrParams = params.split("|"); iLen = arrParams.length; if(iLen==0){ FWalert("报表入参不能为空!"); return false; } for(var i=0;i "; if(fwparams==''){ fwparams = n+'='+s; }else{ fwparams+='***'+n+'='+s; } fwmap[n] = s; } fwmap["FWPARAMS"] = fwparams; fwmap["REPORTID"] = cfgId; fwmap["COMMPROC"] = commProc; fwmap["FWSFCXSC"] = sfc; fwmap["FWWHERE"] = where; if(commService==''||commService==null){ _rpt_2(cfgId,fw_id,fwparams,tmp,ndp,nsp,target,needSaveAsExcel,excelPageStyle); }else{ var arrP = commService.split("."); //执行AJAX获取该ID对应的配置 new Service({ serviceId:arrP[0],method:arrP[1], parameters:fwmap }).sentAjax(function(data){//处理成功的函数 var t = data[0]["PO_FHZ"]; if(t!=null){ if(t!='1'){ var msg = data[0]["PO_MSG"]; FWalert("错误信息:" + msg); if(window['fwReportGentBack']){ //调用回调函数 fwReportGentBack(t); } return true; } } fw_id = data[0]["FW_ID"]; _rpt_2(cfgId,fw_id,fwparams,tmp,ndp,nsp,target,needSaveAsExcel,excelPageStyle); return true; },function(XMLHttpRequest, textStatus, errorThrown){//处理失败的函数 var tipMsg = XMLHttpRequest.responseText; FWalert("错误信息:" + tipMsg); if(window['fwReportGentBack']){ //调用回调函数 fwReportGentBack(); } }); } } function _rpt_2(cfgId,fw_id,fwparams,tmp,ndp,nsp,tg,needSaveAsExcel,excelPageStyle){ //动态创建报表form var frag = document.createDocumentFragment(); var form = document.createElement("form"); form.name="fwrptForm"; form.action="${ctx}/report.do"; if(tg==''||tg==null){ tg = "blank"; } form.target=tg; var str =" "; str+=" "; str+=" "; str+=" "; str+=" "; str+=" "; str+=" "; str+=tmp; form.innerHTML=str; frag.appendChild(form); document.body.appendChild(frag); form.submit(); if(window['fwReportGentBack']){ //调用回调函数 fwReportGentBack(); } return true; } } /** * 设置按钮按钮的可显示或不可显示 * @param btn 单按钮的NAME或是存放多个按钮名称的数组 * @param status 固定值:true 或是 false * @returns 没有返回值 * 使用方法1: * 设置按钮name="btnQuery" 和 name="btnCls" 不可显示 * var arrBtn = new Array('btn','btn2'); * btnDisplay (arrBtn,false); * * 使用方法2: * 设置按钮name="btnQuery" 可显示 * btnDisplay ('btnQuery',true); */ function btnDisplay(btn,status){ if(status){status = '';} else{status = 'none';} //判断是否为数组 if(typeof btn == 'object' && typeof btn.sort == 'function' && typeof btn.length == 'number'){ for(var i=0;i 1 ){ rst[name] = []; $item.each(function(){ rst[name].push($(this).val()); }); } } } //字典中文的处理 if(true == dictZh){ //combox字典项的处理 $(".combobox,.incombox,.dbcombox,.ldcombox",gltObj).each(function(){ var $this = $(this); //如果rst[this.name]不是null的话,就查找字典项 if(rst[this.name]!=null){ var textName = "_DIC_"+ this.name; var textValue = $this.fwcombox("text"); //新的字段 if(rst[textName] == null){ rst[textName] = textValue; } //多个同名字段 else{ //这是第一个同名字段,则将此数组元素改成数组 if(!$.isArray(rst[textName])){ rst[textName] = [rst[textName]]; } rst[textName].push(textValue); } } }); //searchgridbox字典项的处理 $(".searchgridbox", gltObj).each(function(){ var $this = $(this); if(rst[this.name]!=null){ var textName = "_DIC_"+ this.name; var textValue = $this.searchgrid("text"); //新的字段 if(rst[textName] == undefined || rst[textName] == null){ rst[textName] = textValue; } //多个同名字段 else{ //这是第一个同名字段,则将此数组元素改成数组 if(!$.isArray(rst[textName])){ rst[textName] = [rst[textName]]; } rst[textName].push(textValue); } } }); } //_multiple的处理 if(rst["_multiple"]!=null && rst["_multiple"]!=""){ if(!$.isArray(rst["_multiple"])){ rst["_multiple"] = [rst["_multiple"]]; } var multipleNames = rst["_multiple"].join(",").split(","); for(var i in multipleNames){ var mName = $.trim(multipleNames[i]); if(mName != "" && null != rst[mName]){ if(!$.isArray(rst[mName])){ rst[mName] = [rst[mName]]; } var dname = "_DIC_"+mName; if(null != rst[dname] && undefined != rst[dname] && !$.isArray(rst[dname])){ rst[dname] = [rst[dname]]; } } } } //移除对后台没有用处的_multiple delete rst["_multiple"]; return rst; } /** * 获取多记录表指定列的JSON数据 * @param gltId 多记录表配置ID字符串。 如:'cbgx_grzlgl_l'。 * @param names 输入列名数组, 如:["GRBH","XB","XM"] * @return 指定列数据JSON对象,如:[{"ROWNUM_":"1","GRBH":"aaabbbccc","XB":"1","_DIC_XB":"女","XM":"姓名1114"}, * {"ROWNUM_":"2","GRBH":"1231","XB":"2","_DIC_XB":"男","XM":"asdf123123123"}] * 使用方法: * var cols = ["XM","XB","CSRQ"]; * getGltData('cbgx_grzlgl_l',cols); */ function getGltData(gltId, cols){ var rst = []; //获取多记录表元素 var glt = document.getElementById(gltId); if(!glt){ return rst; } var GridData = $.data(glt, 'fwdatagrid'); var gridType ='fwdatagrid'; if(GridData==null){ GridData = $.data(glt, 'fweditgrid'); } //获取多记录表元素绑定的JSON数据 var rows= $.extend(true,[],GridData.options.data.rows); if(!rows){ return rst; } //按行数设置返回的数组 for(var c=0,len=rows.length;c100){ return; } var uploadAppletId = id || 'UploadFileApplet'; document.getElementById(uploadAppletId).setProgressBar(num); } /** * 把JSON对象的里面值转换成字符串,供applet上传使用 * @param obj JSON对象 * @returns */ function setJSONAllStr(obj){ for(var key in obj){ if((typeof obj[key])!='string'){ obj[key] = obj[key].toString(); } } return obj; } /** * 功能:从初始化文件(.ini)中读取字符串型设置值 * @param filename 字符串,必填,指定初始化文件的名称,包含路径 * @param section 字符串,必填,指定要得到的值所在的节 * @param key 字符串,必填,指定要得到的值的名称,不用区分大小写 * @param defaultValue 字符串,必填,当指定的文件、节名、项目名不存在时,函数返回该参数指定的值返回值 * @param id 字符串,非必填,applet的id,缺省为'UploadFileApplet' * @returns 函数执行成功时,在指定的文件、节名、项目名不存在任何错误的情况下,函数返回相应项的值; * 如果指定的文件、节名、项目名不存在,函数返回default参数指定的缺省值; * 如果发生错误,函数返回空字符串; * 如果任何参数的值为NULL,ProfileString()函数返回NULL。 */ function ProfileString ( filename, section, key, defaultValue,id) { //如果任何参数的值为NULL,ProfileString()函数返回NULL if(null == filename || null == section || null == key || null == defaultValue){ return null; } var applet = null; if(null == id){ applet = _getReadWriteApplet(); }else{ applet = document.getElementById(id); } if(null == applet){ alert("找不到applet,无法读写文件"); return ""; } //文件不存在返回默认值 if(false == applet.isFileExists(filename)){ return defaultValue; } var lines = applet.readFile(filename); //读文件出错返回空字符串 if(null == lines){ return ""; } var myCRLF = "_SINOBESTCRLF_"; lines = lines.split(myCRLF); var DIVIDER = "_SINOBESTPARSEFILEDIVIDER_"; var data = _parseFile(lines); //JSON的KEY都是大写格式,转换成大写查询数据 if(null == data[section+DIVIDER+key.toUpperCase()]){ //如果指定的文件、节名、项目名不存在,函数返回default参数指定的缺省值 return defaultValue; }else{ //函数执行成功时,在指定的文件、节名、项目名不存在任何错误的情况下,函数返回相应项的值 return data[section+DIVIDER+key.toUpperCase()]; } //将ini文件转换成JSON对象 function _parseFile(lines){ var posSectionBeg = 0; var posSectionEnd = 0; var posEqual = 0; var section = ""; var key = ""; var value = ""; var rtn = {}; for(var i=0,len=lines.length;i"); }else{ $li.after("
  • "); } } } /** * 功能 * @param filePath 字符串,必填项,删除文件的路径 * @param id 字符串,非必填项,有删除功能applet id,不填则程序会查找页面可用的applet * @returns 返回1,表示删除成功,返回-1表示删除失败,返回0,表示指定文件不存在 */ function appletDeleteFile(filePath,id){ var applet = null; if(null == id){ applet = _getDeleteFileApplet(); }else{ applet = document.getElementById(id); } if(null == applet){ alert("找不到applet,无法删除文件"); return ""; } return applet.deleteFile(filePath); function _getDeleteFileApplet(){ var applet = null; var appletIds = ["DownloadFileApplet"]; for(var i=0,len=appletIds.length;i=arg1.length)?0:i; j=arg2.length-arg2.indexOf(".")-1; j=(j>=arg2.length)?0:j; v=arg1.replace(".","")*arg2.replace(".","")/Math.pow(10,i+j); return v; } /** * js 加法函数 * @param arg1 * @param arg2 * @returns */ function add(arg1,arg2){ var r1,r2,m,v,r,t; try{r1=arg1.toString().split(".")[1].length;}catch(e){r1=0;} try{r2=arg2.toString().split(".")[1].length;}catch(e){r2=0;} m = Math.pow(10,Math.max(r1,r2)); v = (arg1*m+arg2*m)/m; if(v==0){return v;} r = Math.max(r1,r2); if(r!=0){ v = v+0.000000001; //需要进行特殊处理 例如 135.67 + 1.2=136.869999999999998 } t = v.toString(); if(r!=0){ var iPos = t.indexOf("."); var re = t.substr(0,iPos + r + 1); t = re; } return t; } /** * 生成批量打印按钮。每个页面只能有一个"批量打印"按钮。 */ function genBatchPrintBtn(){ if(0 < document.getElementsByName('batchPrintForm').length){ alert("生成批量打印按钮出错:一个页面只能有一个批量打印按钮"); return; } var appRoot = _getUrl(); var ctx = contextPath; var codebase = appRoot + "/j2re-1_4_1-windows-i586-i.exe#Version=1,4,1,0"; var archive = ctx + "/runqianReport4Applet.jar"; function _getUrl(){ var url = window.location.toString(); var count = 0; var pos = 0; for(var i=0;i'+ ''+ '

    '+ ''+ ''+ ''+ ''+ ''+ ''+ ''+ ''+ ''+ ''+ ''+ ''+ ' '+ ''+ ''+ '

    '+ ''+ '