[摘 要] 本文以VF(Visual Foxpro)為數(shù)據(jù)庫管理系統(tǒng),分析與探討了資產(chǎn)負債表的設(shè)計與實現(xiàn)的基本原理,并提供了相應的程序代碼。
[關(guān)鍵詞] 內(nèi)置公式設(shè)計;函數(shù)與程序設(shè)計;資產(chǎn)負債表;數(shù)據(jù)處理
doi : 10 . 3969 / j . issn . 1673 - 0194 . 2010 . 04 . 003
[中圖分類號]F232 [文獻標識碼]A [文章編號]1673 - 0194(2010)04 - 0008 - 04
資產(chǎn)負債表(Balance Sheet)是表示企業(yè)在一定日期(通常為各會計期末)財務狀況(即資產(chǎn)、負債和業(yè)主權(quán)益的狀況)的主要會計報表。資產(chǎn)負債表利用會計平衡原則,將合乎會計原則的資產(chǎn)、負債、股東權(quán)益等科目分為“資產(chǎn)”和“負債及股東權(quán)益”兩大區(qū)塊,在經(jīng)過分錄、轉(zhuǎn)賬、試算、調(diào)整等會計程序后,以特定日期的靜態(tài)企業(yè)情況為基準,濃縮成一張報表。本文以VF(Visual Foxpro)為數(shù)據(jù)庫系統(tǒng),分析和說明了資產(chǎn)負債表的編制方法和實現(xiàn)過程。文中所用程序代碼已通過上機驗證。
一、數(shù)據(jù)表結(jié)構(gòu)與內(nèi)置公式設(shè)計
1. zz.dbf(總賬)的結(jié)構(gòu)為:
n(c,4);y(c,2);kmbm(c,4);kmmc(c,12);qcj(n,12,2);qcd(n,12,2); bqj(n,12,2);bqd(n,12,2); qmj(n,12,2);qmd(n,12,2)。
各字段分別對應年、月、科目編碼、科目名稱、期初借、期初貸、本期借、本期貸、期末借、期末貸。
2. zcfzb.dbf(資產(chǎn)負債表)的結(jié)構(gòu)為:
zc(c,22);hc(c,4);ncsgs(c,50);ncs(n,12,2);qmsgs(c,50);qms(n,12,2); qy(c,22);hc1(c,4);ncsgs1(c,50);ncs1(n,12,2);qmsgs1(c,50);qms1(n,12,2)。
各字段分別對應資產(chǎn)、行次、年初數(shù)公式、年初數(shù)、期末數(shù)公式、期末數(shù)、權(quán)益、權(quán)益行次、權(quán)益年初數(shù)公式、權(quán)益年初數(shù)、權(quán)益期末數(shù)公式、權(quán)益期末數(shù)。
3. 資產(chǎn)負債表內(nèi)置公式見表1。它是數(shù)據(jù)處理程序能夠自動實現(xiàn)數(shù)據(jù)計算的基礎(chǔ),需要事先設(shè)計好并放入ZCFZB.DBF 中。要注意,公式中所使用的科目代碼一定要與最新企業(yè)會計準則中的科目編號一致,并且 ZZ.DBF 科目中代碼一定也要與最新企業(yè)會計準則中的科目編號一致。
二、函數(shù)設(shè)計
為了方便地實現(xiàn)數(shù)據(jù)自動計算,需要先編制3個函數(shù),分別用于計算會計科目的期初余額、期末余額以及資產(chǎn)負債表表內(nèi)求和。
*qc( ) 計算會計科目期初余額函數(shù)
para kmdm,n
sele 1
use zz
loca all for kmbm=kmdm
if qcj-qcd>=0
da=qcj-qcd
else
da=qcd-qcj
endif
use
retuda
*qm( ) 計算會計科目期末余額函數(shù)

para kmdm
sele 1
use zz
loca all for kmbm=kmdm
if qmj-qmd>=0
da=qmj-qmd
else
da=qmd-qmj
endif
use
retuda
* msum( ) 資產(chǎn)負債表表內(nèi)求和函數(shù)
para s
sele 2
t1=val(subs(s,1,2))
t2=subs(s,3,1)
t3=val(subs(s,4,2))
if t2='_'
if p=1
sum ncsto n11 for recn()>=t1 .and. recn()<=t3
endi
if p=2
sum qmsto n11 for recn()>=t1 .and. recn()<=t3
endi
if p=3
sum ncs1to n11 for recn()>=t1 .and. recn()<=t3
endi
if p=4
sum qms1to n11 for recn()>=t1 .and. recn()<=t3
endi
endi
if t2='+'
if p=1
sum ncsto n11 for recn()=t1 .or. recn()=t3
endi
if p=2
sum qmsto n11 for recn()=t1 .or. recn()=t3
endi
if p=3
sum ncs1to n11 for recn()=t1 .or. recn()=t3
endi
if p=4
sum qms1to n11 for recn()=t1 .or. recn()=t3
endi
endi
go t3+1
retu n11
三、數(shù)據(jù)處理之程序設(shè)計與實現(xiàn)
當前面函數(shù)和內(nèi)置公式設(shè)計并調(diào)試完畢后,便可以設(shè)計并運行通過下面的數(shù)據(jù)計算程序。該程序可以根據(jù)公式自動計算出資產(chǎn)負債表內(nèi)各項目的數(shù)值。
*js.prg 報表數(shù)據(jù)計算程序
clea
clea all
set talk off
sele 2
use zcfzb
go 1
do while .not. eof()
a1=allt(ncsgs)
iflen(a1)#0
if len(a1)=13
p=1
endi
r1=a1
sele 2
repl ncs with r1
endi
a2=allt(qmsgs)
if len(a2)#0
if len(a2)=13
p=2
endi
r2=a2
sele 2
repl qms with r2
endi
a3=allt(ncs1gs)
if len(a3)#0
if len(a3)=13
p=3
endi
r3=a3
sele 2
repl ncs1 with r3
endi
a4=allt(qms1gs)
if len(a4)#0
if len(a4)=13
p=4
endi
r4=a4
sele 2
repl qms1 with r4
endi
skip
endd
close all
clea all
set talk on
retu
主要參考文獻
[1] 財政部. 企業(yè)會計準則第30號——財務報表列報[S]. 2006.