【正文】
stem_Users 用戶表 tab_Appraise 員工評價表 tab_Checkin 員工考勤表 tab_Department 部門表 tab_Employee 員工資料表 tab_Later 遲到表 tab_Leave 早退表 tab_Overtime 加班表 tab_Pay 員工工資表 tab_Position 職務(wù)表 三、程序總體設(shè)計 數(shù)據(jù)庫連接 采用直接連接 Access 數(shù)據(jù)庫的方式連接 Dim n, nstr nstr = Driver={Microsoft Access Driver (*.mdb)}。dbq= amp。 _ (../../Data/) 21 Sub n_open() Set n = Createobject() = nstr End Sub call n_open() 分頁函數(shù) sub fy (page,name,rs) If Page 1 Then A HREF=amp。nameamp。page=1[第一頁 ]/A A HREF=amp。nameamp。Page=amp。(Page1)amp。[上一頁 ]/A End If If Page Then A HREF=amp。nameamp。Page=amp。(Page+1)amp。[下一頁 ]/A A HREF=amp。nameamp。Page=amp。amp。[最后一頁 ]/A End If font color=aaaaaa[第 amp。pageamp。頁 ]/[共 amp。amp。頁 ]/font end sub 數(shù)據(jù)類型 的驗證 驗證 數(shù)據(jù)類型 是否為整型 function int_chk(input_data) On Error Resume Next int_chk = CInt(input_data) If 0 Then ../Para/?error_para=data_error exit function Else 22 End If end function 驗證數(shù)據(jù)類型是否為日期型 function date_chk(input_data) On Error Resume Next date_chk = trim(input_data) If isDate(input_data) Then Else ../Para/?error_para=date_error exit function End If end function 用戶登陸的判斷 Javascript 判斷,用戶名和密碼是否為空,用戶名和密碼長度必須在 5- 16 位之間 function ck(){ var UserCode=。 var UserPwd=。 if (IsBufferEmpty(UserCode,請?zhí)顚懹脩魩ぬ? !)) { =。 ()。 return false。 } if ( 5 || 16) { alert(帳號長度應(yīng)在 (516)之間 )。 =。 ()。 return false。 23 } if (IsBufferEmpty(UserPwd,請?zhí)顚懹脩裘艽a !)) { =。 ()。 return false。 } if ( 5 || 16) { alert(密碼長度應(yīng)在 (516)之間 )。 =。 ()。 return false。 } } ! Custom Function function IsBufferEmpty(buffer,warnStr){ if (==0){ if (0) alert(warnStr)。return true。} var i=0。 var ret=true。 while (i ){ temp=(i,i+1)。 if (temp==39。\\39。 || temp==39。/39。 || temp==39。:39。 || temp==39。*39。 || temp==39。?39。 || temp==39。amp。39。 || temp==39。39。 || temp==39。39。 || temp==39。39。 || temp==39。|39。 || temp==39。\39。39。){ alert(39。用戶名 ,密碼不可包括 \\/:*?|\39。amp。39。)。return true。} if (ret==true amp。amp。 temp!=39。 39。) ret=false。 i=i+1。} if (ret amp。amp。 0) alert(warnStr)。 return ret。 } 然后從數(shù)據(jù)庫從取出此帳號的信息,進(jìn)行判斷是否為合法用戶,再判斷此帳號是否為激活狀態(tài) 24 和是否已到有效期,如果為有效用戶,則將用戶信息保存到 Session 中 Set rst_user = CreateObject() sql=Select * from System_Users Where UserCode=39。amp。UserCodeamp。39。 And UserPwd=39。amp。UserPwdamp。39。 sql,n,1,3 If Then ../para/?error_para=login_fail Else if rst_user(UserActiveFlag)=0 then ../para/?error_para=activeflag_fail end if if CDate(rst_user(UserEndDate))=CDate(Year(now)amp。amp。Month(now)amp。amp。Day(now)) then ../para/?error_para=endtime_fail end if Session(AdminID) = trim(rst_user(UserID)) Session(UserCode) = trim(rst_user(UserCode)) Session(UserName) = trim(rst_user(UserName)) Session(UserRoles) = trim(rst_user(UserRoles)) Session(UserEndDate) = trim(rst_user(UserEndDate)) Session(UserActiveFlag) = trim(rst_user(UserActiveFlag)) 基礎(chǔ)資料 員工信息:根據(jù)公司員工的檔案信息,輸入并保存至數(shù)據(jù)庫,并可查詢、修改和刪除 25 圖 部分代碼如下: 程序不允許添加 2 個相同工號的員工記錄 set rst=CreateObject() sql=select * from tab_Employee where EmployNo=39。amp。 EmployNo amp。39。 sql,n,1,3 if not then script alert(39。此工號已存在,請重新輸入 39。)。 (1)。 /script else tab_Employee,n,1,3 rst(EmployNo)=EmployNo rst(EmployName)=EmployName rst(Gender)=Gender 26 rst(Birthday)=Birthday rst(NativePlace)=NativePlace rst(Education)=Education rst(Specialty)=Specialty rst(IDCard)=IDCard rst(Marry)=Marry rst(Polity)=Polity rst(Telephone)=Telephone rst(Address)=Address rst(Postcode)=Postcode rst(Email)=Email rst(EmployDate)=EmployDate rst(Department)=Department rst(Position)=Position rst(EmployStatus)=EmployStatus rst(WorkExp)=WorkExp rst(Remark)=Remark end if 部門信息: 設(shè)定公司的各部門名稱 圖 部分程序代碼如下: set rst=CreateObject() sql=select * from tab_Department where DeptName = 39。amp。 DeptName amp。39。 sql,n,1,3 27 if not then script alert(39。此部門已存在,請重新輸入 39。)。 (1)。 /script else tab_Department,n,1,3 rst(DeptName)=DeptName end if set rst=nothing 職務(wù)信息:設(shè)定公司的各職務(wù)名稱 圖 部分程序代碼如下: set rst=CreateObject() sql=select * from tab_Position where PosName = 39。amp。 PosName amp。39。 sql,n,1,3 if not then script alert(39。此職務(wù)已存在,請重新輸入 39。)。 28 (1)。 /script else tab_Position,n,1,3 rst(PosName)=PosName end if set rst=nothing 考勤管理 請假管理:根據(jù)員工的請假單,輸入并保存,以便今后查詢 圖 部分代碼如下: set rst=CreateObject() sql=select * from tab_Leave where EmployeeId=amp。EmployeeIdamp。 and BeginDate=amp。BeginDateamp。 sql,n,1,3 if not then script alert(39。此員工當(dāng)天已請假,請重新輸入 39。)。 (1)。 /script else 29 tab_Leave,n,1,3 rst(EmployeeId)=EmployeeId rst(LeaveType)=LeaveType rst(LeaveDays)=LeaveDays rst(BeginDate)=BeginDate rst(EndDate)=EndDate end if set rst=nothing 遲到 、早退管理 :對員工的上下班進(jìn)行考核,如有遲到、早退的員工,可輸入并保存,以便今后查詢并做相應(yīng)處理 圖 部分 代碼如下: set rst=CreateObject() sql=select * from tab_Later where EmployeeId=amp。EmployeeIdamp。 and LaterDate=amp。LaterDateamp。 and LaterType=1 sql,n,1,3 if not then script alert(39。此員工當(dāng)天已有遲到記錄,請重新輸入 39。)。 (1)。 /script () end if sql=select * from tab_Later where EmployeeId=amp。EmployeeIdamp。 and LaterDate=amp。LaterDateamp。 30 and LaterType=2 sql,n,1,3 if not then script alert(39。此員工當(dāng)天已有早退記錄,請重新輸入 39。)。