- 媽米
- 13
- 經(jīng)驗(yàn)值
- 9
- 在線時(shí)間
- 0小時(shí)
- 昵稱
-
- 寶寶生日
- 2000-10-13
- 注冊(cè)時(shí)間
- 2012-5-8
- 帖子
- 9
- 閱讀權(quán)限
- 10
- 積分
- 9
- 精華
- 0
- UID
- 7782102

- 寶寶生日
- 2000-10-13
- 帖子
- 9
|
對(duì)會(huì)計(jì)軟件中憑證輸入模塊的一點(diǎn)看法 ?????????????????????????????????? ???????????????????武漢華中師大信管系?? 謝剛 摘要: 憑證的制作和處理是會(huì)計(jì)工作中最為重要的一環(huán),特別是對(duì)會(huì)計(jì)電算化來說,就顯得更重要了,應(yīng)用軟件來實(shí)現(xiàn)傳統(tǒng)的會(huì)計(jì)過程,憑證是其他一切處理的基礎(chǔ)。沒有了憑證就沒有會(huì)計(jì)軟件后面的一切。而就憑證這塊來說,最為基礎(chǔ)也最為重要的當(dāng)屬憑證的輸入。而憑證的輸入的第一步就是確定此憑證的憑證編號(hào),在會(huì)計(jì)軟件中應(yīng)該盡量的避免由人工來獲取憑證編號(hào),可實(shí)施的軟件都應(yīng)該由程序來自動(dòng)獲得憑證編號(hào),因?yàn)榍懊嬲f過,憑證編號(hào)不容錯(cuò)誤。本文就憑證編號(hào)的獲取過程進(jìn)行以下討論。使用開發(fā)工具:PowerBuilder8.0 MS SQL-Server2000 ? 關(guān)鍵字: 會(huì)計(jì)軟件 憑證輸入 憑證編號(hào) PowerBuilder8.0 ?SQL-Server2000 ? 正文: ? ??? 一.傳統(tǒng)方法的探討: 通過對(duì)目前國(guó)內(nèi)會(huì)計(jì)軟件中憑證輸入模塊的調(diào)查分析,發(fā)現(xiàn)大部分軟件的憑證輸入模塊在憑證編號(hào)獲取上面使用的方法基本一致。使用方法如下: 在一張新的憑證輸入之前,必須先確定這張憑證的憑證編號(hào)。一般做法為:由程序檢查PPK(日庫(kù))記錄。如果發(fā)現(xiàn)里面有記錄,就取其最后一記錄的憑證編號(hào),再加上1就為正準(zhǔn)備輸入的這張憑證的編號(hào);如果PPK庫(kù)里面沒有記錄(說明正準(zhǔn)備輸入的這張憑證為本工作日的第一張憑證),就必須得訪問pok&rq(當(dāng)月月庫(kù))記錄,如果發(fā)現(xiàn)里面有記錄,同理取其最后一記錄的憑證編號(hào),再加上1就為正準(zhǔn)備輸入的這張憑證的憑證編號(hào);如果POK庫(kù)里面沒有記錄,就說明此天為月初的第一個(gè)工作日(但是這種情況一年一共就僅12次)。 ? 二.親自設(shè)計(jì)過程中的經(jīng)驗(yàn):合肥票據(jù)http://www.hhf100.com 我在親自設(shè)計(jì)憑證輸入程序的時(shí)候(用PowerBuilder MS SQL-Server2000設(shè)計(jì)),發(fā)現(xiàn)上述方法用語言實(shí)現(xiàn)起來具有以下不足: 第一:是在代碼設(shè)計(jì)和維護(hù)的時(shí)候不方便, 第二:更為重要的是在憑證編號(hào)的連續(xù)性方便不好,比如:從工資模塊轉(zhuǎn)過來的工資憑證就不得不用一個(gè)新的憑證機(jī)制來存放這些憑證, 第三:還有就是浪費(fèi)了很多系統(tǒng)資源,比如每次添加憑證的時(shí)候都要移動(dòng)大量的數(shù)據(jù)庫(kù)記錄,特別是在月初的第一個(gè)工作日,在月末也面臨同樣的問題(月到月末,表中的記錄月多,移動(dòng)的次數(shù)就月多)。 所以,我在實(shí)際設(shè)計(jì)的過程中,摸索出了一種新的思路來解決這個(gè)問題,可以很好解決上述三個(gè)問題,覺得這個(gè)思路有必要拿出來和大家共同商討,具體實(shí)現(xiàn)思路如下: 第一:另外新建一個(gè)數(shù)據(jù)表(表名為HQPZBH): 字段名稱分別為:ID,PZBH,字段屬性分別為:integer,char型。建立好后進(jìn)行附一組值(最好用程序來附值)。ID字段附值為1,PZBH字段為0000(根據(jù)具體的要求進(jìn)行選擇位數(shù),如000000等)。 用程序?qū)崿F(xiàn)代碼如下(僅為參考,根據(jù)具體的編程語言變換形式): (連接數(shù)據(jù)庫(kù)語句省略,以下同) insert into HQPZBH(hqpzbh.id,hqpzbh.pzbh) values(1,0000) ; 第二:每次在輸入新的憑證之前獲取該憑證編號(hào)的思路: 數(shù)據(jù)表HQPZBH里面始終只有一條記錄,ID始終為1,PZBH是始終為庫(kù)里面的最后一張憑證的編號(hào)。每次進(jìn)行輸入憑證獲取憑證編號(hào)的時(shí)候就訪問此數(shù)據(jù)表,讀取表中PZBH字段的值,再加1就OK了。 用程序?qū)崿F(xiàn)的代碼如下(參考): integer ?nowpzbh;(定義存儲(chǔ)準(zhǔn)備輸入的這張憑證的憑證編號(hào)的變量) //在表hqpzbh中獲取pzbh字段的值,并放于nowpzbh變量中 select ?hqpzbh.pzbh into ?:nowpzbh from ?hqpzbh where ?hqpzbh.id=1;?????? //注意:本表中始終只有一條記錄 nowpzbh = nowpzbh 1 //此值自加1后就成為了即將輸入的憑證的憑證編號(hào)了 第三:保證數(shù)據(jù)表HQPZBH里面的PZBH字段的值始終是最后一張憑證的編號(hào)。 那么就要求我們?cè)诿繌垜{證輸入完畢并經(jīng)過檢驗(yàn)保存的同時(shí),用此憑證編號(hào)來替代數(shù)據(jù)表HQPZBH里面的原有的PZBH字段的值。 用程序?qū)崿F(xiàn)的代碼如下(參考): 假設(shè)存儲(chǔ)剛保存的那張憑證的憑證編號(hào)的變量為nowpzbh update hqpzbh set hqpzbh.pzbh=:nowpzbh where hqpzbh.id=1; //表中只有一條記錄。并且其id字段的值始終都為1 ? 三、總結(jié) 我認(rèn)為這個(gè)方法比較好理解和實(shí)現(xiàn),設(shè)計(jì)和維護(hù)代碼也比較方便。同時(shí)對(duì)于那些特殊憑證的處理也極為方便,比如:工資憑證的自動(dòng)轉(zhuǎn)入憑證庫(kù)時(shí)就不必要再使用傳統(tǒng)軟件的那種"特定區(qū)段的憑證編號(hào)"方式了。就可以實(shí)現(xiàn)憑證庫(kù)中憑證編號(hào)的真正意義上的連續(xù)了。還有就是對(duì)數(shù)據(jù)庫(kù)中數(shù)據(jù)量相當(dāng)大時(shí),這種方式相當(dāng)占優(yōu)勢(shì),因?yàn)樗枯斎胍粡垜{證只需要訪問二次數(shù)據(jù)庫(kù)的數(shù)據(jù)表,更為重要的是這個(gè)數(shù)據(jù)表只有一條數(shù)據(jù),訪問時(shí)不需要任何的移動(dòng)時(shí)間。避免了傳統(tǒng)方式的憑證編號(hào)的尋找(特別是月初的第一個(gè)工作日和月尾的數(shù)據(jù)大量移動(dòng))。大大節(jié)約了訪問數(shù)據(jù)庫(kù)的時(shí)間開銷和空間開銷。
|
|