Xây dựng các màn hình Báo cáo – Thống kê

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 173 - 178)

Do công việc báo cáo thống kê chủ yếu là tìm kiếm và tính toán, do đó ta xây dựng một lớp xử lý cho tất cả các màn hình thống kê – lớp BaoCaoThongKe. Lớp này sẽ gồm các phương thức nhận vào tiếu chí thông kế, và trả ra bảng dữ liệu ứng với kết quả tìm kiếm.

Lớp BaoCaoThongKe Thuộc tính

Tên Lớp Ý nghĩa

db Database Giao tiếp CSDL

Phương thức

Tên Ý nghĩa

New Hàm tạo

TinhHinhMuonSach Thống kê tình hình mượn sách DocGiaNoTienPhat Thống kê độc giả nợ tiền phạt 6.1.1 New

Public Sub New()

db = New Database(MainForm.SvrName, MainForm.DbName, True, "", "") End Sub

6.1.2 TinhHinhMuonSach Tham số:

Tên Kiểu / Lớp Ý nghĩa

thang Integer Tháng cần thống kê

nam Integer Năm cần thống kê Kết quả trả về: DataTable

Mã nguồn:

Public Function TinhHinhMuonSach(ByVal thang As String, ByVal nam As String) As DataTable

Dim dt As DataTable Dim str As String

Phát sinh câu lệnh truy vấn chọn tất cả các quyển sách được mượn trong tháng/năm được chọn

str = "select TenTheLoai,count(s.MaSach) as SoLuotMuon " + _

"from PHIEUMUONSACH pm, CHITIETPHIEUMUON ct, SACH s, THELOAISACH tl "

Chương 6 - Xây dựng các màn hình báo cáo-thống kê

174 6.1.3 DocGiaNoTienPhat

Public Function DocGiaNoTienPhat() Dim dt As DataTable

Dim str As String

Phát sinh câu lênh truy vấn chọn tất cả những độc giả có số tiền phạt > 0

str = "Select HoTenDocGia,TienNo from DOCGIA where TienNo > 0"

dt = db.Execute(str) Return dt

End Function

6.2 Màn hình Thng kê tình hình mượn sách theo th loi

Màn hình này giúp người quản lý theo dõi thông tin mượn sách trong một tháng cụ thể. Người quản lý sẽ nhập tháng/năm vào và nhấn nút xem, tính hình mượn sách thuộc tất cả các thể loại sẽ được hiển thị trong listview. Xây dựng màn hình theo hình sau:

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

1 lblTieude Label “Báo cáo thống kê tình hình mượn sách theo thể loại”

2 lblThang Label “Tháng”

3 txtThang Textbox

4 lblNam Label “Năm”

5 txtNam Textbox

6 MSList Listview

7 lblTongSoLuotMuon Label “Tổng số lượt mượn”

8 lblTong Label “Tổng”

9 btnDong Button “Đóng”

10 btnXem Button “Xem”

Đối với màn hình này, ta chỉ đơn giản cài đặt hàm xử lý cho sự kiện click của button btnXem.

Private Sub btnXem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnXem.Click

'Kiểm tra điều kiện tháng/năm nhập vào

If (Not IsNumeric(txtThang.Text)) Or (Not IsNumeric(txtNam.Text)) Then MessageBox.Show("Thắng và năm nhập vào phải là số", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Warning)

Return End If

If txtThang.Text = "" Or txtNam.Text = "" Then

MessageBox.Show("Bạn phải nhập cả tháng và năm", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Warning)

Return End If

If CInt(txtThang.Text) < 1 Or CInt(txtThang.Text) > 12 Then MessageBox.Show("Thắng phải từ 1 đến 12", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Warning)

Return End If

TKList.Items.Clear()

Dim dt As DataTable = bctk.TinhHinhMuonSach(txtThang.Text, txtNam.Text) Dim i As Integer

Dim str As String

Dim lvi As ListViewItem Dim ratio As Double

Dim tongluotmuon As Long = 0 For i = 0 To dt.Rows.Count - 1

lvi = TKList.Items.Add((i + 1).ToString) str = dt.Rows(i)("TenTheLoai")

lvi.SubItems.Add(str)

tongluotmuon = tongluotmuon + dt.Rows(i)("SoLuotMuon")

Chương 6 - Xây dựng các màn hình báo cáo-thống kê

176

'Tính tỉ lệ

For i = 0 To dt.Rows.Count - 1

ratio = ((dt.Rows(i)("SoLuotMuon") / tongluotmuon)) * 100 str = Format(ratio, "#.00")

TKList.Items(i).SubItems.Add(str) Next

End Sub

Để chương trình được tiện dụng, ta cài đặt cho chương trình tại thời điểm form load có tháng cần xem là tháng hiện hành. Cài đặt hàm xử lý cho sự kiện form load như sau:

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

Dim d As Date = Today

txtThang.Text = d.Month.ToString txtNam.Text = d.Year.ToString End Sub

6.3 Màn hình Thng kê độc gi n tin pht

Màn hình Thống kê độc giả nợ tiền phạt cho phép theo dõi tình hình các độc giả nợ tiền phạt.

cho đến thời điểm hiện tại. Xây dựng màn hình như hình sau:

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

1 lblTieude Label “Báo cáo thống kê độc giả nợ tiền phạt”

2 lblNgay Label “Ngày”

3 lblNgayVal Label

4 TNList ListView

5 lblTongTienNo Label “Tổng tiền nợ”

6 lblTong Label

7 btnDong Button

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 173 - 178)

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

(178 trang)