public.js
上传用户:mingda
上传日期:2017-06-20
资源大小:27691k
文件大小:24k
源码类别:

OA系统

开发平台:

Java

  1. document.write( '<form id="oForm"><input Class="userData" style="DISPLAY: none; HEIGHT: 22px; WIDTH: 26px" ID="oInput"></form><IE:clientCaps id="ExculpateRate"></IE:clientCaps>')
  2. var userData=oForm.oInput
  3. function loadLabelData(strType,screenWidth,screenHeight){
  4. //strType="打印设计"/"打印预览"
  5. //装入数据
  6. //返回:无
  7. //设置最大的Label的宽高
  8. result.style.width =screenWidth-5
  9. result.style.height =screenHeight-25
  10. //从缓存中取出页面设置信息
  11. var setformat=LoadUserData("billprint",BillName)
  12. if (setformat!=""){
  13. var oXML1=new ActiveXObject("Microsoft.XMLDOM")
  14. oXML1.async="false"
  15. oXML1.loadXML("<root>"+setformat+"</root>")
  16. topwindage=parseFloat(oXML1.documentElement.childNodes.item(0).text)
  17. leftwindage=parseFloat(oXML1.documentElement.childNodes.item(1).text)
  18. printformat=oXML1.documentElement.childNodes.item(2).text
  19. //缓存中纸张的宽高单位为mm
  20. repWidth=parseFloat(oXML1.documentElement.childNodes.item(3).text)
  21. repHeight=parseFloat(oXML1.documentElement.childNodes.item(4).text)
  22. printCopys=parseInt(oXML1.documentElement.childNodes.item(5).text)
  23. offsetAdjust=parseFloat(oXML1.documentElement.childNodes.item(6).text)
  24. }
  25. else {
  26. //缺省值
  27. topwindage=0
  28. leftwindage=0
  29. printformat="套打"
  30. repWidth=210
  31. repHeight=297
  32. printCopys=3
  33. offsetAdjust=0
  34. }
  35. //缺省的页面信息已预给
  36. var pxRatemm=3.78 //*(297-offsetAdjust)/297
  37. //------------
  38. if (printCopys==0)printCopys=1
  39. //装入数据,计算页数和节点数
  40. var oXML=new ActiveXObject("Microsoft.XMLDOM")
  41. oXML.async ="false"
  42. oXML.loadXML(SendParameter)
  43. if(strType=="打印设计") {
  44. number=1 //打印设计是只能有一页
  45. }
  46. else {
  47. //页数,它是第一级子节点的个数除以每页打印的份数
  48. number=Math.ceil(oXML.documentElement.childNodes.length/printCopys)
  49. }
  50. var oneNodeNumber=oXML.documentElement.childNodes.length  //第一级子节点的个数
  51. lastnodenumber=oXML.documentElement .childNodes.item (0).childNodes .length//第二级子节点的个数
  52. //-------------
  53. var newDiv
  54. var newDivtop=50 //缺省的第一个DIV top
  55. //装入缓存中格式的值
  56. var strAll=LoadUserData("node",BillName) 
  57. //strAll=""
  58. if(isSpace(strAll)==false){
  59. var oX=new ActiveXObject("Microsoft.XMLDOM")
  60. oX.async="false";
  61. oX.loadXML("<root>" +strAll+"</root>")
  62. }
  63. //--------
  64. //sadfsd
  65. //清空,以便刷新时正确
  66. result.innerHTML=""
  67. //打印页数循环
  68. for (var i=0;i<number;i++){
  69. newDiv=document.createElement("div") 
  70. newDiv.style.borderTopStyle="solid"
  71. newDiv.style.borderTopColor="DarkGreen"
  72. newDiv.style.borderTopWidth=2
  73. newDiv.style.borderLeftStyle="solid"
  74. newDiv.style.borderLeftColor="DarkGreen"
  75. newDiv.style.borderLeftWidth=2
  76. newDiv.style.borderRightStyle="solid"
  77. newDiv.style.borderRightColor="DarkGreen"
  78. newDiv.style.borderRightWidth=2
  79. newDiv.style.borderBottomStyle="solid"
  80. newDiv.style.borderBottomColor="DarkGreen"
  81. newDiv.style.borderBottomWidth=2
  82. newDiv.style.position="absolute"
  83. newDiv.style.width=repWidth*pxRatemm
  84. if(strType=="打印设计") {
  85. newDiv.style.height=repHeight*pxRatemm/printCopys
  86. }
  87. else {
  88. newDiv.style.height=repHeight*pxRatemm
  89. }
  90. newDiv.style.backgroundColor="White"
  91. //newDiv.style.pageBreakAfter="always"
  92. if ((screenWidth-repWidth*pxRatemm)*0.5-5>0){
  93. newDiv.style.left=(screenWidth-repWidth*pxRatemm)*0.5-5
  94. }
  95. if ((screenWidth-repWidth*pxRatemm)*0.5-5<=0){
  96. newDiv.style.left=0
  97. }
  98. newDiv.style.top=newDivtop
  99. if(strType=="打印设计") {
  100. newDivtop=newDivtop+repHeight*pxRatemm/printCopys+20
  101. }
  102. else {
  103. newDivtop=newDivtop+repHeight*pxRatemm+20
  104. }
  105. result.insertAdjacentElement("beforeEnd",newDiv)
  106. var spanTop=20 //缺省的第一个方块top
  107. //每页打印信封份数循环
  108. if(strType=="打印设计") printCopys=1
  109. //每页打印份数循环
  110. for(var copys=0;copys<printCopys;copys++){
  111. //如果数据已用完
  112. if(i*printCopys+copys>=oneNodeNumber) break
  113. if (tableHtml!="") {
  114. //计算背景
  115. newDiv.innerHTML=newDiv.innerHTML+tableHtml
  116. var oBillStyle=document.all.item("billstyle")
  117. var curBillStyle  //当前背景对象
  118. if (oBillStyle.length>0){
  119. curBillStyle=oBillStyle[oBillStyle.length-1]
  120. }
  121. else {
  122. curBillStyle=oBillStyle
  123. }
  124. curBillStyle.style.top=copys*repHeight*pxRatemm/printCopys
  125. }
  126. //------------------
  127. //每页里面的标签循环
  128. for (var j=0;j<lastnodenumber;j++){
  129. if(strType=="打印设计") {
  130. newSpan=document.createElement("IE:piece") 
  131. newSpan.id="fcsoft_node"
  132. newSpan.style.position="absolute"
  133. newSpan.innerText=oXML.documentElement.childNodes.item (0).childNodes.item(j).tagName
  134. }
  135. else { //strType=="打印预览"
  136. newSpan=document.createElement("span") 
  137. newSpan.style.position="absolute"
  138. newSpan.id="fcsoft_node"
  139. newSpan.innerText=oXML.documentElement .childNodes.item (i*printCopys+copys).childNodes.item(j).text
  140. }
  141. newDiv.insertAdjacentElement("beforeEnd",newSpan)
  142. if(isSpace(strAll)==false){
  143. //装入已存好的信息
  144. newSpan.style.left=oX.documentElement.childNodes(j).childNodes.item(0).text
  145. newSpan.style.top=parseInt(oX.documentElement.childNodes(j).childNodes.item (1).text)+repHeight*pxRatemm*copys/printCopys
  146. if (oX.documentElement.childNodes(j).childNodes.item (2).text!=""){
  147. newSpan .style.width=parseInt(oX.documentElement.childNodes(j).childNodes.item (2).text)
  148. }
  149. else{
  150. newSpan .style.width=""
  151. }
  152. newSpan .style.letterSpacing=oX.documentElement.childNodes(j).childNodes.item (3).text
  153. newSpan .style.fontSize=oX.documentElement.childNodes(j).childNodes.item (4).text
  154. newSpan .style.fontFamily=oX.documentElement.childNodes(j).childNodes.item (5).text
  155. newSpan .style.fontWeight=oX.documentElement.childNodes(j).childNodes.item (6).text
  156. newSpan .style.textDecoration=oX.documentElement.childNodes(j).childNodes.item (7).text
  157. newSpan .style.fontStyle=oX.documentElement.childNodes(j).childNodes.item (8).text
  158. newSpan .style.color=oX.documentElement.childNodes(j).childNodes.item (9).text
  159. newSpan .style.textAlign=oX.documentElement.childNodes(j).childNodes.item (10).text
  160. }
  161. else {
  162. //缺省的方块信息
  163. spanTop=spanTop+20
  164. newSpan.style.top=spanTop
  165. newSpan .style.left=100
  166. newSpan.style.letterSpacing=1
  167. newSpan .style.fontSize=15
  168. newSpan .style.fontFamily="serif"
  169. newSpan .style.fontWeight="normal"
  170. newSpan .style.textDecoration="none"
  171. newSpan .style.fontStyle="normal"
  172. newSpan .style.color="black"
  173. newSpan .style.textAlign="left"
  174. }
  175. }//每页里面的标签循环结束
  176. } //每页打印信封份数循环结束
  177. }//每页循环结束
  178. }
  179. function PrintDesign() {
  180.   //调用打印设计功能
  181. var BillDesign=new Array()
  182. BillDesign[0]=tableHtml
  183. BillDesign[1]=BillName
  184. BillDesign[2]=SendParameter
  185. BillDesign[5]=strPageSet
  186. BillDesign[6]=strPageAll
  187. /*
  188. //3,4空缺
  189. BillDesign[5]=repWidth
  190. BillDesign[6]=repHeight
  191. BillDesign[7]=printCopys
  192. BillDesign[8]=topOffset
  193. BillDesign[9]=leftOffset
  194. BillDesign[10]=printformat
  195. BillDesign[11]=offsetAdjust
  196. */
  197. var dialogStyle="dialogHeight:"+ExculpateRate.height+"px;dialogWidth:"+ExculpateRate.width+"px;dialogTop:0px;dialogLeft:0px;status:no;scroll:no"
  198. var printReturn=window.showModalDialog("billprint\printdesign.htm",BillDesign,dialogStyle)
  199. }
  200. function PrintPreview() {
  201. //进入打印预览
  202. var BillDesign=new Array()
  203. BillDesign[0]=tableHtml
  204. BillDesign[1]=BillName
  205. BillDesign[2]=SendParameter
  206. BillDesign[3]=ExculpateRate.width
  207. BillDesign[4]=ExculpateRate.height
  208. BillDesign[5]=strPageSet
  209. BillDesign[6]=strPageAll
  210. var dialogStyle="dialogHeight:"+ExculpateRate.height+"px;dialogWidth:"+ExculpateRate.width+"px;dialogTop:0px;dialogLeft:0px;status:no;scroll:no"
  211. var printReturn=window.showModalDialog("billprint\printpreview.htm",BillDesign,dialogStyle)
  212. }
  213. function PrintPreview1() {
  214. //从打印设计界面进入打印预览
  215. var BillDesign=new Array()
  216. BillDesign[0]=tableHtml
  217. BillDesign[1]=BillName
  218. BillDesign[2]=SendParameter
  219. BillDesign[3]=ExculpateRate.width
  220. BillDesign[4]=ExculpateRate.height
  221. BillDesign[5]=""
  222. BillDesign[6]=""
  223. var dialogStyle="dialogHeight:"+ExculpateRate.height+"px;dialogWidth:"+ExculpateRate.width+"px;dialogTop:0px;dialogLeft:0px;status:no;scroll:no"
  224. var printReturn=window.showModalDialog("printpreview.htm",BillDesign,dialogStyle)
  225. }
  226. //////////////////////////////////////////////////////////////////////上面程序是billprint.htm页面中的 
  227. function ContDec(sValue,sPointNum) {
  228. var dblValue=parseFloat(sValue)
  229. if (isNaN(dblValue)) return sValue
  230. var iPointNum=parseInt(sPointNum)
  231. if (isNaN(iPointNum)) iPointNum=0
  232. if (iPointNum>9) iPointNum=9
  233. var dbl1=Math.round(dblValue*Math.pow(10,iPointNum))/Math.pow(10,iPointNum)
  234. var s1=dbl1.toString()
  235. if (s1.indexOf(".") == -1) {
  236. var s2="000000000000000"
  237. s1=s1+"."+s2.substring(0,iPointNum)
  238. }
  239. if (right(s1,1)==".")
  240. s1=s1.substring(s1.length-1,s1.length)
  241. return s1
  242. }
  243. function SaveUserData(Main,Sub,strContent){
  244. //存到数据缓存中
  245. //Main为主key 如"List"
  246. //Sub 为子key 如"CustomerFlag"
  247. //strContent 为要存入的内容
  248. //无返回
  249. try {
  250. userData.setAttribute(Main+userData.value,strContent)
  251. userData.save(Sub+userData.value)
  252. }
  253. catch (e){}
  254. }
  255. function LoadUserData(Main,Sub){
  256. //从数据缓存中装入到变量中
  257. //Main为主key 如"List"
  258. //Sub 为子key 如"CustomerFlag"
  259. //返回取出的内容
  260. userData.load(Sub+userData.value)  
  261. var sTmp=userData.getAttribute(Main+userData.value)
  262. if (sTmp==null) sTmp=""
  263. return sTmp
  264. }
  265. /*
  266. function ShowErr(sErr)
  267. {
  268. //显示错误信息
  269. var sErr1=left(sErr,sErr.indexOf("</root>")+7)
  270. var oXml=new ActiveXObject("Microsoft.XMLDOM")
  271. oXml.async ="false"
  272. oXml.loadXML(sErr1)
  273. //alert(sErr)
  274. alert(oXml.documentElement.text  )  
  275. }  
  276. function showMenu() {
  277.    //this function will position and display a nested div that acts like a menu
  278.      
  279.    whichDiv=event.srcElement;
  280.    s=whichDiv.innerHTML
  281. var oClick=window.event.srcElement
  282. if (oClick.tagName=="DIV") oClick=oClick.parentNode
  283. if (oClick.tagName=="TD") oClick=oClick.parentNode
  284. if (oClick.tagName=="TR") curRow= oClick.sectionRowIndex-1
  285.    
  286. //   alert(curRow)
  287.    arr[1]=curRowXml(curRow,strX) // event.srcElement.parentNode.parentNode.childNodes(0).childNodes(0).innerText
  288.     
  289.    menu1.style.posLeft=event.clientX+document.body.scrollLeft;
  290.    menu1.style.posTop=event.clientY+document.body.scrollTop;
  291.    menu1.style.display="";
  292.    menu1.setCapture();
  293. }
  294. function toggleMenu() {   
  295.    el=event.srcElement;
  296.    if (el.className=="menuItem") {
  297.       el.className="highlightItem";
  298.         
  299.    } else if (el.className=="highlightItem") {
  300.       el.className="menuItem";
  301.    }
  302. }
  303. function contextTwice() {
  304.    if (event.srcElement==whichDiv)
  305.      showMenu();
  306. }
  307.  
  308. function curRowXml(curRow,strX){
  309. //返回strX中curRow的节点串
  310. //curRow当前行,strX源串
  311.   oXML.async="false";
  312.   oXML.loadXML('<root>' +strX+'</root>')
  313. var o=oXML.XMLDocument.childNodes.item(0).childNodes.item(curRow)
  314. if (o.getAttribute("flngCustomerID")!="0" && o.getAttribute("flag")=="" && o.tagName=="Customer")
  315. {
  316. if (navigator.onLine)
  317. {
  318. var s1=SendHttp("public.asp?key=getcustomerbyid","<No>"+o.getAttribute("flngCustomerID")+"</No>")
  319. return s1
  320. }
  321. else
  322. {
  323. alert("脱机模式下不能修改(但可以删除)在数据库中的客户或供应商!请联上网后再使用.")
  324. return oXML.XMLDocument.childNodes.item(0).childNodes.item(curRow).xml
  325. }
  326. }
  327. if (o.getAttribute("flngSupplyID")!="0" && o.getAttribute("flag")=="" && o.tagName=="Supply")
  328. {
  329. if (navigator.onLine)
  330. {
  331. var s1=SendHttp("public.asp?key=getsupplybyid","<No>"+o.getAttribute("flngSupplyID")+"</No>")
  332. return s1
  333. }
  334. else
  335. {
  336. alert("脱机模式下不能修改(但可以删除)在数据库中的客户或供应商!请联上网后再使用.")
  337. return oXML.XMLDocument.childNodes.item(0).childNodes.item(curRow).xml
  338. }
  339. }
  340. var s1=oXML.XMLDocument.childNodes.item(0).childNodes.item(curRow).xml
  341. return s1  
  342. }
  343. function RemoveRoot(strX){
  344.   //去掉根结点标记
  345.   if (strX.length>15)
  346. {
  347. strX=strX.substring(6,strX.length-9)
  348. return strX
  349. }
  350. else
  351. {
  352. return ""
  353. }
  354. }
  355. //函数名:chksafe
  356. //功能介绍:检查是否含有"'",'\',"/"
  357. //参数说明:要检查的字符串
  358. //返回值:0:是  1:不是
  359. function chksafe(a)
  360. {
  361. return 1;
  362. fibdn = new Array ("'" ,"\", "、", ",", ";", "/");
  363. i=fibdn.length;
  364. j=a.length;
  365. for (ii=0;ii<i;ii++)
  366. { for (jj=0;jj<j;jj++)
  367. { temp1=a.charAt(jj);
  368. temp2=fibdn[ii];
  369. if (tem';p1==temp2)
  370. { return 0; }
  371. }
  372. }
  373. return 1;
  374. }
  375. //函数名:chkspc
  376. //功能介绍:检查是否含有空格
  377. //参数说明:要检查的字符串
  378. //返回值:0:是  1:不是
  379. function chkspc(a)
  380. {
  381. var i=a.length;
  382. var j = 0;
  383. var k = 0;
  384. while (k<i)
  385. {
  386. if (a.charAt(k) != " ")
  387. j = j+1;
  388. k = k+1;
  389. }
  390. if (j==0)
  391. {
  392. return 0;
  393. }
  394. if (i!=j)
  395. { return 2; }
  396. else
  397. {
  398. return 1;
  399. }
  400. }
  401. //函数名:chkemail
  402. //功能介绍:检查是否为Email Address
  403. //参数说明:要检查的字符串
  404. //返回值:0:不是  1:是
  405. function chkemail(a)
  406. { var i=a.length;
  407. var temp = a.indexOf('@');
  408. var tempd = a.indexOf('.');
  409. if (temp > 1) {
  410. if ((i-temp) > 3){
  411. if ((i-tempd)>0){
  412. return 1;
  413. }
  414. }
  415. }
  416. return 0;
  417. }
  418. //opt1 小数     opt2   负数
  419. //当opt2为1时检查num是否是负数
  420. //当opt1为1时检查num是否是小数
  421. //返回1是正确的,0是错误的
  422. function chknbr(num,opt1,opt2)
  423. {
  424. var i=num.length;
  425. var staus;
  426. //staus用于记录.的个数
  427. status=0;
  428. if ((opt2!=1) && (num.charAt(0)=='-'))
  429. {
  430. //alert("You have enter a invalid number.");
  431. return 0;
  432. }
  433. //当最后一位为.时出错
  434. if (num.charAt(i-1)=='.')
  435. {
  436. //alert("You have enter a invalid number.");
  437. return 0;
  438. }
  439. for (j=0;j<i;j++)
  440. {
  441. if (num.charAt(j)=='.')
  442. {
  443. status++;
  444. }
  445. if (status>1) 
  446. {
  447. //alert("You have enter a invalid number.");
  448. return 0;
  449. }
  450. if (num.charAt(j)<'0' || num.charAt(j)>'9' )
  451. {
  452. if (((opt1==0) || (num.charAt(j)!='.')) && (j!=0)) 
  453. {
  454. //alert("You have enter a invalid number.");
  455. return 0;
  456. }
  457. }
  458. }
  459. return 1;
  460. }
  461. //函数名:chkdate
  462. //功能介绍:检查是否为日期
  463. //参数说明:要检查的字符串
  464. //返回值:0:不是日期  1:是日期
  465. function chkdate(datestr)
  466. {
  467. var lthdatestr
  468. if (datestr != "")
  469. lthdatestr= datestr.length ;
  470. else
  471. lthdatestr=0;
  472. var tmpy="";
  473. var tmpm="";
  474. var tmpd="";
  475. //var datestr;
  476. var status;
  477. status=0;
  478. if ( lthdatestr== 0)
  479. return 0
  480. for (i=0;i<lthdatestr;i++)
  481. { if (datestr.charAt(i)== '-')
  482. {
  483. status++;
  484. }
  485. if (status>2)
  486. {
  487. //alert("Invalid format of date!");
  488. return 0;
  489. }
  490. if ((status==0) && (datestr.charAt(i)!='-'))
  491. {
  492. tmpy=tmpy+datestr.charAt(i)
  493. }
  494. if ((status==1) && (datestr.charAt(i)!='-'))
  495. {
  496. tmpm=tmpm+datestr.charAt(i)
  497. }
  498. if ((status==2) && (datestr.charAt(i)!='-'))
  499. {
  500. tmpd=tmpd+datestr.charAt(i)
  501. }
  502. }
  503. year=new String (tmpy);
  504. month=new String (tmpm);
  505. day=new String (tmpd)
  506. //tempdate= new String (year+month+day);
  507. //alert(tempdate);
  508. if ((tmpy.length!=4) || (tmpm.length>2) || (tmpd.length>2))
  509. {
  510. //alert("Invalid format of date!");
  511. return 0;
  512. }
  513. if (!((1<=month) && (12>=month) && (31>=day) && (1<=day)) )
  514. {
  515. //alert ("Invalid month or day!");
  516. return 0;
  517. }
  518. if (!((year % 4)==0) && (month==2) && (day==29))
  519. {
  520. //alert ("This is not a leap year!");
  521. return 0;
  522. }
  523. if ((month<=7) && ((month % 2)==0) && (day>=31))
  524. {
  525. //alert ("This month is a small month!");
  526. return 0;
  527. }
  528. if ((month>=8) && ((month % 2)==1) && (day>=31))
  529. {
  530. //alert ("This month is a small month!");
  531. return 0;
  532. }
  533. if ((month==2) && (day==30))
  534. {
  535. //alert("The Febryary never has this day!");
  536. return 0;
  537. }
  538. return 1;
  539. }
  540. //函数名:fucPWDchk
  541. //功能介绍:检查是否含有非数字或字母
  542. //参数说明:要检查的字符串
  543. //返回值:0:含有 1:全部为数字或字母
  544. function fucPWDchk(str)
  545. {
  546.   var strSource ="0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
  547.   var ch;
  548.   var i;
  549.   var temp;
  550.   
  551.   for (i=0;i<=(str.length-1);i++)
  552.   {
  553.   
  554.     ch = str.charAt(i);
  555.     temp = strSource.indexOf(ch);
  556.     if (temp==-1) 
  557.     {
  558.      return 0;
  559.     }
  560.   }
  561.   if (strSource.indexOf(ch)==-1)
  562.   {
  563.     return 0;
  564.   }
  565.   else
  566.   {
  567.     return 1;
  568.   } 
  569. }
  570. function jtrim(str)
  571. {     while (str.charAt(0)==" ")
  572.           {str=str.substr(1);}      
  573.      while (str.charAt(str.length-1)==" ")
  574.          {str=str.substr(0,str.length-1);}
  575.      return(str);
  576. }
  577. //函数名:fucCheckNUM
  578. //功能介绍:检查是否为数字
  579. //参数说明:要检查的数字
  580. //返回值:1为是数字,0为不是数字
  581. function fucCheckNUM(NUM)
  582. {
  583. var i,j,strTemp;
  584. strTemp="0123456789";
  585. if ( NUM.length== 0)
  586. return 0
  587. for (i=0;i<NUM.length;i++)
  588. {
  589. j=strTemp.indexOf(NUM.charAt(i));
  590. if (j==-1)
  591. {
  592. //说明有字符不是数字
  593. return 0;
  594. }
  595. }
  596. //说明是数字
  597. return 1;
  598. }
  599. //函数名:fucCheckTEL
  600. //功能介绍:检查是否为电话号码
  601. //参数说明:要检查的字符串
  602. //返回值:1为是合法,0为不合法
  603. function fucCheckTEL(TEL)
  604. {
  605. var i,j,strTemp;
  606. strTemp="0123456789-()# ";
  607. for (i=0;i<TEL.length;i++)
  608. {
  609. j=strTemp.indexOf(TEL.charAt(i));
  610. if (j==-1)
  611. {
  612. //说明有字符不合法
  613. return 0;
  614. }
  615. }
  616. //说明合法
  617. return 1;
  618. }
  619. //函数名:fucCheckLength
  620. //功能介绍:检查字符串的长度
  621. //参数说明:要检查的字符串
  622. //返回值:长度值
  623. function fucCheckLength(strTemp)
  624. {
  625. var i,sum;
  626. sum=0;
  627. for(i=0;i<strTemp.length;i++)
  628. {
  629. if ((strTemp.charCodeAt(i)>=0) && (strTemp.charCodeAt(i)<=255))
  630. sum=sum+1;
  631. else
  632. sum=sum+2;
  633. }
  634. return sum;
  635. }
  636. //梅琪于10.09日从report.js中转移来的
  637. //将基本资料装入combox中   参数:表名   字段
  638. function loadDataToCbo(strTable,strField) {
  639. var strReturn=SendHttp("getJbclField.asp","<No1>" + strTable + "</No1><No2>" + strField + "</No2>")
  640. var oXML1=new ActiveXObject("Microsoft.XMLDOM")
  641. oXML1.async="false";
  642. oXML1.loadXML('<root>' + strReturn + '</root>')
  643. cbo1.options.length=0
  644. cboBlank=document.createElement("option")
  645. cboBlank.value=" " //加上此段下拉项多出
  646. cboBlank.text=" "
  647. cbo1.add(cboBlank)
  648. var initCboValue=cbo1.value
  649. for (i=0 ;i<=oXML1.documentElement.childNodes.length-1;i++) {
  650. strFieldValue=oXML1.documentElement.childNodes.item(i).getAttribute(strField)
  651. cboTarget=document.createElement ("option")
  652. cboTarget.value=strFieldValue //??如何得到cbo1的条件与结果值
  653. cboTarget.text=strFieldValue
  654. if (i==0) {
  655. cboTarget.selected=1
  656. }
  657. if (cboTarget.value!=initCboValue){
  658. cbo1.add(cboTarget)
  659. }
  660. }
  661. cbo1.value=""
  662. }
  663. */
  664. //梅琪于10.12从report.js转移来
  665. function isSpace(strMain){
  666. strComp=strMain
  667. if (strComp==" " || strComp=="" || strComp==" " || strComp==null || strComp.length==0 ) { 
  668. return true
  669. }
  670. else
  671. {
  672. return false
  673. }
  674. }
  675. //------------------------------------------------
  676. //字符串实用函数
  677. function getFront(mainStr,searchStr){
  678. foundOffset=mainStr.indexOf(searchStr)
  679. if (foundOffset==-1) {
  680. return null
  681. }
  682. return mainStr.substring(0,foundOffset)
  683. }
  684. function getEnd(mainStr,searchStr) {
  685. foundOffset=mainStr.indexOf(searchStr)
  686. if (foundOffset==-1) {
  687. return null
  688. }
  689. return mainStr.substring(foundOffset+searchStr.length,mainStr.length)
  690. }
  691. function insertString(mainStr,searchStr,insertStr) {
  692. var front=getFront(mainStr,searchStr)
  693. var end=getEnd(mainStr,searchStr)
  694. if (front!=null && end!=null) {
  695. return front+insertStr+searchStr+end
  696. }
  697. return null
  698. }
  699. function deleteString(mainStr,deleteStr) {
  700. return replaceString(mainStr,deleteStr,"")
  701. }
  702. function replaceString(mainStr,searchStr,replaceStr) {
  703. //代替字符串
  704. //mainStr为源串  searchStr为要查找的串  replaceStr为要改为的串
  705. //返回替换后的串
  706. var front=getFront(mainStr,searchStr)
  707. var end=getEnd(mainStr,searchStr)
  708. if (front!=null && end!=null) {
  709. return front+replaceStr+end
  710. }
  711. return null
  712. }
  713. function left(mainStr,lngLen) {
  714. if (lngLen>0) {
  715. return mainStr.substring(0,lngLen)
  716. }
  717. else
  718. {
  719. return null
  720. }
  721. }
  722. function right(mainStr,lngLen) {
  723. // alert(mainStr.length)
  724. if (mainStr.length-lngLen>=0 && mainStr.length>=0 && mainStr.length-lngLen<=mainStr.length) {
  725. return mainStr.substring(mainStr.length-lngLen,mainStr.length)
  726. }
  727. else
  728. {
  729. return null
  730. }
  731. }
  732. //滤掉左右空格
  733. function trim(strMain) {
  734. if (strMain==null) return ""
  735.   var str1=strMain
  736. //去掉回车符
  737.   var ascMain=strMain.charCodeAt(strMain.length-1)
  738. if (ascMain==32) str1=left(strMain,strMain.length-1)
  739. if (str1==null) return ""
  740.   for (var i=0;i<=str1.length-1;i++) {
  741.        var mychar=str1.charAt(i);
  742.        if ((mychar!=" ") && (mychar!=" ")) {
  743.            str1=str1.substring(i,str1.length);
  744.            break;
  745.            } 
  746.       }
  747.   for (var i=str1.length-1;i>0;i--) {
  748.       var mychar=str1.charAt(i);
  749.       if ((mychar!=" ")  && (mychar!=" ")) {
  750.          str1=str1.substring(0,i+1);
  751.          break;
  752.       }
  753.   }
  754.   return str1;
  755. }
  756. //在日期数据将加上20或19
  757. function DateTo8(strDate){
  758. var sDate=trim(strDate)
  759. if (sDate.length<=8)
  760. {
  761. var sTmp=parseInt(left(sDate,2))
  762. if (sTmp<38) 
  763. return "20" +sDate
  764. else
  765. return "19" +sDate
  766. }
  767. return strDate
  768. }
  769. //求当前日期
  770. function curDate() {
  771. var dDate=new Date()
  772. var s1=""+dDate.getYear()
  773. var s2=dDate.getMonth()+1
  774. if (s2<10) 
  775. s2="0"+s2
  776. else
  777. s2=""+s2
  778. var s3=dDate.getDate()
  779. if (s3<10) 
  780. s3="0"+s3
  781. else
  782. s3=""+s3
  783. return s1+"-"+s2+"-"+s3 
  784. }
  785. /*
  786. function Format(num,dotLen) {
  787. //将num按小数位为dotLen来进行格式化  如无小数位参数则为2位小数
  788. //
  789. var dot=0
  790. var num1=0
  791. if (typeof dotLen=="undefined" || dotLen==null ) 
  792. dot=2
  793. else
  794. dot=dotLen
  795. if (isNaN(parseFloat(num)))
  796. return 0
  797. else
  798. num1=parseFloat(num)
  799. var n1=Math.pow(10,dot)
  800. if (n1==0) 
  801. var iValue= Math.round(num1)
  802. else
  803. var iValue= Math.round(num1*n1)/n1
  804.   var sValue = iValue.toString();
  805.   if (sValue.indexOf(".") == -1)
  806.   {
  807.       sValue = sValue + ".00";
  808.   }
  809.   else
  810.   {
  811.       if (sValue.indexOf(".") == sValue.length - 1)
  812.       {
  813.           sValue = sValue + "00";
  814.       }
  815.       else if (sValue.indexOf(".") == sValue.length - 2)
  816.       {
  817.           sValue = sValue + "0";
  818.       }
  819.   }
  820. return sValue
  821. }
  822. //------------------------------------------------
  823. function PartXml(sXml,StartPos,len)
  824. {
  825. //取指定长度的Xml串
  826. //StartPos开始位置从0始, len为取的长度
  827. var oXml=new ActiveXObject("Microsoft.XMLDOM")
  828. oXml.async="false";
  829. oXml.loadXML(sXml)
  830. var sReturn=""
  831. for (var i=StartPos;i<StartPos+len;i++)
  832. {
  833. if (i<oXml.documentElement.childNodes.length)
  834. sReturn=sReturn+oXml.documentElement.childNodes.item(i).xml
  835. }
  836. return sReturn
  837. }
  838. //------------------------------------------------
  839. //错误处理
  840. function xslErr(error) {
  841. var s=""
  842. for (var i=1;i<error.linepos;i++) {
  843. s+=""
  844. }
  845. r="<font face=Verdana size=2><font size=4>XML 装入错误 "+error.url+"</font>"+"<P><B>"+error.reason+"</B></P></font>"
  846. if (error.line>0)
  847. s+="<font size=3><XMP>"+"在"+error.line+"行,"+error.linepos+"个字符n"+error.srcText+"n"+s+"^"+"</XMP></font>"
  848. return r
  849. }
  850. function xslRunErr(exception) {
  851.  return "<font face=Verdana size=2><font size=4>XSL实时错误</font>"+
  852.  "<P><B>"+exception.description+"</B></P></font>"
  853. }
  854. function TransResult() {
  855. var sT=""
  856. if (oXML.parseError.errorCode!=0)
  857. sT=xslErr(oXML.parseError)
  858. else
  859. {
  860. if (oXSL.parseError.errorCode!=0)
  861. sT=xslErr(oXSL.parseError)
  862. else
  863. {
  864. try
  865. {
  866. sT=oXML.XMLDocument.transformNode(oXSL.XMLDocument); 
  867. }
  868. catch (exception)
  869. {
  870. sT=xslRunErr(exception)
  871. }
  872. }
  873. }
  874. result.innerHTML = sT
  875. }
  876. function ActEncode(s1) {
  877. //处理汉字的乱码问题
  878. if (typeof s1=="undefined") return ""
  879. if (s1==null) return ""
  880. var s2=s1
  881. if (s1.indexOf('%%')!=-1)
  882. var s2=left(s1,s1.indexOf('%%'))
  883. if (s1.indexOf('   ')!=-1)
  884. var s2=left(s1,s1.indexOf('  '))
  885. return s2
  886. }
  887. function EnterRight(strRight) {
  888. //strRight功能权限名
  889. var strOperator= parent.fstrOperatorDesc
  890. if (strOperator=='系统主管')  return 0
  891. var str1=SendHttp("public.asp?key=GetRight1",'<No>'+ strOperator+'</No><No1>'+strRight+'</No1>')
  892. if (str1=="")
  893. {
  894. alert("你没有此操作权限!")
  895. history.back()
  896. }
  897. }
  898. //显示报表列
  899. function showRepCol(t,col){
  900. var iRows=t.rows.length-1
  901. var i
  902. for (i=0;i<=iRows;i++){
  903. t.rows(i).cells(col).style.display="block"
  904. }
  905. }
  906. //隐藏报表列
  907. function hideRepCol(t,col){
  908. var iRows=t.rows.length-1
  909. var i
  910. for (i=0;i<=iRows;i++){
  911. t.rows(i).cells(col).style.display="none"
  912. }
  913. }
  914. function showWait() {
  915. //显示等待
  916. document.write ('<div id=wait align=center style="BACKGROUND-COLOR: yellow; POSITION: absolute;LEFT: 30px; TOP: 120px; height: 50px; width: 400px">')
  917. document.write ('<BR>正在加载,请稍候......</div>')
  918. }
  919. */