LỜI MỞ ĐẦU
Ngày nay, nhân lực luôn là mối quan tâm hàng đầu của mỗi quốc gia nói chung và các doanh nghiệp nói riêng. Các doanh nghiệp luôn có những chính sách thu hút nhân tài để người lao động gắn bó lâu dài với công ty, và luôn tạo điều kiện cho nhân viên phát huy tính sáng tạo, không ngừng học hỏi những tiến bộ khoa học công nghệ mới. Nhất là trong thời đại công nghệ thông tin ngày càng có nhiều đóng góp cho sự phát triển của xã hội. Đặc biệt là trong lĩnh vực quản lý điều hành, ứng dụng tốt công nghệ thông tin luôn trợ giúp cho lãnh đạo ra các quyết định điều hành đúng đắn và kịp thời, hơn thế nữa còn giúp cho công tác quản lý giảm tối đa những sai sót, tiết kiệm thời gian, kinh phí.
Các công ty dù đang hoạt động trong lĩnh vực nào cũng nhận thấy rằng ứng dụng công nghệ thông tin vào quá trình sản xuất, kinh doanh, điều hành doanh nghiệp giúp tăng năng suất lao động, tăng hiệu quả trong quản lý. Vì vậy, các doanh nghiệp ở Việt Nam hiện nay dành một phần ngân sách để đầu tư vào xây dựng, và phát triển hệ thống thông tin cho phù hợp tình hình sản xuất kinh doanh để nâng cao khả năng cạnh tranh trên thị trường. Công ty Cổ phần xây dựng Vinaconex 1 là một công ty hàng đầu trong lĩnh vực xây dựng. Nhận thức rõ tầm quan trọng của việc ứng dụng công nghệ thông tin vào công tác quản lý cũng như vai trò to lớn của đội ngũ cán bộ nhân viên công ty có kế hoạch xây dựng hệ thống thông tin quản lý nhân sự. Qua thời gian thực tập tại công ty, em đã học hỏi và tìm hiểu cách thức quản lý nhân sự tại công ty và quyết định chọn đề tài “Xây dựng hệ thống thông tin quản lý nhân sự tại công ty cổ phần xây dựng Vinaconex 1” với hy vọng có thể đóng góp một phần vào công tác quản lý nhân sự tại công ty. Đề tài này được trình bày dưới 3 chương:
Chương 1 : Tổng quan về công ty cổ phần xây dựng Vinaconex 1 và bài toán quản lý nhân sự.
Chương 2: Phương pháp luận xây dựng hệ thống thông tin quản lý nhân sự
Chương 3: Xây dựng hệ thống thông tin quản lý nhân sự
Trong thời gian thực tập tại công ty, em xin chân thành cảm ơn cán bộ phòng tổ chức hành chính đã cung cấp thông tin để em có thể hoàn thành đề tài. Đặc biệt, em xin gửi lời cảm ơn đến cô giáo TS.Trần Thị Song Minh đã hướng dẫn và chỉ bảo trong quá trình em tìm hiểu và thực hiện đề tài. Tuy nhiên, do hạn chế về thời gian, cũng như kinh nghiệm và kiến thức thực tế, đề tài sẽ không tránh được những sai sót, em mong cô và các thầy trong khoa Tin học kinh tế- Trường Đại học Kinh tế quốc dân đóng góp ý kiến và tiếp tục chỉ bảo.
MỤC LỤC
DANH MỤC HÌNH VẼ, BẢNG BIỂU
LỜI MỞ ĐẦU 1
CHƯƠNG 1 3
TỔNG QUAN VỀ CÔNG TY CỔ PHẦN XÂY DỰNG VINACONEX 1 VÀ BÀI TOÁN QUẢN LÝ NHÂN SỰ 3
1.1. Tổng quan về công ty cổ phần xây dựng Vinaconex1 3
1.1.1. Lịch sử hình thành và phát triển của công ty 3
1.1.2. Cơ cấu tổ chức của công ty 5
1.1.3. Các lĩnh vực hoạt động và các sản phẩm, dịch vụ của công ty 5
1.1.4. Phương hướng phát triển của công ty 7
1.2 Thực trạng ứng dụng công nghệ thông tin tại công ty cổ phần xây dựng Vinaconex1 8
1.2.1. Các ứng dụng công nghệ thông tin tại công ty cổ phần xây dựng Vinaconex1 8
1.2.2. Kế hoạch ứng dụng công nghệ thông tin tại công ty cổ phần xây dựng Vinaconex1 9
1.3 Giải pháp tin học hoá cho bài toán quản lý nhân sự 10
1.3.1. Lý do chọn đề tài 10
1.3.2. Nội dung và mục đích của đề tài 10
1.3.3. Hạ tầng công nghệ và các yếu tố liên quan 11
CHƯƠNG 2 12
PHƯƠNG PHÁP LUẬN XÂY DỰNG HỆ THỐNG THÔNG TIN QUẢN LÝ NHÂN SỰ 12
2.1. Tổng quan về hệ thống thông tin 12
2.1.1. Khái quát về hệ thống thông tin 12
2.1.2. Phân loại hệ thống thông tin 13
2.1.3. Các mô hình biểu diễn hệ thống thông tin 15
2.1.4. Tổng quan về hệ thống thông tin quản lý nhân sự 16
2.2. Phương pháp phát triển hệ thống thông tin 17
2.2.1. Phương pháp phát triển nguyên mẫu 17
2.2.2. Phương pháp vòng đời phát triển hệ thống SDLC (System Development Life Cycle) 18
2.2.3. Phương pháp phát triển nhanh hệ thống thông tin 19
2.3. Các giai đoạn của phát triển hệ thống thông tin 19
2.3.1. Giai đoạn đánh giá yêu cầu 19
2.3.2. Giai đoạn phân tích chi tiết 20
2.3.3. Giai đoạn thiết kế 24
2.3.4. Giai đoạn cài đặt và khai thác 28
2.4. Cơ sở phương pháp luận về hệ quản trị cơ sở dữ liệu và ngôn ngữ lập trình trong phân tích hệ thống thông tin 29
2.4.1. Giới thiệu về ngôn ngữ lập trình VB 6.0 29
2.4.2. Giới thiệu về hệ quản trị cơ sở dữ liệu Microsoft Access 2003 29
CHƯƠNG 3 31
XÂY DỰNG HỆ THỐNG THÔNG TIN QUẢN LÝ NHÂN SỰ 31
3.1. Phân tích yêu cầu hệ thống thông tin quản lý nhân sự tại công ty Cổ phần xây dựng Vinaconex 1 31
3.1.1. Các công cụ để khảo sát hệ thống thông tin quản lý nhân sự tại công ty cổ phần xây dựng Vinaconex1 31
3.1.2. Khảo sát hệ thống thông tin quản lý nhân sự 33
3.2. Phân tích chi tiết hệ thống thông tin quản lý nhân sự tại công ty cổ phần xây dựng Vinaconex1 36
3.2.1. Mô hình hoá hệ thống thông tin dưới góc độ luồng thông tin 36
3.2.2. Mô hình hoá hệ thống thông tin dưới góc độ chức năng 39
3.2.3. Mô hình hoá hệ thống thông tin dưới góc độ luồng dữ liệu 40
3.3. Thiết kế hệ thống thông tin quản lý nhân sự tại công ty cổ phần xây dựng Vinaconex1 45
3.3.1. Thiết kế cơ sở dữ liệu 45
3.3.2. Thiết kế logic xử lý 65
3.3.3. Thiết kế giao diện 70
3.4. Triển khai hệ thống thông tin quản lý nhân sự tại công ty cổ phần xây dựng Vinaconex1 100
3.4.1. Triển khai hệ thống 100
3.4.2. Đóng gói và đào tạo 101
KẾT LUẬN 103
DANH MỤC TÀI LIỆU THAM KHẢO 105
PHỤ LỤC 106
MỤC LỤC 172
161 trang |
Chia sẻ: lvcdongnoi | Lượt xem: 2380 | Lượt tải: 1
Bạn đang xem trước 20 trang tài liệu Xây dựng hệ thống thông tin quản lý nhân sự tại công ty cổ phần xây dựng Vinaconex 1, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
dd = False
an
trangThai
resetForm
End Sub
Private Sub CmdLuu_Click()
If add = True Then
If checkForm = True Then
adoNhanVien.Recordset.AddNew
adoNhanVien.Recordset(0) = txtMaNV.Text
adoNhanVien.Recordset(1) = txtTenDem.Text
adoNhanVien.Recordset(2) = txtTen.Text
adoNhanVien.Recordset(3) = DTPicker1.Value
adoNhanVien.Recordset(4) = txtSoDT.Text
adoNhanVien.Recordset(5) = OptTrue.Value
adoNhanVien.Recordset(6) = optSex1.Value
adoNhanVien.Recordset(7) = txtNguyenQuan.Text
adoNhanVien.Recordset(8) = txtHoKhau.Text
adoNhanVien.Recordset(9) = Check1.Value
adoNhanVien.Recordset(10) = txtCMTND.Text
adoNhanVien.Recordset(11) = DTPicker2.Value
adoNhanVien.Recordset(12) = txtTaiKhoan.Text
adoNhanVien.Recordset.Update
add = False
an
trangThai
End If
End If
If edit = True Then
If checkForm = True Then
adoNhanVien.Recordset(0) = txtMaNV.Text
adoNhanVien.Recordset(1) = txtTenDem.Text
adoNhanVien.Recordset(2) = txtTen.Text
adoNhanVien.Recordset(3) = DTPicker1.Value
adoNhanVien.Recordset(4) = txtSoDT.Text
adoNhanVien.Recordset(5) = OptTrue.Value
adoNhanVien.Recordset(6) = optSex1.Value
adoNhanVien.Recordset(7) = txtNguyenQuan.Text
adoNhanVien.Recordset(8) = txtHoKhau.Text
adoNhanVien.Recordset(9) = Check1.Value
adoNhanVien.Recordset(10) = txtCMTND.Text
adoNhanVien.Recordset(11) = DTPicker2.Value
adoNhanVien.Recordset(12) = txtTaiKhoan.Text
adoNhanVien.Recordset.Update
edit = False
an
trangThai
End If
End If
End Sub
Private Function checkForm() As Boolean
If txtMaNV.Text = "" Then
MsgBox "B¹n cha nhËp m· nh©n viªn !"
txtMaNV.SetFocus
checkForm = False
ElseIf txtTenDem.Text = "" Then
MsgBox "B¹n cha nhËp tªn ®Öm cho nh©n viªn !"
txtTenDem.SetFocus
checkForm = False
ElseIf txtTen.Text = "" Then
MsgBox "B¹n cha nhËp tªn cho nh©n viªn !"
txtTen.SetFocus
checkForm = False
ElseIf txtCMTND.Text = "" Then
MsgBox "B¹n cha nhËp sè chøng minh th nh©n d©n cho nh©n viªn !"
txtCMTND.SetFocus
checkForm = False
ElseIf txtHoKhau.Text = "" Then
MsgBox "B¹n cha nhËp hé khÈu cho nh©n viªn !"
txtHoKhau.SetFocus
checkForm = False
ElseIf txtNguyenQuan.Text = "" Then
MsgBox "B¹n cha nhËp nguyªn qu¸n cho nh©n viªn !"
txtNguyenQuan.SetFocus
checkForm = False
ElseIf txtSoDT.Text = "" Then
MsgBox "B¹n cha nhËp Sè ®iÖn tho¹i cho nh©n viªn !"
txtSoDT.SetFocus
checkForm = False
ElseIf txtTaiKhoan.Text = "" Then
MsgBox "B¹n cha nhËp Sè tµi kho¶n cho nh©n viªn !"
txtTaiKhoan.SetFocus
checkForm = False
ElseIf IsNumeric(txtSoDT.Text) = False Then
ElseIf IsNumeric(txtTaiKhoan.Text) = False Then
MsgBox "B¹n ®· nhËp sai kiÓu d÷ liÖu, b¹n ph¶i nhËp sè cho trêng d÷ liÖu sè tµi kho¶n !"
txtTaiKhoan.SetFocus
checkForm = False
ElseIf IsNumeric(txtCMTND.Text) = False Then
MsgBox "B¹n ®· nhËp sai kiÓu d÷ liÖu, b¹n ph¶i nhËp sè cho trêng d÷ liÖu sè chøng minh th nh©n d©n !"
txtCMTND.SetFocus
checkForm = False
Else
checkForm = True
End If
End Function
Private Sub cmdSua_Click()
If adoNhanVien.Recordset.EOF = False And adoNhanVien.Recordset.BOF = False Then
edit = True
hien
txtMaNV.Enabled = False
txtTenDem.SetFocus
trangThai
Else
MsgBox "B¹n cha chän b¶n ghi ®Ó söa !"
End If
End Sub
Private Sub resetForm()
txtMaNV.Text = ""
txtTenDem.Text = ""
txtTen.Text = ""
txtCMTND.Text = ""
txtHoKhau.Text = ""
txtNguyenQuan.Text = ""
txtSoDT.Text = ""
txtTaiKhoan.Text = ""
Check1.Value = 0
optSex1.Value = True
OptTrue.Value = True
'DTPicker2.Enabled = True
If txtMaNV.Enabled = True Then
txtMaNV.SetFocus
End If
End Sub
Private Sub setValue()
If adoNhanVien.Recordset.EOF = False And adoNhanVien.Recordset.BOF = False Then
txtMaNV.Text = adoNhanVien.Recordset(0)
txtTenDem.Text = adoNhanVien.Recordset(1)
txtTen.Text = adoNhanVien.Recordset(2)
DTPicker1.Value = adoNhanVien.Recordset(3)
txtSoDT.Text = adoNhanVien.Recordset(4)
OptTrue.Value = adoNhanVien.Recordset(5)
optSex1.Value = adoNhanVien.Recordset(6)
txtNguyenQuan.Text = adoNhanVien.Recordset(7)
txtHoKhau.Text = adoNhanVien.Recordset(8)
'Check1.Value = adoNhanVien.Recordset(8)
If adoNhanVien.Recordset(9) = 0 Then
Check1.Value = 0
Else: Check1.Value = 1
End If
txtCMTND.Text = adoNhanVien.Recordset(10)
DTPicker2.Value = adoNhanVien.Recordset(11)
txtTaiKhoan.Text = adoNhanVien.Recordset(12)
Else
resetForm
End If
End Sub
Private Sub dgrHSNhanVien_RowColChange(LastRow As Variant, ByVal LastCol As Integer)
If edit = False And add = False Then
setValue
End If
End Sub
Private Sub Form_Load()
adoNhanVien.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\DataBase\NhanSu.mdb;Persist Security Info=False"
adoNhanVien.RecordSource="SELECTHoSoNV.MaNV,HoSoNV.HoDem,HoSoNV.Ten, HoSoNV.NgaySinh,HoSoNV.SoDT,HoSoNV.CoDong,HoSoNV.GioiTinh,HoSoNV.NguyenQuan,HoSoNV.NoiDangKyHKTT,HoSoNV.DangVien,HoSoNV.SoCMND,HoSoNV.NgayCap,HoSoNV.SoTK,iif(HoSoNV.GioiTinh=true,'Nam','Nu') as GioiTinhText,iif(HoSoNV.CoDong=true,'Thanh vien co dong','Thanh vien ben ngoai') as CoDongText,iif(HoSoNV.DangVien,'La dang vien','Khong phai la dang vien') as DangVienText FROM HoSoNV ORDER BY HoSoNV.Ten;"
Set dgrHSNhanVien.DataSource = adoNhanVien
optSex1.Value = True
OptTrue.Value = True
edit = False
add = False
an
End Sub
Private Sub trangThai()
If add = False Then
If edit = False Then
cmdMoi.Enabled = True
cmdSua.Enabled = True
cmdXoa.Enabled = True
cmdLuu.Enabled = False
cmdHuy.Enabled = False
Else
cmdMoi.Enabled = False
cmdSua.Enabled = False
cmdXoa.Enabled = False
cmdLuu.Enabled = True
cmdHuy.Enabled = True
End If
Else
If edit = False Then
cmdMoi.Enabled = False
cmdSua.Enabled = False
cmdXoa.Enabled = False
cmdLuu.Enabled = True
cmdHuy.Enabled = True
Else
add = False
edit = False
cmdMoi.Enabled = True
cmdSua.Enabled = True
cmdXoa.Enabled = True
cmdLuu.Enabled = False
cmdHuy.Enabled = False
End If
End If
End Sub
Code quản lý hợp đồng nhân viên
Private edit As Boolean
Private add As Boolean
Function chonMaHD(ByVal LoaiHD As String) As String
Dim ma As String
If rs.State = 1 Then
rs.Close
End If
rs.Open "Select * from HopDong where LoaiHD ='" & LoaiHD & "'order by MaHD"
If rs.EOF Then
chonMaHD = LoaiHD & "001"
rs.Close
Exit Function
End If
rs.MoveLast
ma = rs.Fields("MaHD")
rs.Close
ma = Right(ma, 3)
ma = CDbl(ma)
ma = ma + 1
ma = CStr(ma)
Select Case Len(ma)
Case 1:
ma = LoaiHD & "00" & ma
Case 2:
ma = LoaiHD & "0" & ma
Case 3:
ma = LoaiHD & ma
End Select
chonMaHD = ma
End Function
Function TimLoaiHD(ByVal Chuoi As String) As String
Dim a As Integer
a = InStr(Chuoi, "-")
TimLoaiHD = Left(Chuoi, a - 1)
End Function
Function TimNhanVien(ByVal Ten As String) As String
Dim a As Integer
a = InStr(Ten, "-")
TimNhanVien = Left(Ten, a - 1)
End Function
Private Sub Combo1_LostFocus()
If Trim(Combo1.Text) "" Then
setValue1 (TimNhanVien(Combo1.Text))
End If
End Sub
Private Sub combo2_LostFocus()
If (Trim(combo2.Text) "" And Trim(Combo1.Text) "") Then
txtMaNV = (TimNhanVien(Combo1.Text))
txtMaHD = chonMaHD(TimLoaiHD(combo2))
End If
End Sub
Private Sub cmdMoi_Click()
Frame1.Enabled = True
Frame2.Enabled = True
add = True
'hien
an
resetForm
trangThai
Combo1.SetFocus
End Sub
Private Sub an()
DTPicker1.Enabled = False
txtNguyenQuan.Enabled = False
txtHoKhau.Enabled = False
txtMaHD.Enabled = False
txtMaNV.Enabled = False
End Sub
Private Sub hien()
combo2.Enabled = True
Combo1.Enabled = True
txtGhiChu.Enabled = True
End Sub
Private Sub CmdThoat_Click()
Unload Me
End Sub
Private Sub cmdHuy_Click()
edit = False
add = False
Frame1.Enabled = False
Frame2.Enabled = False 'an
trangThai
resetForm
End Sub
Private Sub CmdLuu_Click()
Dim sql As String
If add = True Then
If checkForm = True Then
If rs.State = 1 Then
rs.Close
End If
rs.Open "SELECT CTHopDong.MaNV, CTHopDong.MaHD, HopDong.LoaiHD, CTHopDong.NgayKy, CTHopDong.NgayKT FROM HopDong INNER JOIN CTHopDong ON HopDong.MaHD = CTHopDong.MaHD Where (CTHopDong.MaNV) ='" & TimNhanVien(Combo1) & "' ORDER BY CTHopDong.NgayKy DESC;"
If Not rs.EOF Then
rs.MoveFirst
If rs.Fields("LoaiHD") = "A" Then
MsgBox "Nhan vien bien che, khong can lap hop dong moi", , "Thong bao"
add = False
Frame1.Enabled = False
Frame2.Enabled = False
trangThai
resetForm
Exit Sub
End If
If (Trim(rs.Fields("NgayKT")) <= Now Or Trim(rs.Fields("NgayKT")) = "1/1/1601") Then
MsgBox " Nh©n viªn cha chÊm døt hîp ®ång tríc, B¹n kh«ng thÓ lËp hîp ®ång ", , "thong bao"
add = False
Frame1.Enabled = False
Frame2.Enabled = False
trangThai
resetForm
Exit Sub
Else
cn.Execute "Insert into HopDong(MaHD,LoaiHD,GhiChu) values('" & txtMaHD.Text & "','" & TimLoaiHD(combo2) & "','" & txtGhiChu.Text & "')"
cn.Execute "Insert into CTHopDong (MaNV,MaHD,NgayKy,NgayKT) values('" & txtMaNV.Text & "','" & txtMaHD.Text & "','" & FormatDateTime(DTPStart, vbShortDate) & "','" & FormatDateTime(DTPEnd, vbShortDate) & "')"
MsgBox "B¹n ®· thªm vµo danh môc thµnh c«ng!"
AdoCTHopDong.Refresh
add = False
Frame1.Enabled = False
Frame2.Enabled = False
trangThai
resetForm
Exit Sub
End If
End If
cn.Execute "Insert into HopDong(MaHD,LoaiHD,GhiChu) values('" & txtMaHD.Text & "','" & TimLoaiHD(combo2) & "','" & txtGhiChu.Text & "')"
cn.Execute "Insert into CTHopDong (MaNV,MaHD,NgayKy,NgayKT) values('" & txtMaNV.Text & "','" & txtMaHD.Text & "','" & FormatDateTime(DTPStart, vbShortDate) & "','" & FormatDateTime(DTPEnd, vbShortDate) & "')"
MsgBox "B¹n ®· thªm vµo danh môc thµnh c«ng!"
AdoCTHopDong.Refresh
add = False
Frame1.Enabled = False
Frame2.Enabled = False
trangThai
resetForm
End If
End If
If edit = True Then
If checkForm = True Then
If rs.State = 1 Then
rs.Close
End If
rs.Open "SELECT CTHopDong.MaNV, CTHopDong.MaHD, HopDong.LoaiHD, CTHopDong.NgayKy, CTHopDong.NgayKT FROM HopDong INNER JOIN CTHopDong ON HopDong.MaHD = CTHopDong.MaHD Where (CTHopDong.MaNV) ='" & TimNhanVien(Combo1) & "' ORDER BY CTHopDong.NgayKy;"
If Not rs.EOF Then
rs.MoveFirst
If rs.Fields("LoaiHD") = "A" Then
MsgBox "Nh©n viªn nµy thuéc biªn chÕ, kh«ng ®îc söa hîp ®ång ", , "Th«ng b¸o"
edit = False
Frame1.Enabled = False
Frame2.Enabled = False
trangThai
resetForm
Exit Sub
End If
Else
cn.Execute "update HopDong set HopDong.MaHD='" & txtMaHD.Text & "', HopDong.LoaiHD='" & TimLoaiHD(combo2) & "', HopDong.GhiChu='" & txtGhiChu.Text & "' where MaHD='" & rs.Fields("MaHD") & "'"
cn.Execute "UPDATE CTHopDong SET MaHD= '" & txtMaHD.Text & "', NgayKy = '" & FormatDateTime(DTPStart, vbShortDate) & "', NgayKT = '" & FormatDateTime(DTPEnd, vbShortDate) & "' where MaHD='" & rs.Fields("MaHD") & "'"
MsgBox "B¹n ®· söa thµnh c«ng!"
AdoCTHopDong.Refresh
edit = False
Frame1.Enabled = False
Frame2.Enabled = False
trangThai
resetForm
Exit Sub
End If
cn.Execute "update HopDong set HopDong.MaHD='" & txtMaHD.Text & "', HopDong.LoaiHD='" & TimLoaiHD(combo2) & "', HopDong.GhiChu='" & txtGhiChu.Text & "' where MaHD='" & rs.Fields("MaHD") & "'"
cn.Execute "UPDATE CTHopDong SET MaHD= '" & txtMaHD.Text & "', NgayKy = '" & FormatDateTime(DTPStart, vbShortDate) & "', NgayKT = '" & FormatDateTime(DTPEnd, vbShortDate) & "' where MaHD='" & rs.Fields("MaHD") & "'"
MsgBox "B¹n ®· söa thµnh c«ng!"
AdoCTHopDong.Refresh
edit = False
Frame1.Enabled = False
Frame2.Enabled = False
trangThai
resetForm
End If
End If
End Sub
Private Function checkForm() As Boolean
If Combo1.Text = "" Then
MsgBox "B¹n cha nhËp nhan vien !"
Combo1.SetFocus
checkForm = False
Else
checkForm = True
End If
End Function
Private Sub cmdSua_Click()
If AdoCTHopDong.Recordset.EOF = False And AdoCTHopDong.Recordset.BOF = False Then
edit = True
Frame1.Enabled = False
Frame2.Enabled = True
trangThai
combo2.SetFocus
Else
MsgBox "B¹n cha chän b¶n ghi ®Ó söa !"
End If
End Sub
Private Sub setValue()
If AdoCTHopDong.Recordset.EOF = False And AdoCTHopDong.Recordset.BOF = False Then
If rs.State = 1 Then
rs.Close
End If
rs.Open " SELECT * From HoSoNV WHERE maNV='" & AdoCTHopDong.Recordset.Fields("MaNV") & "'"
If Not rs.EOF Then
rs.MoveFirst
Combo1.Text = rs.Fields("MaNV") & "-" & rs.Fields("TenNV")
txtMaNV.Text = rs.Fields("MaNV")
txtNguyenQuan.Text = rs.Fields("NguyenQuan")
txtHoKhau.Text = rs.Fields("NoiDangKyHKTT")
DTPicker1.Value = rs.Fields("NgaySinh")
End If
If rs.State = 1 Then
rs.Close
End If
rs.Open " SELECT HopDong.MaHD, HopDong.LoaiHD, HopDong.GhiChu From HopDong Where HopDong.MaHD='" & AdoCTHopDong.Recordset.Fields("MaHD") & "'"
If Not rs.EOF Then
rs.MoveFirst
combo2.Text = rs.Fields("LoaiHD") & "-" & rs.Fields("GhiChu")
txtMaHD.Text = rs.Fields("MaHD")
txtGhiChu.Text = rs.Fields("GhiChu")
End If
If rs.State = 1 Then
rs.Close
End If
If Trim(AdoCTHopDong.Recordset.Fields("NgayKy")) = "" Then
ChkStart.Value = 0
DTPStart.Value = FormatDateTime("1/1/1601", vbShortDate)
Else
ChkStart.Value = 1
DTPStart.Value = AdoCTHopDong.Recordset.Fields("NgayKy")
End If
If Trim(AdoCTHopDong.Recordset.Fields("NgayKT")) = "" Then
ChkStart.Value = 0
DTPEnd.Value = FormatDateTime("1/1/1601", vbShortDate)
Else
ChkStart.Value = 1
DTPEnd.Value = AdoCTHopDong.Recordset.Fields("NgayKT")
End If
Else
resetForm
End If
End Sub
Private Sub dgrCTHopDong_RowColChange(LastRow As Variant, ByVal LastCol As Integer)
If edit = False And add = False Then
setValue
End If
End Sub
Private Sub Form_Load()
AdoCTHopDong.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\DataBase\NhanSu.mdb;Persist Security Info=False"
AdoCTHopDong.RecordSource = "select * from CTHopDong"
Set DgrCTHopDong.DataSource = AdoCTHopDong
Frame1.Enabled = False
Frame2.Enabled = False
resetForm
edit = False
add = False
Call NapLHD
Call napTen
End Sub
Sub NapLHD()
If rs.State = 1 Then
rs.Close
End If
rs.Open "SELECT LoaiHopDong.LoaiHD, LoaiHopDong.TenLoaiHD FROM LoaiHopDong order by LoaiHopDong.LoaiHD;"
combo2.Clear
combo2.AddItem ""
If Not rs.EOF Then
rs.MoveFirst
Do While Not rs.EOF
combo2.AddItem rs.Fields("LoaiHD") & "-" & rs.Fields("TenLoaiHD")
rs.MoveNext
Loop
End If
combo2.Refresh
End Sub
Sub napTen()
If rs.State = 1 Then
rs.Close
End If
rs.Open "SELECT * From HoSoNV ORDER BY HoSoNV.MaNV;"
Combo1.Clear
Combo1.AddItem ""
If Not rs.EOF Then
rs.MoveFirst
Do While Not rs.EOF
Combo1.AddItem rs.Fields("MaNV") & "-" & rs.Fields("TenNV")
rs.MoveNext
Loop
End If
If rs.State = 1 Then
rs.Close
End If
Combo1.Refresh
End Sub
Private Sub setValue1(txt As String)
If rs.State = 1 Then
rs.Close
End If
rs.Open "SELECT * From HoSoNV WHERE MaNV= '" & txt & "'", cn, adOpenStatic, adLockOptimistic
If rs.RecordCount > 0 Then
rs.MoveFirst
DTPicker1.Value = rs.Fields("NgaySinh")
txtNguyenQuan.Text = rs.Fields("NguyenQuan")
txtHoKhau.Text = rs.Fields("NoiDangKyHKTT")
Else
DTPicker1.Value = Now
txtNguyenQuan.Text = ""
txtHoKhau.Text = ""
End If
If rs.State = 1 Then
rs.Close
End If
End Sub
Private Sub cmdXoa_Click()
Dim TraLoi As Integer
If txtMaHD.Text = "" Then
MsgBox " Ban cha chän hîp ®ång cÇn xo¸", , "Th«ng b¸o"
Exit Sub
End If
TraLoi = MsgBox("B¹n cã muèn xo¸ hîp ®ång nµy kh«ng?", vbYesNo + vbQuestion, "Xo¸ hîp ®ång")
If TraLoi = vbNo Then
Exit Sub
End If
' KiÓm tra
If rs.State = 1 Then
rs.Close
End If
rs.Open " SELECT Count(*) From CTHopDong WHERE (CTHopDong.MaHD)='" & txtMaHD & "'"
rs.MoveFirst
If rs.Fields(0) 0 Then
MsgBox " hîp ®ång nµy ®· bÞ rµng buéc, b¹n kh«ng thÓ xo¸!", vbOKOnly + vbInformation, "Th«ng b¸o"
Exit Sub
End If
If rs.State = 1 Then
rs.Close
End If
Dim sql As String
sql = " delete * from HopDong where MaHD='" & txtMaHD & "'"
cn.Execute sql
MsgBox "§· xo¸", , " th«ng b¸o "
AdoHD.Refresh
End Sub
Private Sub resetForm()
txtMaNV.Text = ""
txtMaHD.Text = ""
txtNguyenQuan.Text = ""
txtHoKhau.Text = ""
txtGhiChu.Text = ""
Combo1.Text = Combo1.List(0)
combo2.Text = Combo1.List(0)
ChkStart.Value = 0
Call chkStart_click
ChkEnd.Value = 0
Call chkEnd_click
If Combo1.Enabled = True Then
Combo1.SetFocus
End If
End Sub
Private Sub chkStart_click()
If ChkStart.Value = 1 Then
DTPStart.Value = FormatDateTime(Now, vbShortDate)
Else
DTPStart.Value = FormatDateTime("1/1/1601", vbShortDate)
End If
End Sub
Private Sub chkEnd_click()
If ChkEnd.Value = 1 Then
DTPEnd.Value = FormatDateTime(Now, vbShortDate)
Else
DTPEnd.Value = FormatDateTime("1/1/1601", vbShortDate)
End If
End Sub
Private Sub trangThai()
If add = False Then
If edit = False Then
cmdMoi.Enabled = True
cmdSua.Enabled = True
cmdXoa.Enabled = True
cmdLuu.Enabled = False
cmdHuy.Enabled = False
Else
cmdMoi.Enabled = False
cmdSua.Enabled = False
cmdXoa.Enabled = False
cmdLuu.Enabled = True
cmdHuy.Enabled = True
End If
Else
If edit = False Then
cmdMoi.Enabled = False
cmdSua.Enabled = False
cmdXoa.Enabled = False
cmdLuu.Enabled = True
cmdHuy.Enabled = True
Else
add = False
edit = False
cmdMoi.Enabled = True
cmdSua.Enabled = True
cmdXoa.Enabled = True
cmdLuu.Enabled = False
cmdHuy.Enabled = False
End If
End If
End Sub
Code form Quản lý điều động nhân viên
Private edit As Boolean
Private add As Boolean
Function chonMaCT() As String
Dim ma As String
If rs.State = 1 Then
rs.Close
End If
rs.Open "Select * from DieuDong order by MaCongTac"
If rs.EOF Then
chonMaCT = "001"
rs.Close
Exit Function
End If
rs.MoveLast
ma = rs.Fields("MaCongTac")
rs.Close
ma = Right(ma, 3)
ma = CDbl(ma)
ma = ma + 1
ma = CStr(ma)
Select Case Len(ma)
Case 1:
ma = "00" & ma
Case 2:
ma = "0" & ma
Case 3:
ma = ma
End Select
chonMaCT = ma
End Function
Function TimChucVu(ByVal Chuoi As String) As String
Dim a As Integer
a = InStr(Chuoi, "-")
TimChucVu = Left(Chuoi, a - 1)
End Function
Function TimNhanVien(ByVal Ten As String) As String
Dim a As Integer
a = InStr(Ten, "-")
TimNhanVien = Left(Ten, a - 1)
End Function
Function TimPhongBan(ByVal PB As String) As String
Dim a As Integer
a = InStr(PB, "-")
TimPhongBan = Left(PB, a - 1)
End Function
Private Sub cmdxuatbaocao_Click()
If rs.State = 1 Then
rs.Close
End If
Dim sql As String
sql = "SELECT CTDieuDong.MaNV, HoSoNV.TenNV, CTDieuDong.MaCongTac, CTDieuDong.NgayBoNhiem, PhongBan.TenPB, ChucVu.TenCV FROM PhongBan INNER JOIN (HoSoNV INNER JOIN (ChucVu INNER JOIN CTDieuDong ON ChucVu.MaCV = CTDieuDong.MaCV) ON HoSoNV.MaNV = CTDieuDong.MaNV) ON PhongBan.MaPB = CTDieuDong.MaPB WHERE (((CTDieuDong.MaNV)='" & txtMaNV.Text & "') AND ((CTDieuDong.MaCongTac)='" & txtMaCT.Text & "'));"
rptBCDieuDong.ReportFileName = App.Path & "\reports\BCQuyetDinhNS.rpt"
rptBCDieuDong.SetTablePrivateData 0, 3, rs
If rs.EOF = True Then
MsgBox " Kh«ng t×m thÊy b¶n ghi nh ý b¹n"
MsgBox " B¸o c¸o tr¾ng kh«ng ®îc hiÓn thÞ"
Else
rptBCDieuDong.MarginLeft = 0
rptBCDieuDong.MarginRight = 0
rptBCDieuDong.MarginTop = 0
rptBCDieuDong.MarginBottom = 0
rptBCDieuDong.WindowState = crptMaximized
rptBCDieuDong.PrintReport
End If
If rs.State = 1 Then
rs.Close
End If
End Sub
Private Sub Combo1_LostFocus()
If Combo1.Text "" Then
setValue1 (TimNhanVien(Combo1.Text))
If rs.State = 1 Then
rs.Close
End If
rs.Open "select * from CTDieuDong where CTDieuDong.MaNV ='" & TimNhanVien(Combo1) & "'"
If Not rs.EOF Then
rs.MoveFirst
If rs.Fields("NgayMienNhiem") = "1/1/1601" Then
MsgBox "Nh©n viªn cha kÕt thóc quyÕt ®Þnh nh©n sù tríc, B¹n kh«ng thÓ ®iÒu ®éng nh©n viªn nµy", , "Thong bao"
add = False
Frame1.Enabled = False
Frame2.Enabled = False
trangThai
resetForm
Exit Sub
End If
End If
If rs.State = 1 Then
rs.Close
End If
txtMaNV = (TimNhanVien(Combo1.Text))
End If
End Sub
Private Sub cmdMoi_Click()
Frame1.Enabled = True
Frame2.Enabled = True
add = True
'hien
an
resetForm
trangThai
Combo1.SetFocus
txtMaCT.Text = chonMaCT
End Sub
Private Sub an()
DTPicker1.Enabled = False
txtNguyenQuan.Enabled = False
txtHoKhau.Enabled = False
txtMaCT.Enabled = False
txtMaNV.Enabled = False
End Sub
Private Sub hien()
combo2.Enabled = True
Combo3.Enabled = True
Combo1.Enabled = True
txtGhiChu.Enabled = True
End Sub
Private Sub CmdThoat_Click()
Unload Me
End Sub
Private Sub cmdHuy_Click()
edit = False
add = False
Frame1.Enabled = False
Frame2.Enabled = False 'an
trangThai
resetForm
End Sub
Private Sub CmdLuu_Click()
Dim sql As String
If add = True Then
If checkForm = True Then
If rs.State = 1 Then
rs.Close
End If
rs.Open"SELECTCTHopDong.MaNV,CTHopDong.MaHD,HopDong.LoaiHD, CTHopDong.NgayKy,CTHopDong.NgayKT FROM HopDong INNER JOIN CTHopDong ON HopDong.MaHD = CTHopDong.MaHD Where (CTHopDong.MaNV) ='" & TimNhanVien(Combo1) & "' ORDER BY CTHopDong.NgayKy;"
If Not rs.EOF Then
rs.MoveFirst
If rs.Fields("LoaiHD") = "A" Then
MsgBox "Nhan vien bien che, b¹n cã thÓ ®iÒu ®éng", , "Thong bao"
cn.Execute "Insert into DieuDong(MaCongTac,GhiChu) values('" & txtMaCT.Text & "','" & txtGhiChu.Text & "')" cn.Execute"InsertintoCTDieuDong(MaNV,MaCongTac,NgayBoNhiem,NgayMienNhiem,MaPB,MaCV) values('" & txtMaNV.Text & "','" & txtMaCT.Text & "','" & FormatDateTime(DTPStart, vbShortDate) & "','" & FormatDateTime(DTPEnd, vbShortDate) & "','" & TimPhongBan(combo2) & "','" & TimChucVu(Combo3) & "')"
MsgBox "B¹n ®· thªm vµo danh môc thµnh c«ng!"
adoQDNS.Refresh
add = False
Frame1.Enabled = False
Frame2.Enabled = False
trangThai
resetForm
Exit Sub
End If
If (Trim(rs.Fields("NgayKT")) >= Now And Trim(rs.Fields("NgayKT")) "1/1/1601") Then
MsgBox " Nh©n viªn hÕt thêi h¹n hîp ®ång, b¹n kh«ng thÓ ®iÒu ®éng nh©n viªn nµy", , "thong bao"
add = False
Frame1.Enabled = False
Frame2.Enabled = False
trangThai
resetForm
Exit Sub
Else
cn.Execute"Insert into DieuDong(MaCongTac,GhiChu) values('" & txtMaCT.Text & "','" & txtGhiChu.Text & "')"
cn.Execute"Insert into CTDieuDong (MaNV,MaCongTac,NgayBoNhiem,NgayMienNhiem,MaPB,MaCV) values('" & txtMaNV.Text & "','" & txtMaCT.Text & "','" & FormatDateTime(DTPStart, vbShortDate) & "','" & FormatDateTime(DTPEnd, vbShortDate) & "','" & TimPhongBan(combo2) & "','" & TimChucVu(Combo3) & "')"
MsgBox "B¹n ®· thªm vµo danh môc thµnh c«ng!"
adoQDNS.Refresh
add = False
Frame1.Enabled = False
Frame2.Enabled = False
trangThai
resetForm
Exit Sub
End If
End If
MsgBox " Nh©n viªn cha ký kÕt hîp ®ång lao ®éng, b¹n ph¶i ký hîp ®ång lao ®éng tríc", , "Th«ng b¸o"
add = False
Frame1.Enabled = False
Frame2.Enabled = False
trangThai
resetForm
End If
End If
If edit = True Then
If checkForm = True Then
If rs.State = 1 Then
rs.Close
End If
rs.Open "SELECT HoSoNV.MaNV, HoSoNV.TenNV, CTHopDong.MaHD, CTHopDong.NgayKy, CTHopDong.NgayKT, HopDong.LoaiHD, CTDieuDong.MaCongTac FROM HopDong INNER JOIN ((HoSoNV INNER JOIN CTDieuDong ON HoSoNV.MaNV = CTDieuDong.MaNV) INNER JOIN CTHopDong ON HoSoNV.MaNV = CTHopDong.MaNV) ON HopDong.MaHD = CTHopDong.MaHD Where (CTHopDong.MaNV) ='" & TimNhanVien(Combo1) & "' ORDER BY CTHopDong.NgayKy;" '"
If rs.EOF Then
rs.MoveFirst
If rs.Fields("LoaiHD") = "A" Then
MsgBox "Nh©n viªn nµy thuéc biªn chÕ, b¹n ®îc phÐp ®iÒu ®éng", , "Th«ng b¸o"
cn.Execute "update DieuDong set DieuDong.MaCongTac='" & txtMaCT.Text & "', DieuDong.GhiChu='" & txtGhiChu.Text & "' where MaCongTac='" & rs.Fields("MaCongTac") & "'"
cn.Execute "UPDATE CTDieuDong SET MaCT= '" & txtMaCT.Text & "', NgayBoNhiem = '" & FormatDateTime(DTPStart, vbShortDate) & "', NgayMienNhiem = '" & FormatDateTime(DTPEnd, vbShortDate) & "', MaPB= '" & TimPhongBan(combo2) & "',MaCV= '" & TimChucVu(Combo3) & "' where MaHD='" & rs.Fields("MaHD") & "'"
MsgBox "B¹n ®· söa thµnh c«ng!"
adoQDNS.Refresh
edit = False
Frame1.Enabled = False
Frame2.Enabled = False
trangThai
resetForm
Exit Sub
End If
Else
cn.Execute "update DieuDong set DieuDong.MaCongTac='" & txtMaCT.Text & "', DieuDong.GhiChu='" & txtGhiChu.Text & "' where MaCongTac='" & rs.Fields("MaCongTac") & "'"
cn.Execute "UPDATE CTDieuDong SET NgayBoNhiem = '" & FormatDateTime(DTPStart, vbShortDate) & "', NgayMienNhiem = '" & FormatDateTime(DTPEnd, vbShortDate) & "', MaPB= '" & TimPhongBan(combo2) & "',MaCV= '" & TimChucVu(Combo3) & "' where MaCongTac='" & rs.Fields("MaCongTac") & "'"
MsgBox "B¹n ®· söa thµnh c«ng!"
adoQDNS.Refresh
edit = False
Frame1.Enabled = False
Frame2.Enabled = False
trangThai
resetForm
Exit Sub
End If
cn.Execute "update DieuDong set DieuDong.MaCongTac='" & txtMaCT.Text & "', DieuDong.GhiChu='" & txtGhiChu.Text & "' where MaCongTac='" & rs.Fields("MaCongTac") & "'"
cn.Execute "UPDATE CTDieuDong SET NgayBoNhiem = '" & FormatDateTime(DTPStart, vbShortDate) & "', NgayMienNhiem = '" & FormatDateTime(DTPEnd, vbShortDate) & "', MaPB= '" & TimPhongBan(combo2) & "',MaCV= '" & TimChucVu(Combo3) & "' where MaCongTac='" & rs.Fields("MaCongTac") & "'"
MsgBox "B¹n ®· söa thµnh c«ng!"
adoQDNS.Refresh
edit = False
Frame1.Enabled = False
Frame2.Enabled = False
trangThai
resetForm
End If
End If
End Sub
Private Function checkForm() As Boolean
If Combo1.Text = "" Then
MsgBox "B¹n cha nhËp nhan vien !"
Combo1.SetFocus
checkForm = False
Else
checkForm = True
End If
End Function
Private Sub cmdSua_Click()
If adoQDNS.Recordset.EOF = False And adoQDNS.Recordset.BOF = False Then
edit = True
Frame1.Enabled = False
Frame2.Enabled = True
trangThai
combo2.SetFocus
Else
MsgBox "B¹n cha chän b¶n ghi ®Ó söa !"
End If
End Sub
Private Sub setValue()
If adoQDNS.Recordset.EOF = False And adoQDNS.Recordset.BOF = False Then
If rs.State = 1 Then
rs.Close
End If
rs.Open " SELECT * From HoSoNV WHERE maNV='" & adoQDNS.Recordset.Fields("MaNV") & "'"
If Not rs.EOF Then
rs.MoveFirst
Combo1.Text = rs.Fields("MaNV") & "-" & rs.Fields("TenNV")
txtMaNV.Text = rs.Fields("MaNV")
txtNguyenQuan.Text = rs.Fields("NguyenQuan")
txtHoKhau.Text = rs.Fields("NoiDangKyHKTT")
DTPicker1.Value = rs.Fields("NgaySinh")
End If
If rs.State = 1 Then
rs.Close
End If
rs.Open " SELECT * From PhongBan Where PhongBan.MaPB='" & adoQDNS.Recordset.Fields("MaPB") & "'"
If Not rs.EOF Then
rs.MoveFirst
combo2.Text = rs.Fields("MaPB") & "-" & rs.Fields("TenPB")
'txtMaHD.Text = rs.Fields("MaHD")
'txtGhiChu.Text = rs.Fields("GhiChu")
End If
If rs.State = 1 Then
rs.Close
End If
rs.Open " SELECT * From ChucVu Where ChucVu.MaCV='" & adoQDNS.Recordset.Fields("MaCV") & "'"
If Not rs.EOF Then
rs.MoveFirst
Combo3.Text = rs.Fields("MaCV") & "-" & rs.Fields("TenCV")
'txtMaHD.Text = rs.Fields("MaHD")
'txtGhiChu.Text = rs.Fields("GhiChu")
End If
If rs.State = 1 Then
rs.Close
End If
rs.Open " SELECT DieuDong.MaCongTac, DieuDong.GhiChu FROM DieuDong where DieuDong.MaCongTac = '" & adoQDNS.Recordset.Fields("MaCongTac") & "'"
If Not rs.EOF Then
rs.MoveFirst
'Combo3.Text = rs.Fields("MaCV") & "-" & rs.Fields("TenCV")
'txtMaHD.Text = rs.Fields("MaHD")
txtMaCT.Text = rs.Fields("MaCongTac")
txtGhiChu.Text = rs.Fields("GhiChu")
End If
If rs.State = 1 Then
rs.Close
End If
If Trim(adoQDNS.Recordset.Fields("NgayBoNhiem")) = "" Then
ChkStart.Value = 0
DTPStart.Value = FormatDateTime("1/1/1601", vbShortDate)
Else
ChkStart.Value = 1
DTPStart.Value = adoQDNS.Recordset.Fields("NgayBoNhiem")
End If
If Trim(adoQDNS.Recordset.Fields("NgayMienNhiem")) = "" Then
ChkStart.Value = 0
DTPEnd.Value = FormatDateTime("1/1/1601", vbShortDate)
Else
ChkStart.Value = 1
DTPEnd.Value = adoQDNS.Recordset.Fields("NgayMienNhiem")
End If
Else
resetForm
End If
End Sub
Private Sub dgrQDNS_RowColChange(LastRow As Variant, ByVal LastCol As Integer)
If edit = False And add = False Then
setValue
End If
End Sub
Private Sub Form_Load()
adoQDNS.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\DataBase\NhanSu.mdb;Persist Security Info=False"
adoQDNS.RecordSource = "select * from CTDieuDong"
Set DgrQDNS.DataSource = adoQDNS
Frame1.Enabled = False
Frame2.Enabled = False
resetForm
edit = False
add = False
Call napTen
Call napPhongBan
Call napChucVu
End Sub
Sub napTen()
If rs.State = 1 Then
rs.Close
End If
rs.Open "SELECT * From HoSoNV ORDER BY HoSoNV.MaNV;"
Combo1.Clear
Combo1.AddItem ""
If Not rs.EOF Then
rs.MoveFirst
Do While Not rs.EOF
Combo1.AddItem rs.Fields("MaNV") & "-" & rs.Fields("TenNV")
rs.MoveNext
Loop
End If
If rs.State = 1 Then
rs.Close
End If
Combo1.Refresh
End Sub
Sub napPhongBan()
If rs.State = 1 Then
rs.Close
End If
rs.Open "SELECT * From PhongBan ORDER BY PhongBan.MaPB;"
combo2.Clear
combo2.AddItem ""
If Not rs.EOF Then
rs.MoveFirst
Do While Not rs.EOF
combo2.AddItem rs.Fields("MaPB") & "-" & rs.Fields("TenPB")
rs.MoveNext
Loop
End If
If rs.State = 1 Then
rs.Close
End If
combo2.Refresh
End Sub
Sub napChucVu()
If rs.State = 1 Then
rs.Close
End If
rs.Open "SELECT * From ChucVu ORDER BY ChucVu.MaCV;"
Combo3.Clear
Combo3.AddItem ""
If Not rs.EOF Then
rs.MoveFirst
Do While Not rs.EOF
Combo3.AddItem rs.Fields("MaCV") & "-" & rs.Fields("TenCV")
rs.MoveNext
Loop
End If
If rs.State = 1 Then
rs.Close
End If
Combo3.Refresh
End Sub
Private Sub setValue1(txt As String)
If rs.State = 1 Then
rs.Close
End If
rs.Open "SELECT * From HoSoNV WHERE MaNV= '" & txt & "'", cn, adOpenStatic, adLockOptimistic
If rs.RecordCount > 0 Then
rs.MoveFirst
DTPicker1.Value = rs.Fields("NgaySinh")
txtNguyenQuan.Text = rs.Fields("NguyenQuan")
txtHoKhau.Text = rs.Fields("NoiDangKyHKTT")
Else
DTPicker1.Value = Now
txtNguyenQuan.Text = ""
txtHoKhau.Text = ""
End If
If rs.State = 1 Then
rs.Close
End If
End Sub
Private Sub resetForm()
txtMaNV.Text = ""
txtMaCT.Text = ""
txtNguyenQuan.Text = ""
txtHoKhau.Text = ""
txtGhiChu.Text = ""
Combo1.Text = Combo1.List(0)
combo2.Text = combo2.List(0)
Combo3.Text = Combo3.List(0)
ChkStart.Value = 0
Call chkStart_click
ChkEnd.Value = 0
Call chkEnd_click
If Combo1.Enabled = True Then
Combo1.SetFocus
End If
End Sub
Private Sub chkStart_click()
If ChkStart.Value = 1 Then
DTPStart.Value = FormatDateTime(Now, vbShortDate)
Else
DTPStart.Value = FormatDateTime("1/1/1601", vbShortDate)
End If
End Sub
Private Sub chkEnd_click()
If ChkEnd.Value = 1 Then
DTPEnd.Value = FormatDateTime(Now, vbShortDate)
Else
DTPEnd.Value = FormatDateTime("1/1/1601", vbShortDate)
End If
End Sub
Private Sub trangThai()
If add = False Then
If edit = False Then
cmdMoi.Enabled = True
cmdSua.Enabled = True
cmdLuu.Enabled = False
cmdHuy.Enabled = False
cmdxuatbaocao = False
Else
cmdMoi.Enabled = False
cmdSua.Enabled = False
cmdLuu.Enabled = True
cmdHuy.Enabled = True
cmdxuatbaocao = False
End If
Else
If edit = False Then
cmdMoi.Enabled = False
cmdSua.Enabled = False
cmdLuu.Enabled = True
cmdHuy.Enabled = True
cmdxuatbaocao = False
Else
add = False
edit = False
cmdMoi.Enabled = True
cmdSua.Enabled = True
cmdLuu.Enabled = False
cmdHuy.Enabled = False
cmdxuatbaocao = False
End If
End If
Code Tính lương nhân viên theo tháng
Private edit As Boolean
Private add As Boolean
Private Sub cmdMoi_Click()
If Trim(txtGTDanhGia) = "" Then
If (DTPicker1.Day >= "19") And (DTPicker1.Day < "31") Then
add = True
hien
trangThai
DTPicker1.Value = Now
Else
MsgBox "B¹n kh«ng thÓ cËp nhËt phiÕu ®¸nh gi¸ vµo ngµy nµy", , "Th«ng b¸o"
add = False
an
trangThai
Exit Sub
End If
txtGTDanhGia.SetFocus
Else
MsgBox " Nh©n viªn nµy ®· ®îc cËp nhËt ®¸nh gi¸ cña trëng phßng", , "Th«ng b¸o"
End If
End Sub
Private Sub an()
dptNgayLap.Enabled = False
txtNguoiLap.Enabled = False
Frame2.Enabled = False
Frame1.Enabled = False
Frame4.Enabled = False
End Sub
Private Sub hien()
Frame4.Enabled = True
DTPicker1.Enabled = False
End Sub
Private Sub CmdThoat_Click()
Unload Me
End Sub
Private Sub cmdHuy_Click()
edit = False
add = False
an
trangThai
resetForm
End Sub
Private Sub CmdLuu_Click()
If add = True Then
If checkForm2 = True Then
cn.Execute "insert into DanhGia (MaNV,ThangDG,GiaTri,TrangThai) values('" & adoNhanVien.Recordset.Fields("MaNV") & "','" & txtKTThang.Text & "','" & txtGTDanhGia.Text & "','" & Check1.Value & "')"
adoNhanVien.Refresh
add = False
an
trangThai
End If
End If
If edit = True Then
If checkForm2 = True Then
cn.Execute "update DanhGia set DanhGia.GiaTri= '" & txtGTDanhGia.Text & "', DanhGia.TrangThai= '" & Check1.Value & "' where DanhGia.MaNV='" & adoNhanVien.Recordset.Fields("MaNV") & "'"
adoNhanVien.Refresh
edit = False
an
trangThai
End If
End If
End Sub
Private Sub cmdSua_Click()
If adoNhanVien.Recordset.EOF = False And adoNhanVien.Recordset.BOF = False Then
edit = True
If checkForm1 = True Then
hien
trangThai
Else
MsgBox "Nh©n viªn nµy ®· ®îc tÝnh l¬ng råi,b¹n kh«ng thÓ tÝnh l¬ng 2 lÇn", , "Th«ng b¸o"
edit = False
an
trangThai
Exit Sub
End If
Else
MsgBox "B¹n cha chän b¶n ghi ®Ó söa !"
End If
End Sub
Private Function checkForm2()
If txtGTDanhGia.Text = "" Then
MsgBox "B¹n ph¶i nhËp gi¸ trÞ ®¸nh gi¸ cña trëng phßng", , "Th«ng b¸o"
checkForm2 = False
ElseIf IsNumeric(txtGTDanhGia.Text) = False Then
MsgBox "B¹n phai nhap so", , "Th«ng b¸o"
checkForm2 = False
Else
checkForm2 = True
End If
End Function
Private Function checkForm() As Boolean
If txtGTDanhGia.Text = "" Then
MsgBox "Nh©n viªn nµy cha ®îc tÝnh l¬ng trong th¸ng"
checkForm = True
ElseIf Check1.Value = 0 Then
MsgBox "Nh©n viªn nµy cha ®îc tr¶ l¬ng trong th¸ng"
checkForm = True
Else
checkForm = False
End If
End Function
Private Function checkForm1() As Boolean
If Check1.Value = 0 Then
MsgBox "Nh©n viªn nµy cha ®îc tr¶ l¬ng trong th¸ng, b¹n cã thÓ söa ®æi ®¸nh gi¸", , "Th«ng b¸o"
checkForm1 = True
Else
checkForm1 = False
End If
End Function
Private Sub resetForm()
DTPicker1.Value = Now
txtGTDanhGia.Text = ""
Check1.Value = 0
If txtGTDanhGia.Enabled = True Then
txtGTDanhGia.SetFocus
End If
End Sub
Private Sub setValue()
If adoNhanVien.Recordset.EOF = False And adoNhanVien.Recordset.BOF = False Then
If rs.State = 1 Then
rs.Close
End If
rs.Open"SELECT top1 CTBangLuong.MaNV,CTBangLuong.NgayLap, CTBangLuong.NguoiLap,CTBangLuong.HSLCoBan,CTBangLuong.HSLPhuCapCV, CTBangLuong.HSLPhuCapTN,CTBangLuong.MaLCB,LCB.MucLCB,CTBangLuong.MaHS,HeSo.TenHS,HeSo.MucLuongNS FROM LCB INNER JOIN (HeSo INNER JOIN CTBangLuong ON HeSo.MaHS=CTBangLuong.MaHS) ON LCB.MaLCB=CTBangLuong.MaLCB WHERE (((CTBangLuong.MaNV)='" & adoNhanVien.Recordset.Fields("MaNV") & "')) order by CTBangLuong.NgayLap DESC;"
If Not rs.EOF Then
rs.MoveFirst
dptNgayLap.Value = rs.Fields("NgayLap")
txtNguoiLap.Text = rs.Fields("NguoiLap")
txtHSLCB.Text = rs.Fields("HSLCoBan")
txtHSPCCV.Text = rs.Fields("HSLPhuCapCV")
txtHSPCTN.Text = rs.Fields("HSLPhuCapTN")
cboLCB.Text = rs.Fields("MucLCB")
cboMaHS.Text = rs.Fields("MaHS")
txtTenHS.Text = rs.Fields("TenHS")
txtMucLNS.Text = rs.Fields("MucLuongNS")
Else
MsgBox " Nh©n viªn ph¶i cËp nhËt vµo b¶ng l¬ng tríc", , "Th«ng b¸o"
dptNgayLap.Value = Now
txtNguoiLap.Text = ""
txtHSLCB.Text = ""
txtHSPCCV.Text = ""
txtHSPCTN.Text = ""
cboLCB.Text = ""
cboMaHS.Text = ""
txtTenHS.Text = ""
txtMucLNS.Text = ""
add = False
edit = False
trangThai
End If
If rs.State = 1 Then
rs.Close
End If
rs.Open"SELECTtop1CTBangLuong.MaNV,CTBangLuong.NgayLap, CTBangLuong.NguoiLap,CTBangLuong.HSLCoBan,CTBangLuong.HSLPhuCapCV, CTBangLuong.HSLPhuCapTN,CTBangLuong.MaLCB,CTBangLuong.MaHS,HeSo.MucLuongNS,LCB.MucLCB,(CTBangLuong.HSLCoBan+CTBangLuong.HSLPhuCapCV+CTBangLuong.HSLPhuCapTN)*LCB.MucLCB+HeSo.MucLuongNS AS TongLuong FROM LCB INNER JOIN (HeSo INNER JOIN CTBangLuong ON HeSo.MaHS = CTBangLuong.MaHS) ON LCB.MaLCB = CTBangLuong.MaLCB WHERE (((CTBangLuong.MaNV)='" & adoNhanVien.Recordset.Fields("MaNV") & "'))order by CTBangLuong.NgayLap DESC;"
txtluong.Text = rs.Fields("TongLuong")
If rs.State = 1 Then
rs.Close
End If
rs.Open"SelectDanhGia.MaNV,DanhGia.ThangDG,DanhGia.GiaTri,DanhGia.TrangThai from DanhGia WHERE (((DanhGia.MaNV)='" & adoNhanVien.Recordset.Fields("MaNV") & "' and DanhGia.ThangDG= '" & txtKTThang & "' )); "
If Not rs.EOF Then
rs.MoveFirst
DTPicker1.Value = Now
txtGTDanhGia.Text = rs.Fields("GiaTri")
If rs.Fields("TrangThai") = 0 Then
Check1.Value = 0
Else
Check1.Value = 1
End If
If IsNull(rs(2)) = False Then
txtThucLinh.Text = TinhThanhTien
Else
txtThucLinh.Text = ""
End If
Else
DTPicker1.Value = Now
txtGTDanhGia.Text = ""
Check1.Value = 0
End If
If rs.State = 1 Then
rs.Close
End If
Else
resetForm
End If
End Sub
Private Sub dgrNhanVien_RowColChange(LastRow As Variant, ByVal LastCol As Integer)
If edit = False And add = False Then
setValue
End If
End Sub
Private Sub Form_Load()
adoNhanVien.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\DataBase\NhanSu.mdb;Persist Security Info=False"
Call napPhongBan
Frame3.Enabled = False
txtluong.Enabled = False
txtThucLinh.Enabled = False
edit = False
add = False
an
trangThai
End Sub
Private Sub trangThai()
If add = False Then
If edit = False Then
cmdMoi.Enabled = True
cmdSua.Enabled = True
cmdLuu.Enabled = False
cmdHuy.Enabled = False
Else
cmdMoi.Enabled = False
cmdSua.Enabled = False
cmdLuu.Enabled = True
cmdHuy.Enabled = True
End If
Else
If edit = False Then
cmdMoi.Enabled = False
cmdSua.Enabled = False
cmdLuu.Enabled = True
cmdHuy.Enabled = True
Else
add = False
edit = False
cmdMoi.Enabled = True
cmdSua.Enabled = True
cmdLuu.Enabled = False
cmdHuy.Enabled = False
End If
End If
End Sub
Function TimPhongBan(ByVal PB As String) As String
Dim a As Integer
a = InStr(PB, "-")
TimPhongBan = Left(PB, a - 1)
End Function
Sub napPhongBan()
If rs.State = 1 Then
rs.Close
End If
rs.Open "SELECT * From PhongBan ORDER BY PhongBan.MaPB;"
cboPhongBan.Clear
cboPhongBan.AddItem ""
If Not rs.EOF Then
rs.MoveFirst
Do While Not rs.EOF
cboPhongBan.AddItem rs.Fields("MaPB") & "-" & rs.Fields("TenPB")
rs.MoveNext
Loop
End If
If rs.State = 1 Then
rs.Close
End If
cboPhongBan.Refresh
End Sub
Private Sub setValue1()
adoNhanVien.RecordSource = "SELECT PhongBan.MaPB, PhongBan.TenPB, CTDieuDong.MaNV,CTDieuDong.MaCV,CTDieuDong.NgayBoNhiem,CTDieuDong.NgayMienNhiem FROM PhongBan INNER JOIN CTDieuDong ON PhongBan.MaPB=CTDieuDong.MaPB WHERE CTDieuDong.NgayMienNhiem=DateValue('01/01/1601') and PhongBan.MaPB = '" & TimPhongBan(cboPhongBan) & "'"
Set dgrNhanVien.DataSource = adoNhanVien
Frame3.Enabled = True
End Sub
Private Sub cboPhongBan_LostFocus()
If Trim(cboPhongBan.Text) "" Then
setValue1
adoNhanVien.Refresh
End If
End Sub
Private Function TinhThanhTien() As Double
TinhThanhTien = txtHSLCB.Text * (cboLCB.Text) + txtHSPCCV.Text * (cboLCB.Text) + txtHSPCTN.Text * (cboLCB.Text) + txtMucLNS * txtGTDanhGia
End Function
Code báo cao hợp đồng tuyển dụng
Option Explicit
Private Sub cmdtaomoi_Click()
Call Reset
End Sub
Private Sub CmdThoat_Click()
If rs.State = 1 Then
rs.Close
End If
cboNV.Text = ""
cboLoaiHD.Text = ""
Unload Me
End Sub
Private Sub HienThiHangTon1()
Dim dieukienThoigian As String
Dim dieukienTieuthuc As String
Dim dieukienTimkiem As String
Dim sql As String
sql = "SELECT HoSoNV.MaNV, HoSoNV.HoDem+' '+HoSoNV.Ten AS TenNV, CTHopDong.MaHD,HopDong.LoaiHD,CTHopDong.NgayKy,IIf(CTHopDong.NgayKT=DateValue('1/1/1601'),'Cha KT HD',CTHopDong.NgayKT) AS NgayKT, HoSoNV.Ten FROM HopDong INNER JOIN (HoSoNV INNER JOIN CTHopDong ON HoSoNV.MaNV = CTHopDong.MaNV) ON HopDong.MaHD = CTHopDong.MaHD "
If (optNH.Value) Then
'Tim then nhân viên'
If optallnhom.Value = True Then
sql = sql & " ORDER BY HoSoNV.Ten;"
End If
If (opt1nhom.Value) Then
If (Trim(cboNV.Text)) = "" Then
MsgBox "Bạn chưa chọn nhân viên !"
cboNV.SetFocus
Exit Sub
End If
sql = sql & " where ((HoSoNV.MaNV)= '" & TimNV(cboNV) & "') ORDER BY HoSoNV.Ten;"
End If
ElseIf (optHSX.Value) Then
'Tim theo hang san xuat'
If optallhang.Value = True Then
sql = sql & " ORDER BY HoSoNV.Ten; "
End If
If (optchonhang.Value) Then
If (Trim(cboLoaiHD.Text)) = "" Then
MsgBox "Bạn chưa chọn loại hợp đồng !"
cboLoaiHD.SetFocus
Exit Sub
End If
sql = sql & " where ((HopDong.LoaiHD)= '" & TimLoaiHD(cboLoaiHD) & "') ORDER BY HoSoNV.Ten;"
End If
End If
If rs.State = 1 Then
rs.Close
End If
rs.Open sql, cn
If optNH.Value = True Then
If optallnhom.Value = True Then
rptBCDieuDong.ReportFileName = App.Path & "\reports\BCHopDongNV.rpt"
ElseIf opt1nhom.Value = True Then
rptBCDieuDong.ReportFileName = App.Path & "\reports\BCHopDongNV1.rpt"
End If
ElseIf optHSX.Value = True Then
rptBCDieuDong.ReportFileName = App.Path & "\reports\BCHopDongNhom.rpt"
End If
rptBCDieuDong.SetTablePrivateData 0, 3, rs
If rs.EOF = True Then
MsgBox " Kh«ng t×m thÊy b¶n ghi nh ý b¹n"
MsgBox " B¸o c¸o tr¾ng kh«ng ®îc hiÓn thÞ"
Else
rptBCDieuDong.MarginLeft = 0
rptBCDieuDong.MarginRight = 0
rptBCDieuDong.MarginTop = 0
rptBCDieuDong.MarginBottom = 0
rptBCDieuDong.WindowState = crptMaximized
rptBCDieuDong.PrintReport
End If
If rs.State = 1 Then
rs.Close
End If
End Sub
Private Sub HienThiHangTon2()
Dim sql As String
sql = "SELECT HoSoNV.MaNV, HoSoNV.HoDem+' '+HoSoNV.Ten AS TenNV, CTHopDong.MaHD,HopDong.LoaiHD,CTHopDong.NgayKy,IIf(CTHopDong.NgayKT=DateValue('1/1/1601'),'Cha KT HD',CTHopDong.NgayKT) AS NgayKT,HoSoNV.Ten FROM HopDong INNER JOIN (HoSoNV INNER JOIN CTHopDong ON HoSoNV.MaNV = CTHopDong.MaNV) ON HopDong.MaHD = CTHopDong.MaHD WHERE (CTHopDong.NgayKy) < DateValue('" & dtpNgayBaoCao.Month & "/" & dtpNgayBaoCao.Day & "/" & dtpNgayBaoCao.Year & "')"
If (optNH.Value) Then
'Tim theo chuc vu'
If optallnhom.Value = True Then
sql = sql & " ORDER BY HoSoNV.Ten;"
End If
If (opt1nhom.Value) Then
If (Trim(cboNV.Text)) = "" Then
MsgBox "B¹n cha chän nh©n viªn !"
cboNV.SetFocus
Exit Sub
End If
sql = sql & " and ((HoSoNV.MaNV)= '" & TimNV(cboNV) & "') ORDER BY HoSoNV.Ten;"
End If
ElseIf (optHSX.Value) Then
If optallhang.Value = True Then
sql = sql & " ORDER BY HoSoNV.Ten; "
End If
'Tim theo hang phong ban'
If (optchonhang.Value) Then
If (Trim(cboLoaiHD)) = "" Then
MsgBox "B¹n cha chän lo¹i hîp ®ång !"
cboLoaiHD.SetFocus
Exit Sub
End If
sql = sql & " and ((HopDong.LoaiHD)= '" & TimLoaiHD(cboLoaiHD) & "') ORDER BY HoSoNV.Ten;"
End If
End If
If rs.State = 1 Then
rs.Close
End If
rs.Open sql, cn
If optNH.Value = True Then
If optallnhom.Value = True Then
rptBCDieuDong.ReportFileName = App.Path & "\reports\BCHopDongNV.rpt"
ElseIf opt1nhom.Value = True Then
rptBCDieuDong.ReportFileName = App.Path & "\reports\BCHopDongNV1.rpt"
End If
ElseIf optHSX.Value = True Then
rptBCDieuDong.ReportFileName = App.Path & "\reports\BCHopDongNhom.rpt"
End If
rptBCDieuDong.SetTablePrivateData 0, 3, rs
If rs.EOF = True Then
MsgBox " Kh«ng t×m thÊy b¶n ghi nh ý b¹n"
MsgBox " B¸o c¸o tr¾ng kh«ng ®îc hiÓn thÞ"
Else
rptBCDieuDong.MarginLeft = 0
rptBCDieuDong.MarginRight = 0
rptBCDieuDong.MarginTop = 0
rptBCDieuDong.MarginBottom = 0
rptBCDieuDong.WindowState = crptMaximized
rptBCDieuDong.PrintReport
End If
If rs.State = 1 Then
rs.Close
End If
End Sub
Private Sub cmdxuatbaocao_Click()
If (optall.Value) Then
Call HienThiHangTon1
End If
If (optThoiGian.Value) Then
Call HienThiHangTon2
End If
End Sub
Private Sub Form_Load()
Call napNV
Call napLoaiHD
Call Reset
End Sub
Private Sub Reset()
optNH.Enabled = True
optNH.Value = False
optallnhom.Enabled = False
optallnhom.Value = False
opt1nhom.Enabled = False
opt1nhom.Value = False
cboNV.Enabled = False
optHSX.Enabled = True
optHSX.Value = False
optallhang.Enabled = False
optchonhang.Enabled = False
optallhang.Value = False
optchonhang.Value = False
cboLoaiHD.Enabled = False
optall.Enabled = True
optall.Value = False
optThoiGian.Enabled = True
optThoiGian.Value = False
End Sub
Private Sub optAll_Click()
optThoiGian.Enabled = False
End Sub
Private Sub optThoiGian_Click()
optall.Enabled = False
End Sub
Private Sub disableTheoNhomHang()
optNH.Enabled = False
optallnhom.Enabled = False
opt1nhom.Enabled = False
cboNV.Enabled = False
End Sub
Private Sub disableTheoHangSanXuat()
optHSX.Enabled = False
optallhang.Enabled = False
optchonhang.Enabled = False
cboLoaiHD.Enabled = False
End Sub
Private Sub optNH_Click()
optallnhom.Enabled = True
opt1nhom.Enabled = True
cboNV.Enabled = True
optallnhom.SetFocus
Call disableTheoHangSanXuat
End Sub
Private Sub opthsx_Click()
optallhang.Enabled = True
optchonhang.Enabled = True
cboLoaiHD.Enabled = True
optallhang.SetFocus
Call disableTheoNhomHang
End Sub
Function TimLoaiHD(ByVal LoaiHD As String) As String
Dim a As Integer
a = InStr(LoaiHD, "-")
TimLoaiHD = Left(LoaiHD, a - 1)
End Function
Sub napLoaiHD()
If rs.State = 1 Then
rs.Close
End If
rs.Open "SELECT * From HopDong ORDER BY HopDong.MaHD;"
cboLoaiHD.Clear
cboLoaiHD.AddItem ""
If Not rs.EOF Then
rs.MoveFirst
Do While Not rs.EOF
cboLoaiHD.AddItem rs.Fields("LoaiHD") & "-" & rs.Fields("GhiChu")
rs.MoveNext
Loop
End If
If rs.State = 1 Then
rs.Close
End If
cboLoaiHD.Refresh
End Sub
Function TimNV(ByVal NV As String) As String
Dim a As Integer
a = InStr(NV, "-")
TimNV = Left(NV, a - 1)
End Function
Sub napNV()
If rs.State = 1 Then
rs.Close
End If
rs.Open "SELECT HoSoNV.MaNV, HoSoNV.HoDem+' '+HoSoNV.Ten AS TenNV, HoSoNV.NgaySinh, HoSoNV.SoDT, HoSoNV.CoDong, HoSoNV.GioiTinh, HoSoNV.NguyenQuan, HoSoNV.NoiDangKyHKTT, HoSoNV.DangVien, HoSoNV.SoCMND, HoSoNV.NgayCap, HoSoNV.SoTK From HoSoNV ORDER BY HoSoNV.Ten;"
cboNV.Clear
cboNV.AddItem ""
If Not rs.EOF Then
rs.MoveFirst
Do While Not rs.EOF
cboNV.AddItem rs.Fields("MaNV") & "-" & rs.Fields("TenNV")
rs.MoveNext
Loop
End If
If rs.State = 1 Then
rs.Close
End If
End Sub
MỤC LỤC
DANH MỤC HÌNH VẼ, BẢNG BIỂU
ĐẠI HỌC KINH TẾ QUỐC DÂN
KHOA TIN HỌC KINH TẾ
CHUYÊN ĐỀ TỐT NGHIỆP
Tên đề tài : Xây dựng hệ thống thông tin quản lý nhân sự tại Công ty cổ phần xây dựng Vinaconex 1
Họ và tên sinh viên : Vương Ngọc Quỳnh
Chuyên ngành : Tin học kinh tế
Lớp : Tin A
Khóa : 47
Hệ : Chính quy
Giảng viên hướng dẫn: TS.Trần Thị Song Minh
HÀ NỘI, NĂM 2009
DANH MỤC HÌNH VẼ, BẢNG BIỂU
Hình 1.1. Sơ đồ cơ cấu tổ chức của công ty 5
Bảng 2.1 Phân loại hệ thống thông tin theo lĩnh vực và các mức ra quyết định 15
Bảng 3.1. Mức lương năng suất lao động 36
Hình 3.1 Sơ đồ luồng thông tin quản lý hồ sơ nhân viên 37
Hình 3.2 Sơ đồ luồng thông tin quản lý lương 38
Hình 3.3 Sơ đồ BFD 39
Hình 3.4 Sơ đồ DFD mức ngữ cảnh 40
Hình 3.5 Sơ đồ DFD mức 0 41
Hình 3.6 Sơ đồ DFD mức 1 của tiến trình quản lý hồ sơ nhân viên 42
Hình 3.7 Sơ đồ DFD mức 1 của tiến trình quản lý lương 43
Hình 3.8 Sơ đồ DFD mức 1 của tiến trình thống kê báo cáo 44
Hình 3.9. Mô hình quan hệ thực thể ERD 46
Hình 3.10. Mối quan hệ giữa các bảng 51
Hình 3.11 Quá trình chuẩn hoá dữ liệu 58
Bảng 3.2 Bảng hồ sơ nhân viên 59
Bảng 3.3 Bảng chức vụ 59
Bảng 3.4 Bảng bằng cấp nhân viên 60
Bảng 3.5 Bảng hợp đồng 60
Bảng 3.6 Bảng lương cơ bản 60
Bảng 3.7 Bảng phòng ban 61
Bảng 3.8 Bảng chi tiết quyết định nhân sự 61
Bảng 3.9 Bảng chi tiết bằng cấp nhân viên 62
Bảng 3.10 Bảng phiếu lương 62
Bảng 3.11 Bảng chi tiết hợp đồng 63
Bảng 3.12 Bảng mức lương năng suất 63
Bảng 3.13 Bảng quyết định nhân sự 63
Bảng 3.14 Bảng đánh giá 64
Hình 3.12. Sơ đồ cấu trúc dữ liệu 64
Hình 3.13. Sơ đồ khối thuật đăng nhập vào chương trình 65
Hình 3.14. Sơ đồ khối thuật toán tính lương nhân viên 66
Hình 3.15. Sơ đồ khối thuật toán lập quyết định điều động nhân sự 67
Hình 3.16. Sơ đồ khối thuật toán lập hợp đồng cho nhân viên 68
Hình 3.17. Sơ đồ khối thuật toán Lập báo cáo 69
Hình 3.18. Giao diện form đăng nhập 70
Hình 3.19.Giao diện hệ thống 71
Hình 3.20. Giao diện giới thiệu phần mềm 72
Hình 3.21. Giao diện đổi mật khẩu 73
Hình 3.22. Form danh mục chức vụ 74
Hình 3.23. Form danh mục phòng ban 75
Hình 3.24. Form danh mục lương cơ bản 76
Hình 3.25. Danh mục lương năng suất 77
Hình 3.26. Form cập nhật chi tiết chuyên môn 78
Hình 3.27. Form cập nhật chuyên môn 79
Hình 3.28. Form quản lý hợp đồng 80
Hình 3.29. Form quản lý điều động nội bộ 81
Hình 3.30. Form quản lý hệ số lương 83
Hình 3.31. Form quản lý lương theo tháng 84
Hình 3.32. Form tra cứu nhân viên theo bằng cấp 85
Hình 3.33. Form tra cứu quyết định nhân sự 86
Hình 3.34. Form tra cứu hợp đồng lao động 87
Hình 3.35. Form báo cáo lương 88
Hình 3.36. Bảng lương nhân viên theo phòng ban 89
Hình 3.37. Bảng lương chi tiết từng nhân viên 90
Hình 3.38. Form báo cáo hợp đồng tuyển dụng 91
Hình 3.39. Báo cáo hợp đồng theo loại hợp đồng 92
Hình 3.40. Báo cáo hợp đồng cho nhân viên 93
Hình 3.41. Form báo cáo trình độ nhân viên 94
Hình 3.42. Báo cáo thống kê trình độ nhân viên 95
Hình 3.43. Form báo cáo điều động nhân sự 96
Hình 3.44. Báo cáo điều động nhân viên theo nhóm phòng ban 97
Hình 3.45. Báo cáo điều động nhân viên theo nhóm chức vụ 98
Hình 3.46. Mẫu quyết định điều động nhân viên 99
Các file đính kèm theo tài liệu này:
- Xây dựng hệ thống thông tin quản lý nhân sự tại công ty cổ phần xây dựng Vinaconex 1.DOC