Đ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
100 trang |
Chia sẻ: oanh_nt | Lượt xem: 1701 | Lượt tải: 1
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 lu", 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 "Cha 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:
- P0100.doc