Thực hành lập trình CSDL với VB.net - 6

3. Kết quả thiết kế


Hình 18 Kết quả thiết kế form danh sách mặt hàng 4 Kết quả thực thi Hình 1

Hình 18. Kết quả thiết kế form danh sách mặt hàng

4. Kết quả thực thi


Hình 19 Kết quả thực thi form danh sách mặt hàng Công việc 3 Thiết kế form 2

Hình 19. Kết quả thực thi form danh sách mặt hàng

Công việc 3: Thiết kế form dạng kết hợp bản ghi và lưới có tên frmBanHang

Hình 20 Form chi tiết bán hàng 1 Phân tích yêu cầu Theo yêu cầu trên thì phải 3

Có thể bạn quan tâm!

Xem toàn bộ 318 trang tài liệu này.


Hình 20. Form chi tiết bán hàng

1. Phân tích yêu cầu

Theo yêu cầu trên thì phải có một form chứa:

- Các đối tượng có nội dung “CHI TIẾT BÁN HÀNG”, “Số hiệu hóa đơn”, “Mã khách hàng”, “Ngày mua bán”, là các Label.

- Các đối tượng ô nhập mã khách hàng, số hiệu hóa đơn, người bán hàng là các Textbox.

- Đối tượng lựa chọn ngày tháng là điều khiển DateTimePicker.

- Các nút “Thêm khách hàng”, Thêm, Sửa, Xóa, Lưu, “Tìm kiếm”, “Kết thúc” là các điều khiển Button

- Danh sách các mặt hàng trong một hóa đơn là một điều khiển DataGridView.

- Điều khiển cho phép di chuyển qua lại giữa các hóa đơn là BindingNavigator.

2. Hướng dẫn thao tác.

Để hoàn thành việc thiết kế form dạng kết hợp bản ghi và lưới có tên frmBanHang người lập trình đã tiến hành các công việc sau:

1. Tạo form mới với tên frmBanHang bằng cách thực hiện các thao tác: Trên thanh menu, chọn Project/Add New Item.

Xuất hiện cửa sổ Add New Item. Chọn loại Windows Form, sau đó nhập tên

frmBanHang vào ô Name rồi nhấn nút Add.

2. Từ cửa sổ Data Source chọn bảng tblBanHang. Nhấn vào mũi tên quay xuống bên phải của bảng tblBanHang chọn kiểu hiển thị là Details.

3. Kéo bảng tblBanHang và tblChiTietHoaDon từ cửa sổ Data Source vào form. Điều chỉnh vị trí và kích thước cho phù hợp với yêu cầu.

4. Sửa nhãn cho các label cho đúng yêu cầu.

5. Nháy chuột phải vào lưới hiển thị chi tiết hóa đơn chọn Properties để thiết lập các thuộc tính cho lưới:

RowHeadersVisible: False.

MultiSelect: False.

SelectionMode: FullRowSelect.

6. Nhấn vào nút ở thuộc tính Columns trong cửa sổ Properties của lưới. Xuất hiện cửa sổ Edit Columns.

Hình 21 Cửa sổ Edit Columns Thay đổi thuộc tính HeaderText các cột cho phù hợp 5


Hình 21. Cửa sổ Edit Columns

Thay đổi thuộc tính HeaderText các cột cho phù hợp với yêu cầu. Thiết lập thuộc tính AutoSizeMode cho các cột “Số hóa đơn”, “Số lượng”, “Đơn giá” là ColumnHeader, cột “Mặt hàng” là DisplayedCells.

Để thay đổi kiểu hiển thị cho cột mặt hàng thành dạng ComboBox cần thiết lập các thuộc tính cho cột MaMH như sau:

DataPropertyName: MaMH.

DataSource: TblMatHangBindingSource.

DisplayMember: TenMatHang.

ValueMember: MaMH.

ColumnType: DataGridViewComboBoxColumn.

DisplayStyle: DropDownButton.

Các thuộc tính còn lại để giá trị mặc định. Nhấn OK để cập nhật lưới hiển thị chi tiết hóa đơn.

Điều khiển TblBanHangBindingNavigator để thực hiện việc di chuyển trên các bản ghi của bảng tblBanHang được VB.NET cung cấp sẵn, mặc định khi kéo bảng tblBanHang từ cửa sổ Data Source vào form thì đối tượng TblBanHangBindingNavigator cũng được thêm vào form chỉ việc kéo điều khiển này đặt vào vị trí theo yêu cầu.

Kéo điều khiển Button từ cửa sổ Toolbox vào form và thay đổi thuộc tính cho Button tương tự như phần trên.

Viết mã lệnh cho các điều khiển trên form như sau: Sự kiện form load.

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

'TODO: This line of code loads data into the 'QLYBHDataSet.tblMatHang' table. You can move, or remove it, as needed.

Me.TblMatHangTableAdapter.Fill(Me.QLYBHDataSet.tblMatHang) 'TODO: This line of code loads data into the

'QLYBHDataSet.tblChiTietHoaDon' table. You can move, or remove it, as needed.


Me.TblChiTietHoaDonTableAdapter.Fill(Me.QLYBHDataSet.tblChiTietHoaDon

)

'TODO: This line of code loads data into the 'QLYBHDataSet.tblBanHang' table. You can move, or remove it, as needed.

Me.TblBanHangTableAdapter.Fill(Me.QLYBHDataSet.tblBanHang)

End Sub


Sự kiện Click của nút Kết thúc:


Private Sub ButtonThemKH_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ButtonThemKH.Click

'Khai báo đối tượng kiểu form thông tin khách hàng Dim frm As frmThongTinKhachHang

'Hiển thị form ở trên cùng frm.ShowDialog()

End Sub


Sự kiện TextChange của ô nhập mã khách hàng.


Private Sub MaKHTextBox_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MaKHTextBox.TextChanged

'Nếu mã khách hàng là số và khác 0 If MaKHTextBox.Text <> "0" And

IsNumeric(MaKHTextBox.Text) Then

'Khai báo đối tượng và biến cần sử dụng Dim sqlTimKiem As String

'Thiết lập câu lệnh tìm kiếm theo mã khác hàng sqlTimKiem = "SELECT * FROM tblKhachHang WHERE

MaKH=" & MaKHTextBox.Text

Using cn As New SqlConnection("Data Source=PHANDUCTHIEN;Initial Catalog=QLYBH;User ID=sa;Password=admin123@")

Using cmd As New SqlCommand(sqlTimKiem, cn) cmd.CommandType = CommandType.Text

cn.Open()

Dim ds As New DataSet()

Dim da As New SqlDataAdapter(cmd) da.Fill(ds)

'Nếu tồn tại mã khách hàng

If ds.Tables(0).Rows.Count > 0 Then TextBoxTenKH.Text =

ds.Tables(0).Rows(0).Item("HoTen").ToString()

Else

'Thông báo

MessageBox.Show("Mã khách hàng không đúng", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Error)

MaKHTextBox.Focus()

End If cn.Close()

End Using End Using

End If End Sub


Sự kiện Click của nút Kết thúc:


Private Sub ButtonKetThuc_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ButtonKetThuc.Click

Me.Close() End Sub


Sự kiện Click của nút Tìm kiếm:


Private Sub ButtonTimKiem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles

ButtonTimKiem.Click

If Not String.IsNullOrEmpty(SoHieuHDTextBox.Text) Then If IsNumeric(SoHieuHDTextBox.Text) Then

'Lọc dữ liệu nguồn với giá trị nhập vào ô số hóa đơn TblBanHangBindingSource.Filter = "SoHieuHD = '" &

SoHieuHDTextBox.Text & "'"


Me.TableAdapterManager.UpdateAll(Me.QLYBHDataSet) If TblBanHangBindingSource.Count <= 0 Then

MessageBox.Show("Số hóa đơn không đúng", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Error)

MaKHTextBox.Text = "0" TextBoxTenKH.Text = Nothing SoHieuHDTextBox.Focus()

End If Else

'Thông báo

MessageBox.Show("Số hóa đơn phải là giá trị số.", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Error)

SoHieuHDTextBox.Focus() End If

Else

'Thông báo

MessageBox.Show("Chưa nhập số hóa đơn", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Error)

SoHieuHDTextBox.Focus() End If

End Sub


Sự kiện Click của nút Lưu:

Private Sub ButtonLuu_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles ButtonLuu.Click

If MaKHTextBox.Text = "" Then


Dim kh As QLYBHDataSet.tblKhachHangRow


kh = Me.QLYBHDataSet.tblKhachHang.NewtblKhachHangRow() kh.Diachi = DiachiTextBox.Text

kh.DienThoai = DienThoaiTextBox.Text kh.Hoten = HotenTextBox.Text

kh.Gioitinh = GioitinhComboBox.SelectedItem.ToString() Me.QLYBHDataSet.tblKhachHang.Rows.Add(kh)


Me.TblKhachHangTableAdapter.Update(Me.QLYBHDataSet.tblKhachHang)


Me.TblKhachHangTableAdapter.Fill(Me.QLYBHDataSet.tblKhachHang)


Else


'TblKhachHangTableAdapter.UpdateKhachHang(HotenTextBox.Text, GioitinhComboBox.SelectedItem.ToString(), DiachiTextBox.Text, DienThoaiTextBox.Text, Convert.ToInt32(MaKHTextBox.Text))


Me.TblKhachHangTableAdapter.Update(Me.QLYBHDataSet.tblKhachHang)


Me.TblKhachHangTableAdapter.Fill(Me.QLYBHDataSet.tblKhachHang) End If

..... Xem trang tiếp theo?
⇦ Trang trước - Trang tiếp theo ⇨

Ngày đăng: 16/07/2022