基于cs模式的人事工資管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)_第1頁(yè)
已閱讀5頁(yè),還剩50頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

圖11主界面程序流程圖6.4日常工作模塊的設(shè)計(jì)日常工作主菜單包括人事管理模塊,工資管理模塊基本模塊,人事管理模塊又包括員工基本信息維護(hù)和員工基本信息查詢(xún),可以對(duì)其進(jìn)行打印,數(shù)據(jù)導(dǎo)出等操作;工資管理模塊有出盤(pán)和工資短信兩個(gè)基本功能,其中出盤(pán)是按所規(guī)定的格式生成與銀行進(jìn)行數(shù)據(jù)交換的軟件,一般為文本文件,這個(gè)功能塊對(duì)整個(gè)系統(tǒng)來(lái)說(shuō)至關(guān)重要,是聯(lián)系公司,銀行以及公司員工的紐帶。6.4.11、功能介紹:多數(shù)據(jù)庫(kù)表之間的鏈接操作是本模塊的設(shè)計(jì)重點(diǎn),在生成員工工資信息的過(guò)程中,為了能夠顯示工資數(shù)據(jù),系統(tǒng)要建立基本參數(shù)表、員工資料表、員工薪水賬目表之間的連接操作,為了能夠按銀行格式輸出,此模塊將要實(shí)現(xiàn)的功能是:選擇月份出盤(pán),打印工資清單,出軟盤(pán)與銀行接口,一般不準(zhǔn)刪除歷史月份,不能修改,只能查詢(xún),如需對(duì)本月工資信息進(jìn)行維護(hù),見(jiàn)新員工工資新增、員工工資修改。成功失敗失敗是選取出盤(pán)的月份確認(rèn)出盤(pán)否成功失敗失敗是選取出盤(pán)的月份確認(rèn)出盤(pán)否是退出選擇存盤(pán)路徑否將該月的數(shù)據(jù)作為下個(gè)月的初始數(shù)據(jù)插入Ygxjjgb中回滾在Kjcsb中插入一條記錄,表示該月已經(jīng)出盤(pán)成功數(shù)據(jù)存盤(pán)成功圖12出盤(pán)程序流程圖出盤(pán)回滾如圖13所示。出盤(pán)發(fā)生錯(cuò)誤出盤(pán)發(fā)生錯(cuò)誤如果Ygxjjgb已經(jīng)存在下月數(shù)據(jù),刪除如果Cjcsb存在該月出盤(pán)成功標(biāo)志,刪除圖13出盤(pán)回滾程序流程圖3、程序執(zhí)行步驟(1)生成出盤(pán)數(shù)據(jù)列表;(2)查看是否有可出盤(pán)的數(shù)據(jù),有則執(zhí)行保存,沒(méi)有給出提示信息;(3)選擇出盤(pán)路徑,執(zhí)行出盤(pán)操作,否則失??;(4)將本月記錄作為下月工資初始數(shù)據(jù),插入員工薪金結(jié)構(gòu)表,修改控制參數(shù)表中的出盤(pán)成功標(biāo)志;(5)若出盤(pán)失敗,進(jìn)行出盤(pán)回滾,刪除存在的下月數(shù)據(jù)記錄以及本月的出盤(pán)標(biāo)志。6.4.2工資查詢(xún)功能是通過(guò)輸入月份,使用SQL的多連接查詢(xún)功能,分別從員工資料表,薪金結(jié)構(gòu)表和基本參數(shù)表中顯示員工號(hào),員工姓名,以及薪水賬目。數(shù)據(jù)通過(guò)DBGrid控件顯示出來(lái),最后一行有合計(jì)賬目顯示。此功能結(jié)果給工資管理員對(duì)工資表的打印,當(dāng)月工資的出盤(pán)提供了原始數(shù)據(jù),實(shí)現(xiàn)的關(guān)鍵在于SQL的多連接查詢(xún)功能。下面介紹程序設(shè)計(jì)步驟。(1)清空DBGrid控件中顯示信息。(2)在基本參數(shù)表中查詢(xún)薪水賬目,將薪水賬目作為顯示標(biāo)題。(3)從員工資料表和薪金結(jié)構(gòu)表中查找與輸入月份對(duì)應(yīng)的員工號(hào)和姓名,并顯示出來(lái)。(4)從員工資料表、薪金結(jié)構(gòu)表、基本參數(shù)表中連接查詢(xún)員工號(hào),薪水賬目,數(shù)目。(5)數(shù)據(jù)顯示表中各列求和統(tǒng)計(jì)。6.5系統(tǒng)維護(hù)模塊設(shè)計(jì)系統(tǒng)維護(hù)模塊主要包括部門(mén)信息維護(hù)、職務(wù)信息維護(hù)、職稱(chēng)信息維護(hù)、工資賬目維護(hù)、用戶(hù)管理等幾個(gè)方面。主要是對(duì)員工部門(mén)信息、職務(wù)信息、職稱(chēng)信息、工資賬目信息進(jìn)行增加、刪除等功能,不能修改,若要修改,先刪除再增加,當(dāng)然刪除操作會(huì)使數(shù)據(jù)不一致,系統(tǒng)會(huì)給以提示。用戶(hù)管理主要實(shí)現(xiàn)新增、刪除用戶(hù)、修改密碼等功能。程序流程如下:(1)初始狀態(tài)下,輸入框設(shè)置為無(wú)效;(2)點(diǎn)擊新增按鈕后,在輸入框中輸入要新增的內(nèi)容,點(diǎn)擊提交按鈕將信息提交到數(shù)據(jù)庫(kù)中;(3)選擇某行后,點(diǎn)擊刪除按鈕,系統(tǒng)提示,刪除將導(dǎo)致數(shù)據(jù)的不一致,然后交由用戶(hù)選擇是否刪除,若點(diǎn)確定,將此記錄從數(shù)據(jù)庫(kù)中刪除。6.5.1為了保證系統(tǒng)安全,系統(tǒng)初始化時(shí)建立一個(gè)系統(tǒng)用戶(hù)其用戶(hù)名和密碼均為小字的system,只有此用戶(hù)才具有用戶(hù)管理的功能,其它用戶(hù)不能訪問(wèn)這個(gè)界面,如果要新增用戶(hù)、刪除用戶(hù)、修改密碼只能以此用戶(hù)登錄,當(dāng)然系統(tǒng)用戶(hù)可以修改自己的密碼,但不能刪除自己。修改口令時(shí)要輸入兩次,只有兩次一致時(shí)才能修改成功。數(shù)據(jù)來(lái)源用戶(hù)口令表。6.5.2工資結(jié)構(gòu)維護(hù)模塊要求在同一窗口上實(shí)現(xiàn)新員工工資新增和員工工資結(jié)構(gòu)調(diào)整,通過(guò)在出盤(pán)窗口上點(diǎn)擊右鍵選擇是新增還是修改員工資信息,動(dòng)態(tài)改變提交按鈕上顯示的信息,實(shí)現(xiàn)調(diào)整員工工資結(jié)構(gòu)的目的。使用該功能時(shí),輸入員工號(hào)按回車(chē),觸發(fā)查詢(xún)事件,從基本參數(shù)表中取出工資賬目信息(包括ID、名稱(chēng)、關(guān)系)再?gòu)男剿~目中取出數(shù)據(jù),顯示在表格中,直接在網(wǎng)格中對(duì)信息進(jìn)行修改,系統(tǒng)自動(dòng)計(jì)算應(yīng)發(fā)工資和實(shí)發(fā)工資。6.6報(bào)表系統(tǒng)模塊設(shè)計(jì)采用餅圖分析公司的人事?tīng)顩r,實(shí)現(xiàn)按性別、職稱(chēng)、職務(wù)、學(xué)歷、部門(mén)五種情況分析公司人員的分布情況,直觀的分析了公司的人力資源情況,用以輔助公司領(lǐng)導(dǎo)安排人力資源計(jì)劃,采用DBChart控件可以方便的實(shí)現(xiàn)。7系統(tǒng)的實(shí)現(xiàn)7.1登陸界面的實(shí)現(xiàn)與運(yùn)行1、登陸窗體實(shí)現(xiàn)流程(1)用戶(hù)輸入賬號(hào)和密碼;(2)系統(tǒng)判斷密碼是否為空(3)系統(tǒng)根據(jù)用戶(hù)名取出用戶(hù)口令,用戶(hù)名若不存在,從(1)循環(huán);若密碼錯(cuò)誤,N=+1,從(2)循環(huán);(4)判斷N≤3,若為真,登陸成功。2、模塊實(shí)現(xiàn)代碼Ifedit2.text=”then//判斷密碼是否輸入為空Application.MessageBox(‘密碼不能為空,請(qǐng)重新輸入!’,’系統(tǒng)提示’,mb_IconInformation+mb_OK);query1.sql.add(‘selectpswdfromyhklbwheredlyh=’+”””+trim(edit1.text)+”””);//根據(jù)用戶(hù)名從用戶(hù)口令表中取出用戶(hù)口令I(lǐng)fedit2.text<>query1.fieldbyname(‘pswd’).asstringiferr_cou=2then//判斷是否三次輸入錯(cuò)誤application.messagebox(‘三次登錄的用戶(hù)名或密碼錯(cuò)誤’,’系統(tǒng)退出’,mb_IconInformation+mb_OK);frm_main.close;//關(guān)閉主窗口,退出系統(tǒng)Application.MessageBox(‘密碼或工號(hào)不正確’,’請(qǐng)重新輸入’,mb_IconInformation+mb_OK);//若密碼輸入錯(cuò)誤,提示重新輸入err_cou:=err_cou+1;//輸入次數(shù)加1dluser:=edit1.text;//給變量賦值,記錄登錄用戶(hù),供其它程序使用3、登陸界面是在系統(tǒng)啟動(dòng)界面消失后出現(xiàn)的,其運(yùn)行畫(huà)面如圖15所示。7.2數(shù)據(jù)庫(kù)設(shè)置界面的實(shí)現(xiàn)1、數(shù)據(jù)庫(kù)設(shè)置界面的實(shí)現(xiàn)實(shí)際上就是系統(tǒng)C/S模式實(shí)現(xiàn)的過(guò)程,它實(shí)現(xiàn)的主要功能為連接局域網(wǎng)上的數(shù)據(jù)庫(kù)。界面包括IP地址的設(shè)置文本框、服務(wù)器設(shè)置文本框、數(shù)據(jù)庫(kù)設(shè)置文本框和三個(gè)基本按鈕。圖15登陸界面2、數(shù)據(jù)庫(kù)連接運(yùn)行窗口如圖16所示。圖16數(shù)據(jù)庫(kù)連接設(shè)置窗口圖3、數(shù)據(jù)庫(kù)設(shè)置功能的實(shí)現(xiàn)流程及思路(1)填寫(xiě)數(shù)據(jù)庫(kù)連接信息;包括IP地址,服務(wù)器名稱(chēng),數(shù)據(jù)庫(kù)名稱(chēng)信息的輸入。(2)測(cè)試連接。首先測(cè)試是否能連接到主機(jī)地址,然后測(cè)試是否能連接到數(shù)據(jù)庫(kù)服務(wù)器,最后測(cè)試數(shù)據(jù)庫(kù)服務(wù)器中是否有用戶(hù)所設(shè)置的數(shù)據(jù)庫(kù)。(3)若連接成功,則將系統(tǒng)中所有ADOConnection組件中的屬性修改為新設(shè)置的數(shù)據(jù),然后退出系統(tǒng)重新登陸。(4)若連接不成功,返回出錯(cuò)信息,并提示用戶(hù)重新輸入連接設(shè)置信息。4、實(shí)現(xiàn)關(guān)鍵代碼:ifadoquery1.connection=falsethenvs_Host:=edit1.text+’.’+edit2.text+’.’+edit3.text+’.’edit4.text;vs_DatabaseName:=edit5.text;withADOConnection1doProvider:='SQLOLEDB.1';//數(shù)據(jù)庫(kù):SQLServerProperties['DataSource'].Value:=vs_Host;//服務(wù)器地址Properties['InitialCatalog'].Value:=vs_DatabaseName;//數(shù)據(jù)庫(kù)名ADOConnection1.LoginPrompt:=False;ADOConnection1.Provider:='SQLOLEDB.1';Except//未連接上,彈出配置窗口,重新連接showmessage('無(wú)法連接數(shù)據(jù)庫(kù)!');elseapplication.MessageBox(pchar('無(wú)法連接數(shù)據(jù)庫(kù)!'),'錯(cuò)誤信息',16);application.Terminate;7.3主界面實(shí)現(xiàn)與運(yùn)行7.3.1功能介紹主界面的實(shí)現(xiàn)就是用一個(gè)MainMenu控件,一個(gè)Timer控件,一個(gè)ImageList控件來(lái)完成的,包括日常工作,系統(tǒng)維護(hù),報(bào)表系統(tǒng)幾個(gè)基本菜單,日常工作包括人事管理,工資管理兩個(gè)子模塊,系統(tǒng)維護(hù)包括部門(mén)信息維護(hù),工資結(jié)構(gòu)信息維護(hù),用戶(hù)信息維護(hù)等4個(gè)子模塊,報(bào)表系統(tǒng)包括工資報(bào)表的生成,人事?tīng)顩r餅圖的生成兩個(gè)子模塊。其中工資出盤(pán),工資報(bào)表生成模塊,工資查詢(xún)模塊是本系統(tǒng)的重要功能。每個(gè)基本功能都有對(duì)應(yīng)的快捷圖標(biāo)顯示,使用非常方便。7.3.2運(yùn)行界面主界面運(yùn)行圖如圖17所示。7.4員工資料查詢(xún)功能實(shí)現(xiàn)與運(yùn)行7.4.1功能介紹可以根據(jù)不同的條件組合,查詢(xún)員工的基本信息,查詢(xún)條件包括所屬部門(mén)、職稱(chēng)、職務(wù)、學(xué)歷、性別、政治面貌、員工號(hào)、姓名,和條件可以任意組合。同時(shí)應(yīng)具有查詢(xún)標(biāo)專(zhuān)為無(wú)效的員工的作用。系統(tǒng)同時(shí)應(yīng)提供Excel輸出和打印的功能。多條件查詢(xún)是本模塊重點(diǎn)考慮的內(nèi)容,本設(shè)計(jì)完成了對(duì)多字段、多條件的查詢(xún)。圖17主界面運(yùn)行畫(huà)面圖7.4.2功能實(shí)現(xiàn)1、查詢(xún)功能程序流程及思路如下所示。(1)關(guān)閉Query組件;(2)翻譯用戶(hù)輸入,動(dòng)態(tài)添加SQL;(3)依次判斷是否選擇部門(mén),職稱(chēng),職務(wù),政治面貌,學(xué)歷,姓名,員工號(hào),性別,姓名,有效標(biāo)志,若輸入,依次在SQL語(yǔ)句中添加輸入條件;(4)打開(kāi)Query組件進(jìn)行查詢(xún);(5)訪問(wèn)數(shù)據(jù)庫(kù),判斷是否有所查詢(xún)記錄,若有,窗口顯示查詢(xún)信息,否則,給出提示信息:沒(méi)有您所選擇的員工資料,請(qǐng)確認(rèn)輸入條件是否正確。2、其實(shí)現(xiàn)程序如下面程序分析query1.sql.clear;//翻譯用戶(hù)輸入,動(dòng)態(tài)添加SQLQuery1.sql.add(‘select*fromygzlbwhere1=1’);IfDBLookupComboBox1.text<>''then//判斷是否選擇了部門(mén)若選擇,添加所屬部門(mén)query1.sql.add('andssbm=:ssbm');query1.parambyname('ssbm').asstring:=DBLookupComboBox1.keyvalue;ifDBLookupComboBox2.text<>''then//判斷是否選擇了職務(wù),若選擇,添加職務(wù)條件query1.sql.add('andzw=:zw');query1.parambyname('zw').asstring:=DBLookupComboBox2.keyvalue;ifDBLookupComboBox3.text<>''then//判斷是否選擇了職稱(chēng)若選擇,添加職稱(chēng)條件query1.sql.add('andzc=:zc');query1.parambyname('zc').asstring:=DBLookupComboBox3.keyvalue;ifcombobox1.text<>''//判斷是否選擇了學(xué)歷,若選擇,添加學(xué)歷條件query1.sql.add('andxl=:xl');query1.ParamByName('xl').asstring:=combobox1.text;ifcombobox2.text<>''then//判斷是否選擇了政治面貌若選擇,添加政治面貌條件query1.sql.add('andzzmm=:zzmm');query1.ParamByName('zzmm').asstring:=combobox2.text;ifcombobox3.text<>''//判斷是否選擇了性別若選擇,添加性別條件query1.sql.add('andxb=:xb');query1.ParamByName('xb').asstring:=combobox3.text;ifedit1.text<>''//判斷是否輸入了員工號(hào),若已輸入,添加員工號(hào)條件query1.sql.add('andygh=:ygh');query1.parambyname('ygh').asstring:=edit1.text;//判斷是否輸入了姓名若輸入,添加員工姓名條件Ifedit2.text<>''thenquery1.sql.add('andxm=:xm');query1.parambyname('xm').asstring:=edit2.textifcheckbox1.checkedthen//有效標(biāo)志是否選擇若選擇,只選擇標(biāo)志有效的員工query1.sql.add(‘a(chǎn)ndyxbz=1’);//若選擇,只選擇標(biāo)志有效的員工query1.open;//打開(kāi)查詢(xún)ifquery1.isemptythen//判斷是來(lái)有記錄,若無(wú),彈出提示框showmessage(‘沒(méi)有你所要的員工資料,請(qǐng)確認(rèn)條件是否正確’);3、運(yùn)行界面模塊運(yùn)行界面如圖18所示。圖18員工資料查詢(xún)界面7.3工資查詢(xún)功能實(shí)現(xiàn)7.3.1功能介紹工資查詢(xún)功能是管理員需要實(shí)現(xiàn)的一項(xiàng)重要功能,查詢(xún)數(shù)據(jù)將是打印工資表,進(jìn)行數(shù)據(jù)出盤(pán)的重要憑證,實(shí)現(xiàn)的關(guān)鍵技術(shù)在于SQL的多連接操作。7.3.2功能實(shí)現(xiàn)功能實(shí)現(xiàn)代碼如下。StringGrid1.Rows[I].Clear;Sql:='selectmcfromjbcsb'+'wherelx=1';//從基本參數(shù)表中取出薪水賬目StringGrid1.Cells[J,0]:=Query1.FieldByName('mc').AsString;//將薪水賬目顯示在stringgrid1控件上做為標(biāo)題StringGrid1.Cells[1,0]:='姓名';//第一列顯示員工號(hào)StringGrid1.Cells[0,0]:='工號(hào)';//第二列顯示員工姓名Sql:='selectdistincta.ygh,a.xmxmfromygzlba,ygxjjgbwhereb.yf='''+Edit1.Text+''''+'anda.ygh=b.ygh';//多連接操作,從員工資料表和薪金結(jié)構(gòu)表中取出員工號(hào)和姓名StringGrid1.Cols[0].Add(Query1.FieldByname('ygh').AsString);StringGrid1.Cols[1].Add(Query1.FieldByname('xm').AsString);Sql:='selecta.mc,b.ygh,c.sm,c.ygh,c.xszmidfrom'+'jbcsba,ygzlbb,ygxjjgbcwherec.yf='+''''+Edit1.Text+''''+'anda.id=c.xszmidanda.lx=1'+'andb.ygh=c.ygh';//從員工資料表、薪金結(jié)構(gòu)表、基本參數(shù)表中取出員工號(hào)、薪水賬目、數(shù)目IfQuery1.FieldByName('mc').AsString=StringGrid1.Rows[0].Strings[J]thenStringGrid1.Cells[J,I]:=FormatFloat('0.00',Query1.FieldByName('sm').AsFloat);ifTrim(StringGrid1.Cells[I,J])=''thenStringGrid1.Cells[I,J]:='0.00';//各列為空,置為0.00FloatToStr(StrToFloat(StringGrid1.Cells[I,J])+StrToFloat(StringGrid1.Cells[I,StringGrid1.RowCount-1]));//將各列值求和StringGrid1.Cells[I,StringGrid1.RowCount-1]:=FormatFloat('0.00',StrToFloat(StringGrid1.Cells[I,StringGrid1.RowCount-1]));//設(shè)定顯示格式7.4員工基本信息輸入功能實(shí)現(xiàn)7.4.1功能介紹完成新員工人事檔案的建立,初始狀態(tài)下所有輸入和選擇框框均無(wú)效,只有點(diǎn)新增按鈕后才可用,同時(shí)提交按鈕變成有效。7.4.2功能實(shí)現(xiàn)1、實(shí)現(xiàn)關(guān)鍵代碼如下所示。qsrq:=FormatDatetime(‘YYYY-MM-DD’,datetimepicker1.Datetime);//出生日期rzsj:=FormatDatetime(‘YYYY-MM-DD’,datetimepicker2.Datetime);//入職時(shí)間czdate:=FormatDatetime(‘YYYY-MM-DDHH:MM:SS’,Now);//操作時(shí)間ifApplication.MessageBox(‘您確認(rèn)要提交嗎?’,’系統(tǒng)提示’,mb_IconInformation+mb_OK+mb_OKCancel)=IDCancelthenExit;if(Edit1.text=”)or(Edit2.text=”)thenApplication.MessageBox(‘姓名不能為空或員工號(hào)不能為空!’,’系統(tǒng)提示’,mb_IconInformation+mb_OK);Iftrim(DBLookupComboBox1.Text)=”thenshowmessage(‘請(qǐng)選擇部門(mén)’);Iftrim(DBLookupComboBox2.Text)=”thenshowmessage(‘請(qǐng)選擇職務(wù)’);iftrim(DBLookupComboBox3.Text)=”thenshowmessage(‘請(qǐng)選擇職稱(chēng)’);sql:=’select*fromygzlbwhereygh=””+trim(edit1.text)+”””;//根據(jù)此員工號(hào)是否已存在ifnotquery1.isemptythenshowmessage(‘此員工號(hào)已存在,請(qǐng)重新輸入員工號(hào)’);elsesql:='insertintoygzlb(ygh,xm,xb,xl,qsrq,ssbm,zc,zw,rzsj,sfzh,jtzz,gdlxdh,';+'sjhm,email,zzmm,yxbz,czy,czrq)'+'values('''+Trim(Edit1.Text)+''','''+trim(Edit2.text)+''','+''''+combobox1.text+''','''+combobox3.text+''','''+qsrq+''','''+DBLookupComboBox1.keyvalue+''','+''''+DBLookupComboBox3.keyvalue+''','''+DBLookupComboBox2.keyvalue+''','''+rzsj+''','''+edit3.text+''','+''''+trim(edit4.text)+''','''+trim(edit7.text)+''','''+trim(edit6.text)+''','''+trim(edit5.text)+''','+''''+combobox2.text+''',1,'''+dluser+''','''+czDate+''')';//執(zhí)行插入操作,往員工資料表中插入一條記錄2、運(yùn)行界面員工基本信息輸入運(yùn)行界面如圖19所示。圖19新員工資料錄入界面7.5出盤(pán)模塊實(shí)現(xiàn)與運(yùn)行7.5.1功能介紹出盤(pán)操作即是調(diào)出數(shù)據(jù),當(dāng)月工資數(shù)據(jù),通過(guò)設(shè)置與銀行要求格式相應(yīng)的函數(shù),并對(duì)起進(jìn)行調(diào)用,生成與銀行接口的文本程序,然后進(jìn)行相應(yīng)的參數(shù)修改,若發(fā)生錯(cuò)誤,則進(jìn)行出盤(pán)回滾操作,恢復(fù)相應(yīng)的數(shù)據(jù)記錄。7.5.2功能實(shí)現(xiàn)1、執(zhí)行代碼如下所示。IfTrim(StringGrid1.Cols[0].Strings[1])=''then//判斷是否有Application.MessageBox('沒(méi)有可出盤(pán)的數(shù)據(jù)!','系統(tǒng)提示',mb_IconInformation+mb_OK)ifSaveDialog1.Executethen//執(zhí)行保存Sql:='selectcsdmfromkjcsbwhereyf='//查詢(xún)控制參數(shù)表本月是否有記錄+''''+Trim(Edit1.Text)+'''andcsmc=''出盤(pán)標(biāo)志''';IfQuery2.FieldByName('csdm').AsString='0'then//有記錄,但未出盤(pán),執(zhí)行outdiskDateStr:=FormatDateTime('YYYY-MM-DDHH:MM:SS',Now);Sql:='selectyf,ygh,xszmid,smfromygxjjgbwhereyf='''+Edit1.Text+'''';//取出本月工資數(shù)據(jù),將本月記錄作為下月工資初始數(shù)據(jù)Sql:='insertintoygxjjgb(yf,ygh,xszmid,sm,czy,czsj)values('+''''+ReturnNextMonth(StrToInt(Trim(Edit1.Text)))+''''+','+''''+Query2.FieldByName('ygh').AsString+''''+','+Query2.FieldByName('xszmid').AsString+','+Query2.FieldByName('sm').AsString+','+''''+dluser+''''+','+''''+DateStr+''''+')';Sql:='updatekjcsbsetcsdm=''1''whereyf='''+Trim(Edit1.Text)+''''+'andcsmc=''出盤(pán)標(biāo)志''';//更新控制參數(shù)表IfCopy(Trim(Edit1.Text),5,2)='12'thenNextMonth:=IntToStr(StrToInt(Copy(Trim(Edit1.Text),5,2))+1)+'01'elseNextMonth:=IntToStr(StrToInt(Trim(Edit1.Text))+1);//取下一個(gè)月月份Sql:='insertintokjcsb(csdm,yf,csmc)values('//控制參數(shù)表插入記錄,但標(biāo)志為0+'''0'','''+NextMonth+''','+'''出盤(pán)標(biāo)志'')';FileDir:=SaveDialog1.FileName;Save_Disk(FileDir);//調(diào)用過(guò)程保存文本文件Application.MessageBox('出盤(pán)成功!','系統(tǒng)提示',mb_IconInformation+mb_OK);//提示出盤(pán)成功Application.MessageBox('您未選擇存放路徑,系統(tǒng)將不出盤(pán)!','系統(tǒng)提示',mb_IconInformation+mb_OK);ifCopy(Trim(Edit1.Text),5,2)='12'2、運(yùn)行界面出盤(pán)運(yùn)行界面如圖20所示。圖20出盤(pán)界面7.6報(bào)表生成與打印7.6.1模塊實(shí)現(xiàn)技術(shù)通過(guò)Delphi7.0中的QReport組件生成報(bào)表,通過(guò)報(bào)表打印企業(yè)人事信息數(shù)據(jù)。7.6.2功能實(shí)現(xiàn)1、程序流程設(shè)計(jì)系統(tǒng)設(shè)計(jì)了一個(gè)打印設(shè)置報(bào)表,將打印信息分成若干個(gè)報(bào)表,然后通過(guò)報(bào)表中的打印按鈕來(lái)把要打印的信息傳送到打印機(jī)。2、程序關(guān)鍵代碼Gzdy.adoquery1.Sql:='selectcsdmfromkjcsbwhereyf='//查詢(xún)控制參數(shù)表本月是否有記錄+''''+Trim(Edit1.Text)+'''andcsmc=''出盤(pán)標(biāo)志''';gzdy.QuickRep1.Preview;3、運(yùn)行界面報(bào)表生成界面如圖22所示。圖22系統(tǒng)報(bào)表界面圖7.7人事餅圖分析模塊實(shí)現(xiàn)與運(yùn)行7.7.1模塊實(shí)現(xiàn)技術(shù)通過(guò)DBChart控件和RadioButton控件的使用,以及對(duì)RadioButtonSQL語(yǔ)句的插入,連接數(shù)據(jù)庫(kù)中相應(yīng)的數(shù)據(jù)表,分按性別生成,按學(xué)歷生成,按部門(mén)生成,按職稱(chēng)生成,按職務(wù)生成五種餅圖生成情況,生成直觀形象的餅狀表示圖,另外還有3D效果選擇框,可以因需求對(duì)其進(jìn)行選擇。7.7.2功能實(shí)現(xiàn)此功能主要就是對(duì)相關(guān)控件屬性設(shè)置,代碼如下。Ifradiobutten1checked.ThenQuery1.sql.add(selectcount(*)rs,xbhlfromygzlbgroupbyxb’);Ifradiobutten2checked.ThenQuery2.sql.add(selectcount(*)rs,xlhlfromygzlbgroupbyxl’);Ifradiobutten3.checked.ThenQuery3.sql.add(selectcount(*)rs,ssbmhlfromygzlbgroupbyssbm’);Ifradiobutten4.checked.thenQuery4.sql.add(selectcount(*)rs,zchlfromygzlbgroupbyzc’);Ifradiobutten5.checked.thenQuery5.sql.add(selectcount(*)rs,zwhlfromygzlbgroupbyzw’);DBChart1.View3d:=CheckBox1.checked;DBChart控件進(jìn)行SeriesList相應(yīng)屬性的設(shè)置,即可完成起功能。3、運(yùn)行界面界面運(yùn)行圖如圖21所示。圖21人事餅狀分析圖8畢業(yè)設(shè)計(jì)總結(jié)本系統(tǒng)通過(guò)自己的努力,經(jīng)過(guò)試用證明,系統(tǒng)基本滿(mǎn)足人事工資管理方面的需要。實(shí)現(xiàn)了人事管理、工資管理、出盤(pán)、代碼維護(hù)、報(bào)表生成等功能,給公司人事管理帶來(lái)很多方便,在界面上力求做到美觀、在操作方面盡量做到滿(mǎn)足用戶(hù)使用習(xí)慣。在一個(gè)系統(tǒng)開(kāi)發(fā)的過(guò)程中編碼不是重要的,重要的是分析系統(tǒng)、建立起系統(tǒng)模型。在分析一個(gè)系統(tǒng)前,分析人員必須要對(duì)將要開(kāi)發(fā)的系統(tǒng)所涉及到的各方面知識(shí)有一個(gè)認(rèn)識(shí),然后將系統(tǒng)的模型建立起來(lái)。而且一個(gè)成功的軟件要符合用戶(hù)的需要,要以用戶(hù)為中心,開(kāi)發(fā)出用戶(hù)想要的軟件,而不能自以為是,想當(dāng)然。在編碼中,良好的編程風(fēng)格與習(xí)慣是提高工作效率的一個(gè)重要方面,而且良好的編程風(fēng)格與習(xí)慣也是使軟件便于維護(hù)的基礎(chǔ)。那如何是良好的編程風(fēng)格與習(xí)慣呢?我認(rèn)為主要是程序的模塊化、必要的注釋和完備的設(shè)計(jì)文檔三個(gè)方面。所謂模塊化就是使程序的功能實(shí)現(xiàn)分成多個(gè)單獨(dú)的功能模塊,而不能在一大段代碼中實(shí)現(xiàn)多個(gè)功能,如果這樣做,別的人是非常難讀懂你的程序。必要的注釋?zhuān)@而易

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論