Màn hình thể loại 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 70 - 75)

Chương 4 Xây dựng các màn hình danh mục

4.5 Màn hình thể loại sách

Tương tự chúng ta thiết kế màn hình thể loại sách như sau

STT Tên Control Loại Tên hàm xử lý

1 TLList ListView

2 txtTenTheLoai TextBox

3 btnThem Button btnThem_Click

4 btnXoa Button btnXoa_Click

5 btnCapNhat Button btnCapNhat_Click

6 btnSoanLai Button btnSoanLai_Click

Màn hình thể loại sách cũng được cài đặt thành 2 lớp: Một lớp là TheLoaiSach_Form, lớp Form với các Controls trên nó (như hình trên), lớp còn lại có vai trò xử lý cho form này - TheLoaiSach.

4.5.1 Lớp TheLoaiSach_Form

Trước hết, khi form được load lên ta cần hiển thị các thông tin về các thể loại sách đã có trong cơ sở dữ liệu lên trên listview. Do đó, trong hàm TheLoaiSach_Form_Load ta sẽ gọi hàm HienThiDanhSachTheLoaiSach như sau:

Private Sub TheLoaiSach_Form_Load(ByVal sender As System.Object, ByVal e As

Chương 4 - Xây dựng các màn hình danh mục

72

Private Sub HienThiDanhSachTheLoai() TLList.Items.Clear()

Dim i As Integer Dim str As String Dim dt As DataTable

dt = tl.LayDanhSachTheLoai

'Hiển thị danh sách thể loại sách For i = 0 To dt.Rows.Count - 1 Dim lvi As ListViewItem

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

lvi.SubItems.Add(str) Next

End Sub

Mục tiêu của hàm này là lấy thông tin các thể loại sách được trả ra từ phương thức LayDanhSachTheLoaiSach rồi đưa lên trên listview. Còn phương thức

LayDanhSachTheLoaiSach là một phương thức thuộc lớp TheLoaiSach, sẽ được đề cập trong phần sau.

Tiếp theo, tương tự như trong màn hình bằng cấp, chúng ta phát sinh các sự kiện click cho cac nút nhấn Thêm, Xóa, Cập nhậtSoạn lại và tiến hành cài đặt như sau:

Private Sub btnThem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnThem.Click

If txtTenTheLoai.Text <> "" Then

tl.ThemTheLoai(txtTenTheLoai.Text) HienThiDanhSachTheLoai()

MessageBox.Show("Thêm thành công", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Information) txtTenTheLoai.Text = ""

Else

MessageBox.Show("Bạn chưa nhập tên thể loại", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Warning)

End If End Sub

Private Sub btnXoa_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnXoa.Click

If TLList.SelectedIndices.Count > 0 Then Dim str As String

str =

TLList.Items(TLList.SelectedIndices.Item(0)).SubItems(1).Text If MessageBox.Show("Bạn có chắc chắn là muốn xóa thể loại '" +

str + "' không ?", "Hỏi lại", MessageBoxButtons.YesNo, MessageBoxIcon.Question) = DialogResult.Yes Then

tl.XoaTheLoai(TLList.SelectedIndices.Item(0)) 'Xoa theloai nay khoi list

TLList.Items.Remove(TLList.SelectedItems(0)) 'Thông báo xóa thành công

MessageBox.Show("Thể loại '" + txtTenTheLoai.Text + "' đã được xóa.", "Thông báo", MessageBoxButtons.OK,

MessageBoxIcon.Information) txtTenTheLoai.Text = ""

End If Else

MessageBox.Show("Bạn phải chọn 1 thể loại trong danh sách trước", "Thông báo", MessageBoxButtons.OK,

MessageBoxIcon.Exclamation) End If

End Sub

Private Sub btnCapNhat_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnCapNhat.Click

If TLList.SelectedIndices.Count > 0 Then If txtTenTheLoai.Text <> "" Then

tl.CapNhatTheLoai(TLList.SelectedIndices.Item(0), txtTenTheLoai.Text)

HienThiDanhSachTheLoai()

MessageBox.Show("Thể loại '" + txtTenTheLoai.Text + "' đã được cập nhật thành công", "Thông báo",

MessageBoxButtons.OK, MessageBoxIcon.Information) txtTenTheLoai.Text = ""

End If Else

MessageBox.Show("Bạn phải chọn 1 thể loại trong danh sách trước", "Thông báo", MessageBoxButtons.OK,

MessageBoxIcon.Exclamation) End If

End Sub

Private Sub btSoanLai_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btSoanLai.Click

txtTenTheLoai.Text = ""

End Sub

Và sau đó chúng ta phát sính sự kiện SelectedTextChanged của control TLList tương tự như màn hình bằng cấp ở trên, và cài đặt như sau:

Private Sub TLList_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles TLList.SelectedIndexChanged

If TLList.SelectedIndices.Count > 0 Then txtTenTheLoai.Text =

TLList.Items(TLList.SelectedIndices.Item(0)).SubItems(1).Text End If

Chương 4 - Xây dựng các màn hình danh mục

74

Db Database Đảm nhiệm việc giao tiếp với

CSDL

tl_dt DataTable Chứa danh sách các chức vụ

Phương thức

Tên Ý nghĩa

New Hàm tạo (Constructor)

LayDanhSachTheLoai Lấy danh sách các thể loại sách từ cơ sỏ dữ liệu ThemTheLoai Thêm 1 thể loại sách vào CSDL

XoaTheLoai Xóa một thể loại sách khỏi CSDL CapNhatTheLoai Cập nhật lại thông tin của 1 thể loại sách 4.5.2.1 Hàm tạo

Mã nguồn:

Public Sub New()

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

‘SvrName và DbName là 2 biến tĩnh (shared) của lớp MainForm) End Sub

4.5.2.2 LayDanhSachTheLoai Kết quả trả về:

Kiểu / Lớp Ý nghĩa

DataTable Danh sách các thể loại sách có trong CSDL Mã nguồn:

Public Function LayDanhSachTheLoai() As DataTable

tl_dt = db.Execute("Select * from THELOAISACH order by MaTheLoai") Return tl_dt

End Function

4.5.2.3 ThemTheLoai Tham số:

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

ten String Tên thể loại sách cần thêm vào (mã thể loại sách tương ứng sẽ được chương trình tự phát sinh)

Mã nguồn:

Public Sub ThemTheLoai(ByVal ten As String) Dim dt As DataTable

dt = db.Execute("select MaTheLoai from THELOAISACH where MaTheLoai

>= all (select MaTheLoai from THELOAISACH)") 'Chung ta biet chac rang dt chi co 1 dong Dim MaTL As Integer

MaTL = dt.Rows(0)(0) + 1 Dim str As String

str = "Insert into THELOAISACH values(" + MaTL.ToString + ",N'" + ten + "')"

db.ExecuteNonQuery(str)

LayDanhSachTheLoai() End Sub

4.5.2.4 XoaTheLoai Tham số:

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

index Integer Số thứ tự của thể loại cần xóa. Lưu ý rng thứ tự các thể loại được đưa lên màn hình hiển thị phải giống với thứ tự chúng được lấy ra bằng câu lệnh Select.(chú ý bỏ thuộc tính sort của ListView)

Mã nguồn:

Public Sub XoaTheLoai(ByVal index As Integer) Dim str As String

str = "delete from THELOAISACH where MaTheLoai = " + tl_dt.Rows(index)("MaTheLoai").ToString

db.ExecuteNonQuery(str) 'update data table tl_dt tl_dt.Rows.RemoveAt(index) End Sub

4.5.2.5 CapNhatTheLoai Tham số:

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

Index Integer Số thứ tự của thể loại cần xóa. Lưu ý rng thứ tự các thể loại sách được đưa lên màn hình hiển thị phải giống với thứ tự chúng được lấy ra bằng câu lệnh Select.

Ten String Tên thể loại sách cần cập nhật.

Mã nguồn:

Public Sub CapNhatTheLoai(ByVal index As Integer, ByVal ten As String) Dim str As String

str = "Update THELOAISACH set TenTheLoai = N'" + ten + "' where MaTheLoai = " + tl_dt.Rows(index)("MaTheLoai").ToString

db.ExecuteNonQuery(str) 'update data table bc_dt LayDanhSachTheLoai() 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 70 - 75)

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

(178 trang)