考勤管理系統實驗報告(附源代碼)_第1頁
考勤管理系統實驗報告(附源代碼)_第2頁
考勤管理系統實驗報告(附源代碼)_第3頁
考勤管理系統實驗報告(附源代碼)_第4頁
考勤管理系統實驗報告(附源代碼)_第5頁
已閱讀5頁,還剩45頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、目錄第一章信息系統概況31.1 選題介紹31.2 課程設計小組基本情況介紹錯誤!未定義書簽。1.2.1 課程設計小組成員的基本情況介紹錯誤!未定義書簽。1.2.2 課程設計小組前期的準備情況錯誤!未定義書簽。1.2.3 課程設計小組各成員所承擔的課程設計的任務.錯誤!未定義書簽。第二章信息系統分析42.1 可行性分析42.1.1 技術可行性分析42.1.3 社會因素可行性分析52.1.4 可行性分析結論52.2 客戶需求分析52.3 系統分析部分72.3.1 業務流程圖72.3.2 數據流程圖72.3.3 E-R圖92.3.4 數據字典10第三章信息系統設計123.1 功能結構圖設計123.2

2、 輸入輸出設計123.3 數據庫結構設計133.3.1 概念設計133.3.2 邏輯結構設計設計143.4 代碼設計16第四章信息系統實施174.1 源程序174.1.1 添加用戶174.1.2 修改密碼174.1.3 出差情況174.1.4 添加部門194.1.5 部門管理204.1.6 更新部門224.1.7 員工考勤登記234.1.8 請假情況354.1.9 上班時間設置374.1.10 上班情況384.1.11 用戶登入394.1.12 添加員工404.1.13 員工管理424.1.14 修改員工464.1.15 主界面484.3 模擬運行數據514.4 系統使用說明書54第五章參考書

3、籍56第一章信息系統概況1.1選題介紹當今社會,計算機已經十分普及,性能也日趨完善。它已經被應用于許多領域。比如說,小到圖書館的圖書管理,超市或網吧的收費管理,KTV的點歌系統,大到航空、鐵路的售票,全國人口戶籍的管理等等。隨著現代科技的進步,用計算機來進行考勤的管理也成為現代化企業運作必不可少的一部分。在過去我們的考勤工作都是人工完成的,不僅浪費了很多的人力跟物力,而且無法保證其準確性和透明度,給企業的管理帶來了許多的不便。現在利用計算機來管理我們的考勤工作,大大降低了工作人員的工作量,提高了工作效率,使原本復雜和枯燥無味的工作變得簡單而輕松了,而且也實用、安全。計算機技術特別是數據庫技術的

4、發展為企業建立管理信息系統,甚至對改變管理思想起著不可估量的作用。實踐證明信息技術已在企業的管理層面扮演越來越重要的角色。通過考勤系統我們能很容易地對公司員工的信息有一個基本的了解,可以很方便地知道員工的出勤情況,通過對員工出勤信息的了解,就能計算出員工的實際工資。一切的統計和計算都由計算機代為管理了,考勤信息管理系統對企業的合理化管理起到了很大的作用,它為企業信息化的建設打響了頭炮,而企業的信息化建設已成為現代各個企業發展的需要。所以說,考勤管理系統的開發具有非常重要的意義。第二章信息系統分析2.1 可行性分析目前,計算機在我國的考勤管理工作中,主要可用來進行報表處理,檔案管理,文書編輯,信

5、息查詢,綜合分析。查詢統計作為考勤管理的一個重要組成部分,是通過對考勤情況的調查,整理和分析,了解考勤情況的發展趨勢,為各級領導機關制定考出勤的方針,政策,加強干部管理,改革干部制度提供準確數字的依據。其工作除涉及到干部的基本情況統計之外,還包括職工的工資統計,職工的考勤情況統計,職工的獎懲情況統計,職工的出差情況統計,職工的請假情況統計等方面,其涉及的面之廣,數據量之大可想而知,若利用手工進行考勤的統計工作,大致要經過考勤統計查詢,考勤的統計資料的整理,考勤統計分析三個過程,但這種手工統計過程,存在著幾個明顯的問題,比如說統計資料缺乏準確性,及時性,需要花費大量的人力,物力,財力等。手工方法

6、所表現出來的種種劣勢,使人們慢慢意識到管理現代化已成為當代社會發展的一股不可抗拒的洪流。在管理現代化的浪潮中,考勤管理現代化也勢在必行。實現考勤管理現代化是一個復雜的系統工程,需要采取科學的管理方法和先進的科技手段。科學的管理方法在管理中一般是指數學方法、系統方法、信息方法、控制論方法、社會學方法、心理學方法等科學方法,而先進的科技手段主要是運用當代最新科學技術之一的電子計算機來為考勤管理現代化服務。而且一個完善的考勤系統應做到以下幾點:?提高了考勤管理效率,減輕勞動強度;?提高信息處理速度和準確性;?為考勤負責人提供更方便、科學的服務項目2.1.1 技術可行性分析系統開發環境:Windows

7、xpsp3+vs2005+sqlserver2000技術已經比較成熟,和其他應用開發語言比起來有很大的優勢,所以利用這些技術是完全可以完成這些功能的。同時由于邏輯不是太復雜,估計可以按時完成此項目。考勤管理系統是工作主要是在職工和管理都有之間架起一座橋梁,能相互溝通信息和處理信息。這一特點非常適合計算機特點,通過網絡internet技術,發揮計算機的信息傳輸速度快、準確度高的優勢。計算機硬件和軟件技術的飛速發展,為系統的建議提供了技術條件。2.1.2 經濟可行性分析(1) 支出A、在基建投資上,只需要配置一臺DELL服務器,大概2萬左右;B、軟件設計和開發費用:2.5萬元C、經常性指出:(主要

8、是指軟件的維護費用)(2) 收益進一步實現辦公自動化,減少人力投資和辦公費用,極大提高辦公效率,同時更好地控制考勤制度,降低成本。(3) 投資回收周期根據經驗算法,收益的累計數開始超過支出的累計數的時間為1年。2.1.3 社會因素可行性分析對所建議系統的社會因素方面的可行性分析:(1) 法律可行性新系統的研制和開發,所有軟件都選用正版,將不會侵犯他、集體和國家的利益,不會違反國家政策和法律。(2) 使用方面的可行性由于新系統的客戶端只要求用瀏覽器,管理者與人員完全有能力使用此系統,并且新系統的研制和開發是充分考慮工作人員對考勤的易于管理,提高工作效率,界面友好,操作簡單方便,能完全滿足職工的使

9、用要求。對傳統管理理念的沖擊,可能引起管理層的變動和人員調整。對于企業管理人員的要求提高,使企業在一定的可能下進行機構精簡,迫使工作人員繼續學習新知識,拓寬企業在市場競爭環境下的生存空間。對于企業的管理者與職工之間管理方式的轉變和擴充。2.1.4 可行性分析結論結論意見:經上述可行性分析,系統研制和開發可以立即開始進行2.2 客戶需求分析考勤系統應該便于管理者的查詢、修改、更新、統計以及高層管理人員的查詢等操作。能從整體上體現去每個員工每日,每月的出勤情況。基本信息管理包括節假日日期設置、部門信息管理和員工信息管理。(1) 主要功能a. 員工考勤簽到:員工每天上班時需要登陸系統進行簽到,如果當

10、天已經簽到了,則不執行重復操作!考勤簽退:員工每天下班時需要登陸系統進行簽退,如果當天還沒有簽過到,則不執行簽退操作,如果當天還沒有到下班時間,也不執行簽退操作!節假日查看:員工可以登錄查看節假日加班安排系統管理:修改自己的密碼,查看系統簡介.b. 管理員員工信息管理:管理員登陸系統后可以添加新的員工信息,可以對現有員工的信息進行修改和查詢!可以刪除某些員工信息,當刪除員工信息時同時將刪除他們的考勤信息職位類別及上下班時間管理:不同的職位類別擁有不同的上下班時間,管理員可以添加新的職位類別,修改已經存在的職位類別的名稱和上下班時間,部門信息管理:管理員可以添加和刪除部門信息,當部門下面存在員工

11、信息時不執行刪除操作.系統管理:修改自己的登陸密碼,查看系統簡介。節假日管理:節假日的設置和查看;(2) 特點實現了管理員和員工登陸信息的自動判斷!根據不同的身份顯示不同的功能菜單。程序使用三層架構思想,采用完全面向對象的思想方法設計。系統在進行相關操作如刪除員工信息時使用了存儲過程。(3) 數據輸入:通過登錄系統輸入職工上班下班,以及請假、出差等信息。輸出:職工考勤情況。(用戶對相關職工的查詢結果和報表)(4) 安全保密系統對不同權限的用戶提供不同的功能模塊,對歷史數據的更改和新數據的添加只有一定權限的用戶才能操作,一般用戶只能進行查詢操作。對數據庫的關鍵數據應要求保密。系統默認管理員登陸信

12、息:帳號admin密碼admin2.3系統分析部分2.3.1業務流程圖2.3.2數據流程圖圖2-2頂層數據流程圖用戶信息.上班時間.工作狀態普通用戶圖2-3一層數據流程圖上班時間上班時間設置2.3.3 E-R 圖圖2-5E-R圖PM管理屬于查詢NNN1登記11NiiN出差單員工上班單請假單管理員部門名字:上班時間數據描述:關于每日上班時間的信息,用于員工對上班時間的確認定義:上班時間數據二上午工作開始時間+上午工作離開時間+下午工作開始時間+下午工作離開時間位置:輸入到上班時間表名字:部門數據描述:部門的信息,用于對部門的確認定義:部門資料數據二部門代號+部門名稱位置:輸入到部門表名字:上班類

13、型數據描述:上班類型的信息,用于對員工上班時間類型的確認定義:上班類型數據二類型代號+類型名稱位置:輸入到上班類型表名字:個人資料數據描述:職工的個人信息,用于對職工的確認定義:個人資料數據=員工ID+員工姓名+員工性別+出生日期+職務+個人工作資料檔案位置:輸入到員工表名字:職工列表數據描述:職工的部門信息,用于對職工部門的確認定義:職工列表數據二員工ID+員工姓名+部門代碼+部門名稱+員工類別+員工職位+查詢密碼位置:輸入到部門表、用戶表名字:考勤數據描述:職工的考勤信息定義:考勤數據=員工ID+年月+遲到+早退+請假+曠工位置:輸入到請假表、上班表、出差表名字:操作用戶表別名:操作用戶信

14、息描述:是對使用本系統的用戶進行 身份和權限驗證用的定義:用戶名+密碼+所屬單位+權 限一 +權5M二十操作員位置:所后表單名字:權限一別名: 描述:標識本系統的用戶對本系統定義:管理權使用權限權限一 二5字符5位置:用戶表名字:用戶名別名:描述:惟一標識本系統的用戶身份定義:用戶名=5字符5名字:密碼別名:描述:驗證本系統的用戶身份定義:密碼=5字符5位置:用戶表名字:權限二別名:描述:標識本系統的用戶對本系統登記權的使用權限定義:權限二二5字符5位置:用戶表第三章信息系統設計3.1功能結構圖設計圖3-1功能結構圖3.2輸入輸出設計表3-3員工下班名稱、標識符下班輸入輸入部門、姓名,點擊上班

15、輸出提示卜班成功信息表3-4修改密碼名稱、標識符修改密碼輸入管理員輸入用戶名、原始密碼、新設定的密碼輸出提示修改密碼成功信息表3-5申請請假名稱、標識符胸皿假輸入輸入請假人姓名、所屬部門、請假時間、請假時長、請假原因輸出提示請假申請已經提交信息表3-6申請出差名稱、標識符叱出差輸入申請人姓名、所屬部門、出差的開始時間、出差地點、出差原因輸出提示出差申請已經提交信息表3-7員工添加名稱、標識符添加員工輸入輸入部門、姓名、性別、年齡、進公司時間、個人密碼輸出提示添加已完成表3-8部門添加名稱、標識符音B門添力口輸入輸入部門名稱輸出提示添加已完成表3-9上下班時間設定名稱、標識符上、下班時間設定輸入

16、上、下班時間輸出提示設置成功3.3數據庫結構設計3.3.1 概念設計數據庫一般分為三級模式:外模式、概念模式和內模式在這里我們將要設計的是數據庫的概念模式。通過對職工出勤管理系統的內容和數據流程分析及E-R圖,設計如下數據項和數據結構:1 .部門信息。包括部門編號、部門名稱、部門人數等。2 .超級用戶信息。包括用戶名、密碼、姓名、性別、出生日期、籍貫等。3 .普通用戶信息。包括編號、部門名稱、姓名、性別、出生日期、籍貫等信息。4 .考勤信息。包括序列號、編號、簽到時間、簽離時間等信息。5 .員工狀態。包括員工請假、出差、早退、遲到、上班。6 .考勤歷史信息。包括記錄號、編號、日期、簽到時間、簽

17、離時間、遲到、缺勤、早退等信息。7 .用戶信息。包括用戶名稱、密碼、所在單位、用戶權限信息、操作員、最后修改時間。3.3.1邏輯結構設計設計根據職工考勤管理系統的功能要求,選取SQLServer2000作為后臺數據庫。在上面的實體和實體之間的E-R圖設計基礎上,將ER圖轉化為關系模型,形成數據庫中的表格及表格之間的關系。該數據庫由5個表組成,部門表、超級用戶表、用戶表、考勤表、考勤歷史表。分別如下表所示:表3-10出差表名稱字段為空性備注部門代號departmentId數字否員工IDworkerld數字否出差時間ccTime日期/時間否出差地點ccArea文本是出差天數ccLength數字是登

18、記時間dcTime日期/時間是銷差時間xcTime日期/時間是出差備注ccContent文本是表3-11部門表名稱字段為空性備注部門代號departmentId數字否唯一表示部門部門名稱departmentName文本否部門名稱表3-12請假表名稱字段封為空性備注部門代號departmentId數字否員工IDworkerld數字否請假時間qjTime日期/時間否請假天數qjLength數字是登記時間djTime日期/時間是請假原因qjReason文本是銷假時間nxjTime日期/時間是是否曠工ynKg是/否是表3-13上班表名稱字段為空性備注部門代號departmentId數字否員工IDwor

19、kerId數字否工作日期workday日期/時間:否上午上班時間mstartTime日期/時間是下午上班時間astartTime日期/時間是上午卜班時間mleaveTime日期/時間是下午卜班時間aleaveTime日期/時間是上班類型1workmsType數字是存放工作類型表中的typeId0:正常上班1:請假2:出差3:早退4:遲到上班類型2workmlType數字是默認彳1為0,作為是否已經登記的標記上班類型3workasType數字是默認彳1為0,作為是否已經登記的標記上班類型4workalType數字是默認彳1為0,作為是否已經登記的標記表3-14用戶表名稱字段為空性備注用戶名use

20、rname文本否密碼password文本否真實姓名realname文本否注冊時間regtime日期/時間否權限permission數字否0:管理員1:普通用戶表3-15員工表名稱字段為空性備注部門代號departmentId數字否員工IDworkerId數字否員工姓名workerName文本是員工性別workerSex文本是員工年齡workerAge數字是進入公司時間intoCompanyTime日期/時間否員工密碼workerPsw文本否進行出勤輸入的最后驗證表3-16上班時間表名稱字段為空性備注上午工作開始時間mstartTime日期/時間否上午工作離開時間mleaveTime日期/時間否

21、下午工作開始時間astartTime日期/時間否下午工作離開時間aleaveTime日期/時間否表3-17上班類型表名稱字段為空性備注代號typeId數字否名稱typeName文本是3.4代碼設計部門代號為兩位數,按照創建時間早晚排行。例如:生產部為第七個創建的部門,所以他的編號為07。員工ID一共分成6位,前兩位表示部門代號,中間兩位表示進入部門年份,后兩位表示員工編號。例如:婁京兆是2013年生產部招收的第一位員工,那么他的ID就是071301。上班類型代號為一位數,按照上班類型分為五類,0:正常上班1:請假2:出差3:早退4:遲到第四章信息系統實施4.1源程序4.1.1添加用戶Dimm_

22、clsUserAsclsUserPrivateSubcmdReg_Click()Setm_clsUser=NewclsUserm_clsUser.DoAddUsertxtUserName,txtPassword,txtPasswordConfirm,txtRealName,comboPermission,txtRegTime,frmAddUserEndSubPrivateSubForm_Load()comboPermission.AddItem"管理員",0comboPermission.AddItem"普通用戶",1comboPermission.Li

23、stIndex=0EndSubPrivateSubcmdClose_Click()UnloadMeEndSub4.1.2修改密碼Dimm_clsUserAsclsUserPrivateSubcmdChPwdOk_Click()Setm_clsUser=NewclsUserm_clsUser.DoChPwdtxtChUser,txtOldPwd,txtNewPwd,txtNewPwdagain,frmChPwdEndSubPrivateSubForm_Load()EndSubPrivateSubcmdChPwdCancel_Click()UnloadMeEndSub4.1.3出差情況Dimstr

24、SqlAsStringDimrsAsNewRecordsetPrivateSubcboDept_Click()cboName.ClearstrSql="Select*fromTWorkerwheredepartmentId="&cboDept.ItemData(cboDept.ListIndex)&"orderbyworkerId"Setrs=TransactSQL(strSql)DoWhileNotrs.EOFcboName.AddItem(rs.Fields(2).Value)cboName.ItemData(cboName.NewI

25、ndex)=rs.Fields(1).Valuers.MoveNextLooprs.ClosecboName.ListIndex=0cboName.RefreshEndSubPrivateSubcmdPrint_Click()SetdrChuChai.DataSource=adodcChuChai.RecordsetdrChuChai.Sections(1).Controls(1).Caption="drChuChai.Sections(2).Controls(1).Caption="drChuChai.Sections(2).Controls(2).Caption=&qu

26、ot;drChuChai.Sections(2).Controls(3).Caption="drChuChai.Sections(2).Controls(4).Caption="drChuChai.Sections(2).Controls(5).Caption="drChuChai.Sections(2).Controls(6).Caption="drChuChai.Sections(2).Controls(7).Caption="drChuChai.Sections(2).Controls(8).Caption="drChuChai

27、.Sections(3).Controls(1).DataField=drChuChai.Sections(3).Controls(2).DataField=drChuChai.Sections(3).Controls(3).DataField=drChuChai.Sections(3).Controls(4).DataField=drChuChai.Sections(3).Controls(5).DataField=drChuChai.Sections(3).Controls(6).DataField=drChuChai.Sections(3).Controls(7).DataField=d

28、rChuChai.Sections(3).Controls(8).DataField=drChuChai.Show請假情況統計表"部門名稱"員工名稱"出差時間"出差地點"出差天數"登記時間"銷差時間"出差備注"部門名稱"員工名稱"出差時間"出差地點"出差天數"登記時間"銷差時間"出差備注"EndSubPrivateSubcmdQuery_Click()strSql="selecta.departmentNameas部

29、門名稱,b.workerNameas員工名稱,c.ccTimeas出差時間,c.ccAreaas出差地點,c.ccLengthas出差天數,c.dcTimeas登記時間,c.xcTimeas銷差時間,c.ccContentas出差備注fromTDepartmenta,TWorkerb,TChuChaicwhereb.departmentId="&cboDept.ItemData(cboDept.ListIndex)&"andb.workerId="&cboName.ItemData(cboName.ListIndex)&"

30、anda.departmentId=b.departmentIdandb.departmentId=c.departmentIdandb.workerId=c.workerIdandc.ccTimebetween#"&dtpStartDate&"#and#"&dtpEndDate&"#"ConnectToDBRefushDataGridadodcChuChai,dgChuChai,strSqlDisConnectEndSubPrivateSubForm_Load()strSql="Select*from

31、TDepartmentorderbydepartmentId"Setrs=TransactSQL(strSql)DoWhileNotrs.EOFcboDept.AddItem(rs.Fields(1).Value)cboDept.ItemData(cboDept.NewIndex)=rs.Fields(0).Valuers.MoveNextLooprs.ClosecboDept.ListIndex=0cboDept.RefreshEndSub4.1.4 添加部門DimdepartIdAsIntegerDimdepartNameAsStringIftxtbmName.Text=&quo

32、t;"ThenMsgBox"部門名稱不能有空值"ExitSubElsedepartId=Trim(txtaddbmId.Text)departName=Trim(txtbmName.Text)strSql="insertintoTDepartment(departmentId,departmentName)values("_&departId&",'"&departName&"')"TransactSQL(strSql)MsgBox"添加成功&qu

33、ot;EndIfEndSubPublicSubinit()txtbmName.Text=""num=0strSql="select*fromTDepartmentorderbydepartmentId"Setrs=TransactSQL(strSql)IfNotrs.EOFAndNotrs.BOFThenrs.MoveLastnum=rs(0)num=num+1Me.txtaddbmId.Text=CStr(num)ElseMe.txtaddbmId.Text=1EndIfEndSubPrivateSubcmdreadd_Click()CallinitE

34、ndSubPrivateSubForm_Load()num=0strSql="select*fromTDepartmentorderbydepartmentId"Setrs=TransactSQL(strSql)IfNotrs.EOFAndNotrs.BOFThenrs.MoveLastnum=rs(0)num=num+1Me.txtaddbmId.Text=CStr(num)ElseMe.txtaddbmId.Text=1EndIfEndSub4.1.5 部門管理DimstrSqlAsStringDimRowNumberAsIntegerPrivateSubcmdadd_

35、Click()frmDepAdd.ShowvbModalEndSubPrivateSubcmddel_Click()IfConnectToDB()=FalseThenMsgBox"數據庫連接失敗!"ExitSubEndIfIfMsgBox("你真的要刪除嗎",vbInformation+vbYesNo,App.Title)=vbYesThenstrSql="deletefromTDepartmentwheredepartmentId="&RowNumberTransactSQL(strSql)DisConnectMsgBox&

36、quot;刪除成功",vbInformation,App.TitlestrSql="selectdepartmentIdas部門編號,departmentNameas部門名稱fromTDepartment"RefreshDataadodcDepManage,dgDepManage,strSqlExitSubEndIfEndSubPrivateSubcmdUpdate_Click()IfRowNumber=-1ThenMsgBox"請先選擇要修改的數據!"ExitSubEndIffrmDepUpdate.ShowvbModalEndSubPriv

37、ateSubComselect_Click()Dimm_txtdepartIDAsStringDimm_txtdepartNameAsStringm_txtdepartID=Trim(txtDepartId.Text)m_txtdepartName=Trim(txtDepartName.Text)If(m_txtdepartID=""Andm_txtdepartName="")ThenstrSql="selectdepartmentIdas部門編號,departmentNameas部門名稱fromTDepartment"ElseIf(

38、m_txtdepartID<>""Andm_txtdepartName<>"")ThenstrSql="selectdepartmentIdas部門編號,departmentNameas部門名稱"_&"fromTDepartmentwheredepartmentId="&m_txtdepartID&"anddepartmentNamelike'%"&m_txtdepartName&"%'"Else

39、If(m_txtdepartID<>"")ThenstrSql="selectdepartmentIdas部門編號,departmentNameas部門名稱fromTDepartmentwheredepartmentId="&m_txtdepartIDElseIfm_txtdepartName<>""ThenstrSql="selectdepartmentIdas部門編號,departmentNameas部門名稱"_&"fromTDepartmentwheredep

40、artmentNamelike'%"&m_txtdepartName&"%'"EndIfRefreshDataadodcDepManage,dgDepManage,strSqlEndSubPrivateSubdgDepManage_Click()OnErrorGoToShowErr:IfIsNull(dgDepManage.Bookmark)ThenRowNumber=-1ExitSubElseRowNumber=dgDepManage.Columns("0").CellValue(dgDepManage.Boo

41、kmark)EndIffrmDepUpdate.SetRowNumberRowNumberShowErr:ExitSubEndSubPrivateSubdgDepManage_DblClick()OnErrorGoToShowErr:IfIsNull(dgDepManage.Bookmark)ThenRowNumber=-1ExitSubElseRowNumber=dgDepManage.Columns("0").CellValue(dgDepManage.Bookmark)EndIffrmDepUpdate.SetRowNumberRowNumberfrmDepUpdat

42、e.ShowvbModalShowErr:ExitSubEndSubPrivateSubForm_Load()RowNumber=-1EndSub4.1.6 更新部門OptionExplicitDimstrSqlAsStringDimrsDepAsNewADODB.RecordsetDimm_irownumberAsIntegerDimm_iDepartIdAsIntegerDimm_strDepartNameAsStringPrivateSubcmdOk_Click()IftxtDepartName.Text=""ThenMsgBox"登記項目不能有空值&quo

43、t;ExitSubElsem_iDepartId=CInt(txtDepartId.Text)m_strDepartName=Trim(txtDepartName.Text)strSql="updateTDepartmentsetdepartmentName='&m_strDepartName&"'wheredepartmentId="&m_iDepartIdIfConnectToDB()=FalseThenMsgBox"數據庫連接失敗!"ExitSubEndIfTransactSQL(strSql)Ms

44、gBox"修改成功"cmdok.Enabled=FalseDisConnectstrSql="selectdepartmentIdas部門編號,departmentNameas部門名稱fromTDepartment"RefreshDatafrmDepManage.adodcDepManage,frmDepManage.dgDepManage,strSqlEndIfEndSubPrivateSubForm_Load()m_iDepartId=GetRowNumberIfConnectToDB()=FalseThenMsgBox"數據庫連接失敗!&

45、quot;ExitSubEndIfstrSql="select*fromTDepartmentwheredepartmentId="&m_iDepartIdSetrsDep=TransactSQL(strSql)txtDepartId.Text=rsDep.Fields(0)txtDepartId.RefreshtxtDepartName.Text=rsDep.Fields(1)txtDepartName.RefreshtxtDepartId.Enabled=FalseDisConnectEndSubPublicFunctionSetRowNumber(ByValp

46、_irownumberAsInteger)m_irownumber=p_irownumberEndFunctionPublicFunctionGetRowNumber()AsIntegerGetRowNumber=m_irownumberEndFunction4.1.7員工考勤登記DimstrSqlAsStringDimrsAsNewADODB.RecordsetDimtodayAsStringDimqjLengthAsDoubleDimqjTimeAsStringDimdjTimeAsStringDimqjReasonAsStringDimccLengthAsDoubleDimccTimeA

47、sStringDimdcTimeAsStringDimccAreaAsStringDimccContentAsStringDimnowtimeAsStringPrivateSubcboDept_Click()cboName.ClearstrSql="Select*fromTWorkerwheredepartmentId="&cboDept.ItemData(cboDept.ListIndex)&"orderbyworkerId"Setrs=TransactSQL(strSql)DoWhileNotrs.EOFcboName.AddItem

48、(rs.Fields(2).Value)cboName.ItemData(cboName.NewIndex)=rs.Fields(1).Valuers.MoveNextLooprs.ClosecboName.ListIndex=0cboName.RefreshEndSubPrivateSubcboYourDepCC_Click()cboYourNameCC.ClearstrSql="Select*fromTWorkerwheredepartmentId="&cboYourDepCC.ItemData(cboYourDepCC.ListIndex)&"

49、;orderbyworkerIdSetrs=TransactSQL(strSql)DoWhileNotrs.EOFcboYourNameCC.AddItem(rs.Fields(2).Value)cboYourNameCC.ItemData(cboYourNameCC.NewIndex)=rs.Fields(1).Valuers.MoveNextLooprs.ClosecboYourNameCC.ListIndex=0cboYourNameCC.RefreshEndSubPrivateSubcboYourDepQJ_Click()cboYourNameQJ.ClearstrSql="

50、Select*fromTWorkerwheredepartmentId="&cboYourDepQJ.ItemData(cboYourDepQJ.ListIndex)&"orderbyworkerId"Setrs=TransactSQL(strSql)DoWhileNotrs.EOFcboYourNameQJ.AddItem(rs.Fields(2).Value)cboYourNameQJ.ItemData(cboYourNameQJ.NewIndex)=rs.Fields(1).Valuers.MoveNextLooprs.ClosecboYou

51、rNameQJ.ListIndex=0cboYourNameQJ.RefreshEndSubPrivateSubcmdOk_Click()DimpswAsStringDimworktypeAsIntegerDimworkerPswAsStringDimpwdCountAsIntegerpwdCount=0DimdepartIdAsIntegerDimworkerIdAsIntegerdepartId=cboDept.ItemData(cboDept.ListIndex)workerId=cboName.ItemData(cboName.ListIndex)strSql="select

52、workerPswfromTWorkerwheredepartmentId="&departId&"andworkerId="&workerIdSetrs=TransactSQL(strSql)Ifrs.EOF=FalseThenworkerPsw=rs.Fields(0)EndIfIfFrame1.Visible=TrueThenIfoptmstart.Value=TrueThenIfMsgBox("確定要"&optmstart.Caption&"么?",vbOKCancel)=vb

53、OKThenpsw=InputBox("請輸入員工密碼:","輸入密碼")IfyanzhengPWD(labwelcome,psw,workerPsw)=FalseThenExitSublabwelcome.Visible=FalseElseCallgetTimeIfDateDiff("s",nowtime,mstart)>=0Thenworktype=6Elseworktype=4EndIfIfyanzheng(departId,workerId,today)ThenMsgBox"你已經上班,不必再登記!"

54、ElsestrSql="insertintoTShangBan(departmentId,workerId,workday,mstartTime,workmsType)"&_"values("&departId&","&workerId&",#"&today&"#,#"&nowtime&"#,"&worktype&")"TransactSQL(strSql)cmdok.

55、Enabled=Falselabwelcome.Visible=Truelabwelcome.Caption="歡迎"&cboName.Text&optmstart.Caption&",祝你今天上午工作愉快!"MsgBox"登記成功!"EndIfEndIfElseMsgBox"不登記"EndIfElseIfMsgBox("確定要"&optmleave.Caption&"么?",vbOKCancel)=vbOKThenpsw=InputB

56、ox("請輸入員工密碼:","輸入密碼")IfyanzhengPWD(labwelcome,psw,workerPsw)=FalseThenExitSublabwelcome.Visible=FalseElseCallgetTimeIfDateDiff("s",nowtime,mleave)<=0Thenworktype=6Elseworktype=3EndIfIfyanzheng(departId,workerId,today)ThenIfmlrecord(departId,workerId,today)ThenstrSql=

57、"updateTShangBansetworkmlType="&worktype&",mleaveTime='"&nowtime&"'wheredepartmentId="&departId&"andworkerId="&workerId&"andworkday=#"&today&"#"TransactSQL(strSql)cmdok.Enabled=Falselabwelcome

58、.Visible=Truelabwelcome.Caption=""&cboName.Text&optmleave.Caption&",祝你生活幸福!"MsgBox"登記成功!"ElseMsgBox"你已經下班,不必再登記!"EndIfElseMsgBox"對不起,你還沒有上班,請先上班!",vbOKOnly+vbExclamation,"請遵守公司上下班秩序"EndIfEndIfElseMsgBox"不登記"EndIfEndIfElseIfoptastart(0).Value=TrueThenIfMsgBox("確定要"&optastart(0).Caption&"么?",vbOKCancel)=vbOKThenpsw=InputBox("請輸入員工密碼:","

溫馨提示

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

評論

0/150

提交評論