Thực hiện chương trình: Võ Hòa Đoàn .
Ngày cập nhật sau cùng: Ngày 26 tháng 10 năm 2004
XYZ là một Công Ty hoạt động theo mô hình phục vụ, được mô tả như sau:
Khách hàng ký các đơn đặt hàng để gia công các sản phẩm nào đó.Nguyên liệu sẽ do khách hàng cung cấp để sản xuất và khi sản xuất xong thì Công ty sẽ giao sản phẩm được sản xuất cho khách hàng theo các đơn hàng đã ký. Việc tính lượng tồn nguyên liệu tồn còn lại dựa theo định mức sản xuất là bao nhiêu, các nguyên liệu nào để cho ra 1 đơn vị sản phẩm.
Quản lý việc thanh toán (tiền gia công), công nợ khách hàng vàquản lý tồn nguyên liệu mà công ty còn giữ của khách hàng sau khi đã trừ các nguyên liệu sản xuất và giao các sản phẩm.
38 trang |
Chia sẻ: vietpd | Lượt xem: 1511 | Lượt tải: 0
Bạn đang xem trước 20 trang tài liệu Đề tài Đơn hàng gia công tại công ty XYZ, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
GIỚI THIỆU:Thực hiện chương trình: Võ Hòa Đoàn .
Ngày cập nhật sau cùng: Ngày 26 tháng 10 năm 2004
XYZ là một Công Ty hoạt động theo mô hình phục vụ, được mô tả như sau: Khách hàng ký các đơn đặt hàng để gia công các sản phẩm nào đó.Nguyên liệu sẽ do khách hàng cung cấp để sản xuất và khi sản xuất xong thì Công ty sẽ giao sản phẩm được sản xuất cho khách hàng theo các đơn hàng đã ký. Việc tính lượng tồn nguyên liệu tồn còn lại dựa theo định mức sản xuất là bao nhiêu, các nguyên liệu nào để cho ra 1 đơn vị sản phẩm.
Quản lý việc thanh toán (tiền gia công), công nợ khách hàng vàquản lý tồn nguyên liệu mà công ty còn giữ của khách hàng sau khi đã trừ các nguyên liệu sản xuất và giao các sản phẩm.
Chương trình được viết trên ngôn ngữ Visual Basic, kết nối với Cơ sở dữ liệu Access; cùng với 2 phần mềm Data Widgets để hiển thị dữ liệu lên lưới và Crystal Report 8.5 để lập báo cáo.
Chúng em đã được sự hướng dẫn tận tình của thầy Phạm Ngọc Linh cũng như ý kiến đóng góp quý báo của các bạn. Tuy nhiên thới gian và kinh nghiệm có hạn nên chương trìng không tránh khỏi thiếu sót, hạn chế. Rất mong được sự góp ý của quý thầy cô và ý kiến của các bạn.
Thân ái.
Tp HCM ngày 26 tháng 10 năm 2004
Lớp: CV0303S
Nhóm HVTH: VÕ HÒA ĐOÀN
TRỊNH CÔNG MINH
ĐỖ KIẾN HÙNG
Chương trình kết nối trên Cơ sở dữ liệu Access.
Để kết nối với các hệ quản trị cơ sở dữ liệu bằng đối tượng ADO phải dùng chuỗi chuổi kết nối ( SQLConn ) thông qua trình điều khiển Provider:
SQLConn = " Provider = Microsoft.Jet.OLEDB.4.0 ; Data Source= Persist Security Info=False "
Đối tượng Connection:
Dùng để kết nối các hệ quản trị cơ sở dữ liệu, thực thi câc lệnh SQL(insert, update, delete) thông qua phương thức Execute
Có thể tạo đối tượng connection thông qua nhiều cách:
Dim Conn as new ADODB.Connection
Thực thi câu lệnh SQL
.Execute
Ví dụ: Với câu lện SQL:
Str = " insert into GIAONHAN values('" & Trim(cboSoPhieu) & "','" & Trim(cboSoDDH) & "','" & Trim(txtNgay) & "')"
Conn.Execute Str
Đối tượng Recordset :
Dùng để thực thi lấy mẫu tin từ cơ sở dữ liệu thông qua câu lệnh SQL Select .
Có thể tạo đối tượng Recordset bằng cách:
Dim Rst as new ADODB. Recordset
Câu lệnh SQL:
strSQL = " select TenkhachHang From KhachHang "
Thực thi câu lệnh SQL
.open ,
ví dụ: Rst.Open strSQL ,Conn
MÔ TẢ CÁC PHIẾU:
Phiếu nhập nguyên liệu:
Nguyên liệu được Khách Hàng cung cấp sau khi Công ty và khách hàng thoả thuận việc gia công sản phẩm mà khách hàng yêu cầu.
Số HĐ :
Khách Hàng :
Địa Chỉ :
Điện Thoại :
Ngày Nhập :
Nguyên liệu
Số lượng
ĐVT
Đơn đặt hàng:
Số ĐĐH :
Khách Hàng :
Địa Chỉ :
Điện Thoại :
Ngày kí kết :
Hạn giao :
Sản phẩm
ĐVT
Số lượng
Đơn giá
Phiếu giao nhận:
Số Phiếu :
Số ĐĐH :
Khách Hàng :
Địa Chỉ :
Điện Thoại :
Ngày Giao :
Sản phẩm
Số lượng
Đơn giá
Phiếu thanh toán:
Số TT :
Ngày TT :
Khách Hàng :
Địa Chỉ :
Điện Thoại :
Tiền TT :
Tồn nguyên liệu:
Ngày tồn :
Khách Hàng :
Địa Chỉ :
Điện Thoại :
Nguyên liệu
Số lượng tồn
ĐVT
Công nợ:
Ngày CN :
Khách Hàng :
Địa Chỉ :
Điện Thoại :
Tiền CN :
Thống kê doanh số theo Sản phẩm của từng ĐĐH:
Tháng…….năm 2004
Sản phẩm
Số lượng
Doanh số (tiền thu)
PHÂN TÍCH:
PHÂN TÍCH THÀNH PHẦN DỮ LIỆU CỦA ỨNG DỤNG:
Sơ đồ quan niệm dữ liệu:
Hình 1: Sơ đồ Quan niệm dữ liệu của ứng dụng ĐƠN HÀNG GIA CÔNG
Mô tả dữ liệu:
a) Các loại thực thể:
KhachHang
Khách hàng
DonDatHang
Đơn đặt hàng
ChiTietDonDatHang
Chi tiết đơn đặt hàng
SanPham
Sản phẩm
DinhMucSanXuat
Định mức sản xuất
CongNo
Công nợ
GiaoNhan
Giao nhận
ChiTietGiaoNhan
Chi tiết giao nhận
NguyenLieu
Nguyên liệu
ThanhToan
Thanh toán
Ton
Tồn
NhapXuatNguyenLieu
Nhập xuất nguyên liệu
ChiTietNguyenLieu
Chi tiết nguyên liệu
Mô tả các loại thực thể:
b1) Thực thể Khách hàng:
Thuộc tính
Diễn giải
Kiểu
Ràng buộc
MaKhachHang
Mã khách hàng
Text
Khoá chính
TenKhachHang
Tên khách hàng
Text
DiaChi
Địa chỉ
Text
DienThoai
Điện thoại
Text
b2) Thực thể đơn đặt hàng:
Thuộc tính
Diễn giải
Kiểu
Ràng buộc
SoDonDatHang
Số đơn đặt hàng
Text
Khoá chính
MaKhachHang
Mã khách hàng
Text
Khoá ngoại
NgayKiKet
Ngày kí kết
Date
DienThoai
Điện thoại
String
b3) Thực thể Chi tiết đơn đặt hàng:
Thuộc tính
Diễn giải
Kiểu
Ràng buộc
SoDonDatHang
Số đơn đặt hàng
Text
Khoá chính
SanPham
Sản phẩm
Text
Khoá ngoại
SoLuongDatHang
SL đặt hàng
Number
DonGia
Đơn giá
Number
HanGia
Hạn giao
Date()
b4) Thực thể Sản phẩm:
Thuộc tính
Diễn giải
Kiểu
Ràng buộc
SanPham
Sản phẩm
Text
Khoá chính
TenSanPham
Tên sản phẩm
Text
DonViTinh
Đơn vị tính
Number
DonGia
Đơn giá
Number
b5) Thực thể Định mức sản xuất:
Thuộc tính
Diễn giải
Kiểu
Ràng buộc
NguyenLieu
Nguyên liệu
Text
Khoá ngoại
SanPham
Sản phẩm
Text
Khoá ngoại
SoLuongSanXuat
Số lượng sản xuất
Number
b6) Thực thể công nợ:
Thuộc tính
Diễn giải
Kiểu
Ràng buộc
NgayCongNo
Ngày công nợ
Date()
Khoá chính
MaKhachHang
Mã khách hàng
Text
Khoá ngoại
TienCongNo
Tiền công nợ
Number
b7) Thực thể Giao Nhận:
Thuộc tính
Diễn giải
Kiểu
Ràng buộc
SoPhieu
Số phiếụ
Text
Khoá chính
SoDonDatHang
Số đơn đặt hàng
Text
Khoá ngoại
NgayGiao
Ngày giao
Number
b8) Thực thể Chi tiết giao nhận:
Thuộc tính
Diễn giải
Kiểu
Ràng buộc
SoPhieu
Số phiếu
Text
Khoá ngoại
SanPham
Sản phẩm
Text
Khoá ngoại
SoLuong
Số lượng
Number
DonGia
Đơn giá
Number
b9) Thực thể Nguyên Liệu:
Thuộc tính
Diễn giải
Kiểu
Ràng buộc
NguyenLieu
Nguyên liệu
Text
Khoá chính
Ten NguyenLieu
Tên nguyên liệu
Text
DonViTinh
Đơn vị tính
Number
b10) Thực thể Thanh Toán:
Thuộc tính
Diễn giải
Kiểu
Ràng buộc
SoThanhToan
Số thanh toán
Text
Khoá chính
NgayThanhToan
Ngày thanh toán
Date()
Khoá ngoại
MaKhachHang
Mã khách Hàng
Text
TienThanhToan
Tiền thanh toán
Number
b11) Tthực thể Tồn:
Thuộc tính
Diễn giải
Kiểu
Ràng buộc
MaKhachHang
Mã khách hàng
Text
Khoá ngoại
NguyenLieu
Nguyên liệu
Text
Khoá ngoại
SoLuongTon
Số lượng tồn
Number
NgayTon
Ngày tồn
Date()
b12) Thực thể Nhập xuất nguyên liệu:
Thuộc tính
Diễn giải
Kiểu
Ràng buộc
SoHoaDonNhap
Số hoá đơn nhập
Text
Khoá chính
MaKhachHang
Mã khách hàng
Text
Khoá ngoại
NgayNhap
Ngày nhập
Date()
b13) Thực thể Chi tiết nguyên liệu:
Thuộc tính
Diễn giải
Kiểu
Ràng buộc
SoHoaDonNhap
Số hoá đơn nhập
Text
Khoá ngoại
NguyenLieu
Nguyên liệu
Text
Khoá ngoại
SoLuong
Số lượng
Date()
c) Ràng buộc toàn vẹn:
KHOÁ CHÍNH:
R1-01: id(CongNo) = sttCNO
R1-02: id(KhachHang) = MaKhachHang
R1-03: id(DonDatHang) = SoDDH
R1-04: id(ChiTietDonDathang) = sttDDH
R1-05: id(SanPham) = SanPham
R1-06: id(DinhMucSanXuat) = sttSX
R1-07: id(GiaoNhan) = SoPhieu
R1-08: id(ChiTietGiaoNhan) = sttGiaoNhan
R1-09: id(ThanhToan) = SoTT
R1-10: id(Ton) = sttTon
R1-11: id(NhapXuatNguyenLieu) = SoHDN
R1-12: id(ChiTietNguyenLieu) = sttHDN
R1-13: id(NguyenLieu) = NguyenLieu
RÀNG BUỘC MIỀN GÁI TRỊ:
R2-01: (CTDDH.SoDDH>0) and (CTDDH.SLDH>0) and (CTDDH.DG>0)
R2-02: (SP.DVT> 0 ) and (SP.DG > 0)
R2-03: (DMSX.SLSX > 0)
R2-04: (GN.NgGiao < DDH.NgKK)
R2-05: (CTNL.SL > 0)
R2-06: (NL.DVT > 0)
R2-07: (TT.TienTT > 0)
RÀNG BUỘC GIỮA CÁC THUỘC TÍNH TRONG THỰC THỂ:
R3-0: CNOCK = CNODK + TIENNO - TIENTHU
R3-0: SLTonCK = SLTonDK + NHAP - XUAT
R3-0: Tiền đặt hàng = CTDDH.SLDH * CTDDH.DG
R3-0: Tiền giao nhận = CTGN.SL * CTGN.DG
R3-0: Số tiền nợ đầu kì ( CNODK ) của tháng này phải bằng số tiền nợ cuối kì ( CNOCK ) của tháng trước.
R3-0: Số lượng tồn đầu kì ( SLTonDK ) của tah1ng này phải bằng số lựơng tồn cuối kì ( SLTonCK ) của tháng trước.
PHÂN TÍCH THÀNH PHẦN XỬ LÝ CỦA ỨNG DỤNG:
XL1: Cập nhật Nguyên liệu.
XL2: Cập nhật phiếu Nhập nguyên liệu.
XL3: Cập nhật đơn đặt hàng.
XL4: Cập nhật Phiếu giao nhận.
XL5: Cập nhật Phiếu thanh toán
XL6: Tính Công nợ Khách hàng.
XL7: Tính Tồn Nguyên liệu.
MÔ TẢ CÁC XỬ LÝ:
_ Tên xử lý : XL1:
Chức năng : cập nhật nguyên liệu.
Input : MaNL, NL.
Output : NL.
Qui tắc : NL n được thêm,sữa xoá vào NL
_Tên xử lý : XL2:
Chức năng : Cập nhật phiếu nhập nguyên liệu.
Input : SoHDN h, NL n, NXNL, CTNL, NL, KH.
Output : NXNL.
Qui tắc : Số lượng nhập trong tháng t của NL n bằng tổng số lượng của CTNL trong tháng t có liên quan đến NL n.
_Tên xử lý : XL3:
Chức năng : Cập nhật Đơn đặt hàng .
Input : SDDH, MSP, DDH, CTDDH, KH, SP
Output : DDH.
Qui tắc : Số lượng Sản phẩm Khách hàng đặt trong tháng t bằng tổng số sản phẩm của CTDDH trong tháng t có liên quan đến sản phẩm đó.
_Tên xử lý : XL4:
Chức năng : Cập nhật phiếu Giao nhận.
Input : SoP p, SoDDH h, GN, CTGN, DDH, CTDDH.
Output : GN.
Qui tắc : Số lượng giao nhận sản phẩm trong tháng t bằng tổng số lượng giao nhận của CTGN trong tháng t liên quan đến Sản phẩm đó.
_Tên xử lý : XL5
Chức năng : Cập nhật phiếu thanh toán.
Input : SoTT, MKH, TTOAN, KH
Output : TTOAN.
Qui tắc : Số tiền thanh toán trong tháng t bằng tổng tiền thanh toán của TTOAN trong tháng t có liên quan đến KH k.
_Tên xử lý : XL6:
Chức năng : Tính nợ Khách hàng.
Input : NgCN, MKH, CNO.
Output : CNO.
Qui tắc : NOCK = NODK + SONO - THANHTOAN
_Tên xử lý : XL7 :
Chức năng : Tính tồn Nguyên liệu :
Input : NgTON, LN, TON.
Output : TON.
Qui tắc : TONCK = TONDK + NHAP - XUAT
THIẾT KẾ DỮ LIỆU :
Sơ đồ Logic dữ liệu:
Hình 2: Sơ đồ Logic dữ liệu của ứng dụng ĐƠN HÀNG GIA CÔNG
Từ điển dữ liệu:
MaKhachHang
Mã khách hàng
TenKhachHang
Ten khách hàng
DiaChi
Địa chỉ
DienThoai
Điện thoại
SoDonDatHang
Số đơn đặt hàng
NgayKiKet
Ngày kí kết
SanPham
Sản phẩm
TenSanPham
Tên sản phẩm
DonViTinh
Đơn vị tính
DonGia
Đơn giá
SoPhieu
Số phiếu
NgayGiao
Ngày giao
NgayCongNo
Ngày công nợ
TienCongNo
Tiền công nợ
NguyenLieu
Nguyên liệu
TenNguyenLieu
Tên Nguyên liệu
SoThanhToan
Số thanh toán
NgayThanhToan
Ngày thanh toán
TienThanhToan
Tiền thanh toán
SoHoaDonNhap
Số hoá đơn nhập
NgayNhap
Ngày nhập
SoLuongDatHang
Số lượng đặt hàng
DonGia
Đơn giá
HanGiao
Hạn giao
SoLuong
Số lượng
SoLuongSanXuat
Số lượng sản xuất
SoLuongTon
Số lượng tồn
NgayTon
Ngày tồn
Mô tả các bảng:
3.1) Khách hàng
Thuộc tính:
Thuộc tính
Kiểu
Khóa
MaKhachHang
Text
Chính
TenKhachHang
Text
DiaChi
Text
DienThoai
Text
Chỉ mục:
Chỉ mục
Thuộc tính
Thứ tự
KHACHHANG_PK
MakhachHang
ASC
3.2) Công nợ:
Thuộc tính:
Thuộc tính
Kiểu
Khóa
NgayCongNo
Text
Chính
MaKhachHang
Text
Ngoại
TienCongNo
Number
Chỉ mục:
Chỉ mục
Thuộc tính
Thứ tự
CONGNO_PK
NgayCongNo
MaKhachHang
ASC
CONGNO_FK
MaKhachHang
ASC
Khoá ngoại:
Khoá ngoại
Bảng tham chiếu
Khoá nội
MaKhachHang
KhachHang
MaKhachHang
3.3) Đơn đặt hàng
Thuộc tính:
Thuộc tính
Kiểu
Khóa
SoDonDatHang
Text
Chính
MaKhachHang
Text
Ngoại
NgayKiKet
Date()
Chỉ mục:
Chỉ mục
Thuộc tính
Thứ tự
DONDATHANG_PK
SoDonDatHang
MaKhachHang
ASC
DONDATHANG_FK
MaKhachHang
ASC
Khoá ngoại:
Khoá ngoại
Bảng tham chiếu
Khoá nội
MaKhachHang
KhachHang
MaKhachHang
3.4) Chi tiết Đơn đặt hàng
Thuộc tính:
Thuộc tính
Kiểu
Khóa
SoDonDatHang
Text
Ngoại
SanPham
Text
Ngoại
SoLuongDatHang
Number
DonGia
Number
HanGiao
Date()
Chỉ mục:
Chỉ mục
Thuộc tính
Thứ tự
CTDONDATHANG_PK
SoDonDatHang
SanPham
ASC
CTDONDATHANG_FK
SanPham
ASC
Khoá ngoại:
Khoá ngoại
Bảng tham chiếu
Khoá nội
SoDonDatHang
DonDatHang
SoDonDatHang
SanPham
SanPham
SanPham
Tồn
Thuộc tính:
Thuộc tính
Kiểu
Khóa
MaKhachHang
Text
Ngoại
NguyenLieu
Text
Ngoại
SoLuongTon
Number
NgayTon
Date()
Chỉ mục:
Chỉ mục
Thuộc tính
Thứ tự
TON_PK
MaKhachHang
NguyenLieu
ASC
TON_FK
NguyenLieu
ASC
Khoá ngoại:
Khoá ngoại
Bảng tham chiếu
Khoá nội
MaKhachHang
KhachHang
MaKhachHang
NguyenLieu
NguyenLieu
NguyenLieu
Sản phẩm
Thuộc tính:
Thuộc tính
Kiểu
Khóa
SanPham
Text
Chính
TenSanPham
Text
DonViTinh
Number
DonGia
Number
Chỉ mục:
Chỉ mục
Thuộc tính
Thứ tự
SANPHAM_PK
SanPham
ASC
Định mức sản xuất
Thuộc tính:
Thuộc tính
Kiểu
Khóa
NguyenLieu
Text
Ngoại
SanPham
Text
Ngoại
SoLuongSanXuat
Number
Chỉ mục:
Chỉ mục
Thuộc tính
Thứ tự
DMSX_PK
NguyenLieu
SanPham
ASC
DMSX _FK
SanPham
ASC
Khoá ngoại:
Khoá ngoại
Bảng tham chiếu
Khoá nội
NguyenLieu
NguyenLieu
NguyenLieu
SanPham
SanPham
SanPham
Giao Nhận
Thuộc tính:
Thuộc tính
Kiểu
Khóa
SoPhieu
Text
Chính
SoDonDatHang
Text
Ngoại
NgayGiao
Date()
Chỉ mục:
Chỉ mục
Thuộc tính
Thứ tự
GIAONHAN_PK
SoPhieu
SoDonDatHang
ASC
GIAONHAN_FK
SoDonDatHang
ASC
Khoá ngoại:
Khoá ngoại
Bảng tham chiếu
Khoá nội
SoDonDatHang
DonDatHang
SoDonDatHang
Chi tiết Giao Nhận
Thuộc tính:
Thuộc tính
Kiểu
Khóa
SoPhieu
Text
Ngoại
SanPham
Text
Ngoại
SoLuong
Number
DonGia
Number
Chỉ mục:
Chỉ mục
Thuộc tính
Thứ tự
CTGN_PK
SoPhieu
SanPham
ASC
CTGN_FK
SanPham
ASC
Khoá ngoại:
Khoá ngoại
Bảng tham chiếu
Khoá nội
SoPhieu
GiaoNhan
SoPhieu
SanPham
SanPham
SanPham
Nguyên liệu
Thuộc tính:
Thuộc tính
Kiểu
Khóa
NguyenLieu
Text
Chính
TenNguyenLieu
Text
DonViTinh
Number
Chỉ mục:
Chỉ mục
Thuộc tính
Thứ tự
NGUYENLIEU_PK
NguyenLieu
ASC
Thanh toán
Thuộc tính:
Thuộc tính
Kiểu
Khóa
SoThanhToan
Text
Chính
NgayThanhToan
Date()
MaKhachHang
Text
Ngoại
TienThanhToan
Number
Chỉ mục:
Chỉ mục
Thuộc tính
Thứ tự
THANHTOAN_PK
SoThanhToan
MaKhachHang
ASC
THANHTOAN_FK
MaKhachHang
ASC
Khoá ngoại:
Khoá ngoại
Bảng tham chiếu
Khoá nội
MaKhachHang
KhachHang
MaKhachHang
Nhập xuất nguyên liệu
Thuộc tính:
Thuộc tính
Kiểu
Khóa
SoHoaDonNhap
Text
Chính
MaKhachHang
Text
Ngoại
NgayNhap
Number
Chỉ mục:
Chỉ mục
Thuộc tính
Thứ tự
NXNL_PK
SoHoaDonNhap
MaKhachHang
ASC
NXNL_FK
MaKhachHang
ASC
Khoá ngoại:
Khoá ngoại
Bảng tham chiếu
Khoá nội
MaKhachHang
KhachHang
MaKhachHang
Chi tiết nguyên liệu
Thuộc tính:
Thuộc tính
Kiểu
Khóa
SoHoaDonNhap
Text
Ngoại
NguyenLieu
Text
Ngoại
SoLuong
Number
Chỉ mục:
Chỉ mục
Thuộc tính
Thứ tự
CTGN_PK
SoPhieu
SanPham
ASC
CTGN_FK
SanPham
ASC
Khoá ngoại:
Khoá ngoại
Bảng tham chiếu
Khoá nội
SoHoaDonNhap
NXNguyenLieu
SoPhieu
NguyenLieu
NguyenLieu
SanPham
Mô tả các ràng buộc toàn vẹn
4.1) Khóa chính
R1-01 : id( CONGNO ) = NgayCN
R1-02 : id( KHACHANG ) = MKH
R1-03 : id( NGUYENLIEU ) = NL
R1-04 : id( DONDATHANG ) = SDDH, MAKH
R1-05 : id( CHITIETDONDATHANG ) = SDDH, SP
R1-06 : id( SANPHAM ) = SANPHAM
R1-07 : id( DINHMUCSANXUAT ) = NL, SP
R1-08 : id( GIAONHAN ) = SPhieu, SDDH
R1-09 : id( CHITIETGIAONHAN ) = SPhieu, SP
R1-10 : id( THANHTOAN ) = SoTT, MKH
R1-11 : id( TON ) = MKH, NL
R1-12 : id( NHAPXUATNGUYENLIEU ) = SoDDH, MKH
R1-13 : id( CHITIETNGUYENLIEU ) = SoHDN, NL
4.2) Ràng buộc về miền giá trị
R2-01 : (CTDDH.SLDH > 0) and (CTDDH.DG > 0)
R2-02 : (SP.DG > 0)
R2-03 : (DMSX.SLSX > 0)
R2-04 : (CNO.TienCNO > 0)
R2-05 : (CTGN.SL > 0) and (CTGN.DG > 0)
R2-06 : (TToan.TToan > 0)
4.3) Khóa ngoại
R3-01 : CNO[MaKH] KH[MaKH]
R3-02 : TTOAN[MaKH] KH[MaKH]
R3-03 : TON[MaKH] KH[MaKH]
R3-04 : DDHANG[MaKH] KH[MaKH]
R3-05 : NXNL[MaKH] KH[MaKH]
R3-06 : GNHAN[SoDDH] DDH[SoDDH]
R3-07 : CTDDH[SoDDH] DDH[SoDDH]
R3-08 : CTDDH[MaSP] SPHAM[MaSP]
R3-09 : CTGN[MaSP] SPHAM[MaSP]
R3-10 : DMSX[MaSP] SPHAM[MaSP]
R3-11 : GN[SoPhieu] CTGN[SoPhieu]
R3-12 : DMSX[MaNL] NLIEU[MaNL]
R3-13 : TON[MaNL] NLIEU[MaNL]
R3-14 : CTNL[MaNL] NLIEU[MaNL]
R3-15 : CTNL[SoHDN] NXNL[SoHDN]
Thiết kế ứng dụng (Các màn hình)
Màn hình chính
Hình 3: Màn hình chính của ứng dụng.
Danh Mục:
Menu Đặt hàng Khách hàng đặt đơn hàng mới.
Menu Giao nhận Giao hàng cho Khách hàng.
Menu Nhập xuất Nguyên liệu Nhập nguyên liệu từ khách hàng.
Màn hình Đặt hàng
Hình 4: Màn hình Đơn đặt hàng mới .
Source code lấy Mã KH lên combobox:
Dim sqlMKH As String
sqlMKH = "Select MaKhachHang from KhachHang order by MaKhachHang asc"
Set rsMKH = New ADODB.Recordset
rsMKH.Open sqlMKH, Conn, adOpenKeyset, adLockOptimistic
Set cboMKH.DataSourceList = rsMKH
cboMKH.DataFieldList = "MaKhachHang"
cboMKH.Columns(0).Width = 1250
Source code lấy dữ liệu lên lưới :
Dim strSQL As String
Dim Cnn As New ADODB.Connection
strSQL = "SELECT ChiTietDonDatHang.SanPham, SanPham.TenSanPham, SanPham.DonViTinh, ChiTietDonDatHang.SoLuongDatHang, ChiTietDonDatHang.DonGia"
strSQL = strSQL & " FROM SanPham, DonDatHang, ChiTietDonDatHang WHERE DonDatHang.SoDonDatHang = ChiTietDonDatHang.SoDonDatHang AND SanPham.SanPham = ChiTietDonDatHang.SanPham"
Set Rst = New ADODB.Recordset
Rst.CursorLocation = adUseClient
Cnn.Open SQLConn ' KHÔNG DÙNG BIẾN Conn
Rst.Open strSQL, Conn, adOpenKeyset, adLockOptimistic
SSODatHang.Columns(0).DataField = "sanpham"
SSODatHang.Columns(1).DataField = "Tensanpham"
SSODatHang.Columns(2).DataField = "donvitinh"
SSODatHang.Columns(3).DataField = "soluongDatHang"
SSODatHang.Columns(4).DataField = "dongia"
Set SSODatHang.DataSource = Nothing
Set SSODatHang.DataSource = Rst
: Nút Mới để thêm Đơn đặt hàng mới, khi nhấn nút Mới thì số DDH sẽ tự tăng, ta có thể chọn Khách hàng cũ ở textbox MaKhachHang hoặc điền thông tin mới nếu là Khách hàng mới.
Source code khi nhấn nút mới số DDH sẽ tự tăng:
Private Sub cmdmoi_Click()
txtSDDH.SetFocus
Dim SQLddh As String
SQLddh = "select sodondathang from dondathang "
Set rsDDH = New ADODB.Recordset
rsDDH.CursorLocation = adUseClient
rsDDH.Open SQLddh, Conn, 0, 3
SDDH = Mid(Trim(txtSDDH.Text), 2, 2)
txtSDDH.Text = SDDH & "DDH" & rsDDH.RecordCount + 1
End Sub
: Khi nhấn nút lưu thì sẽ gọi màn hình Đặt hàng mới để nhập thêm thông tin của sản phẩm mới:
: Lưu dữ liệu mới xuống cơ sở dữ liệu.
Source code Lưu dữ liệu:
Private Sub cmdLuu_Click()
Dim Rs As New ADODB.Recordset
Dim rs1 As New ADODB.Recordset
Dim SQL2 As String
Dim SQL3 As String
Dim SQL4 As String
Dim SQL5 As String
Dim SQL6 As String
Dim SQL7 As String
If Trim(frm1DatHang.txtSDDH) = "" Or Trim(Trim(frm1DatHang.cboMKH)) = "" Or Trim(cboSP) = "" Then
MsgBox " Xin nhap dau du thong tin truoc khi luu ", vbOKOnly + vbExclamation, "THONG BAO"
Me.MousePointer = 0
End If
SQL2 = " insert into KHACHHANG values('" & Trim(frm1DatHang.cboMKH) & "','" & Trim(frm1DatHang.txtTKH) & "','" & Trim(frm1DatHang.txtDiachi) & "','" & Trim(frm1DatHang.txtDienthoai) & "')"
SQL3 = " insert into DONDATHANG values(' " & Trim(frm1DatHang.txtSDDH) & " ',' " & Trim(frm1DatHang.cboMKH) & " ',' " & Trim(frm1DatHang.txtNgayKK) & " ')"
SQL4 = " insert into CHITIETDONDATHANG values(' " & Trim(frm1DatHang.txtSDDH) & " ',' " & Trim(cboSP) & " ',' " & Trim(txtSl) & " ',' " & Trim(txtDG) & " ',' " & Trim(frm1DatHang.txtHanGiao) & " ') "
Conn.Execute SQL2
Conn.Execute SQL3
Conn.Execute SQL4
SQL5 = " update DONDATHANG set MAKHCHHANG='" & Trim(frm1DatHang.cboMKH) & "', TENKHACHHANG='" & Trim(frm1DatHang.txtTKH) & "', NGAYKIKET='" & Trim(frm1DatHang.txtNgayKK) & "',HANGIAO='" & Trim(frm1DatHang.txtHanGiao) & "' WHERE SODONDATHANG='" & Trim(frm1DatHang.txtSDDH) & "'"
SQL6 = " update KHACHHANG set MAKHACHHANG='" & Trim(frm1DatHang.cboMKH) & "',TENKHACHHANG='" & Trim(frm1DatHang.txtTKH) & ",DIACHI='" & Trim(frm1DatHang.txtDiachi) & "',DIENTHOAI='" & Trim(frm1DatHang.txtDienthoai) & "'"
SQL7 = " update CHITIETDONDATHANG set SODONDATHANG='" & Trim(frm1DatHang.txtSDDH) & "',SANPHAM='" & Trim(cboSP) & "',SOLUONGDATHANG='" & Trim(txtSl) & "',DONGIA='" & Trim(txtDG) & "',HANGIAO='" & Trim(frm1DatHang.txtHanGiao) & "'"
Conn.Execute SQL5
Conn.Execute SQL6
Conn.Execute SQL7
End Sub
: Thoát cửa sổ đơn đặt hàng.
Màn hình Giao Nhận
Hình 5: Màn hình giao nhận sản phẩm cho khách hàng.
Source code lấy dữ liệu lên cbo số phiếu:
Dim sql As String
sql = "select sophieu from giaoNhan "
Set rsSoP = New ADODB.Recordset
rsSoP.Open sql, Conn, adOpenKeyset, adLockOptimistic
Set cboSoPhieu.DataSourceList = rsSoP
cboSoPhieu.DataFieldList = "SoPhieu"
cboSoPhieu.Columns(0).Width = 1200
Source code lấy dữ liệu lên cbo số ĐĐH :
1 D