Đồ án Đơn hàng gia công

Tài liệu Đồ án Đơn hàng gia công: 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à ...

doc43 trang | Chia sẻ: hunglv | Lượt xem: 1483 | Lượt tải: 0download
Bạn đang xem trước 20 trang mẫu tài liệu Đồ án Đơn hàng gia công, để tải tài liệu gốc về máy 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: H1ì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 Dim sql1 As String sql1 = "select sodondathang from dondathang" Set rsSoDDH = New ADODB.Recordset 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 Str1 = " update GIAONHAN set SOPHIEU='" & Trim(cboSoPhieu) & "',SODONDATHANG='" & Trim(cboSoDDH) & "',NGAYGIAO='" & Trim(txtNgay) & "'" Conn.Execute Str1 Str2 = " insert into CHITIETGIAONHAN values('" & Trim(cboSoPhieu) & "','" & Trim(SSOGiaoNhan.Columns(0).Text) & "','" & Trim(SSOGiaoNhan.Columns(2).Text) & "','" & Trim(SSOGiaoNhan.Columns(3).Text) & "' ) Conn.Execute Str2 Str3 = " update CHITIETGIAONHAN set SOPHIEU='" & Trim(cboSoPhieu) & "', SANPHAM='" & Trim(SSOGiaoNhan.Columns(0).Text) & "', SOLUONG='" & Trim(SSOGiaoNhan.Columns(2).Text) & "',DONGIA='" & Trim(SSOGiaoNhan.Columns(3).Text) & "' " Conn.Execute Str3 End Sub : thoát cửa sổ Giao nhận. Màn hình Nhập xuất Nguyên liệu: Hình 6: Màn hình nhập xuất nguyên liệu. Source code lấy dữ liệu lên cbo MAKH: 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 * from NGUYENLIEU" Set Rst = New ADODB.Recordset Rst.CursorLocation = adUseClient Cnn.Open SQLConn Rst.Open strSQL, Conn, adOpenKeyset, adLockOptimistic SSONXNL.Columns(0).DataField = "nguyenLieu" SSONXNL.Columns(1).DataField = "tennguyenlieu" SSONXNL.Columns(2).DataField = "" SSONXNL.Columns(3).DataField = "" Set SSONXNL.DataSource = Nothing Set SSONXNL.DataSource = Rst : Khi nhấn nút Mới để nhập Nguyên liệu mới thì các textbox và combobox nhận focus. : Lưu dữ liệu mới xuống cơ sở dữ liệu. : Thoát màn hình Nhập xuất nguyên liệu. Tra cứu : Menu Khách hàng: Hiển thị Khách hàng và nhập Khách hàng mới. Menu Nguyên liệu: Hiển thị danh sách nguyên kiệu và Nhập nguyên liệu mới. Menu Sản phẩm: Hiển thị danh sách sản phẩm và nhập sản phẩm mới Menu Định mức sản xuất: Hiển thị danh sách định mức sản xuất và nhập định mức sản xuất cho sản phẩm mới. Màn hình Khách hàng : Hình 7: Màn hình tra cứu, nhập mới khách hàng. 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 * FROM khachhang" Set Rst = New ADODB.Recordset Rst.CursorLocation = adUseClient Cnn.Open SQLConn Rst.Open strSQL, Conn, adOpenKeyset, adLockOptimistic SSOkh.Columns(0).DataField = "makhachhang" SSOkh.Columns(1).DataField = "tenkhachhang" SSOkh.Columns(2).DataField = "diachi" SSOkh.Columns(3).DataField = "dienthoai" Set SSOkh.DataSource = Nothing Set SSOkh.DataSource = Rst : Khi nhấn nút mới thì các textbox và combobox nhận focus để nhập thông tin khách hàng mới. : Lưu dữ liệu mới xuống Cơ sở dữ liệu. Source code : Private Sub cmdLuu_Click() Dim Str As String Dim Str1 As String If Trim(cboKH.Text) = "" Or Trim(txtTKH.Text) = "" Then MsgBox " Nhap MaKH va TenKH truoc khi luu ", vbOKOnly + vbExclamation, "WARNING" Exit Sub End If Str = "Insert Into KHACHHANG values('" & Trim(cboKH) & "','" & Trim(txtTKH) & "','" & Trim(txtDC) & "','" & Trim(txtDT) & "' ) " Conn.Execute Str Str1 = "update KHACHHANG set maKhachhang='" & Trim(cboKH) & "', TenKhachHang='" & Trim(txtTKH) & "', DiaChi='" & Trim(txtDC) & "', DienThoai='" & Trim(txtDT) & "' WHERE MaKhachHang='" & Trim(cboKH) & "' " Conn.Execute Str1 SSOkh.Update MsgBox "Da luu Khach Hang '" & Trim(cboKH) & "'' vao CSDL", vbOKOnly + vbExclamation, "WARNING" CmdLuu.Enabled = False cmdmoi.Enabled = True End Sub : Thoát màn hình Khách hàng. Màn hình Nguyên Liệu : Hình 8: Màn hình tra cứu, nhập nguyên liệu. Source code lấy dữ liệu lên lưới: Dim strSQL As String Dim Cnn As New ADODB.Connection strSQL = "select * FROM NguyenLieu" Set Rst = New ADODB.Recordset Rst.CursorLocation = adUseClient Cnn.Open SQLConn Rst.Open strSQL, Conn, adOpenKeyset, adLockOptimistic SSONL.Columns(0).DataField = "NGUYENLIEU" SSONL.Columns(1).DataField = "tennguyenlieu" SSONL.Columns(2).DataField = "donvitinh" Set SSONL.DataSource = Nothing Set SSONL.DataSource = Rst : Khi nhấn nút mới thì các textbox nhận focus nhập thông tin nguyên liệu mới. : Lưu dữ liệu mới xuống Cơ sở dữ liệu. : Thoát màn hình Nguyên liệu. Màn hình Sản phẩm : Hình 9: Màn hình tra cứu, nhập sản phẩm. 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 Rst.Open strSQL, Conn, adOpenKeyset, adLockOptimistic SSOSP.Columns(0).DataField = "sanpham" SSOSP.Columns(1).DataField = "tensanpham" SSOSP.Columns(2).DataField = "donvitinh" SSOSP.Columns(3).DataField = "dongia" Set SSOSP.DataSource = Nothing Set SSOSP.DataSource = Rst : Khi nhấn nút mới thì các textbox nhận focus nhập thông tin sản phẩm mới. : Lưu dữ liệu mới xuống Cơ sở dữ liệu. Source code Lưu: Private Sub cmdLuu_Click() Dim Str As String Dim Str1 As String If Trim(txtSP) = "" Or Trim(txtTSP) = "" Then MsgBox "Phai nhap MaSP & TenSP truoc khi luu ", vbOKOnly + vbExclamation, "WARNING" Exit Sub End If Str = "insert into SANPHAM values('" & Trim(txtSP) & "','" & Trim(txtTSP) & "','" & Trim(txtDVT) & "','" & Trim(txtDG) & "')" Conn.Execute Str Str1 = "update SANPHAM Set sanpham='" & Trim(txtSP) & "',tensanpham='" & Trim(txtTSP) & "',donvitinh='" & Trim(txtDVT) & "',dongia='" & Trim(txtDG) & "' " Conn.Execute Str1 SSOSP.Update MsgBox "Da Luu San Pham '" & Trim(txtSP) & "'' Vao CSDL", vbOKOnly + vbExclamation, "WARNING" CmdLuu.Enabled = False End Sub : Thoát màn hình sản phẩm. Màn hình Định mức sản xuất : Source code lấy dữ liệu lên lưới: Dim strSQL As String Dim Cnn As New ADODB.Connection strSQL = "select * from DinhMucSanXuat" Set Rst = New ADODB.Recordset Rst.CursorLocation = adUseClient Cnn.Open SQLConn Rst.Open strSQL, Conn, adOpenKeyset, adLockOptimistic SSODMSX.Columns(0).DataField = "nguyenLieu" SSODMSX.Columns(1).DataField = "sanpham" SSODMSX.Columns(2).DataField = "soluongsanxuat" Set SSODMSX.DataSource = Nothing Set SSODMSX.DataSource = Rst : Khi nhấn nút mới thì các textbox nhận focus nhập thông tin mới. : Lưu dữ liệu mới xuống Cơ sở dữ liệu. : Thoát màn hình định mức sản xuất. Tính toán: Menu Công nợ: Báo cáo công nợ. Menu Tồn : Báo cáo tồn nguyên liệu. Menu Thanh Toán: Hiển thị tiền thanh toán của khách hàng với công ty. Màn hình công nợ: : Khi nhấn nút mới thì các textbox nhận focus nhập thông tin phiếu Công nợ mới. : Lưu dữ liệu mới xuống Cơ sở dữ liệu. : Thoát màn hình Tồn Nguyên Liệu. Code xử lý tính công nợ: Q1: SELECT max(ngaycongNo) AS NgDK FROM CongNo; Q2: SELECT MaKhachHang,TienCongNo As DAU, 0 As SONO , 0 As TTOAN from Q1, CongNo Where NgayCongNo = NgDK UNION Select MaKhachHang, 0 as DAU, Sum(SoLuongDathang * donGia) As SONO, 0 As TTOAN from Q1,ChiTietDondatHang where NgayKiKet = NgDK and NgayKiKet < DateAdd("m",1,NgDK) UNION Select maKhachHang, 0 As DAU,0 As SONO, Sum(ChiTietGiaoNhan.soluong * ChiTietGiaoNhan.dongia) As TTOAN from Q1, ChiTietGiaoNhan where NgayThanhToan = NgDK and NgayThanhToan < DateAdd("m",1,NgDK) group by MaKhachHang; Q3: Insert Into CongNo(NgayCongNo,MaKhachHangTiencongNo) Select DateAdd("m",1,ngDK), MaKhachHang,Sum(Dau) + Sum(soNo) – Sum(TToan) from Q1, Q2 Group By DateAdd(‘m’,1,ngDK), MaKhachHang Having Sum(Dau) + Sum(soNo) – Sum(TToan) 0; Q4: Delete * from CongNo where NgayCongNo In(Select max(NgayCongNo) from CongNo) and NgayCongNo Not in (Select min(NgayCongNo) from CongNo); Màn hình Tồn Nguyên Liệu: : Khi nhấn nút mới thì các textbox nhận focus nhập thông tin sản phẩm mới. : Lưu dữ liệu mới xuống Cơ sở dữ liệu. : Thoát màn hình Tồn Nguyên Liệu. Code xử lý tính tồn: Q1 SELECT max(ngayton) AS NgDK FR1OM Ton; Q2 SELECT MaKhachHang,NguyenLieu,Soluongton as Dau,0 as Nhap,0 as Xuat from Q1,Ton where ngayTon=NgDK union select NguyenLieu,SoLuongTon, 0 as Dau,Sum(SoHoaDonNhapXuat) as Nhap,0 as xuat from Q1,NhapXuatNguyenLieu inner join ChitietNguyenLieu on NhapXuatNguyenLieu.SohoaDonNhap=ChitietNguyenLieu.SohoaDonNhap where NgayNhap = NgDK and NgayNhap<=DateAdd("m",1,ngDK) group by MaKhachHang,NguyenLieu UNION select soPhieu,SoDondatHang, 0 as Dau,0 as Nhap, sum(soluong) as Xuat from Q1,GiaoNhan Inner Join ChiTietGiaoNhan On GiaoNhan.SoPhieu= ChiTietGiaoNhan.SoPhieu where NgayGiao=ngDK and NgayGiao <= dateAdd("m",1,ngDK) group by soPhieu, SoDonDatHang; Q3: SELECT SoPhieu,SoDonDatHang,Sum(dau) + sum(Nhap) - Sum(Xuat) as SoTon from Q2 group by SoPhieu,SoDonDatHang Into TAM; Q4: Insert Into TAM select soPhieu,Sodondathang, SoLuong* SoLuongSanXuat as SoTon from TAM Inner Join GiaoNhan on Tam.SoDonDatHang=GiaoNhan.SoDonDatHang; Q5: (xoá những thành phần có số tồn < 0) Delete * From TAM where SoTon < 0; Q6: (Tính, lưu lại): Insert into Ton(MakhachHang, NguyenLieu,SoLuongTon) select MakhachHang, NguyenLieu,Sum(SoTon), DateAdd(‘m’,1,NgDK) from Q1, TAM group by maKhachHang, NguyenLieu, Having soTon > 0, DateAdd("m",1,ngDK); Q7: (Xoá Table TAM): Drop Table TAM; Màn Hình Thanh toán: Code xử lý cho nút Lưu: Private Sub cmdLuu_Click() Dim Str As String Dim Str1 As String If Trim(cboKH.Text) = "" Or Trim(txtsott.Text) = "" Then MsgBox " Nhap So TT va MaKH truoc khi luu ", vbOKOnly + vbExclamation, "WARNING" Exit Sub End If Str = "Insert Into ThanhToan values('" & Trim(txtsott) & "','" & Trim(txtNgay) & "','" & Trim(cboKH) & "','" & Trim(txtTientt) & "' ) " Conn.Execute Str Str1 = "update ThanhToan set sothanhToan='" & Trim(txtsott) & "', NgayThanhToan='" & Trim(txtNgay) & "', MaKhachHang='" & Trim(cboKH) & "', TienThangToan='" & Trim(txtTientt) & "' WHERE soThanhToan='" & Trim(txtsott) & "' " Conn.Execute Str1 SSOTT.Update MsgBox "Da luu So Thanh Toan '" & Trim(txtsott) & "'' vao CSDL", vbOKOnly + vbExclamation, "WARNING" cmdLuu.Enabled = False cmdmoi.Enabled = True End Sub Báo Biểu: Menu Đơn đặt hàng: Báo cáo danh sách đặt hàng của khách hàng. Menu Nhập xuất NL: Báo cáo nhập nguyên liệu. Menu Giao nhận: Báo cáo giao nhận sản phẩm. Menu cộng nợ: Báo cáo công nợ. Menu Tồn: Báo cáo tồn nguyên liệu. Menu thanh toán: Báo cáo thanh toán của khách hàng. Màn Hình báo biểu Đơn đặt Hàng : Màn Hình báo biểu Nhập xuất Nguyên liệu : Màn Hình báo biểu Giao nhận : Màn Hình báo biểu Công nợ Khách hàng: Màn Hình báo biểu Tồn: Màn hình báo biểu Thanh toán :

Các file đính kèm theo tài liệu này:

  • docnoiDung.doc
  • dochuongdan.doc
  • doctrangbia.doc
Tài liệu liên quan