财务票据普通电脑打印的实现
2010-02-26杨柳青
杨柳青
(广西机械高级技校,广西柳州545005)
单位的财务人员,经常要与各种票据打交道,如开具各种发票、收据、支票等等。通常用手工填写,费事费力,还容易出错。为提高效率,笔者编制了票据打印程序,使用普通电脑来填写票据,普通(针式、喷墨、激光)打印机打印出票。在windows下的Microsoft Access 2003环境下运行,界面友好,容易操作,打印位置调整简便,使票据填写更加规范化。该程序是会计人员走向办公自动化、提高工作效率、减少工作失误的好帮手,下面谨作简介。
1 财务票据打印要解决的问题
1.1 金额的中文大写
各种票据上,无一例外的均要填写阿拉伯小写金额以及金额的中文大写,中文大写应按照汉语语言规律、金额数字构成和防止涂改的要求进行书写。而不同的票据填写的式样也不一样。以“广西行政事业性收费统一收据”(以下简称“统一收据”,如图1)及“广西行政事业单位一般收款收据”(以下简称“一般收据”,如图2),“统一收据”的填写较为常见,中文大写金额数字到“元”为止的,在“元”之后,应写“整”(或“正”)字,例如123 456.00元中文大写就是“壹拾贰万叁仟肆佰伍拾陆元整”。前后均不要“零”。大写金额数字有“分”的,“分”后面不写“整”(或“正”)字,如203 056.08元,转化为中文大写就是“贰拾万叁仟零伍拾陆元零捌分”。阿拉伯小写金额数字中有“0”时,中文大写金额要写“零”字。如1 409.50元,应写成“壹仟肆佰零玖元伍角整”(图1)。阿拉伯数字中间连续有多个“0”时,中文大写金额中间可以只写一个“零”字。如6 007.14元,应写成“陆仟零柒元壹角肆分”。又如107 000.53元,应写成“壹拾万柒仟元零伍角叁分”,或者写成“壹拾万零柒仟元伍角叁分”。金额数字角位是“0”,而分位不是“0”时,中文大写金额“元”后面应写“零”字。如¥16 409.02元,应写成“壹万陆仟肆佰零玖元零贰分“;又如¥325.04元,应写成“叁佰贰拾伍元零肆分”。
图1 “统一收据”式样
而对于“一般收据”的填写,如203 056.08元,中文大写就是“贰拾零万叁仟零佰伍拾陆元零角捌分”,其中的“拾,万,仟,佰,拾,元,角,分”字样,票面上已预先印制,不必填写。而如果前、中及后有“0”,也必须填写“零”。如308元,中文大写就为“零拾零万零仟叁佰零拾捌元零角零分”(图2)。
图2 “一般收据”式样
程序应能按照不同票据的要求,把阿拉伯数字正确转换为符合规则的汉字数字大写形式。
1.2 日期的填写
一般票据的出票日期,如平常写法,不用中文大写,如“2009年10月17日”。其中的“年,月,日”票面上已印制,不必填写。而各种银行支票的出票日期填写,就必须为中文大写,并有特殊规则。为防止变造票据的出票日期,在填写月、日时,如月和日是个位的,前面要加零,如2009年2月8日要写成“贰零零玖年零贰月零捌日”;10~19的数字也要注意,如“10”要写成“壹拾零”,16要写成壹拾陆;月为壹、贰和壹拾的,日为壹至玖和壹拾、贰拾和叁拾的,应在其前加“零”;日为拾壹至拾玖的,应在其前加“壹”。如1月15日,应写成零壹月壹拾伍日。
如2010年7月16日,转换为中文大写就是“贰零壹零年零柒月壹拾陆日“。其中的“年,月,日”票面上已印制,不必填写(如图3)。
图3 银行支票式样
程序应能正确转换为符合规则的日期大写形式。
1.3 发票(收据)号码的填写
发票(收据)一般上面均印制有号码,不必再填写。但是为了事后查询的方便,在数据的记录上应该有与发票(收据)一致的号码。因此应该可以自动产生号码,并且应与发票(收据)上的号码相同。
1.4 信息数据的“套打”
在印制好的专门格式的发票(收据)上填写的各种信息、金额等数据,均须在相对应的位置,在打印时必须保证不能错位,即称为“套打”。由于各种发票(收据)的格式不一样,就是同样一种发票(收据),由于各次的印刷情况,位置也可能有差别。要求软件能保证不管票据格式怎样变动,打印时都不应错位。
1.5 适用各种发票(收据)、支票
由于票据种类多,光是“银行支票”,各家银行的格式就有不同。要使软件尽可能通用,就应该能适应各种发票(收据),并且还可以扩充。
2 财务票据打印解决方案
笔者编制的“票据打印”程序,针对以上情况设计,可实现行政事业单位《一般收据》、《统一收据》两种收款收据的记录、查询及收据的“套打”,既可以使用单页纸,也可使用连续纸。同时还可以对各家银行的银行支票、存款凭条(解款单)进行“套打”。支持各种普通(针式、喷墨、激光)打印机,软件操作简便,对于需要转化为汉字大写的数字,只需输入小写阿拉伯数字,软件会自动转换为符合规则的汉字大写形式,使票据填写更加规范化,而且打印位置调整简便,界面友好,容易操作。
2.1 主要特色
(1)可套打标准的“广西行政事业单位一般收款收据”、“广西行政事业性收费统一收据”;
(2)可套打工商银行、交通银行、建设银行、农业银行、中国银行、商业银行等银行存款凭条(解款单)。
(3)可套打工商银行、交通银行、建设银行、农业银行、中国银行、商业银行等银行支票。
(4)自动输入当时日期,对于银行支票自动生成大写日期;
(5)完全按印制好的收款收据的已有号码自动编号;
(6)阿拉伯数字金额小写自动转换成汉字大写;
(7)可按不同票据自己扩充增加模版实现“套打”功能;
(8)支持各种型号的(针式、喷墨、激光)打印机。
2.2 适用行业
适用于从大学、中学、小学各类学校到培训机构以及各企事业单位财务工作。
2.3 代码示例
(1)“统一收据”金额阿拉伯数字转换汉字大写代码。
(2)“一般收据”金额转换中文大写代码。
(3)“银行支票”日期转换中文大写代码。
将以上代码作为模块,需要时调用即可。
2.4 打印位置的调整
针对不同的票据,程序分别设置了相应的打印位置模板。但由于票据不同印制批次,导致印制格式位置有些微小的差别。有的打印机限于其机械结构(走纸系统、纸张感应系统)等原因,实际打印位置有变化。由于是套打票据,为保证位置正确,程序可以对各文本框上下左右进行精确到0.01mm的调整(如图4)。
图4 打印位置调整
有些打印机由于结构的缘故,不能打印到页边,也即无法进行“零边距”打印。此时,程序可以通过“打印偏移”的方式,即将打印内容偏移到需要的打印位置。这样,就可以整体移动打印内容,而不必一个一个的在“打印位置”框内移动了。在“打印机校准”(如图5)界面上有详细的设置步骤。
图5 “打印机校准”界面
对于使用连续票据纸的打印,要事先按照票据的实际大小,自定义好纸张,方能保证走纸正确。
2.5 票据模版的扩充
考虑到票据的种类众多,为便于扩展,本程序可以自己设置票据模板。用扫描仪或数码相机将票据制成图片文件,导入到程序,设置相应文本框的位置、大小、字体等保存即可。
3 结束语
笔者所在单位为学校,每学期既有1万多学生的学费收据打印,还有各种行政收费收据打印,以及数家银行的现金支票、转账支票、进账单的开出等等。本软件经财务人员两年多的使用,效果满意,是财务人员走向办公自动化、提高工作效率、减少工作失误的好帮手。本软件已作为共享软件,可在http://www.gxgj.com/newsinfo.aspid=2240下载。
[1]向中凡.Access 2000实用操作与技巧[M].西安:西安电子科技大学出版社,2000.
[2]赛奎春,高春艳,等.Visual Basic精彩编程[M].北京:机械工业出版社,2003.
[3]桂思强.Access行家实战问答集[M].北京:中国铁道出版社,2004.
[4]叶 彬.中文Access问题与技巧精解[M].北京:清华大学出版社,2000.