韓瑋杰 韓樹標
【摘 要】在社會保障工作中,將VB.Net子集(VBA7.0)應(yīng)用于核對員工社保數(shù)據(jù)與基數(shù)申報程序中,通過VBA與Office新版軟件的無縫集成,實現(xiàn)了核對員工社保數(shù)據(jù)的程序自動化進行,實現(xiàn)了下一年基數(shù)計算的純數(shù)字化無人操作。
【Abstract】In the work of social security, a subset of the VB.Net (VBA7.0) is applied to check the employee social security data and base reporting procedures, through the seamless integration of VBA and new version office, the automatic program of checking staff social data is realized, and realize the pure digital unmanned operation of last year cardinal calculation.
【關(guān)鍵詞】VB.Net 子集; 社保數(shù)據(jù) ;基數(shù)
【Keywords】VB.Net subset ; social security data ; base
【中圖分類號】TP311 【文獻標志碼】A 【文章編號】1673-1069(2017)07-0144-02
1 引言
煤峪口礦作為一座具有百年歷史的老礦,企業(yè)員工數(shù)量非常龐大,截至2017年5月,本礦正式參加社會保險的在職員工有5000多人,而社保管理部門的一項重要工作內(nèi)容就是每年給全礦的所有在職員工與工傷退崗員工申報本年的社保繳費基數(shù),這個繳費基數(shù)是由去年全年該員工的統(tǒng)籌工資取平均值算得;其另一項日常重要工作內(nèi)容則是根據(jù)每個月全礦員工的工資臺賬中記錄的社保實際扣款,與該員工的社保申報扣款基數(shù)核對,發(fā)現(xiàn)錯誤應(yīng)及時調(diào)整糾正。這些工作任務(wù)量相當(dāng)大,需要記錄下每個人該年度內(nèi)每個月的統(tǒng)籌工資,并與根據(jù)上年的申報基數(shù)計算得到的養(yǎng)老金、醫(yī)療金、失業(yè)金進行核對。這項工作在進行時,工資臺賬中包含的大量無用數(shù)據(jù)、在各個表格間切換耗費的時間、查找替換需要的煩瑣操作以及重名員工會給該項工作造成干擾,使得這項日常工作對人時間的消耗、精力的消耗巨大,而且錯誤率也居高不下,初次做完后需要多次核對才能保證結(jié)果基本正確。再考慮到每個月各種情況的人員增減變動對結(jié)果的影響,可以說,這項任務(wù)是對工作人員耐性的極大挑戰(zhàn)。
2 研究內(nèi)容及創(chuàng)新點
2.1 本套程序的結(jié)構(gòu)組成
本套程序由前端用戶接口(UI)和后級子程序(SubProgram)構(gòu)成。前端用戶接口是一個包含有一些標準控件的Windows窗體;后級子程序則分為供窗口調(diào)用的過程子程序(Sub)和供過程子程序調(diào)用的函數(shù)子程序(Function)。這些子程序按照應(yīng)用步驟的不同被分別放置在兩個不同的模塊里以便于管理公共變量和功能區(qū)分。另外還有一個提供轉(zhuǎn)換功能的通用子程序,放置在一個單獨的模塊中。宏觀的功能組包含有三組,子程序有27個。
2.2 本套程序的安裝運行方式
本程序使用的VB子集版本為VBA7.0,該VBA集成自O(shè)ffice 2010版本開始使用,并且保持后項兼容。由于該套程序中引用了Office 2013及以后版本才提供的全新工作簿統(tǒng)計函數(shù),因此本套程序需要的運行環(huán)境為安裝有Office 2013、Office 2016或者Office 365的Windows計算機,該程序在32位版本的Office或者64位版本的Office下均可使用??紤]到控件安裝形式帶來的兼容性和穩(wěn)定性問題,本套程序采用包含宏的
.xlsm格式保存和發(fā)行。
2.3 本套程序的作用
①工資臺賬按分組重命名;
②工資臺賬原始數(shù)據(jù)摘??;
③對比本年社保扣款結(jié)果,并且準備下一年要申報的基數(shù)。
2.4 本套程序可實現(xiàn)的功能特點
①自動讀取對應(yīng)月份的數(shù)據(jù)目錄,無須手動使用目錄設(shè)定對話框指定每個月的數(shù)據(jù)所在目錄。
②智能判斷每個臺賬Excel文件中包含的科室名稱,據(jù)此將原始臺賬數(shù)據(jù)不適用于本單位的文件名重命名為有規(guī)律的、便于后期工作數(shù)據(jù)處理的文件名。
③自動打開各個臺賬Excel文件,自動輸入密碼,自動設(shè)置格式,自動處理包含鏈接的Excel文件,自動讀取各個臺賬Excel文件中記錄的本工作所需要的員工本月統(tǒng)籌工資金額、本月扣除養(yǎng)老保險數(shù)額、本月扣除醫(yī)療保險數(shù)額、本月扣除失業(yè)保險數(shù)額,智能糾正原始Excel臺賬文件中包含的公式錯誤、引用錯誤和鏈接錯誤,并將處理結(jié)果寫入中間文件。最后對讀取到的數(shù)據(jù)進行合理性判斷,刪除讀取到的無效數(shù)據(jù),標記出有邏輯錯誤的數(shù)據(jù),方便后期處理。整個過程無須人工干預(yù),全部由程序自動完成。
④先讀取處理完成的中間文件,然后讀取匯總文件中的申報基數(shù)信息,將文件中記錄的每一個員工的扣款數(shù)據(jù)和申報的基數(shù)進行對比,比對正確的數(shù)據(jù)記錄聯(lián)合統(tǒng)籌工資寫入到該匯總文件,比對錯誤的數(shù)據(jù)記錄寫入到錯誤記錄庫。由于VBA程序的運行機制問題,代碼對VBA對象的訪問非常耗時。因此,本套程序?qū)iT對此做出了優(yōu)化:只在開始讀取記錄的時候和末尾保存比對結(jié)果的時候使用對象訪問操作,其他操作一律在內(nèi)存數(shù)組中完成。這雖然會增加程序占用的計算機RAM資源,但是,這種方法規(guī)避了大量對象讀寫操作的超長耗時,而且當(dāng)下主流計算機配置的RAM均在4GB或以上,用增加200MB內(nèi)存消耗的代價換取幾個小時的時間節(jié)省,顯而易見是一種更優(yōu)的做法。
⑤根據(jù)上級社保單位提供的局內(nèi)社保數(shù)據(jù)記錄表,比對工資匯總表,自動補全其缺失的人員信息,便于每年的數(shù)據(jù)核對工作和基數(shù)申報工作。
⑥每年申報基數(shù)后需要根據(jù)上級社保單位給出的保底工資和封頂工資調(diào)整年初預(yù)估工資的誤差,本功能與核對功能合并在一個子程序內(nèi)完成,用對話框返回參數(shù)的形式進行控制。
3 實際應(yīng)用狀況及經(jīng)濟效益
本套程序自2016年12月開始設(shè)計、編寫代碼,2017年3月份初步完成第一版,并立即投入使用,同時在使用中根據(jù)出現(xiàn)的實際問題不斷完善代碼的穩(wěn)定性與兼容性。
根據(jù)對負責(zé)這項工作的老員工的咨詢以及與兄弟單位的相關(guān)工作人員的交流,平均每處理1000位在職員工的社保數(shù)據(jù),需要兩名工作人員3至5個工作日的時間。使用本套程序處理數(shù)據(jù),每1000位在職員工平均需要約7分鐘的時間。程序耗時實測數(shù)據(jù)如下(1000條測試樣本,Windows7 x64,Office 2013 SP1 x64):
本礦有在職員工約5000人,每個月在該套程序的協(xié)助下完成數(shù)據(jù)處理需要大約半小時的時間。全礦有約八萬在職員工,大約80名負責(zé)在職員工數(shù)據(jù)處理的工作人員。按照每1000人3個工作日耗時的平均值來計算,純?nèi)斯げ僮鞯那闆r下八萬在職員工需要大約240個工作日,使用本套程序則僅需要8小時,即一個工作日。由此可見,若是將本套程序推廣給有相同需求的兄弟單位,一個月便可以節(jié)省239個工作日的時間消耗,相當(dāng)于10多個月的工作量。按照3000元每人的平均工資計算,這套程序一個月可以節(jié)省工資支出3萬多元。這還沒有考慮因人工處理失誤造成的工時消耗。
4 結(jié)語
VB.Net子集(VBA7.0)在社會保障工作中核對員工社保數(shù)據(jù)與基數(shù)申報程序的應(yīng)用取得了相當(dāng)好的效果,經(jīng)濟效益非常顯著,如果它能應(yīng)用在全國各個企事業(yè)單位的話,那將對節(jié)支降耗產(chǎn)生極大的影響,因此具有極大的推廣應(yīng)用價值。下一步將首先優(yōu)化代碼的兼容性,使之適用于更多條件更多場合,并逐步向兄弟單位的相關(guān)工作人員推廣使用,以提高工作效率,降低錯誤率,使社保工作更加有序高效的進行,更好地保障員工的權(quán)益。endprint