当前位置:首页 > PHP教程 > PHP总结归纳

用Access2007解决支票打印的日期大写问题

财务人员都知道,转账支票的出票日期是需要大写的。如果用手写,当然可以直接填写成大写,但如果设计专用软件进行套打,每张支票都在固定位置填写大写会很麻烦,也没有必要。这里仅以access2007设计为例,给这方面的爱好者提供一个思路。 一、先设计一个acce

  财务人员都知道,转账支票的出票日期是需要大写的。如果用手写,,当然可以直接填写成大写,但如果设计专用软件进行套打,每张支票都在固定位置填写大写会很麻烦,也没有必要。这里仅以access2007设计为例,给这方面的爱好者提供一个思路。

  一、先设计一个access2007表,加入转账支票可能需要的字段,比如付款人名称、付款人账号、收款人名称、付款金额、出票日期等等。其中的“出票日期”设成“日期”类型,默认值可以设成“date()”(即当天日期)。表设计好后命名保存备用。

  二、新建模块,并输入以下内容

  public function udate(mdate as date, mymd as integer) as string

  '用法 udate(#1/2/2005#, i)

  'i=1  贰零零伍

  'i=2 零壹

  'i=3 零贰

  'i=0 贰零零伍年零壹月零贰日

  dim i as integer, id as integer

  dim strdt(2) as string, strs as string

  dim strd(0 to 9) as string * 1

  strd(0) = "零"

  strd(1) = "壹"

  strd(2) = "贰"

  strd(3) = "叁"

  strd(4) = "肆"

  strd(5) = "伍"

  strd(6) = "陆"

  strd(7) = "柒"

  strd(8) = "捌"

  strd(9) = "玖"

  for i = mymd + (mymd <> 0) to mymd + (mymd <> 0) - (mymd = 0) * 2

  if i = 0 then

  id = year(mdate)

  strdt(i) = strd(id 1000) & strd((id 100) mod 10) & strd((id 10) mod 10) & strd(id mod 10)

  else

  if i = 1 then id = month(mdate) else id = day(mdate)

  if id > 9 then strs = "拾" else strs = ""

  strdt(i) = strd(id 10) & strs & strd(id mod 10)

  if id > 9 and id mod 10 = 0 then strdt(i) = "零" & left$(strdt(i), 2)

  end if

  next

  select case mymd

  case 0

  udate = strdt(0) & "年" & strdt(1) & "月" & strdt(2) & "日"

  case else

  udate = strdt(mymd - 1)

  end select

  end function

  三、以第一步建的表为基础新建一个查询,加入必要的字段。另在一个空白字段写表达式:“大写: udate([出票日期],0)”。保存这个查询。

  四、在原表中录入将要打印的支票信息,“出票日期”字段必须录入正确的日期。

  五、运行查询,就会看到有一个大写的日期字段。有了这个结果,无论设计窗体,还是设计报表,都可以自由引用了。

.syntaxhighlighter{padding-top:20px;padding-bottom:20px;}
【说明】本文章由站长整理发布,文章内容不代表本站观点,如文中有侵权行为,请与本站客服联系(QQ:)!