Board logo

标题: [技术讨论] HTA版消费记录程序 [打印本页]

作者: youxi01    时间: 2007-10-27 17:04     标题: HTA版消费记录程序

程序说明:脚本代码用vbs编写
使用说明:复制以下代码保存为[filename].hta,运行即可。
  1. <!--////////程序说明/////////====
  2. 程序名称:消费记录Ver1.1(20070808-20070811).hta
  3. 使用说明:将代码复制粘贴到一文本文档中,然后保存,并将该文件后缀名改为:hta,双击即可运行。
  4. 作者说明:youxi01,,,版权没有,欢迎盗版!!///////////-->
  5. <!--///////设置题头,编码方式//////-->
  6. <TITLE>消费记录程序</TITLE>
  7. <meta http-equiv="Content-Type" content="text/html; charset=gb2312"/>
  8. <!--///////hta标志//////-->
  9. <HTA:APPLICATION
  10. SCROLL="no"
  11. CAPTION="yes"
  12. SYSMENU="yes"/>
  13. <!--///////控制程序部分//////-->
  14. <script language="vbscript">
  15. totalMoney=0            '总消费额
  16. index=-1                 '初始化checkbox控件ID序号;
  17. flag=0                  '定义文件是否改动的标志
  18. set fso=createobject("scripting.filesystemobject")
  19. '///////////////////文件载入时,读取配置文件,定义自身大小、位置////////
  20. Sub Window_onLoad
  21. if not (fso.fileexists("consume.ini")) then        '不存在配置文件则创建;
  22.    fso.createtextfile("consume.ini").close
  23. end if
  24. window.resizeTo 638,495                            '设置自身大小、位置;
  25. window.moveTo 200,100                              
  26. addRow 0,"hoho","2007-1-1","星期二"                '先添加一个行。自己都搞不明白,反正用来处理bug;
  27. document.all.namedItem("mytable").rows(1).style.display="none"    '设置这行不可见;
  28. addRow 0,"hoho","2007-1-1","星期二"                '再添加一个行。自己都搞不明白,反正用来处理bug;
  29. document.all.namedItem("mytable").rows(2).style.display="none"    '设置这行不可见;
  30. readFile("consume.ini")
  31. End Sub
  32. '//////////////////读取文件//////////////////
  33. Function readFile(filename)
  34. set file=fso.opentextfile(filename,1,1)
  35. do while file.atendofline<>true           '读文件一直到文件尾部
  36.    str=split(file.readline,"#")           '按#标志分割没行(总共有四个这种标志)
  37.    addRow str(1),str(2),str(3),str(4)     '添加五个单元格,内容分别为....
  38. loop
  39. End Function
  40. '////////////////添加表行,单元格///////////
  41. Function addRow(cnum,ctype,cdate,cday)
  42. index=index+1                                       '序号自加1
  43. set objTable=document.all.namedItem("mytable")      '根据ID获取对象表格
  44. set newrow = objTable.insertRow()                   '插入一行
  45. newrow.className="row_add"                        '设置该行的样式;
  46. newrow.onmouseover=getRef("change_bgcolor")
  47. newrow.onmouseout=getRef("back_bgcolor")
  48. newrow.onclick=getRef("chooseOBJ")
  49. var="#"&cnum&"#"&ctype&"#"&cdate&"#"&cday           
  50. str=split(var,"#")
  51. str(0)="<input type=checkbox id='delcheck'&index>"   
  52. for i=0 to 4
  53.    set newcell=newrow.insertCell()                  '插入单元格,并设置单元格的值;
  54.    newcell.innerhtml=str(i)
  55. next
  56. totalMoney=totalMoney+clng(cnum)                    '设置总消费额的值,并定义显示;   
  57. consume.innerHTML="消费总额:"&totalMoney&"元"
  58. End Function
  59. '///////////////改变对象背景//////////////
  60. Function change_bgcolor()
  61.   me.className="new_row_add"
  62. End Function
  63. '/////////////返回原来背景色//////////////
  64. Function back_bgcolor()
  65.   me.className="row_add"
  66. End Function
  67. '////////////选定该行/////////
  68. Function chooseOBJ()
  69. if me.cells(0).children(0).checked=true then
  70.    me.cells(0).children(0).checked=false
  71. else
  72.    me.cells(0).children(0).checked=true
  73. end if
  74. End Function
  75. '/////////////////"删除"一个单元格///////////////
  76. Function delRow()                        
  77. for i=0 to index
  78.     if delcheck(i).checked=true then      
  79.       set tag=delcheck(i).parentelement.parentelement    '设置该checkbox所在的行;
  80.       tag.style.display="none"                           '其实,所谓的删除就是把它设置为不显示;
  81.       totalMoney=totalMoney-clng(tag.cells(1).innertext)
  82.       consume.innerHTML="消费总额:"&totalMoney&"元"
  83.       tag.cells(1).innertext="0"                         '消费额设置为0;
  84.    end if           
  85. next
  86. flag=1                                    '如果执行了删除操作,则标志文件已经改动;
  87. End Function
  88. '////////////////////检查输入数据是否正确////////////
  89. Function check(value)
  90. if not (isnumeric(value)) then
  91. msgbox "请在消费金额栏中输入数字!",64,"特别提示"
  92. elseif value<1 then
  93. msgbox "你的钱难道越花越多?",64,"特别提示"
  94. else
  95.    flag=1
  96.    addRow money.value,cstype.options(cstype.selectedIndex).innerText,date,weekdayname(weekday(date))
  97.    csmonth.selectedIndex = month(date())           '月份checkbox转到当前月份;
  98.    selectChange(monthname(month(date())))          '表格显示为当前月份的数据;
  99. end if
  100. money.select()       'money输入框选定;                          
  101. End Function
  102. '////////////////////////如果月份checkbox变化//////////////
  103. Function selectChange(choose)             '78行;
  104. totalMoney=0
  105. for i=0 to index
  106.     set tag=delcheck(i).parentelement.parentelement   
  107.     mName=monthname(month(tag.cells(3).innertext))       '获取数据的月份;
  108.     if trim(choose)="一年" and tag.cells(1).innertext<>"0" then
  109.        tag.style.display=""
  110.        totalMoney=totalMoney+clng(tag.cells(1).innertext)
  111.     elseif mName<>trim(choose) or tag.cells(1).innertext="0" then
  112.       tag.style.display="none"
  113.     else
  114.       tag.style.display=""
  115.       totalMoney=totalMoney+clng(tag.cells(1).innertext)
  116.     end if
  117. next
  118. consume.innerHTML="消费总额:"&totalMoney&"元"
  119. End Function
  120. '////////////全选或全不选按钮控制代码//////
  121. Function selectAll()          '96行;
  122. if mybutton.value="全部选择" then
  123.     for i=0 to index
  124.          delcheck(i).checked=true
  125.     next
  126.     mybutton.value="全不选择"
  127. else  
  128.     for i=0 to index
  129.         delcheck(i).checked=false
  130.     next
  131.     mybutton.value="全部选择"
  132. end if
  133. End Function
  134. '/////////////当程序退出时//////////////////
  135. Sub Window_onunLoad()        
  136. if flag=1 then        '文件如果已经标志了改动,则提示是否保存;
  137. msg=msgbox("提示:你的设置已经更改,是否保存?",vbyesno+vbExclamation,"保存提醒")
  138. if msg=6 then         '如果选择了“是”;
  139. selectChange("一年")   '当前表格显示的数据为全年的数据;
  140. for i=0 to index
  141.    set tag=delcheck(i).parentelement.parentelement
  142.        if tag.cells(1).innertext<>"0" then
  143.            txt=txt&"#"&tag.cells(1).innertext&"#"&tag.cells(2).innertext&"#"
  144.            txt=txt&tag.cells(3).innertext&"#"&tag.cells(4).innertext & vbcrlf
  145.        end if
  146. next
  147. set file=fso.opentextfile("consume.ini",2,1)         '覆盖写入文件;
  148. file.write(txt).close
  149. end if
  150. end if
  151. End Sub   
  152. </script>
  153. <!--///////以上为控制代码,以下为样式代码/////////////-->
  154. <style>
  155. #all{border:1px solid #000069;width:600px;text-align:center;padding:2px;}
  156. #header{width:598px;text-align:center;font-family: "隶书";font-size: 24px;
  157.        font-weight: bold;background: #EEE;margin:1px;}
  158. #header1{text-align:center;font-size: 16px;width:595px;padding:2px 2px;}
  159. #month{float:left;width:20px;margin-left:90px;}
  160. #consume{float:left;width:200px;color:red}
  161. #main{width:600px;height:300px;background: #EEE;border:1px solid #000069;overflow:auto;}
  162. #contain{width:600px;height:30px;border:1px solid #000069;}
  163. .line{border:1px solid #000060; height: 1;width:602px;}
  164. .line2{border:1px solid white; height: 1;width:600px;}
  165. .c_button{text-align:center;float:left;width:100px;border:1px solid #ccc;
  166.           background-color:#F3F3F3;font-size:12px;color:#333333;
  167.           padding:5px 2px;margin:2px;line-height:20px;}
  168. .c_other{text-align:center;float:left;width:136px;
  169.         border:1px solid #ccc;background-color:#F3F3F3;font-size:12px;color:#333333;
  170.         padding:5px 2px;margin:2px;line-height:20px;height:23px; }
  171. .button {padding:1px;text-align:center;border:0;background-color:#eee;height:23px;cursor:pointer}
  172. .th{text-align=center;background-color:#006699;font-size:14px;
  173.          font-family: "隶书";color:#F2F3F7;padding:2px;line-height:22px;}
  174. .row_add{text-align:center;background-color:#ccd2de;height:4px;font-size:12px;line-height:15px;
  175.          padding:2px;}
  176. .new_row_add{text-align:center;color:red;background-color:#ccd2ad;height:4px; font-size:12px;
  177.              line-height:15px;padding:2px;cursor:hand;}
  178. </style>
  179. <!--///////以下为要显示对象/////////////-->
  180. <hr class="line">
  181. <div ID="all">
  182. <div id="header">2007年消费一览表</div>
  183. <div id="header1">
  184. <div id="month"><select id="csmonth" onchange=selectChange(csmonth.options(csmonth.selectedIndex).innerText)><option>一年</option><option>一月</option><option>二月</option><option>三月</option><option>四月</option><option>五月</option><option>六月</option><option>七月</option><option>八月</option><option>九月</option><option>十月</option><option>十一月</option><option>十二月</option></select></div>
  185. <div id="consume">消费总额:</div></div>
  186. <div id="main">
  187. <table border=0 width=100% ID="mytable">
  188. <tr class="th"><th>选定</th><th>消费金额</th><th>消费类型</th><th>消费日期</th><th>消费星期</th>
  189. </table></div>
  190. <hr class="line2" color=white>
  191. <div id="contain">
  192. <div class="c_button"><input type=submit value="全部选择" class="button" ID="mybutton" onclick=selectAll></div>
  193. <div class="c_other">消费金额:<input type=text name="money" size=5 onmouseover='money.select()'></div>
  194. <div class="c_other">消费类型:<select ID="cstype"><option>饮食</option><option>娱乐</option><option>其它</option></select></div>
  195. <div class="c_button"><input type=submit value="添加记录" class="button" onclick=check(money.value)></div><div class="c_button"><input type=submit value="删除记录" class="button" onclick=delRow()></div>
  196. </div></div>
复制代码
链接: https://pan.baidu.com/s/1EG5_kRoMGopFfzThE0oxdw?pwd=atkv




欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2