Màn hình Loại độc giả

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 65 - 70)

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

4.4 Màn hình Loại độc giả

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

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

1 LDGList ListView 2 txtTenLoaiDocGia 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 loại độc giả được cài đặt thành 2 lớp: Một lớp là LoaiDocGia_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 -LoaiDocGia.

4.4.1 Lớp LoaiDocGia_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 loại độc giả đã có trong cơ sở dữ liệu lên trên listview. Do đó, trong hàm LoaiDocGia_Form_Load ta sẽ gọi hàm HienThiDanhSachLoaiDocGia như sau:

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

HienThiDanhSachLoaiDocGia() End Sub

Với hàm HienthiDanhSachLoaiDocGia được cài đặt như sau:

Private Sub HienThiDanhSachLoaiDocGia() LDGList.Items.Clear()

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

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

lvi = LDGList.Items.Add((i + 1).ToString) str = dt.Rows(i)("TenLoaiDocGia")

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 chức vụ được trả ra từ phương thức LayDanhSachLoaiDocGia rồi đưa lên trên listview. Còn phương thức

LayDanhSachLoaiDocGia là một phương thức thuộc lớp LoaiDocGia, 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 txtTenLoaiDocGia.Text <> "" Then

ldg.ThemLoaiDocGia(txtTenLoaiDocGia.Text) HienThiDanhSachLoaiDocGia()

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

txtTenLoaiDocGia.Text = ""

Else

MessageBox.Show("Bạn chưa nhập loại độc giả", "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 LDGList.SelectedIndices.Count > 0 Then Dim str As String

str =

LDGList.Items(LDGList.SelectedIndices.Item(0)).SubItems(1).Text If MessageBox.Show("Bạn có chắc chắn là muốn xóa Loại độc giả '"

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

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

68

End If Else

MessageBox.Show("Bạn phải chọn 1 loại độc giả 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 LDGList.SelectedIndices.Count > 0 Then If txtTenLoaiDocGia.Text <> "" Then

ldg.CapNhatLoaiDocGia(LDGList.SelectedIndices.Item(0), txtTenLoaiDocGia.Text)

HienThiDanhSachLoaiDocGia()

MessageBox.Show("Loại độc giả '" + txtTenLoaiDocGia.Text +

"' đã được cập nhật thành công", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Information) txtTenLoaiDocGia.Text = ""

End If Else

MessageBox.Show("Bạn phải chọn 1 loại độc giả 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

txtTenLoaiDocGia.Text = ""

End Sub

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

Private Sub LDGList_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles LDGList.SelectedIndexChanged

If LDGList.SelectedIndices.Count > 0 Then txtTenLoaiDocGia.Text =

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

End Sub

4.4.2 Lớp LoaiDocGia

Lớp LoaiDocGia Thuộc tính

Tên Lớp Ý nghĩa

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

CSDL

cv_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)

LayDanhSachLoaiDocGia Lấy danh sách các loại độcgiả từ cơ sỏ dữ liệu ThemLoaiDocGia Thêm 1 loại độc giả vào CSDL

XoaLoaiDocGia Xóa một loại độc giả khỏi CSDL CapNhatLoaiDocGia Cập nhật lại thông tin của 1 loại độc giả 4.4.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.4.2.2 LayDanhSachLoaiDocGia Kết quả trả về:

Kiểu / Lớp Ý nghĩa

DataTable Danh sách các loại độc giả có trong CSDL Mã nguồn:

Public Function LayDanhSachLoaiDocGia() As DataTable ldg_dt = db.Execute("Select * from LOAIDOCGIA") Return ldg_dt

End Function

4.4.2.3 ThemLoaiDocGia Tham số:

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

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

Mã nguồn:

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

dt = db.Execute("select MaLoaiDocGia from LOAIDOCGIA where MaLoaiDocGia >= all (select MaLoaiDocGia from LOAIDOCGIA)") 'Chung ta biet chac rang dt chi co 1 dong

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

70

LayDanhSachLoaiDocGia() End Sub

4.4.2.4 XoaLoaiDocGia Tham số:

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

index Integer Số thứ tự của loại độc giả cần xóa. Lưu ý rng thứ tự các loại độc giả đượ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 XoaLoaiDocGia(ByVal index As Integer) Dim str As String

str = "delete from LOAIDOCGIA where MaLoaiDocGia = " + ldg_dt.Rows(index)("MaLoaiDocGia").ToString

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

4.4.2.5 CapNhatLoaiDocGia Tham số:

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

Index Integer Số thứ tự của loại độc giả cần xóa. Lưu ý rng thứ tự các loại độc giả đượ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 loại độc giả cần cập nhật.

Mã nguồn:

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

str = "Update LOAIDOCGIA set TenLoaiDocGia = N'" + ten + "' where MaLoaiDocGia = " + ldg_dt.Rows(index)("MaLoaiDocGia").ToString db.ExecuteNonQuery(str)

'update data table bc_dt LayDanhSachLoaiDocGia() 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 65 - 70)

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

(178 trang)