Nguyễn Phú Luật– Use case “Quản lý hóa đơn nhập”

Một phần của tài liệu Bài tập lớn JAVA QUẢN LÝ KHO CHO SHOP THỜI TRANG (Trang 40 - 45)

- Giao diện trực quan, dể sử dụng.

2.2.2Nguyễn Phú Luật– Use case “Quản lý hóa đơn nhập”

5) Giao diện vào/ra (Màn hình cài đặt)

Hình 2.4: Giao diện chức năng quản lý hóa đơn nhập

Khi người dùng nhấn vào ô “Quản lý hóa đơn nhập” trên màn hình quản lý chính. Hệ thống sẽ hiên thị ra một form quản lý tương ứng ngay bên cạnh. Nếu người dùng nhấn vào một ô bất kỳ nào trên menu quản lý chính thì form quản lý hóa đơn nhập sẽ tắt đi.

Hình 2.5: Mô tả các thành phần trên giao diện chức năng quản lý hóa đơn nhập

7) Mô tả thuật toán xử lý tương ứng với các tác động của người dùng.

• Khi người dùng bấm vào nút “Watch detail and Delete bill” thì hệ thống show ra một form với nội dung tương ứng cho người dùng thao tác.

Code:

xemxoa.show(); //đây là một jpanel được thêm vào panel manageBill.

• Sau khi panel xem, xóa hóa đơn hiện lên thì người dùng có thể thực hiện chức năng xem chi tiết hóa đơn, hay xóa một hóa đơn bất kì.

o Xem hóa đơn: Người dùng nhấn chọn một hóa đơn rồi nhấn nút xem, hệ thống sẽ hiển thị thông tin chi tiết hóa đơn ngay bên dưới.

Code:

private void btnXemMousePressed(java.awt.event.MouseEvent evt) { // TODO add your handling code here:

boolean flag = false;

for(int i = 0; i < tableDS.getRowCount(); i++){ if(tableDS.isRowSelected(i) == true){ flag = true; break; } } if(flag == false){

JOptionPane.showConfirmDialog(null, "Bạn chưa chọn hóa đơn muốn xem.", "CHÚ Ý", JOptionPane.PLAIN_MESSAGE);

} else{

BUSCTHoaDonNhap ct = new BUSCTHoaDonNhap(); int d = tableDS.getSelectedRow();

String maHD = tableDS.getValueAt(d, 0).toString(); txtMa1.setText(maHD);

txtNgay.setText(tableDS.getValueAt(d, 1).toString());

String tongDoanhThu = tableDS.getValueAt(d, 2).toString(); int tien = Integer.parseInt(tongDoanhThu);

txtTongHoaDon.setText(DinhDangTien(tien)); tAChu.setText(chu(tien));

//Load du lieu vao bang chi tiet hoa don

DefaultTableModel mol = new DefaultTableModel(); // get data from database

ResultSet rs = ct.getCTHoaDonNhap(maHD); try {

// load column name

ResultSetMetaData rsMD = rs.getMetaData(); int colNumber = rsMD.getColumnCount(); String[] arr = new String[colNumber]; for (int i = 0; i < colNumber; i++) { arr[i] = rsMD.getColumnName(i + 1); }

mol.setColumnIdentifiers(arr); // load data from database to table while (rs.next()) {

for (int i = 0; i < colNumber; i++) { arr[i] = rs.getString(i + 1); } mol.addRow(arr); } } catch (SQLException e) { } tableCT.setModel(mol); if(rs!=null){ xemChitiet=true; } } }

Xóa hóa đơn: Người dùng nhấn chọn một hóa đơn rồi nhấn nút xóa, hệ thống sẽ hiển thị thông báo hỏi người dùng có muốn xóa hóa đơn hay không, nếu người dùng nhấn “Yes” thì hệ thống sẽ tiếp tục thực thi và cập nhật lại thông tin, ngược lại nhấn “No” thì hệ thống không thay đổi gì.

Code:

private void btnXoaMousePressed(java.awt.event.MouseEvent evt) { // TODO add your handling code here:

boolean flag = false;

for(int i = 0; i < tableDS.getRowCount(); i++){ if(tableDS.isRowSelected(i) == true){ flag = true; break; } } if(flag == false){

JOptionPane.showConfirmDialog(null, "Bạn chưa chọn hóa đơn muốn xoá.", "CHÚ Ý", JOptionPane.PLAIN_MESSAGE);

} else {

int returnValue = 0;

returnValue = JOptionPane.showConfirmDialog(null, "Bạn có chắc muốn xóa hóa đơn vừa chọn?", "CHÚ Ý", JOptionPane.YES_NO_OPTION);

if (returnValue == JOptionPane.YES_OPTION){

BUSCTHoaDonXuat cth = new BUSCTHoaDonXuat(); int d = tableDS.getSelectedRow();

String hd_id = tableDS.getValueAt(d, 0).toString(); cth.deleteCTHHoaDonXuat(hd_id);

BUSHoaDonXuat DonXuat = new BUSHoaDonXuat(); DonXuat.deleteHoaDonXuat(hd_id);

loadData(); }

} }

8) Hướng dẫn sử dụng các thư viện chuẩn.

Các thư viện chuẩn sử dụng trong use case này: import java.sql.ResultSet; import java.sql.ResultSetMetaData; import java.sql.SQLException; import javax.swing.JOptionPane; import javax.swing.table.DefaultTableModel; Giải thích ý nghĩa:

- Thư viện java.sql.ResultSet là thư viện dùng để sử dụng đối tượng ResultSet phục vụ cho việc lấy về một tập kết quả với các câu lệnh truy vấn Sql.

- Thư viện java.sql.ResultSetMetaData được sử dụng để đổ dữ liệu từ tập kết quả ta đã thu được từ ResultSet lên JTable.

- Thư viện java.sql.SQLException để bắt các lỗi liên quan đến việc thực thi các câu lệnh sql.

- Thư viện java.sql.JOptionPane được sử dụng để hiện thị các thông báo lên màn hình khi cần thiết.

- Thư viện javax.swing.table.DefaultTableModel quan trọng trong java swing vì nó sử dụng để đổ dữ liệu lên table, bởi vì bản thân table chỉ là nơi chứa dữ liệu nó không có khả năng giao tiếp với các đối tượng có kiểu dữ liệu khác table ở bên ngoài. Nên ta cần sử dụng thêm một đối tượng tableModel để có thể giao tiếp với table và để việc thực hiện các chức năng trên table dễ dàng hơn.

Một phần của tài liệu Bài tập lớn JAVA QUẢN LÝ KHO CHO SHOP THỜI TRANG (Trang 40 - 45)