OBO
OK S
.CO
M
THƯ VIỆN ĐIỆN TỬ TRỰC TUYẾN
KIL
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
THƯ VIỆN ĐIỆN TỬ TRỰC TUYẾN
Chương trình kết nối trên Cơ sở dữ liệu Access.
KIL
OBO
OKS
.CO
M
Để 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=
<”đường dẫn.Tên database”> 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
<Đối tượng connection”>.Execute <”Câu lệnh SQL”>
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
<“Đối tượng Recordset”>.open <”Câu lệnh SQL”>,<”Đối tượng
connection”>
THƯ VIỆN ĐIỆN TỬ TRỰC TUYẾN
ví dụ: Rst.Open strSQL ,Conn
KIL
OBO
OKS
.CO
M
I. MÔ TẢ CÁC PHIẾU:
1. 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
ĐVT
Số lượng
Số lượng
Đơn giá
2. Đơ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
3. 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
Đơn giá
THƯ VIỆN ĐIỆN TỬ TRỰC TUYẾN
KIL
OBO
OKS
.CO
M
4. Phiếu thanh toán:
Số TT
:
Ngày TT
:
Khách Hàng :
Đòa Chỉ
:
Điện Thoại :
Tiền TT
:
5. Tồn nguyên liệu:
Ngày tồn
:
Khách Hàng :
Đòa Chỉ
:
Điện Thoại :
Số lượng tồn ĐVT
Nguyên liệu
6. Công nợ:
Ngày CN
Khách Hàng
Đòa Chỉ
Điện Thoại
Tiền CN
:
:
:
:
:
7. 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)
II. PHÂN TÍCH:
PHÂN TÍCH THÀNH PHẦN DỮ LIỆU CỦA ỨNG DỤNG:
1. Sơ đồ quan niệm dữ liệu:
KIL
OBO
OKS
.CO
M
THƯ VIỆN ĐIỆN TỬ TRỰC TUYẾN
Hình 1: Sơ đồ Quan niệm dữ liệu của ứng dụng ĐƠN HÀNG GIA CÔNG
2. Mô tả dữ liệu:
a) Các loại thực thể:
KhachHang
DonDatHang
ChiTietDonDatHang
SanPham
DinhMucSanXuat
CongNo
GiaoNhan
ChiTietGiaoNhan
NguyenLieu
ThanhToan
Ton
Khách hàng
Đơn đặt hàng
Chi tiết đơn đặt hàng
Sản phẩm
Đònh mức sản xuất
Công nợ
Giao nhận
Chi tiết giao nhận
Nguyên liệu
Thanh toán
Tồn
THƯ VIỆN ĐIỆN TỬ TRỰC TUYẾN
Nhập xuất nguyên liệu
Chi tiết nguyên liệu
KIL
OBO
OKS
.CO
M
NhapXuatNguyenLieu
ChiTietNguyenLieu
b) Mô tả các loại thực thể:
b1) Thực thể Khách hàng:
Thuộc tính
MaKhachHang
TenKhachHang
DiaChi
DienThoai
Diễn giải
Mã khách hàng
Tên khách hàng
Đòa chỉ
Điện thoại
Kiểu
Text
Text
Text
Text
Ràng buộc
Khoá chính
Kiểu
Text
Text
Date
String
Ràng buộc
Khoá chính
Khoá ngoại
Kiểu
Text
Text
Number
Number
Date()
Ràng buộc
Khoá chính
Khoá ngoại
Kiểu
Text
Text
Number
Number
Ràng buộc
Khoá chính
b2) Thực thể đơn đặt hàng:
Thuộc tính
SoDonDatHang
MaKhachHang
NgayKiKet
DienThoai
Diễn giải
Số đơn đặt hàng
Mã khách hàng
Ngày kí kết
Điện thoại
b3) Thực thể Chi tiết đơn đặt hàng:
Thuộc tính
SoDonDatHang
SanPham
SoLuongDatHang
DonGia
HanGia
Diễn giải
Số đơn đặt hàng
Sản phẩm
SL đặt hàng
Đơn giá
Hạn giao
b4) Thực thể Sản phẩm:
Thuộc tính
SanPham
TenSanPham
DonViTinh
DonGia
Diễn giải
Sản phẩm
Tên sản phẩm
Đơn vò tính
Đơn giá
b5) Thực thể Đònh mức sản xuất:
THƯ VIỆN ĐIỆN TỬ TRỰC TUYẾN
Diễn giải
Nguyên liệu
Sản phẩm
Số lượng sản xuất
Kiểu
Text
Text
Number
Ràng buộc
Khoá ngoại
Khoá ngoại
Kiểu
Date()
Text
Number
Ràng buộc
Khoá chính
Khoá ngoại
Kiểu
Text
Text
Number
Ràng buộc
Khoá chính
Khoá ngoại
Kiểu
Text
Text
Number
Number
Ràng buộc
Khoá ngoại
Khoá ngoại
Kiểu
Text
Text
Number
Ràng buộc
Khoá chính
Kiểu
Text
Date()
Ràng buộc
Khoá chính
Khoá ngoại
KIL
OBO
OKS
.CO
M
Thuộc tính
NguyenLieu
SanPham
SoLuongSanXuat
b6) Thực thể công nợ:
Thuộc tính
NgayCongNo
MaKhachHang
TienCongNo
Diễn giải
Ngày công nợ
Mã khách hàng
Tiền công nợ
b7) Thực thể Giao Nhận:
Thuộc tính
SoPhieu
SoDonDatHang
NgayGiao
Diễn giải
Số phiếụ
Số đơn đặt hàng
Ngày giao
b8) Thực thể Chi tiết giao nhận:
Thuộc tính
SoPhieu
SanPham
SoLuong
DonGia
Diễn giải
Số phiếu
Sản phẩm
Số lượng
Đơn giá
b9) Thực thể Nguyên Liệu:
Thuộc tính
NguyenLieu
Ten NguyenLieu
DonViTinh
Diễn giải
Nguyên liệu
Tên nguyên liệu
Đơn vò tính
b10) Thực thể Thanh Toán:
Thuộc tính
SoThanhToan
NgayThanhToan
Diễn giải
Số thanh toán
Ngày thanh toán
THƯ VIỆN ĐIỆN TỬ TRỰC TUYẾN
MaKhachHang
TienThanhToan
Mã khách Hàng
Tiền thanh toán
Text
Number
KIL
OBO
OKS
.CO
M
b11) Tthực thể Tồn:
Thuộc tính
MaKhachHang
NguyenLieu
SoLuongTon
NgayTon
Diễn giải
Mã khách hàng
Nguyên liệu
Số lượng tồn
Ngày tồn
Kiểu
Text
Text
Number
Date()
Ràng buộc
Khoá ngoại
Khoá ngoại
Kiểu
Text
Text
Date()
Ràng buộc
Khoá chính
Khoá ngoại
Kiểu
Text
Text
Date()
Ràng buộc
Khoá ngoại
Khoá ngoại
b12) Thực thể Nhập xuất nguyên liệu:
Thuộc tính
SoHoaDonNhap
MaKhachHang
NgayNhap
Diễn giải
Số hoá đơn nhập
Mã khách hàng
Ngày nhập
b13) Thực thể Chi tiết nguyên liệu:
Thuộc tính
SoHoaDonNhap
NguyenLieu
SoLuong
Diễn giải
Số hoá đơn nhập
Nguyên liệu
Số lượng
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
THƯ VIỆN ĐIỆN TỬ TRỰC TUYẾN
KIL
OBO
OKS
.CO
M
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ý
Chức năng
Input
Output
Qui tắc
: XL2:
: Cập nhật phiếu nhập nguyên liệu.
: SoHDN h, NL n, NXNL, CTNL, NL, KH.
: NXNL.
: 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.
THƯ VIỆN ĐIỆN TỬ TRỰC TUYẾN
: XL3:
: Cập nhật Đơn đặt hàng .
: SDDH, MSP, DDH, CTDDH, KH, SP
: DDH.
: 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ý
Chức năng
Input
Output
Qui tắc
: XL4:
: Cập nhật phiếu Giao nhận.
: SoP p, SoDDH h, GN, CTGN, DDH, CTDDH.
: GN.
: 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ý
Chức năng
Input
Output
Qui tắc
: XL5
: Cập nhật phiếu thanh toán.
: SoTT, MKH, TTOAN, KH
: TTOAN.
: 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ý
Chức năng
Input
Output
Qui tắc
: XL6:
: Tính nợ Khách hàng.
: NgCN, MKH, CNO.
: CNO.
: NOCK = NODK + SONO -
_Tên xử lý
Chức năng
Input
Output
Qui tắc
: XL7 :
: Tính tồn Nguyên liệu :
: NgTON, LN, TON.
: TON.
: TONCK = TONDK +
NHAP -
KIL
OBO
OKS
.CO
M
_Tên xử lý
Chức năng
Input
Output
Qui tắc
III. THIẾT KẾ DỮ LIỆU :
1. Sơ đồ Logic dữ liệu:
THANHTOAN
XUAT
KIL
OBO
OKS
.CO
M
THƯ VIỆN ĐIỆN TỬ TRỰC TUYẾN
Hình 2: Sơ đồ Logic dữ liệu của ứng dụng ĐƠN HÀNG GIA CÔNG
2. Từ điển dữ liệu:
MaKhachHang
TenKhachHang
DiaChi
DienThoai
SoDonDatHang
NgayKiKet
SanPham
TenSanPham
DonViTinh
DonGia
SoPhieu
Mã khách hàng
Ten khách hàng
Đòa chỉ
Điện thoại
Số đơn đặt hàng
Ngày kí kết
Sản phẩm
Tên sản phẩm
Đơn vò tính
Đơn giá
Số phiếu
THƯ VIỆN ĐIỆN TỬ TRỰC TUYẾN
Ngày giao
Ngày công nợ
Tiền công nợ
Nguyên liệu
Tên Nguyên liệu
Số thanh toán
Ngày thanh toán
Tiền thanh toán
Số hoá đơn nhập
Ngày nhập
Số lượng đặt hàng
Đơn giá
Hạn giao
Số lượng
Số lượng sản xuất
Số lượng tồn
Ngày tồn
KIL
OBO
OKS
.CO
M
NgayGiao
NgayCongNo
TienCongNo
NguyenLieu
TenNguyenLieu
SoThanhToan
NgayThanhToan
TienThanhToan
SoHoaDonNhap
NgayNhap
SoLuongDatHang
DonGia
HanGiao
SoLuong
SoLuongSanXuat
SoLuongTon
NgayTon
3. Mô tả các bảng:
3.1) Khách hàng
Thuộc tính:
Thuộc tính
MaKhachHang
TenKhachHang
DiaChi
DienThoai
Kiểu
Text
Text
Text
Text
Khóa
Chính
Chỉ mục:
Chỉ mục
KHACHHANG_PK
Thuộc tính
MakhachHang
3.2) Công nợ:
Thuộc tính:
Thuộc tính
NgayCongNo
Kiểu
Text
Khóa
Chính
Thứ tự
ASC
THƯ VIỆN ĐIỆN TỬ TRỰC TUYẾN
MaKhachHang
TienCongNo
Text
Number
Ngoại
KIL
OBO
OKS
.CO
M
Chỉ mục:
Chỉ mục
CONGNO_PK
CONGNO_FK
Thuộc tính
NgayCongNo
MaKhachHang
MaKhachHang
Thứ tự
ASC
Bảng tham chiếu
KhachHang
Khoá nội
MaKhachHang
ASC
Khoá ngoại:
Khoá ngoại
MaKhachHang
3.3) Đơn đặt hàng
Thuộc tính:
Thuộc tính
SoDonDatHang
MaKhachHang
NgayKiKet
Kiểu
Text
Text
Date()
Khóa
Chính
Ngoại
Chỉ mục:
Chỉ mục
DONDATHANG_PK
DONDATHANG_FK
Thuộc tính
SoDonDatHang
MaKhachHang
MaKhachHang
Thứ tự
ASC
Bảng tham chiếu
KhachHang
Khoá nội
MaKhachHang
ASC
Khoá ngoại:
Khoá ngoại
MaKhachHang
3.4) Chi tiết Đơn đặt hàng
Thuộc tính:
THƯ VIỆN ĐIỆN TỬ TRỰC TUYẾN
Kiểu
Text
Text
Number
Number
Date()
Khóa
Ngoại
Ngoại
KIL
OBO
OKS
.CO
M
Thuộc tính
SoDonDatHang
SanPham
SoLuongDatHang
DonGia
HanGiao
Chỉ mục:
Chỉ mục
Thuộc tính
Thứ tự
CTDONDATHANG_PK SoDonDatHang ASC
SanPham
CTDONDATHANG_FK SanPham
ASC
Khoá ngoại:
Khoá ngoại
SoDonDatHang
SanPham
3.5)
Bảng tham chiếu
DonDatHang
SanPham
Khoá nội
SoDonDatHang
SanPham
Kiểu
Text
Text
Number
Date()
Khóa
Ngoại
Ngoại
Thuộc tính
MaKhachHang
NguyenLieu
NguyenLieu
Thứ tự
ASC
ASC
Bảng tham chiếu
KhachHang
Khoá nội
MaKhachHang
Tồn :
Thuộc tính:
Thuộc tính
MaKhachHang
NguyenLieu
SoLuongTon
NgayTon
Chỉ mục:
Chỉ mục
TON_PK
TON_FK
Khoá ngoại:
Khoá ngoại
MaKhachHang
THƯ VIỆN ĐIỆN TỬ TRỰC TUYẾN
NguyenLieu
NguyenLieu
Sản phẩm :
Thuộc tính:
KIL
OBO
OKS
.CO
M
3.6)
NguyenLieu
Thuộc tính
SanPham
TenSanPham
DonViTinh
DonGia
Kiểu
Text
Text
Number
Number
Khóa
Chính
Thuộc tính
SanPham
Thứ tự
ASC
Kiểu
Text
Text
Number
Khóa
Ngoại
Ngoại
Thuộc tính
NguyenLieu
SanPham
SanPham
Thứ tự
ASC
Bảng tham chiếu
NguyenLieu
SanPham
Khoá nội
NguyenLieu
SanPham
Chỉ mục:
Chỉ mục
SANPHAM_PK
3.7)
Đònh mức sản xuất :
Thuộc tính:
Thuộc tính
NguyenLieu
SanPham
SoLuongSanXuat
Chỉ mục:
Chỉ mục
DMSX_PK
DMSX _FK
ASC
Khoá ngoại:
Khoá ngoại
NguyenLieu
SanPham
3.8)
Giao Nhận:
Thuộc tính:
THƯ VIỆN ĐIỆN TỬ TRỰC TUYẾN
Kiểu
Text
Text
Date()
Khóa
Chính
Ngoại
Thuộc tính
SoPhieu
SoDonDatHang
SoDonDatHang
Thứ tự
ASC
Bảng tham chiếu
DonDatHang
Khoá nội
SoDonDatHang
Kiểu
Text
Text
Number
Number
Khóa
Ngoại
Ngoại
Thuộc tính
SoPhieu
SanPham
SanPham
Thứ tự
ASC
Bảng tham chiếu
GiaoNhan
SanPham
Khoá nội
SoPhieu
SanPham
KIL
OBO
OKS
.CO
M
Thuộc tính
SoPhieu
SoDonDatHang
NgayGiao
Chỉ mục:
Chỉ mục
GIAONHAN_PK
GIAONHAN_FK
ASC
Khoá ngoại:
Khoá ngoại
SoDonDatHang
3.9)
Chi tiết Giao Nhận:
Thuộc tính:
Thuộc tính
SoPhieu
SanPham
SoLuong
DonGia
Chỉ mục:
Chỉ mục
CTGN_PK
CTGN_FK
ASC
Khoá ngoại:
Khoá ngoại
SoPhieu
SanPham
3.10) Nguyên liệu:
THƯ VIỆN ĐIỆN TỬ TRỰC TUYẾN
Thuộc tính:
Kiểu
Text
Text
Number
Khóa
Chính
Thuộc tính
NguyenLieu
Thứ tự
ASC
Kiểu
Text
Date()
Text
Number
Khóa
Chính
Thuộc tính
SoThanhToan
MaKhachHang
MaKhachHang
Thứ tự
ASC
Bảng tham chiếu
KhachHang
Khoá nội
MaKhachHang
KIL
OBO
OKS
.CO
M
Thuộc tính
NguyenLieu
TenNguyenLieu
DonViTinh
Chỉ mục:
Chỉ mục
NGUYENLIEU_PK
3.11) Thanh toán:
Thuộc tính:
Thuộc tính
SoThanhToan
NgayThanhToan
MaKhachHang
TienThanhToan
Ngoại
Chỉ mục:
Chỉ mục
THANHTOAN_PK
THANHTOAN_FK
ASC
Khoá ngoại:
Khoá ngoại
MaKhachHang
3.12) Nhập xuất nguyên liệu :
Thuộc tính:
Thuộc tính
SoHoaDonNhap
MaKhachHang
NgayNhap
Kiểu
Text
Text
Number
Khóa
Chính
Ngoại
THƯ VIỆN ĐIỆN TỬ TRỰC TUYẾN
Chỉ mục:
Thuộc tính
SoHoaDonNhap
MaKhachHang
MaKhachHang
Thứ tự
ASC
Bảng tham chiếu
KhachHang
Khoá nội
MaKhachHang
Kiểu
Text
Text
Number
Khóa
Ngoại
Ngoại
Thuộc tính
SoPhieu
SanPham
SanPham
Thứ tự
ASC
Bảng tham chiếu
NXNguyenLieu
NguyenLieu
Khoá nội
SoPhieu
SanPham
KIL
OBO
OKS
.CO
M
Chỉ mục
NXNL_PK
NXNL_FK
ASC
Khoá ngoại:
Khoá ngoại
MaKhachHang
3.13) Chi tiết nguyên liệu :
Thuộc tính:
Thuộc tính
SoHoaDonNhap
NguyenLieu
SoLuong
Chỉ mục:
Chỉ mục
CTGN_PK
CTGN_FK
ASC
Khoá ngoại:
Khoá ngoại
SoHoaDonNhap
NguyenLieu
4. 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
THƯ VIỆN ĐIỆN TỬ TRỰC TUYẾN
KIL
OBO
OKS
.CO
M
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]
R3-02 : TTOAN[MaKH]
R3-03 : TON[MaKH]
R3-04 : DDHANG[MaKH]
R3-05 : NXNL[MaKH]
R3-06 : GNHAN[SoDDH]
R3-07 : CTDDH[SoDDH]
R3-08 : CTDDH[MaSP]
R3-09 : CTGN[MaSP]
R3-10 : DMSX[MaSP]
R3-11 : GN[SoPhieu]
R3-12 : DMSX[MaNL]
R3-13 : TON[MaNL]
R3-14 : CTNL[MaNL]
R3-15 : CTNL[SoHDN]
KH[MaKH]
KH[MaKH]
KH[MaKH]
KH[MaKH]
KH[MaKH]
DDH[SoDDH]
DDH[SoDDH]
SPHAM[MaSP]
SPHAM[MaSP]
SPHAM[MaSP]
CTGN[SoPhieu]
NLIEU[MaNL]
NLIEU[MaNL]
NLIEU[MaNL]
NXNL[SoHDN]
IV. THIẾT KẾ ỨNG DỤNG (Các màn hình):
1. Màn hình chính:
KIL
OBO
OKS
.CO
M
THƯ VIỆN ĐIỆN TỬ TRỰC TUYẾN
H1ình 3: Màn hình chính của ứng dụng.
Danh Mục:
Menu Đặt hàng
Menu Giao nhận
Menu Nhập xuất Nguyên liệu
2. Màn hình Đặt hàng:
Khách hàng đặt đơn hàng mới.
Giao hàng cho Khách hàng.
Nhập nguyên liệu từ khách hàng.
KIL
OBO
OKS
.CO
M
THƯ VIỆN ĐIỆN TỬ TRỰC TUYẾN
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
THƯ VIỆN ĐIỆN TỬ TRỰC TUYẾN
KIL
OBO
OKS
.CO
M
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
THÖ VIEÄN ÑIEÄN TÖÛ TRÖÏC TUYEÁN
KIL
OBO
OKS
.CO
M
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
THƯ VIỆN ĐIỆN TỬ TRỰC TUYẾN
: Thoát cửa sổ đơn đặt hàng.
KIL
OBO
OKS
.CO
M
3. 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 Dim sql1 As String
sql1 = "select sodondathang from dondathang"
Set rsSoDDH = New ADODB.Recordset
THƯ VIỆN ĐIỆN TỬ TRỰC TUYẾN
KIL
OBO
OKS
.CO
M
rsSoDDH.Open sql1, Conn, adOpenKeyset, adLockOptimistic
Set cboSoDDH.DataSourceList = rsSoDDH
cboSoDDH.DataFieldList = "SoDonDathang"
cboSoDDH.Columns(0).Width = 1230
Source code lấy dữ liệu lên lưới:
Dim strSQL As String
Dim Cnn As New ADODB.Connection
strSQL = "select * from SanPham"
Set Rst = New ADODB.Recordset
Rst.CursorLocation = adUseClient
'Conn.Open SQLConn
Cnn.Open SQLConn '
KHÔNG DÙNG BIẾN Conn
Rst.Open strSQL, Conn, adOpenKeyset, adLockOptimistic
SSOGiaoNhan.Columns(0).DataField = "sanpham"
SSOGiaoNhan.Columns(1).DataField = "Tensanpham"
SSOGiaoNhan.Columns(2).DataField = ""
SSOGiaoNhan.Columns(3).DataField = ""
Set SSOGiaoNhan.DataSource = Nothing
Set SSOGiaoNhan.DataSource = Rst
: Khi nhấn nút Mới thì cboSP, cboDDh, txtNgay nhận focus, dữ liệu
của cột SL và DG sẽ được nhập 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 Str As String
Dim Str1 As String
Dim Str2 As String
Dim Str3 As String
If Trim(cboSoPhieu) = "" Or Trim(cboSoDDH) = "" Then
MsgBox " Xin nhap soPHIEU va soDDH truoc khi luu ", vbOKOnly +
vbExclamation, "THONG BAO"
Me.MousePointer = 0
End If
Str = " insert into GIAONHAN values('" & Trim(cboSoPhieu) & "','" &
Trim(cboSoDDH) & "','" & Trim(txtNgay) & "')"
Conn.Execute Str