艾力皮達(dá)爾·艾尼瓦爾 陳晨
關(guān)鍵詞:財(cái)務(wù)軟件;小微企業(yè);功能設(shè)計(jì)
會(huì)計(jì)信息化是企業(yè)財(cái)務(wù)工作的必然趨勢(shì),隨著居家辦公模式的產(chǎn)生,企業(yè)的財(cái)務(wù)軟件也需要滿足居家辦公需求。對(duì)于小微企業(yè)來(lái)說(shuō),其居家辦公財(cái)務(wù)軟件與大企業(yè)的需求和成本預(yù)算還存在一定的差距。因此,小微企業(yè)亟須設(shè)計(jì)符合自身需求的居家財(cái)務(wù)軟件。
1小微企業(yè)財(cái)務(wù)軟件的需求分析
1.1免費(fèi)使用
主流的財(cái)務(wù)軟件價(jià)格過(guò)于昂貴,價(jià)格幾千元到幾萬(wàn)元不等,一些財(cái)務(wù)軟件使用計(jì)算機(jī)進(jìn)行收費(fèi),且每一臺(tái)計(jì)算機(jī)都需要購(gòu)買軟件授權(quán)才能使用[1]。考慮到小微企業(yè)的經(jīng)濟(jì)成本因素,應(yīng)設(shè)計(jì)一款免費(fèi)供小微企業(yè)使用的財(cái)務(wù)軟件。
1.2開源使用
通常財(cái)務(wù)軟件都是閉源軟件,軟件提供者同時(shí)負(fù)責(zé)軟件的后期維護(hù)、改錯(cuò),以及功能更新[2]。對(duì)于小微企業(yè)來(lái)說(shuō),功能的要求并不是很復(fù)雜,但隨著經(jīng)營(yíng)業(yè)績(jī)的提升,企業(yè)對(duì)財(cái)務(wù)功能的使用則需要進(jìn)一步優(yōu)化。但考慮到維護(hù)和更新成本因素,若設(shè)計(jì)一款小微企業(yè)可以自主維護(hù)和更新的財(cái)務(wù)軟件,則更符合小微企業(yè)的需求。
1.3內(nèi)存占用小
小微企業(yè)的辦公硬件有一定局限性,常用的主流財(cái)務(wù)軟件占用內(nèi)存空間巨大,對(duì)居家辦公并不友好。因此,小微企業(yè)需要一種輕便、可以隨身攜帶儲(chǔ)存設(shè)備的財(cái)務(wù)軟件。
1.4網(wǎng)絡(luò)環(huán)境要求低
小微企業(yè)要實(shí)現(xiàn)隨時(shí)隨地的財(cái)務(wù)辦公,就不能使用僅允許局域網(wǎng)訪問(wèn)的財(cái)務(wù)軟件[3]。即使依靠VPN訪問(wèn),網(wǎng)絡(luò)環(huán)境的要求也較高。因此,需要一種可以在任何網(wǎng)絡(luò)環(huán)境下隨插隨用的財(cái)務(wù)軟件。
2系統(tǒng)可行性分析
2.1可行性分析
全球疫情防控背景下,居家辦公已成為常見(jiàn)的辦公模式[4]。成本預(yù)算更低的微小型企業(yè)迫切需要小型化、容易上手的財(cái)務(wù)軟件[5]。為了不受場(chǎng)地限制隨處辦公,本文采用C/S架構(gòu),使用簡(jiǎn)單易懂的QT框架來(lái)開發(fā)界面。對(duì)于微小型企業(yè)而言,不可能有專門崗位負(fù)責(zé)維護(hù),因此采用易學(xué)的編程語(yǔ)言Python作為程序開發(fā)語(yǔ)言。
2.2架構(gòu)選擇
C/S架構(gòu)(客戶端一服務(wù)器架構(gòu))采用上下兩層結(jié)構(gòu),服務(wù)器負(fù)責(zé)數(shù)據(jù)存儲(chǔ)和管理,客戶端完成與客戶交互任務(wù),其優(yōu)點(diǎn)是網(wǎng)絡(luò)流量低。因此,若使用者需要將服務(wù)器搭建到服務(wù)器上,這不需要過(guò)高的寬帶就能帶來(lái)流暢的體驗(yàn),維護(hù)容易,UI美觀,并降低服務(wù)器租金成本。其缺點(diǎn)為當(dāng)客戶端數(shù)量較多時(shí)維護(hù)困難,但一般小微型企業(yè)使用人數(shù)較少,對(duì)于需要居家辦公的小微型企業(yè)來(lái)說(shuō),該架構(gòu)優(yōu)勢(shì)明顯。
2.3編程語(yǔ)言與數(shù)據(jù)庫(kù)選用
Python的優(yōu)點(diǎn)是學(xué)習(xí)成本低,生態(tài)豐富,使用者僅需短時(shí)間學(xué)習(xí)即能自行添加其他定制功能。比如,改變各種報(bào)表展現(xiàn)格式使其更符合自己的審美。Python可以使財(cái)務(wù)人員在短時(shí)間內(nèi)就能完成對(duì)軟件的維護(hù),不需要安排專門人員。另外,本文選用的MySQL關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng),也是財(cái)務(wù)系統(tǒng)的常用數(shù)據(jù)存儲(chǔ)服務(wù)器,其優(yōu)點(diǎn)是速度快,生態(tài)豐富,開放源代碼免費(fèi)。
2.4權(quán)限分析
一個(gè)基本的財(cái)務(wù)軟件,需要有明確的權(quán)限劃分。對(duì)于遠(yuǎn)程辦公來(lái)說(shuō),需要更明確的權(quán)限劃分。權(quán)限是指在客戶端與客戶交互時(shí)允許客戶操作的范圍,根據(jù)調(diào)研結(jié)果,僅保留了一些必要的權(quán)限,即憑證錄入、憑證審核、憑證刪除等。管理員可以給予各人員相應(yīng)權(quán)限。
2.5界面框架選用
界面框架使用同樣開源的QT框架,其特點(diǎn)是易上手,自帶組件美觀。QT是一個(gè)開源的框架,完全免費(fèi),使用成本低。QT擁有眾多豐富友好的界面庫(kù),其操作便捷。
3小微企業(yè)財(cái)務(wù)軟件的設(shè)計(jì)
3.1功能設(shè)計(jì)
3.1.1復(fù)式記賬功能
復(fù)式記賬法可以全面反映各項(xiàng)經(jīng)濟(jì)業(yè)務(wù)的全貌,并且可以利用會(huì)計(jì)要素之間內(nèi)在聯(lián)系與試算平衡來(lái)檢查記錄的準(zhǔn)確性,是一種較完善的記賬方式,可以通過(guò)編程實(shí)現(xiàn),快速進(jìn)行試算平衡,并可以通過(guò)各種絢麗報(bào)表展示經(jīng)濟(jì)業(yè)務(wù)全貌。
3.1.2財(cái)務(wù)報(bào)表分析功能
報(bào)表分析主要針對(duì)資產(chǎn)負(fù)債表及利潤(rùn)表,通過(guò)比率分析法、比較分析法、結(jié)構(gòu)分析法進(jìn)行分析后輸出文字或者圖形等,也可以通過(guò)編程實(shí)現(xiàn),并提供使用者使其做出決策,結(jié)合matlab模塊,使輸出更直觀。
3.1.3MySQL數(shù)據(jù)關(guān)系存儲(chǔ)
MySQL是一個(gè)關(guān)系型的數(shù)據(jù)庫(kù)管理系統(tǒng),將財(cái)務(wù)數(shù)據(jù)儲(chǔ)存在相應(yīng)表中,而不是都放在一個(gè)大倉(cāng)庫(kù)內(nèi),這大大提高了靈活性,可以通過(guò)SQL命令精確獲取某一時(shí)間的記賬憑證,可以將會(huì)計(jì)科目?jī)?chǔ)存在數(shù)據(jù)庫(kù)中,可以隨時(shí)添加二級(jí)科目,并且MySQL提供豐富的查詢語(yǔ)句可以精確查找到需要的科目。
3.1.4C/S架構(gòu)傳輸
在C/S架構(gòu)下,客戶機(jī)完成與客戶的交互,再由服務(wù)端進(jìn)行存儲(chǔ),服務(wù)端對(duì)數(shù)據(jù)提供安全保護(hù)以及保證數(shù)據(jù)完整性,并允許多個(gè)客戶機(jī)同時(shí)訪問(wèn)服務(wù)器。這種架構(gòu)下,訪問(wèn)者必須安裝特定客戶端,并且客戶端源代碼通過(guò)編譯、加殼,安全性很高。而對(duì)于B/S架構(gòu),雖然使用者可以隨時(shí)隨地通過(guò)瀏覽器訪問(wèn)服務(wù)端,但安全性得不到保障。由于前端實(shí)務(wù)邏輯使用JavaScript編寫而無(wú)法進(jìn)行隱藏,任何人都可以對(duì)其進(jìn)行反編譯,以讀取加密邏輯。反觀C/S,只要客戶端不泄露,就不會(huì)造成數(shù)據(jù)丟失。在目前技術(shù)下使用此架構(gòu),通過(guò)TCP7IP傳輸,相對(duì)容易把握,成本也最低。
3.2數(shù)據(jù)庫(kù)設(shè)計(jì)
3.2.1用戶表
記賬軟件將通過(guò)此表判別登人用戶權(quán)限身份,具體為權(quán)限代號(hào)0,代表管理員1,代表出納2,代表會(huì)計(jì)主管等。具體如表1所列。
3.2.2會(huì)計(jì)科目表
使用者可以通過(guò)軟件科目管理功能將企業(yè)所需的會(huì)計(jì)科目添加到此表中,軟件是根據(jù)科目代號(hào)位數(shù)分辨科目級(jí)別,type字段為科目類別,具體有資產(chǎn)類科目、負(fù)債類科目、所有者權(quán)益類科目,成本類科目、損益類科目。以數(shù)字0—5代表科目類別,軟件通過(guò)試算平衡生成各類報(bào)表。具體如表2所列。
3.2.3記賬憑證
記賬軟件將所有記賬憑證記錄到該表中,根據(jù)此表生成各類報(bào)表,使用者可以通過(guò)軟件自帶的記賬憑證管理功能對(duì)此表進(jìn)行增、刪、改等操作。軟件通過(guò)code來(lái)判別哪些記錄在一條憑證上,這并不影響速度或者可閱讀性。如果不特別標(biāo)注code字段,軟件將自己選擇合適的代碼以區(qū)分不同憑證。Dr,Cr兩條字段分別記錄借方和貸方余額。Totalaccount,smallaccount將記錄一級(jí)科目、二級(jí)科目的中文名稱,不以數(shù)字命名是為了提高數(shù)據(jù)庫(kù)此表可閱讀性。具體如表3所列。
3.2.4原始憑證圖片表
原始憑證圖片來(lái)源可以是手機(jī)上傳,也可以是通過(guò)軟件拖拽上傳。拖拽上傳時(shí),軟件會(huì)通過(guò)內(nèi)置OCR接口將圖片轉(zhuǎn)換為文字,并通過(guò)json格式儲(chǔ)存在state字段里,這既節(jié)省了OCR識(shí)別次數(shù),又節(jié)省資源。這些坐標(biāo)信息通過(guò)QT的Qgraphicsscene展現(xiàn)在用戶面前,使用戶可以通過(guò)在圖片上點(diǎn)擊實(shí)現(xiàn)圖片文字的復(fù)制操作。Image字段儲(chǔ)存圖片的字節(jié)集,以供查閱,并且在此系統(tǒng)下,使用者可以將圖片上傳至服務(wù)器。具體如表4所列。
4功能模塊設(shè)計(jì)與實(shí)現(xiàn)
4.1拍照后將憑證上傳至服務(wù)器
用戶只需用手機(jī)將憑證拍攝并發(fā)送至指定群,憑證將添加到服務(wù)器,配合“憑證填制助手”功能,可自動(dòng)識(shí)別出憑證類型,以及必要信息,也可以通過(guò)點(diǎn)擊圖片來(lái)復(fù)制上面字體。該功能通過(guò)易語(yǔ)言插件可以完成免費(fèi)設(shè)計(jì)。
4.2程序登錄界面
當(dāng)?shù)卿浗缑娲蜷_時(shí),軟件會(huì)從config. ini中查找之前有沒(méi)有成功登錄過(guò)軟件,若有,則將登錄成功的賬密寫入用戶名密碼框;若沒(méi)有,則用戶名、密碼框?yàn)榭?,等待用戶輸入。?dāng)點(diǎn)擊登錄按鈕時(shí),觸發(fā)“按鈕1_賬密驗(yàn)證事件”,在該事件,首先檢查賬密輸入是否規(guī)范,若規(guī)范,則將使用TCP/IP跟服務(wù)端通信通過(guò)SQL語(yǔ)句以name字段用戶名為條件查詢密碼,再將查詢結(jié)果跟密碼比對(duì),如果對(duì)比成功說(shuō)明賬密正確,此時(shí)判斷記住密碼狀態(tài),如為真,將密碼儲(chǔ)存在cinfig. ini配置文件中以供下次免密登錄。
4.3科目管理模塊
用戶可以通過(guò)此模塊管理企業(yè)所需的會(huì)計(jì)科目,這些添加的科目將會(huì)在填寫憑證時(shí)進(jìn)行使用。科目屬性指的是科目6大類別,用戶可以很方便地對(duì)其進(jìn)行添加。具體如圖1所示。
當(dāng)科目管理頁(yè)面打開時(shí),會(huì)在多線程內(nèi)觸發(fā)“刷新科目”事件,在該事件的MySQL數(shù)據(jù)庫(kù)中獲取所有科目,并寫入列表變量中,再通過(guò)遍歷列表將讀入的數(shù)據(jù)寫入QT的TableWidget組件中。用戶輸入科目代碼、科目名稱、科目類別等信息,并點(diǎn)擊添加科目按鈕將觸發(fā)“按鈕一添加科目”事件,先在該事件的數(shù)據(jù)庫(kù)中查詢此科目代碼是否存在,存在即返回“該科目已存在”錯(cuò)誤,如果不存在,將通過(guò)SQL語(yǔ)句添加至數(shù)據(jù)庫(kù)進(jìn)行存儲(chǔ)。
4.4記賬模塊
用戶可以在該模塊下,進(jìn)行管理憑證的增、減、刪、改等操作,并且可以通過(guò)時(shí)間篩選出自己所需的記賬憑證,篩選出來(lái)的憑證將顯示在左邊小列表框區(qū)域,對(duì)用戶挑選出所需要的憑證提供幫助,中間區(qū)域顯示目前選中的憑證,每個(gè)憑證將通過(guò)唯一憑證號(hào)code進(jìn)行區(qū)分,這些內(nèi)容將儲(chǔ)存在一個(gè)表中,以對(duì)用戶后續(xù)利用提供幫助。
當(dāng)用戶填制完一張憑證之后,點(diǎn)擊“上傳”按鈕,觸發(fā)“上傳數(shù)據(jù)庫(kù)事件”事件以判斷關(guān)鍵信息。例如,一級(jí)科目,借方或貸方是否空白,如空白將上傳失敗,當(dāng)所有信息填制完畢時(shí),逐條傳遞并上傳至添加類的添加記賬憑證方法中,此方法通過(guò)sql語(yǔ)句將此參數(shù)上傳至數(shù)據(jù)庫(kù)的bookkeeping表中,每一張憑證記錄將擁有同樣的憑證碼。因此,將其全部放置于一張表中也不用擔(dān)心憑證記錄亂的問(wèn)題。具體如圖2所示。
4.5記賬助手
使用者僅需通過(guò)QQ將憑證進(jìn)行拍照,服務(wù)器接收到這些照片后將其存儲(chǔ)在后端,使用者可以選擇自動(dòng)登賬,或者對(duì)圖片點(diǎn)擊、復(fù)制上面的文字,以進(jìn)行登賬。圖片顯示選用QT框架自帶的QGraphicsscene進(jìn)行顯示,此功能針對(duì)非常規(guī)票據(jù)。常規(guī)票據(jù)可自動(dòng)提取關(guān)鍵信息。
用戶點(diǎn)擊圖片上的字體即可完成對(duì)字體的復(fù)制,無(wú)需手動(dòng)輸入至計(jì)算機(jī),依靠QGraphicsscene強(qiáng)大的圖形項(xiàng)管理功能,將圖片通過(guò)已有接口轉(zhuǎn)換成文字,再將文字生成透明圖形項(xiàng),覆蓋到圖片上,并依靠QGraphicsscene的mousePressEvent事件獲取鼠標(biāo)點(diǎn)擊的圖形項(xiàng)ID,以讀取圖形項(xiàng)所記錄的信息。
5軟件的功能優(yōu)勢(shì)
本文針對(duì)小微企業(yè)居家財(cái)務(wù)辦公的需求,設(shè)計(jì)居家財(cái)務(wù)軟件。該軟件解決了傳統(tǒng)財(cái)務(wù)軟件臃腫、龐大、昂貴、對(duì)環(huán)境要求高等問(wèn)題,功能設(shè)計(jì)適合居家環(huán)境。其解決了網(wǎng)絡(luò)帶寬受限,缺少專業(yè)掃描設(shè)備,報(bào)銷時(shí)無(wú)實(shí)物憑證等財(cái)務(wù)軟件使用難題,工作效率高,界面美觀,上手難度低,并具備以下實(shí)用功能。
(1)科目管理功能,使用者可以根據(jù)公司所需,增、減、刪、改科目。
(2)無(wú)需借助掃描儀等輸入設(shè)備即可完成報(bào)銷業(yè)務(wù),使辦公環(huán)境更加靈活。
(3)票據(jù)識(shí)別功能,軟件自動(dòng)識(shí)別出票據(jù)關(guān)鍵信息,對(duì)于特殊票據(jù),直接點(diǎn)擊圖片上的文字就能進(jìn)行復(fù)制,以提高工作效率。