Chuyên đề Xây dựng hệ thống thông tin quản lý nhân sự tại công ty TNHH Dịch vụ thương mại Trần Vũ Gia

Điều chỉnh hồ sơ nhân viên WHO: Nhân viên nghiệp vụ phòng nhân sự, trưởng phòng nhân sự WHEN: khi có thông tin về nhân viên cần thay đổi INPUT: Thông tin cần thay đổi OUTPUT: file Nhanvien OPEN file Nhanvien DO WHILE còn nhân viên cần thay đổi thông tin INPUT nhân viên cần tìm FIND record nhân viên cần thay đổi thông tin IF FOUND () READ record nhân viên cần thay đổi thông tin INPUT record Nhanvien WRITE record nhân viên vào file Nhanvien ELSE WRITE “Không tìm thấy nhân viên. Xin nhập lại nhân viên khác ” ENDIF ENDDO

doc100 trang | Chia sẻ: oanh_nt | Lượt xem: 1701 | Lượt tải: 1download
Bạn đang xem trước 20 trang tài liệu Chuyên đề Xây dựng hệ thống thông tin quản lý nhân sự tại công ty TNHH Dịch vụ thương mại Trần Vũ Gia, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
s, Visual Basic cung cấp cho bạn một tập hợp các công cụ hoàn chỉnh để nhanh chóng phát triển các ứng dụng. Vậy Visual Basic là gì? Thành phần “Visual” nói đến các phương thức dùng để tạo giao diện đồ hoạ người sử dụng. Thay vì viết những dòng mã để mô tả sự xuất hiện và vị trí của những thành phần giao diện, ta chỉ cần thêm vào những đối tượng đã được định nghĩa trước ở vị trí nào đó trên màn hình. Cấu trúc của một ứng dụng Visual Basic Một ứng dụng thật ra là một tập hợp các chỉ dẫn trực tiếp đến máy tính để thi hành một hay nhiều tác vụ. Cấu trúc của một ứng dụng là phương pháp trong đó các chỉ dẫn được tổ chức, đó là nơi chỉ dẫn được lưu trữ và thi hành những chỉ dẫn trong một trình tự nhất định. Một ứng dụng Visual Basic, trên cơ sở là những đối tượng, cấu trúc mã đóng tượng trưng cho những mô hình vật lý trên màn hình là tượng trưng cho những thuộc tính, quy định cách xuất hiện và cách cư xử. Mỗi Form ứng dụng có một quan hệ module Form dùng để chứa đựng mã của nó. Mỗi module chứa những thủ tục sự kiện - những đoạn mã, nơi đặt những chỉ dẫn, cái sẽ được thi hành trong việc đáp ứng những sự kiện chỉ định. Form có thể tổ chứa những điều khiển. Tương ứng với mỗi điều khiển trên Form có một tập hợp những thủ tục sự kiện trong module Form đó. Mã không chỉ quan hệ với một Form chỉ định hay điều khiển có thể được đặt trong một loại module khác. Một thủ tục được dùng để đáp ứng những sự kiện trong những đối tượng khác nhau phải được đặt trong cùng một chuẩn, thay vì tạo những bản sao mà trong những thủ tục sự kiện cho mỗi đối tượng. Một lớp module được dùng để tạo những đối tượng, cái mà có thể được gọi từ những thủ tục bên trong ứng dụng của bạn. Trong khi một module chuẩn chỉ chứa mã, một lớp module chứa đựng cả mã và dữ liệu. Ta có thể nghĩ nó như một điều khiển. Những khả năng của Visual Basic - Tạo giao diện người dùng Giao diện người sử dụng có lẽ là thành phần quan trọng nhất của một ứng dụng. Đối với người sử dụng, giao diện chính là ứng dụng, họ không cần chú ý đến thành phần mã thực thi bên dưới. Ứng dụng của chúng ta có thể phổ biến được hay không phụ thuộc vào giao diện. - Sử dụng điều khiển Visual Basic Ta dùng những điều khiển để lấy thông tin mà người sử dụng nhập vào, và để hiển thị kết xuất. Những điều khiển mà ta có thể dung trong ứng dụng bao gồm hộp văn bản, nút lệnh, và hộp danh sách…Những điều khiển cho ta truy xuất những ứng dụng khác, xử lý dữ liệu của nó như là một thành phần mã trong ứng dụng của bạn. - Lập trình với những đối tượng Những đối tượng là thành phần chủ yếu để lập trình Visual Basic. Những đối tượng có thể là form, những điều khiển hay cơ sở dữ liệu. - Lập trình với phần hợp thành Chúng ta đôi khi cần sử dụng khả năng tính toán Mirosoft Excel trong ứng dụng Visual Basic, hay định dạng một tài liệu sử dụng thanh công cụ định dạng của Microsoft Word, hoặc lưu trữ và xử lý dữ liệu dung Microsoft Jet…Tất cả những điều này có thể thực hiện được bằng cách xây dựng của chúng ta sử dụng những thành phần ActiveX. Thêm vào đó Visual Basic có thể giúp chúng ta tạo ra những điều khiển ActiveX riêng. - Làm việc với văn bản đồ hoạ Visual Basic cung cấp khả năng đồ hoạ và văn bản phức tạp trong ứng dụng. Những thuộc tính văn bản có thể giúp ta nhấn mạnh các khái niệm quan trọng và các chi tiết cần quan tâm. Thêm vào đó, Visual Basic cung cấp khả năng đồ hoạ cho phép ta sinh đông trong thiết kế, bao hàm các hình ảnh động bằng cách hiển thị một loạt các hình ảnh liên tiếp nhau. - Gỡ rối mã và quản lý lỗi Đôi khi có những lỗi xảy ra bên trong mã của ứng dụng. Những lỗi nghiêm trọng có thể là nguyên nhân một ứng dụng không đáp ứng lệnh, thông thường yêu cầu người sử dụng khởi động lại ứng dụng, và không lưu lại những gì ta đã làm. Quá trình tìm ra và sửa lỗi gọi là gỡ rối. Visual Basic cung cấp nhiều công cụ giúp chúng ta phân tích ứng dụng làm việc như thế nào. Những công cụ gỡ rối đặc biệt hữu ích trong việc tìm ra nguồn gốc lỗi, nhưng chúng ta cũng có thể dùng công cụ này để kiểm tra chương trình hoặc tìm hiểu những ứng dụng khác nhau làm như thế nào. - Xử lý ổ đĩa, thư mục và file Khi lập trình trong Windows, có khả năng thêm, di chuyển, tạo mới hoặc những thư mục và file, lấy thông tin về và xử lý ổ đĩa. Visual Basic cho phép chúng ta xử lý ổ đĩa, thư mục và file bằng hai phương pháp, qua những phương thức cũ như là điều lệnh Open, Write, qua một tập hợp các công cụ mới như FSO (File System Object). - Thiết kế cho việc thi hành và tính tương thích Visual Basic chia sẻ hầu hết những tính năng ngôn ngữ trong Visual Basic cho những ứng dụng, bao gồm trong Microsoft Office và những ứng dụng khác. Visual Basic, VBScript, một ngôn ngữ script Internet đều là tập hợp con của ngôn ngữ Visual Basic. - Phân phối những ứng dụng Sau khi tạo một ứng dụng Visual Basic, ta có thể tự do phân phối bất ký ứng dụng nào đã tạo bằng Visual Basic đến bất cứ ai dung Microsoft Windows. Ta có thể phân phối ứng dụng trên đĩa, trên CD, qua mạng, trên Intranet hoặc Internet Thiết kế giao diện - Form Form là biểu mẫu của mỗi ứng dụng trong Visual Basic. Ta dùng Form nhằm định vị và sắp xếp các bộ phận trên nó khi thiết kế các phần giao tiếp với người dùng. - Ta có thể xem Form như là bộ phận mà nó có thể chứa bộ phận khác, Form chính của ứng dụng, các thành phần của nó tương tác với các Form khác, các bộ phận của chúng tạo nên giao tiếp cho ứng dụng. Form chính là giao diện chính của ứng dụng, các Form khác có thể chứa các hộp thoại, hiển thị cho nhập dữ liệu và hơn thế nữa. Trong những ứng dụng Visual Basic, kích cỡ và vị trí của biểu mẫu vào lúc hoàn tất thiết kế là kích cỡ và hình dáng mà người dùng sẽ gặp vào thời gian thực hiện, hoặc lúc chạy. Điều này có nghĩa là Visual Basic cho phép ta thay đổi kích cỡ và di chuyển vị trí của các Form đến bất kỳ nơi nào trên màn hình khi chạy một đề án. bằng cách thay đổi các thuộc tính của nó trong cửa sổ thuộc tính đối tượng. Thực tế, một trong những tính năng thiết yếu của Visual Basic đó là khả năng tiến hành các thay đổi động để đáp ứng các sự kiên của người dụng. - Option Button Control Đối tượng nút chọn cho phép người dùng chọn một trong những lựa chọn đưa ra. Như vậy, tại một thời điểm chỉ có một trong các nút chọn được chọn. - Check Box Đối tượng nhãn cho phéo người dùng gán nhãn một bộ phận nào đó của giao diện trong lúc thiết kế giao diện cho chương trình ứng dụng. Dùng các nhãn để hiển thị thông tin không muốn người dùng thay đổi. Các nhãn thường được dung để định danh một hộp văn bản hoặc một điều khiển khác bằng cách mô tả nội dung của nó. Một công cụ phổ biến nhất là hiển thị thông tin trợ giúp. - Text Box Đối tượng Text Box cho phép đưa các chuỗi ký tự vào Form. Thuộc tính quan trọng nhất của Text Box là thuộc tính Text- cho biết nộI dung Text Box. CHƯƠNG III PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG THÔNG TIN QUẢN LÝ NHÂN SỰ I. PHÂN TÍCH HỆ THỐNG 1. 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ó tính ứng dụng thực tế cao và có tính khả thi, đáp ứng được nhu cầu đặt ra trong thời kỳ mới, phải thuận tiện, an toàn, bảo mật và đạt hiệu quả cao. Để thực hiện được điều đó thì hệ thống phải làm được những việc sau: + Cập nhật thông tin về 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 và rõ ràng. + Tim kiếm các thông tin một cách nhanh chóng, chính xác. + Chương trình ứng 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 vẫn có thể sử dụng được. 2. Các thông tin đầu vào 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ề nhân viên như: Họ tên Giới tính Năm sinh Quê quán Thường trú Dân tộc Tôn giáo Hộ khẩu Địa chỉ Thông tin phục vụ cho việc cập nhật và bổ sung dữ liệu: Bảng nhân viên Bảng phòng ban Bảng tra cứu nhân viên Bảng danh bạ điện thoại của nhân viên Bảng danh sách các trưởng phòng 3. Các thông tin đầu ra Thông tin đầu ra được kiết xuất theo hai hướng: In ra màn hình In ra máy in 4. Cập nhật dữ liệu Trong phần này cầ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ỉ. Phòng ban. Trình độ . …….. 5. Xử lý dữ liệu Trên các cơ sở dữ liệu nhập vào, hệ thống phải tién hành xử lý: Xử lý hồ sơ. Xử lý chức vụ. Xử lý phòng ban. . Xử lý quá trình công tác. ….. 6. Sao lưu dữ liệu Dữ liệu phục vụ quản lý nhân sự phải được lưu dữ 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 thư mục khác để lưu trữ. 7. Các loại báo cáo Báo cáo là phần quan trọng nhất cung cấp cho người sử dụng. Dựa vào báo cáo người sử dụng có thể dựa vào đó được các công việc cần thiết Các loại báo cáo gồm: - Báo cáo danh sách nhân viên. - Danh sách phòng ban. - Tra cứu nhân viên. 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 từ quá trình này sang quá trình khác. Điều quan trọng là phải xác định được thông tin vào ra. II. THIẾT KẾ HỆ THỐNG 1. Biểu đồ phân cấp chức năng (BFD) Quản lý Nhân sự Quản lý hồ sơ nhân viên Thêm nhân viên Cập nhật Tìm kiếm Sửa nhân viên Xoá nhân viên Quản lý phòng ban Cập nhật Báo biểu In lý lịch nhân viên In danh sách trưởng phòng In danh bạ điện thoại Tra cứu nhân viên Hình 3 : Biểu đồ phân cấp chức năng 2. Sơ đồ ngữ cảnh của hệ thống Phòng Giám đốc Nhân viên Phòng Nhân sự Hệ thống Quản lý Nhân sự Yêu cầu Thông tin phản hồi Lý lịch Trả hồ sơ Thông tin phản hồi Hình 3.1: Sơ đồ ngữ cảnh 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 thì sơ đồ trên chưa vạch ra được chi tiết. Nên ta phải nghiên cứu sơ đồ mức 1 và mức dưới 1. 3. Sơ đồ mức 1 của hệ thống (DFD) Quản lý hồ sơ nhân viên Nhân viên Phòng nhân sự Lý lịch Báo cáo Hình 3.2: Sơ đồ DFD 4. Sơ đồ dòng dữ liệu DFD mức 1-Quản lý hồ sơ nhân viên Nhân viên Giám đốc Nhân sự Cập nhật thông tin Xử lý thông tin Báo cáo danh sach nhân viên Tìm kiếm Phòng giám đốc Phòng nhân sự Giám đốc Phòng nhân sự Dữ liệu đã được kiểm tra Thông tin nhân sự Hình 3.3: Sơ đồ dòng dữ liệu 5. Sơ đồ DFD phân rã tiến trình quản lý các thông tin nhân sự. Yêu cầu Phòng nhân sự Ban Giám đốc Nhân viên Thêm Yêu cầu Yêu cầu Cập nhật thông tin cơ bản nhân viên Phòng nhân sự Báo cáo Thông tin đã được cập nhật Tệp nhân sự Hình 3.4: Sơ đồ phân rã quá trình quản lý thông tin nhân sự 6. Sơ đồ phân rã quá trình quản lý các thông tin liên quan đến nhân sự. Phòng giám đốc Thêm thông tin liên quan Lựa chọn danh sách Nhân viên Phòng nhân sự Danh sách tổng hợp Nhân sự Cập nhật thông tin liên quan Xoá Nhân sự Phòng nhân sự Hình 3.5:Sơ đồ phân rã quá trình quản lý các thông tin liên quan đến nhân sự 7. Sơ đồ DFD phân rã quá trình tìm kiếm Lý lịch nhân viên Phòng Giám đốc Phòng nhân sự Tìm kiếm Phòng Giám đốc Phòng nhân sự Yêu cầu Yêu cầu Thông tin phản hồi Thông tin phản hồi Hình 3.6: Sơ đồ phân rã quá trình tìm kiếm III. MÔ HÌNH QUAN HỆ THỰC THỂ ERD (Entity Relationship Diagram) 1. Xác định các thực thể a. Thực thể 1: PHÒNG BAN Đối tượng được xem ở đây là Phòng ban. Xác định thuộc tính cho thưc thể : + Mã phòng ban (Mapb): Đây là thuộc tính khoá, nhờ thuộc tính khoá ta phân biệt được phòng ban này với phòng ban khác,chức năng của mỗi phòng ban + Tên phòng ban (Tenpb): Mô tả tên phòng ban tương ứng với mã phòng ban. b. Thực thể 2: NHÂNVIÊN - Nhân viên là những người làm việc trong công ty - Xác định các thuộc tính cho các thực thể: + Mã nhân viên (Manv): Đây là thuộc tính khoá, nhờ thuộc tính này ta phân biệt được nhân viên này với nhân viên khác. + Mã phòng ban (Mapb): Đây là thuộc tính khoá, nhờ thuộc tính này ta phân biệt được nhân viên của phòng ban này với nhân viên của phòng ban khác. + Họ và tên nhân viên (Hoten): Mô tả họ tên nhân viên ứng với mã nhân viên. + Địa chỉ (Diachi): Địa chỉ hiện tại của nhân viên. + Thường trú (Thuongtru): Mô tả địa chỉ thường trú của nhân viên. + Số điện thoại (Đienthoai): Cho biết số điện thoại liên lạc của nhân viên + Ngày sinh (Ngaysinh): Cho biết ngày sinh của nhân viên. + Phái (Phai): Cho biết nhân viên là nam hay nữ. + Quê quán (Quequan): Cho biết quê quán của nhân viên. + Dân tộc (Dantoc): Cho biết nhân viên thuộc dân tộc nào. + Tôn giáo (Tongiao): Cho biết nhân viên thuộc tôn giáo nào. + Nghề nghiệp (Nghenghiep): Cho biết nghề nghiệp của nhân viên. + Văn hoá (Vanhoa): Cho biết trình độ văn hoá của từng nhân viên. + Khu vực (Khuvuc): Cho biết nhân viên thuộc khu vực nào. + Ngoại ngữ (Ngoaingu): Cho biết trình độ ngoại ngữ của từng nhân viên. c. Thực thể 3: LÝ LỊCH - Tra cứu lý lịch của từng nhân viên - Xác định thuộc tính cho các thực thể: + Mã phòng ban (Mapb): là khoá chính + Mã nhân viên (Manv): là khoá chính để phân biệt nhân viên theo mã phòng ban. + Đào tạo (Daotao): Cho biết quá trình đào tạo của từng nhân viên + Khen thưởng (Khen): Cho biết quá trình thành tích khen thưởng của từng nhân viên + Kỷ luật (Kyluat): Cho biết các nhân viên có bị kỷ luật không để đánh giá vào thành tích + Chứng chỉ ngoại ngữ (ccnn): Cho biết khả năng ngoại ngữ của từng nhân viên + Kinh nghiệm (kinhnghiem): Cho biết kinh nghiệm làm việc của từng nhân viên d. Thực thể 4: GIAĐÌNH - Tra cứu mối quan hệ của từng nhân viên với gia đình nhân viên - Xác định thuộc tính cho các thực thể: + Mã nhân viên (Manv):là khoá chính để phân biệt mối quan hệ của nhân viên và quan hệ gia đình này với nhân viên và quan hệ gia đình khác + Mã phòng ban (Mapb): là khoá chính để phân biệt nhân viên thuộc từng phòng ban + Số thứ tự (Stt): Cho biết thứ tự của mối quan hệ gia đình của nhân viên và cũng là khoá chính + Quan hệ (Quanhe): Quan hệ trong gia đình với nhân viên + Họ tên (Hoten): Họ tên của người thân + Ngày sinh (Ngaysinh): Ngày sinh của người thân + Thương trú (Thuongtru): Địa chỉ thường trú người thân của nhân viên + Nghề nhiệp (Nghenghiep): Nghề nghiệp người thân của nhân viên e. Thực thể 5: HỆ THỐNG ĐĂNG NHẬP - Người dùng phải nhập tên và mật khẩu để phân quyền sử dụng - Xác định thuộc tính của các thực thể: + Uuser: là khoá chính và là tên người đăng nhập + Password: mật khẩu đăng nhập 2. Sơ đồ thực thể và các mối liên kết Phòng ban Nhân viên 1 n - Xét hai thực thể PHONGBAN và NHANVIEN, ta thấy rằng một nhân viên chỉ thuộc một phòng ban, nhưng một phòng ban có thể có nhiều nhân viên. Vì vậy hai thực thể này có mối liên kết với nhau theo quan hệ một - nhiều. Gia đình Nhân viên 1 1 - Xét hai thực thể GIADINH và NHANVIEN, ta thấy rằng một nhân viên chỉ có thể thuộc trong một gia đình, cũng như gia đình chỉ có một gia đình. Vì vậy, hai thực thể này có mối liên kết với nhau theo quan hệ một - một. Lý lịch Nhân viên 1 1 Xét hai thực thể LYLICH và NHANVIEN, ta nhận ra rằng một nhân viên chỉ có một bản sơ yếu lý lịch, cũng như bảng lý lịch chỉ có thể là của một nhân viên. Vì vậy , hai thực này có mối liên kết với nhau theo mối quan hệ một - một Hệ thống đăng nhập Nhân viên 1 n Xét hai thực thể HETHONGDANGNHAP và NHANVIEN, ta nhận ra rằng, tên và mật khẩu chỉ thuộc của một nhân viên, nhưng một nhân viên có thể đăng ký tên và thay đổi thành nhiều mật khẩu khác nhau. 3. Các phụ thuộc hàm PHONGBAN: (Mapb) (Tenpb) NHANVIEN:( Mapb, Manv) (Hoten, diachi, nghenghiep, quequan, khuvuc, thuongtru, phai, vanhoa, ngoaingu, tongiao, ngaysinh, dienthoai, dantoc) LYLICH: (Mapb, Manv) (daotao, khen, kyluat, ccnn, kinhnghiem) GIADINH: (Mapb, Manv, Stt) (quanhe, ngaysinh, hoten, thuongtru, nghenghiep) HETHONGDANGNHAP: (user) (Password) 4. Mô tả tiến trình a. Quá trình: Cập nhật hồ sơ nhân viên Cập nhật hồ sơ nhân viên WHO: Nhân viên nghiệp vụ phòng nhân sự WHEN: Khi có nhân viên mới tuyển dụng INPUT: Hồ sơ nhân viên OUTPUT: file Nhân viên OPEN file Nhân viên DO WHILE có nhân viên mới INPUT record Nhân viên WRITE record nhân viên vào file Nhanvien ENDDO CLOSE file b. Quá trình: Điều chỉnh hồ sơ nhân viên Điều chỉnh hồ sơ nhân viên WHO: Nhân viên nghiệp vụ phòng nhân sự, trưởng phòng nhân sự WHEN: khi có thông tin về nhân viên cần thay đổi INPUT: Thông tin cần thay đổi OUTPUT: file Nhanvien OPEN file Nhanvien DO WHILE còn nhân viên cần thay đổi thông tin INPUT nhân viên cần tìm FIND record nhân viên cần thay đổi thông tin IF FOUND () READ record nhân viên cần thay đổi thông tin INPUT record Nhanvien WRITE record nhân viên vào file Nhanvien ELSE WRITE “Không tìm thấy nhân viên. Xin nhập lại nhân viên khác ” ENDIF ENDDO CLOSE file c. Quá trình: Xoá hồ sơ nhân viên Xoá hồ sơ nhân viên WHO: Nhân viên nghiệp vụ phòng nhân sự, trưởng phòng nhân WHEN: Khi có nhân viên nghỉ việc, cập nhật sai INPUT Nhân viên cần huỷ OUTPUT file Nhânviên OPEN file Nhân viên DO WHILE Còn nhân viên cần huỷ INPUT Nhân viên cần tìm FIND record Nhân viên cần huỷ IF FOUND () DELETE record Nhân viên trong file Nhanvien ELSE WRITE “ Không tìm thấy nhân viên. Xin nhập nhân viên khác” END IF EN DDO CL OSE file d. Quá trình: Tìm kiếm và xem thông tin về nhân viên Tìm kiếm và xem thông tin về nhân viên WHO Nhân viên phòng nhân sự, ban giám đốc WHEN Khi cần xem thông tin về nhân viên INPUT Mã số nhân viên cần xem OUTPUT file Nhanvien OPEN file Nhanvien DO WHILE Còn muốn xem INPUT Mã số nhân viên cần tìm FIND record Nhân viên cần thay đổi thông tin IF FOUND () READ record Nhân viên cần thay đổi thông tin L IST record Nhân viên cần thay đổi thông tin ELSE WRITE “Không tìm thấy nhân viên. Xin nhập lại nhân viên khác” END IF EN DDO CL OSE file e. Quá trình: Cập nhật thông tin phòng ban Cập nhật thông tin phòng ban WHO Nhân viên phòng nhân sự WHEN Khi có phòng ban mới hay thay đổi tên phòng ban INPUT Mã phòng ban, tên phòng ban OUTPUT file Phongban OPEN file Phongban DO WHILE Có phòng ban mới INPUT record Phòng ban WRITE record Phòng ban vào file Phongban EN DDO CL OSE file 5. Từ điển dữ liệu Phòng ban: Tên : Phòng ban Mô tả: Kho dữ liệu chứa thông tin phòng ban Dạng: file = phongban + Mã phòng ban + Tên phòng ban Hệ thống đăng nhập: Tên: Hệ thống đăng nhập Mô tả: Kho dữ liệu chứa tên và mật khẩu đăng nhập Dạng: file = sd + User + Password Nhân viên: Tên: Nhân viên Mô tả: Kho dữ liệu chứa thông tin về nhân viên Dạng: file = Nhanvien + Mã nhân viên + Mã phòng ban + Họ và tên + Địa chỉ hiện tại + Địa chỉ thường trú + Quê quán + Phái + Tôn giáo + Dân tộc + Trình độ văn hoá + Nghề nghiệp + Điện thoại + Ngày sinh Lý lịch: Tên: Lý lịch Mô tả: kho chứa dữ liệu về lý lịch của nhân viên Dạng: file = Lylich + Mã phòng ban + Mã nhân viên + Đào tạo + Khen thưởng + Kỷ luật + Ccnn + Kinh nghiệm Gia đình: Tên: Gia đình Mô tả: kho dữ liệu chứa thông tin về quan hệ gia đình nhân viên Dạng: file = Giadinh + Mã phòng ban + Mã nhân viên + Số thứ tự + Quan hệ + Họ tên +Ngày sinh + Thường trú + Nghề nghiệp IV. THIẾT KẾ HỆ THỐNG 1. Bảng: Phongban Field name Data Type Field Size Format Diễn giải Mab Text 10 > Mã phòng ban Tenphong Text 50 Tên phòng ban 2. Bảng: nsd (đăng nhập hệ thống ) Field name Data Type Field Size Format Diễn giải user Text 20 > Tên đăng nhập password Text 20 Mật khẩu 3.Bảng: Nhanvien Field name DataType Field Size Format Diễn giải Mapb Text 10 > Mã phòng ban Manv Text 10 Mã nhân viên Hoten Text 30 Họ tên nhân viên Diachi Text 50 Địa chỉ liên lạc Nghenghiep Text 50 Chức vụ, công việc Quequan Text 50 Quê quán Khuvuc Text 10 Khu vực Thuongtru Text 50 Địa chỉ thường trú Phai Yes/no Giới tính Vanhoa Text 10 Trình độ văn hoá Ngoaingu Text 15 Trình độ ngoại ngữ Tongiao Text 15 Tôn giáo Ngaysinh Date/Time Ngày sinh Dienthoai Text 50 Điện thoại Dan toc Text 15 Dân tộc 4. Bảng: Lylich Field name Data Type Field Size Format Diễn giải Mapb Text 10 > Mã phòng ban Manv Text 10 Mã nhân viên Daotao Memo Quá trình đào tạo văn hoá Khen Memo Các thành tích khen thưởng Kyluat Memo Những vi phạm kỷ luật Ccnn Memo Các chứng chỉ ngoại ngữ Kinhnghiem Memo Kinh nghiệm làm việc 5. Bảng: Giadinh Field name Data Type Field Size Format Diễn giải Ma pb Text 10 > Mã phòng ban Ma nv Text 10 Mã nhân viên Stt Text 2 Số thứ tự Quan he Text 15 Quan hệ trong gia đình Ho ten Text 30 Họ tên người thân Ngay sinh Date/time Ngày sinh của người thân Thuong tru Text 50 Địa chỉ thường trú Nghenghiep Text 50 Nghề nghiệp hiện nay 6. Quan hệ giữa các bảng GIỚI THIỆU MỘT SỐ FROM Đăng nhập hệ thống From chính From Đổi mật khẩu From Danh mục phòng ban From Danh sách nhân viên From Tra cứu nhân viên From lý lịch nhân viên From danh bạ điện thoại của nhân viên From danh sách các trưởng phòng From danh sách nhân viên theo phòng ban CHƯƠNG IV ĐÁNH GIÁ KẾT QUẢ VÀ HƯỚNG PHÁT TRIỂN CỦA ĐỀ TÀI ĐÁNH GIÁ KẾT QUẢ LÀM ĐƯỢC CỦA ĐỀ TÀI Trong quá trình thực hiện đồ án tốt nghiệp, em đã cố gắng hết sức để tìm hiểu và cài đặt chương trình nhưng vì thời gian và kiến thức còn hạn chế nên chưa thể giải quyết được tất cả các vấn đề đặt ra. Em rất mong nhận được sự thông cảm của quí thầy cô. Em xin chân thành cảm ơn. Những kết quả đạt được: Về công nghệ: + Tìm hiểu và nắm bắt được các công cụ thiết kế chương trình quản lý nhân sự + Hiểu được quy trình xây dựng một hệ thống thông tin. + Làm chủ được chương trình, thiết kế giao diện 2. Về chương trình: + Giao diện thân thiện dễ sử dụng. + Thông tin sắp xếp dễ nhìn. + Phân quyền sử dụng đối với người dùng + Người dùng có thể nhập tên, mật khẩu và sửa mật khẩu + Người sử dụng có thể dễ dàng tìm kiếm bất kỳ thông tin một nhân viên nào như: mã nhân viên, mã phòng ban… + In lý lịch nhân viên khi cần thiết, tìm kiếm nhân viên theo số điện thoại + Chúng ta có thể cập nhật, thêm, sửa, xoá bất kỳ một nhân viên nào theo phòng ban hay mã nhân viên. + Tra cứu nhân viên theo họ tên, quê quán, chức vụ. + Tra cứu nhân viên theo địa chỉ dựa vào tên đường, khu vực cư trú. + Tra cứu nhân viên theo giới tính, trình độ văn hoá, trình độ ngoại ngữ, tôn giáo. + Tra cứu nhân viên theo ngày sinh. + Tra cứu danh sách nhân viên được khen thưởng hay kỷ luật + In danh bạ điện thoại của các nhân viên có số điện Hạn chế của đề tài: + Chương trình vẫn chưa thật sự hoàn thiện + Chương trình mới chỉ đề cập và dừng lại ở tìm kiếm, cập nhật, thêm thông tin về nhân viên + Tin tức chưa cập nhật một cách tự động. + Chương trình mới dừng lại quản lý hồ sơ nhân viên, thêm khi có nhân viên mới, xoá khi có nhân thôi việc + Chương trình không quản lý lương của nhân viên, không đề cập đến bậc lương hay phụ cấp chức vụ của nhân viên HƯỚNG PHÁT TRIỂN CỦA ĐỀ TÀI Trong thời gian thực hiện dù đã cố gắng nhưng em chưa giải quyết được hết các vấn đề đặt ra. Nên thời gian còn lại em sẽ cố gắng hoàn thiện và phát triển thêm đề tài. Những nội dung mà đề tài có thể mở rộng: Bổ xung thêm đầy đủ thông tin của nhân viên. Ví dụ như quản lý lương của nhân viên, cấp bậc hay phụ cấp chức vụ, bảo hiểm y tế, bảo hiểm xã hội, quá trình công tác của nhân viên… - Hoàn thiện giao diện sinh động hơn, thân thiện hơn. - Phân quyền người sử dụng chi tiết hơn: Khi hệ thống được xây dựng hoàn thiện việc phân quyền sẽ thay đổi. Giúp cho công việc quản lý bảo mật thông tin chặt chẽ và độ an toàn cao. - Ngoài ra chương trình quản lý nhân sự sẽ thân thiện và dễ dàng sử dụng hơn phục vụ cho công tác giảng dạy trong nhà trường, công ty, cơ quan và các xí nghiệp… KẾT LUẬN Đề tài “Xây dựng hệ thống thông tin quản lý nhân sự tại công ty TNHH dịch vụ thương mại Trần Vũ Gia” đã được xây dựng dựa trên nhu cầu của Công ty TNHH dịch vụ thương mại Trần Vũ Gia. Xây dựng một hệ thống nhằm phục vụ nhu cầu làm việc, trao đổi thông tin, quản lý…của cán bộ, công nhân viên trong công ty. Toàn bộ chương trình trên đã được em xây dựng nhằm giải quyết một số vấn đề quản lý nhân viên trong toàn công ty. Giúp cho việc tìm kiếm, thêm bớt, thay đổi thông tin về nhân sự trong công ty một cách nhanh chóng chính xác. Giúp cho công việc quản lý trong công ty trở nên đơn giản, tạo nên sự rõ ràng cho mọi người. Nhân viên sẽ biết được nhiều thông tin về công ty mà mình đang làm. Từ đó mà sẽ thúc đẩy mọi người hăng say làm việc, công ty ngày càng vững hùng mạnh và sẽ luôn là đối thủ cạnh tranh có hiệu quả trong kinh doanh. Do thời gian và trình độ còn hạn chế nên việc thực hiện cũng như kết quả của đề tài này còn nhiều thiếu sót, như một số chức năng còn chưa đầy đủ, quy mô chưa lớn. Đề tài này là thành công bước đầu, nó giúp em trong việc tổng hợp và kết hợp những kiến thức đã được các thầy cô truyền đạt và kiến thức tham khảo trên sách báo. Qua đây em xin cảm ơn thầy giáo PGS. TS Hàn Viết Thuận cùng các thầy cô giáo trong khoa đã chỉ bảo giúp đỡ em có được kết quả như ngày hôm nay. Em hy vọng trong tương lai chương trình “Quản lý nhân sự” sẽ phát triển hơn nữa để ứng dụng rộng rãi trong cuộc sống. Em xin chân thành cảm ơn! CHÚ THÍCH TRONG ĐỀ ÁN 1. Quy ước hình vẽ Kí hiệu Chú thích Biểu diễn tác nhân ngoài Biểu diễn chức năng Biểu diễn kho dữ liệu Biểu diễn dòng dữ liệu 2. Các chữ viết tắt BFD(Business Function Diagram): Sơ đồ phân cấp chức năng. DFD(Data Flow Diagram): Sơ đồ luồng dữ liệu. ERD(Entity Relationship Diagram): Mô hình dữ liệu thực thể. TÀI LIỆU THAM KHẢO Giáo trình hệ thống thông tin quản lý – TS. Trương Văn Tú – TS. Trần Thị Song Minh. Phân tích và thiết kế hệ thống thông tin - Nguyễn Văn Ba - Nhà xuất bản ĐHQGHN-2003. Phân tích thiết kế hệ thống thông tin quản lý - Đinh Thế Hiển - Nhà xuất bản Thống Kê- 2004. Hệ cơ sở dữ liệu Microsoft Access 2002 - Nguyễn Duy Hoàng Mỹ - Nhà xuất bản Thống Kê – 2004. Microsoft Visual Basic 6.0 & Lập trình cơ sở dữ liệu 6.0- Nguyễn Thị Ngọc Mai (Chủ biên) - Nhà xuất bản Lao Động - Xã Hội – 2004. TRANG NHẬN XÉT …………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………… ……………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………… PHỤ LỤC FRMNHANSU Option Explicit Private Sub Form_resize() Dim d d = Me.Width lockcontrol frmnhansu, True Image1.Width = d Image1.Height = Me.Height StatusBar1.Panels(1).Width = d \ 3 StatusBar1.Panels(2).Width = d \ 6 StatusBar1.Panels(3).Width = d \ 6 StatusBar1.Panels(4).Width = d \ 3 lockcontrol frmnhansu, False End Sub Private Sub mnugt_Click(Index As Integer) frmgioithieu.Show End Sub Private Sub mnuhd_Click(Index As Integer) frmhuongdan.Show End Sub Private Sub mnuht_Click(Index As Integer) Select Case Index Case 0: frmdoimatkhau.Show Case 1: End End Select End Sub Private Sub mnuinput_Click(Index As Integer) Select Case Index Case 0: frmdm_pb.Show Case 1: frmDS_NV.Show End Select End Sub Private Sub mnurp_Click(Index As Integer) Dim str Select Case Index Case 0: Report_phongban.Show Case 1: str = "shape {select * from phongban} as phong " str = str & "APPEND ({select * from nhanvien} as nhanvien relate mapb to mapb) as nhanvien" DE1.Commands(2).CommandText = str If DE1.rsphong.State = 0 Then DE1.rsphong.Open End If DE1.rsphong.Requery Report_nhanvien.Show 1 DE1.rsphong.Close Case 2: frmTracuu.Show Case 4: str = "shape {SELECT Nhanvien.*, Lylich.Ccnn AS ccnn, Lylich.Daotao AS daotao, " str = str & "Lylich.Khen AS khen, Lylich.Kinhnghiem AS kinhnghiem, Lylich.Kyluat AS kyluat, " str = str & "Phongban.Tenphong AS tenphong FROM Lylich, Nhanvien, Phongban " str = str & "WHERE Lylich.Manv = Nhanvien.Manv AND Lylich.Mapb = Phongban.Mapb} as lylich append " str = str & "({select * from giadinh} as giadinh relate 'mapb' to 'mapb','manv' to 'manv') as giadinh" DE1.Commands(3).CommandText = str If DE1.rslylich.State = 0 Then DE1.rslylich.Open End If DE1.rslylich.Requery Report_lylich.Show 1 DE1.rslylich.Close Case 5: Report_dienthoai.Show Case 6: str = "select nhanvien.mapb,phongban.tenphong,nhanvien.hoten,nhanvien.nghenghiep" str = str & ",nhanvien.manv from nhanvien,phongban where nhanvien.mapb=phongban.mapb" str = str & " and ((trim(nhanvien.nghenghiep)='KÕ to¸n tr­ëng') or (left(nhanvien.nghenghiep,12)='Tr­ëng phßng'))" DE1.Commands(6).CommandText = str If DE1.rstruongphong.State = 0 Then DE1.rstruongphong.Open End If DE1.rstruongphong.Requery Report_truongphong.Show End Select End Sub Private Sub Timer1_Timer() Dim x As String Dim y As String Dim z As String Dim t As String Dim Text1 As String Dim text2 As String Text1 = StatusBar1.Panels(1).Text text2 = StatusBar1.Panels(4).Text x = Left(Text1, 1) y = Right(Text1, Len(Text1) - 1) z = Right(text2, 1) t = Left(text2, Len(text2) - 1) StatusBar1.Panels(1).Text = y + x StatusBar1.Panels(4).Text = z + t End Sub FRMCHON_PB Option Explicit Dim ma, ten Private Sub cmdAdd_Click() frmdm_pb.Show 1 End Sub Private Sub cmdchon_Click() frmDS_NV.txtMapb = UCase(ma) frmDS_NV.txtTenpb = ten Unload Me End Sub Private Sub cmdClose_Click() Unload Me End Sub Private Sub Form_activate() Dim rs As New ADODB.Recordset Dim str Dim mItem As ListItem str = "select * from phongban" rs.Open str, cn, adOpenKeyset, adLockOptimistic, adCmdText If rs.EOF = False Then While Not rs.EOF Set mItem = lvItem.ListItems.Add(, , rs!mapb) mItem.SubItems(1) = rs!tenphong rs.MoveNext Wend End If End Sub Private Sub lvItem_DblClick() cmdchon_Click End Sub Private Sub lvItem_ItemClick(ByVal Item As MSComctlLib.ListItem) ma = Item.Text ten = Item.SubItems(1) End Sub Private Sub lvItem_KeyPress(Keyascii As Integer) Select Case Keyascii Case 13 cmdchon_Click End Select End Sub FRMDM_PB Option Explicit Private flag As String Private Sub cmdDel_Click() Xoa_Du_Lieu End Sub Private Sub cmdClose_Click() Unload Me End Sub Private Sub cmdNew_Click() Un_Lock_Text Set_NULL End Sub Private Sub cmdPrint_Click() If DE1.rsphongban.State = 0 Then DE1.rsphongban.Open End If DE1.rsphongban.Requery Report_phongban.Show 1 End Sub Private Sub cmdSave_Click() If flag "update" Then flag = "save" End If Luu_Du_Lieu End Sub Private Sub cmdskip_Click() Set_NULL Lock_Text End Sub Private Sub cmdUpdate_Click() flag = "update" Sua_Du_Lieu End Sub Private Sub Form_Load() Lock_Text Display_Listview End Sub Private Sub txtMa_GotFocus() txtMa.BackColor = &HC0E0FF End Sub Private Sub txtTen_GotFocus() txtTen.BackColor = &HC0E0FF End Sub Private Sub txtTen_Keypress(Keyascii As Integer) Select Case Keyascii Case 13 cmdSave.SetFocus End Select End Sub Private Sub txtMa_Keypress(Keyascii As Integer) Select Case Keyascii Case 13 txtTen.SetFocus End Select End Sub Private Sub txtMa_LostFocus() txtMa.BackColor = &HFFFFFF txtMa = Trim(txtMa) End Sub Private Sub txtTen_LostFocus() txtMa.BackColor = &HFFFFFF End Sub Private Sub Xoa_Du_Lieu() Dim str Dim response If Trim(txtMa) = "" Then Exit Sub End If response = MsgBox("B¹n cã ch¾c ch¾n xãa phßng ban nµy kh«ng ?", vbYesNo + vbQuestion, "Thông bao") If response = vbNo Then Exit Sub Else str = "delete from phongban where mapb='" & Trim(txtMa) & "'" cn.Execute (str) End If Set_NULL Lock_Text Display_Listview End Sub Private Sub Sua_Du_Lieu() Un_Lock_Text txtMa.Enabled = False txtTen.SetFocus End Sub Private Sub Luu_Du_Lieu() Dim rs As New ADODB.Recordset Dim str If Trim(txtMa) = "" Or Trim(txtTen) = "" Then MsgBox "Chó ý : Ph¶i nhËp d÷ liÖu ®Çy ®ñ tr­íc khi l­u", vbOKOnly + vbExclamation, "Thông bao" Exit Sub End If str = "select * from phongban where mapb='" & Trim(txtMa) & "'" rs.Open str, cn If rs.EOF = True Then str = "insert into phongban values('" & Trim(txtMa) & "','" & Trim(txtTen) & "')" cn.Execute (str) Else If flag = "save" Then MsgBox "M· phßng [" & txtMa & "] ®· tån t¹i. Vui lßng kiÓm tra l¹i", vbOKOnly + vbExclamation, "Thông bao" Me.MousePointer = 0 Exit Sub End If str = "update phongban set tenphong='" & Trim(txtTen) & "' where mapb='" & Trim(txtMa) & "'" cn.Execute (str) End If Lock_Text Display_Listview cmdNew.SetFocus Me.MousePointer = 0 End Sub Private Sub Set_NULL() txtMa = "" txtTen = "" End Sub Private Sub Lock_Text() txtMa.Enabled = False txtTen.Enabled = False cmdSave.Enabled = False cmdskip.Enabled = False cmdNew.Enabled = True cmdUpdate.Enabled = True cmdDel.Enabled = True flag = "" End Sub Private Sub Un_Lock_Text() txtMa.Enabled = True txtTen.Enabled = True txtMa.SetFocus cmdSave.Enabled = True cmdskip.Enabled = True cmdNew.Enabled = False cmdUpdate.Enabled = False cmdDel.Enabled = False End Sub Private Sub Display_Listview() Dim rs As New ADODB.Recordset Dim str Dim mItem As ListItem lvItem.ListItems.Clear str = "select * from phongban order by mapb asc" rs.Open str, cn, adOpenKeyset, adLockOptimistic, adCmdText If rs.EOF = False Then While Not rs.EOF Set mItem = lvItem.ListItems.Add(, , rs!mapb) mItem.SubItems(1) = rs!tenphong rs.MoveNext Wend End If End Sub Private Sub lvItem_ItemClick(ByVal Item As MSComctlLib.ListItem) txtMa = Item.Text txtTen = Item.SubItems(1) End Sub FRMDS_NV Option Explicit Private flag As String Private Sub cmdDel_Click() Xoa_Du_Lieu End Sub Private Sub cmdClose_Click() Unload Me End Sub Private Sub cmdNew_Click() Un_Lock_Text Set_NULL End Sub Private Sub cmdPrint_Click() Dim str str = "shape {select * from phongban where mapb='" & txtMapb & "'} as phong " str = str & "APPEND ({select * from nhanvien} as nhanvien relate mapb to mapb) as nhanvien" DE1.Commands(2).CommandText = str If DE1.rsphong.State = 0 Then DE1.rsphong.Open End If DE1.rsphong.Requery Report_nhanvien.Show 1 DE1.rsphong.Close End Sub Private Sub cmdll_Click() If txtmanv "" And txtMapb "" Then frmGD.Show Else MsgBox "Ch­a chän nh©n viªn ®Ó nhËp th«ng tin gia ®×nh", vbOKOnly + vbExclamation, "Thông bao" End If End Sub Private Sub cmdSave_Click() If flag "update" Then flag = "save" End If Luu_Du_Lieu End Sub Private Sub cmdSelect_Click() frmchon_pb.Show 1 cmdSave.SetFocus End Sub Private Sub cmdskip_Click() Set_NULL Lock_Text End Sub Private Sub cmdUpdate_Click() flag = "update" Sua_Du_Lieu End Sub Private Sub lvItem_ItemClick(ByVal Item As MSComctlLib.ListItem) Dim rs As New ADODB.Recordset Dim str txtmanv = Item.Text txthoten = Item.SubItems(1) txtMapb = Item.SubItems(2) txtTenpb = Item.SubItems(3) str = "select * from nhanvien where manv='" & txtmanv & "' and mapb='" & txtMapb & "'" rs.Open str, cn, adOpenKeyset, adLockOptimistic, adCmdText If rs.EOF = False Then If IsNull(rs!diachi) Then txtdc = "" Else txtdc = rs!diachi End If If IsNull(rs!quequan) Then txtqq = "" Else txtqq = rs!quequan End If If IsNull(rs!nghenghiep) Then txtcv = "" Else txtcv = rs!nghenghiep End If If IsNull(rs!khuvuc) Then txtkv = "" Else txtkv = rs!khuvuc End If If IsNull(rs!thuongtru) Then txttt = "" Else txttt = rs!thuongtru End If If IsNull(rs!dienthoai) Then txtdt = "" Else txtdt = rs!dienthoai End If If rs!phai Then txtphai = 1 Else txtphai = 0 End If txtngaysinh = Format(rs!ngaysinh, "dd/mm/yyyy") If IsNull(rs!tongiao) Then txttg = "" Else txttg = rs!tongiao End If If IsNull(rs!dantoc) Then txtdtoc = "" Else txtdtoc = rs!dantoc End If If IsNull(rs!vanhoa) Then txtvh = "" Else txtvh = rs!vanhoa End If If IsNull(rs!ngoaingu) Then txtnn = "" Else txtnn = rs!ngoaingu End If End If rs.Close str = "select * from lylich where manv='" & txtmanv & "' and mapb='" & txtMapb & "'" rs.Open str, cn, adOpenKeyset, adLockOptimistic, adCmdText If rs.EOF = False Then If IsNull(rs!daotao) Then txtvanhoa = "" Else txtvanhoa = rs!daotao End If If IsNull(rs!daotao) Then txtvanhoa = "" Else txtvanhoa = rs!daotao End If If IsNull(rs!ccnn) Then txtccnn = "" Else txtccnn = rs!ccnn End If If IsNull(rs!kinhnghiem) Then txtnghe = "" Else txtnghe = rs!kinhnghiem End If If IsNull(rs!kyluat) Then txtkl = "" Else txtkl = rs!kyluat End If End If rs.Close End Sub Private Sub Form_Load() Lock_Text Display_Listview End Sub Private Sub txtManv_GotFocus() txtmanv.BackColor = &HC0E0FF End Sub Private Sub txtMapb_GotFocus() txtMapb.BackColor = &HC0E0FF End Sub Private Sub txtManv_Keypress(Keyascii As Integer) Select Case Keyascii Case 13 txthoten.SetFocus End Select End Sub Private Sub txtMapb_Keypress(Keyascii As Integer) Dim str Dim rs As New ADODB.Recordset Select Case Keyascii Case 13 str = "select tenphong from phongban where mapb='" & txtMapb & "'" rs.Open str, cn If rs.EOF = False Then txtTenpb = rs!tenphong txtmanv.SetFocus Else frmchon_pb.Show 1 End If End Select End Sub Private Sub txtManv_LostFocus() txtmanv.BackColor = &HFFFFFF txtmanv = UCase(Trim(txtmanv)) End Sub Private Sub txtMapb_LostFocus() txtMapb.BackColor = &HFFFFFF txtMapb = UCase(Trim(txtMapb)) End Sub Private Sub txthoten_GotFocus() txthoten.BackColor = &HC0E0FF End Sub Private Sub txthoten_Keypress(Keyascii As Integer) Select Case Keyascii Case 13 txttt.SetFocus End Select End Sub Private Sub txthoten_LostFocus() txthoten.BackColor = &HFFFFFF txthoten = Trim(txthoten) End Sub Private Sub txttt_GotFocus() txttt.BackColor = &HC0E0FF End Sub Private Sub txttt_Keypress(Keyascii As Integer) Select Case Keyascii Case 13 txtdc.SetFocus End Select End Sub Private Sub txttt_LostFocus() txttt.BackColor = &HFFFFFF txttt = Trim(txttt) End Sub Private Sub txtdc_GotFocus() txtdc.BackColor = &HC0E0FF End Sub Private Sub txtdc_Keypress(Keyascii As Integer) Select Case Keyascii Case 13 txtkv.SetFocus End Select End Sub Private Sub txtdc_LostFocus() txtdc.BackColor = &HFFFFFF txtdc = Trim(txtdc) End Sub Private Sub txtkv_GotFocus() txtkv.BackColor = &HC0E0FF End Sub Private Sub txtkv_Keypress(Keyascii As Integer) Select Case Keyascii Case 13 txtdt.SetFocus End Select End Sub Private Sub txtkv_LostFocus() txtkv.BackColor = &HFFFFFF txtkv = Trim(txtkv) End Sub Private Sub txtdt_GotFocus() txtdt.BackColor = &HC0E0FF End Sub Private Sub txtdt_Keypress(Keyascii As Integer) Select Case Keyascii Case 13 txtcv.SetFocus End Select End Sub Private Sub txtdt_LostFocus() txtdt.BackColor = &HFFFFFF txtdt = Trim(txtdt) End Sub Private Sub txtcv_GotFocus() txtcv.BackColor = &HC0E0FF End Sub Private Sub txtcv_Keypress(Keyascii As Integer) Select Case Keyascii Case 13 txtphai.SetFocus End Select End Sub Private Sub txtcv_LostFocus() txtcv.BackColor = &HFFFFFF End Sub Private Sub txtphai_GotFocus() txtphai.BackColor = &HC0E0FF End Sub Private Sub txtphai_Keypress(Keyascii As Integer) Select Case Keyascii Case 13 txtngaysinh.SetFocus End Select End Sub Private Sub txtphai_LostFocus() txtphai.BackColor = &HFFFFFF End Sub Private Sub txtngaysinh_GotFocus() txtngaysinh.BackColor = &HC0E0FF End Sub Private Sub txtngaysinh_Keypress(Keyascii As Integer) Select Case Keyascii Case 13 txtqq.SetFocus End Select End Sub Private Sub txtngaysinh_LostFocus() txtngaysinh.BackColor = &HFFFFFF If checkdate(txtngaysinh) = "1" Then MsgBox "Chó ý : D÷ liÖu kiÓu ngµy th¸ng. Vui lßng kiÓm tra l¹i", vbOKOnly + vbExclamation, "Thông bao" txtngaysinh.SetFocus Exit Sub End If End Sub Private Sub txtqq_GotFocus() txtqq.BackColor = &HC0E0FF End Sub Private Sub txtqq_Keypress(Keyascii As Integer) Select Case Keyascii Case 13 txttg.SetFocus End Select End Sub Private Sub txtqq_LostFocus() txtqq.BackColor = &HFFFFFF txtqq = Trim(txtqq) End Sub Private Sub txttg_GotFocus() txttg.BackColor = &HC0E0FF End Sub Private Sub txttg_Keypress(Keyascii As Integer) Select Case Keyascii Case 13 txtdtoc.SetFocus End Select End Sub Private Sub txttg_LostFocus() txttg.BackColor = &HFFFFFF txttg = Trim(txttg) End Sub Private Sub txtdtoc_GotFocus() txtdtoc.BackColor = &HC0E0FF End Sub Private Sub txtdtoc_Keypress(Keyascii As Integer) Select Case Keyascii Case 13 txtvh.SetFocus End Select End Sub Private Sub txtdtoc_LostFocus() txtdtoc.BackColor = &HFFFFFF txtdtoc = Trim(txtdtoc) End Sub Private Sub txtvh_GotFocus() txtvh.BackColor = &HC0E0FF End Sub Private Sub txtvh_Keypress(Keyascii As Integer) Select Case Keyascii Case 13 txtnn.SetFocus End Select End Sub Private Sub txtvh_LostFocus() txtvh.BackColor = &HFFFFFF txtvh = Trim(txtvh) End Sub Private Sub txtnn_GotFocus() txtnn.BackColor = &HC0E0FF End Sub Private Sub txtnn_Keypress(Keyascii As Integer) Select Case Keyascii Case 13 cmdSave.SetFocus End Select End Sub Private Sub txtnn_LostFocus() txtnn.BackColor = &HFFFFFF txtnn = Trim(txtnn) End Sub Private Sub Xoa_Du_Lieu() Dim str Dim response If Trim(txtmanv) = "" Then Exit Sub End If response = MsgBox("B¹n cã ch¾c ch¾n xãa nh©n viªn nµy kh«ng ?", vbYesNo + vbQuestion, "Thông bao") If response = vbNo Then Exit Sub Else str = "delete from nhanvien where manv='" & Trim(txtmanv) & "' and mapb='" & txtMapb & "'" cn.Execute (str) End If Set_NULL Lock_Text Display_Listview End Sub Private Sub Sua_Du_Lieu() Un_Lock_Text txtmanv.Enabled = False txthoten.SetFocus End Sub Private Sub Luu_Du_Lieu() Dim rs As New ADODB.Recordset Dim rs1 As New ADODB.Recordset Dim str If Trim(txtmanv) = "" Or Trim(txthoten) = "" Or Trim(txtMapb) = "" Then MsgBox "Chó ý : M· nh©n viªn, m· phßng ban vµ hä tªn kh«ng ®­îc trèng", vbOKOnly + vbExclamation, "Thông bao" Me.MousePointer = 0 Exit Sub End If Test_NULL str = "select * from nhanvien where manv='" & Trim(txtmanv) & "' and mapb='" & Trim(txtMapb) & "'" rs.Open str, cn, adOpenKeyset, adLockOptimistic, adCmdText If rs.EOF = True Then rs.AddNew rs!manv = txtmanv rs!mapb = txtMapb rs!hoten = txthoten rs!diachi = txtdc rs!quequan = txtqq rs!nghenghiep = txtcv rs!khuvuc = txtkv rs!thuongtru = txttt rs!dienthoai = txtdt rs!phai = txtphai rs!ngaysinh = txtngaysinh rs!tongiao = txttg rs!dantoc = txtdtoc rs!vanhoa = txtvh rs!ngoaingu = txtnn rs.Update rs.Close str = "select * from lylich where manv='" & Trim(txtmanv) & "' and mapb='" & Trim(txtMapb) & "'" rs1.Open str, cn, adOpenKeyset, adLockOptimistic, adCmdText If rs1.EOF = True Then rs1.AddNew rs1!manv = txtmanv rs1!mapb = txtMapb rs1!daotao = txtvanhoa rs1!ccnn = txtccnn rs1!khen = txtkhen rs1!kinhnghiem = txtnghe rs1!kyluat = txtkl rs1.Update End If rs1.Close Else If flag = "save" Then MsgBox "Nh©n viªn cã m· [" & txtmanv & "] ®· tån t¹i. Vui lßng kiÓm tra l¹i", vbOKOnly + vbExclamation, "Thông bao" Me.MousePointer = 0 Exit Sub End If str = "update nhanvien set hoten='" & Trim(txthoten) & "',mapb='" & Trim(txtMapb) & "'," str = str & "diachi='" & txtdc & "',quequan='" & txtqq & "',nghenghiep='" & txtcv & "'," str = str & "khuvuc='" & txtkv & "',thuongtru='" & txttt & "',dienthoai='" & txtdt & "'," str = str & "tongiao='" & txttg & "',dantoc='" & txtdtoc & "',vanhoa='" & txtvh & "'," str = str & "phai='" & txtphai & "',ngoaingu='" & txtnn & "',ngaysinh=#" & Format(txtngaysinh, "dd/mm/yyyy") & "#" str = str & " where manv='" & Trim(txtmanv) & "' and mapb='" & Trim(txtMapb) & "'" cn.Execute (str) str = "update lylich set khen='" & Trim(txtkhen) & "',mapb='" & Trim(txtMapb) & "',kyluat='" & txtkl & "'," str = str & "kinhnghiem='" & txtnghe & "',ccnn='" & txtccnn & "',daotao='" & txtvanhoa & "'" str = str & "where manv='" & Trim(txtmanv) & "' and mapb='" & Trim(txtMapb) & "'" cn.Execute (str) End If Lock_Text Display_Listview cmdNew.SetFocus Me.MousePointer = 0 End Sub Private Sub Test_NULL() If txtTenpb = "" Then txtTenpb = "-" If txtdc = "" Then txtdc = "-" If txttt = "" Then txttt = "-" If txtkv = "" Then txtkv = "-" If txtcv = "" Then txtcv = "-" If txtdt = "" Then txtdt = "-" If txtngaysinh = "__/__/____" Then txtngaysinh = "01/01/1900" If txtqq = "" Then txtqq = "-" If txttg = "" Then txttg = "-" If txtdtoc = "" Then txtdtoc = "-" If txtvh = "" Then txtvh = "-" If txtnn = "" Then txtnn = "-" If txtvanhoa = "" Then txtvanhoa = "-" If txtccnn = "" Then txtccnn = "-" If txtnghe = "" Then txtnghe = "-" If txtkhen = "" Then txtkhen = "-" If txtkl = "" Then txtkl = "-" End Sub Private Sub Set_NULL() txtmanv = "" txthoten = "" txtMapb = "" txtTenpb = "" txtdc = "" txttt = "" txtkv = "" txtcv = "" txtdt = "" txtqq = "" txttg = "" txtdtoc = "" txtvh = "" txtnn = "" txtvanhoa = "" txtccnn = "" txtnghe = "" txtkhen = "" txtkl = "" txtphai.Value = 1 txtngaysinh = "__/__/____" End Sub Private Sub Lock_Text() txtmanv.Enabled = False txthoten.Enabled = False txtMapb.Enabled = False txtTenpb.Enabled = False txtdc.Enabled = False txttt.Enabled = False txtkv.Enabled = False txtcv.Enabled = False txtdt.Enabled = False txtphai.Enabled = False txtngaysinh.Enabled = False txtqq.Enabled = False txttg.Enabled = False txtdtoc.Enabled = False txtvh.Enabled = False txtnn.Enabled = False txtvanhoa.Enabled = False txtccnn.Enabled = False txtnghe.Enabled = False txtkhen.Enabled = False txtkl.Enabled = False cmdSelect.Enabled = False cmdSave.Enabled = False cmdskip.Enabled = False cmdNew.Enabled = True cmdUpdate.Enabled = True cmdDel.Enabled = True flag = "" End Sub Private Sub Un_Lock_Text() txtmanv.Enabled = True txthoten.Enabled = True txtMapb.Enabled = True txtTenpb.Enabled = True txtdc.Enabled = True txttt.Enabled = True txtkv.Enabled = True txtcv.Enabled = True txtdt.Enabled = True txtphai.Enabled = True txtngaysinh.Enabled = True txtqq.Enabled = True txttg.Enabled = True txtdtoc.Enabled = True txtvh.Enabled = True txtnn.Enabled = True txtvanhoa.Enabled = True txtccnn.Enabled = True txtnghe.Enabled = True txtkhen.Enabled = True txtkl.Enabled = True txtMapb.SetFocus cmdSelect.Enabled = True cmdSave.Enabled = True cmdskip.Enabled = True cmdNew.Enabled = False cmdUpdate.Enabled = False cmdDel.Enabled = False End Sub Private Sub Display_Listview() Dim rs As New ADODB.Recordset Dim rs1 As New ADODB.Recordset Dim str Dim mItem As ListItem lvItem.ListItems.Clear str = "select * from nhanvien order by manv asc" rs.Open str, cn, adOpenKeyset, adLockOptimistic, adCmdText If rs.EOF = False Then While Not rs.EOF Set mItem = lvItem.ListItems.Add(, , UCase(rs!manv)) mItem.SubItems(1) = rs!hoten mItem.SubItems(2) = UCase(rs!mapb) str = "select tenphong from phongban where mapb='" & rs!mapb & "'" rs1.Open str, cn If rs1.EOF = False Then mItem.SubItems(3) = rs1!tenphong End If rs1.Close rs.MoveNext Wend End If End Sub FRM_TRACUU Option Explicit Private Sub cmdClose_Click() Unload Me End Sub Private Sub opttc_click(Index As Integer) Select Case Index Case Is < 9: dong Case 9: mo End Select End Sub Private Sub cmdPrint_Click() Dim str str = "select phongban.tenphong,nhanvien.* from nhanvien,phongban where nhanvien.mapb=phongban.mapb" If opttc(0).Value Then str = str & " and nhanvien.hoten='" & txttracuu & "'" End If If opttc(1).Value Then str = str & " and nhanvien.quequan='" & txttracuu & "'" End If If opttc(2).Value Then str = str & " and nhanvien.nghenghiep='" & txttracuu & "'" End If If opttc(3).Value Then str = str & " and nhanvien.ngaysinh=#" & Format(txttracuu, "dd/mm/yyyy") & "#" End If If opttc(4).Value Then str = str & " and nhanvien.ngoaingu='" & txttracuu & "'" End If If opttc(5).Value Then str = str & " and nhanvien.vanhoa='" & txttracuu & "'" End If If opttc(6).Value Then str = str & " and nhanvien.diachi like '%" & txttracuu & "%'" End If If opttc(7).Value Then str = str & " and nhanvien.khuvuc='" & txttracuu & "'" End If If opttc(8).Value Then str = str & " and nhanvien.tongiao='" & txttracuu & "'" End If If opttc(9).Value Then If optgt(0) = True Then str = str & " and nhanvien.phai=true" Else str = str & " and nhanvien.phai=false" End If End If DE1.Commands(4).CommandText = str If DE1.rstracuu.State = 0 Then DE1.rstracuu.Open End If DE1.rstracuu.Requery Report_tracuu.Show 1 End Sub Private Sub Form_Load() dong End Sub Private Sub dong() optgt(0).Enabled = False optgt(1).Enabled = False End Sub Private Sub mo() optgt(0).Enabled = True optgt(1).Enabled = True End Sub MỤC LỤC

Các file đính kèm theo tài liệu này:

  • docP0100.doc