[摘 要] 針對(duì)銀行對(duì)賬不及時(shí),工作量大且銀行存款余額調(diào)節(jié)表信息不全和單位內(nèi)控的需要,利用VFP開發(fā)平臺(tái)及SPT遠(yuǎn)程連接技術(shù)開發(fā)一個(gè)計(jì)算機(jī)輔助銀行對(duì)賬系統(tǒng)來代替人工對(duì)賬的工作#65377;
[關(guān)鍵詞] 對(duì)賬;VFP;SPT;開發(fā)
[中圖分類號(hào)]F232[文獻(xiàn)標(biāo)識(shí)碼]A[文章編號(hào)]1673-0194(2007)06-0021-05
銀行對(duì)賬一直是企事業(yè)單位財(cái)務(wù)人員所頭疼的問題,單位越大,銀行賬戶越多,賬目就越紛繁復(fù)雜,由于沒有有效的工具,在月末的靜態(tài)時(shí)點(diǎn)上與銀行賬的不完全一致性使得財(cái)務(wù)人員往往需要花費(fèi)大量的時(shí)間和精力手工進(jìn)行銀行賬的對(duì)消工作,花費(fèi)時(shí)間長(zhǎng),還容易發(fā)生錯(cuò)誤和人為粉飾平衡,而且這種錯(cuò)誤還具有累積效應(yīng),不利于單位內(nèi)控制度的完善#65377;
為了減少對(duì)賬難度,減輕手工對(duì)賬的工作量,增加對(duì)賬的準(zhǔn)確性和防止人為調(diào)節(jié)銀行存款余額表,本文將介紹如何利用VFP(Visual FoxPro)開發(fā)平臺(tái)及SPT(SQL pass-through)遠(yuǎn)程連接技術(shù)來開發(fā)一個(gè)計(jì)算機(jī)輔助銀行對(duì)賬系統(tǒng)以代替人工對(duì)賬的工作#65377;
一#65380;必要性
1. 對(duì)賬不及時(shí),經(jīng)濟(jì)業(yè)務(wù)量越大的單位,這種現(xiàn)象就越普遍,如在校生規(guī)模約12 000人的某高校2006年9月份的銀行日記賬分錄達(dá)1 353筆,銀行出納手工對(duì)消少則一周,多則半月才能提供銀行存款余額調(diào)節(jié)表,若因財(cái)務(wù)人員的錄入錯(cuò)誤則需一張張地翻閱當(dāng)月原始記賬憑證進(jìn)行核對(duì),耗時(shí)費(fèi)力,導(dǎo)致單位領(lǐng)導(dǎo)很難及時(shí)準(zhǔn)確掌握銀行存款信息,進(jìn)而影響對(duì)現(xiàn)金流決策的制定#65377;
2. 銀行存款余額調(diào)節(jié)表信息不完整,或因歷史沿襲,或因制度不健全,或因未達(dá)賬項(xiàng)太多而使調(diào)節(jié)表不堪“重負(fù)”#65377;在筆者調(diào)查的幾所高校中,銀行存款余額調(diào)節(jié)表信息基本如表1所示#65377;
這種調(diào)節(jié)表會(huì)產(chǎn)生兩種情況,一是時(shí)間稍長(zhǎng)一點(diǎn)的未達(dá)賬項(xiàng)或在編制人員換崗后,未達(dá)賬項(xiàng)很難看明白;二是不便于單位內(nèi)控,容易被人為操控來調(diào)節(jié)單位現(xiàn)金流量#65380;速動(dòng)比率,或資金被長(zhǎng)期挪用等#65377;
3. 單位內(nèi)控的需要,如教育系統(tǒng)的教育部#65380;財(cái)政部教財(cái)[2002]2號(hào)《關(guān)于清理檢查直屬高校資金往來情況,加強(qiáng)資金管理,確保資金安全的通知》中規(guī)定:“各校的財(cái)務(wù)處長(zhǎng)對(duì)每月的銀行對(duì)賬單必須認(rèn)真審核,審核簽字后,再交由本校的審計(jì)部門負(fù)責(zé)人復(fù)核簽字,并報(bào)經(jīng)主管財(cái)務(wù)的校(院)長(zhǎng)或總會(huì)計(jì)師審簽后與當(dāng)月的會(huì)計(jì)憑證一同保存”#65377;這就是銀行存款余額調(diào)節(jié)表要進(jìn)行“雙簽”的制度,而通過計(jì)算機(jī)自動(dòng)對(duì)賬生成調(diào)節(jié)表,就如同有的單位實(shí)行了銀行出納和編制調(diào)節(jié)表的崗位分離制度一樣,加強(qiáng)了單位內(nèi)控制度,讓財(cái)務(wù)人員的中心工作轉(zhuǎn)到余額表調(diào)平以后的審核,審核那些超過合理期限#65380;金額大的未達(dá)賬項(xiàng)以及銀行付而單位未付和單位已收而銀行未收的項(xiàng)目#65377;
二#65380;對(duì)賬模式設(shè)計(jì)
外部對(duì)賬#65377;即單位銀行日記賬與銀行對(duì)賬單之間的對(duì)賬#65377;單位所記錄的銀行日記賬如不存在未達(dá)賬項(xiàng),在某一個(gè)時(shí)點(diǎn)應(yīng)全部對(duì)應(yīng)于銀行所記錄的銀行賬,但一般情況下,在月末,此類業(yè)務(wù)可能產(chǎn)生3種狀況:①企業(yè)發(fā)生而銀行未發(fā)生,稱為銀行未達(dá)賬;②銀行發(fā)生而企業(yè)未記錄,稱為企業(yè)未達(dá)賬;③銀行和企業(yè)同時(shí)有記錄發(fā)生,這是銀行對(duì)賬系統(tǒng)要解決的自動(dòng)對(duì)消的第一個(gè)層次,而未對(duì)消的①和②就是當(dāng)月未達(dá)賬項(xiàng)#65377;從目前各大商業(yè)銀行返回給單位的銀行對(duì)賬單信息來看,二者之間的業(yè)務(wù)只能按金額或票據(jù)結(jié)算號(hào)進(jìn)行對(duì)消,而按結(jié)算號(hào)對(duì)消的前提是在記賬憑證中要事先錄入,這往往與會(huì)計(jì)人員審核原始憑證#65380;錄入記賬憑證#65380;銀行付款的做賬習(xí)慣不符,所以銀行對(duì)賬系統(tǒng)首先還是按金額來自動(dòng)對(duì)消#65377;其次,數(shù)據(jù)都是按時(shí)間順序排列的,所以總是時(shí)間最相近的#65380;數(shù)據(jù)相等的先自動(dòng)對(duì)消#65377;金額相同而業(yè)務(wù)不同的,則在自動(dòng)對(duì)消過程中系統(tǒng)會(huì)認(rèn)為已對(duì)消,這就需要手工來進(jìn)行調(diào)整#65377;

紅字對(duì)沖賬#65377;在單位銀行日記賬中,由于支票過期作廢#65380;票據(jù)退回#65380;業(yè)務(wù)取消等經(jīng)濟(jì)業(yè)務(wù),同時(shí)又考慮到不影響當(dāng)期實(shí)際發(fā)生額而導(dǎo)致銀行日記賬中發(fā)生同方向的紅字(電算化中表現(xiàn)為正負(fù)數(shù))沖轉(zhuǎn)記錄,按復(fù)式記賬法的要求不允許一張記賬憑證中只有借或貸,但在會(huì)計(jì)電算化后也常出現(xiàn)此類記賬憑證;另一特殊情況是在國(guó)庫(kù)集中支付下,票據(jù)退回是以負(fù)數(shù)沖減國(guó)庫(kù)借方#65377;這類業(yè)務(wù)的相互對(duì)消,是銀行對(duì)賬系統(tǒng)要解決的自動(dòng)對(duì)消的第二個(gè)層次#65377;
內(nèi)部對(duì)沖賬#65377;在單位銀行日記賬中,由于支票過期作廢#65380;賬務(wù)串戶#65380;票據(jù)退回等經(jīng)濟(jì)業(yè)務(wù)而導(dǎo)致賬務(wù)處理中發(fā)生一借一貸的沖轉(zhuǎn)記錄,這類業(yè)務(wù)的相互對(duì)消,稱為單位內(nèi)部對(duì)沖賬,這在銀行對(duì)賬系統(tǒng)中是無法自動(dòng)對(duì)消的,需要手工來進(jìn)行調(diào)整#65377;
三#65380;系統(tǒng)核心設(shè)計(jì)
在設(shè)計(jì)任何一個(gè)MIS(Management Information System,管理信息系統(tǒng))時(shí),都要事先定義和規(guī)劃好數(shù)據(jù)結(jié)構(gòu),表2和表3是存放銀行對(duì)賬單(以下簡(jiǎn)稱銀方)yh.dbf和銀行日記賬(以下簡(jiǎn)稱我方)self.dbf文件的數(shù)據(jù)結(jié)構(gòu)#65377;

每個(gè)文件設(shè)置8個(gè)字段,目的是希望以最簡(jiǎn)單的結(jié)構(gòu)來反饋出最大化的信息量,以解決銀行存款余額調(diào)節(jié)表信息不完整的問題和滿足計(jì)算機(jī)自動(dòng)對(duì)賬處理的需要#65377;在日記賬(我方)中,借方對(duì)賬標(biāo)志MYTZ1表示我方日記賬中借方金額對(duì)消否,貸方對(duì)賬標(biāo)志MYTZ2表示我方日記賬中貸方金額對(duì)消否;在銀行對(duì)賬單(銀方)中,借方對(duì)賬標(biāo)志TZ1表示銀方對(duì)賬單中借方金額對(duì)消否(銀方借對(duì)應(yīng)我方貸,單位存款在銀行是作為其負(fù)債,單位提款時(shí),銀行賬務(wù)處理是:借記活期存款,貸記庫(kù)存現(xiàn)金),貸方對(duì)賬標(biāo)志TZ2表示銀行對(duì)賬單中貸方金額對(duì)消否(銀方貸對(duì)應(yīng)我方借),對(duì)應(yīng)關(guān)系E-R示意圖如圖1所示#65377;
YH.TZ1 --||-----||-- SELF.MYTZ2
YH.TZ2 --||-----||-- SELF.MYTZ1
圖1
TZ3和MYTZ3是記錄手工調(diào)整的痕跡,主要目的是考慮存在大量手工調(diào)整后造成數(shù)據(jù)不平衡而無法查詢#65377;這3組標(biāo)志是在系統(tǒng)運(yùn)行時(shí)使用,平時(shí)導(dǎo)入對(duì)賬數(shù)據(jù)時(shí),我方日記賬和銀方對(duì)賬單只需提供前5項(xiàng)內(nèi)容即可#65377;
(一)數(shù)據(jù)格式轉(zhuǎn)換
目前市場(chǎng)上主流賬務(wù)核算系統(tǒng)的賬務(wù)數(shù)據(jù)和各大商業(yè)銀行提供的電子對(duì)賬單都能導(dǎo)出成Excel格式的文件,若單位開通了網(wǎng)上銀行結(jié)算,如工商銀行的網(wǎng)銀就能直接下載每月的Excel格式電子對(duì)賬單數(shù)據(jù),考慮到系統(tǒng)的通用性和外部接口,按前述設(shè)計(jì)完主數(shù)據(jù)文件結(jié)構(gòu)后,則需開發(fā)一個(gè)既能將Excel格式的文件轉(zhuǎn)換成對(duì)賬系統(tǒng)的DBF文件格式,又能滿足數(shù)據(jù)結(jié)構(gòu)定義的轉(zhuǎn)換工具#65377;這可分為兩個(gè)步驟實(shí)施,首先是將Excel文件轉(zhuǎn)換成DBF文件,再將DBF文件改成約定的數(shù)據(jù)結(jié)構(gòu)#65377;源程序代碼如下:
Append From Excel文件名 Type Xl8 Sheet ''
Copy To (s2)
Use (s2) Alias vv_disp開始轉(zhuǎn)換數(shù)據(jù)結(jié)構(gòu)
SELECT vv_disp
GO top
i=fcount()
for m=1 to i
if field(m)==“A”
ALTER table vv_disp RENAME COLUMN A TO RQ 改字段名
ALTER table vv_disp alter COLUMN RQ d改字段屬性
EXIT
ENDIF
ENDFOR
轉(zhuǎn)換時(shí)有兩點(diǎn)注意事項(xiàng):一是Excel文件不要任何表頭信息,直接為5列數(shù)據(jù);二是此段程序僅是轉(zhuǎn)換第一個(gè)字段的源代碼,其余類同#65377;
(二)SPT遠(yuǎn)程連接
目前主流財(cái)務(wù)核算軟件的后臺(tái)數(shù)據(jù)庫(kù)基本是SQL Server和Oracle(只要提供ODBC接口都可以),其在VFP中通過SPT技術(shù)連接的程序源代碼是:
Con_sql=SQLSTRINGCONNECT(“DRIVER={SQL SERVER};SERVER=CWC;UID=SA;PWD=JPYE;APP=MICROSOFT?VISUAL FOXPRO?;DATABASE=ZW”)定義連接Sql Sserver句柄
其中:cwc為賬務(wù)服務(wù)器名;SA為Sql Sserver的用戶名,其口令為JPYE;數(shù)據(jù)庫(kù)名為ZW#65377;
sqlsetprop(0,“displogin”,3)
con_oracle=sqlstringconnect(“DRIVER={Microsoft ODBC for Oracle};UID=CW;PWD=JPYE;SERVER=ORA_SERVER;”) 定義連接Oracle句柄
其中:CW為數(shù)據(jù)庫(kù)用戶名;JPYE為數(shù)據(jù)庫(kù)口令;ORA_SERVER為賬務(wù)服務(wù)器名#65377;
if con_oracle<=0
messagebox(“連接賬務(wù)服務(wù)器失敗!”,64,“錯(cuò)誤信息”)
return
else
messagebox(“連接賬務(wù)服務(wù)器成功!”,64,“成功信息”)
endif
con_exe = SQLEXEC(CON_ORACLE,“SELECT
PZH,ZY,J_MYSELF,D_MYSELF,subj FROM憑證庫(kù)”,
“TEMP2”)取記賬憑證表中明細(xì)數(shù)據(jù)
通過以上程序可以讓對(duì)賬系統(tǒng)直接連接到賬務(wù)核算系統(tǒng)的數(shù)據(jù)庫(kù)來自動(dòng)獲取我方每月的日記賬明細(xì)數(shù)據(jù),這樣每月只要把銀方對(duì)賬單下載回來,通過系統(tǒng)提供的轉(zhuǎn)換工具轉(zhuǎn)換成DBF文件導(dǎo)入對(duì)賬系統(tǒng)就可實(shí)現(xiàn)自動(dòng)對(duì)賬了#65377;
(三)對(duì)賬處理
這里的對(duì)賬是指系統(tǒng)自動(dòng)對(duì)賬層次的設(shè)計(jì),屬對(duì)賬模式中的第一層次和第二層次,而在第一層次中也包括兩部分設(shè)計(jì):第一部分為銀方借和我方貸對(duì)消,即處理對(duì)賬標(biāo)志TZ1和MYTZ2,如果能對(duì)消就同時(shí)作上標(biāo)志‘1’,否則不予處理;第二部分為銀方貸和我方借,即處理對(duì)賬標(biāo)志TZ2和MYTZ1,如果能對(duì)消就同時(shí)作上標(biāo)志‘1’,否則不予處理#65377;下面是第一層次的第一部分處理的程序源代碼,其余比照進(jìn)行#65377;
Local isrec,selfj,selfd,selfrecno,yhrecno
Select 2
Use yh
Select 1
Self
Go Top
isrec=Reccount( )
For m=1 To isrec
Select 1
Go m
selfd=d_myself
selfrecno=Recno( )
Select 2
Go Top
Locate For j_yhje=selfd
k=Reccount( )
For N=1 To k
If Found( ) And Len(Alltrim(TZ1))=0
yhrecno=Recno( )
Update yh Set TZ1=“1” Where Recno
( )=yhrecno
Update self Set MYTZ2=‘1’Where Recno( )=selfrecno
Exit
Endif
Continue
Endfor
Endfor
在第二層次中也要分3部分設(shè)計(jì),分別處理我方日記賬中借方正負(fù)數(shù)對(duì)沖賬#65380;貸方正負(fù)數(shù)對(duì)沖賬以及國(guó)庫(kù)支付中借方正負(fù)數(shù)對(duì)沖賬,表現(xiàn)在數(shù)值上是絕對(duì)值相等#65377;下面是處理借方正負(fù)數(shù)對(duì)消的源代碼,其余處理方法類同#65377;
Select 1
Go Top
isrec=Reccount( )
For m=1 To isrec
Go m
selfj=j_myself
selfrecno=Recno( )
Select 3
Use self again
Go Top
Locate For j_myself=selfj*(-1)
k=Reccount( )
For N=1 To k
If Found( ) And Alltrim(MYTZ1)<>‘1’
yhrecno=Recno( )
Update self Set MYTZ1=‘1’ Where Recno( )=selfrecno Or Recno( )=yhrecno
Exit
Endif
Continue
Endfor
Endfor
Select 3
Use
通過以上程序的自動(dòng)對(duì)消處理后,所有數(shù)值相等且符合第一#65380;第二層次對(duì)賬邏輯關(guān)系的賬務(wù)數(shù)據(jù)已全部對(duì)消,當(dāng)月對(duì)賬工作在瞬間即基本完成,并且調(diào)節(jié)表也一定是平衡的#65377;
(四)手工調(diào)整
按前述對(duì)賬模式設(shè)計(jì)中提及的兩種需手工調(diào)整的情況進(jìn)行人工干預(yù),實(shí)際上是對(duì)經(jīng)過自動(dòng)對(duì)賬處理后的修正和補(bǔ)充,所以手工調(diào)整是對(duì)賬系統(tǒng)中必不可少的功能之一#65377;在工作實(shí)踐中,實(shí)際情況可能還遠(yuǎn)不止以上兩種原因?qū)е碌男杼峁┦止ふ{(diào)整功能,如財(cái)務(wù)人員可能為省事而把多張金額小且數(shù)值相等的銀行回單合并記賬等#65377;同時(shí)我們也考慮到如存在大量手工調(diào)整的記錄時(shí),操作人員有可能調(diào)錯(cuò),所以對(duì)手工調(diào)整的記錄都留有痕跡(TZ3和MYTZ3),并提供一個(gè)表單窗口供查詢和試算平衡之用#65377;手工調(diào)整可設(shè)置四項(xiàng)調(diào)整功能:全部(顯示我方借貸和銀方借貸全部明細(xì))#65380;按付款方向(顯示自動(dòng)對(duì)賬后的我方貸和銀方借)#65380;按收款方向(顯示自動(dòng)對(duì)賬后的我方借和銀方貸)#65380;調(diào)整查詢(顯示經(jīng)手工調(diào)整的記錄)#65377;按付款方向調(diào)整的實(shí)際運(yùn)行效果圖如圖2#65377;


(五)銀行存款余額調(diào)節(jié)表的生成
按照銀行存款余額調(diào)節(jié)表的平衡公式:
(上期我收銀未收-上期我付銀未付)+銀方期末余額+我收銀未收-我付銀未付=(上期銀收我未收-上期銀付我未付)+我方期末余額+銀收我未收-銀付我未付
其中我收銀未收#65380;我付銀未付#65380;銀收我未收#65380;銀付我未付就是我們?cè)诋?dāng)月自動(dòng)對(duì)賬和手工調(diào)整后找出的未達(dá)賬項(xiàng),在此增設(shè)一個(gè)存放我方和銀方期末余額的表yek.dbf,按上述平衡公式計(jì)算后就可得到調(diào)節(jié)表了,這樣自動(dòng)生成的調(diào)節(jié)表就可以按需要設(shè)置憑證號(hào)#65380;摘要等必要的補(bǔ)充信息,使調(diào)節(jié)表信息豐富和充實(shí)起來,也就不會(huì)出現(xiàn)看不懂的情況,實(shí)際運(yùn)行如圖3所示#65377;
四#65380;其他輔助設(shè)計(jì)
通過上述系統(tǒng)核心設(shè)計(jì)的介紹,一個(gè)銀行對(duì)賬系統(tǒng)已基本完成#65377;但這僅僅是一個(gè)單一賬戶的對(duì)賬系統(tǒng),即一次只能存放一個(gè)賬戶的對(duì)賬數(shù)據(jù)#65377;如何滿足多賬戶的對(duì)賬需求呢?為此我們可以再增設(shè)3個(gè)功能:結(jié)轉(zhuǎn)下月#65380;數(shù)據(jù)備份/恢復(fù)及數(shù)據(jù)清理功能#65377;如7月份××賬戶調(diào)節(jié)表生成完后,將未達(dá)賬項(xiàng)結(jié)轉(zhuǎn)下月并備份,同時(shí)清除系統(tǒng)中所有數(shù)據(jù),再導(dǎo)入當(dāng)月另一賬戶數(shù)據(jù)進(jìn)行處理#65380;月結(jié)轉(zhuǎn)和備份,到8月份時(shí),恢復(fù)××賬戶7月未達(dá)賬項(xiàng)數(shù)據(jù)進(jìn)行對(duì)賬處理,如此類推#65377;這樣系統(tǒng)的兼容性就大大增強(qiáng),擁有處理多套賬戶的功能了#65377;同時(shí)所有的數(shù)據(jù)處理都是在賬務(wù)核算系統(tǒng)之外(SPT連接也是只讀取數(shù)),所以對(duì)賬務(wù)核算系統(tǒng)中的數(shù)據(jù)沒有任何影響,具有很高的安全性#65377;系統(tǒng)基本功能如圖4所示#65377;
通過對(duì)這套系統(tǒng)的開發(fā)和設(shè)計(jì),不但可以為本單位節(jié)約一筆可觀的軟件購(gòu)置費(fèi)用及后續(xù)的服務(wù)費(fèi),而且完全能夠隨時(shí)隨地按照本單位的實(shí)際需要進(jìn)行調(diào)整和優(yōu)化,如國(guó)庫(kù)集中支付中的正負(fù)數(shù)對(duì)消問題,也能夠及時(shí)發(fā)現(xiàn)賬務(wù)處理中一些不規(guī)范做法,夯實(shí)單位會(huì)計(jì)電算化基礎(chǔ),為完善資金內(nèi)控制度奠定一定基礎(chǔ)#65377;
主要參考文獻(xiàn)
[1] 夏冬林等,財(cái)務(wù)與會(huì)計(jì)[M]. 北京:經(jīng)濟(jì)科學(xué)出版社,2002:63.
[2] 姜葵. 淺析銀行存款余額調(diào)節(jié)表的審計(jì)[J]. 財(cái)會(huì)通訊:綜合版, 2006,(2):58.
[3] 馬學(xué)國(guó). 銀行對(duì)賬應(yīng)注意的問題[J]. 財(cái)會(huì)通訊:會(huì)計(jì),2006,(2):58.
[4] 財(cái)政部. 金融企業(yè)會(huì)計(jì)制度[S]. 2001.
[5] 合力工作室. Visual FoxPro 6.0高級(jí)編程[M]. 北京:清華大學(xué)出版社,1999:273-301.