3. Kết quả thiết kế:
Hình 105. Kết quả thiết kế hóa đơn bán hàng bằng Crystal Report
4. Kết quả thực thi báo cáo:
Hình 106. Kết quả xem trước hóa đơn bán hàng
b) Thiết kế form điều khiển việc in ấn hóa đơn bán hàng theo mẫu
Có thể bạn quan tâm!
- Thực hành lập trình CSDL với VB.net - 23
- Thực hành lập trình CSDL với VB.net - 24
- Danh Sách Các Trường Đặc Biệt Trong Crystal Report.
- Thực hành lập trình CSDL với VB.net - 27
- Thực hành lập trình CSDL với VB.net - 28
- Các Hàm Để Tính Toán Với Nhóm Của Crystal Report
Xem toàn bộ 318 trang tài liệu này.
Hình 107. Form in hóa đơn bảng kê bán hàng
1. Phân tích yêu cầu:
Theo mẫu trên thì phải có một form chứa:
- Các đối tượng có nội dung “IN HÓA ĐƠN BẢNG KÊ BÁN HÀNG”, “Lựa chọn in”, “Từ ngày”, “Đến ngày”, “In theo”, “Số hiệu hóa đơn” là các Label.
- Các đối tượng “Lựa chọn thời gian cho bảng kê”, “Lựa chọn hóa đơn” là các GroupBox
- Ô nhập số hiệu hóa đơn là một Textbox
- Các lựa chọn “Tất cả hóa đơn”, “Từng hóa đơn” là các Radio Button
- Các lựa chọn ngày tháng là điều khiển DateTimePicker
- Lựa chọn in là một điều khiển ComboBox
- Các nút “Xem trước”, “In ấn”, “Kết thúc” là các Button
2. Hướng dẫn thao tác
Để thiết kế form theo mẫu trên cần tiến hành các thao tác sau: 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 frmInGiayHoaDonBanHang vào ô Name rồi nhấn nút Add.
- Kéo điều khiển Label từ cửa sổ Toolbox vào form vào vị trí theo yêu cầu. Nháy phải chuột vào đối tượng Label rồi chọn Properties để thiết lập các thuộc tính cho đối tượng Label như sau:
+ Text: IN HÓA ĐƠN BẢNG KÊ BÁN HÀNG
+ Font name: Microsoft Sans Serif
+ Font size: 18
+ Font bold: True
+ Các giá trị khác để mặc định
+ Trên menu chọn Format/Center in form/Horizontally để căn giữa.
- Kéo điều khiển Label từ cửa sổ Toolbox vào form vào vị trí theo yêu cầu. Nháy phải chuột vào đối tượng Label rồi chọn Properties để thiết lập các thuộc tính cho đối tượng Label như sau:
+ Font name: Microsoft Sans Serif
+ Font size: 9
+ Text: Lựa chọn in
Thực hiện thao tác tương tự để tạo các label còn lại
- Kéo điều khiển ComboBox từ cửa sổ Toolbox vào form vào vị trí theo yêu cầu. Nháy phải chuột vào đối tượng ComboBox rồi chọn Properties để thiết lập các thuộc tính cho đối tượng ComboBox như sau:
+ Font name: Microsoft Sans Serif
+ Font size: 9
+ Items: (Collection), nhập thêm các giá trị “Bảng kê bán hàng”, “Hóa đơn bán hàng” cho điều khiển này.
+ DropDownStyle: DropDownList
- Kéo điều khiển GroupBox từ cửa sổ Toolbox vào form vào vị trí theo yêu cầu. Nháy phải chuột vào đối tượng GroupBox rồi chọn Properties để thiết lập các thuộc tính cho đối tượng GroupBox như sau:
+ Name: GroupBoxChonThoiGian
+ Font name: Microsoft Sans Serif.
+ Font size: 9.
+ Text: Lựa chọn thời gian cho bảng kê.
+ Các giá trị khác để mặc định.
+ Enable: False
Thực hiện tương tự với GroupBox lựa chọn hóa đơn.
- Kéo điều khiển DateTimePicker từ cửa sổ Toolbox vào form vào vị trí theo yêu cầu. Nháy phải chuột vào đối tượng DateTimePicker rồi chọn Properties để thiết lập các thuộc tính cho đối tượng DateTimePicker như sau:
+ Font name: Microsoft Sans Serif.
+ Font size: 9.
+ Name: DateTimePickerTuNgay.
+ Các giá trị khác để mặc định.
Thực hiện tương tự với đối tượng DateTimePickerDenNgay.
- Kéo điều khiển Radio Button từ cửa sổ Toolbox vào form vào vị trí theo yêu cầu. Nháy phải chuột vào đối tượng Radio Button rồi chọn Properties để thiết lập các thuộc tính cho đối tượng Radio Button như sau:
+ Name: RadioButtonTungHD.
+ Font name: Microsoft Sans Serif.
+ Font size: 9.
+ Các giá trị khác để mặc định.
Thực hiện tương tự với đối tượng RadioButtonTatCaHD. Đối tượng RadioButtonTatCaHD bổ xung thêm thuộc tính Checked là True.
- Kéo điều khiển TextBox từ cửa sổ Toolbox vào form vào vị trí theo yêu cầu. Nháy phải chuột vào đối tượng TextBox rồi chọn Properties để thiết lập các thuộc tính cho đối tượng TextBox như sau:
+ Name: TextBoxSoHieuHD.
+ Font name: Microsoft Sans Serif.
+ Font size: 9.
+ Enable: False.
+ Các giá trị khác để mặc định.
- Kéo điều khiển Button từ cửa sổ Toolbox vào form vào vị trí theo yêu cầu. Nháy phải chuột vào đối tượng Button rồi chọn Properties để thiết lập các thuộc tính cho đối tượng Button như sau:
+ Name: ButtonXemTruoc.
+ Font name: Microsoft Sans Serif.
+ Font size: 9.
+ Các giá trị khác để mặc định.
Thực hiện tương tự với đối tượng ButtonInAn, ButtonKetThuc.
Viết mã lệnh cho các điều khiển trên form để thực hiện thao tác xem in hóa đơn bán hàng như sau:
Mã lệnh khi thay đổi lựa chọn in:
Private Sub ComboBoxLuaChonIn_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ComboBoxLuaChonIn.SelectedIndexChanged
If ComboBoxLuaChonIn.SelectedIndex = 0 Then 'Cho phép thao tác với GroupBox chọn thời gian GroupBoxChonThoiGian.Enabled = True GroupBoxLuaChonHoaDon.Enabled = False
End If
If ComboBoxLuaChonIn.SelectedIndex = 1 Then 'Khóa thao tác với GroupBox chọn thời gian GroupBoxChonThoiGian.Enabled = False GroupBoxLuaChonHoaDon.Enabled = True
End If End Sub
Mã lệnh khi thay đổi lựa chọn tại RadioButtonTatCa:
Private Sub RadioButtonTatCa_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles RadioButtonTatCa.CheckedChanged
Me.TextBoxSoHoaDon.Enabled = Not RadioButtonTatCa.Checked
End Sub
Mã lệnh khi thay đổi lựa chọn tại RadioButtonTungHD:
Private Sub RadioButtonTungHD_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles RadioButtonTungHD.CheckedChanged
Me.TextBoxSoHoaDon.Enabled = RadioButtonTungHD.Checked
End Sub
Mã lệnh khi nhấn vào nút “Xem trước”:
Private Sub ButtonXemTruoc_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ButtonXemTruoc.Click
Dim frm As frmXemTruocHoaDon frm.ShowDialog()
End Sub
Mã lệnh khi nhấn vào 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
Mã lệnh khi nhấn vào nút “In ấn”:
Private Sub ButtonInAn_Click(ByVal sender As System.Object,
ByVal e As System.EventArgs) Handles ButtonInAn.Click If ComboBoxLuaChonIn.SelectedIndex = 1 Then
'Lựa chọn in hóa đơn bán hàng
If RadioButtonTatCa.Checked Then 'Chuyển trạng thái con trỏ Me.Cursor = Cursors.WaitCursor 'Tạm khóa nút In ấn ButtonInAn.Enabled = False
'In tất cả các khách hàng
'Khai báo một đối tượng Crystal Report Dim myReport As New ReportDocument() 'Tải báo cáo từ đường dẫn chỉ định
myReport.Load(Application.StartupPath.ToString() & "HoaDonBanHang.rpt")
'Khai báo đối tượng và biến cần sử dụng Dim sqlTimKiem As String
'Duyệt qua tất cả các số hóa đơn
sqlTimKiem = "SELECT SoHieuHD FROM tblBanHang" 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 số hiệu hóa đơn
If ds.Tables(0).Rows.Count > 0 Then 'Duyệt lần lượt qua các bản ghi
For i As Integer = 0 To ds.Tables(0).Rows.Count
- 1
hàng
'Thiết lập câu lệnh tìm kiếm theo mã khác sqlTimKiem = "SELECT tblBanHang.*,
tblKhachHang.HoTen, tblKhachHang.DienThoai, tblKhachHang.DiaChi, tblMatHang.TenMatHang, tblMatHang.DVT, tblChiTietHoaDon.SoLuong, tblChiTietHoaDon.DonGia, tblChiTietHoaDon.SoLuong * tblChiTietHoaDon.DonGia AS ThanhTien FROM tblBanHang, tblKhachHang, tblMatHang, tblChiTietHoaDon WHERE tblBanHang.MaKH = tblKhachHang.MaKH AND tblBanHang.SoHieuHD = tblChiTietHoaDon.SoHieuHD AND tblMatHang.MaMH = tblChiTietHoaDon.MaMH AND tblBanHang.SoHieuHD = " & ds.Tables(0).Rows(i).Item("SoHieuHD")
Using cn1 As New SqlConnection("Data Source=PHANDUCTHIEN;Initial Catalog=QLYBH;User ID=sa;Password=admin123@")
Using cmd1 As New SqlCommand(sqlTimKiem, cn)
cmd1.CommandType =
CommandType.Text Then cn.Open()
If cn.State = ConnectionState.Closed Dim ds1 As New DataSet()
Dim da1 As New SqlDataAdapter(cmd1) da1.Fill(ds1)
'Nếu tồn tại số hiệu hóa đơn
If ds1.Tables(0).Rows.Count > 0 Then 'Chuyển trạng thái con trỏ Me.Cursor = Cursors.WaitCursor 'Tạm khóa nút In ấn