XML+javascript+ACCESS,制作一个个人记帐本

前面已经完成了数据库的建立,增加记录,修改记录以及简单的统计功能。

下面的工作是添加查找功能,增加统计功能

昨天晚上一不小心按了power键,哎!写的全没了。不过还好,写的不多。

现在已经实现了上述想实现的功能了。通过些代码的编写,学会了VB中对于字符串

操作的一些函数,挺好完的。下是从网上找到的一些资料:

 

VBscript中的字符串函数

在VBscript中,系统提供了大量的字符串函数来处理有关字符串的事情。在 Javascript 中,系统为String对象提供了许多方法,而字符串变量可以不用附加说明就使用这些方法,使对字符串的处理能力更加强大。下面我们分批介绍这些函数和方法。

目标任务1  演示子字符串的截取,字符串的截空,子串的定位等。

关键字 left, right, mid, space, trim, instr, len

代码

dim Mystr, Myword,Mypos, BR
Mystr = "The built-in objects are special because they are built into ASP pages and do not need to be created before you can use them in scripts."
BR = "

"
document.write( "Mystr=" &chr(34) & Mystr & chr(34) &BR)
document.write("字符串Mystr的长度是" & len(Mystr) & BR)
document.write("7位左子串是" & left(Mystr,7) &BR)
document.write("8位左子串是" & right(Mystr,8) &BR)
document.write("从第5位开始的12个字符是" & mid(Mystr, 5, 12) &BR)
Myword = space(3) & "hello" & space(2)
document.write(chr(34) & Myword &chr(34))
document.write("这个字符串的的长度是" & len(Myword) &BR)
document.write("截去前导空格后为:" & chr(34) &Ltrim(Myword)&chr(34) &BR)
Myword = "OBJECT"
document.write ("The Myword =" & chr(34)&Myword&chr(34) )
Mypos = Instr(Mystr,Myword)
if Mypos=0 then
document.write(" Myword不是它的子串")
else
document.write(Myword & "是子串,第一个开始于" & Mypos)
end if
document.write BR
Myword = LCase(Myword)
Mypos = Instr(Mystr,Myword)
if Mypos=0 then
document.write(" Myword不是它的子串"&BR)
else
document.write(Myword & "是子串,第一个开始于" & Mypos)
end if

代码注释

这段代码演示了VBscript中的许多字符串函数的用法,用左子串left,右子串right,任意子串mid,生成空格字符串space,截去前导空格Ltrim,截去尾部空格Rtirm,截去前后空格tirn,字符串长度len,判断子字符串的存在性和出现的位置Instr。大小写转换Ucase 和Lcase,把ASCII码转换为字符的函数chr。

mid函数从字符串中返回指定数目的字符,语法:Mid(string, start[, length])
InStr函数返回子串在主字符串中第一次出现的位置,如子串不存在则返回0。语法:
    InStr([start, ]string1, string2[, compare])
省略开始位置则从开始,compare=0 or 1,表示有二进制比较(0)或进行文本比较(1),缺省为二进制比较。详见语法参考。

其它函数的语法从例程中一目了然,不再赘述。

 

现在基本上可以用了,不过在查询的地方还有点问题,已经在CSDN上问了。等待回答。

现在问题已经有人解答,并得到了解决。原来通配符搞错了,ASP不认“*”,应该用“%”

查看

后面想想还要做些什么:

1,能按月统计,总的支出,总的收入,以及节余

2,最好能做成图表的样子,能进行多个月的对比。

第一个需求已经完成:)

首先把表格的结构搞清楚。先用fireworks作几张图片:

一个是Y轴,有效长度为480,最大值为4000,上面标有3000,2000,1000,0的刻度。

然后是几个表示收,支,余的小柱子,随便选了颜色,高度都为100。

原理很简单,以2000为单位1(图片高度为240,与坐标轴对应),不同的数字占2000的比例然后乘以240,

得到的就是相应柱子的高度。

将公用的地方提取出来:

不管怎么样,连续地画三个柱子是每一个生成图表必不可少的部分,所以先将这部份提取出来:




function draw(inbox,outbox)
 dim htm
 dim h1,h2,h3

 htm = htm & "

" htm = htm & "
:" & inbox & "
" & ":" & outbox & "
:" & Cint(inbox)-Cint(outbox) &"
" response.write(htm)end function

说明:参数inbox和outbox分别表示收入和支出的金额,胡乱起的名字:)

然后将画表头、表尾的代码再提取出来:



'打图表表头及Y轴
function drawheader()
 dim htm
 htm = htm & "

"
 htm = htm & "
" response.write(htm)end function

 




function drawbottom(m1,m2)
 dim htm
 dim i
 htm = "
 
" '若只是一个月 if m1=m2 then  htm = htm & "
  
"
 else
 '多个月
  for i=0 to Cint(m2)-Cint(m1)
   htm = htm & "
  
"  next  htm = htm & " "
 end if
 response.write(htm)
end function

说明:参数m1,m2表示前后两个月。如果是单月,则m1=m2。根据这个来决定表尾有几个td

OK,材料都有了,就是往上面堆了。下面是一个通过以上几个函数画出某一个时段的图表的函数:

 

'画某一个时段的图表
function drawatimezone()
 set rs = server.createobject("adodb.recordset")
 dim sql
 dim y1,m1,y2,m2,time1,time2
 dim inbox,outbox
 inbox = "0"
 outbox = "0"
 y1 = request("year1")
 m1 = request("month1")
 d1 = request("day1")
 y2 = request("year2")
 m2 = request("month2")
 d2 = request("day2")
 time1 = y1 & "-" & m1 & "-" & d1
 time2 = y2 & "-" & m2 & "-" & d2
 sql = "select * from myCount where CDate(time)>=CDate('" & time1 & "') and CDate(time)  rs.open sql,cnn,1,3
 if not rs.eof then
  while not rs.eof
   if rs(2) = 0 then
    inbox = Cint(inbox)+Cint(rs(4))
   else
    outbox = Cint(outbox)+Cint(rs(4))
   end if
  rs.movenext
  wend
  
 else
 end if
 response.write("
以下是从" & time1 & "到" & time2 & "间的收支统计图表

")
 call drawheader()
 call draw(inbox,outbox)
 call drawbottom(m,m)
end function
当时写的时候思路很清晰,不过就怕日后再看的时候会晕。不管它,先记下来再讲!
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
抱歉,作为AI语言模型,我不具备演示XML和CSS的能力,不过我可以向您展示如何使用Markdown语言创建个人简历。 # 个人简历 ## 基本信息 | 姓名 | 手机 | 邮箱 | | ---- | ---- | ---- | | 张三 | 18888888888 | zhangsan@example.com | ## 教育背景 ### 学位 - 2015年至今 本科 XX大学计算机科学与技术专业 ### 证书 - 2018年 Adobe认证专业人士证书 - 2016年 TOEFL成绩:105 ## 实习经历 ### 公司A(2018.6-2018.8) - 岗位:前端开发实习生 - 工作描述: - 开发公司网站的模板和页面; - 搭建和维护公司内部前端框架和组件库; - 参与项目的需求分析和功能设计; - 使用Vue.js开发一个内部管理系统。 ### 公司B(2017.7-2017.9) - 岗位:UI设计实习生 - 工作描述: - 设计公司产品的图标、界面和交互效果; - 参与项目的视觉设计和系统原型呈现; - 学习掌握Photoshop、Illustrator、Sketch等UI设计常用工具。 ## 技能清单 - 熟练使用HTML/CSS/JavaScript等Web前端开发技术; - 了解前端框架Vue.js和React.js的基本原理和使用方法; - 掌握使用Photoshop、Illustrator等设计工具进行UI设计; - 具备解决问题和学习新知识的能力; - 良好的沟通与协作能力,可以有效和团队成员和客户沟通和协作。 ## 个人项目 ### 基于Vue.js的在线留言板 - 功能描述:可以发布、回复、修改、删除留言,并支持用户注册和登录。 - 涉及技术:Vue.js、Node.js、MongoDB、Express.js、ElementUI、Axios等。 - 项目地址:[https://github.com/yourusername/vue-message-board](https://github.com/yourusername/vue-message-board) ### 基于React.js的个人简历模板 - 功能描述:提供一个简洁美观的个人简历模板,可以自定义内容。 - 涉及技术:React.js、Webpack、Babel、Sass等。 - 项目地址:[https://github.com/yourusername/react-resume-template](https://github.com/yourusername/react-resume-template) ## 自我评价 本人具有较强的创新和学习能力,能够快速适应新环境和新技术,具备良好的团队合作和沟通能力,注重细节和效率。在前端开发和UI设计方面有一定经验和能力,正在不断地努力学习和提高。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

huixyn

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值