版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、<p> 課 程 設(shè) 計 說 明 書</p><p> 課程名稱 程序設(shè)計方法課程設(shè)計 </p><p> 題 目 公司人事管理系統(tǒng)的設(shè)計 </p><p> 院 系 ***** </p><p> 班 級 ******
2、 </p><p> 學(xué)生姓名 ***** </p><p> 指導(dǎo)教師 ****** </p><p> 日 期 2012年12月28日 </p><p><b> 課程設(shè)計任務(wù)書</b></p&g
3、t;<p><b> ?。ㄖ笇?dǎo)教師填寫)</b></p><p> 設(shè)計題目 公司人事管理系統(tǒng) </p><p><b> 課程設(shè)計目的</b></p><p> 該課程設(shè)
4、計是信息管理本科集中實踐性環(huán)節(jié)之一,是學(xué)習(xí)完《數(shù)據(jù)庫基礎(chǔ)與應(yīng)用》和《程序設(shè)計方法》課程后進行的一次全面的綜合練習(xí)。其目的是通過本課程設(shè)計使學(xué)生對具體問題應(yīng)用《程序設(shè)計方法》課程中所學(xué)的方法與技術(shù),進行需求分析及軟件設(shè)計的過程,不僅對程序設(shè)計方法課程中的所有知識點進行一個全面的復(fù)習(xí)鞏固,更重要的是增強學(xué)生解決實際問題的能力。</p><p> 設(shè)計內(nèi)容、技術(shù)條件和要求</p><p>
5、1、具有對公司組織信息和公司組織構(gòu)架的查看功能;</p><p> 2、具有員工和主管信息的各種形式的查詢功能;</p><p> 3、具有員工信息的添加、刪除,修改等功能;</p><p> 4、具有部門主管管理本部門雇員信息的功能;</p><p> 5、具有人事部主管管理公司內(nèi)部人力資源的功能;</p><p
6、> 6、具有公司現(xiàn)狀查看和評估的統(tǒng)計圖功能。</p><p> 技術(shù)條件:powerbuilder開發(fā)工具的熟練運用,數(shù)據(jù)庫理論知識和實際操作能力。</p><p> 要求:1、本課程設(shè)計要求學(xué)生獨立設(shè)計完成。包括規(guī)劃后臺數(shù)據(jù)庫、程序代碼的編寫以及軟件界面的設(shè)計。</p><p> 2、數(shù)據(jù)庫中不能少于3個表。</p><p>
7、 3、程序應(yīng)功能完善,界面友好,容錯性好,操作方便。</p><p><b> 時間進度安排</b></p><p> 系統(tǒng)分析與規(guī)劃 半周</p><p> 系統(tǒng)設(shè)計與調(diào)試 一周</p><p> 撰寫課程設(shè)計說明書 半周</p><p><b> 主要參考文獻<
8、/b></p><p> [1]鄭阿奇.PowerBuilder實用教程.第2版.北京:電子工業(yè)出版社,2004.</p><p> [2]明德祥.PowerBuilder實例下.第1版.長沙:國防科技大學(xué)出版社,2002.6.</p><p> [3]馬承志.PowerBuilder編程實例與技巧.第1版.北京:機械工程出版社,2002.</p&
9、gt;<p> 指導(dǎo)教師簽字: 2012年12月14日目錄</p><p> 1、系統(tǒng)功能介紹和設(shè)計1</p><p> 1.1系統(tǒng)功能介紹1</p><p> 1.2系統(tǒng)功能分析1</p><p> 1.3系統(tǒng)功能模塊設(shè)計2</p
10、><p> 2、 數(shù)據(jù)庫設(shè)計3</p><p> 2.1數(shù)據(jù)庫概念結(jié)構(gòu)設(shè)計3</p><p> 2.2創(chuàng)建數(shù)據(jù)庫4</p><p> 2.3在數(shù)據(jù)庫中創(chuàng)建表:5</p><p> 2.4往公司的系統(tǒng)和結(jié)構(gòu)表里添加數(shù)據(jù)7</p><p> 3、 應(yīng)用程序的創(chuàng)建8</p&g
11、t;<p> 4、 應(yīng)用程序主窗口的創(chuàng)建8</p><p> 4.1菜單的設(shè)計8</p><p> 4.2系統(tǒng)用戶登陸界面9</p><p> 4.3組織信息窗口10</p><p> 4.3.1組織結(jié)構(gòu)圖窗口10</p><p> 4.3.2組織結(jié)構(gòu)窗口12</p>
12、<p> 4.4查詢信息窗口17</p><p> 4.4.1查詢個人信息窗口17</p><p> 4.4.2通訊錄窗口18</p><p> 4.5修改信息窗口19</p><p> 4.5.1修改個人信息窗口19</p><p> 4.5.2修改密碼窗口22</p>
13、<p> 4.6主管部門管理24</p><p> 4.6.1修改雇員信息24</p><p> 4.6.2增加刪除雇員27</p><p> 4.7人事管理窗口30</p><p> 4.7.1雇員增刪30</p><p> 4.7.2人事調(diào)動34</p><
14、p> 4.8統(tǒng)計圖窗口35</p><p> 4.8.1HR現(xiàn)狀35</p><p> 4.8.2工資分布圖36</p><p> 5、 主界面運行窗口37</p><p> 6、 程序設(shè)計方法課程設(shè)計評分表38</p><p> 公司人力資源管理系統(tǒng)</p><p>
15、; 1、系統(tǒng)功能介紹和設(shè)計</p><p><b> 1.1系統(tǒng)功能介紹</b></p><p> 1、具有系統(tǒng)登錄和用戶管理的功能。</p><p> 2、具有對公司組織信息和公司組織構(gòu)架的查看功能;</p><p> 3、具有員工和主管信息的各種形式的查詢功能;</p><p>
16、4、具有員工信息的添加、刪除,修改等功能;</p><p> 5、具有部門主管管理本部門雇員信息的功能;</p><p> 6、具有人事部主管管理公司內(nèi)部人力資源的功能;</p><p> 7、具有公司現(xiàn)狀查看和評估的統(tǒng)計圖功能。</p><p><b> 1.2系統(tǒng)功能分析</b></p><
17、;p> 作為公司的人事管理系統(tǒng)首先必須要具備查看本公司人事狀況的功能,其次是修改現(xiàn)有人員信息的功能,還要有主管管理本部門職員的功能,另外還有有人事主管管理整個公司的能力。為更近一步完善次系統(tǒng),設(shè)置了密碼和權(quán)限。具體如下:</p><p> 1、密碼設(shè)置。每個操作員均有自己的密碼,可以防止非本系統(tǒng)人員進入本 系統(tǒng);又因每個人的權(quán)限不一致,故可以防止越權(quán)操作。而且對于自身系統(tǒng)提供的密碼,用戶可以根據(jù)個人的情
18、況進行修改。</p><p> 2、權(quán)限設(shè)置。設(shè)置每個人的權(quán)限,使個人有個人的操作范圍,不能超出自己的范圍操作。為此可以幫助部門主管管理本部門雇員和人事主管管理企業(yè)人員的調(diào)配、裁員和引進。</p><p> 4、檔案更新。為了存放職工人事檔案的全部數(shù)據(jù),檔案更新包括對各種表的記錄修改、刪除、添加等操作,而且通過設(shè)置密碼怎家了修改、刪除和添加的安丘性能。</p><p
19、> 5、檔案查詢??梢园葱彰⒉块T或任意條件查詢個人和一部分人的情況,以及運用統(tǒng)計圖方便只管的查看本公司及部門人員的情況。</p><p> 1.3系統(tǒng)功能模塊設(shè)計</p><p> 1.4系統(tǒng)功能模塊介紹</p><p> 1、組織結(jié)構(gòu)查看模塊:幫助公司內(nèi)部人員很快的了解公司規(guī)模、公司的組織構(gòu)架、公司管理層人員情況、以及其他員工的個人基本情況。<
20、;/p><p> 2、雇員和主管信息查詢模塊:幫助公司內(nèi)部人員根據(jù)自己的需求快婿查找員工、主管的信息以及部門間的人員情況。</p><p> 3、修改雇員和主管信息模塊:修改個人信息必須只有本人才有此權(quán)限,而且工作的調(diào)換僅限于本部門內(nèi)的職務(wù)。首先必須輸入密碼才能進修修改,而且主管只能修改本部門員工的信息。同時可以進行密碼的修改功能。</p><p> 4、主管管理
21、本部門雇員模塊:部門主管僅可以修改本部門的成員信息和添加、刪除本部門的雇員,沒有權(quán)限干涉其他的部門。在刪除本部門雇員時,對應(yīng)人員的密碼會隨之注銷。在添加本部門雇員時,會分配出事密碼。</p><p> 5、人事主管進行人事管理模塊:人事主管具有部門之間的人事調(diào)配權(quán)利,以及公司人員的辭退和招聘。</p><p> 6、人力資源狀況圖查看模塊:幫助公司人員了解公司人力資源現(xiàn)狀(學(xué)歷分布)以
22、及部門、個人、主管的工資的分布情況。</p><p><b> 數(shù)據(jù)庫設(shè)計</b></p><p> 2.1數(shù)據(jù)庫概念結(jié)構(gòu)設(shè)計</p><p> 設(shè)計規(guī)劃出的實體有:主管信息實體 、雇員信息實體、部門實體、職務(wù)實體。</p><p> 主管信息實體的E-R圖如圖示:</p><p> 雇
23、員信息實體的E-R圖如圖示:</p><p> 部門信息實體的E-R圖如圖示:</p><p> 職務(wù)信息實體的E-R圖如圖示:</p><p><b> 2.2創(chuàng)建數(shù)據(jù)庫</b></p><p> ?。?)單擊工具欄上的Database圖標按鈕;</p><p> (2)在彈出的Data
24、base畫板中,打開Object子窗口,展開“ODB ODBC”項下的Utilities目錄。</p><p> (3)雙擊Utilities目錄下的“Create ASA DataBase”對話框,如圖示,彈出“Create Server AnyWhere Database”對話框。</p><p> ?。?)單擊“Broswe...”按鈕,彈出“Create Dtabase”對話框,
25、選擇合適的路徑,返回對話框。</p><p> (5)使用默認的用戶UserID項“dba”和默認的口令Password項“sql”,單擊ok按鈕,就可以創(chuàng)建一個ASA數(shù)據(jù)庫humenresource,同時,系統(tǒng)自動的為數(shù)據(jù)庫配置了ODBC和DB Profile,并且已經(jīng)到新建的數(shù)據(jù)庫。(可以看到數(shù)據(jù)庫名huemnresource的圖標上有一個綠色的小勾)。</p><p> 2.3在
26、數(shù)據(jù)庫中創(chuàng)建表:</p><p> (1)展開數(shù)據(jù)庫目錄,選中“Tables”,單擊鼠標右鍵,在彈出的選單中單擊“New Tables”,就會出現(xiàn)表的設(shè)計子窗口。</p><p> ?。?)在表的設(shè)計子窗口中,分別輸入每個字段的名稱,選擇合適的數(shù)據(jù)類型,數(shù)據(jù)寬度,是否允許為空等。最后單擊保存按鈕,鍵入表的名字。</p><p> 以此步驟建立了6個表,分別是ma
27、jor,employee、depart、duty、pass、passem。它們之間關(guān)系如下圖所示:</p><p> “employee”結(jié)構(gòu)如下圖所示</p><p> “major”結(jié)構(gòu)如圖所示</p><p> “depart”結(jié)構(gòu)如圖所示</p><p> “duty”結(jié)構(gòu)如圖所示</p><p>
28、“pass(主管密碼)” 結(jié)構(gòu)如圖所示</p><p> “passem(雇員密碼)”結(jié)構(gòu)如圖所示</p><p> 2.4往公司的系統(tǒng)和結(jié)構(gòu)表里添加數(shù)據(jù)</p><p><b> “depart”表</b></p><p><b> “duty”表</b></p><p
29、><b> 應(yīng)用程序的創(chuàng)建</b></p><p> 單擊菜單File/New項,在彈出式對話框中選取Workspace標簽下的Workspace,填入路徑保存;然后單擊菜單File/New項,選擇Target標簽下的Application,建立humen的應(yīng)用。在該應(yīng)用的open事件中添加如下腳本,用于鏈接數(shù)據(jù)庫,打開運行主窗口。</p><p> //
30、 Profile 123</p><p> SQLCA.DBMS = "ODBC"</p><p> SQLCA.AutoCommit = False</p><p> SQLCA.DBParm = "ConnectString='DSN=humen;UID=;PWD='"</p><
31、p><b> connect;</b></p><p> if sqlca.sqlcode<>0 then </p><p> messagebox("提示","數(shù)據(jù)庫連接錯誤!")</p><p><b> return</b></p>&l
32、t;p><b> end if</b></p><p> open(w_login)</p><p> 應(yīng)用程序主窗口的創(chuàng)建</p><p><b> 4.1菜單的設(shè)計</b></p><p> 在菜單畫面中設(shè)計的應(yīng)用程序主窗口中創(chuàng)建菜單company。該菜單的具體結(jié)構(gòu)如下圖所示:&
33、lt;/p><p> 4.2系統(tǒng)用戶登陸界面</p><p><b> “登陸”按鈕的代碼</b></p><p> string dl_name,dl_mima1,dl_mima2,lr_name,lr_mima </p><p><b> int i</b></p><p
34、> lr_name=trim(sle_1.text)</p><p> lr_mima=trim(sle_2.text)</p><p> select count(*)</p><p><b> into :i </b></p><p> from passem,pass</p><
35、p> where passem.id=:lr_name or pass.id=:lr_name</p><p> using sqlca;</p><p> if i<1 then</p><p> messagebox("對不起","該用戶不存在!")</p><p> sle_
36、1.text = ""</p><p> sle_2.text = ""</p><p> sle_1.setfocus()</p><p><b> return</b></p><p><b> end if</b></p><
37、p> select passem.password,pass.password</p><p> into :dl_mima1,:dl_mima2</p><p> from passem,pass</p><p> where passem.id=:lr_name or pass.id=:lr_name</p><p> u
38、sing sqlca;</p><p> if dl_mima1 <> lr_mima and dl_mima2<>lr_mima then</p><p> messagebox("對不起","密碼錯!")</p><p> sle_2.text = ""</p>
39、<p> sle_2.setfocus()</p><p><b> return</b></p><p><b> end if</b></p><p> open(w-start)</p><p> close(parent)</p><p>&l
40、t;b> “退出”按鈕的代碼</b></p><p> close(parent)</p><p><b> 4.3組織信息窗口</b></p><p> 4.3.1組織結(jié)構(gòu)圖窗口</p><p><b> 核心代碼</b></p><p> 首
41、先創(chuàng)建treeview所需的datawindow</p><p> infor_depart</p><p><b> xx_duty1</b></p><p><b> OPEN事件代碼:</b></p><p> datastore dt_dept,dt_duty</p>
42、<p> long ll_root,ll_hd_lv1</p><p> integer li_deptcnt,li_dutycnt,i,j</p><p> string ls_deptid,ls_deptname,ls_dutyid,ls_dutyname</p><p> string ls_temp</p><p>
43、 dt_dept = create datastore//創(chuàng)建數(shù)據(jù)存儲對象</p><p> dt_dept.dataobject = "infor_depart"</p><p> dt_dept.settransobject(sqlca)</p><p> dt_dept.retrieve()</p><p>
44、 dt_duty = create datastore</p><p> dt_duty.dataobject = "xs_duty1"</p><p> dt_duty.settransobject(sqlca)</p><p> dt_duty.retrieve()</p><p> //如是寫在窗口的ope
45、n()事件,此段代碼可省略。</p><p> ll_root = tv_1.finditem(roottreeitem!,0)</p><p> tv_1.setredraw(false)</p><p> tv_1.deleteitem(ll_root)</p><p> //如需要插入的項的父項的句柄為零,則插入根級。</
46、p><p> ll_root = tv_1.insertitemlast(0,"部門信息",1)</p><p> li_deptcnt = dt_dept.rowcount()//得到部門個數(shù)</p><p> for i = 1 to li_deptcnt</p><p> ls_deptid = dt_dept.
47、getitemstring(i,"depart_id")</p><p> ls_deptname = dt_dept.getitemstring(i,"depart_name")</p><p> ls_temp = ls_deptid + " " + ls_deptname</p><p> ll
48、_hd_lv1 = tv_1.insertitemsort(ll_root,ls_temp,1)</p><p> dt_duty.reset()</p><p> dt_duty.retrieve(ls_deptid)//為所建數(shù)據(jù)窗口中聲明的參數(shù)</p><p> li_dutycnt = dt_duty.rowcount()//得到該部門下屬職務(wù)<
49、/p><p> for j = 1 to li_dutycnt</p><p> ls_dutyid = dt_duty.getitemstring(j,"duty_id")</p><p> ls_dutyname = dt_duty.getitemstring(j,"duty_name")</p><
50、p> ls_temp = ls_dutyid + " " + ls_dutyname</p><p> tv_1.insertitemsort(ll_hd_lv1,ls_temp,2)</p><p><b> next</b></p><p><b> next</b></p>
51、;<p> tv_1.expanditem(ll_root)</p><p> tv_1.setredraw(true)</p><p> 4.3.2組織結(jié)構(gòu)窗口</p><p> 首先創(chuàng)建treeview所需的datawindow</p><p> infor_depart(同上)</p><p&
52、gt; Infor_major </p><p> Infor_employee</p><p> Infor_employee_one</p><p><b> Open事件代碼</b></p><p> datastore dt_dept,dt_duty,dt_maj,dt_emp</p>&
53、lt;p> long ll_root,ll_hd_lv1</p><p> integer li_deptcnt,li_empcnt,i,j</p><p> string ls_deptid,ls_deptname,ls_majid,ls_majname,ls_empid,ls_empname</p><p> string ls_temp</
54、p><p> dt_dept = create datastore//創(chuàng)建數(shù)據(jù)存儲對象</p><p> dt_dept.dataobject = "infor_depart"</p><p> dt_dept.settransobject(sqlca)</p><p> dt_dept.retrieve()</
55、p><p> dt_maj = create datastore</p><p> dt_maj.dataobject = "infor_major"</p><p> dt_maj.settransobject(sqlca)</p><p> dt_maj.retrieve()</p><p>
56、; dt_emp = create datastore</p><p> dt_emp.dataobject = "infor_employee"</p><p> dt_emp.settransobject(sqlca)</p><p> dt_emp.retrieve()</p><p> //如是寫在窗口的
57、open()事件,此段代碼可省略。</p><p> ll_root = tv_1.finditem(roottreeitem!,0)</p><p> tv_1.setredraw(false)</p><p> tv_1.deleteitem(ll_root)</p><p> //如需要插入的項的父項的句柄為零,則插入根級。&l
58、t;/p><p> ll_root = tv_1.insertitemlast(0,"部門信息",1)</p><p> li_deptcnt = dt_dept.rowcount()//得到部門個數(shù)</p><p> for i = 1 to li_deptcnt</p><p> ls_deptid = dt_de
59、pt.getitemstring(i,"depart_id")</p><p> ls_deptname = dt_dept.getitemstring(i,"depart_name")</p><p> ls_temp = ls_deptid + " " + ls_deptname</p><p>
60、 ll_hd_lv1 = tv_1.insertitemsort(ll_root,ls_temp,1)</p><p> dt_emp.reset()</p><p> dt_emp.retrieve(ls_deptid)//為所建數(shù)據(jù)窗口中聲明的參數(shù)</p><p> li_empcnt = dt_emp.rowcount()//得到該部門的人數(shù)</p
61、><p> for j = 1 to li_empcnt</p><p> ls_empid = dt_emp.getitemstring(j,"id")</p><p> ls_empname = dt_emp.getitemstring(j,"name")</p><p> ls_temp =
62、ls_empid + " " + ls_empname</p><p> tv_1.insertitemsort(ll_hd_lv1,ls_temp,2)</p><p><b> next</b></p><p><b> next</b></p><p> tv_1.
63、expanditem(ll_root)</p><p> tv_1.setredraw(true)</p><p> //destroy dt_dept</p><p> //destroy dt_emp</p><p> dw_1.dataobject = "infor_depart"</p>&l
64、t;p> dw_1.settransobject(sqlca)</p><p> dw_1.retrieve()</p><p> tv_1控件下的代碼:</p><p> int li_tlv,li_maj</p><p> string ls_deptid,ls_majid,ls_empid</p><
65、p> string ls_tlabel,ls_mlabel</p><p> treeviewitem ltvi_tmp,ltvi_dept</p><p> dw_1.reset()</p><p> //handle為此事件的參數(shù)。</p><p> this.getitem(handle,ltvi_tmp)</p&
66、gt;<p> li_tlv = ltvi_tmp.level//2</p><p> li_maj = ltvi_dept.level</p><p> ls_tlabel = ltvi_tmp.label</p><p> ls_mlabel = ltvi_dept.label</p><p> if li_tlv
67、 = 1 then</p><p> dw_1.dataobject = "infor_depart"</p><p> dw_1.settransobject(sqlca)</p><p> dw_1.retrieve()</p><p> elseif li_tlv = 2 then</p>&l
68、t;p> dw_1.dataobject = "infor_major"</p><p> dw_1.settransobject(sqlca)</p><p> ls_majid = mid(ls_tlabel,1,2)</p><p> dw_1.retrieve(ls_majid)</p><p>
69、elseif li_tlv = 3 then</p><p> dw_1.dataobject = "infor_employee_one"</p><p> dw_1.settransobject(sqlca)</p><p> ls_empid = mid(ls_tlabel,1,8)</p><p> dw_
70、1.retrieve(ls_empid)</p><p><b> end if</b></p><p><b> 4.4查詢信息窗口</b></p><p> 4.4.1查詢個人信息窗口</p><p><b> 查詢主管信息:</b></p><
71、p> 創(chuàng)建名為“major”的datawindow:</p><p> “查詢”按鈕下得代碼:</p><p><b> 查詢部門成員:</b></p><p> 創(chuàng)建名為bumen_empl的datawindow:</p><p> “查詢”按鈕下得代碼:</p><p> s
72、tring partname</p><p> partname=trim(ddlb_2.text)</p><p> dw_3.settransobject(sqlca)</p><p> dw_3.retrieve(partname)</p><p> 4.4.2通訊錄窗口</p><p> 創(chuàng)建名為in
73、for_number的datawindow:</p><p> “查詢”按鈕下的代碼:</p><p> string maj_name,maj_num,bumenname</p><p><b> int dd_no</b></p><p> bumenname=ddlb_1.text</p>&
74、lt;p> select major.name,major.number</p><p> into :maj_name,:maj_num</p><p> from major,depart</p><p> where :bumenname=depart.name and depart.id=major.major;</p><
75、p> sle_1.text=maj_name</p><p> sle_2.text=maj_num</p><p> dw_1.settransobject(sqlca)</p><p> dw_1.retrieve(bumenname)</p><p><b> 4.5修改信息窗口</b></p
76、><p> 4.5.1修改個人信息窗口</p><p> 員工信息窗口的創(chuàng)建:</p><p> 創(chuàng)建名為“xg_emp”的datawindow:</p><p> 在job列懸掛xg_job數(shù)據(jù)窗口,xg_job的創(chuàng)建如下:</p><p> “登陸”按鈕下的代碼是:</p><p>
77、 string mima,xs_mima,cxeid</p><p><b> int i</b></p><p> cxeid=trim(sle_3.text)</p><p> mima=trim(sle_4.text)</p><p> select count(*)</p><p>
78、;<b> into :i </b></p><p> from passem</p><p> where id=:cxeid</p><p> using sqlca;</p><p> if i<1 then</p><p> messagebox("對不起&qu
79、ot;,"該用戶不存在!")</p><p> sle_3.text = ""</p><p> sle_4.text = ""</p><p> sle_3.setfocus()</p><p><b> return</b></p>&
80、lt;p><b> end if</b></p><p> select password</p><p> into :xs_mima</p><p> from passem</p><p> where id=:cxeid;</p><p> if xs_mima = mi
81、ma then</p><p> dw_2.settransobject(sqlca)</p><p> dw_2.retrieve(cxeid)</p><p><b> else </b></p><p> messagebox("提示","密碼輸入錯誤,請重新輸入!"
82、)</p><p> sle_4.text=""</p><p><b> end if</b></p><p> “保存”按鈕下的代碼是:</p><p> string cxeid </p><p> cxeid=trim(sle_3.text)</p>
83、;<p> dw_2.update() </p><p> if sqlca.sqlcode=0 then</p><p> commit using sqlca;</p><p> messagebox("提示","您已經(jīng)成功保存修改的數(shù)據(jù)")</p><p><b>
84、 else </b></p><p> rollback using sqlca;</p><p> messagebox("提示","數(shù)據(jù)保存失敗")</p><p><b> end if</b></p><p> 4.5.2修改密碼窗口</p>
85、;<p> “修改密碼”按鈕下的代碼:</p><p> string id,ymima,xmima,qmima,y_mima</p><p><b> int i</b></p><p> id = trim(sle_1.text)</p><p> ymima=trim(sle_2.text)
86、</p><p> xmima=trim(sle_3.text)</p><p> qmima=trim(sle_4.text)</p><p> select count(*)</p><p><b> into :i </b></p><p> from passem,pass<
87、;/p><p> where passem.id=:id or pass.id=:id</p><p> using sqlca;</p><p> if i<1 then</p><p> messagebox("對不起","該用戶不存在!")</p><p> s
88、le_1.text = ""</p><p> sle_2.text = ""</p><p> sle_1.setfocus()</p><p><b> return</b></p><p><b> end if</b></p>&
89、lt;p> if rb_1.checked and xmima<>"" then</p><p> select password</p><p> into :y_mima</p><p> from passem</p><p> where id=:id ;</p><
90、p> if y_mima<>ymima then </p><p> messagebox("提示","您的原密碼錯誤,請重新輸入!")</p><p><b> else </b></p><p> if xmima<>qmima then</p>&
91、lt;p> messagebox("提示","確認密碼輸入錯誤,請重新輸入")</p><p> sle_3.text=""</p><p> sle_4.text=""</p><p> sle_1.setfocus()</p><p><b
92、> else </b></p><p> update passem</p><p> set password=:xmima</p><p> where id=:id;</p><p> if sqlca.sqlcode = 0 then</p><p> messagebox(&qu
93、ot;提示","密碼修改成功,請記好您新修改的密碼!")</p><p><b> end if</b></p><p><b> end if</b></p><p><b> end if</b></p><p><b> e
94、nd if</b></p><p> if rb_2.checked and xmima<>"" then</p><p> select password</p><p> into :y_mima</p><p><b> from pass</b></p&g
95、t;<p> where id=:id ;</p><p> if y_mima<>ymima then </p><p> messagebox("提示","您的原密碼錯誤,請重新輸入!")</p><p><b> else </b></p><p
96、> if xmima<>qmima then</p><p> messagebox("提示","確認密碼輸入錯誤,請重新輸入")</p><p> sle_3.text=""</p><p> sle_4.text=""</p><p>
97、; sle_1.setfocus()</p><p><b> else </b></p><p> update pass</p><p> set password=:xmima</p><p> where id=:id;</p><p> if sqlca.sqlcode =
98、0 then</p><p> messagebox("提示","密碼修改成功,請記好您新修改的密碼!")</p><p><b> end if</b></p><p><b> end if</b></p><p><b> end if
99、</b></p><p><b> end if</b></p><p><b> 4.6主管部門管理</b></p><p> 4.6.1修改雇員信息</p><p> 創(chuàng)建名為lr_increase1的datawindow:</p><p> 在從屬
100、部門列懸掛“dd_part”數(shù)據(jù)窗口如下設(shè)置此數(shù)據(jù)窗口:</p><p> 在職務(wù)列懸掛xs_duty1數(shù)據(jù)窗口,次窗口的設(shè)置如下:</p><p> “登陸”按鈕的代碼:</p><p> string lr_id,lr_mima,dl_id,dl_mima,depid</p><p><b> int i</b&g
101、t;</p><p> lr_id = trim(sle_1.text)</p><p> lr_mima=trim(sle_2.text)</p><p> select count(*)</p><p><b> into :i </b></p><p><b> from
102、 pass</b></p><p> where id=:lr_id</p><p> using sqlca;</p><p> if i<1 then</p><p> messagebox("對不起","該用戶不存在!")</p><p> sl
103、e_1.text = ""</p><p> sle_2.text = ""</p><p> sle_1.setfocus()</p><p><b> return</b></p><p><b> end if</b></p>&l
104、t;p> select password,part</p><p> into :dl_mima,:depid</p><p><b> from pass</b></p><p> where id=:lr_id;</p><p> if dl_mima<>lr_mima then</
105、p><p> messagebox("提示","對不起,您輸入的密碼錯誤!請重新輸入。")</p><p><b> else </b></p><p> dw_1.retrieve(depid)</p><p><b> end if</b></p
106、><p> 數(shù)據(jù)窗口dw_1下得代碼是:</p><p> “更新”按鈕下的代碼是:</p><p> int i_count</p><p> i_count=dw_1.modifiedcount()</p><p> if i_count>0 then</p><p> if
107、dw_1.update()=1 then</p><p> commit using sqlca;</p><p> messagebox("提示","您已經(jīng)成功保存"+string(i_count)+"條數(shù)據(jù)")</p><p><b> else </b></p>
108、<p> rollback using sqlca;</p><p> messagebox("提示","數(shù)據(jù)保存失敗")</p><p><b> end if </b></p><p><b> end if</b></p><p>
109、 4.6.2增加刪除雇員</p><p> dw_1數(shù)據(jù)窗口的創(chuàng)建同“修改雇員信息”窗口所創(chuàng)建名為lr_increase1的datawindow一樣.dw_2(用于修改密碼表中的信息)的創(chuàng)建如下:</p><p> “登陸”按鈕下的代碼是:</p><p> string lr_id,lr_mima,dl_id,dl_mima,partid</p>
110、;<p><b> int i</b></p><p> lr_id = trim(sle_1.text)</p><p> lr_mima=trim(sle_2.text)</p><p> select count(*)</p><p><b> into :i </b>
111、</p><p><b> from pass</b></p><p> where id=:lr_id</p><p> using sqlca;</p><p> if i<1 then</p><p> messagebox("對不起","該用戶
112、不存在!")</p><p> sle_1.text = ""</p><p> sle_2.text = ""</p><p> sle_1.setfocus()</p><p><b> return</b></p><p><b
113、> end if</b></p><p> select password,part</p><p> into :dl_mima,:partid</p><p><b> from pass</b></p><p> where id=:lr_id;</p><p>
114、 if dl_mima<>lr_mima then</p><p> messagebox("提示","對不起,您輸入的密碼錯誤!請重新輸入。")</p><p><b> else </b></p><p> dw_1.retrieve(partid)</p><
115、p> cb_4.enabled = true</p><p> cb_5.enabled=true</p><p> cb_6.enabled=true</p><p><b> end if</b></p><p> 數(shù)據(jù)窗口dw_1下的代碼是:</p><p> “刪除”按鈕
116、下的代碼是:</p><p><b> int i,j</b></p><p><b> string dw</b></p><p> j=dw_1.getrow()</p><p> dw=dw_1.getitemstring(j,"id")</p>&l
117、t;p> dw_2.retrieve(dw)</p><p> i=messagebox("提示","您真的要刪除該記錄嗎?",question!,yesnocancel!,3)</p><p> if i=1 then</p><p> dw_2.deleterow(0)</p><p>
118、; dw_1.deleterow(0)</p><p> “添加”按鈕下的代碼是:</p><p> string dwtj</p><p><b> int i</b></p><p> i=dw_1.rowcount()</p><p> dw_1.insertrow(i+1)&l
119、t;/p><p> dw_1.setcolumn("id")</p><p> dw_1.scrolltorow(i+1)</p><p> dw_1.setfocus()</p><p> “更新”按鈕下的代碼是:</p><p> int i_count,j_count</p>
120、<p> i_count=dw_1.modifiedcount()</p><p> j_count=dw_1.deletedcount()</p><p> if i_count>0 or j_count >0 then</p><p> if dw_1.update()=1 and dw_2.update()=1 then<
121、;/p><p> commit using sqlca;</p><p> messagebox("提示","您已經(jīng)成功添加"+string(i_count)+"條數(shù)據(jù),新添加的雇員登陸密碼為“0000”!")</p><p><b> else </b></p>&l
122、t;p> rollback using sqlca;</p><p> messagebox("提示","數(shù)據(jù)保存失敗")</p><p><b> end if </b></p><p><b> end if</b></p><p><
123、b> 4.7人事管理窗口</b></p><p><b> 4.7.1雇員增刪</b></p><p> 在dw_1下懸掛名為“l(fā)r_increase2”的數(shù)據(jù)窗口,創(chuàng)建如下:</p><p> 在“depart”列懸掛名“dd_depart1”為的數(shù)據(jù)數(shù)據(jù)窗口,創(chuàng)建如下:</p><p>
124、在“job”列懸掛名“xs_duty”為的數(shù)據(jù)數(shù)據(jù)窗口,創(chuàng)建如下:</p><p> dw_2(用于修改密碼表中的信息)的創(chuàng)建如下:</p><p> dw_1下的代碼是:</p><p> “登陸”按鈕下的代碼是:</p><p> string lr_id,lr_mima,dl_id,dl_mima</p><
125、p><b> //int i</b></p><p> lr_id = trim(sle_1.text)</p><p> lr_mima=trim(sle_2.text)</p><p> if lr_id<>"0210101" then</p><p> message
126、box("提示","只有人事部主管有此權(quán)限可以添加和刪除雇員!")</p><p><b> else </b></p><p> //if lr_id="0210101" then</p><p> select password</p><p>
127、into :dl_mima</p><p><b> from pass</b></p><p> where id='0210101';</p><p> if dl_mima=lr_mima then</p><p> dw_1.retrieve()</p><p>
128、 cb_4.enabled = true</p><p> cb_5.enabled=true</p><p> cb_6.enabled=true</p><p><b> else</b></p><p> messagebox("提示","對不起,您輸入的密碼錯誤!請重新輸入。
129、") </p><p><b> end if</b></p><p><b> end if</b></p><p> “刪除”按鈕下的代碼是:</p><p><b> int i,j</b></p><p><b>
130、string dw</b></p><p> j=dw_1.getrow()</p><p> dw=dw_1.getitemstring(j,"id")</p><p> dw_2.retrieve(dw)</p><p> i=messagebox("提示","您真的要
131、刪除該記錄嗎?",question!,yesnocancel!,3)</p><p> if i=1 then</p><p> dw_2.deleterow(0)</p><p> dw_1.deleterow(0)</p><p> “添加”按鈕下的代碼是:</p><p> string dw
132、tj</p><p><b> int i</b></p><p> i=dw_1.rowcount()</p><p> dw_1.insertrow(i+1)</p><p> dw_1.setcolumn("id")</p><p> dw_1.scrollto
133、row(i+1)</p><p> dw_1.setfocus()</p><p> “更新”按鈕下的代碼是:</p><p> int i_count,j_count</p><p> i_count=dw_1.modifiedcount()</p><p> j_count=dw_1.deletedcou
134、nt()</p><p> if i_count>0 or j_count >0 then</p><p> if dw_1.update()=1 and dw_2.update()=1 then</p><p> commit using sqlca;</p><p> messagebox("提示"
135、,"您已經(jīng)成功添加"+string(i_count)+"條數(shù)據(jù),新添加的雇員登陸密碼為“0000”!")</p><p><b> else </b></p><p> rollback using sqlca;</p><p> messagebox("提示","數(shù)據(jù)
136、保存失敗")</p><p><b> end if </b></p><p><b> end if</b></p><p><b> 4.7.2人事調(diào)動</b></p><p> 此窗口的創(chuàng)建和“雇員增刪”窗口的創(chuàng)建類似,而且更加簡單。只需要刪除dw_2,
137、“刪除”,“添加”按鈕。</p><p> dw_1下的代碼為:</p><p><b> 4.8統(tǒng)計圖窗口</b></p><p><b> 4.8.1HR現(xiàn)狀</b></p><p> 創(chuàng)建graph形式的datawindow。</p><p><b>
溫馨提示
- 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. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 課程設(shè)計--- 公司人事管理系統(tǒng)的設(shè)計
- 人事管理系統(tǒng)課程設(shè)計
- 課程設(shè)計--人事管理系統(tǒng)設(shè)計
- 人事管理系統(tǒng)課程設(shè)計
- c++課程設(shè)計---公司人事管理系統(tǒng)
- excel課程設(shè)計報告-- 公司人事管理系統(tǒng)
- 企業(yè)人事管理系統(tǒng)課程設(shè)計
- 人事管理系統(tǒng)課程設(shè)計報告
- 人事管理系統(tǒng)-課程設(shè)計報告
- 高校人事管理系統(tǒng)課程設(shè)計
- 人事管理系統(tǒng)課程設(shè)計報告
- 課程設(shè)計(企業(yè)人事管理系統(tǒng))
- 課程設(shè)計---企業(yè)人事管理系統(tǒng)
- php人事管理系統(tǒng)課程設(shè)計
- 課程設(shè)計--- 人事管理系統(tǒng)需求分析設(shè)計
- 信管人事管理系統(tǒng)課程設(shè)計
- c語言課程設(shè)計--人事管理系統(tǒng)
- 人事管理系統(tǒng)delphi課程設(shè)計報告
- c語言課程設(shè)計——人事管理系統(tǒng)
- 企業(yè)人事管理系統(tǒng)課程設(shè)計論文
評論
0/150
提交評論