小微企业财务软件的设计与实现
2023-05-10艾力皮达尔·艾尼瓦尔陈晨
艾力皮达尔·艾尼瓦尔 陈晨
关键词:财务软件;小微企业;功能设计
会计信息化是企业财务工作的必然趋势,随着居家办公模式的产生,企业的财务软件也需要满足居家办公需求。对于小微企业来说,其居家办公财务软件与大企业的需求和成本预算还存在一定的差距。因此,小微企业亟须设计符合自身需求的居家财务软件。
1小微企业财务软件的需求分析
1.1免费使用
主流的财务软件价格过于昂贵,价格几千元到几万元不等,一些财务软件使用计算机进行收费,且每一臺计算机都需要购买软件授权才能使用[1]。考虑到小微企业的经济成本因素,应设计一款免费供小微企业使用的财务软件。
1.2开源使用
通常财务软件都是闭源软件,软件提供者同时负责软件的后期维护、改错,以及功能更新[2]。对于小微企业来说,功能的要求并不是很复杂,但随着经营业绩的提升,企业对财务功能的使用则需要进一步优化。但考虑到维护和更新成本因素,若设计一款小微企业可以自主维护和更新的财务软件,则更符合小微企业的需求。
1.3内存占用小
小微企业的办公硬件有一定局限性,常用的主流财务软件占用内存空间巨大,对居家办公并不友好。因此,小微企业需要一种轻便、可以随身携带储存设备的财务软件。
1.4网络环境要求低
小微企业要实现随时随地的财务办公,就不能使用仅允许局域网访问的财务软件[3]。即使依靠VPN访问,网络环境的要求也较高。因此,需要一种可以在任何网络环境下随插随用的财务软件。
2系统可行性分析
2.1可行性分析
全球疫情防控背景下,居家办公已成为常见的办公模式[4]。成本预算更低的微小型企业迫切需要小型化、容易上手的财务软件[5]。为了不受场地限制随处办公,本文采用C/S架构,使用简单易懂的QT框架来开发界面。对于微小型企业而言,不可能有专门岗位负责维护,因此采用易学的编程语言Python作为程序开发语言。
2.2架构选择
C/S架构(客户端一服务器架构)采用上下两层结构,服务器负责数据存储和管理,客户端完成与客户交互任务,其优点是网络流量低。因此,若使用者需要将服务器搭建到服务器上,这不需要过高的宽带就能带来流畅的体验,维护容易,UI美观,并降低服务器租金成本。其缺点为当客户端数量较多时维护困难,但一般小微型企业使用人数较少,对于需要居家办公的小微型企业来说,该架构优势明显。
2.3编程语言与数据库选用
Python的优点是学习成本低,生态丰富,使用者仅需短时间学习即能自行添加其他定制功能。比如,改变各种报表展现格式使其更符合自己的审美。Python可以使财务人员在短时间内就能完成对软件的维护,不需要安排专门人员。另外,本文选用的MySQL关系数据库管理系统,也是财务系统的常用数据存储服务器,其优点是速度快,生态丰富,开放源代码免费。
2.4权限分析
一个基本的财务软件,需要有明确的权限划分。对于远程办公来说,需要更明确的权限划分。权限是指在客户端与客户交互时允许客户操作的范围,根据调研结果,仅保留了一些必要的权限,即凭证录入、凭证审核、凭证删除等。管理员可以给予各人员相应权限。
2.5界面框架选用
界面框架使用同样开源的QT框架,其特点是易上手,自带组件美观。QT是一个开源的框架,完全免费,使用成本低。QT拥有众多丰富友好的界面库,其操作便捷。
3小微企业财务软件的设计
3.1功能设计
3.1.1复式记账功能
复式记账法可以全面反映各项经济业务的全貌,并且可以利用会计要素之间内在联系与试算平衡来检查记录的准确性,是一种较完善的记账方式,可以通过编程实现,快速进行试算平衡,并可以通过各种绚丽报表展示经济业务全貌。
3.1.2财务报表分析功能
报表分析主要针对资产负债表及利润表,通过比率分析法、比较分析法、结构分析法进行分析后输出文字或者图形等,也可以通过编程实现,并提供使用者使其做出决策,结合matlab模块,使输出更直观。
3.1.3MySQL数据关系存储
MySQL是一个关系型的数据库管理系统,将财务数据储存在相应表中,而不是都放在一个大仓库内,这大大提高了灵活性,可以通过SQL命令精确获取某一时间的记账凭证,可以将会计科目储存在数据库中,可以随时添加二级科目,并且MySQL提供丰富的查询语句可以精确查找到需要的科目。
3.1.4C/S架构传输
在C/S架构下,客户机完成与客户的交互,再由服务端进行存储,服务端对数据提供安全保护以及保证数据完整性,并允许多个客户机同时访问服务器。这种架构下,访问者必须安装特定客户端,并且客户端源代码通过编译、加壳,安全性很高。而对于B/S架构,虽然使用者可以随时随地通过浏览器访问服务端,但安全性得不到保障。由于前端实务逻辑使用JavaScript编写而无法进行隐藏,任何人都可以对其进行反编译,以读取加密逻辑。反观C/S,只要客户端不泄露,就不会造成数据丢失。在目前技术下使用此架构,通过TCP7IP传输,相对容易把握,成本也最低。
3.2数据库设计
3.2.1用户表
记账软件将通过此表判别登人用户权限身份,具体为权限代号0,代表管理员1,代表出纳2,代表会计主管等。具体如表1所列。
3.2.2会计科目表
使用者可以通过软件科目管理功能将企业所需的会计科目添加到此表中,软件是根据科目代号位数分辨科目级别,type字段为科目类别,具体有资产类科目、负债类科目、所有者权益类科目,成本类科目、损益类科目。以数字0—5代表科目类别,软件通过试算平衡生成各类报表。具体如表2所列。
3.2.3记账凭证
记账软件将所有记账凭证记录到该表中,根据此表生成各类报表,使用者可以通过软件自带的记账凭证管理功能对此表进行增、删、改等操作。软件通过code来判别哪些记录在一条凭证上,这并不影响速度或者可阅读性。如果不特别标注code字段,软件将自己选择合适的代码以区分不同凭证。Dr,Cr两条字段分别记录借方和贷方余额。Totalaccount,smallaccount将记录一級科目、二级科目的中文名称,不以数字命名是为了提高数据库此表可阅读性。具体如表3所列。
3.2.4原始凭证图片表
原始凭证图片来源可以是手机上传,也可以是通过软件拖拽上传。拖拽上传时,软件会通过内置OCR接口将图片转换为文字,并通过json格式储存在state字段里,这既节省了OCR识别次数,又节省资源。这些坐标信息通过QT的Qgraphicsscene展现在用户面前,使用户可以通过在图片上点击实现图片文字的复制操作。Image字段储存图片的字节集,以供查阅,并且在此系统下,使用者可以将图片上传至服务器。具体如表4所列。
4功能模块设计与实现
4.1拍照后将凭证上传至服务器
用户只需用手机将凭证拍摄并发送至指定群,凭证将添加到服务器,配合“凭证填制助手”功能,可自动识别出凭证类型,以及必要信息,也可以通过点击图片来复制上面字体。该功能通过易语言插件可以完成免费设计。
4.2程序登录界面
当登录界面打开时,软件会从config. ini中查找之前有没有成功登录过软件,若有,则将登录成功的账密写入用户名密码框;若没有,则用户名、密码框为空,等待用户输入。当点击登录按钮时,触发“按钮1_账密验证事件”,在该事件,首先检查账密输入是否规范,若规范,则将使用TCP/IP跟服务端通信通过SQL语句以name字段用户名为条件查询密码,再将查询结果跟密码比对,如果对比成功说明账密正确,此时判断记住密码状态,如为真,将密码储存在cinfig. ini配置文件中以供下次免密登录。
4.3科目管理模块
用户可以通过此模块管理企业所需的会计科目,这些添加的科目将会在填写凭证时进行使用。科目属性指的是科目6大类别,用户可以很方便地对其进行添加。具体如图1所示。
当科目管理页面打开时,会在多线程内触发“刷新科目”事件,在该事件的MySQL数据库中获取所有科目,并写入列表变量中,再通过遍历列表将读入的数据写入QT的TableWidget组件中。用户输入科目代码、科目名称、科目类别等信息,并点击添加科目按钮将触发“按钮一添加科目”事件,先在该事件的数据库中查询此科目代码是否存在,存在即返回“该科目已存在”错误,如果不存在,将通过SQL语句添加至数据库进行存储。
4.4记账模块
用户可以在该模块下,进行管理凭证的增、减、删、改等操作,并且可以通过时间筛选出自己所需的记账凭证,筛选出来的凭证将显示在左边小列表框区域,对用户挑选出所需要的凭证提供帮助,中间区域显示目前选中的凭证,每个凭证将通过唯一凭证号code进行区分,这些内容将储存在一个表中,以对用户后续利用提供帮助。
当用户填制完一张凭证之后,点击“上传”按钮,触发“上传数据库事件”事件以判断关键信息。例如,一级科目,借方或贷方是否空白,如空白将上传失败,当所有信息填制完毕时,逐条传递并上传至添加类的添加记账凭证方法中,此方法通过sql语句将此参数上传至数据库的bookkeeping表中,每一张凭证记录将拥有同样的凭证码。因此,将其全部放置于一张表中也不用担心凭证记录乱的问题。具体如图2所示。
4.5记账助手
使用者仅需通过QQ将凭证进行拍照,服务器接收到这些照片后将其存储在后端,使用者可以选择自动登账,或者对图片点击、复制上面的文字,以进行登账。图片显示选用QT框架自带的QGraphicsscene进行显示,此功能针对非常规票据。常规票据可自动提取关键信息。
用户点击图片上的字体即可完成对字体的复制,无需手动输入至计算机,依靠QGraphicsscene强大的图形项管理功能,将图片通过已有接口转换成文字,再将文字生成透明图形项,覆盖到图片上,并依靠QGraphicsscene的mousePressEvent事件获取鼠标点击的图形项ID,以读取图形项所记录的信息。
5软件的功能优势
本文针对小微企业居家财务办公的需求,设计居家财务软件。该软件解决了传统财务软件臃肿、庞大、昂贵、对环境要求高等问题,功能设计适合居家环境。其解决了网络带宽受限,缺少专业扫描设备,报销时无实物凭证等财务软件使用难题,工作效率高,界面美观,上手难度低,并具备以下实用功能。
(1)科目管理功能,使用者可以根据公司所需,增、减、删、改科目。
(2)无需借助扫描仪等输入设备即可完成报销业务,使办公环境更加灵活。
(3)票据识别功能,软件自动识别出票据关键信息,对于特殊票据,直接点击图片上的文字就能进行复制,以提高工作效率。