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

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.

doc108 trang | Chia sẻ: oanh_nt | Lượt xem: 1337 | Lượt tải: 0download
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:

  • docP0030.doc