1– Báo cáo Lương Tháng

Một phần của tài liệu Hệ Thống Chấm Công Sử Dụng Công Nghệ Thẻ sử dụng ngôn ngữ lập trình Visual Basic 6..0 (Trang 57 - 65)

4. 1– Danh sách các Form thiết kế trong chương trình

4.2.2 1– Báo cáo Lương Tháng

KẾT LUẬN

Mặc dù việc ứng dụng tin học trong quản lý ở nước ta vẫn còn rất mới mẻ, nhất là trong công tác quản lý chấm công với sự hỗ trợ của thiết bị thông minh cũng như phần mềm vẫn còn rất mới mẻ. Với việc tin học hoá trong công tác quản lý nhân sự ngày càng được ứng dụng nhiều, thì việc cần thiết phải tự động hoá chấm công là điều tất yếu. Với đề tài này em xây dựng trong phạm vi hẹp đó là hệ thống chấm công cho công ty cổ phần thương mại AZLAZ, đã phần nào đáp ứng được trong công tác quản lý chấm công cho công ty.

Các công việc trong hệ thống đã được trình bày tương đối cụ thể, từ khâu khảo sát nghiệp vụ và phân tích hệ thống đến thiết kế hệ thống đã đảm bảo được cơ bản về yêu cầu và phân tích hệ thống. Trước khi phân tích hệ thống thì hệ thống đã được tách nhỏ dễ hiểu, để làm từ phần nhỏ lại được tổng hợp thành một phần lớn và tất cả tạo thành một hệ thống tương đối hoàn chỉnh.

Mặc dù em đã cố gắng hết sức để hoàn thiện đề tài xong do thời gian có hạn và trình độ hiểu biết về thực tế chưa sâu vốn kinh nghiệm còn ít nên chương trình còn một số bất cập cần bổ sung góp ý. Rất mong toàn thể Thầy cô giáo cũng như các bạn trong lớp bổ sung và góp ý để chương trình của em ngày càng hoàn thiện hơn.

Em xin chân thành cảm ơn cô giáo Nguyễn Thanh Hương cùngtoàn thể các Thầy cô giáo trong khoa công nghệ thông tin trường ĐH Kinh tế quôc dân và tập thể nhân viên trong công ty cổ phần thương mại AZLAZ đã nhiệt tình giúp đỡ em trong thời gian thực tập vừa qua.

HƯỚNG PHÁT TRIỂN TRONG TƯƠNG LAI

Hiện tại, hệ thống quản lý thời gian bằng thẻ từ cũng đã phần nào đáp ứng được trong công tác quản lý chấm công cho công ty cổ phần thương mại AZLAZ. Đề tài này mới chỉ dừng lại ở một phần nhỏ trong toàn bộ dự án tin học hoá văn phòng của công ty.

Trong tương lai khi thị trường điện tử phát triển mạnh, việc thay thế đầu đọc thẻ từ bằng các chủng loại đầu đọc thông minh hơn là điều tất yếu. Nhất là khi thị trường thẻ ATM, thẻ Chíp, thẻ Thông minh phát triển, việc tích hợp các loại thẻ hiện đại chắc chắn sẽ nâng cao rất nhiều về độ chính xác cũng như quy mô nhân sự của công ty.

Phần mềm hiện tại mới chỉ dừng lại ở việc ứng dụng cơ sở dữ liệu Access, nhưng chắc chắn trong thời gian tới cơ sở dữ liệu sẽ được chuyển sang một cơ sở dữ liệu lớn hơn đó là cơ sở dữ liệu SQL Server. Cơ sở dữ liệu này cho phép chúng ta quản lý một quy mô nhân sự lớn hơn, cũng như giúp cho việc tăng tốc độ tìm kiếm thông tin nhân sự tốt hơn.

PHỤ LỤC

TÀI LIỆU THAM KHẢO

(1). PGS-TS Đặng Minh Ất chủ biên (2007), ‘Bài giảng môn Phân tích, thiết kế và cài đặt HTTT’, Đại học kinh tế quốc dân.

(2). Nguyễn Thị Ngọc Mai (2000), ‘Lập Trình Cơ Sở Dữ Liệu Với Visual Basic 6.0’, Nhà xuất bản giáo dục.

(3). GS-TS Bạch Hưng Khang (1991), ’Phân tích thiết kế và cài đặt hệ thống quản lý’, Viện tin học.

(4). By Neil FitzGerald, Ryan Marples, Naisan Geula, Bob Coates, James Edkins, Michael Voloshko, Joe Estes, Kathryn Hunt, Steve Lucas,

Roger Sanborn (2004), ‘SPECIAL EDITION USING Crystal Reports® 8’, Publisher: Que.

ĐOẠN CODE CHƯƠNG TRÌNH:

Sử Lý Giờ Vào Ra Khi Nhân Viên Quẹt Thẻ

Option Explicit Option Compare Text Dim strMaNV As String Dim strTieuDe As String Dim intSoLan As Integer Dim intTime As Integer Public intKT As Byte Dim intYN As Byte

Dim NhapNhay As Boolean

Dim rstSoLan As New ADODB.Recordset Dim rstGioVaoRa As New ADODB.Recordset Dim rstHienThi As New ADODB.Recordset

Dim rstThietlapDauDoc As New ADODB.Recordset Private Sub NhapGioVaoRa()

KetNoi

RS.Open "Select MaNV from HOSO", DB, 3, 3

RS.Find "MaNV='" & strMaNV & "'", 0, adSearchForward, 0 If Not RS.EOF Then

rstGioVaoRa.Open "Select * from GIOVAORA where Manv='" & strMaNV & "' And NgayLam=#" & Format(Date, "mm/dd/yyyy") & "#", DB, 3, 3

If (rstGioVaoRa.EOF) Then intKT = 0

rstSoLan.Open "select Count(MaNV) as SL from giovaora where Manv='" & strMaNV & "' And NgayLam=#" & Format(Date, "mm/dd/yyyy") & "#", DB, 3, 3

intSoLan = 0

If (Not rstSoLan.EOF) Then

rstHienThi.Open "Select hs.Manv,Hoten,TenPB From Hoso HS,PhongBan PB Where hs.Mapb=PB.Mapb And HS.MaNV='" & strMaNV & "'", DB, 3, 3

If (intSoLan = 0) Then

SQL = "INSERT INTO GIOVAORA(Manv,NgayLam,TGVao) VALUES('" & strMaNV & "',#" & Format(Date, "dd/mm/yyyy") & "#,#" & Format(Time(), "hh:nn") & "#)"

DB.Execute SQL

lblGioVaoRa.Caption = "Giê Vµo LÇn 1: " & Format(Time(), "Hh:nn") & "" Else

If (Not rstGioVaoRa.EOF) Then rstGioVaoRa.MoveLast

If (rstGioVaoRa.Fields("TGRa") = False) Then intKT = 1 Else intKT = 0 End If End If If (intSoLan = 1) Then If (intKT = 1) Then

If (DateDiff("s", Format(rstGioVaoRa!TGVao, "hh:nn"), Format(Time(), "Hh:Nn")) > 10) Then

SQL = "UPDATE GIOVAORA set TGRa=#" & Format(Time(), "hh:nn") & "# where Manv='" & strMaNV & "' And NgayLam=#" & Format(Date, "mm/dd/yyyy") & "#"

DB.Execute SQL

lblGioVaoRa.Caption = "Giê Ra LÇn 1: " & Format(Time(), "Hh:nn") & "" Else

FrmThongBao.lbThongBao = "B¹n míi quÑt thÎ" intYN = 0

End If Else

SQL = "INSERT INTO GIOVAORA(MaNV,NgayLam,TGVao) VALUES('" & strMaNV & "',#" & Format(Date, "dd/mm/yyyy") & "#,#" & Format(Time(), "hh:nn") & "#)"

End If End If

If (intSoLan = 2) Then If (intKT = 1) Then

If (DateDiff("s", Format(rstGioVaoRa!TGVao, "hh:nn"), Format(Time(), "Hh:Nn")) > 10) Then

SQL = "UPDATE GIOVAORA set TGRa=#" & Format(Time(), "hh:nn") & "# where Manv='" & strMaNV & "' And NgayLam=#" & Format(Date, "mm/dd/yyyy") & "#" DB.Execute SQL

lblGioVaoRa.Caption = "Giê Ra LÇn 2: " & Format(Time(), "Hh:nn") & "" Else

FrmThongBao.lbThongBao = "B¹n míi quÑt thÎ" intYN = 0

End If Else

SQL = "INSERT INTO GIOVAORA(MaNV,NgayLam,TGVao) VALUES('" & strMaNV & "',#" & Format(Date, "dd/mm/yyyy") & "#,#" & Format(Time(), "hh:nn") & "#)"

DB.Execute SQL

lblGioVaoRa.Caption = "Giê Vµo LÇn 3: " & Format(Time(), "Hh:nn") & "" End If

End If

If (intSoLan = 3) Then If (intKT = 1) Then

If (DateDiff("s", Format(rstGioVaoRa!TGVao, "hh:nn"), Format(Time(), "Hh:Nn")) > 10) Then

SQL = "UPDATE GIOVAORA set TGRa=#" & Format(Time(), "hh:nn") & "# where Manv='" & strMaNV & "' And NgayLam=#" & Format(Date, "mm/dd/yyyy") & "#"

SQL = "INSERT INTO GIOVAORA(MaNV,NgayLam,TGVao) VALUES('" & strMaNV & "',#" & Format(Date, "dd/mm/yyyy") & "#,#" & Format(Time(), "hh:nn") & "#)"

DB.Execute SQL

lblGioVaoRa.Caption = "Giê Vµo LÇn 4: " & Format(Time(), "Hh:nn") & "" End If

End If

If (intSoLan = 4) Then If (intKT = 1) Then

SQL = "UPDATE GIOVAORA set TGRa=#" & Format(Time(), "hh:nn") & "# where Manv='" & strMaNV & "' And NgayLam=#" & Format(Date, "mm/dd/yyyy") & "#" DB.Execute SQL

lblGioVaoRa.Caption = "Giê Ra LÇn 4:" & Format(Time(), "Hh:nn") & "" Else FrmThongBao.lbThongBao = "Kh«ng Thµnh C«ng" intYN = 0 End If End If End If If (intYN = 1) Then LoadAnh frmGioVaoRa txtHoTen.Text = rstHienThi!Hoten txtPhongBan.Text = rstHienThi!TenPB

FrmThongBao.lbThongBao.Caption = "ThÎ " & strMaNV & " Thµnh C«ng" Else frmGioVaoRa.imgPhoto.Picture = LoadPicture() lblGioVaoRa.Caption = "" txtMaNV = "" txtHoTen = "" txtPhongBan = "" End If rstGioVaoRa.Close rstHienThi.Close Else

frmGioVaoRa.txtMaNV.Text = "" frmGioVaoRa.txtHoTen.Text = "" frmGioVaoRa.txtPhongBan.Text = "" frmGioVaoRa.txtMaNV.SetFocus End If

'Dat form thong bao dung vi tri

FrmThongBao.Move Screen.Width / 2 - 4300, 140, 8600, 1100 FrmThongBao.Show vbModal

RS.Close DongKetNoi End Sub

Private Sub Form_Load() intTime = 0

'Gan duong dan khi da thay doi

DuongDan = CStr(clsReg.QueryValue(clsReg.HKEY_LOCAL_MACHINE, "Software\Xuan_Nam\Database", "Path"))

' Neu dung dan chua dang ky thi gan duong dan mac dinh

If DuongDan = "" Then DuongDan = App.Path & "\Database\AZLAZ.MDB" KetNoi

rstThietlapDauDoc.Open "Select * From ThietLapCong", DB, 3, 3 On Error GoTo Port_Err

With rstThietlapDauDoc

If Not nlReader.PortOpen Then nlReader.PortOpen = True .MoveLast

If .Fields("ComPort").Value = "" Then nlReader.CommPort = .Fields("ComPort").Value

nlReader.Track = .Fields("Track").Value End If

Private Sub Form_Unload(Cancel As Integer) Unload Me

End Sub

Private Sub nlReader_OnComm() strMaNV = nlReader.Text NhapGioVaoRa

strMaNV = "" End Sub

Private Sub tmrChay_Timer() Dim i As Integer Dim j As Integer j = 0 intTime = intTime + 1 If (intTime <= 32) Then For i = 1 To intTime a(i).Visible = True

NhapNhay = Not (NhapNhay) j = j + 1 Next If (j = 32) Then For i = 1 To 32 a(i).Visible = False Next End If Else

intTime = intTime Mod 32 End If

End Sub

Private Sub txtMaNV_KeyPress(KeyAscii As Integer) If KeyAscii = vbKeyReturn Then

strMaNV = txtMaNV.Text NhapGioVaoRa

strMaNV = "" End If

Một phần của tài liệu Hệ Thống Chấm Công Sử Dụng Công Nghệ Thẻ sử dụng ngôn ngữ lập trình Visual Basic 6..0 (Trang 57 - 65)

Tải bản đầy đủ (DOC)

(65 trang)
w