2023年全國碩士研究生考試考研英語一試題真題(含答案詳解+作文范文)_第1頁
已閱讀1頁,還剩31頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、<p><b>  課程設(shè)計(jì)任務(wù)書</b></p><p>  設(shè)計(jì)名稱:員工信息管理系統(tǒng) 日期:2009年5月3日 </p><p><b>  設(shè)計(jì)內(nèi)容:</b></p><p><b>  員工信息添加</b></p><

2、p><b>  員工信息修改</b></p><p><b>  員工信息刪除</b></p><p>  員工信息查詢(多種方式)</p><p><b>  員工考勤信息添加</b></p><p><b>  員工考勤信息修改</b></

3、p><p><b>  員工考勤信息刪除</b></p><p><b>  員工考勤信息查詢</b></p><p><b>  用戶注冊</b></p><p>  10、SQL基本表建立</p><p>  11、SQL權(quán)限、索引、觸發(fā)器、函數(shù)的創(chuàng)建&

4、lt;/p><p><b>  12、ODBC連接</b></p><p><b>  設(shè)計(jì)目的與要求:</b></p><p>  1)加深對數(shù)據(jù)庫系統(tǒng)原理、軟件工程、程序設(shè)計(jì)語言的理論知識的理解和應(yīng)用水平。</p><p>  2)通過設(shè)計(jì)實(shí)際的數(shù)據(jù)庫系統(tǒng)應(yīng)用課題,進(jìn)一步熟悉數(shù)據(jù)庫管理系統(tǒng)的操作技術(shù)

5、,提高動手能力,提高分析問題和解決問題的能力。</p><p>  3)通過設(shè)計(jì),掌握數(shù)據(jù)庫應(yīng)用系統(tǒng)綜合開發(fā)的方法與技能。</p><p>  設(shè)計(jì)環(huán)境或器材、原理與說明:</p><p><b>  VB 6.0</b></p><p>  SQL?。樱牛遥郑牛摇。玻埃埃?lt;/p><p>  設(shè)

6、計(jì)過程(步驟)或程序代碼:</p><p><b>  1 需求分析</b></p><p><b>  1.1系統(tǒng)需求分析</b></p><p>  在人才過剩的今天,企業(yè)對于有用人才的需求逐步加大,企業(yè)內(nèi)部的人事變動和部門規(guī)劃也開始加速,傳統(tǒng)的人事檔案已經(jīng)不能滿足各個企業(yè)的人員流動速度,迫使人們起用新的管理方法來管

7、理員工的相關(guān)信息??茖W(xué)技術(shù)日新月異的進(jìn)步,讓人類生活發(fā)生了巨大的變化,計(jì)算機(jī)技術(shù)的飛速發(fā)展,使各行各業(yè)在計(jì)算機(jī)技術(shù)應(yīng)用方面得到了廣泛的普及和使用。信息化時代的到來成為不可抗拒的潮流,人類文明正在進(jìn)入一個嶄新的時代。因此,員工管理系統(tǒng)也以方便、快捷、費(fèi)用低、綠色環(huán)保的優(yōu)點(diǎn)正慢慢地進(jìn)入各個行業(yè)和領(lǐng)域,將傳統(tǒng)的員工管理方式徹底的解脫出來,提高效率,減輕工人人員以往繁忙的工作,加速信息的更新速度,使企業(yè)管理層第一時間了解到員工的信息,從而進(jìn)一步

8、的進(jìn)行對員工的調(diào)配。</p><p><b>  功能需求詳細(xì)說明:</b></p><p><b>  —增加—</b></p><p>  增加員工的基本信息、考勤信息</p><p><b>  —編輯—</b></p><p>  用戶可以對員工

9、信息、考勤信息進(jìn)行刪除</p><p>  用戶可以對員工的姓名、編號等員工基本信息進(jìn)行修改</p><p>  用戶可以對員工的出勤天數(shù)、請假天數(shù)等考勤信息進(jìn)行修改</p><p><b>  —查詢—</b></p><p>  用戶可以根據(jù)姓名、編號,準(zhǔn)確的查到要找的員工,也可以選擇部門,查看選中的部門的所有員工。

10、</p><p><b>  1.2可行性分析</b></p><p>  本次課程設(shè)計(jì)題目:“員工信息管理系統(tǒng)”,主要目的是編制一個登陸系統(tǒng),連接數(shù)據(jù)庫系統(tǒng),用以實(shí)現(xiàn)員工個人信息與考勤信息的管理。同時對整個系統(tǒng)的分析、設(shè)計(jì)過程給出一個完整的論證。</p><p>  由于本系統(tǒng)管理的對象簡單,且每個數(shù)據(jù)內(nèi)容之間都具有關(guān)聯(lián)性,涉及過程并不是很復(fù)

11、雜。因此,比較適合于采用數(shù)據(jù)庫管理。在技術(shù)難度方面,由于有指導(dǎo)老師的指導(dǎo)和相關(guān)參考文獻(xiàn),特別是網(wǎng)上和圖書館資料,特別是參考其它程序的功能,因此完全可以實(shí)現(xiàn)。</p><p><b>  數(shù)據(jù)庫的概念設(shè)計(jì)</b></p><p><b>  實(shí)體設(shè)計(jì):</b></p><p>  員工(員工編號,姓名,性別,出生日期,籍貫,

12、專業(yè),學(xué)歷編號,職稱編號,職務(wù)編號,部門編號,參加工作時間,進(jìn)入公司時間,員工備注,政治面貌,員工技術(shù)特長,畢業(yè)學(xué)校,用工性質(zhì),工資等級,合同期限)</p><p>  考勤(員工編號,考勤日期,姓名,應(yīng)出勤天數(shù),遲到次數(shù),早退次數(shù),請假天數(shù),曠工天數(shù),加班天數(shù),加班天數(shù),補(bǔ)休天數(shù),加班費(fèi),扣款,備注)</p><p>  根據(jù)以上需求分析,可畫出E-R模型圖(圖1.1):</p&g

13、t;<p><b>  圖1.1</b></p><p><b>  E-R圖</b></p><p>  3 數(shù)據(jù)庫的邏輯設(shè)計(jì)</p><p>  根據(jù)系統(tǒng)功能設(shè)計(jì)的要求以及功能模塊的劃分,對員工信息管理系統(tǒng)可以列出以</p><p>  下數(shù)據(jù)項(xiàng)及數(shù)據(jù)結(jié)構(gòu):</p>

14、<p>  員工個人基本信息:包括員工編號、姓名、性別、出生日期、籍貫、專業(yè)、學(xué)歷編號、職稱編號、職務(wù)編號、部門編號、參加工作時間、進(jìn)入公司時間、員工備注、政治面貌、員工技術(shù)特長、畢業(yè)學(xué)校、用工性質(zhì)、合同期限。</p><p>  員工考勤基本信息:包括員工編號、姓名、應(yīng)出勤天數(shù)、遲到次數(shù)、早退次數(shù)、請假天數(shù)、曠工天數(shù)、加班天數(shù)、加班天數(shù)、補(bǔ)休天數(shù)、加班費(fèi)、扣款、備注。</p><

15、p>  部門信息:包括部門編號、部門名稱、部門簡介</p><p>  職稱信息:包括職稱序號、職稱名稱、備注</p><p>  學(xué)歷信息:包括學(xué)歷序號、學(xué)歷名稱、備注</p><p>  職務(wù)信息:包括職務(wù)序號、職務(wù)名稱、備注</p><p>  用戶信息:包括用戶的帳號及密碼。</p><p><b&

16、gt;  數(shù)據(jù)庫的物理設(shè)計(jì)</b></p><p>  4.1數(shù)據(jù)字典與關(guān)系圖</p><p>  根據(jù)系統(tǒng)需求及邏輯結(jié)構(gòu)設(shè)計(jì),本網(wǎng)站基于SQL Server 2000數(shù)據(jù)庫,建立如下數(shù)據(jù)庫表(表1.1):</p><p><b>  表1.1</b></p><p><b>  注:波浪線為主鍵。

17、</b></p><p><b>  圖1.2</b></p><p><b>  關(guān)系圖</b></p><p>  4.2數(shù)據(jù)庫建立與初始化</p><p>  4.2.1 建立數(shù)據(jù)庫</p><p>  Create table employee</p

18、><p><b>  (</b></p><p>  emp_id int(4) not null,</p><p>  emp_name nvarchar(20) not null,</p><p>  sex nvarchar(2) not null,</p><p>  birthday sma

19、ldatetime(4) not null,</p><p>  native nvarchar(20),</p><p>  profession nvarchar(20),</p><p>  edu_id int(4),not null,</p><p>  title_id int(4),not null,</p>&l

20、t;p>  dept_id int(4),not null,</p><p>  duty_id int(4),not null,</p><p>  emp_date1 smaldatetime(4),not null,</p><p>  emp_date2 smaldatetime(4),not null,</p><p>  e

21、mp_des nvarchar(255),</p><p>  zzmm nvarchar(50),</p><p>  ygjstc nvarchar(50),</p><p>  bisx nvarchar(50),</p><p>  ygxz nvarchar(50),</p><p>  htqx nvarc

22、har(50),</p><p>  constraint EmPK primary key(emp_id),</p><p>  constraint EduFK foreign key(edu_id) references education(edu_id),</p><p>  constraint TitleFK foreign key(title_id)

23、references education(title_id),</p><p>  constraint DuFK foreign key(duty_id) references education(duty_id),</p><p>  constraint DeFK foreign key(dept_id) references education(dept_id),</p>

24、;<p><b>  )</b></p><p>  Create table title</p><p><b>  (</b></p><p>  title_id int(4) not null,</p><p>  title_name nvarchar(20) not nul

25、l,</p><p>  title_des nvarchar(255)</p><p>  constraint TiPK primary key(title_id),</p><p><b>  )</b></p><p>  Create table education</p><p>&l

26、t;b>  (</b></p><p>  edu_id int(4) not null,</p><p>  edu _name nvarchar(20) not null,</p><p>  edu _des nvarchar(255)</p><p>  constraint EdPK primary key(edu

27、 _id),</p><p><b>  )</b></p><p>  Create table duty</p><p><b>  (</b></p><p>  duty _id int(4) not null,</p><p>  duty _name nvarch

28、ar(20) not null,</p><p>  duty _des nvarchar(255)</p><p>  constraint DuPK primary key(duty _id),</p><p><b>  )</b></p><p>  Create table department</p&g

29、t;<p><b>  (</b></p><p>  dept_id int(4) not null,</p><p>  dept _name nvarchar(20) not null,</p><p>  dept _des nvarchar(255)</p><p>  constraint De

30、PK primary key(dept _id),</p><p><b>  )</b></p><p><b>  安全性(權(quán)限)</b></p><p>  grant all privileges on employee to sasa</p><p>  grant all privile

31、ges on checkin to sasa</p><p>  grant all privileges on sysuser to sasa</p><p>  grant all privileges on duty to sasa</p><p>  grant all privileges on title to sasa</p><p

32、>  grant all privileges on department to sasa</p><p>  grant all pr ivileges on education to sasa</p><p><b>  觸發(fā)器</b></p><p>  功能:使姓名中不能出現(xiàn)數(shù)字。</p><p>  CR

33、EATE TRIGGER T_IN </p><p>  ON dbo.employee</p><p>  FOR INSERT,Update</p><p><b>  AS </b></p><p>  IF EXISTS ( </p><p><b>  SELECT * <

34、;/b></p><p>  FROM employee </p><p>  WHERE emp_name like '%[0-9]%' </p><p><b>  ) </b></p><p><b>  BEGIN </b></p><p> 

35、 RAISERROR('錯誤!姓名中不可出現(xiàn)數(shù)字',16,1) </p><p><b>  ROLLBACK </b></p><p><b>  RETURN </b></p><p><b>  END</b></p><p><b>  建立索

36、引</b></p><p>  create cluster index pk_duty on duty_id</p><p>  create cluster index pk_department on dept_id</p><p>  create cluster index pk_title on title_id</p><

37、;p>  create cluster index pk_education on edu_id</p><p>  create cluster index pk_sysuser on user_id</p><p>  create cluster index pk_employee on emp_id</p><p>  create cluster i

38、ndex pk_checkin on (emp_id,check_ym)</p><p><b>  VB數(shù)據(jù)庫連接語句</b></p><p>  Option Explicit</p><p>  Public dbConn As New ADODB.Connection</p><p>  Public login

39、User As String</p><p>  Public loginOK As Boolean</p><p>  Public cmdType As String</p><p>  Public tUser_id As String</p><p>  Public tDept_id As Integer</p>&l

40、t;p>  Public tEmp_id As Integer</p><p>  Public tCheck_ym As String</p><p>  Public tQx As String</p><p>  Sub Main()</p><p>  If ConnectToDatabase = False Then</

41、p><p>  MsgBox "連接數(shù)據(jù)庫出錯!"</p><p><b>  End</b></p><p><b>  End If </b></p><p>  loginOK = False</p><p>  cmdType = "&quo

42、t;</p><p>  frmLogin.Show vbModal</p><p>  Unload frmLogin</p><p>  If loginOK Then</p><p>  MDIForm1.Show</p><p><b>  End If</b></p>&l

43、t;p><b>  End Sub</b></p><p><b>  '連接到數(shù)據(jù)庫</b></p><p>  Function ConnectToDatabase() As Boolean</p><p>  On Error GoTo ERR_CONN</p><p>  &#

44、39;設(shè)置服務(wù)器名稱,數(shù)據(jù)庫名稱,登錄名(此時假設(shè)密碼為空)</p><p>  dbConn.ConnectionString = "dsn=rsgl;Database=man;uid=ZFS;pwd="</p><p>  'dbConn.ConnectionString = "Provider=msdasql;Database=man;serve

45、r=computer;uid=sa;pwd="</p><p>  dbConn.Open</p><p>  ConnectToDatabase = True</p><p>  Exit Function</p><p><b>  ERR_CONN:</b></p><p>  C

46、onnectToDatabase = False</p><p>  End Function</p><p><b>  ODBC連接</b></p><p>  連接數(shù)據(jù)庫方法如下:</p><p>  打開我的電腦---控制面板---管理工具。</p><p>  雙擊“數(shù)據(jù)源(ODBC)”

47、,打開“ODBC數(shù)據(jù)源管理器”對話框,如圖(圖1.3)所示。</p><p>  在“系統(tǒng)DSN”選項(xiàng)卡下,單擊“添加”按鈕,彈出如圖(圖1.4)所示對話框,在該對話框中選擇SQL Server選項(xiàng)。</p><p>  單擊“完成”按鈕。 </p><p>  在該對話框中輸入數(shù)據(jù)源名“emp”、服務(wù)器名,按要求填空完成后,即可完成數(shù)據(jù)源的連接設(shè)置(圖1.6)。&

48、lt;/p><p><b>  圖1.3</b></p><p>  圖1.4 圖1.5</p><p><b>  圖1.6</b></p><p><b>  5 應(yīng)用程序設(shè)計(jì)</b></p&

49、gt;<p><b>  5.1系統(tǒng)功能分析</b></p><p>  員工信息管理系統(tǒng)基于用戶驗(yàn)證登錄的方式實(shí)現(xiàn)員工個人信息管理和員工考勤信息管理。其功能結(jié)構(gòu)如圖(圖1.7):</p><p><b>  圖1.7:</b></p><p><b>  系統(tǒng)功能結(jié)構(gòu)圖</b><

50、/p><p>  5.2系統(tǒng)功能模塊設(shè)計(jì)</p><p>  員工信息管理系統(tǒng)主要包含用戶登錄、新增、編輯、查詢功能模塊。</p><p><b>  1、用戶登陸</b></p><p>  員工信息管理系統(tǒng)采用用戶名及密碼驗(yàn)證方式,進(jìn)入員工信息管理系統(tǒng)前,用戶必須在登錄窗口輸入用戶名及密碼,只有驗(yàn)證通過的用戶方可進(jìn)入員工

51、信息管理系統(tǒng)操作主頁面。</p><p><b>  2、新增功能模塊</b></p><p>  包含2個功能模塊:員工個人信息的添加、員工考勤信息的添加</p><p><b>  3、編輯功能模塊</b></p><p>  包含2個功能模塊:員工個人信息的刪除、按月份進(jìn)行員工考勤信息編輯與刪

52、除</p><p><b>  4、查詢功能模塊</b></p><p>  包含2個功能模塊:員工個人信息查詢、按月份進(jìn)行員工考勤信息查詢</p><p>  系統(tǒng)操作流程圖(圖1.8):</p><p><b>  圖1.8:</b></p><p>  設(shè)計(jì)結(jié)果與分析(

53、可以加頁):</p><p>  1、員工信息查詢 (frmEmpInfo2.frm)</p><p>  圖1.9:員工信息查詢界面</p><p><b>  主要代碼如下: </b></p><p>  Private Sub Command1_Click()</p><p>  Dim

54、strId As String</p><p>  Dim strName As String</p><p>  Dim strDept As String</p><p>  Dim strTitle As String</p><p>  Dim strDuty As String</p><p>  Dim s

55、trEdu As String</p><p>  Dim strSex As String</p><p><b>  '設(shè)置錯誤陷阱</b></p><p>  On Error GoTo ERR_CONN</p><p>  If Trim(MskId) = "" Then</p&

56、gt;<p>  strId = ""</p><p><b>  Else</b></p><p>  strId = "and a.emp_id= '" & MskId & "'"</p><p><b>  End If&l

57、t;/b></p><p>  If Trim(Text2) = "" Then</p><p>  strName = ""</p><p><b>  Else</b></p><p>  strName = "and a.emp_name='"

58、; & Trim(Text2) & "'"</p><p><b>  End If</b></p><p>  If cboDept.ListIndex = 0 Then</p><p>  strDept = ""</p><p><b>  

59、Else</b></p><p>  strDept = "and c.dept_name='" & cboDept.Text & "'"</p><p><b>  End If</b></p><p>  If cboTitle.ListIndex = 0

60、Then</p><p>  strTitle = ""</p><p><b>  Else</b></p><p>  strTitle = "and e.title_name='" & cboTitle.Text & "'"</p>

61、<p><b>  End If</b></p><p>  If cboDuty.ListIndex = 0 Then</p><p>  strDuty = ""</p><p><b>  Else</b></p><p>  strDuty = "an

62、d d.duty_name='" & cboDuty.Text & "'"</p><p><b>  End If</b></p><p>  If cboEdu.ListIndex = 0 Then</p><p>  strEdu = ""</p>

63、;<p><b>  Else</b></p><p>  strEdu = "and b.edu_name='" & cboEdu.Text & "'"</p><p><b>  End If</b></p><p>  If cbo

64、Sex.ListIndex = 0 Then</p><p>  strSex = ""</p><p><b>  Else</b></p><p>  strSex = "and a.sex='" & cboSex.Text & "'"</p&

65、gt;<p><b>  End If</b></p><p><b>  '打開一個數(shù)據(jù)集</b></p><p>  strSql = "select a.emp_id,a.emp_name,a.sex,b.edu_name,c.dept_name,d.duty_name,e.title_name from e

66、mployee a,education b,department c,duty d,title e where a.edu_id=b.edu_id and a.dept_id=c.dept_id and a.duty_id=d.duty_id and a.title_id=e.title_id " & strId & " " & strName & " &quo

67、t; & strDept & " " & strTitle & " " & strTitle & "" & strDuty & " " & strEdu & " " & strSex & " order by a.emp_id&quo

68、t;</p><p>  rs.Open strSql, dbConn, adOpenForwardOnly, adLockReadOnly</p><p>  If rs.EOF Then</p><p>  Label9 = "找到0條記錄"</p><p>  flxShow.Rows = 1</p>

69、<p><b>  Else</b></p><p><b>  '填寫數(shù)據(jù)</b></p><p>  flxShow.Rows = 1</p><p>  Do While Not rs.EOF</p><p>  flxShow.Rows = flxShow.Rows + 1

70、</p><p>  flxShow.TextMatrix(flxShow.Rows - 1, 0) = rs.Fields(0).Value</p><p>  For i = 2 To rs.Fields.Count</p><p>  flxShow.TextMatrix(flxShow.Rows - 1, i) = rs.Fields(i - 1).Valu

71、e</p><p><b>  Next i</b></p><p>  rs.MoveNext</p><p><b>  Loop</b></p><p>  Label9 = "找到" & flxShow.Rows - 1 & "條記錄"

72、</p><p><b>  End If</b></p><p><b>  rs.Close</b></p><p><b>  Exit Sub</b></p><p><b>  ERR_CONN:</b></p><p>

73、  MsgBox "請檢查輸入的數(shù)據(jù)是否有效"</p><p><b>  End Sub</b></p><p>  Private Sub Command3_Click()</p><p><b>  Unload Me</b></p><p><b>  End

74、Sub</b></p><p>  Private Sub Form_Load()</p><p><b>  '性別</b></p><p>  cboSex.AddItem ""</p><p>  cboSex.AddItem "男"</p>

75、<p>  cboSex.AddItem "女"</p><p>  cboSex.ListIndex = 0</p><p><b>  '學(xué)歷</b></p><p>  strSql = "Select edu_id,edu_name from education Order By edu

76、_id"</p><p>  rs.Open strSql, dbConn, adOpenForwardOnly, adLockReadOnly</p><p>  cboEdu.AddItem ""</p><p>  Do While Not rs.EOF</p><p>  cboEdu.AddItem (

77、rs.Fields("edu_name").Value)</p><p>  cboEdu.ItemData(cboEdu.NewIndex) = rs.Fields("edu_id").Value</p><p>  rs.MoveNext</p><p><b>  Loop</b></p>

78、;<p><b>  rs.Close</b></p><p>  cboEdu.ListIndex = 0</p><p><b>  '部門</b></p><p>  strSql = "Select dept_id,dept_name from department Order By

79、 dept_id"</p><p>  rs.Open strSql, dbConn, adOpenForwardOnly, adLockReadOnly</p><p>  cboDept.AddItem ""</p><p>  Do While Not rs.EOF</p><p>  cboDept.Ad

80、dItem (rs.Fields("dept_name").Value)</p><p>  cboDept.ItemData(cboDept.NewIndex) = rs.Fields("dept_id").Value</p><p>  rs.MoveNext</p><p><b>  Loop</b&g

81、t;</p><p><b>  rs.Close</b></p><p>  cboDept.ListIndex = 0</p><p><b>  '職務(wù)</b></p><p>  strSql = "Select duty_id,duty_name from duty Or

82、der By duty_id"</p><p>  rs.Open strSql, dbConn, adOpenForwardOnly, adLockReadOnly</p><p>  cboDuty.AddItem ""</p><p>  Do While Not rs.EOF</p><p>  cboD

83、uty.AddItem (rs.Fields("duty_name").Value)</p><p>  cboDuty.ItemData(cboDuty.NewIndex) = rs.Fields("duty_id").Value</p><p>  rs.MoveNext</p><p><b>  Loop&l

84、t;/b></p><p><b>  rs.Close</b></p><p>  cboDuty.ListIndex = 0</p><p><b>  '職稱</b></p><p>  strSql = "Select title_id,title_name from

85、 title Order By title_id"</p><p>  rs.Open strSql, dbConn, adOpenForwardOnly, adLockReadOnly</p><p>  cboTitle.AddItem ""</p><p>  Do While Not rs.EOF</p><

86、p>  cboTitle.AddItem (rs.Fields("title_name").Value)</p><p>  cboTitle.ItemData(cboTitle.NewIndex) = rs.Fields("title_id").Value</p><p>  rs.MoveNext</p><p>&

87、lt;b>  Loop</b></p><p><b>  rs.Close</b></p><p>  cboTitle.ListIndex = 0</p><p><b>  '設(shè)置列數(shù)</b></p><p>  flxShow.Cols = 8</p>

88、<p><b>  '列標(biāo)題</b></p><p>  flxShow.TextMatrix(0, 0) = "工號"</p><p>  flxShow.TextMatrix(0, 1) = ""</p><p>  flxShow.TextMatrix(0, 2) = "

89、;姓名"</p><p>  flxShow.TextMatrix(0, 3) = "性別"</p><p>  flxShow.TextMatrix(0, 4) = "學(xué)歷"</p><p>  flxShow.TextMatrix(0, 5) = "部門"</p><p&g

90、t;  flxShow.TextMatrix(0, 6) = "職務(wù)"</p><p>  flxShow.TextMatrix(0, 7) = "職稱"</p><p><b>  '設(shè)置列寬</b></p><p>  flxShow.ColWidth(0) = 1000</p>

91、<p>  flxShow.ColWidth(1) = 0</p><p>  flxShow.ColWidth(2) = 1400</p><p>  flxShow.ColWidth(3) = 800</p><p>  flxShow.ColWidth(4) = 1400</p><p>  flxShow.ColWidth

92、(5) = 1400</p><p>  flxShow.ColWidth(6) = 1400</p><p>  flxShow.ColWidth(7) = 1410</p><p>  '設(shè)置各列的對齊方式</p><p>  For i = 0 To 7</p><p>  flxShow.ColAlig

93、nment(i) = 0</p><p><b>  Next i</b></p><p><b>  '表頭項(xiàng)居中</b></p><p>  flxShow.FillStyle = flexFillRepeat</p><p>  flxShow.Col = 0</p>&

94、lt;p>  flxShow.Row = 0</p><p>  flxShow.RowSel = 1</p><p>  flxShow.ColSel = flxShow.Cols - 1</p><p>  flxShow.CellAlignment = 4</p><p>  flxShow.Rows = 1</p>

95、<p>  '強(qiáng)制跨越整個行選擇</p><p>  flxShow.SelectionMode = flexSelectionByRow</p><p><b>  End Sub</b></p><p>  2、員工考勤查詢 (frmCheckInfo2.frm )</p><p><b&

96、gt;  員工考勤查詢界面</b></p><p><b>  主要代碼如下:</b></p><p>  Private Sub Command3_Click()</p><p>  Dim strId As String</p><p>  Dim strName As String</p>

97、<p>  Dim strDept As String</p><p>  Dim strCheck As String</p><p><b>  '按工號查詢</b></p><p>  If Len(Trim(MskId)) = 0 Then</p><p>  strId = "&q

98、uot;</p><p><b>  Else</b></p><p>  strId = "and a.emp_id= '" & MskId & "'"</p><p><b>  End If</b></p><p><

99、;b>  '按姓名查詢</b></p><p>  If Len(Trim(Text1)) = 0 Then</p><p>  strName = ""</p><p><b>  Else</b></p><p>  strName = "and b.emp_n

100、ame='" & Trim(Text1) & "'"</p><p><b>  End If</b></p><p><b>  '按部門查詢</b></p><p>  If cboDept = "" Then</p>

101、<p>  strDept = ""</p><p><b>  Else</b></p><p>  strDept = "and c.dept_name='" & cboDept & "'"</p><p><b>  End

102、 If</b></p><p><b>  '按時間查詢</b></p><p>  If cboCheckYear = "" Then</p><p>  If cboCheckMonth = "" Then '年月都為空時</p><p>  s

103、trCheck = ""</p><p>  Else '任意年份的指定月</p><p>  strCheck = "and a.check_ym in ('" & Year(Date) & cboCheckMonth & "','&q

104、uot; & Year(Date) - 1 & cboCheckMonth & "')"</p><p><b>  End If</b></p><p><b>  Else</b></p><p>  If cboCheckMonth = "" T

105、hen '指定年份的任意月</p><p>  strCheck = "and a.check_ym in ('" & cboCheckYear & "01" & "','" & cboCheckYear & "02" & "',&#

106、39;" & cboCheckYear & "03" & "','" & cboCheckYear & "04" & "','" & cboCheckYear & "05" & "','"

107、& cboCheckYear & "06" & "','" & cboCheckYear & "03" & "','" & cboCheckYear & "07" & "','" & cboC

108、heckYear & "08" & "','" & cboCheckYear & "09" & "','" & cboCheckYear & "10" & "','" & cboCheckYear &

109、amp; "11" & "','" & cboCheckYear & "12" & "' )"</p><p>  Else '指定的年月</p><p>  strCheck = "and

110、 a.check_ym in('" & cboCheckYear & cboCheckMonth & "')"</p><p><b>  End If</b></p><p><b>  End If</b></p><p><b>  &#

111、39;打開一個數(shù)據(jù)集</b></p><p>  strSql = "select a.emp_id,b.emp_name,c.dept_name,a.check_ym,a.w_days,a.l_nums,a.e_nums,a.h_days,a.n_days from checkin a ,employee b,department c where a.emp_id = b.emp_id

112、and c.dept_id=b.dept_id " & strCheck & " " & strDept & " " & strName & " " & strId & " order by b.emp_id"</p><p>  rs.Open strSql,

113、 dbConn, adOpenForwardOnly, adLockReadOnly</p><p>  flxShow.Rows = 1</p><p>  If rs.EOF Then</p><p><b>  Else</b></p><p><b>  '填寫數(shù)據(jù)</b></

114、p><p>  Do While Not rs.EOF</p><p>  flxShow.Rows = flxShow.Rows + 1</p><p>  flxShow.TextMatrix(flxShow.Rows - 1, 0) = rs.Fields(0).Value</p><p>  For i = 2 To rs.Fields.

115、Count</p><p>  flxShow.TextMatrix(flxShow.Rows - 1, i) = rs.Fields(i - 1).Value</p><p><b>  Next i</b></p><p>  rs.MoveNext</p><p><b>  Loop</b>

116、</p><p><b>  End If</b></p><p>  Label8 = "找到" & flxShow.Rows - 1 & "條記錄"</p><p><b>  rs.Close</b></p><p><b> 

117、 End Sub</b></p><p>  Private Sub Form_Load()</p><p>  Me.Icon = LoadPicture(App.Path & "\Graph07.ico")</p><p><b>  ' 設(shè)置列數(shù)</b></p><

118、p>  flxShow.Cols = 10</p><p><b>  '列標(biāo)題</b></p><p>  flxShow.TextMatrix(0, 0) = "工號"</p><p>  flxShow.TextMatrix(0, 1) = ""</p><p>

119、;  flxShow.TextMatrix(0, 2) = "姓名"</p><p>  flxShow.TextMatrix(0, 3) = "部門"</p><p>  flxShow.TextMatrix(0, 4) = "考勤時間"</p><p>  flxShow.TextMatrix(0, 5

120、) = "應(yīng)出勤"</p><p>  flxShow.TextMatrix(0, 6) = "遲到"</p><p>  flxShow.TextMatrix(0, 7) = "早退"</p><p>  flxShow.TextMatrix(0, 8) = "請假"</p>

121、;<p>  flxShow.TextMatrix(0, 9) = "曠工"</p><p><b>  '設(shè)置列寬</b></p><p>  flxShow.ColWidth(0) = 1000</p><p>  flxShow.ColWidth(1) = 0</p><p&g

122、t;  flxShow.ColWidth(2) = 1200</p><p>  flxShow.ColWidth(3) = 1200</p><p>  flxShow.ColWidth(4) = 1200</p><p>  flxShow.ColWidth(5) = 820</p><p>  flxShow.ColWidth(6) =

123、 820</p><p>  flxShow.ColWidth(7) = 820</p><p>  flxShow.ColWidth(8) = 820</p><p>  flxShow.ColWidth(9) = 900</p><p>  '設(shè)置各列的對齊方式</p><p>  For i = 0 To

124、 9</p><p>  flxShow.ColAlignment(i) = 0</p><p><b>  Next i</b></p><p><b>  '表頭項(xiàng)居中</b></p><p>  flxShow.FillStyle = flexFillRepeat</p>

125、<p>  flxShow.Col = 0</p><p>  flxShow.Row = 0</p><p>  flxShow.RowSel = 1</p><p>  flxShow.ColSel = flxShow.Cols - 1</p><p>  flxShow.CellAlignment = 4</p>

126、<p>  '強(qiáng)制跨越整個行選擇</p><p>  flxShow.SelectionMode = flexSelectionByRow</p><p>  flxShow.Rows = 1</p><p>  cboCheckYear.AddItem ""</p><p>  cboCheckYe

127、ar.AddItem Year(Date)</p><p>  cboCheckYear.AddItem Year(Date) - 1</p><p>  cboCheckYear.ListIndex = 1</p><p>  cboCheckMonth.AddItem ""</p><p>  For i = 1 To

128、 12</p><p>  If i < 10 Then</p><p>  cboCheckMonth.AddItem "0" & i</p><p><b>  Else</b></p><p>  cboCheckMonth.AddItem i</p><p&g

129、t;<b>  End If</b></p><p>  If i = Month(Date) Then</p><p>  cboCheckMonth.ListIndex = cboCheckMonth.NewIndex</p><p><b>  End If</b></p><p><b

130、>  Next i</b></p><p><b>  '部門</b></p><p>  strSql = "Select dept_id,dept_name from department Order By dept_id"</p><p>  rs.Open strSql, dbConn, a

131、dOpenForwardOnly, adLockReadOnly</p><p>  cboDept.AddItem ""</p><p>  Do While Not rs.EOF</p><p>  cboDept.AddItem (rs.Fields("dept_name").Value)</p><

132、p>  cboDept.ItemData(cboDept.NewIndex) = rs.Fields("dept_id").Value</p><p>  rs.MoveNext</p><p><b>  Loop</b></p><p><b>  rs.Close</b></p>

133、<p>  cboDept.ListIndex = 0</p><p><b>  End Sub</b></p><p>  3、系統(tǒng)特色:有較強(qiáng)的數(shù)據(jù)完整性、安全性設(shè)計(jì)</p><p>  1)系統(tǒng)中按鈕中基本都設(shè)置了錯誤陷阱語句:</p><p>  On Error GoTo ERR_CONN<

134、;/p><p><b>  ERR_CONN:</b></p><p>  MsgBox "請檢查輸入的數(shù)據(jù)是否有效"</p><p>  所以系統(tǒng)一般不會出現(xiàn)輸入導(dǎo)致系統(tǒng)崩潰現(xiàn)象。</p><p>  例如,圖(2.1)中生日年份越界會出現(xiàn)警告:</p><p><b>

135、;  圖2.1</b></p><p>  2)系統(tǒng)設(shè)置了部分主要信息的錯誤提示(輸入不能為空、姓名中不能出現(xiàn)數(shù)字、工號中只能出現(xiàn)數(shù)字、生日必須合法輸入、出勤次數(shù)必須大于缺勤、請假次數(shù)總和):</p><p><b>  例一:</b></p><p>  flag1 = False</p><p>  fl

136、ag2 = False</p><p>  For i = 1 To Len(Trim(txtEmp_name.Text))</p><p>  If Mid(Trim(txtEmp_name.Text), i, 1) >= "0" And Mid(Trim(txtEmp_name.Text), i, 1) <= "9" Then<

137、/p><p>  flag1 = True</p><p><b>  End If</b></p><p><b>  Next</b></p><p>  For i = 1 To Len(Trim(txtEmp_id.Text))</p><p>  If Mid(Trim

138、(txtEmp_id.Text), i, 1) < "0" Or Mid(Trim(txtEmp_id.Text), i, 1) > "9" Then</p><p>  flag2 = True</p><p><b>  End If</b></p><p><b>  Next

139、</b></p><p>  If Trim(txtEmp_name.Text) = "" Then</p><p>  MsgBox "姓名不能為空,請重新輸入!", vbOKOnly + vbExclamation, "警告"</p><p>  txtEmp_name.Text = &qu

140、ot;"</p><p>  txtEmp_name.SetFocus</p><p><b>  Exit Sub</b></p><p><b>  End If</b></p><p>  If flag1 = True Then</p><p>  MsgB

141、ox "姓名不能含有數(shù)字!", vbOKOnly + vbExclamation, "警告"</p><p>  txtEmp_name.Text = ""</p><p>  txtEmp_name.SetFocus</p><p><b>  Exit Sub</b></p&

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論