CHƯƠNG 3 Xây dựng chương trình
3.3. Xây dựng các chức năng của bài toán
3.3.4. Tìm kiếm (An Thị Thanh Thảo)
Các hàm tìm kiếm trong class UserDAO(). Lớp này chứa các phương thức thể hiện chức năng phía người dùng.
Hình 3-23: Hàm search()
Hàm search(): tìm kiếm thơng tin của kỹ sư
- Khởi tạo 1 ArrayList để chứa kết quả tìm tiếm kỹ sư
- Câu lệnh sql thực hiện truy vấn thông tin cán bộ trong bảng CanBo với ChucVu là “kỹ sư”
- Sử dụng phương thức executeQuery() của ResultSet để thực thi câu lệnh
- Set các thuộc tính của lớp KySu theo các thuộc tính tương ứng ở bảng CanBo trong sql
Hình 3-24: Hàm searchNhanVien()
Hàm searchNhanVien(): tìm kiếm thơng tin nhân viên - Khởi tạo 1 ArrayList để chứa kết quả tìm tiếm kỹ sư
- Câu lệnh sql thực hiện truy vấn thông tin cán bộ trong bảng CanBo với ChucVu là “Nhân viên”
- Sử dụng phương thức executeQuery() của ResultSet để thực thi câu lệnh
- Set các thuộc tính của lớp NhanVien theo các thuộc tính tương ứng ở bảng CanBo trong sql
Hình 3-25: Hàm searchCongNhan()
Hàm searchCongNhan(): tìm kiếm thơng tin cơng nhân - Khởi tạo 1 ArrayList để chứa kết quả tìm tiếm kỹ sư
- Câu lệnh sql thực hiện truy vấn thông tin cán bộ trong bảng CanBo với ChucVu là “Công nhân”
- Sử dụng phương thức executeQuery() của ResultSet để thực thi câu lệnh
- Set các thuộc tính của lớp CongNhan theo các thuộc tính tương ứng ở bảng CanBo trong sql
- Sau đó add vào list
(1) Khai báo biến String s, gán s là giá trị của textbox (2) Sử dụng ArrayList tạo các list:
- listSearch lấy giá trị của hàm UserDAO.search()
- listNhanVien lấy giá trị của hàm UserDAO.searchNhanVien() - listSearch lấy giá trị của hàm UserDAO.searchCongNhan() (3) Nếu các tất cả các list đều null thì dùng hàm
showMessageDialog() để hiện thị thơng báo khơng tìm thấy (4) Ngược lại thì hiện thị kết quả
Sự kiện của button “làm mới”
Set text cho textbox = null và trả về danh sách cán bộ ban đầu
3.3.5. Thay đổi thơng tin – phía người dùng
Set id và password cho jTxtID và jTxtPassword
Cũng bằng phương pháp gán giá trị như đã làm với label ở phía trên, thì ở đây ta cũng gán giá trị cho jTxtID và jTxtUsername ở class update_ForUser()
Sử dụng showConfirmDialog để hiện thị thông báo, nếu chọn Yes thì setVisible() của giao diện này bằng flase chức năng kết thúc
Sự kiện click nút “Cập nhật” Hàm update ở class DAO()
Hình 3-26: Hàm updateCanBo()
Đặt tên hàm là updateCanBo() có tham số truyền vào là CanBo. Viết câu lệnh sql select ra thơng tin với ID được truyền vào. Sau đó set các giá trị của PreparedStatement bằng các tham số và giá trị tương ứng. Tiến hàng executeUpdate(). Nếu trả về kết quả >0 thì thành cơng và ngược lại
Sử dụng phương thức getText() để lấy giá trị của jTextField, kiểm tra nếu chúng là null thì dùng showMessageDialog để thơng báo
Nếu chúng khác null thì gọi constructor CanBo() rồi set các thơng tin tương ứng sau đó click cập nhật và nó hiện ra dialog xác nhận. Nếu kết quả trả về của hàm updateCanBo trả về true thì dùng showMessageDialog() để đưa ra thơng báo
Nếu chọn no thì setText của các textbox là null, các lựa chọn radioButton, combox đều là false
3.3.6. Hiển thị dữ liệu phía người quản trị
Hàm hiển thị danh sách kỹ sư ,nhân viên phục vụ và công nhân Hàm showAllList() hiển thị danh sách cán bộ
Khai báo biến i=1, sử dụng hàm setRowCount(0) gán các cột của bảng model về 0
Dùng vòng lặp foreach đọc lần lượt các đối tượng của lớp KySu sau đó add các giá trị vào bảng bằng cách sử dụng hàm addRow().
3.3.7. Thêm nhân sự
Các hàm thêm nhân viên trong class DAO(). Hàm thêm nhân viên
Lấy dữ liệu cho Admin
- Khởi tạo 1 ArrayList để chứa kết quả
- Câu lệnh sql thực hiện truy vấn thông tin cán bộ trong bảng CanBo với ChucVu là “Nhân viên”
- Sử dụng phương thức executeQuery() của ResultSet để thực thi câu lệnh
- Set các thuộc tính của lớp NhanVien theo các thuộc tính tương ứng ở bảng CanBo trong sql
- Sau đó add vào list
Kiểm tra Username đã tồn tại hay chưa, nếu đã tồn tại dùng hàm showMessageDialog để hiển thị thông báo
Nếu thoản mãn các điều kiện ,cho phép thêm và sử dụng showConfỉmDialog để thông báo thêm thành công và ngược lại
Sự kiện “Thốt”
3.3.8. Thay đổi thơng tin phía người quản trị
Sự kiện click “ Thoát”
Hàm update ở class DAO()
Đặt tên hàm là updateCanBo() có tham số truyền vào là CanBo Viết câu lệnh sql select ra thông tin với ID được truyền vào
Sau đó set các giá trị của PreparedStatement bằng các tham số và giá trị tương ứng
Tiến hàng executeUpdate(). Nếu trả về kết quả >0 thì thành cơng và ngược lại
Sử dụng phương thức getText() để lấy giá trị của jTextField, kiểm tra nếu chúng là null thì dùng showMessageDialog để thơng báo
Nếu chúng khác null thì gọi constructor CanBo() rồi set các thông tin tương ứng sau đó click cập nhật và nó hiện ra dialog xác nhận. Nếu kết quả trả về của hàm updateCanBo trả về true thì dùng showMessageDialog() để đưa ra thơng báo
- Nếu thành cơng thì setVisible() cho giao diện này bằng false - Nếu chọn no thì setText của các textbox là null, các lựa chọn
radioButton, combox đều là false
3.3.9. Xóa cán bộ
Tại giao diện hiển thị phía người quản trị, người quản trị click chọn bản ghi muốn xóa và chọn xóa.
Sau đó xuất hiện hộp thoại xác nhận ID của cán bộ muốn xóa, người quản trị có thể sửa ID của cán bộ muốn xóa.
Các sự kiện:
- Khi chọn nút “Làm mới”, khu vực nhập ID của cán bộ cần xóa được làm mới, người quản trị có thể nhập ID của cán bộ khác.
- Khi chọn nút “Xóa”, xuât hiện hộp thoại xác nhận xóa người dùng.
Người quản trị chọn “Yes” hoặc “No” để thực hiện xóa hoặc khơng xóa.
- Trong trường hợp người quản trị khơng chọn bản ghi để xóa hoặc ID bị trống nhưng người quản trị vẫn thực hiện xóa, hệ thống sẽ đưa ra thơng báo nhắc nhở.
Hình 3-27: Xử lý sự kiện xóa ở giao diện chính
Khi người quản trị chọn một bản ghi ở giao diện chính, hệ thống sẽ ghi lại bản ghi đó. Khởi tạo một đối tượng thể hiện lớp Delete và truyền giá trị ID của Cán bộ muốn xóa qua phương thức deleteSet()
Người quản trị chọn button Xóa trên màn hình và xác nhận xóa, q trình xóa sẽ xảy ra.
Khai báo đối tượng thể hiện lớp DAO() và gọi đến phương thức xóa với tham số truyền vào là đối tượng muốn xóa. Kết quả sẽ được ghi lại và hiển thị ra màn hình theo điều kiện xóa thành cơng hoặc thất bại.
3.3.10. Sắp xếp cán bộ
Tại hai bên giao diện người dùng và giao diện người quản trị đều thực hiện chức năng sắp xếp.
Khi người dùng chọn sắp xếp theo năm sinh hoặc sắp xếp theo họ tên, chức năng tương ứng sẽ được thực hiện.
CHƯƠNG 4. KẾT QUẢ ĐẠT ĐƯỢC
Qua q trình phần tich bài tốn, xây dựng và phát triển phần mềm, chương trình đã hồn thiện ở mức cơ bản. Các chức năng cần có của bài toán đã được xây dựng và hoạt động đúng mục đích được đề ra.
Tuy vậy, vì thời gian khơng có nhiều phần mềm cịn một số khuyến điểm về giao diện và các chức năng chưa phong phú.