Trong công tác quản lý nhân sự trên máy tính, mỗi cơ quan đều có hướng quản lý tương đối giống nhau.Tuy nhiên trong các khâu xử lý, lưu trữ , tìm kiếm dữ liệu lại tuỳ thuộc vào từng doanh nghiệp lại hoàn toàn khác nhau. Để tìm kiếm dữ liệu ta có thể mở tập tin CSDL ra rồi nhập hoặc tìm kiếm trực tiếp, làm như thế công việc trên không đảm bảo trực quan và không thể áp dụng các câu lệnh đặc biệt, các phép toán phức tạp theo yêu cầu đặt ra như ta muốn nhập theo bảng . Vì vậy để khắc phục tình trạng này ta nên viết riêng một chương trình.
Để viết chương trình được khả thi thì đòi hỏi trước tiên phải có thuật toán đúng, đủ và phải là phương pháp giải quyết bài toán nhanh nhất, tối ưu nhất.
108 trang |
Chia sẻ: oanh_nt | Lượt xem: 1337 | Lượt tải: 0
Bạn đang xem trước 20 trang tài liệu Chuyên đề Áp dụng tin học vào chương trình quản lý nhân sự cho công ty phần mềm kế toán ASIA, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
hệ để tránh thuộc tính nhận giá trị rỗng.
Quan hệ hai chiều loại 1@N
Trong trường hợp này ta tạo ra hai tệp, mỗi tệp ứng với một thực thể. Khoá của tệp ứng với thực thể có số mức quan hệ 1 được dùng như khoá quan hệ trong tệp ứng với thực thể có số mức quan hệ N. Khoá quan hệ có thể nhận giá trị rỗng nếu thực thể có số mức N là tuỳ chọn trong quan hệ.
Quan hệ hai chiều loại N@M
Trong trường hợp này ta phải tạo ra ba tệp: hai tệp mô tả hai thực thể và một tệp mô tả quan hệ. Khoá của tệp mô tả quan hệ được tạo thành bởi việc ghép khoá của các thực thể tham gia vào quan hệ.
5.4 Giai đoạn 4: Đề xuất các phương án của giải pháp
Sau khi mô hình logic được người sử dụng lựa chọn thì cần xây dựng các phương án khác nhau để cụ thể hoá mô hình logic. Những người sử dụng sẽ chọn lấy một phương án tỏ ra đáp ứng tốt nhất các yêu cầu của họ mà vẫn tôn trọng các ràng buộc của tổ chức. Giai đoạn này gồm các công đoạn:
Xác định các ràng buộc tin học và ràng buộc tổ chức.
Xây dựng các phương án của giải pháp.
Đánh giá các phương án của giải pháp.
Chuẩn bị và trình bày báo cáo của giai đoạn đề xuất các phương án giải pháp.
5.5 Giai đoạn 5: Thiết kế vật lý ngoài
Sau khi một phương án của giải pháp được lựa chọn sẽ tiến hành thiết kế vật lý ngoài. Những công đoạn chính của giai đoạn này là:
Lập kế hoạch thiết kế vật lý ngoài.
Thiết kế chi tiết các giao diện (vào/ra).
Thiết kế cách thức tương tác với phần tin học hoá.
Thiết kế các thủ tục thủ công
Chuẩn bị và trình bày báo cáo về thiết kế vật lý ngoài
Kết thúc giai đoạn này cần có hai tài liệu kết quả:
+ Tài liệu chứa tất cả các đặc trưng của hệ thống sẽ cần cho việc thực hiện kỹ thuật.
+ Tài liệu dành cho người sử dụng và nó mô tả phần thủ công và cả những giao diện với những phần tin học hoá.
Mục đích của thiết kế vật lý ngoài là mô tả chi tiết hình thức bên ngoài cho hệ thống thông tin.
Các nhiệm vụ chính của thiết kế vật lý bao gồm:
Thiết kế chi tiết các giao diện vào/ra: xác định HTTT trình bày thông tin như thế nào cho người sử dụng khi nhập dữ liệu vào hệ thống hoặc đưa kết quả ra.
Thiết kế cách thức tương tác với phần tin học hoá: xác định cách thức mà người sử dụng hội thoại với HTTT.
Thiết kế các thủ tục thủ công.
Lập kế hoạch thiết kế vật lý ngoài
Phải lựa chọn phương tiện, khuôn dạng của các dòng vào/ra.
Xác định cách thức hội thoại với phần tin học hoá của hệ thống.
Cách thực hiện các thủ tục thủ công.
Một số nguyên tắc:
- Làm sao cho người sử dụng luôn kiểm soát được hệ thống.Thiết kế hệ thống theo thói quen và kinh nghiệm của người sử dụng.
- Gắn chặt chẽ với các thuật ngữ, dạng thức và các thủ tục đã được dùng.
- Che khuất toàn bộ phần cứng và phần mềm.
- Cung cấp thông tin về tư liệu đang sử dụng trên màn hình.
- Làm sao để giảm tối thiểu lượng thông tin mà người sử dụng cần phải nhớ.
- Sử dụng các quy tắc cơ bản về mầu sắc và ký hiệu.
5.6 Giai đoạn 6: Triển khai kỹ thuật hệ thống
Kết quả quan trọng nhất của giai đoạn này là phần mềm, các công đoạn chính gồm:
Lập kế hoạch thực hiện kỹ thuật.
Thiết kế vật lý trong.
Lập trình.
Thử nghiệm hệ thống.
Chuẩn bị tài liệu.
Kết thúc giai đoạn này cần có tài liệu hướng dẫn sử dụng và thao tác cũng như các tài liệu mô tả về hệ thống.
5.7 Giai đoạn 7: Cài đặt và khai thác
Giai đoạn này gồm các công đoạn:
Lập kế hoạch cài đặt.
Chuyển đổi.
Khai thác và bảo trì.
Đánh giá.
II. hệ thống thông tin quản lý nhân lực
Đối với một hệ thống thông tin quản lý nhân lực thì nó bao gồm các nội dung sau:
1. Cập nhật dữ liệu
Trong phần này nó phải cập nhật toàn bộ dữ liệu có liên quan đến nhân viên, để làm cơ sở cho quản lý sau này. Các dữ liệu cần cập nhật là:
Hồ sơ nhân viên
Chức vụ
Chứng chỉ
Lương nhân viên
Trình độ
Phòng ban
...
2. Xử lý dữ liệu
Trên cơ sở các dữ liệu nhập vào, hệ thống phải tiến hành xử lý
Các xử lý bao gồm:
Xử lý lương
Xử lý hồ sơ
Xử lý chức vụ
Xử lý phòng ban
Xử lý quá trình công tác
................................
3. Sao lưu dữ liệu
Dữ liệu phục vụ quản lý nhân sự phải được lưu trữ lâu dài, bởi vì khi cần thiết dữ liệu phải cung cấp ngay cho người sử dụng. Chương trình sau khi sử dụng phải sao lưu ra đĩa mềm hoặc một thư mục khác để cất trữ.
4. Các loại báo cáo
Báo cáo là phần quan trọng nhất mà chương trình cung cấp cho người sử dụng. Dựa vào báo cáo người sử dụng mới có thể thống kê tính toán được các công việc cần thiết.
- Danh sách nhân sự
- Bảng lương nhân viên
- Danh sách phòng ban
...............................
Chương III
Phân tích và thiết kế hệ thống thông tin quản lý nhân sự
Phân tích là phương pháp nghiên cứu nhằm lựa chọn giải pháp thích hợp, biện pháp cụ thể để đưa máy tính vào phục vụ cho công việc hàng ngày. Phân tích là công việc đầu tiên của quá trình xây dựng một ứng dụng trên máy tính. Hiệu quả đem lại của hệ thống chương trình ứng dụng phụ thuộc vào độ nông sâu của kết quả phân tích ban đầu.
I. Phân tích và thu thập dữ liệu
Tìm hiểu tình hình thực tế và yêu cầu quản lý tại công ty
Phân tích tình hình thực tế tại công ty
Công ty đầu tư và phát triển phần mềm kế toán ASIA là một công ty cổ phần do các cổ đông thành lập. Nó mới được thành lập 10-2001 do vậy khâu quản lý nhân sự, để tìm hiểu hồ sơ, trình độ, chuyên ngành đào tạo , kinh nghiệm ...là một điều hết sức cần thiết cho công ty. Do vậy khâu quản lý nhân sự rất phức tạp và phải trải qua nhiều bước.
Khi một nhân viên mới vào công ty thì ta phải cập nhật hồ sơ của nhân viên đó vào kho hồ sơ. Sau đó, từ kho hồ sơ ta có thể lấy ra để xem xét các thông tin của nhân viên đó, nếu có thiếu sót gì thì đưa ra để sửa chữa.
Trong quá trình công tác nếu có sự biến động thông tin của nhân viên như: chuyển đổi phòng ban, bổ xung thêm dữ liệu... thì phải cập nhật kịp thời.
Thông tin nhân viên nghỉ hưu, chuyển đổi công tác khác hay bị sa thải phải được theo dõi trong kho hồ sơ lưu.
Mỗi tháng nhân viên lĩnh lương lại phải kiểm tra ngày công, bậc lương, hệ số lương, mức lương ... để xác định được lương nhân viên.
In ấn báo cáo khi cấp trên có yêu cầu.
Hiện nay công ty ứng dụng tin học trong công tác quản lý kinh doanh và chuyên viết phần mềm kế toán cung cấp cho thị trường phần mềm kế toán. Nhưng trong khâu nhân sự thì vẫn áp dụng phương pháp thủ công thông thường rất phức tạp và mất nhiều thời gian và công sức cho việc cập nhật, sao chép sửa chữa, xoá, tìm kiếm, do đó không đảm bảo được yêu cầu về thời gian và độ chính xác của báo cáo. Để khắc phục nhược điểm đó yêu cầu có hệ thống phù hợp quy mô của công ty.
Yêu cầu của hệ thống
Yêu cầu đặt ra là thiết kế một hệ thống quản lý nhân sự cho công ty. Hệ thống đó phải được ứng dụng thực tế và tin học hóa một cách khả thi, đáp ứng được yêu cầu đặt ra trong thời kì mới, phải thuận tiện an toàn và đạt hiệu quả cao.
Để thực hiện các mục tiêu trên thì hệ thống mới cần làm các việc sau:
+ Cập nhật thông tin hồ sơ phải nhanh chóng thuận tiện và chính xác.
+ Xem, sửa, xoá một cách dễ dàng mà vẫn đảm bảo đẹp đẽ, rõ ràng
+ Tìm kiếm các thông tin một cách nhanh chóng, chính xác
+ Chương trình sử dụng đơn giản, người sử dụng không cần có trình độ đào tạo sâu về máy tính cũng có thể sử dụng được.
Các thông tin đầu vào
2.1 Thông tin phục vụ cập nhật hồ sơ nhân sự ban đầu
Bao gồm những thông tin cơ bản về CBCNV
Mã nhân viên
Họ tên
Giới tính
Năm sinh
Số chứng minh thư
Số thẻ bảo hiểm y tế
Quốc tịch
Số hợp đồng
Dân tộc
Thời hạn hợp đồng
Tôn giáo
Ngày ký hợp đồng
Quê quán
Hộ khẩu
Địa chỉ
Điện thoại
Ghi chú
Tình trạng
Thời hạn hợp đồng
Ngày bắt đầu
Hộ khẩu
Địa chỉ
.....................
2.2 Thông tin phục vụ cho việc cập nhật và bổ sung dữ liệu
- Bảng thông tin cơ bản nhân viên
- Bảng thông tin lương của nhân viên
- Bảng thông tin chức vụ của nhân viên
- Bảng thông tin trình độ chuyên môn của nhân viên
- Bảng thông tin phòng ban của nhân viên
- Bảng thông tin quá trình công tác của nhân viên
- Bảng thông tin hệ thống
3. Các thông tin đầu ra
Bao gồm các báo cáo
Danh sách nhân sự
Bảng lương nhân viên
Danh sách phòng ban
II. Thiết kế lô gíc hệ thống
1. Sơ đồ IFD và DFD của hệ thống
* Sơ đồ luồng thông tin của hệ thống quản lý nhân sự
Gồm 4 chủ thể: Nhân viên, phòng nhân sự, phòng kế toán và Giám đốc.
Gồm 5 xử lý: Nhập hồ sơ, nhập thông tin liên quan, cập nhật tìm kiếm, xử lý dữ liệu, tính lương.
Dòng thông tin gồm dòng vào và dòng ra.
Các dòng vào: Thông tin của nhân sự , những thông tin liên quan nhân sự, yêu cầu.
Dòng ra: Lương, trả lời, báo cáo,thông tin đã xử lý.
Có 2 kho lưu trữ dữ liệu: Kho hồ sơ cá nhân, kho hồ sơ nhân viên
Sơ đồ luồng thông tin của hệ thống quản lý nhân sự
Nhân viên Phòng nhân Sự Phòng kế toán Giám đốc
Thông tin cơ bản của nhân sự
Nhập hồ sơ nhân sự
Báo cáo
Nhập TT liên quan
Kho hồ sơ cá nhân
Kho hồ sơ nhân viên
Cập nhật tìm kiếm
Xử lý
dữ liệu
Thông tin đã
xủ lý
Những TT liên quan nhân sự
Yêu cầu
Trả lời
Tính lương
* Sơ đồ DFD của hệ thống quản lý nhân sự
Trong quá trình phân tích thì sơ đồ dòng dữ liệu giúp cho ta dễ dàng xác định được yêu cầu của người sử dụng. Sơ đồ dòng dữ liệu nêu ra một mô hình hệ thống thông tin chuyển vận từ một quá trình này sang một quá trình khác. Điều quan trọng là phải xác định được đầy đủ các thông tin vào ra.
Sơ đồ mức ngữ cảnh của hệ thống
Yêu cầu được đáp ứng
P.nhân sự
Nhân viên
Giám đốc
P.kế toán
Quản lý nhân sự
Lương
Yêu cầu
Thông tin
Lưu trữ hồ sơ nhân sự
nhân sự
Sơ đồ ngữ cảnh của hệ thống trên chỉ là tổng quát. Khi các vấn đề khác phát sinh được đặt ra thì với sơ đồ mức ngữ cảnh như trên chưa vạch ra được chi tiết của vấn đề. Bởi vậy ta phải phân tích cụ thể các vấn đề này trong sơ đồ dữ liệu mức 1 và mức dưới 1.
Sơ đồ DFD mức 0 của hệ thống
Thông tin hệ thống
Hồ sơ thông tin liên quan
Nhân viên
Quản lý
thông tin cơ bản nhân sự
P.nhân sự
3.0
Cập nhật thông tin hệ thống
2.0
Quản lý các thông tin liên quan nhân sự
Hồ sơ nhân sự cơ bản
Giám đốc
P.nhân sự
P.nhân sự
P.kế toán
Báo cáo
Lương
Thông tin
cần cập nhật
TT đã Xlý
Yêu cầu
Giám đốc
Sơ đồ DFD phân rã tiến trình quản lý thông tin cơ bản nhân sự
Tìm kiếm
Yêu cầu
P. Nhân sự
Cập nhật
thông tin
cơ bản
Nhân viên
Xử lý thông tin cơ bản nhân sự
P. Nhân sự
Hồ sơ nhân sự cơ bản
P. nhân sự
Các tra cứu
Thông tin cần xử lý
Thông tin cập nhật
Giám đốc
Yêu cầu
Sơ đồ DFD phân rã tiến trình quản lý các thông tin liên quan nhân sự
P. kế toán
P. Nhân sự
Tính lương
Cập nhật thông tin liên quan nhân sự
Lương
Hồ sơ thông tin liên quan
Nhân viên
Thông tin c
Liên quan
Báo cáo
P. Nhân sự
P. Kế toán
P. Giám đốc
Thông tin
Yêu cầu
Báo cáo
cập nhật
Sơ đồ phân rã tiến trình quản lý các thông tin hệ thống
P. Nhân sự
Lựa chọn chỉ tiêu
hệ thống
Thông tin hệ thống
Cập nhật thông tin hệ thống
P. Nhân sự
Danh sách được chọn
Thông tin cần cập nhật
2. Thiết kế cơ sở dữ liệu bằng phương pháp mô hình hoá
2.1 Khái niệm cơ bản
- Thực thể (Entity).Thực thể trong mô hình lô gíc dữ liệu được dùng để biểu diễn những đối tượng cụ thể hoặc trừu tượng trong thế giới thực mà ta muốn lưu trữ những thông tin về chúng.
Trong hệ thống chúng ta đang nghiên cứu có các thực thể sau:
Nhân viên
Trình độ chuyên môn
Phòng ban
Chức vụ
Ngoại ngữ
Tin học
Chứng chỉ
Nhân viên chức vụ
Nhân viên phòng ban
Nhân viên lương
Nhân viên ngoại ngữ
Nhân viên quá trình công tác
Nhân viên tin học
Nhân viên trình độ chuyên môn.
2.2. Mối quan hệ các thực thể và chuyển đổi thực thể khái quát
Liên kết
Một thực thể trong thực tế không tồn tại độc lập với các thực thể khác. Có sự liên kết qua lại giữa các thực thể khác nhau. Cũng có thể gọi là có quan hệ qua lại với nhau.
Để thiết kế tốt các sự trợ giúp quản lý của HTTT, ngoài việc biết thực thể này liên kết với thực thể khác ra sao, còn phải biết có bao nhiêu lần thực thể A tương tác với mỗi lần của thực thể B và ngược lại.
Liên kết Một_Một (1-1)
Liên kết Một_Nhiều (1-n)
Liên kết Nhiều_Nhiều (n_n)
Thuộc tính
Thuộc tính dùng để mô tả đặc trưng của một quan hệ.
Thuộc tính định danh (Identifier) là thuộc tính dùng để xác định một cách duy nhất mỗi lần xuất hiện của thực thể.
Thuộc tính mô tả (Description) dùng để mô tả về thực thể.
Thuộc tính quan hệ (Relation) dùng để chỉ đến một lần xuất nào đó trong thực thể có quan hệ.
Ta có các quan hệ giữa các thực thể theo phương pháp mô hình hoá
Có
Nhân viên
Chức vụ
M
N
Có
Nhân viên
NV-Lương
N
1
Có
M
Nhân viên
Ngoại ngữ
N
Chứng chỉ
1
Làm việc
Nhân viên
Phòng ban
M
N
Có
Nhân viên
Tin học
M
N
Chứng chỉ
1
Nhân viên
TĐCM
Có
N
M
Chứng chỉ
1
Có
Nhân viên
QT công tác
M
1
Sơ đồ quan hệ các thực thể ERD
NV_QTCT
#mãnhânviên
từ ngày
đến ngày
Chứng chỉ
#mã phòng ban
NV-Lương
Chức vụ
Ngoại ngữ
Nhân viên
Có
Làm việc
N
1
1
N
N
N
Phòng ban
M
MM
N
#mãngoạingữ
#mã chứng chỉ
chỉ
#mã trình độ CM
#mã chức vụ
#Bậc lương
#mãtin học
Trình độ CM
Tin học
M
M
N
Có
M
Có
N
1
Có
Có
Có
1
1
#mãnhânviên
Chuyển từ ERD sang DSD
NV-Lương
Mã nhân viên
Bậc lương
Hê.số-LCB
...
Phòng ban
Mã phòng ban
Tên phòng ban
NV-Phòng ban
Mã nhân viên
Mã phòng ban
...
Chức vụ
Mã chức vụ
Tên chức vụ
NV-Chức vụ
Mã nhân viên
Mã chức vụ
....
NV-QTCT
Mã nhân viên
Từ ngày
Đến ngày
Nhân viên
Mã nhân viên
Tên nhân viên
....
NV-Ngoại ngữ
Mã Nhân viên
Mã ngoại ngữ
Mã chứng chỉ
Ngoại ngữ
Mã ngoại ngữ
Tên ngoại ngữ
Chứng chỉ
Mã chứng chỉ
Tên chứng chỉ
NV- Trình độ chuyên môn
Mã nhân viên
Mã TĐCM
Mã chứng chỉ
Trình độ chuyên môn
Mã TĐCM
Tên TĐCM
NV-Tin học
Mã nhân viên
Mã tin học
Mã chứng chỉ
...
Tin học
Mã tin học
Tên tin học
III. Thiết kế vật lý ngoài
Thiết kế vào/ra
1.1 Thiết kế ra
Đầu ra của hệ thống bao gồm các báo cáo.
Các đầu ra này sẽ được in trên giấy khổ A4.
Thiết kế vào
Mục đích của thiết kế vào là thiết kế các thủ tục nhập dữ liệu có hiệu quả và giảm thiểu các sai sót. Thiết kế vào bao gồm: lựa chọn phương tiện, thiết kế khuôn dạng cho thông tin nhập.
Lựa chọn phương tiện nhập: Nhập dữ liệu từ các thông tin liên quan nhân sự vào máy qua bàn phím.
2. Thiết kế khuôn dạng màn hình nhập
Nguyên tắc thiết kế:
Thiết kế khuôn dạng màn hình .
Tên trường được đặt ở phía trên hoặc trước trường nhập.
Một số trường được đặt các giá trị ghi nhớ những thông tin giúp cho người sử dụng không phải nhớ nhiều.
IV. Triển khai hệ thống
Lựa chọn công cụ phát triển hệ thống
Cùng với sự phát triển và công nghệ thông tin, công nghệ phần mềm ngày nay đã có những bước tiến nhanh chóng, trải qua các giai đoạn từ ngôn ngữ lập trình không cấu trúc, đến ngôn ngữ lập trình có cấu trúc rồi chuyển sang ngôn ngữ lập trình hướng đối tượng. Từ các mô hình cơ sở dữ liệu quan hệ đến các cơ sở hướng đối tượng, từ hoạt động trên máy PC riêng lẻ đến hoạt động trên môi trường mạng, từ những ngôn ngữ lập trình tổng quát đến những hệ quản trị cơ sở dữ liệu cho những ứng dụng chuyên sâu. Tất cả những sự phát triển đó giúp cho các ngôn ngữ lập trình ngày càng trở nên gần gũi, dễ sử dụng đối với những người thiết kế, lập trình , bảo trì chương trình.
Lựa chọn ngôn ngữ lập trình đóng vai trò quan trọng đối với sự thành công của chương trình. Việc lựa chọn ngôn ngữ lập trình dựa vào nhiều yếu tố khách quan, chủ quan như: khả năng của người được giao nhiệm vụ, thói quen của người sử dụng, yêu cầu về môi trường phần cứng, khả năng của ngôn ngữ định lựa chọn ...
Việt Nam hiện nay đang sử dụng nhiều ngôn ngữ lập trình và các hệ quản trị cơ sở dữ liệu khác nhau. Điển hình là các ngôn ngữ Pascal, TurboC, C++, Basic, Foxpro, Visual Basic, Access,...Qua thực tế dựa trên nhiều yếu tố đó. Em đã lựa chọn ngôn ngữ lập trình cho hệ chương trình quản lý nhân sự này là Visual Basic 6.0.
2. Thiết kế vật lý trong
2.1 Liệt kê các chức năng của hệ thống
Hệ thống quản lý nhân sự gồm 3 chức năng chính:
* Chức năng quản lý thông tin cơ bản nhân sự
* Chức năng quản lý các thông tin nhân sự
* Chức năng quản lý danh sách hệ thống
Trong chức năng quản lý thông tin cơ bản nhân sự có các chức năng con như:
- Thêm
- Tìm kiếm
- Bỏ qua
- Sửa
- Xoá
- Lưu
Trong chức năng quản lý các thông tin nhân sự có các chức năng con
- Cập nhật
- Bỏ qua
- Xoá
Trong chức năng quản lý danh sách hệ thống
- Bỏ qua
- Cập nhật
- Xoá
- Đóng
2.2 Sơ đồ BFD của hệ thống quản lý nhân sự
Biểu đồ phân cấp chức năng (BFD)
Quản lý nhân sự
Quản lý thông tin cơ bản nhân sự
Quản lý thông tin nhân sự
Quản lý danh sách hệ thống
Thêm nhân viên
Tìm kiếm
Bỏ qua
Sửa nhân viên
Bỏ qua
Cập nhật
Xoá
Cập nhật
Bỏ qua
Xoá nhân viên
Lưu
Xoá
Đóng lại
2.3 Thiết kế cơ sở dữ liệu vật lý trong quản lý nhân sự
Trong giai đoạn thiết kế lô gíc, cơ sở dữ liệu chứa tất cả những dữ liệu chính nhưng không có dữ liệu dư thừa, để tạo ra các thông tin đầu ra của hệ thống. Thiết kế vật lý trong nhằm mục đích tìm cách tiếp cận tới dữ liệu nhanh và hiệu quả.
Việc xây dựng một cơ sở dữ liệu trong Access được bắt đầu bằng việc xây dựng bảng dữ liệu. Cấu trúc bảng dữ liệu gồm các trường (Field) và các bản ghi (record). Mỗi trường được xây dựng bởi một kiểu dữ liệu nhất định. Hệ quản trị cơ sở dữ liệu Access hỗ trợ các kiểu dữ liệu sau:
- Text: đây là kiểu dữ liệu rộng nhất trong các kiểu dữ liệu mà Access quản lý. Nó bao gồm ký tự, chữ, chữ số. Kiểu dữ liệu này cũng được sử dụng thường xuyên nhất, nó có thể dùng để lưu thông tin về tên, địa chỉ, quê quán... giới hạn của kiểu kí tự này là 255 kí tự.
- Number: đây là kiểu dữ liệu số, có thể là integer (số nguyên) long integer, single, double, byte.
- Currency: kiểu tiền tệ.
- Date/time: lưu dữ liệu kiểu ngày tháng
........................
Thiết kế cơ sở dữ liệu giúp người sử dụng quản lý thông tin thông qua các bản ghi. Các bảng dữ liệu có cấu trúc chặt chẽ, có chức năng quản lý nhân sự với hệ thống chính xác cao. Việc thiết kế các trường dữ liệu phải đảm bảo đầy đủ về mặt nội dung và thể hiện rõ chức năng của trường. Các bước thiết kế CSDL có vai trò quan trọng đảm bảo yêu cầu sau:
+ Đảm bảo việc thiết kế thông tin không thừa, không thiếu.
+ Đảm bảo tính khoa học, phát triển cho hệ thống sau này.
Qua quá trình tìm hiểu và phân tích bài toán ta có thể đưa ra các tệp cơ sở dữ liệu:
Các bảng dữ liệu
Bảng 1: Chức vụ
Chức vụ
STT
Tên trường
Kiểu dữ liệu
Kích thước
Mô tả
1
Machucvu
Number
4
Mã chức vụ
2
Tenchucvu
Text
50
Tên chức vụ
Bảng này lưu giữ thông tin về chức vụ trong công ty
Bảng 2: Danh mục chứng chỉ
Chứng chỉ
STT
Tên trường
Kiểu
Kích thước
Mô tả
1
MaCC
Number
4
Mã chứng chỉ
2
TenCC
Text
50
Tên chứng chỉ
Bảng này nêu danh mục các loại văn bằng chứng chỉ
Bảng 3: Nhân viên
Nhân viên
STT
Tên trường
Kiểu dữ liệu
Kích thước
Mô tả
1
MaNV
Text
5
Mã nhân viên
2
TenNV
Text
35
Tên nhân viên
3
Gioitinh
Yes/no
1
Giới tính
4
Ngaysinh
Date/time
8
Ngày sinh
5
SoCMT
Text
10
Số chứng minh thư
6
SoBHYT
Text
8
Số bảo hiểm y tế
7
Quoctich
Text
30
Quốc tịch
8
Dantoc
Text
20
Dân tộc
9
Quequan
Text
50
Quê quán
10
Tongiao
Text
30
Tôn giáo
11
SoHD
Text
20
Số hợp đồng
12
ThoihanHD
Number
4
Thời hạn hợp đồng
13
NgayBD
Date/time
8
Ngày bắt đầu
14
Hokhau
Text
50
Hộ khẩu
15
Diachi
Text
50
Địa chỉ
16
Tel
Text
30
Điện thoại
17
Ghichu
Text
100
Ghi chú
18
Tinhtrang
Yes/no
1
Tình trạng
Bảng này chứa thông tin về lý lịch nhân viên
Bảng 4: Ngoại ngữ
Ngoại ngữ
STT
Tên trường
Kiểu dữ liệu
Kích thước
Mô tả
1
MaNN
Number
4
Mã ngoại ngữ
2
TenNN
Text
15
Tên ngoại ngữ
Bảng 5: Phòng ban
Phòng ban
STT
Tên trường
Kiểu dữ liệu
Kích thước
Mô tả
1
MaPB
Number
4
Mã phòng ban
2
TenPB
Text
30
Tên phòng ban
Bảng 6: Tin học
Tin học
STT
Tên trường
Kiểu dữ liệu
Kích thước
Mô tả
1
MaTH
Number
4
Mã tin học
2
TenTH
Text
50
Tên tin học
Bảng 7: Trình độ chuyên môn
Trình độ chuyên môn
STT
Tên trường
Kiểu
Kích thước
Mô tả
1
MaTDCM
Number
5
Mã trình độ chuyên môn
2
TenTDCM
Text
30
Tên trình độ chuyên môn
Bảng 8: Nhân viên chức vụ
Nhân viên chức vụ
STT
Tên trường
Kiểu dữ liệu
Kích thước
Mô tả
1
MaNV
Text
5
Mã nhân viên
2
MaCV
Number
4
Mã chức vụ
3
Tungay
Date/time
8
Từ ngày
Bảng 9: Nhân viên lương
Nhân viên lương
STT
Tên trường
Kiểu dữ liệu
Kích thước
Mô tả
1
MaNV
Text
5
Mã nhân viên
2
Bacluong
Number
4
Bậc lương
3
Heso-LCB
Number
4
Hệ số lương cơ bản
4
Heso-CT
Number
4
Hệ số lương công tác
5
Heso-PC
Number
4
Hệ số lương phụ cấp
6
NgayQD
Number
8
Ngày quyết định
Bảng 10: Nhân viên ngoại ngữ
Nhân viên ngoại ngữ
STT
Tên trường
Kiểu dữ liệu
Kích thước
Mô tả
1
MaNV
Text
5
Mã nhân viên
2
MaNN
Number
4
Mã ngoại ngữ
3
MaCC
Number
4
Mã chứng chỉ
4
Loai
Text
15
Loại
5
Noicap
Text
30
Nơi cấp
6
Ngaycap
Date/time
8
Này cấ
Bảng 11: Nhân viên phòng ban
Nhân viên phòng Ban
STT
Tên trường
Kiểu dữ liệu
Kích thước
Mô tả
1
MaPB
Number
4
Mã của phòng ban
2
MaNV
Text
5
Mã nhân viên
3
Tungay
Date/time
8
Từ ngày
Bảng 12: Nhân viên quá trình công tác
NhânViên quá trình công tác
STT
Tên trường
Kiểu dữ liệu
Kích thước
Mô tả
1
MaNV
Number
5
Mã của nhân viên
2
Tungay
Date/time
8
Từ ngày
3
Denngay
Date/time
8
Đến ngày
4
Congviec
Text
50
Công việc
5
Coquan
Text
50
Cơ quan
6
Chucvu
Text
5 0
Chức vụ
7
Diaphuong
Text
50
Địa phương
8
Ghichu
Text
50
Ghi chú
Bảng 13: Nhân viên tin học
Nhân viên tin học
STT
Tên trường
Kiểu dữ liệu
Kích thước
Mô tả
1
MaNV
Text
5
Mã nhân viên
2
MaTH
Number
4
Mã tin học
3
MaCC
Number
4
Mã chứng chỉ
4
Loai
Text
15
Loại
5
Noicap
Text
30
Nơi cấp
6
Ngaycap
Date/time
8
Ngày cấp
Bảng 14: Nhân viên trình độ chuyên môn
Nhân viên trình độ chuyên môn
STT
Tên trường
Kiểu dữ liệu
Kích thước
Mô tả
1
MaNV
Text
5
Mã nhân viên
2
MaTDCM
Number
4
Mã trình độ chuyên môn
3
MaCC
Number
4
Mã chứng chỉ
4
Loai
Text
15
Loại
5
Noicap
Text
30
Nơi cấp
6
Ngaycap
Date/time
8
Ngày cấp
Relationships thiết kế trong access
3. Thiết kế các giải thuật
Trong công tác quản lý nhân sự trên máy tính, mỗi cơ quan đều có hướng quản lý tương đối giống nhau.Tuy nhiên trong các khâu xử lý, lưu trữ , tìm kiếm dữ liệu lại tuỳ thuộc vào từng doanh nghiệp lại hoàn toàn khác nhau. Để tìm kiếm dữ liệu ta có thể mở tập tin CSDL ra rồi nhập hoặc tìm kiếm trực tiếp, làm như thế công việc trên không đảm bảo trực quan và không thể áp dụng các câu lệnh đặc biệt, các phép toán phức tạp theo yêu cầu đặt ra như ta muốn nhập theo bảng ... Vì vậy để khắc phục tình trạng này ta nên viết riêng một chương trình.
Để viết chương trình được khả thi thì đòi hỏi trước tiên phải có thuật toán đúng, đủ và phải là phương pháp giải quyết bài toán nhanh nhất, tối ưu nhất.
Dưới đây là các thuật toán cơ bản của chương trình quản lý nhân sự:
Không
Begin
Bấm vào nút thêm
Nhập đầy đủ các thông tin
End
Mở form nhập
Có cập nhât không?
Kết thúc
Có
Không
Cập nhật
3.1 Sơ đồ thuật toán nhập dữ liệu
3.2 Thuật toán tìm kiếm
Begin
Mở form tìm kiếm
Có tồn tại
không?
Hiện đầy đủ dữ liệu thoả mãn
Lời thông báo không có dữ liệu thoả mãn
Kết thúc
End
Nhập điều kiện tìm
Có
Không
Bấm nút tìm kiếm
Không
Không
In
Mở báo cáo
Begin
Mở form báo cáo
Có báo cáo hay không
Có xem trước khi in không
Kết thúc
End
Nhập tiêu chuẩn báo cáo
Không
Có
Có
Không
3.3 Thuật toán lập báo cáo
Không
Begin
Bấm vào nút xoá
Nhập thông tin cần xoá
End
Mở form xoá
Có xoá
Không?
Kết thúc
Có
Không
Xoá
3.4 Thuật toán xoá
Một số giao diện của chương trình
Giao diện chính của chương trình
Thông tin nhân sự cơ bản
Thông tin chức vụ của nhân viên
Thông tin phòng ban của nhân viên
Thông tin lương của nhân viên
Thông tin chuyên môn của nhân viên
Thông tin ngoại ngữ của nhân viên
Thông tin về tin học của nhân viên
Các thông tin hệ thống
Thông tin phòng ban
Thông tin về chức vụ
Thông tin về các trình độ chuyên môn
Thông tin ngoại ngữ
Thông tin về tin học
Thông tin về các loại bằng cấp chứng chỉ
Các báo cáo
Kết Luận
Tin học hoá quản lý là quá trình áp dụng những thành tựu khoa học công nghệ thông tin vào các hoạt động quản lý, nhằm tự động hóa các bước của hoạt động quản lý với tốc độ cao và độ chính xác tối đa.
Trong thời gian thực tập và thiết kế chương trình, em đã tìm hiểu tổng quan về công tác quản lý nói chung và công tác quản lý nhân sự nói riêng. Đồng thời em còn nghiên cứu về ngôn ngữ Visual Basic thiết kế cơ sở dữ liệu bằng ACCESS.
Trong khuôn khổ của luận văn tốt nghiệp, em đã trình bày tổng quan về công tác quản lý nhân sự cho công ty đầu tư và phát triển phần mềm kế toán ASIA. Trên đây mới chỉ là mở đầu có tính khai phá, nên chương trình chắc chắn còn nhiều khiếm khuyết nhất định cần khắc phục và phát triển, đó là các vấn đề liên quan đến quản lý và xử lý ở nhiều doanh nghiệp khác nhau. Rất mong nhận được sự đóng góp của thầy cô và bạn bè.
Cuối cùng một lần nữa cho phép em bày tỏ lòng biết ơn sâu sắc tới thầy giáo Đoàn Quốc Tuấn đã tận tâm giúp đỡ em trong suốt thời gian qua, và các phòng ban trong công ty đầu tư và phát triển phần mềm kế toán ASIA đã giúp cho em hoàn thành đề tài này.
Danh mục tài liệu tham khảo
1. Nguyễn Thị Ngọc Mai
Microsoft Visual Basic 6.0 và lập trình cơ sở dữ liệu
NXB Giáo dục, 2000
2. Trương Văn Tú
Giáo trình phân tích và thiết kế hệ thống thông tin quản lý
NXB Thống kê, Hà Nội 2000
3. Lê tiến Vượng
Cơ sở dữ liệu quan hệ
Đại học bách khoa Hà Nội,1994
4. Trung tâm khoa học tự nhiên và công nghệ quốc gia
Phân tích và thiết kế tin học hệ thống quản lý nhân sự
NXB Giao thông vận tải, 1995
5. Phân tích, thiết kế và cài đặt hệ thống thông tin quản lý
Viện khoa học - Thành Phố Hồ Chí Minh
Phụ lục
Attribute VB_Name = "frmNhansu"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
Option Explicit
Public add As Boolean, res As Boolean, edi As Boolean, fin As Boolean
Public manv As String, ngay As Date, td As Byte, tong_bg As Long, bg_hientai As Long
Sub Vitri_bg()
tong_bg = Data1.Recordset.RecordCount
bg_hientai = Data1.Recordset.AbsolutePosition + 1
lbvt = "Bản ghi: " & bg_hientai & " / " & tong_bg
End Sub
Sub Op_td()
td = 0
If optd(0).Value = True Then td = 1
If optd(1).Value = True Then td = 2
If optd(2).Value = True Then td = 3
End Sub
Sub Dtcv_refresh()
sql = "select Macv,Tencv,Tungay from Dsnv_chucvu where Manv='" & manv & "' order by Tungay"
dtcv.RecordSource = sql
dtcv.Refresh
End Sub
Sub Dtpb_refresh()
sql = "select Mapb,Tenpb,Tungay from Dsnv_phongban where Manv='" & manv & "' order by Tungay"
dtpb.RecordSource = sql
dtpb.Refresh
End Sub
Sub Dtcc_refresh()
sql = "select Mapb,Tenpb,Tungay from Dsnv_phongban where Manv='" & manv & "' order by Tungay"
dtpb.RecordSource = sql
dtpb.Refresh
End Sub
'----------------- Cap nhat trinh do Ngoai ngu; Tin hoc; Chuyen mon ---------------------
Sub Trinhdo_refresh(n As Byte)
Call Crea_Cb(cb1, s_dbname, "DsChungchi", "Tencc", "", "Tencc")
Select Case n
Case 1 'Chuyen mon
sql = "select * from DsNv_Chuyenmon where Manv='" & manv & "' order by Ngaycap"
dttd.RecordSource = sql
dttd.Refresh
dttd.UpdateControls
Call Crea_Cb(cb0, s_dbname, "DsTrinhdocm", "Tentdcm", "", "Tentdcm")
If dttd.Recordset.RecordCount > 0 Then
cb0.DataField = "Ten"
cb1.DataField = "Tencc"
End If
lb(7).Caption = "Chuyên môn"
Case 2 'Ngoai ngu
sql = "select * from DsNv_Ngoaingu where Manv='" & manv & "' order by Ngaycap"
dttd.RecordSource = sql
dttd.Refresh
dttd.UpdateControls
Call Crea_Cb(cb0, s_dbname, "DsNgoaingu", "Tennn", "", "Tennn")
If dttd.Recordset.RecordCount > 0 Then
cb0.DataField = "Ten"
cb1.DataField = "Tencc"
End If
lb(7).Caption = "Ngoại ngữ"
Case 3 'Tin học
sql = "select * from DsNv_Tinhoc where Manv='" & manv & "' order by Ngaycap"
dttd.RecordSource = sql
dttd.Refresh
dttd.UpdateControls
Call Crea_Cb(cb0, s_dbname, "DsTinhoc", "Tenth", "", "Tenth")
If dttd.Recordset.RecordCount > 0 Then
cb0.DataField = "Ten"
cb1.DataField = "Tencc"
End If
lb(7).Caption = "Tin học"
End Select
If dttd.Recordset.RecordCount > 0 Then dttd.Recordset.MoveLast
frtd.Caption = "Nhân sự: " & lbtennv
End Sub
Sub Luong_refresh()
Dim r As Recordset
'cbbl.Text = 0
txt1(14) = 0
txt1(15) = 0
txt1(16) = 0
lbam = 0
sql = "select * from Dsnv_luong where manv='" & manv & "'"
Set r = db.OpenRecordset(sql, 2)
With r
If .RecordCount > 0 Then
If IsNull(!bacluong) = False Then cbbl.Text = CStr(!bacluong)
If IsNull(!heso_lcb) = False Then txt1(14) = F_num(!heso_lcb)
If IsNull(!heso_ct) = False Then txt1(15) = F_num(!heso_ct)
If IsNull(!heso_pc) = False Then txt1(16) = F_num(!heso_pc)
If IsNull(!thunhap) = False Then lbam = F_num(!thunhap)
If IsNull(!ngayqd) = False Then dpngayqdl = !ngayqd
End If
r.Close
End With
End Sub
'---------- Cap nhat Qua trinh cong tac ----------------
Sub Qtct_refresh()
sql = "select * from Nv_qtct where manv='" & manv & "' order by Tungay, Denngay"
dtqtct.RecordSource = sql
dtqtct.Refresh
'If dtqtct.Recordset.RecordCount > 0 Then dtqtct.Recordset.MoveLast
dtqtct.UpdateControls
frqtct.Caption = "Nhân sự: " & lbtennv
End Sub
Sub Tinh_tong_luong()
Dim am As Single
am = CSng(txt1(14)) * CSng(lbmlcb) + CSng(txt1(15)) * CSng(lbmlk) + CSng(txt1(16)) * CSng(lbmpc)
lbam = F_num(am)
End Sub
'======================================================
Private Sub cbbl_Click()
If cbbl.Text "" Then
sql = "select * from Dsluong where Bacluong=" & CSng(cbbl) & " "
Set rs = db.OpenRecordset(sql, 2)
With rs
If .RecordCount > 0 Then
lbmlcb = F_num(!Muclcb)
lbmlk = F_num(!Muclct)
lbmpc = F_num(!Mucpc)
End If
.Close
End With
Call Tinh_tong_luong
End If
End Sub
Private Sub chgt_Click()
chgt.Caption = "(Nam)"
If chgt = 0 Then chgt.Caption = "(Nữ)"
End Sub
Private Sub chtt_GotFocus()
If add Then chtt.Value = 1
End Sub
Private Sub chtt_LostFocus()
If cmdluu.Enabled = True Then cmdluu.SetFocus
End Sub
Private Sub cmd41_Click()
Call Trinhdo_refresh(td)
End Sub
'------------- Cap nhat Trinh do -------------------
Private Sub cmd42_Click()
Dim ma As Long, macc As Long
macc = Get_Ma("DsChungchi", "Tencc", cb1.Text, "Macc")
Select Case td
Case 1 ' Chuyên môn
If MsgBox("Cập nhật thông tin về Trình độ Chuyên môn của nhân sự " & vbCrLf & lbtennv & " ?", vbOKCancel + 32, "Khẳng định") = vbCancel Then Exit Sub
ma = Get_Ma("DsTrinhdocm", "Tentdcm", cb0.Text, "Matdcm")
sql = "select * from Nv_Trinhdocm where manv='" & manv & "' and Matdcm=" & ma & ""
Set rs = db.OpenRecordset(sql, 2)
With rs
If .RecordCount > 0 Then
sql = "update Nv_Trinhdocm set Macc=" & macc & " ,Loai='" & t4(1) & "',Noicap='" & t4(0) & "',Ngaycap=#" & dp4 & "#"
sql = sql & " where manv='" & manv & "' and Matdcm=" & ma & ""
Else
sql = "insert into Nv_Trinhdocm values ('" & manv & "'," & ma & "," & macc & ",'" & t4(1) & "','" & t4(0) & "',#" & dp4 & "#)"
End If
.Close
End With
db.Execute sql
Case 2 ' Ngoai ngu
If MsgBox("Cập nhật thông tin về Trình độ Ngoại ngữ của nhân sự " & vbCrLf & lbtennv & " ?", vbOKCancel + 32, "Khẳng định") = vbCancel Then Exit Sub
ma = Get_Ma("Dsngoaingu", "Tennn", cb0.Text, "Mann")
sql = "select * from Nv_Ngoaingu where manv='" & manv & "' and Mann=" & ma & ""
Set rs = db.OpenRecordset(sql, 2)
With rs
If .RecordCount > 0 Then
sql = "update Nv_Ngoaingu set Macc=" & macc & " ,Loai='" & t4(1) & "',Noicap='" & t4(0) & "',Ngaycap=#" & dp4 & "#"
sql = sql & " where manv='" & manv & "' and Mann=" & ma & ""
Else
sql = "insert into Nv_Ngoaingu values ('" & manv & "'," & ma & "," & macc & ",'" & t4(1) & "','" & t4(0) & "',#" & dp4 & "#)"
End If
.Close
End With
db.Execute sql
Case 3 ' Tin học
If MsgBox("Cập nhật thông tin về Trình độ Tin học của nhân sự " & vbCrLf & lbtennv & " ?", vbOKCancel + 32, "Khẳng định") = vbCancel Then Exit Sub
ma = Get_Ma("DsTinhoc", "Tenth", cb0.Text, "Math")
sql = "select * from Nv_Tinhoc where manv='" & manv & "' and Math=" & ma & ""
Set rs = db.OpenRecordset(sql, 2)
With rs
If .RecordCount > 0 Then
sql = "update Nv_Tinhoc set Macc=" & macc & " ,Loai='" & t4(1) & "',Noicap='" & t4(0) & "',Ngaycap=#" & dp4 & "#"
sql = sql & " where manv='" & manv & "' and Math=" & ma & ""
Else
sql = "insert into Nv_Tinhoc values ('" & manv & "'," & ma & "," & macc & ",'" & t4(1) & "','" & t4(0) & "',#" & dp4 & "#)"
End If
.Close
End With
db.Execute sql
End Select
Call Trinhdo_refresh(td)
End Sub
'----------- Xoá Trình độ --------------
Private Sub cmd43_Click()
Dim ma As Long
Select Case td
Case 1 'Chuyen mon
If MsgBox("Xoá Trình độ Chuyên môn " & cb0 & " ?", vbOKCancel + 32, "Thông báo") = vbCancel Then Exit Sub
ma = Get_Ma("DsTrinhdocm", "Tentdcm", cb0.Text, "Matdcm")
sql = "delete * from Nv_Trinhdocm where manv='" & manv & "' and matdcm=" & ma & ""
db.Execute sql
Case 2 'Ngoai ngu
If MsgBox("Xoá Trình độ Ngoại ngữ " & cb0 & " ?", vbOKCancel + 32, "Thông báo") = vbCancel Then Exit Sub
ma = Get_Ma("Dsngoaingu", "Tennn", cb0.Text, "Mann")
sql = "delete * from Nv_Ngoaingu where manv='" & manv & "' and mann=" & ma & ""
db.Execute sql
Case 3 'Tin hoc
If MsgBox("Xoá Trình độ Tin học " & cb0 & " ?", vbOKCancel + 32, "Thông báo") = vbCancel Then Exit Sub
ma = Get_Ma("DsTinhoc", "Tenth", cb0.Text, "Math")
sql = "delete * from Nv_Tinhoc where manv='" & manv & "' and math=" & ma & ""
db.Execute sql
End Select
Call Trinhdo_refresh(td)
End Sub
Private Sub cmd51_Click()
If MsgBox("Cập nhật thông tin về Quá trình công tác của nhân sự " & lbtennv & " ?", vbOKCancel + 32, "Khẳng định") = vbCancel Then Exit Sub
sql = "select * from Nv_Qtct where manv='" & manv & "' and Tungay=#" & dp5(0) & "# "
Set rs = db.OpenRecordset(sql, 2)
With rs
If .RecordCount > 0 Then
sql = "update Nv_Qtct set Denngay=#" & dp5(1) & "# ,Congviec='" & t5(4) & "',Coquan='" & t5(0) & "',Chucvu='" & t5(1) & "',Diaphuong='" & t5(2) & "',Ghichu='" & t5(3) & "'"
sql = sql & " where manv='" & manv & "' and Tungay=#" & dp5(0) & "# "
Else
sql = "insert into Nv_Qtct values ('" & manv & "',#" & dp5(0) & "#,#" & dp5(1) & "#,'" & t5(4) & "','" & t5(0) & "','" & t5(1) & "','" & t5(2) & "','" & t5(3) & "')"
End If
.Close
End With
db.Execute sql
Call Qtct_refresh
dp5(0).SetFocus
End Sub
Private Sub cmd52_Click()
Call Qtct_refresh
End Sub
Private Sub cmd53_Click()
If MsgBox("Xoá Quá trình công tác từ ngày " & dp5(0) & " đến ngày " & dp5(1) & " ?", vbOKCancel + 32, "Thông báo") = vbCancel Then Exit Sub
sql = "delete * from Nv_qtct where manv='" & manv & "' and Tungay=#" & dp5(0) & "# "
db.Execute sql
Call Qtct_refresh
End Sub
Private Sub cmdbo_Click()
Tab1.Tab = 0
txt1(0) = ""
cmdluu.Enabled = False
cmdthem.Enabled = True
cmdbo.Enabled = False
cmddong.Enabled = True
cmdtim.Enabled = True
If edi Then Data1.Recordset.CancelUpdate
Data1.Enabled = True
add = False
edi = False
fin = False
fr0.Enabled = False
Tab1.Tab = 0
cmdthem.SetFocus
txtmanv.Locked = True
End Sub
Private Sub cmdbotcv_Click()
If gdnv_cv.Text = "" Then Exit Sub
gdnv_cv.Col = 0
If MsgBox("Xoá Chức vụ: " & gdnv_cv.Text & " của nhân sự ?", vbOKCancel + 32, "Khẳng định") = vbCancel Then Exit Sub
Dim mcv As Long
mcv = Get_Macv(gdnv_cv.Text)
sql = "delete * from Nv_cv where Manv='" & manv & "' and Macv=" & mcv & ""
db.Execute sql
Call Dtcv_refresh
End Sub
Private Sub cmdbotpb_Click()
If gdnv_pb.Text = "" Then Exit Sub
gdnv_pb.Col = 0
If MsgBox("Xoá phòng ban: " & gdnv_pb.Text & " của nhân sự ?", vbOKCancel + 32, "Khẳng định") = vbCancel Then Exit Sub
Dim mpb As Long
mpb = Get_Mapb(gdnv_pb.Text)
sql = "delete * from Nv_phongban where Manv='" & manv & "' and Mapb=" & mpb & ""
db.Execute sql
Call Dtpb_refresh
End Sub
Private Sub cmddong_Click()
Unload Me
End Sub
Private Sub cmdl2_Click()
If MsgBox("Cập nhật thông tin về Lơng của nhân sự " & lbtennv & " ?", vbOKCancel + 32, "Khẳng định") = vbCancel Then Exit Sub
Dim bl As Single, hslcb As Single, hslct As Single, hspc As Single
bl = CSng(cbbl)
hslcb = CSng(txt1(14))
hslct = CSng(txt1(15))
hspc = CSng(txt1(16))
sql = "select * from Nv_luong where manv='" & manv & "'"
Set rs = db.OpenRecordset(sql, 2)
With rs
If .RecordCount > 0 Then
sql = "update Nv_luong set Bacluong=" & bl & ",Heso_lcb=" & hslcb & ",Heso_ct=" & hslct & ",Heso_pc=" & hspc & ",Ngayqd=#" & dpngayqdl & "#"
sql = sql & " where manv='" & manv & "'"
Else
sql = "insert into Nv_Luong values ('" & manv & "'," & bl & "," & hslcb & "," & hslct & "," & hspc & ",#" & dpngayqdl & "#)"
End If
.Close
End With
db.Execute sql
Call Luong_refresh
End Sub
Private Sub cmdl3_Click()
Call Luong_refresh
End Sub
Private Sub cmdluu_Click()
Tab1.Tab = 0
Data1.ReadOnly = False
If add Then
Call GetFd_val("DsNhanvien", "Tennv", txt1(1), res)
If res Then
MsgBox "Tên Nhân viên đã tồn tại. Hãy kiểm tra lại!", 0 + 48, "Thông báo"
Call S_key(txt1(1))
Exit Sub
End If
End If
'-------------------------------
If edi Then
If Data1.Recordset.BOF = False Then Data1.Recordset.MovePrevious
Data1.Recordset.MoveNext
GoTo Ex
End If
'----- Ghi du lieu -----------
Dim gt As Boolean, tt As Boolean
If chgt.Value = 0 Then gt = False Else gt = True
If chtt.Value = 0 Then tt = False Else tt = True
txt1(0) = txtmanv
Data1.UpdateRecord
If add Then Data1.Recordset.MoveLast
GoTo Ex
'--------------
Ex:
cmdluu.Enabled = False
cmdthem.Enabled = True
cmdbo.Enabled = False
cmddong.Enabled = True
cmdsua.Enabled = True
cmdxoa.Enabled = True
cmdtim.Enabled = True
Data1.Enabled = True
add = False
edi = False
fin = False
fr0.Enabled = False
Tab1.Tab = 0
cmdthem.SetFocus
Exit Sub
End Sub
Private Sub cmdsua_Click()
Tab1.Tab = 0
cmdluu.Enabled = True
cmdbo.Enabled = True
cmdsua.Enabled = False
cmdthem.Enabled = False
cmdxoa.Enabled = False
cmdtim.Enabled = False
cmddong.Enabled = False
fr0.Enabled = True
edi = True
add = False
fin = False
Data1.Recordset.Edit
Data1.Enabled = False
txtmanv.Locked = True
Call S_key(txttennv)
End Sub
Private Sub cmdthem_Click()
Tab1.Tab = 0
fr0.Enabled = True
Dim n As Long
n = Getlast_id("DsNhanvien", "Manv")
txtmanv = them0(5, n + 1)
txtmanv.Locked = True
'Call S_key(txt1(1))
cmdthem.Enabled = False
add = True
edi = False
fin = False
cmdtim.Enabled = False
cmdluu.Enabled = True
cmdbo.Enabled = True
cmdsua.Enabled = False
cmdthem.Enabled = False
cmdxoa.Enabled = False
cmddong.Enabled = False
Data1.Recordset.AddNew
Data1.Enabled = False
txttennv.SetFocus
End Sub
Private Sub cmdthemcv_Click()
If ltcv.Text "" Then
Dim mcv As Long, r As Recordset, them As Boolean
mcv = Get_Macv(ltcv.Text)
ngay = dpngay
them = False
sql = "select * from Nv_Cv where Manv='" & manv & "' order by Macv"
Set r = db.OpenRecordset(sql, 2)
With r
If .RecordCount <= 0 Then
them = True
Else
.FindFirst "Manv='" & manv & "' and Macv=" & mcv & ""
If .NoMatch Then them = True
End If
.Close
End With
If them Then
sql = "insert into Nv_Cv values ('" & manv & "'," & mcv & ",#" & ngay & "#)"
db.Execute sql
Call Dtcv_refresh
End If
End If
End Sub
Private Sub cmdthempb_Click()
If ltpb.Text "" Then
Dim mpb As Long, r As Recordset, them As Boolean, ngaypb As Date
mpb = Get_Mapb(ltpb.Text)
ngaypb = dpngaypb
them = False
sql = "select * from Nv_phongban where Manv='" & manv & "' order by Mapb"
Set r = db.OpenRecordset(sql, 2)
With r
If .RecordCount <= 0 Then
them = True
Else
.FindFirst "Manv='" & manv & "' and Mapb=" & mpb & ""
If .NoMatch Then them = True
End If
.Close
End With
If them Then
sql = "insert into Nv_phongban values ('" & manv & "'," & mpb & ",#" & ngaypb & "#)"
db.Execute sql
Call Dtpb_refresh
End If
End If
End Sub
Private Sub cmdtim_Click()
Tab1.Tab = 0
fr0.Enabled = True
txtmanv.Locked = False
Call S_key(txtmanv)
cmdtim.Enabled = False
cmdluu.Enabled = False
cmdbo.Enabled = True
cmdsua.Enabled = False
cmdthem.Enabled = False
cmdxoa.Enabled = False
cmddong.Enabled = False
fr0.Enabled = True
edi = False
add = False
fin = True
Data1.Enabled = False
Data1.ReadOnly = True
End Sub
Private Sub cmdxoa_Click()
Tab1.Tab = 0
If MsgBox("Bạn thật sự muốn xoá Nhân sự: " & txt1(1) & " ?", vbOKCancel + 16, "Khẳng định") = vbCancel Then Exit Sub
sql = "update DsNhanvien set Tinhtrang=false where Manv='" & txtmanv & "'"
db.Execute sql
Data1.Refresh
End Sub
Private Sub cmdxoacv_Click()
If MsgBox("Xoá bỏ hết các Chức vụ của nhân sự " & lbtennv & " ?", vbOKCancel + 32, "Khẳng định") = vbCancel Then Exit Sub
sql = "delete * from Nv_cv where Manv='" & manv & "'"
db.Execute sql
Call Dtcv_refresh
End Sub
Private Sub cmdxoapb_Click()
If MsgBox("Xoá bỏ hết các Phòng ban của nhân sự " & lbtennv & " ?", vbOKCancel + 32, "Khẳng định") = vbCancel Then Exit Sub
sql = "delete * from Nv_phongban where Manv='" & manv & "'"
db.Execute sql
Call Dtpb_refresh
End Sub
Private Sub Data1_Reposition()
If IsNull(Data1.Recordset.Fields(0)) = False Then
manv = Data1.Recordset.Fields(0)
Select Case Tab1.Tab
Case 1
Call Dtcv_refresh
Call Dtpb_refresh
Case 2
Call Luong_refresh
Call cbbl_Click
Case 3
Call Op_td
Call Trinhdo_refresh(td)
Case 4
Call Qtct_refresh
End Select
Call Vitri_bg
End If
End Sub
Private Sub Data1_Validate(Action As Integer, Save As Integer)
'' Call Vitri_bg
'Select Case Action
'' Case 1: MsgBox "<<"
'' Case 2: MsgBox "<"
'' Case 3: MsgBox ">"
'' Case 4: MsgBox ">>"
' 'Case 1, 2, 3, 4: MsgBox Data1.Recordset.Fields(0)
'End Select
End Sub
Private Sub dtcv_Validate(Action As Integer, Save As Integer)
End Sub
Private Sub Form_Load()
dtcv.DatabaseName = s_dbname
dtpb.DatabaseName = s_dbname
dtqtct.DatabaseName = s_dbname
dttd.DatabaseName = s_dbname
Data1.DatabaseName = s_dbname
sql = "select * from Dsnhanvien where Tinhtrang=true order by Manv "
Data1.RecordSource = sql
Data1.Refresh
txtmanv = txt1(0)
Tab1.Tab = mnu_ns
Call Vitri_bg
Call Dtcv_refresh
Call Crea_List(ltcv, s_dbname, "Dschucvu", "Tencv", "", "Macv")
Call Crea_List(ltpb, s_dbname, "DsPhongban", "Tenpb", "", "Mapb")
Call Crea_Cb(cbbl, s_dbname, "Dsluong", "Bacluong", "", "Bacluong")
ngay = Date
dpngay = ngay
dpngaypb = ngay
Call Dtpb_refresh
Call Luong_refresh
Call Qtct_refresh
Call Trinhdo_refresh(2)
add = False
edi = False
fin = False
End Sub
Private Sub lbtennv_Click()
Me.lbtennv.Caption = "tên nhân viên"
End Sub
Private Sub ltcv_DblClick()
Call cmdthemcv_Click
End Sub
Private Sub ltpb_DblClick()
Call cmdthempb_Click
End Sub
Private Sub optd_Click(Index As Integer)
Select Case Index
Case 0: If optd(0).Value = True Then td = 1
Case 1: If optd(1).Value = True Then td = 2
Case 2: If optd(2).Value = True Then td = 3
End Select
Call Trinhdo_refresh(td)
End Sub
Private Sub t4_GotFocus(Index As Integer)
Call S_key1(t4(Index))
End Sub
Private Sub t5_GotFocus(Index As Integer)
Call S_key1(t5(Index))
End Sub
Private Sub Tab1_Click(PreviousTab As Integer)
Call Data1_Reposition
End Sub
Private Sub txt1_Change(Index As Integer)
Select Case Index
Case 0:
If txt1(0) "" Then
txtmanv = txt1(0)
manv = txt1(0)
End If
Case 1:
lbtennv = txt1(1)
txttennv = txt1(1)
If txt1(0) = "" Then lbtennv = "(Noname)"
End Select
End Sub
Private Sub txt1_GotFocus(Index As Integer)
Call S_key1(txt1(Index))
End Sub
Private Sub txt1_KeyDown(Index As Integer, KeyCode As Integer, Shift As Integer)
'If KeyCode = 13 Then
' Select Case Index
' 'Case 0: If txt1(0) "" Then txtmanv = txt1(0)
' 'Case 1:
' End Select
'End If
End Sub
Private Sub txt1_LostFocus(Index As Integer)
Select Case Index
Case 14, 15, 16: Call Tinh_tong_luong
End Select
End Sub
Private Sub txtmanv_KeyDown(KeyCode As Integer, Shift As Integer)
If KeyCode = 13 Then
If txtmanv "" And fin Then
With Data1.Recordset
.FindFirst "Manv='" & txtmanv & "'"
If .NoMatch Then
MsgBox "Nhân viên có mã: " & txtmanv & " không tồn tại !", 0 + 48, "Thông báo"
cmdsua.Enabled = False
Call S_key(txtmanv)
Exit Sub
Else
Call S_key(txtmanv)
cmdsua.Enabled = True
'MsgBox Data1.Recordset.AbsolutePosition
End If
End With
End If
End If
End Sub
Private Sub txttennv_Change()
If edi Or add Then txt1(1) = txttennv
End Sub
Private Sub txttennv_GotFocus()
Call S_key1(txttennv)
End Sub
Private Sub txttennv_KeyDown(KeyCode As Integer, Shift As Integer)
If KeyCode = 13 Then
If add Then Call GetFd_val("DsNhanvien", "Tennv", txt1(1), res)
If res Then
MsgBox "Tên Nhân viên đã tồn tại. Hãy kiểm tra lại!", 0 + 48, "Thông báo"
Call S_key(txt1(1))
Exit Sub
End If
'----------------------------
If fin Then
If txttennv "" Then
With Data1.Recordset
.FindFirst "Tennv='" & txttennv & "'"
If .NoMatch Then
MsgBox "Nhân viên có tên: " & txttennv & " không tồn tại !", 0 + 48, "Thông báo"
cmdsua.Enabled = False
Call S_key(txttennv)
Exit Sub
Else
Call S_key(txttennv)
txtmanv = .Fields("Manv")
cmdsua.Enabled = True
End If
End With
End If
End If
'----------------------------
End If
End Sub
Mục Lục
Lời Nói Đầu .....................................................................1
Chương I: Giới thiệu đơn vị thực tập và đề tài nghiên cứu.................................................................................3
I. Giới thiệu tóm tắt công ty phần mềm kế toán ASIA
II. Chức năng nhiệm vụ của công ty......................4
1. Chức năng..................................................................................4
2. Nhiệm vụ.................................................................................. 4
III. Chức năng nhiệm vụ các phòng ban.................. 5
1. Ban lãnh đạo............................................................................. 5
2. Phòng tổ chức........................................................................... 5
3. Phòng kĩ thuật............................................................................6
4. Phòng kế toán............................................................................6
5. Phòng kinh doanh......................................................................6
6. Phòng thương mại và tiếp thị.....................................................6
7. Phòng triển khai dự án...............................................................6
8. Phòng bảo hành.........................................................................6
IV. Sự cần thiết phải xây dựng hệ thống thông tin quản lý nhân sự........................................................7
Chương II: Phương pháp luận phân tích và thiết kế hệ thống thông tin quản lý nhân sự...................9
I. Hệ thống thông tin ....................................................9
1. Sơ đồ hệ thống thông tin...........................................................9
2. Sơ đồ hệ thống thông tin phục vụ quản lý................................10
3. Mô hình biểu diễn hệ thống thông tin................................11
4. Cơ sở dữ liệu............................................................... 12
4.1 Hệ thống quản lý dữ liệu....................................................12
4.2 mô hình dữ liệu....................................................................... 13
5. Các giai đoạn của việc phát triển một hệ thống thông tin....... 14
5.1 Đánh giá yêu cầu
5.2 Phân tích chi tiết
5.3 Thiết kế logic..............................................................
5.4 Đề xuất các phương án của giải pháp
5.5 Thiết kế vật lý ngoài...............................................
5.6 Triển khai kĩ thuật hệ thống
5.7 Cài đặt và khai thác
II hệ thống thông tin quản lý nhân lực
1. Cập nhật dữ liệu................................................................26
2. Xử lý dữ liệu..............................................................27
3. Sao lưu dữ liệu..........................................................27
4. Các loại báo cáo........................................................27
Chương III: Phân tích và thiết kế hệ thống thông tin quản lý nhân sự .......................................28
I. Phân tích và thu thập dữ liệu...................28
1. Tìm hiểu tình hình thực tế và yêu cầu quản lý tại công ty1.1 Phân tích tình hình thực tế tại công ty...............................28
1.2 Yêu cầu của hệ thống...................................................29
2. Các thông tin đầu vào................................... 29
2.1 Thông tin cập nhật hồ sơ nhân sự ban đầu
2.2 Thông tin phục vụ cập nhật và bổ xung dữ liệu
3. Thông tin đầu ra..................................................30
II. Thiết kế logic
1. Sơ đồ IFD và DFD của hệ thống
2. Thiết kế cơ sở dữ liệu bằng phương pháp mô hình hoá
2.1. Khái niệm cơ bản
2.2. Thực thể mối quan hệ các thực thể và chuyển đổi thực thể khái quát
III. Thiết kế vật lý ngoà
1. Thiết kế vào -ra
1.1. Thiết kế ra
1.2. Thiết kế vào
2. Thiết kế khuôn dạng màn hình
IV. Triển khai hệ thống
1. Lựa chọn công cụ phát triển hệ thống
2 Thiết kế vật lý trong
2.1. Liệt kê các chức năng của hệ thống
2.2. Sơ đồ BFD của hệ thống quản lý nhân sự
2.3. Thiết kế cơ sở dữ liệu vật lý trongquản lý nhân sự
3. Thiết kế các giải thuật...................................................
3.1. Sơ đồ thuật toán nhập dữ liệu.
3.2. Sơ đồ thuật toán tìm kiếm
3.3. Sơ đồ thuật toán lập báo cáo
3.4. Sơ đồ thuật toán xoá.............................
Sơ đồ cấu trúc chương trình
Một số giao diện của chương trình
Kết luận
Danh mục tài liệu tham khảo
Phụ lục
Các file đính kèm theo tài liệu này:
- P0030.doc