摘要] 公司财务报销工作中涉及到各种票据,对这些票据的管理是财务工作中最为常见的、很烦琐的工作。在工作量越来越大,而又不断要求提高工作效率的实际工作中,传统的手工票据管理方式已经远远不能适应工作需要。为了高效地完成这项工作,本文开发了一个财务票据软件,介绍了软件的模块结构和所采用的关键技术。
[关键词] 财务票据;打印软件;
1前言
票据管理是指公司财务报销工作中涉及的各种票据的日常管理,常见的票据有差旅费报销单、费用报销单、记账凭证、现金支票以及进账单等。这些票据的管理是公司财务工作中最为常见的工作,同时也是很烦琐的工作。在工作量越来越大,而又不断要求提高工作效率的实际工作中,传统的手工票据管理工作方式已经远远不能适应工作需要。采用软件系统来实现辅助办公是高效率完成这项工作的有效方法之一,虽然通用的票据管理系统很多,但是都和实际工作存在一定差距,使用不便。因此开发一个适合中小型企业使用的票据管理系统是一个非常有实际意义的工作。本文针对现实中中小型企业财务票据管理的现状,从实用角度介绍了一个使用visual basic 6.0开发的基于sql server 2008数据库的票据打印软件。
2软件的模块结构
软件的模块结构如图1所示。
模块是根据功能来划分的,在用户管理模块中,系统管理员可以增加新的用户名和密码,每个用户登录后可以修改自己的密码。在基本信息设置模块中,系统管理员可以把本公司经常来往的进账单的出票人和收票人提前设置好,供后面的业务反复调用。在后面的各种票据中功能基本是相似的,本文以工商银行的进账单为例(见图2):
对于出票人和收款人,将鼠标放在其全称后面的空行处双击,就出现如图3所示的界面。
如果挑选长城物资贸易有限责任公司,就双击该行,图3的界面就关闭,回到图2的界面,此时出票人的全称和账号就自动调用过来了;对于金额,只需要在小写的文本框中写数字,其大写金额就自动生成出来,这样用户非常方便,可以降低原来手工书写的错误率。
当这些内容填写好以后,单击保存,再单击打印就可以定位打印到事先放在票据打印机中的进账单上面,既快捷又准确,效果非常好。
3两个关键技术
这个实用的票据打印软件,有两个技术需要解决:一是小写转大写的算法,二是定位打印技术。
3 .1小写转大写的算法smalltolarge
step 1设置变量并对其初始化;
str(10):大写金额数组,str(0) = "零",str(1) = "壹",……,str(9) = "玖";
china:金额单位,初始化为"分角元拾佰仟万拾佰仟亿";
lnp:金额的长度;
prc:金额的字符串表示;
tmp:金额大写的逆序;
dx:单位,"分","角","元","拾",……,"亿";
xx:金额大写,"零","壹","贰",……,"玖";
zhen:判断金额是否为整。
step 2如果金额只有"角",去掉小数点并在"分"上加"0"即prc = replace(prc, ".", "") + "0";如果金额只有"分",去掉小数点即prc = replace(prc, ".", "");如果金额有"角"和"分",去掉小数点即prc = replace(prc, ".", "");如果金额是整数,则在"角分"位置上加"00"。
step 3将金额以大写方式逆序显示,tmp = str(mid(prc, i, 1)) & tmp。
step 4将金额与单位相对应:取数字的大写即xx = mid(tmp, i, 1);取对应单位即dx = mid(china, i, 1);然后将数字的大写与单位结合,如下:
(1)如果大写数字不为"零",将大写数字与单位结合即zdx = xx & dx & zdx;
(2)如果大写数字为"零":若在"元"位置,则将单位"元"补上即zdx = dx & zdx;若在"万"位置,则将单位"万"补上即zdx = dx & zdx;若"角不为0,元为0,且高位有不为0的" 或者 "千不为0,万为0且高位有不为0的"则将数字"零"补上即zdx = "零" & zdx。
step 5如果金额为整数(没有"角"和"分"),则在金额后加上"整"即zdx = zdx + "整";如果金额中含有"零元"或者"零万",则分别替换为"元"、"万",即zdx = replace(zdx, "零元", "元")和zdx = replace(zdx, "零万", "万")。
step 6如果只有"分"且不为0,则只要金额和"分",zdx = right(zdx, len(zdx) - 1)。
step 7如果有"角"没有"分",则在金额后加上"整"即zdx = zdx & "整"。
step 8如果"角"不为0,"元"为0,且高位有不为0,则在"元"后面加上"零",zdx = replace(zdx, "元", "元零")。
step 9将大写金额显示在金额栏的表格中,结束。
3.2 定位打印技术
为了打印信息定位准确,每一类票据采用两个窗体来进行定位,如下:
一个窗体(form 1)做成票据的样式,不需打印的信息直接显示出来,需要打印的信息填写到文本框textbox控件中;
另外一个窗体(form 2)设置参考位置作为打印机的打印初始位置,该窗体只使用文本框textbox控件,对这些文本框控件的位置进行不断调整与测试,使其与form 1窗体中相关的textbox控件位置相对应,其他不需打印的位置上不使用控件;
当用户单击form 1窗体中“打印”按钮的时候, 将form 1中需要打印的文本框textbox控件信息传递给form 2的对应文本框,然后使用form 2窗体的 printform 方法打印窗体,即可将指定的内容准确地定位到要打印的位置,并且打印出来。
4 软件实施后的效果
(1)对于票据上应有的金额,只需要在小写的文本框中写数字,其大写金额就自动生成出来,这样用户非常方便,可以降低原来手工书写的错误率,而且节省时间,提高了工作效率。
(2)打印信息定位准确。当打印内容填写好以后,就可以打印到事先放在票据打印机中的进账单上面,既快捷又准确,票据单看上去既清晰又整洁,效果非常好。
(3)减轻了工作人员的劳动强度。在没有使用打印软件之前,工作人员要花很大的精力来填写各种纸质票据材料,在操作过程中重复填写信息,工作非常枯燥和辛苦。该打印软件极大地减轻了他们填写票据资料的工作量,为企业节省了大量资金和时间。
5结束语
本软件已经在安徽工业大学财务处等单位使用,并已在中国版权局软件著作权登记,具有很好的推广价值。
主要参考文献
[1]李德文.通用报表打印程序的设计与实现[j].计算机系统应用,1995(2):27-30.
[2] 孙家广,胡事民.计算机图形学基础教程[j].北京:清华大学出版社,2005:31-39.
[3][美]r f冈萨雷斯,等.数字图像处理[m].第2版.阮秋琦,阮宇智,译.北京:电子工业出版社,2005.
[4]于英民,等.计算机接口技术[m]. 北京:电子工业出版社,2004.
[5]罗鸿.erp原理·设计·实施[m]. 北京:电子工业出版社,2003:12-22.
[6]刘炳文.visual basic程序设计例题汇编[m].北京:清华大学出版社,2006:97-119.
[7]刘天惠.visual basic程序设计教程[m].北京:清华大学出版社,2006:29-78.