[摘 要] 本文簡要分析了資產負債表的編制方法,提出了運用VFP自定義函數進行編程獲得實時資產負債表的思路,并提供了設計程序。
[關鍵詞] VFP 資產負債表;函數;數據庫
[中圖分類號]F232[文獻標識碼]A[文章編號]1673-0194(2007)04-0016-04
1 引 言
資產負債表是三大財務報表之一,通常在月末或年末進行編制,它綜合系統地反映了企業在某一特定日期的財務狀況。當前,在大多數會計軟件中都有專門的財務報表模塊,可以自動生成資產負債表,但這種自動處理通常在期末日常業務處理完畢,結賬后進行。隨著信息時代的來臨,市場競爭的加劇,報表使用者希望隨時了解企業當前的財務狀況,而通過財務報表模塊生成的資產負債表只能提供上一會計期間的財務狀況信息,已不能滿足報表使用者的需要。在不變更原有數據庫系統,不增加管理成本的前提下,可以利用一些簡單的方法和技巧來解決這一問題,本文就利用VFP的自定義函數提供了一種解決方案。
2 資產負債表的數據流分析
資產負債表是根據資產、負債和所有者權益之間的相互關系(即資產=負債+所有者權益),按照一定的分類標準和一定的順序,把企業一定時期的資產、負債和所有者權益各項目予以適當排列,并對日常工作中形成的大量數據進行高度濃縮整理后編制而成的。在不同的系統中,由于會計處理流程不同,資產負債表的數據來源也不盡相同。
在手工會計信息系統中,資產負債表的數據來源有以下幾種:直接根據總分類賬戶余額填列;根據若干個總分類賬戶余額分析計算填列;根據明細分類賬余額填列;根據若干個明細分類賬戶余額分析計算填列;根據報表項目之間的關系計算填列。手工會計信息系統下資產負債表的數據來源如圖1所示。

在計算機會計信息系統中,數據以文件的形式存儲,資產負債表由報表子系統生成。在會計電算化過程中,賬務處理子系統根據審核后的記賬憑證登記相應的賬簿,生成賬簿文件,而結賬后的賬簿文件就成為資產負債的數據來源和會計報表子系統編制資產負債表的依據。計算機會計信息系統下資產負債表的數據來源如圖2所示。

綜上所述,可以將資產負債表的數據來源歸納為兩類:一類是來自賬戶余額,另一類是表內數據。在計算機會計信息系統中,賬簿文件是賬務處理子系統與報表子系統的接口,如果將賬簿文件和資產負債表文件設計為數據庫文件,那么通過簡單的編程處理就可以隨時隨地調用這兩個數據庫中的數據,生成資產負債表,而不必等到月末或年末。這種實時生成的資產負債表可以更加方便靈活地為報表使用者提供在決策中有用的信息,同時不會增加數據的冗余,有利于提高工作效率和管理水平。
3 資產負債表程序設計
3. 1程序設計思路
根據資產負債表的數據來源可以設計兩個取數函數來完成資產負債表的運算。一個函數是從余額庫中取數,定義為YE( ),另一個是從資產負債表中取數,定義為BB
( )。同時,建立兩個數據庫,即余額庫和報表庫。余額庫用來存儲和管理各級會計科目的年初余額和期末余額,根據科目的性質不同,余額有借貸之分;報表庫用來存儲和管理資產負債表數據。因為資產負債表屬于通用會計報表,其格式和填列方法是固定的,因此在進行報表庫的結構設計時可以對資產負債表進行格式設計,將需要填列的項目及行次作為記錄在報表庫中進行填列,并運用兩個取數函數編輯定義各項目的填列公式,進行存儲,這樣在以后的工作中,只需進行取數運算計算各項目的年初余額和期末余額即可。余額庫與報表庫的結構如表1、表2所示。
編制資產負債表的核心就是如何進行各項目年初余額和期末余額的計算。對于需從賬戶余額中取數填列的項目可以使用從余額庫取數函數YE( ),其參數是科目代碼。如資產負債表左邊第一項“貨幣資金”的填列公式可以定義為YE(1001)+YE(1002)+YE(1009),YE(1001)代表從余額庫中取科目編碼為1001的“現金”科目的余額,YE(1002)代表從余額庫中取科目編碼為1002的“銀行存款”科目的余額,YE(1009)代表從余額庫中取科目編碼為1009的“其他貨幣資金”科目的余額。在主程序中通過宏代換對變量賦值,如TMP=GS,將定義好的含有YE( )函數的公式運算值賦值給變量TMP,然后在資產負債表中進行填列。在定義函數YE( )時,由于有時要求取年初余額,有時要求取期末余額,故可定義一個變量OMBZ,并賦以初始值.F.,表示當QMBZ的值為.F.時,YE( )函數取得余額值為年初余額,否則,當QMBZ的值為.T.時,YE( )函數取得的余額值為期末余額。

對于需從資產負債表中取數的填列項目可以同樣設計一個表內計算公式函數BB( ),其參數是資產負債表中的行次代碼。當程序運行到TMP=GS時,宏代換命令將含有函數BB( )的計算結果賦值給變量TMP。BB( )函數的計算需要調動“表內計算公式”程序來取得表中已經填列的各項目的年初余額或期末余額,然后進行BB( )之間的運算,其運算結果賦值給TMP,在資產負債表中填列。例如,計算資產負債表的右邊中的“流動負債合計”時,定義的公式是BB(46)+BB(47)+…+BB(59),當程序運行到TMP=GS時,將通過程序“表內計算公式”分別計算BB(46),BB(47),…,BB(59)的各個函數值,然后對這些函數值進行求和,將結果賦值給TMP,在“流動負債合計”這條記錄相對應的字段NCYE2或QMYE2中進行填列。
這樣通過兩個取數函數和兩個數據庫就可以隨時獲得資產負債表,進行財務分析。
3. 2具體程序設計
3. 2. 1主程序
PRIV QMBZ計算期末余額標志
RET=MESSAGEBOX(“計算資產負債表有關數據,是否繼續?”,1+32)
IF RET<>1用戶按取消按鈕
RETURN
ENDIF
*計算負債表的左邊
USE FZB IN 0 ALIAS FZB
USE YEK IN 0 ALIAS YEK
GO TOP
SCAN
QMBZ=.F.取年初余額
GS=TRIM(ZCGS)
IF !EMPTY(GS)
REC=RECN()
TMP=GS
SELE FZB
GO REC
REPL NCYE1 WITH TMP
QMBZ=.T.計算期末余額
TMP=GS
SELE FZB
GO REC
REPL QMYE1 WITH TMP
ENDIF
ENDSCAN
*計算負債表的右邊
GO TOP
SCAN
QMBZ=.F.
GS=TRIM(FZGS)
IF !EMPTY(GS)
REC=RECN()
TMP=GS
SELE FZB
GO REC
REPL NCYE2 WITH TMP
QMBZ=.T.
TMP=GS
SELE FZB
GO REC
REPL QMYE2 WITH TMP
ENDIF
ENDSCAN
RET=MESSAGEBOX(“資產負債表有關數據計算完畢,按“確定”按鈕返回”,0+64)
RETURN
SELE FZB
BROWSE
3. 2. 2定義兩個取數函數
(1)從余額庫取年初余額或期末余額(函數)
PROC YE
LPARAMETERS KMDM接收參數為數值型的科目代碼,可以為總賬科目,也可以為明細科目
SET EXACT ON設置字符串比較精確匹配
KMDM=LTRIM(STR(KMDM,12))
SELE YEK
LOCATE FOR TRIM(科目代碼)=KMDM
YE=年初余額
if QMBZ 為上層函數設置的公共變量 ,當 QMBZ=.T.時表明要返回期末余額,否則返回年初余額
IF 借貸標志=“借”
YE=YE+本年借累計-本年貸累計
ELSE
YE=YE-本年借累計+本年貸累計
ENDIF
endif
RETURNYE
ENDPROC
*表內計算公式(函數)
PROC BB
LPARAMETERS HC接收參數為數值型的行次
LOCAL REC
SET EXACT ON設置字符串比較精確匹配
SELE FZB
IF HC > 45負債項目
HCFID=“FZHC” 查找的行次字段名
NCYE=“NCYE2” 計算的年初余額字段名
QMYE=“QMYE2” 計算的期末余額字段名
ELSE資產項目
HCFID=“ZCHC” 查找的行次字段名
NCYE=“NCYE1” 計算的年初余額字段名
QMYE=“QMYE1” 計算的期末余額字段名
ENDIF
REC=RECN()
HC=STR(HC,2)
LOCATE FOR HCFID=HC
IF QMBZ 為上層函數設置的公共變量 ,當 QMBZ=.T.時表明要返回期末余額,否則返回年初余額
YE=QMYE
ELSE
YE=NCYE
ENDIF
GO REC
RETURNYE
ENDPROC
4 結束語
財務會計報表作為會計信息系統的輸出結果,是管理者進行決策依據的重要信息#65377;這種通過定義函數,建立數據庫的編程方法實現了資產負債表的實時獲得,滿足了管理者對會計信息及時性#65380;準確性的要求#65377;這種方法提供的是一種編程思路,同樣可以用于其他會計報表,如損益表#65380;現金流量表等的編制#65377;
主要參考文獻
[1] 張瑞君. 計算機會計學[M]. 北京:中國人民大學出版社,2001.
[2] 張洪舉. Visual Foxpro 程序設計參考手冊[M]. 北京:人民郵電出版社,2004.
[3] 曾光敏,袁太芳. 資產負債表項目的分類及信息比較[J]. 企業經濟,2005,(8).