工資核算信息系統(tǒng)的分析與實(shí)現(xiàn)_第1頁
工資核算信息系統(tǒng)的分析與實(shí)現(xiàn)_第2頁
工資核算信息系統(tǒng)的分析與實(shí)現(xiàn)_第3頁
工資核算信息系統(tǒng)的分析與實(shí)現(xiàn)_第4頁
工資核算信息系統(tǒng)的分析與實(shí)現(xiàn)_第5頁
已閱讀5頁,還剩18頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、1工資核算信息系統(tǒng)1.1工資核算信息系統(tǒng)的概念工資核算信息系統(tǒng)是以工資數(shù)據(jù)為處理對象的計算機(jī)信息系統(tǒng)。 主要包括以下幾個 環(huán)節(jié):(1)編制工資單。(2)按部門(指定條件)匯總工資。(3)編制記帳憑證進(jìn)行帳務(wù)處 理。(4)打印工資條及工資單。1.2建立工資核算系統(tǒng)的意義工資核算的方法比較簡單、固定,每個月進(jìn)行工資計算的程序基本不變,工資核算 的這種重復(fù)性和規(guī)律性為采用工資系統(tǒng)核算提供了可能性。在手工方式下,會計人員為 了搞好工資核算,需要投入大量的精力和時間,但仍然很難避免錯誤的出現(xiàn)。采用工資 核算系統(tǒng)后,無論從精度上、速度上、還是靈活性上,都是手工方式所不可比擬的,它 可大大減輕財務(wù)人員的工作

2、強(qiáng)度,提高工作效率。因此采用工資信息系統(tǒng)具有非常重要 的意義。1.3工資核算信息系統(tǒng)與會計信息系統(tǒng)的關(guān)系會計信息系統(tǒng)是以會計數(shù)據(jù)為處理對象的計算機(jī)信息系統(tǒng),工資核算系統(tǒng)是會計核算信息系統(tǒng)的一個子系統(tǒng),又是財務(wù)處理系統(tǒng)的基礎(chǔ),它可以單獨(dú)使用,也可以與會計 核算其它系統(tǒng)一起使用,其與會計核算系統(tǒng)的關(guān)系如圖1.1所示。會計核算系統(tǒng)圖1.1會計核算系統(tǒng)圖1.1會計核算系統(tǒng)的功能結(jié)構(gòu)1.4 工資核算系統(tǒng)的設(shè)計原則和目標(biāo) 建立工資核算信息系統(tǒng)應(yīng)遵循以下原則: 系統(tǒng)的原則:從系統(tǒng)的原則出發(fā),以會計核算系統(tǒng)系統(tǒng)為基礎(chǔ),并與會計核算系統(tǒng) 相協(xié)調(diào),與財務(wù)職能相適應(yīng);提高經(jīng)濟(jì)效益的原則;逐步完善、發(fā)展的原則;系統(tǒng)統(tǒng)

3、一 性原則;精簡原則。建立會計信息系統(tǒng)的目標(biāo)是: 信息收集制度化; 信息加工標(biāo)準(zhǔn)化; 信息傳遞規(guī)范化; 信息內(nèi)容系統(tǒng)化;信息儲存檔案化;會計信息工作專業(yè)化。2、工資核算系統(tǒng)的功能、結(jié)構(gòu)、流程分析2.1工資核算系統(tǒng)的功能、結(jié)構(gòu)分析工資核算信息系統(tǒng)應(yīng)具有靈活設(shè)置工資項(xiàng)目和工資表格的功能、快速準(zhǔn)確的核算功能、方便實(shí)用的查詢功能以及必要的打印功能。工資管理系統(tǒng)軟件的功能包括:(1) 輸入各種工資數(shù)據(jù),如考勤、工時等。(2) 準(zhǔn)確無誤地進(jìn)行工資核算。按出勤情況自動進(jìn)行個人工資計算;按收入情況自動進(jìn)行個人收入調(diào)節(jié)稅計算;可進(jìn)行數(shù)據(jù)轉(zhuǎn)換以實(shí)現(xiàn)與銀行傳遞數(shù)據(jù),由銀行代發(fā)工資。查詢個人工資、部門工資、單位工資以

4、及各種工資數(shù)據(jù)。(4)打印工資發(fā)放表、工資條、匯總表和職工花名冊等。其功能結(jié)構(gòu)如圖2.1所示:圖2.1工資核算系統(tǒng)的功能結(jié)構(gòu)圖2.2工資核算系統(tǒng)的流程分析本工資軟件程序的特點(diǎn)是數(shù)據(jù)流程比較簡單,在整個系統(tǒng)中只有一個核心操作數(shù)據(jù)庫tmp_gzk.dbf,數(shù)據(jù)關(guān)系簡單增強(qiáng)了系統(tǒng)的運(yùn)行穩(wěn)定。其數(shù)據(jù)流程如下圖所示:密碼數(shù)據(jù)庫gzkuser.dbf用戶工資數(shù)據(jù)錄入用戶登陸代碼錄入F3D2代碼數(shù)據(jù)庫tmp_gzk.dbfD3結(jié)構(gòu)數(shù)據(jù)庫gzk_stru.dbf工資庫表結(jié)構(gòu)錄入F4D1修改密碼F5D4F8D6gzk*.dbf查詢工資表打印工資表備份每月工 資數(shù)據(jù)庫gzk_bm.dbf gzk_bz.dbf g

5、zk_rylb.dbf臨時數(shù)據(jù)庫D5用戶圖2.2工資核算系統(tǒng)數(shù)據(jù)流程圖編號數(shù)據(jù)流名稱來源去向說明F1用戶登陸鍵盤D1從鍵盤輸入值與D1值 比較F2密碼修改鍵盤D1鍵盤輸入新值存入D1 中F3定義表結(jié)構(gòu)鍵盤D2F4生成工資庫D2D3F5工資數(shù)據(jù)錄入鍵盤D3從鍵盤輸入數(shù)據(jù)存入D3中F6編輯代碼鍵盤D4D4包含部門、班組及 人員類別數(shù)據(jù)庫F7生成月工資庫D3D5按 GZK200304.dbf 格式生成月工資庫F8新建臨時表D3D6為打印作準(zhǔn)備F9查詢工資表用戶輸入輸入值F10打印工資表D6欄目可由用戶選擇2.1數(shù)據(jù)流屬性表23 數(shù)據(jù)字典數(shù)據(jù)庫設(shè)計的主要任務(wù)是根據(jù)系統(tǒng)的實(shí)現(xiàn)功能與數(shù)據(jù)流圖確定系統(tǒng)所需的

6、數(shù)據(jù)庫在本系統(tǒng)設(shè)計中,主要涉及以下幾個主要數(shù)據(jù)庫: 1密碼數(shù)據(jù)表( gzkusers.dbf ) gzkusers(usename c(8),password c(20) 記錄: 記錄號: usename password1 zjg 512285122845994459942. 部門數(shù)據(jù)表 (gzk_bm.dbf)gzk_bm(咅部門 c(2),部門名稱 c(10)記錄:記錄號:部門部門名稱101局辦202綜合處303財務(wù)處3. 班組數(shù)據(jù)表( gzk_bz.dbf )gzk_bz( 班組 c(3) ,班組名稱 c(10)記錄:記錄號: 班組班組名稱1 01無2 02一派3. 人員類別數(shù)據(jù)表 (

7、gzk_rylb.dbf)gzk_rylb (類別c(2) , 類別名稱 c(10)記錄:記錄號:類別類別名稱101在職202退養(yǎng)4公式數(shù)據(jù)表 (gzk_gs.dbf)gzk_gs(欄目 1c(10),欄目 2 c(256),類別 c(2)記錄:記錄欄目 1欄目 2類別1實(shí)發(fā)工資=基礎(chǔ)工資+職務(wù)工資+012實(shí)發(fā)工資=(基礎(chǔ)工資+職務(wù)工資+)*0.6 025. 工資項(xiàng)目修改庫 (gzk_stru.dbf)gzk_stru( field_name c(10),field_type c(1),field_len n(3),field_decn(3),list_check n(1)記錄:記錄號fiel

8、d_namefield_type field_len field_dec list_check1姓名c10 02身份證c1807類別c2 0前七項(xiàng)是由系統(tǒng)設(shè)定的,在程序中是屏蔽掉的,用戶是不能修改的。以下由用戶根 據(jù)單位工資項(xiàng)目自行定義。8 基礎(chǔ)工資 n 6 2 0 6.操作工資庫,結(jié)構(gòu)由工資項(xiàng)目修改庫確定,在程序中是由工資項(xiàng)目修改庫生成而 建立的。除以上幾個主要數(shù)據(jù)表外,在程序中還生成一系列臨時表,主要為實(shí)現(xiàn)數(shù)據(jù)過渡、查詢和打印 功能的,在主程序退出時會自動刪除。經(jīng)過上述已設(shè)計好的數(shù)據(jù)流圖,數(shù)據(jù)字典就可以進(jìn)行下一步 的程序?qū)崿F(xiàn)了。3、工資核算系統(tǒng)的實(shí)現(xiàn)3. 1模塊流程圖圖3.1模塊流程圖32

9、 模塊設(shè)計與編碼本節(jié)通過對部分模塊的設(shè)計與編碼示例來說明工資核算信息系統(tǒng)的實(shí)現(xiàn)。3.2.1. 主程序( gzgl.prg )set talk offset curs off set safe offset cent on&以上代碼是設(shè)置應(yīng)用程序的進(jìn)行環(huán)境set help to gzgl.chm&設(shè)置幫助文件set sysmenu off&關(guān)閉系統(tǒng)菜單clear all&清除public logpassword&設(shè)置公共變量,此變量當(dāng)密碼為真時為 .t. 否則為 .f.logpassword=.f. & 給 logpassword 賦初值with _screen&設(shè)定 FoxPro 主窗口屬性.

10、visible=.t.icon=scdrespl.ico & 設(shè)置主窗口左上角的圖標(biāo).picture=setup.bmp&設(shè)置主窗口的背景圖案.windowstate=2&設(shè)置窗口最大化.caption= 【工資管理系統(tǒng)】 &設(shè)置窗口標(biāo)題endwithdo form SOFABOUT with 1200 &彈出軟件關(guān)于窗口 , 時間為 1.2 秒。 clearinkey(1.5)set curs on&打開光標(biāo)do form loginSYS&彈出登陸窗口,等待用戶輸入登陸密碼。IF logpassword&對返回的 logpassword 值進(jìn)行判斷如果為真則進(jìn)行 gzgl.mpr菜單程序,

11、進(jìn)入系統(tǒng),否則退出程序。do gzgl.mprACTIVATE MENU _MSYSMENU NOWAITREAD eventsENDIFCLEAR EVENTSCLOSE ALLSET SYSMENU TO DEFAULT3.2.2 菜單程序(gzgl.mpr )菜單程序?qū)Ρ境绦蛑邪巡藛纬绦蜃鳛橄到y(tǒng)初始界面,并由主程序gzgl.prg調(diào)用應(yīng)模塊參照第三章詳細(xì)設(shè)計中3.1程序功能結(jié)構(gòu)。3.2.3 .登陸窗口模塊(loginsys.scx)登陸模塊運(yùn)行界面如下:下面主要介紹確認(rèn)按鈕的 click事件。sele gzkusers&選擇密碼庫local oldpassword,wmzloca for

12、 use name=bo1.valuewmz=password&取出密碼庫中的偽碼PP=”&裂下代碼是對密碼庫password字段中保存的密碼解密FOR 11=10 TO 1 step -1PP=PP+SUBS(WMZ,ll,1)+SUBS(WMZ,ll+10,1)ENDFORDD=SUBS(PP,17,4)+SUBS(PP,1,16)M1=SUBS(DD,1,10)M2=SUBS(DD,11,10)ZMZ=INT(VAL(M1)-VAL(M2)&通過設(shè)定的數(shù)字組合得到真密碼oldpassword=zmzif allt(thisform.text1.value)=allt(str(zmz)*=

13、messagebox(歡迎使用工資系統(tǒng),0+48+0)logpassword=.t.close allrelease thisformelse=messagebox(你輸入的密碼錯誤,請與工資管理員聯(lián)系!,0+16+0)thisform.text1.setfocusclose allrelease thisformen dif3.24 修改密碼窗體模塊(changpassword.scx)窗體中確認(rèn)按鈕的click事件。主要包含對用戶設(shè)定的新密碼進(jìn)行加密成為偽碼后 存入密碼數(shù)據(jù)庫中,加密程序是解密的逆過程,代碼略。3.2.5.工資庫新建/修改模塊(edit_gzkstru.scx)序號款項(xiàng)名稱

14、小數(shù)位數(shù)標(biāo)識符41基本工資212鎭別工資2g3職勞工資2104糧貼2115崗位工資2136住房補(bǔ)貼2127福利補(bǔ)貼2i6特種補(bǔ)貼2149崗位淒貼2510應(yīng)發(fā)工資2211扣畝2E12考勤12T13考勤22814實(shí)發(fā)工資2315IE161617IT1613191920202121S工資款頂謖問在1標(biāo)識符和工資 款項(xiàng)相對應(yīng),且不 能修改;序號決定 了款頊在工資單上 的排列次序;不數(shù) 位數(shù)杲犬対2位注:如款項(xiàng)發(fā)生變動諸反時直新相關(guān)的款項(xiàng)公式及相關(guān)設(shè)置.在窗體中主要包含grid控件,添加、刪除、確認(rèn)按鈕,代碼略326 .設(shè)置計算公式模塊(editgs.scx 表單)錢別工資職務(wù)工資詞泣工資也8刑占每利補(bǔ)

15、貼特種舸占應(yīng)發(fā)工貴“基聿工竇”+ 郞另Ji靈?!甭毬涔べM(fèi)”*崗世工責(zé)”+槪底補(bǔ)貼?!贝胶脱a(bǔ)貼” +書和瞬*崗恆慮貼”扣數(shù)1-3:10,3.5-8 50 )賓童工貿(mào)應(yīng)握工資扣旣心君St r-夸範(fàn)款頊間的婪式關(guān)東I 燉 I基本工資在此表單的設(shè)計中主要涉及二個關(guān)鍵部分:(1)對應(yīng)工資欄目如何動態(tài)地在表單中顯示,因?yàn)橛捎诠べY結(jié)構(gòu)的不同,需要動 態(tài)改變工資欄目的顯示內(nèi)容。此功能主要是通過以下代碼實(shí)現(xiàn)的:forml.i nit 事件use gzk_rylb in 0use gzk_gs excl in 0use gzk_stru in 0sele gzk_strusca n for rec no( )7

16、&屏蔽掉系統(tǒng)定義的的欄目k1=L+iif(k10,str(k, 1),str(k,2)k2=allt(field_name)thisform.addobject(&k1,label)&向表單中增加對象 labelthisform.&k1.forecolor=rgb(0,0,255) &設(shè)置 label 的前景色thisform.&k1.visible=.t.thisform.&k1.backstyle=0thisform.&k1.top=50+l*15 thisform.&k1.left=(i-1)*100+20 thisform.addobject(&k2,label) thisform.&

17、k2.visible=.t.thisform.&k2.backstyle=0thisform.&k2.top=50+l*15thisform.&k2.left=(j-1)*100+60 i=i+1j=j+1&設(shè)置 label 的上邊界&設(shè)置 label 的左邊界&設(shè)置欄目名稱if mod(i,7)=0&設(shè)置回行顯示l=l+1i=1j=1endifK=K+1endscan2)對應(yīng)不同人員類別設(shè)置不同的計算公式的實(shí)現(xiàn)通過公式數(shù)據(jù)在程序中主要的通過一個combo控件與gridl控件相關(guān)聯(lián)來實(shí)現(xiàn)的 庫 gzkgs.dbf 中的“類別”字段分類計算公式。記錄 欄目 1 欄目 2類別1 實(shí)發(fā)工資=基礎(chǔ)工資

18、+職務(wù)工資+012 實(shí)發(fā)工資=(基礎(chǔ)工資+職務(wù)工資+)*0.6 02在職)退養(yǎng))3.2.7. 工資計算模塊( gzjs.prg )close alluse tmp_gzk in 0use gzk_gs in 0 sele gzk_gsfor 1=1 to recc() &此處關(guān)鍵是防止公式設(shè)置次序不同而計算出錯go topsca nk1=allt( 欄目 1) k2=allt(substr( 欄目 2,2) k3=”+allt(類別)+”類別=&k3sele tmp_gzkrepl all &k1 with &k2 forsele gzk_gsendscanen dfor3.2.8.數(shù)據(jù)錄入/

19、修改模塊(edit_gzk.scx )在此表單的設(shè)計中主要涉及三個關(guān)鍵部分(1)復(fù)選按鈕框如何根據(jù)工資庫結(jié)構(gòu)動態(tài)變化,(2)復(fù)選按鈕選定狀態(tài)如何在grid控件中實(shí)現(xiàn)動態(tài)對應(yīng),(3)如何將部門、 人員類別與grid控件進(jìn)行動態(tài)綁定,以減少用戶輸入錯誤率。對于第(1)個問題可參照設(shè)置計算公式模塊(editgs.scx )中的方法實(shí)現(xiàn)。mycheckbox實(shí)現(xiàn)的,部分對于第( 2)(3)個問題在本程序中主要通過設(shè)計用戶類 代碼如下:mycheck.clicklocal ii=1* 移去對應(yīng) combo1sele gzk_struscan for list_check=1k1=column+str(i

20、,iif(i10,1,2)if field_ name=類別.or.field _n ame=咅部門thisform.grid1.&k1.removeobject(combo1,combobox)endifi=i+1endscani=1if this.value=1repl list_check with 1 for field_name=this.caption elserepl list_check with 0 for field_name=this.caption endif* k=substr(,6)& 用此順序要調(diào)整* this.parent.grid1.dele

21、tecolumn(&k) thisform.grid1.recordsource=tmp_gzk coun for list_check=1 to n thisform.grid1.columncount=nscan for list_check=1 k1=column+str(i,iif(i10,1,2) k2=tmp_gzk.+allt(field_name)k3=allt(field_name) */ 判斷是否顯示組合框if field_name= 類別 .or.field_name= 部門 thisform.grid1.&k1.addobject(combo1,combobox) th

22、isform.grid1.&k1.currentcontrol=combo1thisform.grid1.&bo1.visible=.t.thisform.grid1.&bo1.rowsourcetype=6 thisform.grid1.&bo1.columncount=2 do casecase field_name= 類別 thisform.grid1.&bo1.rowsource=gzk_rylb.類別 , 類別名稱case field_name= 部門 thisform.grid1.&bo1.rowsource=gzk_bm.部門 , 部門名稱 endcaseelsethisform

23、.grid1.&k1.currentcontrol=text1endifthisform.grid1.&k1.controlsource=&k2thisform.grid1.&k1.header1.alignment=2thisform.grid1.&k1.header1.caption=&k3thisform.grid1.&k1.width=max(field_len*8,len(field_name)*6) i=i+1endscanthisform.grid1.setfocusthisform.grid1.refresh3.2.9 查詢( selegzk.scx )查詢模塊是利用 visu

24、al foxpro 6.0 自帶類庫實(shí)現(xiàn)的,代碼略3.2.10 生成月工資庫模塊 (creatmonthgzk.scx)生成月工資庫控件的 click 事件如下:k=gzk+left(allt(dtos(date(),6)kk=gzk+left(allt(dtos(date(),6)+.dbfif file(sys(5)+sys(2003)+databak+&kk)&此處主要對文件路徑的設(shè)置if messagebox( 本月工資庫已存在,要重新建立嗎? ,1+16+0)=1close allelsethisform.releasereturnendifendifcopy file tmp_gz

25、k.dbf to &kkclose allcopy file &kk to sys(5)+sys(2003)+databak+&kkdele file &kk3.2.11 打印工資模塊( printone.scx ) Pam年Di月直粥決員工裘空員工號至齊工廣馥別工燙劇務(wù)工燙刪Ewfil陽*卜中特滬補(bǔ)殆崗丘洼皓匣童工資正式工000張三_|jd.odoq.od.m IQ0|閔OOTM合計oToo o?0o djdq o?oq aoq cTaoj o.oo| o.oo| o.do o.ooM I知人隹任衛(wèi)蜩知 凱 徘序鳥琳益文件輪匕 h 色打印數(shù)據(jù)庫報表及表單設(shè)計都是靜態(tài)的,如何根據(jù)不同的數(shù)據(jù)結(jié)構(gòu)

26、生成不同的報表是 vfp報表設(shè)計中的一個難題,一般的方法是將數(shù)據(jù)導(dǎo)出到excel表中或者word文檔中來 實(shí)現(xiàn),在此程序中我對vfp動態(tài)制表進(jìn)行了探索,獲得了一些設(shè)置方法,雖然與其他專 用報表軟件不能媲美。但至少找到了一個解決的途徑。以下是實(shí)現(xiàn)的部分代碼:設(shè)置報表標(biāo)題titletext=”+space(5)+thisform.text1.value+” & for each ii in .colu mnsif ii.width0a(i,1)=ii.co ntrolsource a(i,2)=ii.header1.captio n k=k+ii.c on trolsource+, i=i+1J=

27、J+1en difen dfork=substr(k,1,le n(k)-1)en dwith以上代碼主要實(shí)現(xiàn)根據(jù)用戶選擇的打印欄目生成SELE lstmp copy fiel &k to lstmpfrx &臨時打印數(shù)據(jù)庫crea repo lsfrx from lstmpfrxuse lsfrx.frx excl in 0sele lsfrxgo 2insert blank beforerepl platform with WINDOWS,objtype with 9,objcode with 0,NOREPEATwith .f.,pagebreak with .f.,colbreak with .f.,resetpage with .f.,plain with .f., height with 1354*headheight for platform= go 4inser blank before&設(shè)定數(shù)據(jù)分組if srfgroup= 姓名 repl platform with WINDOWS,objtyp

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論