Màn hình Chức vụ

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

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

4.3 Màn hình Chức vụ

Tương tự chúng ta thiết kế màn hình chức vụ như sau

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

1 CVList ListView

2 txtTenChucVu 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à ChucVu_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 -ChucVu.

4.3.1 Lớp ChucVu_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 chức vụ đã có trong cơ sở dữ liệu lên trên listview. Do đó, trong hàm ChucVu_Form_Load ta sẽ gọi hàm

HienThiDanhSachChucVu như sau:

Private Sub ChucVu_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

62

CVList.Items.Clear() Dim i As Integer Dim str As String Dim dt As DataTable

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

lvi = CVList.Items.Add((i + 1).ToString) str = dt.Rows(i)("TenChucVu")

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

LayDanhSachChucVu rồi đưa lên trên listview. Còn phương thức LayDanhSachChucVu là một phương thức thuộc lớp ChucVu, 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 txtTenChucVu.Text <> "" Then cv.ThemChucVu(txtTenChucVu.Text) HienThiDanhSachChucVu()

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

Else

MessageBox.Show("Bạn chưa nhập tên chức vụ", "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 CVList.SelectedIndices.Count > 0 Then Dim str As String

str =

CVList.Items(CVList.SelectedIndices.Item(0)).SubItems(1).Text If MessageBox.Show("Bạn có chắc chắn là muốn xóa chức vụ '" +

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

cv.XoaChucVu(CVList.SelectedIndices.Item(0)) CVList.Items.Remove(CVList.SelectedItems(0)) 'Thông báo xóa thành công

MessageBox.Show("Chức vụ '" + txtTenChucVu.Text + "' đã được xóa.", "Thông báo", MessageBoxButtons.OK,

MessageBoxIcon.Information) txtTenChucVu.Text = ""

End If Else

MessageBox.Show("Bạn phải chọn 1 chức vu 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 CVList.SelectedIndices.Count > 0 Then If txtTenChucVu.Text <> "" Then

cv.CapNhatChucVu(CVList.SelectedIndices.Item(0), txtTenChucVu.Text)

HienThiDanhSachChucVu()

MessageBox.Show("Chức vụ '" + txtTenChucVu.Text + "' đã được cập nhật thành công", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Information)

txtTenChucVu.Text = ""

End If Else

MessageBox.Show("Bạn phải chọn 1 chức vụ 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

txtTenChucVu.Text = ""

End Sub

Và sau đó chúng ta phát sính sự kiện SelectedTextChanged của control CVList 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.3.2 Lớp ChucVu

Lớp ChucVu Thuộc tính

Tên Lớp Ý nghĩa

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

64 LayDanhSachChucVu Lấy danh sách các chức vụ từ cơ sỏ dữ liệu

ThemChucVu Thêm 1 chức vụ vào CSDL XoaChucVu Xóa một chức vụ khỏi CSDL CapNhatChucVu Cập nhật lại thông tin của 1 chức vụ 4.3.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.3.2.2 LayDanhSachChucVu Kết quả trả về:

Kiểu / Lớp Ý nghĩa

DataTable Danh sách các loại chức vụ có trong CSDL Mã nguồn:

Public Function LayDanhSachChucVu() As DataTable

cv_dt = db.Execute("Select * from CHUCVU order by MaChucVu") Return cv_dt

End Function

4.3.2.3 ThemChucVu Tham số:

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

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

Mã nguồn:

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

dt = db.Execute("select MaChucVu from CHUCVU where MaChucVu >= all (select MaChucVu from CHUCVU)")

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

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

str = "Insert into CHUCVU values(" + MaCV.ToString + ",N'" + ten +

"')"

db.ExecuteNonQuery(str) 'Cap nhaT cv_dt

Dim dr As DataRow dr = cv_dt.NewRow dr(0) = MaCV dr(1) = ten

cv_dt.Rows.Add(dr) End Sub

4.3.2.4 XoaChucVu Tham số:

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

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

str = "delete from CHUCVU where MaChucVu = " + cv_dt.Rows(index)("MaChucVu").ToString

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

4.3.2.5 CapNhatChucVu Tham số:

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

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

Mã nguồn:

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

str = "Update CHUCVU set TenChucVu = N'" + ten + "' where MaChucVu =

" + cv_dt.Rows(index)("MaChucVu").ToString db.ExecuteNonQuery(str)

'update data table cv_dt Dim dr As DataRow

dr = cv_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 60 - 65)

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

(178 trang)