Màn hình chi tiết trả sách

Một phần của tài liệu Hướng dẫn cài đặt chương trình quản lý thư viện (Trang 136 - 141)

Chương 5 Xây dựng các màn hình quản lý

5.7 Màn hình chi tiết trả sách

Xây dựng màn hình theo hình sau:

STT Tên Control Loại Tiêu đề (Caption)

1 lblDocGia Label “Độc giả”

2 lblTenDocGia Label Họ tên độc giả

3 lblNgayTra Label “Ngày trả”

4 lblNgay Label Giá trị ngày trả

5 group1 GroupBox

6 lblSachMuon Label “Sách đang mượn”

7 lblSach Label Giá trị số sách đang mượn

8 SDMList ListView

9 btnChon Button “Chọn”

Chương 5 - Xây dựng các màn hình quản lý

138 Màn hình chi tiết trả sách được cài đặt thành 2 lớp: lớp ChiTietPhieuTra_Form là lớp giao diện và lớp PhieuTraSach là lớp xử lý chính. Trong đó, lớp PhieuTraSach đã trình bày ở trên.

5.7.1 ChiTietPhieuTra_Form

Bên cạnh các controls mô tả ở trên, lớp ChiTietPhieuTra_Form còn các biến thành phần và phương thức như sau:

Lớp ChiTietPhieuTra_Form Thuộc tính

Tên Lớp Ý nghĩa

pt PhieuTraSach biến thành phần đảm nhận

việc xử lý thông tin

MaPhieuTra Integer Mã của phiếu trả hiện hành

MaDocGia Integer Mã độc giả của phiếu trả

hiện hành

TongTienPhat Double Tổng tiến phạt của phiếu trả hiện hành

Các hàm xử lý biến cố

Tên Điều kiện phát sinh Ý nghĩa

ChiTietPhieuTra_Form_Load Form load Hiện thị dách sách sách đã trả và chưa trả của phiếu này

btnChon_Click Người dùng nhấn btnChon Trả một quyển sách btnBoChon_Click Người dùng nhấn

btnBoChon

Hủy trả một quyển sách SMList_DoubleClick Người dùng double click

SMList

Trả một quyển sách STList_DoubleClick Người dùng double click

STList

Hủy trả một quyển sách Phương thức

Tên Ý nghĩa

HienThiDanhSachSachMuon Hiển thị danh sách sách đang mượn còn chưa trả HienThiDanhSachSachTra Hiển thị danh sách mượn đã trả

ThemSachTra Đưa một quyển sách đang mượn vào danh sách sách trả (trả sách)

XoaSachTra Đưa một quyển sách từ danh sách trả về lại danh sách sách mượn

Khi màn hình vừa được load, ứng dụng phải hiển thị được cho người dùng thông tin về độc giả cần trả sách, danh sách các quyển sách đang mượn và danh sách các quyển sách đã trả ứng với phiếu trả đang xét. Do đó, chúng ta cài đặt hàm xử lý cho sự kiện form load:

Private Sub ChiTietPhieuTra_Form_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

HienThiDanhSachSachMuon()

HienThiDanhSachSachTra() End Sub

Các hàm hiển thị được cài đặt như sau:

Private Sub HienThiDanhSachSachMuon() SMList.Items.Clear()

Dim s_dt As DataTable = pt.LayDanhSachSachMuon(MaDocGia) Dim i As Integer

Dim str As String

Dim lvi As ListViewItem Dim d As Date

For i = 0 To s_dt.Rows.Count - 1 str = s_dt.Rows(i)("TenSach")

lvi = SMList.Items.Add((i + 1).ToString) str = s_dt.Rows(i)("MaSach")

lvi.SubItems.Add(str)

str = s_dt.Rows(i)("TenSach") lvi.SubItems.Add(str)

str = s_dt.Rows(i)("TenTheLoai") lvi.SubItems.Add(str)

str = s_dt.Rows(i)("TacGia") lvi.SubItems.Add(str)

d = s_dt.Rows(i)("NgayMuon")

str = d.Month.ToString + "/" + d.Day.ToString + "/" + d.Year.ToString

lvi.SubItems.Add(str) Next

txtNumSM.Text = s_dt.Rows.Count.ToString End Sub

Private Sub HienThiDanhSachSachTra() STList.Items.Clear()

Dim s_dt As DataTable = pt.LayDanhSachSachTra(MaPhieuTra) Dim i As Integer

Dim str As String

Dim lvi As ListViewItem Dim songayphat As Integer Dim d As Date

TongTienPhat = 0

Dim tienphat As Double

For i = 0 To s_dt.Rows.Count - 1 str = s_dt.Rows(i)("TenSach")

lvi = STList.Items.Add((i + 1).ToString) str = s_dt.Rows(i)("MaSach")

lvi.SubItems.Add(str)

str = s_dt.Rows(i)("TenSach")

Chương 5 - Xây dựng các màn hình quản lý

140

lvi.SubItems.Add(str) 'Tính tiền phạt

songayphat = s_dt.Rows(i)("SoNgayMuon") - pt.DocThamSo("ThoiGianMuonToiDa")

If songayphat > 0 Then

tienphat = pt.DocThamSo("DonGiaPhat") * songayphat str = tienphat.ToString

TongTienPhat = TongTienPhat + tienphat Else

str = "0"

End If

lvi.SubItems.Add(str) Next

txtNumST.Text = s_dt.Rows.Count.ToString End Sub

Tất cả các công việc liên quan đến đọc và xử lý dữ liệu đều được ủy nhiệm cho biến thành phần pt thụoc lớp PhieuTraSach chứ không thực hiện trực tiếp ở lớp gian diện này. Các phương thức ở lớp này chỉ đơn giản làm việc nhận kết quả trả về từ biến pt và hiển thị lên màn hình.

Tiếp theo, chúng ta bắt đầu cài đặt chức năng cho màn hình. Trước tiên, ta cài đặt hàm xử lý cho sự kiện click của nút btnChon. Khi người dùng chon 1 quyển sách đang mượn và click nút này, sách này sẽ được chuyển qua danh sách sách trả.

Private Sub btnChon_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnChon.Click

ThemSachTra() End Sub

Hàm ThemSachTra được cài đặt như sau:

Private Sub ThemSachTra()

If (SMList.SelectedIndices.Count > 0) Then

'Kiểm tra xem người dùng này đã mược đủ 5 quyển chưa Dim lvi As ListViewItem = SMList.SelectedItems(0) 'Cập nhật lại CSDL

pt.ThemSachTra(MaPhieuTra.ToString, lvi.SubItems(1).Text, _ CDate(SMList.Items(SMList.SelectedIndices.Item(0)).SubItems(5).T ext), CDate(txtNgayTra.Text))

'Refresh

HienThiDanhSachSachMuon() HienThiDanhSachSachTra()

End If End Sub

Ta có thể dễ thấy, tất cả xử lý đều được ủy nhiệm cho biến pt thuộc lóp PhieuTraSach. Tương tự, ta cài đặt chức năng loại một quyển sách ra khỏi danh sách sách trả:

Private Sub btnBoChon_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnBoChon.Click

XoaSachTra() End Sub

Private Sub XoaSachTra()

If STList.SelectedIndices.Count > 0 Then

Dim lvi As ListViewItem = STList.SelectedItems(0) 'Cập nhật CSDL

pt.XoaSachTra(MaPhieuTra.ToString, lvi.SubItems(1).Text) 'Refresh

HienThiDanhSachSachMuon() HienThiDanhSachSachTra()

End If End Sub

Để tăng tính tiện dụng cho chương trình, thay vì cứ phải chọn 1 quyển sách rồi nhấn nút Chọn hay bỏ chọn, người dụng có thể double click trên danh sách sách mượn hay danh sách sách trả để tiến hành trả 1 quyển sách hay loại sách ra khỏi danh sách sách trả.

Private Sub SMList_DoubleClick(ByVal sender As Object, ByVal e As System.EventArgs) Handles SMList.DoubleClick

ThemSachTra() End Sub

Private Sub STList_DoubleClick(ByVal sender As Object, ByVal e As System.EventArgs) Handles STList.DoubleClick

XoaSachTra() End Sub

Một phần của tài liệu Hướng dẫn cài đặt chương trình quản lý thư viện (Trang 136 - 141)

Tải bản đầy đủ (PDF)

(178 trang)