Màn hình Lý do thanh lý

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 75 - 80)

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

4.6 Màn hình Lý do thanh lý

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

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

1 LDList ListView

2 txtTenLyDo 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 lý do thanh lý cũng được cài đặt thành 2 lớp: Một lớp là LyDoThanhLy_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 - LyDoThanhLy.

4.6.1 Lớp LyDoThanhLy_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 lý do thanh lý đã có trong cơ sở dữ liệu lên trên listview. Do đó, trong hàm LyDoThanhLy_Form_Load ta sẽ gọi hàm HienThiDanhSachLyDo như sau:

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

HienThiDanhSachLyDo() End Sub

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

Private Sub HienThiDanhSachLyDo() LDList.Items.Clear()

Dim i As Integer Dim str As String Dim dt As DataTable dt = ld.LayDanhSachLyDo 'Hiển thị danh sách lý do For i = 0 To dt.Rows.Count - 1 Dim lvi As ListViewItem

lvi = LDList.Items.Add((i + 1).ToString) str = dt.Rows(i)("TenLyDo")

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 lý do thanh lý được trả ra từ phương thức LayDanhSachLyDo rồi đưa lên trên listview. Còn phương thức LayDanhSachLyDo là một phương thức thuộc lớp LyDoThanhLy, 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 các 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 txtTenLyDo.Text <> "" Then ld.ThemLyDo(txtTenLyDo.Text) HienThiDanhSachLyDo()

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

Else

MessageBox.Show("Bạn chưa nhập Lý do", "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 LDList.SelectedIndices.Count > 0 Then Dim str As String

str =

LDList.Items(LDList.SelectedIndices.Item(0)).SubItems(1).Text() If MessageBox.Show("Bạn có chắc chắn là muốn xóa lý do '" + str

+ "' không ?", "Hỏi lại", MessageBoxButtons.YesNo, MessageBoxIcon.Question) = DialogResult.Yes Then ld.XoaLydo(LDList.SelectedIndices.Item(0)) HienThiDanhSachLyDo()

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

78

MessageBox.Show("Bạn phải chọn 1 dòng 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 LDList.SelectedIndices.Count > 0 Then If txtTenLyDo.Text <> "" Then

ld.CapNhatLyDo(LDList.SelectedIndices.Item(0), txtTenLyDo.Text)

HienThiDanhSachLyDo()

MessageBox.Show("Lý do '" + txtTenLyDo.Text + "' đã được cập nhật thành công", "Thông báo", MessageBoxButtons.OK,

MessageBoxIcon.Information) txtTenLyDo.Text = ""

End If Else

MessageBox.Show("Bạn phải chọn 1 dòng 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

txtTenLyDo.Text = ""

End Sub

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

Private Sub LDList_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles LDList.SelectedIndexChanged

If LDList.SelectedIndices.Count > 0 Then txtTenLyDo.Text =

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

End Sub

4.6.2 Lớp LyDoThanhLy

Lớp LyDoThanhLy Thuộc tính

Tên Lớp Ý nghĩa

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)

LayDanhSachLyDo Lấy danh sách các lý do thanh lý từ cơ sỏ dữ liệu ThemLyDo Thêm 1 lý do thanh lý vào CSDL

XoaLyDo Xóa một lý do thanh lý khỏi CSDL CapNhatLyDo Cập nhật lại thông tin của 1 lý do thanh lý 4.6.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.6.2.2 LayDanhSachLyDo Kết quả trả về:

Kiểu / Lớp Ý nghĩa

DataTable Danh sách các lý do thanh lý có trong CSDL Mã nguồn:

Public Function LayDanhSachLyDo() As DataTable

ld_dt = db.Execute("Select * from LYDOTHANHLY order by TenLyDo") Return ld_dt

End Function

4.6.2.3 ThemLyDo 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 ThemLyDo(ByVal ten As String) Dim dt As DataTable

dt = db.Execute("select MaLyDo from LYDOTHANHLY where MaLyDo >= all (select MaLyDo from LYDOTHANHLY)")

'Chung ta biet chac rang dt chi co 1 dong Dim MaLD As Integer

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

str = "Insert into LYDOTHANHLY values(" + MaLD.ToString + ",N'" + ten + "')"

db.ExecuteNonQuery(str)

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

80

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

index Integer Số thứ tự của lý do cần xóa. Lưu ý rng thứ tự các lý do đượ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 XoaLyDo(ByVal index As Integer) Dim str As String

str = "delete from LYDOTHANHLY where MaLyDo = " + ld_dt.Rows(index)("MaLyDo").ToString

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

4.6.2.5 CapNhatLyDo Tham số:

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

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

Mã nguồn:

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

str = "Update LYDOTHANHLY set TenLyDo = N'" + ten + "' where MaLyDo

= " + ld_dt.Rows(index)("MaLyDo").ToString db.ExecuteNonQuery(str)

'update data table LayDanhSachLyDo() 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 75 - 80)

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

(178 trang)