■
筆者所在單位有一款財(cái)務(wù)核算軟件,后臺(tái)為SQL數(shù)據(jù)庫(kù)。前一段時(shí)間發(fā)現(xiàn)2013年度科目余額表上有幾個(gè)支出科目的余額為負(fù)數(shù),表明支出結(jié)轉(zhuǎn)有問(wèn)題。仔細(xì)觀察后發(fā)現(xiàn),出問(wèn)題的是“5010201財(cái)政撥款支出”科目掛接的輔助核算項(xiàng)目,如果按照正常的操作,在支出年終結(jié)轉(zhuǎn)過(guò)程中,輔助核算項(xiàng)目會(huì)自動(dòng)進(jìn)行結(jié)轉(zhuǎn)。為什么2013年度會(huì)出錯(cuò)呢?那只有一種可能,輔助核算項(xiàng)目設(shè)置有問(wèn)題。
在基礎(chǔ)數(shù)據(jù)設(shè)置中,找到“5010201”科目,終于找到問(wèn)題所在,原來(lái)是操作人員在添加下一級(jí)明細(xì)科目時(shí),沒(méi)有刪除上一級(jí)科目的輔助核算項(xiàng)目,而系統(tǒng)要求,非最底級(jí)科目嚴(yán)禁設(shè)置輔助核算,因此出現(xiàn)以上問(wèn)題。
按理說(shuō),直接刪除上一級(jí)科目的輔助核算項(xiàng)目就行了,但由于財(cái)務(wù)軟件的特殊性,只要有數(shù)據(jù)發(fā)生就不允許修改基礎(chǔ)數(shù)據(jù)設(shè)置,現(xiàn)在可操作的辦法就是刪除所有與“5010201”科目相關(guān)的會(huì)計(jì)憑證再進(jìn)行修改。由于財(cái)務(wù)核算軟件只能提供一步步反向操作,如果要跨年度刪除記賬憑證,將需要耗費(fèi)非常大的工作量,而且還容易出錯(cuò)。有沒(méi)有好的辦法取消上一級(jí)科目的輔助核算項(xiàng)目呢?本文試圖通過(guò)在后臺(tái)直接操作數(shù)據(jù)庫(kù),來(lái)取消“5010201”科目的三個(gè)輔助核算項(xiàng)目。
先看前臺(tái),與“5010201”相關(guān)的科目為“501經(jīng)費(fèi)支出-50102項(xiàng)目支出-5010201財(cái)政撥款支出-501020101其他支出”,在“財(cái)政撥款支出”上掛接了“項(xiàng)目分類”、“功能分類”、“經(jīng)濟(jì)分類”等三個(gè)輔助核算項(xiàng)目,這個(gè)就是出錯(cuò)的原因。再在SQL企業(yè)管理器中看后臺(tái)數(shù)據(jù)庫(kù),發(fā)現(xiàn)表很多,由于沒(méi)有該財(cái)務(wù)軟件的數(shù)據(jù)字典,與輔助核算項(xiàng)目設(shè)置相關(guān)的數(shù)據(jù)存儲(chǔ)于哪個(gè)表還無(wú)法判斷。為解決以上問(wèn)題,筆者試圖通過(guò)以下方法進(jìn)行處理。
第一步,導(dǎo)出后臺(tái)數(shù)據(jù)庫(kù)為Excel 97-2000格式文件。通SQL企業(yè)管理器的導(dǎo)出數(shù)據(jù)功能,將該財(cái)務(wù)核算軟件后臺(tái)數(shù)據(jù)庫(kù)里的所有表導(dǎo)出成一個(gè)Excel文件,并取名為TEMP.XLS。
第二步,用Excel軟件打開(kāi)TEMP.XLS,點(diǎn)擊“查找和替換”,打開(kāi)“查找”的“選項(xiàng)”,選擇范圍“工作薄”,選中“單元格匹配”,查找內(nèi)容中填入“5010201”(“財(cái)政撥款支出”的科目代碼),點(diǎn)擊查找全部。
圖1 查看結(jié)果
圖2 查找結(jié)果
圖 4 “VOUCHER_RESTRICT”表內(nèi)容
第三步,點(diǎn)擊查找到的結(jié)果如圖1,從圖1可以看出,這只是一個(gè)科目設(shè)置的表,并不是有關(guān)輔助項(xiàng)目掛接的表,但可發(fā)現(xiàn),“5010201”與“501002001”是相關(guān)聯(lián)的。
第四步,按照上面的方法,查找“501002001”,可以找到如圖2所示結(jié)果。
認(rèn)真分析能查找到“501002001”的三個(gè)表,可發(fā)現(xiàn),VOUCHER_RESTRICT表與科目加載輔助項(xiàng)目有關(guān)(如圖3)。
根據(jù)圖3,我們可以大膽地猜出,A列為ID號(hào),B列中004040001為我們所用賬,-1為該財(cái)務(wù)軟件的標(biāo)準(zhǔn)賬,C列為年度,D列為我們用的科目號(hào),E列為輔助核算項(xiàng)目表名,G列為相關(guān)字段。有了以上猜測(cè),我們備份好數(shù)據(jù)庫(kù),然后在查詢分析器中執(zhí)行以下語(yǔ)句:
重新進(jìn)入核算軟件前臺(tái),查看相關(guān)基礎(chǔ)信息和科目余額表,出錯(cuò)的問(wèn)題都已解決。
從以上解決過(guò)程可以看出,常用業(yè)務(wù)軟件中很多棘手的問(wèn)題,我們都可以靜下心來(lái),仔細(xì)觀察,慢慢分析,最終通過(guò)我們比較熟悉的一些方式方法,找到解決問(wèn)題的捷徑。
其實(shí),如果我們對(duì)SQL的存儲(chǔ)過(guò)程比較熟悉的話,可以直接用SQL語(yǔ)句建一個(gè)全文查找的存儲(chǔ)過(guò)程,那么就可以直接在SQL查詢分析器中查找“5010201”和“501002001”,而不必借助Excel來(lái)操作了,至于存儲(chǔ)過(guò)程的編寫,在此就不一一贅述了,感興趣的朋友可以自己研究。