Nội dung bài giảng gồm: MỤC LỤC BÀI 1 KHẢO SÁT HIỆN TRẠNG VÀ TÌM HIỂU BÀI TOÁN QUẢN LÝ BÁN HÀNG..............................................................................................................................4 1.1. KHẢO SÁT HIỆN TRẠNG...............................................................................4 1.2. BÀI ĐẶC TẢ HỆ THỐNG THÔNG TIN QUẢN LÝ BÁN HÀNG...............5 BÀI 2. PHÂN TÍCH HỆ THỐNG QUẢN LÝ BÁN HÀNG ......................................6 2.1. SƠ ĐỒ USECASE..................................................................................................6 2.1.1. Danh sách Actor................................................................................................7 2.1.2. Danh sách USECASE ......................................................................................7 2.3. PHÂN TÍCH QUẢN LÍ BÁN HÀNG....................................................................8 2.3.1. Sơ Đồ Lớp ..........................................................................................................8 2.3.1.1. Sơ đồ luồng hệ thống...................................................................................8 2.3.1.1. Sơ đồ lớp.....................................................................................................8 2.3.1.2. Danh sách các lớp đối tượng và quan hệ ....................................................9 2.3.2. Mô tả các lớp đối tượng ..................................................................................10 2.3.3. Sơ đồ chức năng hệ thống thông tin quản lý bán hàng ...................................11 BÀI 3. THIẾT KẾ VÀ CÀI ĐẶT HỆ THỐNG QUẢN LÝ BÁN HÀNG...............13 3.1. Thiêt kế các mô hình dữ liệu ................................................................................13 3.2. CHI TIẾT CÁC KIỂU DỮ LIỆU TRONG SƠ ĐỒ VẬT LÝ...........................15 3.2.1. Bảng ghi chú.....................................................................................................15 3.2.2. Chi tiết các kiểu dữ liệu....................................................................................16 3.2.3. Cài đặt cơ sở dữ liệu.........................................................................................19 3.2.4. Sơ đồ cơ sở dữ liệu (database diagram) ...........................................................24 3.3. THIẾT KẾ KIẾN TRÚC QUẢN LÍ BÁN HÀNG .............................................25 3.3.1. Kiến trúc hệ thống ...........................................................................................25 3.3.2. Chi tiết thành phần trong hệ thống ..................................................................26 3.4. THIẾT KẾ GIAO DIỆN QUẢN LÍ BÁN HÀNG..............................................26 3.4.1. Thiết kế form hệ thống. ....................................................................................27 3.4.1.1. Mô hình ba lớp (3 layers) .........................................................................27 a) Xây dựng các Entity.................................................................................27 3 b) Lớp truy xuất dữ liệu (Data access layer)..................................................41 c) Lớp BUS....................................................................................................54 d) Lớp GUI.....................................................................................................64 BÀI 4 BÁO CÁO KẾT QUẢ THỰC HIỆN PHẦN MỀM QUẢN LÝ BÁN HÀNG ......................................................................................................................................140 4.1. THIẾT KẾ, XÂY DỰNG VÀ TRIỂN KHAI ỨNG DỤNG ........................140 4.2. KẾT QUẢ THỰC HIỆN ................................................................................140 4.3. HƢỚNG PHÁT TRIỂN .................................................................................140
BỘ NÔNG NGHIỆP VÀ PHÁT TRIỂN NÔNG THÔN TRƢỜNG CAO ĐẲNG NGHỀ CÔNG NGHỆ VÀ NÔNG LÂM NAM BỘ - - BÀI GIẢNG XÂY DỰNG PHẦN MỀM QUẢN LÝ BÁN HÀNG Mã số: MĐ25 NGHỀ: CÔNG NGHỆ THÔNG TIN KHOA CÔNG NGHỆ THÔNG TIN Địa chỉ: QL 1K, Phường Bình An, TX Dĩ An, Tỉnh Bình Dương Email: it.svoctaf@gmail.com [Lƣu hành nội bộ] -2015- MỤC LỤC BÀI KHẢO SÁT HIỆN TRẠNG VÀ TÌM HIỂU BÀI TỐN QUẢN LÝ BÁN HÀNG 1.1 KHẢO SÁT HIỆN TRẠNG 1.2 BÀI ĐẶC TẢ HỆ THỐNG THÔNG TIN QUẢN LÝ BÁN HÀNG BÀI PHÂN TÍCH HỆ THỐNG QUẢN LÝ BÁN HÀNG 2.1 SƠ ĐỒ USE-CASE 2.1.1 Danh sách Actor 2.1.2 Danh sách USE-CASE 2.3 PHÂN TÍCH QUẢN LÍ BÁN HÀNG 2.3.1 Sơ Đồ Lớp 2.3.1.1 Sơ đồ luồng hệ thống 2.3.1.1 Sơ đồ lớp 2.3.1.2 Danh sách lớp đối tượng quan hệ 2.3.2 Mô tả lớp đối tượng 10 2.3.3 Sơ đồ chức hệ thống thông tin quản lý bán hàng 11 BÀI THIẾT KẾ VÀ CÀI ĐẶT HỆ THỐNG QUẢN LÝ BÁN HÀNG 13 3.1 Thiêt kế mơ hình liệu 13 3.2 CHI TIẾT CÁC KIỂU DỮ LIỆU TRONG SƠ ĐỒ VẬT LÝ 15 3.2.1 Bảng ghi 15 3.2.2 Chi tiết kiểu liệu 16 3.2.3 Cài đặt sở liệu 19 3.2.4 Sơ đồ sở liệu (database diagram) 24 3.3 THIẾT KẾ KIẾN TRÚC QUẢN LÍ BÁN HÀNG 25 3.3.1 Kiến trúc hệ thống 25 3.3.2 Chi tiết thành phần hệ thống 26 3.4 THIẾT KẾ GIAO DIỆN QUẢN LÍ BÁN HÀNG 26 3.4.1 Thiết kế form hệ thống 27 3.4.1.1 Mơ hình ba lớp (3 layers) 27 a) Xây dựng Entity 27 b) Lớp truy xuất liệu (Data access layer) 41 c) Lớp BUS 54 d) Lớp GUI 64 BÀI BÁO CÁO KẾT QUẢ THỰC HIỆN PHẦN MỀM QUẢN LÝ BÁN HÀNG 140 4.1 THIẾT KẾ, XÂY DỰNG VÀ TRIỂN KHAI ỨNG DỤNG 140 4.2 KẾT QUẢ THỰC HIỆN 140 4.3 HƢỚNG PHÁT TRIỂN 140 TÀI LIỆU THAM KHẢO 142 Bài KHẢO SÁT HIỆN TRẠNG VÀ TÌM HIỂU BÀI TỐN QUẢN LÝ BÁN HÀNG 1.1 KHẢO SÁT HIỆN TRẠNG a Tìm hiểu đơn vị cần quản lý hệ thống thông tin - Lịch sử đơn vị: Đơn vị công ty TNHH, công ty liên doanh,… - Lĩnh vực hoạt động: Hoạt động lĩnh vực công nghệ thông tin… - Quy mô đơn vị: Quy mô lĩnh vực kinh doanh sản xuất… - Nhiệm vụ, quyền hạng nhân - Các yếu tố khác liên quan đến hệ thống quản lý b Nghiệp vụ quản lý đơn vị - Phương thức quản lý bán hàng - Tài liệu quản lý bán hàng - Các file, biểu mẫu liên quan việc quản lý bán hàng c Yêu cầu hệ thống quản lý - Tiếp nhận yêu cầu quản lý đơn vị - Tiếp nhận tài liệu yêu cầu quản lý đơn vị - … 1.2 BÀI ĐẶC TẢ HỆ THỐNG THÔNG TIN QUẢN LÝ BÁN HÀNG Công ty TNHH Mạnh Nguyễn chuyên kinh doanh mặt hàng công nghệ thông tin với qui mô lớn Yêu cầu thực tiễn cơng ty cần có hệ thống quản lý việc mua bán tự động máy tính Hệ thống có hai chức mua bán Chức mua bán ghi nhận trình giao thương công ty khách hàng, nhà cung cấp công ty Hợp đồng mua bán thể thông qua đơn đặt hàng (Hóa đơn đặt hàng) Đại diện mua hàng giao dịch đại diện bên bán hóa đơn giống Mỗi hóa đơn có nhiều mặt hàng mặt hàng thuộc nhiều hóa đơn Cùng mặt hàng giá bán khác hóa đơn Thông tin cần quản lý nhân viên mua bán hàng sau: Tên nhân viên, ngày sinh, địa chỉ, điện thoại, ngày làm việc, lương tiền phụ cấp Khách hàng cần quản lý: Tên giao dịch, tên công ty, địa chỉ, điện thoại, email, số fax khách hàng có Đại diện nhà cung cấp quản lý: Tên nhà cung cấp (Tên người đại diện), tên công ty, địa chỉ, điện thoại, email số fax Mỗi mặt hàng có số lượng cụ thể kho Cần quản lý thêm cho mặt hàng sau: Đơn vị tính, giá niêm yết mua bán Khi đặt hàng người mua người bán thống ngày giao hàng Trường hợp hàng chưa kịp giao thống thêm ngày chuyển hàng Tất yếu cần quản lý ngày đặt hàng Ta quản lý thêm nơi giao hàng mức thuế cho hóa đơn Mỗi mặt hàng có lượng bán định quản lý bảng chi tiết hóa đơn Số lượng bán không vượt lượng tồn mặt hàng Hệ thống sử dụng nhiều người thông qua việc xác lập tài khoản Cần bảo mật phân quyền cho hệ thống thông tin quản lý bán hàng Bài PHÂN TÍCH HỆ THỐNG QUẢN LÝ BÁN HÀNG 2.1 SƠ ĐỒ USE-CASE HSSV thiết kế sơ đồ Use – Case sau gồm danh sách Actor, danh sách User – Case thống kê bảng Hinh Sơ đồ use-case 2.1.1 Danh sách Actor Các Actor hệ thống quản lí bán hàng thống kê bảng Stt Actor Ghi Admin - Có quyền cao hệ thống Quản lí -Dưới quyền admin -Có quyền quản lí chức cập nhật liệu, thống kê báo cáo, tra cứu cho hệ thống Các đối tượng khác 2.1.2 - Các đối tượng lại ngồi admin quản lí Danh sách USE-CASE HSSV cần thống kê đủ các Use – Case Các Use – Case thông dụng cho hệ thống: Stt Use - Case Ghi DangNhap Đăng nhập Thay đổi thông tin cho người Đổi mật khẩu, họ tên, tài khoản dùng Quản lí người dung Phân quyền người dùng, xóa tài khoản… Cập nhật thơng tin khách Thêm, xóa, sửa thơng tin khách hàng hàng Cập nhật thơng tin nhân viên Thêm, xóa, sửa thông tin nhân viên Cập nhật thông tin nhà cung Thêm, xóa, sửa nhà cung cấp cấp Cập nhật mặt hàng Thêm, xóa, sửa mặt hàng Cập nhật hóa đơn bán Thêm, xóa, sửa hóa đơn bán Cập nhật hóa đơn mua Thêm, xóa, sửa hóa đơn mua 10 Cập nhật chi tiết hóa đơn bán Thêm, xóa, sửa chi tiết hóa đơn bán 11 Cập nhật chi tiết hóa đơn Thêm, xóa, sửa chi tiết hóa đơn mua mua 2.3 PHÂN TÍCH QUẢN LÍ BÁN HÀNG 2.3.1 Sơ Đồ Lớp 2.3.1.1 Sơ đồ luồng hệ thống Hệ thống thông tin quản lý bán hàng có sơ đồ luồng sau: 2.3.1.1 Sơ đồ lớp Sơ đồ lớp thể lớp đối tượng, lớp quan hệ Thiết kế UML toán sau: Hinh Sơ đồ lớp 2.3.1.2 Danh sách lớp đối tƣợng quan hệ Các đối tượng quan hệ đối tượng thống kê sau: STT Tên lớp/quan hệ Ghi KhachHang Lưu thông tin tất khách hàng công ty NhanVien Lưu thông tin nhân viên công ty NhaCungCap Lưu thông tin nhà cung cấp MatHang Lưu thông tin mặt hàng HoaDonBan Lưu thơng tin hóa đơn bán HoaDonMua Lưu thơng tin hóa đơn mua ChiTietHoaDonBan Cho biết thơng tin chi tiết hóa đơn bán ChiTietHoaDonMua Cho biết thơng tin chi tiết hóa đơn mua 2.3.2 Mô tả lớp đối tƣợng STT Thực thể Phƣơng Tên thuộc tính Ràng buộc Ghi Thức KhachHang Thêm,xóa, MaKH, TenGD, TenCT, Cho biết sửa DiaChi, DienThoai, Email, thơng tin Fax khách hàng NhanVien Thêm,xóa, MaNV, TenNV, NgaySinh, Cho biết sửa DiaChi, DienThoai, NgayLV, thông tin LuongCB, PhuCap nhân viên NhaCungCap Thêm,xóa, MaNCC, TenNCC, TenCT, Cho biết sửa DiaChi, DienThoai, Email, thông tin Fax nhà cung cấp MatHang HoaDonBan Thêm,xóa, MaH, TenH, SoLuong, Thơng tin sửa mặt hàng DonViTinh, GiaMua, GiaBan Thêm,xóa, SoHoaDon, MaKH, MaNV, NhanVien, Thơng tin sửa KhachHang hóa đơn NgayDH, NgayGH, NgayCH, NoiGiao, Thue HoaDonMua bán Thêm,xóa, SoHoaDon, MaNCC, MaNV, NhanVien, Cho biết sửa NgayDH, NgayGH, NhaCungCa thông tin NgayCH, NoiGiao, Thue p hóa đơn mua NguoiDung Thêm,xóa, HoTen, UserName, Cho biết sửa thơng tin Pass_Word, Quyen 10 using using using using using using using using using System.Collections.Generic; System.ComponentModel; System.Data; System.Drawing; System.Linq; System.Text; System.Windows.Forms; Entity; BUS; namespace QuanLiBanHang { public partial class frmChiTietMuaHang : Form { public frmChiTietMuaHang() { InitializeComponent(); } En_ChiTietHoaDonMua en = new En_ChiTietHoaDonMua(); BUS_ChiTietHoaDonMua bus = new BUS_ChiTietHoaDonMua(); BUS_HoaDonMua busHDM = new BUS_HoaDonMua(); BUS_MatHang busMH = new BUS_MatHang(); bool themMoi; void KhoaDieuKhien() { cbSoHoaDon.Enabled = false; cbMaH.Enabled = false; txtSoLuong.Enabled = false; txtDonGia.Enabled = false; btnLuu.Enabled = false; btnThem.Enabled = true; btnSua.Enabled = true; btnXoa.Enabled = true; } void MoDieuKhien() 128 { cbSoHoaDon.Enabled = true; cbMaH.Enabled = true; txtSoLuong.Enabled = true; txtDonGia.Enabled = true; btnLuu.Enabled = true; btnThem.Enabled = false; btnSua.Enabled = false; btnXoa.Enabled = false; HienThiDuLieuLenCBSoHoaDon(""); HienThiDuLieuLenCBMatHang(""); } void SetNull() { cbSoHoaDon.Text = ""; cbMaH.Text = ""; txtSoLuong.Text = ""; txtDonGia.Text = ""; } private void frmChiTietMuaHang_Load(object sender, EventArgs e) { KhoaDieuKhien(); HienThiDuLieu(""); HienThiDuLieuLenCBSoHoaDon(""); HienThiDuLieuLenCBMatHang(""); SetNull(); } private void dgvChiTietHoaDon_CellClick(object sender, DataGridViewCellEventArgs e) 129 { try { cbSoHoaDon.SelectedValue = dgvChiTietHoaDon.Rows[e.RowIndex].Cells[0].Value.ToString(); cbMaH.SelectedValue = dgvChiTietHoaDon.Rows[e.RowIndex].Cells[1].Value.ToString(); txtSoLuong.Text = dgvChiTietHoaDon.Rows[e.RowIndex].Cells[2].Value.ToString(); txtDonGia.Text = dgvChiTietHoaDon.Rows[e.RowIndex].Cells[3].Value.ToString(); } catch { } } void HienThiDuLieu(string dieuKien) { dgvChiTietHoaDon.DataSource = bus.HienThiDuLieu(dieuKien); } void HienThiDuLieuLenCBSoHoaDon(string dieuKien) { cbSoHoaDon.DataSource = busHDM.HienThiDuLieu(dieuKien); cbSoHoaDon.DisplayMember = "SoHoaDon"; cbSoHoaDon.ValueMember = "SoHoaDon"; } void HienThiDuLieuLenCBMatHang(string dieuKien) { cbMaH.DataSource = busMH.HienThiDuLieu(dieuKien); cbMaH.DisplayMember = "TenH"; cbMaH.ValueMember = "MaH"; } private void btnThem_Click(object sender, EventArgs e) 130 { MoDieuKhien(); SetNull(); cbSoHoaDon.Focus(); themMoi = true; } private void btnSua_Click(object sender, EventArgs e) { MoDieuKhien(); SetNull(); cbSoHoaDon.Enabled = false; cbMaH.Enabled = false; txtSoLuong.Focus(); themMoi = false; } private void btnThoat_Click(object sender, EventArgs e) { this.Close(); } private void btnHuy_Click(object sender, EventArgs e) { SetNull(); KhoaDieuKhien(); } private void btnLuu_Click(object sender, EventArgs e) { if (cbSoHoaDon.SelectedValue.ToString() == "" || cbMaH.SelectedValue.ToString() == "") { MessageBox.Show("Xin vui lòng nhập đủ thông tin."); return; } if (themMoi == true) 131 { try { en.SoHoaDon = Int64.Parse(cbSoHoaDon.SelectedValue.ToString()); en.MaH = cbMaH.SelectedValue.ToString(); en.SoLuong = Int64.Parse(txtSoLuong.Text); en.DonGia = float.Parse(txtDonGia.Text); bus.ThemDuLieu(en); MessageBox.Show("Đã thêm thành cơng."); } catch { MessageBox.Show("Có lỗi."); } } else { try { en.SoHoaDon = Int64.Parse(cbSoHoaDon.SelectedValue.ToString()); en.MaH = cbMaH.SelectedValue.ToString(); en.SoLuong = Int64.Parse(txtSoLuong.Text); en.DonGia = float.Parse(txtDonGia.Text); bus.SuaDuLieu(en); MessageBox.Show("Đã sửa thành công."); } catch 132 { MessageBox.Show("Có lỗi."); } } SetNull(); KhoaDieuKhien(); HienThiDuLieu(""); } private void btnXoa_Click(object sender, EventArgs e) { cbSoHoaDon.Enabled = true; cbMaH.Enabled = true; cbSoHoaDon.Focus(); if (cbSoHoaDon.Text == "" || cbMaH.Text == "") { MessageBox.Show("Xin vui lòng chọn liệu cần xóa."); return; } try { en.SoHoaDon = Int64.Parse(cbSoHoaDon.SelectedValue.ToString()); en.MaH = cbMaH.SelectedValue.ToString(); bus.XoaDuLieu(en); MessageBox.Show("Đã xóa thành cơng."); SetNull(); KhoaDieuKhien(); HienThiDuLieu(""); } catch { 133 MessageBox.Show("Có lỗi."); } } } } -Form báo cáo tốn hóa đơn bán Mã hóa giao diện báo cáo using using using using using using using using using System; System.Collections.Generic; System.ComponentModel; System.Data; System.Drawing; System.Linq; System.Text; System.Windows.Forms; BUS; namespace QuanLiBanHang { public partial class frmBaoCaoTinhTien_ChiTietHoaDonBan : Form 134 { public frmBaoCaoTinhTien_ChiTietHoaDonBan() { InitializeComponent(); } BUS_HoaDonBan bus = new BUS_HoaDonBan(); DataView dv; void HienThiDuLieuLenCBSoHoaDon(string dieuKien) { cbSoHoaDon.DataSource= bus.HienThiDuLieu(dieuKien); cbSoHoaDon.DisplayMember = "SoHoaDon"; cbSoHoaDon.ValueMember="SoHoaDon"; } private void frmBaoCaoTinhTien_ChiTietHoaDonBan_Load(object sender, EventArgs e) { // TODO: This line of code loads data into the 'QuanLiBanHangDataSet.BaoCaoTinhTien_ChiTietHoaDonBan' table You can move, or remove it, as needed this.BaoCaoTinhTien_ChiTietHoaDonBanTableAdapter.Fill(this.Quan LiBanHangDataSet.BaoCaoTinhTien_ChiTietHoaDonBan); // TODO: This line of code loads data into the 'QuanLiBanHangDataSet.BaoCaoTinhTien_ChiTietHoaDonBan' table You can move, or remove it, as needed //this.BaoCaoTinhTien_ChiTietHoaDonBanTableAdapter.Fill(this.Qu anLiBanHangDataSet.BaoCaoTinhTien_ChiTietHoaDonBan); // TODO: This line of code loads data into the 'QuanLiBanHangDataSet.BaoCaoTinhTien_ChiTietHoaDonBan' table You can move, or remove it, as needed HienThiDuLieuLenCBSoHoaDon(""); dv = new DataView(this.QuanLiBanHangDataSet.BaoCaoTinhTien_ChiTietHoaDon Ban); 135 BaoCaoTinhTien_ChiTietHoaDonBanBindingSource.DataSource = dv; this.reportViewerBaoCao.RefreshReport(); } private void btnBaoCao_Click(object sender, EventArgs e) { dv.RowFilter = string.Format("SoHoaDon='{0}'", cbSoHoaDon.SelectedValue.ToString()); this.reportViewerBaoCao.RefreshReport(); } private void cbSoHoaDon_SelectedIndexChanged(object sender, EventArgs e) { } } } Câu lệnh T-SQL truy vấn thành tiền hóa đơn bán hàng: select kh.MaKH, kh.TenGD,kh.TenCT, nv.MaNV, nv.TenNV,hdb.SoHoaDon, t.MaH, t.TenH,t.SoLuong, t.DonGia, t.ThanhTien from HoaDonBan hdb, (select cthdb.SoHoaDon, mh.MaH, mh.TenH, cthdb.SoLuong, cthdb.DonGia,(cthdb.SoLuong* cthdb.DonGia) as ThanhTien from ChiTietHoaDonBan cthdb, MatHang mh where cthdb.MaH= mh.MaH)t, KhachHang kh, NhanVien nv where hdb.SoHoaDon= t.SoHoaDon and kh.MaKH= hdb.MaKH and nv.MaNV= hdb.MaNV group by kh.MaKH, kh.TenGD, kh.TenCT, nv.MaNV, nv.TenNV, hdb.SoHoaDon,t.MaH, t.TenH,t.SoLuong, t.DonGia, t.ThanhTien -Form báo cáo tốn hóa đơn mua 136 Mã hóa giao diện báo cáo using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using BUS; namespace QuanLiBanHang { public partial class frmBaoCaoTinhTien_ChiTietHDM : Form { public frmBaoCaoTinhTien_ChiTietHDM() { InitializeComponent(); } DataView dv; BUS_HoaDonMua bus = new BUS_HoaDonMua(); 137 void HienThiDuLieuLenCBSoHoaDon(string dieukien) { cbSoHoaDon.DataSource = bus.HienThiDuLieu(dieukien); cbSoHoaDon.DisplayMember = "SoHoaDon"; cbSoHoaDon.ValueMember = "SoHoaDon"; } private void frmBaoCaoTinhTien_ChiTietHDM_Load(object sender, EventArgs e) { // TODO: This line of code loads data into the 'QuanLiBanHangDataSet.BaoCaoTinhTien_ChiTietHoaDonMua' table You can move, or remove it, as needed this.BaoCaoTinhTien_ChiTietHoaDonMuaTableAdapter.Fill(this.QuanLiBanHangDat aSet.BaoCaoTinhTien_ChiTietHoaDonMua); HienThiDuLieuLenCBSoHoaDon(""); dv = new DataView(this.QuanLiBanHangDataSet.BaoCaoTinhTien_ChiTietHoaDonMua); BaoCaoTinhTien_ChiTietHoaDonMuaBindingSource.DataSource = dv; this.reportViewerBaoCao.RefreshReport(); } private void btnBaoCao_Click(object sender, EventArgs e) { dv.RowFilter = string.Format("SoHoaDon='{0}'", cbSoHoaDon.SelectedValue.ToString()); this.reportViewerBaoCao.RefreshReport(); } } } Câu lệnh truy vấn: select nv.MaNV, nv.TenNV, ncc.MaNCC, ncc.TenNCC, ncc.TenCT, hdm.SoHoaDon,t.SoLuong,t.DonGia, t.MaH, t.TenH, t.ThanhTien from HoaDonMua hdm, (select cthdm.SoHoaDon,cthdm.SoLuong,cthdm.DonGia, mh.MaH, 138 mh.TenH,(cthdm.SoLuong* cthdm.DonGia) as ThanhTien from ChiTietHoaDonMua cthdm, MatHang mh where cthdm.MaH= mh.MaH)t, NhaCungCap ncc, NhanVien nv where hdm.SoHoaDon= t.SoHoaDon and ncc.MaNCC= hdm.MaNCC and nv.MaNV= hdm.MaNV group by nv.MaNV, nv.TenNV, ncc.MaNCC, ncc.TenNCC, ncc.TenCT, hdm.SoHoaDon, t.SoLuong,t.DonGia,t.MaH, t.TenH, t.ThanhTien 139 Bài BÁO CÁO KẾT QUẢ THỰC HIỆN PHẦN MỀM QUẢN LÝ BÁN HÀNG 4.1 THIẾT KẾ, XÂY DỰNG VÀ TRIỂN KHAI ỨNG DỤNG Môi trường xây dựng phát triển ứng dụng o Xây dựng triển khai hệ điều hảnh : Windows XP, Microsoft Win professional… o Dùng hệ quản trị sở liệu: Microsoft SQL Express 2008… o Có thể dùng ngơn ngữ lập trình Visual C#, VB, java, … Mơi trường triển khai ứng dụng o Hệ điều hành :Microsoft Windows,… o Cần cài đặt : Net Framework 3.5, 4.0… Phần mềm phân tích thiết kế : Rational Rose Visual Paradigm for UML … 4.2 KẾT QUẢ THỰC HIỆN Khảo sát tìm hiểu tốn quản lý bán hàng Phân tích hệ thống quản lí bán hàng gồm: Dữ liệu, chức năng, luồng liệu, thiết kế thực thể, thuộc tính thực thể, chuẩn hóa sở liệu Thiết kế cài đặt hệ thống quản lí bán hàng: Thiết kế sở liệu, thiết kế form chương trình, lập trình xử lí button lệnh, xây dưng báo cáo thống kê 4.3 HƢỚNG PHÁT TRIỂN 140 Mở rộng phạm vi quản lí chương trình Hồn thiện q trình triển khai ứng dụng hệ thống mạng cục 141 TÀI LIỆU THAM KHẢO [1] “C# 2005 – Lập Trình Cơ Bản”, Phạm Hữu Khang, NXB Lao Động Xã Hội, 2010 [2] “Programming C#”, Jesse Liberty, O’Reilly [3] MSDN Library [4] Tài liệu tham khảo khác 142 ... [dbo].[HoaDonBan] WITH CHECK ADD CONSTRAINT [FK_HoaDonBan_KhachHang] FOREIGN KEY([MaKH]) REFERENCES [dbo].[KhachHang] ([MaKH]) GO ALTER TABLE [dbo].[HoaDonBan] CHECK CONSTRAINT [FK_HoaDonBan_KhachHang]... đối tượng, lớp quan hệ Thiết kế UML toán sau: Hinh Sơ đồ lớp 2.3.1.2 Danh sách lớp đối tƣợng quan hệ Các đối tượng quan hệ đối tượng thống kê sau: STT Tên lớp /quan hệ Ghi KhachHang Lưu thông... [FK_ChiTietHoaDonBan_HoaDonBan] FOREIGN KEY([SoHoaDon]) REFERENCES [dbo].[HoaDonBan] ([SoHoaDon]) GO ALTER TABLE [dbo].[ChiTietHoaDonBan] CHECK CONSTRAINT [FK_ChiTietHoaDonBan_HoaDonBan] GO ALTER