Màn hình Bộ phận

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 55 - 60)

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

4.2 Màn hình Bộ phận

Chúng ta để ý rằng các màn hình danh mục này rất giống nhau về hình thức cũng như các sự

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

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

1 BPList ListView

2 txtTenBoPhan 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 bằng cấp được cài đặt thành 2 lớp: Một lớp là BoPhan_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 -BoPhan.

4.2.1 Lớp BoPhan_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 bộ phận đã có trong cơ sở dữ liệu lên trên listview. Do đó, trong hàm BoPhan_Form_Load ta sẽ gọi hàm

HienThiDanhSachBoPhan như sau:

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

HienThiDanhSachBoPhan() End Sub

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

Private Sub HienThiDanhSachBoPhan() BPList.Items.Clear()

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

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

lvi = BPList.Items.Add((i + 1).ToString) str = dt.Rows(i)("TenBoPhan")

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 bộ phận được trả ra từ phương thức

LayDanhSachBoPhan rồi đưa lên trên listview. Còn phương thức LayDanhSachBoPhan là một phương thức thuộc lớp BoPhan, 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 txtTenBoPhan.Text <> "" Then bp.ThemBoPhan(txtTenBoPhan.Text) HienThiDanhSachBoPhan()

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

Else

MessageBox.Show("Bạn chưa nhập tên bộ phận", "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 BPList.SelectedIndices.Count > 0 Then Dim str As String

str =

BPList.Items(BPList.SelectedIndices.Item(0)).SubItems(1).Text() If MessageBox.Show("Bạn có chắc chắn là muốn xóa bộ phận '" + str + "' không ?", "Hỏi lại", MessageBoxButtons.YesNo,

MessageBoxIcon.Question) = DialogResult.Yes Then bp.XoaBoPhan(BPList.SelectedIndices.Item(0)) BPList.Items.Remove(BPList.SelectedItems(0))

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

58

MessageBox.Show("Bạn phải chọn 1 bộ phận 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 BPList.SelectedIndices.Count > 0 Then If txtTenBoPhan.Text <> "" Then

bp.CapNhatBoPhan(BPList.SelectedIndices.Item(0), txtTenBoPhan.Text)

HienThiDanhSachBoPhan()

MessageBox.Show("Bộ phận '" + txtTenBoPhan.Text + "' đã được cập nhật thành công", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Information)

txtTenBoPhan.Text = ""

End If Else

MessageBox.Show("Bạn phải chọn 1 bộ phận 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

txtTenBoPhan.Text = ""

End Sub

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

Private Sub BPList_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles BPList.SelectedIndexChanged

If BPList.SelectedIndices.Count > 0 Then txtTenBoPhan.Text =

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

End Sub

4.2.2 Lớp BoPhan

Lớp BoPhan Thuộc tính

Tên Lớp Ý nghĩa

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

CSDL

bp_dt DataTable Chứa danh sách các bộ phận

Phương thức

Tên Ý nghĩa

New Hàm tạo (Constructor)

LayDanhSachBoPhan Lấy danh sách các bộ phận từ cơ sỏ dữ liệu ThemBoPhan Thêm 1 loại bộ phận vào CSDL

XoaBoPhan Xóa một loại bộ phận khỏi CSDL CapNhatBoPhan Cập nhật lại thông tin của 1 loại bộ phận 4.2.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.2.2.2 LayDanhSachBoPhan Kết quả trả về:

Kiểu / Lớp Ý nghĩa

DataTable Danh sách các loại bộ phận có trong CSDL Mã nguồn:

Public Function LayDanhSachBoPhan() As DataTable

bp_dt = db.Execute("Select * from BOPHAN order by MaBoPhan") Return bp_dt

End Function

4.2.2.3 ThemBoPhan Tham số:

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

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

Mã nguồn:

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

dt = db.Execute("select MaBoPhan from BOPHAN where MaBoPhan >= all (select MaBoPhan from BOPHAN)")

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

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

str = "Insert into BOPHAN values(" + MaBP.ToString + ",N'" + ten +

"')"

db.ExecuteNonQuery(str)

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

60 4.2.2.4 XoaBoPhan

Tham số:

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

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

str = "delete from BOPHAN where MaBoPhan = " + bp_dt.Rows(index)("MaBoPhan").ToString

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

4.2.2.5 CapNhatBoPhan Tham số:

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

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

Mã nguồn:

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

str = "Update BOPHAN set TenBoPhan = N'" + ten + "' where MaBoPhan =

" + bp_dt.Rows(index)("MaBoPhan").ToString db.ExecuteNonQuery(str)

'update data table bp_dt Dim dr As DataRow

dr = bp_dt.Rows(index) dr(1) = ten

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 55 - 60)

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

(178 trang)