Đồ án Quản lý xuất nhập hàng hoá

Tài liệu Đồ án Quản lý xuất nhập hàng hoá: ĐỒ ÁN: Quản lý xuất nhập hàng hoá Lời nói đầu Ngày nay cùng với sự phát triển nhanh chóng của Công nghệ thông tin và việc ứng dụng nó vào thực tế của các ngành kinh tế và đời sống đem lại những lợi ích vô cùng to lớn. Có thể nói rằng kỹ nguyên của chúng ta là kỹ nguyên của công nghệ thông tin. Trong đó Bưu Điện, Ngân Hàng, Kinh Doanh là những ngành phát triển các ứng dụng công nghệ tin học hàng đầu. Nhưng thực tế tại CÔNG TY CÔNG NGHIỆP CHẾ BIẾN THỰC PHẨM QUỐC TẾ chi nhánh Nha Trang chưa hoàn toàn tin học hoá trong quản lý kinh doanh. Quản lý xuất nhập hàng hoá là một trong các công tác hoạt động chính của công ty, hiện tại đang cần một hệ thống quản lý mới phù hợp hơn bởi vì hầu hết các chương trình quản ly được xây dựng trên môi trường ACCESS và Pocro nên vẫn còn nhiều hạn chế và chưa đáp ứng được với nhu cầu thực tế. Qua thời gian tiếp xúc với CÔNG TY CÔNG NGHIỆP CHẾ BẾN THỰC PHẨM QUỐC TẾ chi nhánh Nha Trang tôi được các cô chú và anh chị trong công ...

pdf109 trang | Chia sẻ: haohao | Lượt xem: 1326 | Lượt tải: 0download
Bạn đang xem trước 20 trang mẫu tài liệu Đồ án Quản lý xuất nhập hàng hoá, để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên
ĐỒ ÁN: Quản lý xuất nhập hàng hoá Lời nói đầu Ngày nay cùng với sự phát triển nhanh chóng của Công nghệ thông tin và việc ứng dụng nó vào thực tế của các ngành kinh tế và đời sống đem lại những lợi ích vô cùng to lớn. Có thể nói rằng kỹ nguyên của chúng ta là kỹ nguyên của công nghệ thông tin. Trong đó Bưu Điện, Ngân Hàng, Kinh Doanh là những ngành phát triển các ứng dụng công nghệ tin học hàng đầu. Nhưng thực tế tại CÔNG TY CÔNG NGHIỆP CHẾ BIẾN THỰC PHẨM QUỐC TẾ chi nhánh Nha Trang chưa hoàn toàn tin học hoá trong quản lý kinh doanh. Quản lý xuất nhập hàng hoá là một trong các công tác hoạt động chính của công ty, hiện tại đang cần một hệ thống quản lý mới phù hợp hơn bởi vì hầu hết các chương trình quản ly được xây dựng trên môi trường ACCESS và Pocro nên vẫn còn nhiều hạn chế và chưa đáp ứng được với nhu cầu thực tế. Qua thời gian tiếp xúc với CÔNG TY CÔNG NGHIỆP CHẾ BẾN THỰC PHẨM QUỐC TẾ chi nhánh Nha Trang tôi được các cô chú và anh chị trong công ty gợi ý và giúp đỡ, tôi đã quyết định chọn đề tài “Xây dựng hệ thống thông tin quản lý xuất nhập hàng” làm đề tài thực tập tốt nghiệp của mình. Với đề tài này tôi chia thành 5 chương như sau: Chương I : Khảo sát & phân tích hiện trạng Chương II : Giới thiệu các công nghệ liên quan Chương III : Phân tích và thiết kế hệ thống Chương IV: Xây dựng chương trình Chương V: Đánh giá hệ thống Do thời gian hạn chế và kiến thức cón hạn hẹp nên trong đề tài này không thể tránh khỏi những thiếu sót. Kính mong quý thầy cô giáo và các bạn sinh viên đóng gớp ý kiến để cho đề tài này ngày càng hoàn thiện hơn. Nhân đây em xin chân thành cảm ơn cô Bùi Thị Hoà– GV bộ môn Công Nghệ Phần Mềm – khoa Công Nghệ Thông Tin trường ĐHBK Hà Nội đã tận tình hướng dẫn em trong quá trình thực hiện đề tài thực tập tốt nghiệp này. MỤC LỤC LỜI NÓI ĐẦU …………………………………………………………..…… 1 MỤC LỤC …………………………………………………………………… 2 Chương 1: KHẢO SÁT VÀ PHÂN TÍCH HIỆN TRẠNG ………………… 3 I. Giới thiệu về Công ty………………………………………………… 3 II. Phân tích hiện trạng …………………………………………………… 4 Chương 2: PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG …………………… 8 I. Mô hình quan niệm dữ liệu …………………………………………… 8 II. Mô hình tổ chức dữ liệu ……………………………………………… 8 III. Mô hình vật lý dữ liệu ………………………………………………… 9 IV. Mô hình thông lượng ………………………………………………… 14 V. Mô hình quan niệm xử lý ………………………………………………16 VI. Mô hình tổ chức xử lý ……………………………………………… 18 VII. Mô hình vật lý xử lý ………………………………………………… 22 Chương 3: GIỚI THIỆU CÁC CÔNG NGHỆ LIÊN QUAN ……………… 23 I. Giới thiệu về Visual Basic 6.0 ………………………………………… 23 II. Làm việc với Microsoft Visual Basic 6.0 …………………………… 24 III. Khả năng kết nối với cơ sở dữ liệu của Visual Basic ………………… 31 Chương 4: XÂY DỰNG CHƯƠNG TRÌNH ……………………………… 33 I. Phần dữ liệu……………………………………………………………… 33 II. Một số giao diện chính ………………………………………………… 34 III. Một số Module chính ………………………………………………… 36 Chương 5: ĐÁNH GIÁ HỆ THỐNG …..………………………………… 39 TÀI LIỆU THAM KHẢO ………………………………………………… 40 CHƯƠNG I KHẢO SÁT VÀ PHÂN TÍCH HIỆN TRẠNG I. KHẢO SÁT HIỆN TRẠNG 1. Giới thiệu tổng quát Hiện nay, Ngành quản lý kinh doanh nói chung và Công ty công nghiệp chế biến thực phẩm quốc tế – Chi nhánh Nha Trang nói riêng, vấn đề áp dụng công nghệ tin học đang được đặt lên hàng đầu nhằm hoàn chỉnh hoá hệ thống giao dịch và quản lý hàng của công ty, nhằm tăng khả năng hoạt động, giảm bớt số lượng nhân viên quản lý, đảm bảo độ chính xác và khả năng bảo mật, an toàn dữ liệu cao. Vì những lý do đó cho nên việc thay thế và nâng cấp hệ thống quản lý kinh doanh mới đang là vấn đề cấp bách cho ngành kinh doanh. Công ty công nghiệp chế biến thực phẩm quốc tế – Chi nhánh Nha Trang hiện nay đang sử dụng hệ thống quản lý kinh doanh do tổng công ty đưa ra cho các chi nhánh. Hệ thống này chạy trên nền hệ hệ quản trị CSDL Access và Foxpro. Hệ thống trên nhìn chung có nhiều ưu điểm về tính đồng nhất, chạy nhanh, kích thước dữ liệu nhỏ và không đòi hỏi cấu hình của máy tính cao, cái mà những năm trước đây còn là vấn đề khó khăn cho ngành kinh tế. Nhưng hiện nay việc đầu tư cơ sở vật chất cho hệ thống thông tin quản lý kinh doanh không còn là vấn đề khó khăn hàng đầu nữa, mà vấn đề đặt ra là tính chính xác, nhanh, an toàn và độ bảo mật cũng như khả năng quản lý toàn diện để tăng tính cạnh tranh và giảm bớt nhân sự đang là vấn đề mới cho mọi ngành quản lý. Quản lý xuất/ nhập hàng là một trong các hoạt động chính của công ty. Hệ thống quản lý hàng hoá và công nợ được tích hợp chung trong hệ thống thông tin quản lý kinh doanh của công ty. Tuy có những tính năng và ưu điểm như đã trình bày ở trên nhưng nó cũng còn nhiều hạn chế như chạy chậm khi khối lượng dữ liệu lớn, khả năng quản lý khối lượng dữ liệu còn hạn chế, khả năng bảo mật chưa cao, giao diện chưa thân thiện với người sử dụng. 2. Hiện trạng quản lý kinh doanh ở công ty Qua quá trình khảo sát và tìm hiểu thực tế quy trình quản lý kinh doanh ở Công ty, tôi nắm được một số hiện trạng của Công ty như sau: Công ty công nghiệp chế biến thực phẩm quốc tế –Chi nhánh Nha Trang là một chi nhánh của tổng Công ty ở Malaysia. Tổng Công ty chuyên sản xuất các mặt hàng thực phẩm – Các loại nước trái đóng lon và bánh kẹo các loại(Nước bí, nước yến, kẹo xốp, …). Chi nhánh Nha Trang chịu trách nhiệm phân phối các sản phẩm của tổng Công ty sản xuất cho các tỉnh ở khu vục 8 tỉnh miền trung (Khánh Hoà, Ninh Thuận, Phú Yên, Bình Định, Gia Lai, KonTum, Đak Lak). 2.1. Sơ đồ hoạt động kinh doanh của chi nhánh Công ty Chức năng của từng thành phần trong sơ đồ. - Tổng công ty: tổng công ty chuyên sản xuất các mặt hàng thực phẩm (các loại nước uống đóng lon và các loại bánh kẹo) và cung cấp các sản phẩm này cho các chi nhánh của công ty. TỔNG CÔNG TY CÁC CHI NHÁNH CÁC SHOP CÁC ĐẠI LÝ CC hàng PP hàng PP hàng - Các chi nhánh của công ty chịu trách nhiệm phân phối các sản phẩm tới các cửa hàng (Shop) và các đại lý. 2.2. Sơ đồ tổ chức của chi nhánh Công ty Vai trò và chức năng của các bộ phận trong công ty là : - Ban Giám đốc chi nhánh : Điều hành hoạt động Công ty. - Bộ phận kế toán: Kết toán sổ sách. - Bộ phận kinh doanh : Tìm hiểu thị trường, đưa ra các chiến lược kinh doanh, giới thiệu sản phẩm. - Bộ phận kho: Lưu trứ hàng hoá và bảo quản hàng hóa, báo cáo tình hình số lượng hàng hoá trong kho. 3. Các quy trình quản lý như sau a. Quy trình quản lý nhập hàng - Bộ phận kinh doanh căn cứ vào nhu cầu mua hàng của khách hàng, số lượng hàng hoá tồn tối thiểu, số lượng hàng hoá tồn tối đa trong kho và danh sách các mặt hàng hiện có của tổng công ty để lập đơn đặt hàng. Trong đơn đặt hàng có đầy đủ thông tin về chi nhánh công ty, danh sách và số lượng các mặt hàng cần nhập về. BAN GIÁM ĐỐC BỘ PHẬN KINH DOANH BỘ PHẬN KẾ TOÁN BỘ PHẬN KHO - Bộ phận kinh doanh sẽ trình đơn đặt hàng lên ban giám đốc ký duyệt. - Nếu đơn đặt hàng đã được ban giám đốc ký duyệt thì bộ phận kinh doanh sẽ gửi đơn đặt hàng tới tổng công ty. - Nếu được tổng công ty chấp thuận cung cấp hàng thì bộ phận kinh doanh sẽ lập phiếu nhập hàng và nhận hàng đưa về kho. - Mỗi lần nhập hàng đều phải làm một phiếu nhập bao gồm: Thông tin đầy đủ về nhà cung cấp, danh sách các mặt hàng, số lượng, ngày nhập, đơn giá, ngày hẹn trả tiền theo mẫu đã được in sẵn. - Bộ phận kinh doanh sẽ chuyển phiếu nhập hàng và phiếu thanh toán tới bộ phận kế toán để thanh toán tiền hàng cho tổng công ty. - Cách tính tổng giá trị hàng nhập: - Mỗi lần nhập hàng về thì phải tiến hành cập nhật lại danh mục hàng hoá như là thêm mặt hàng (nếu đó là mặt hàng mới), cập nhật lại số lượng, tính lại đơn giá (bằng phương pháp tính đơn giá bình quân gia quyền). Trong đó: Dgbqck: đơn giá bình quân cuối kỳ. Tgtondk: tổng giá tồn đầu kỳ. Tgnhaptk: tổng giá nhập trong kỳ. Tổng giá trị =  số lượng nhập * đơn giá nhập haptkSSltondk TgnhaptkTgtondk dgbqck ln   Sltondk: số lượng tồn đầu kỳ. Slnhaptk: số lượng nhập trong kỳ. b. Quy trình quản lý xuất hàng - Khi một khách hàng cần mua hàng thì làm một đơn đặt hàng theo mẫu in sẵn bao gồm : Phần đầu gồm những thông tin đầy đủ về khách hàng, phần thứ hai là danh sách mặt hàng đặt mua, số lượng, đơn giá từng loại và ngày nhận hàng. Khi đặt hàng, có thể khách hàng đặt một số tiền nào đó. - Khi mua hàng, khách hàng có thể trả tiền trước hay hẹn trả sau khi nhận hàng một số ngày quy định. - Đơn đặt hàng được đưa đến bộ phận kinh doanh để xem xét. Nếu khách hàng còn nợ trễ hạn quá một số tiền quy định thì bộ phận kinh doanh từ chối bán hàng. Nếu hàng tồn kho đủ thì cung cấp cho khách hàng theo đơn đặt hàng. - Hàng ngày bộ phận kinh doanh xem xét các đơn đặt hàng đồng thời so sánh tồn kho, để làm giấy báo cho khách hàng nhận hàng, giấy báo nợ cho khách hàng và đặt hàng cho nhà cung cấp khi lượng hàng tồn vượt dưới mức tồn tối thiểu. - Mỗi lần xuất hàng đều phải làm một phiếu xuất bao gồm : Thông tin đấy đủ về khách hàng, danh sách mặt hàng, số lượng, ngày nhập xuất, đơn giá, ngày hẹn trả tiền. - Cách tính tổng giá trị hàng xuất: Tổng giá trị =  số lượng xuất * đơn giá xuất c. Thống kê. - Định kỳ hàng tháng phải báo cáo xuất, nhập tồn hàng hoá trong tháng theo mẫu đã định. - Tại bất kỳ thời điểm nào, nếu được yêu cầu của người có thẩm quyền thì phải báo cáo tình hình hàng hoá của từng loại, từng kho, tình hình công nợ. 4. Một số mẫu đơn từ được sử dụng trong quá trình hoạt động kinh doanh a. Mẫu phiếu đặt hàng Mẫu phiếu đặt hàng này dùng chung cho cả công ty đặt mua hàng và khách đặt hàng. Số lượng hàng tồn = số lượng hàng nhập – số lượng hàng xuất CÔNG TY CN CB THỰC PHẨM QUỐC TẾ CHI NHÁNH THÀNH PHỐ NHA TRANG Điện thoại: 834223 Fax: 834225 E-mail: PHIẾU ĐẶT HÀNG (Không có giá trị thanh toán) INTERFOOD PROCESSING INDUSTRY LTD. NHA TRANG BRANCH Họ và tên khách hàng: …………………………………………………… Tel: …………. b. Mẫu phiếu nhập kho Đơn vị : ………………… Địa chỉ : ………………… PHIẾU NHẬP KHO Số …… Ngày … tháng …. Năm ……. Mẫu số : 01 – VT Ban hành theo QĐ số : 1141 – TC/QĐ/CĐKT Ngày 1 tháng 11 năm 1995 Của Bộ Tài Chính - Họ và tên người giao hàng: …………………………………………………………… - Theo …………………… số……………… ngày ……… tháng…………năm…… Của ……………………………………………………………………………………… Nhập tại kho : …………………………………………………………………………… STT TÊN, NHÃN HIỆU, QUY CÁCH, PHẨM CHẤT VẬT TƯ (SẢN PHẨM, HÀNG HOÁ) Mã số Đơn vị tính SỐ LƯỢNG Đơn giá Thành tiền Theo chứng từ Thực nhập A B C D 1 2 3 4 CỘNG x x x x x ngày …… tháng …… năm …. THỦ TRƯỞNG ĐƠN VỊ NGƯỜI NHẬN NGƯỜI GIAO NGƯỜI LẬP PHIẾU c. Mẫu phiếu xuất kho Đơn vị : ………………… Địa chỉ : …...…………… PHIẾU XUẤT KHO Ngày … tháng …. Năm ……. Số : ………… Nợ:………………………... Có: …..…………………… Họ và tên người nhận hàng: …………………………………………………………… Địa chỉ (bộ phận): ……………………………………………………………………… Lý do xuất kho: ………………………………………………………………………… Xuất tại kho: …………………………………………………………………………… STT TÊN, NHÃN HIỆU, QUY CÁCH, PHẨM CHẤT VẬT TƯ (Sản phẩm hàng hoá) Mã số Đơn vị tính SỐ LƯỢNG Đơn giá Thành tiền Yêu cầu Thực xuất A B C D 1 2 3 4 CỘNG: Tổng số tiền (Viết bằng chữ): ……………………………………………………… Xuất, ngày …… tháng …… năm …… Phụ trách bộ phận Phụ trách kế toán Người nhận Thủ kho d. Mẫu phiếu đề nghị thanh toán Mẫu phiếu này dùng chung cho cả công ty và khách mua hang. II. PHÂN TÍCH VÀ LẬP DỰ ÁN 1. Phân tích OFFICIAL RECEIPT PHIẾU THU Date: ……/ …… / ……… CREDIT TÀI KHOẢN GHI CÓ ………………… RECEIVED FORM M/S Nhận của ……………………………………………..………………………………….. POST Bộ phận công tác ………………………………………………………………………… BEING Về khoản: ………………………………………………………………………………… ……………………………………………………………………………………………. AMOUNT (IN WORDS) Số tiền …………………..………………… đồng (bằng chữ) ………………………….. ……………………………………………………………………………………………. ENCLOSE DOCUMENTS Kèm theo ……………………………………………………. Chứng từ gốc Date: ……../ ………../ ………… THỦ TRƯỞNG ĐƠN VỊ KẾ TOÁN TRƯỞNG KT THANH TOÁN THỦ QUỸ NGƯỜI NỘP MANAGER CHIEF ACCOUNT ACCOUNTANT CASHIER ACKNOWLEDGET BY INTERFOOD PROCESSING INDUSTRY LTD CÔNG TY CÔNG NGHIỆP CHẾ BIẾN THỰC PHẨM QUỐC TẾ NHA TRANG BRANCH CHI NHÁNH TP.NHA TRANG MST: 360024563.1.004.1 No Số …… Mẫu số 3 - TM Qua thực tế khảo sát, ta cần quản lý các đối tượng chính trong hệ thống quản lý xuất nhập hàng như sau: Khách hàng (bao gồm cả nhà cung cấp và khách mua hang), Hàng hoá, Kho. a. Quản lý khách hàng: Mọi khách hàng của Công ty (bao gồm cả nhà cung cấp và khách mua hàng) đều được Công ty quản lý những thông tin chính sau: - Họ khách hàng - Tên khách hàng - Tên giao dịch - Địa chỉ - Số điện thoại - Số fax - Số tài khoản ngân hàng Trong đó địa chỉ khách hàng bao gồm: + Số nhà + Đường + Huyện + Tỉnh + Thành phố + Quốc gia b. Quản lý hàng hoá: Mỗi mặt hàng được quản lý các thông tin sau: - Tên mặt hàng - Nhóm hàng - Nơi sản xuất (hãng sản xuất, nước sản xuất) - Đơn vị tính - Số lượng tồn tối thiểu - Số lượng tồn tối đa c. Quản lý kho: Hàng hoá được cất giữ tại nhiều kho, mỗi kho được quản lý các thông tin sau: - Tên kho - Địa chỉ kho - Điện thoại kho - Số fax - Thủ kho 2. Lập dự án Qua quá trình khảo sát thực tế cũng như phân tích kỹ yêu cầu thiết yếu, tôi đưa ra mô hình hệ thống quản lý xuất nhập hàng như sau: Cần thiết nhất là hệ thống phải quản lý được đầy đủ thông tin về khách hàng, hàng hoá, kho, các hoá đơn chứng từ, cũng như khả năng tính toán, chọn lọc thống kê và in ấn các thông tin. Phải đảm bảo độ chính xác, an toàn và tin cậy cao. 3. Dữ liệu vào, dữ liệu ra và các chức năng xử lý của hệ thống Dữ liệu vào: - Các thông tin về khách hàng như: họ và tên, tên giao dịch, số nhà, điện thoại, fax, tài khoản ngân hàng, số tiền nợ có thể. - Các thông tin về hàng hoá: tên mặt hàng, nhóm mặt hàng, nơi sản xuất (hãng sản xuất, nước sản xuất), đơn vị tính, số lượng tồn tối thiểu, số lượng tồn tối đa. - Thông tin về kho hàng: tên kho, địa chỉ, điện thoại, fax, thủ kho. Dữ liệu ra: - Đưa ra danh sách chi tiết về khách hàng - Danh sách chi tiết về các mặt hàng - Danh sách chi tiết về các kho hàng - In ra danh sách các đơn đặt hàng. - In ra danh sách các phiếu xuất/ nhập hàng. - In ra các phiếu thanh toán. - Thống kê tổng số lượng hàng nhập, tổng số lượng hàng xuất trong kỳ và số lượng hàng tồn ton cuối kỳ. - Cho phép xuất dữ liệu ra máy in hoặc màn hình từng hạn mục yêu cầu. In ấn các hoá đơn chứng từ. Chức năng trung tâm: - Xử lý, lưu trữ đơn đặt hàng, phiếu xuất nhập hàng, phiếu thanh toán và tính toán giá trị hàng hoá. - Lưu trữ và bảo mật dữ liệu quản lý hoá đơn chứng từ liên quan đến việc xuất/ nhập hàng, hàng hoá, kho hàng và khách hàng. Chức năng của nhà quản lý như: + Lập đơn đặt hàng, + Lập phiếu xuất/ nhập hàng, + Lập phiếu thanh toán, + Lập báo cáo về tình hình hoạt động kinh doanh. CHƯƠNG II PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG I. HỆ THỐNG THÔNG TIN  Hệ thống là một tập hợp có quan hệ, tương tác qua lại với nhau hình thành nên một thể thống nhất.  Hệ thống kinh doanh và hệ thống dịch vụ: là những hệ thống của con người nhằm mục đích kinh doanh hay dịch vụ. Các hệ thống con của hệ thống kinh doanh – dịch vụ bao gồm 3 hệ thống như sau: - Hệ thống nghiệp vụ: bao gồm người, phương tiện, phương pháp trực tiếp tham gia vào quá trình biến đổi luồng vào thành luồng ra. - Hệ thống quyết định: bao gồm người, phương tiện, phương pháp tham gia vào việc đề xuất các quyết định. - Hệ thống thông tin: bao gồm người, phương tiện, phương pháp tham gia vào việc xử lý các thông tin.  Vai trò và nhiệm vụ của hệ thống thông tin: - Hệ thống thông tin đóng vai trò trung gian giữa bên trong và bên ngoài hệ thống và những hệ thống con. - Nhiệm vụ của hệ thống thông tin: nhằm thu thập, lưu trữ, kiểm tra, kết xuất, truyền đạt thông tin. II. TỔNG QUAN VỀ HỆ THỐNG THÔNG TIN Hệ thống thông tin giao dịch xuất nhập hàng là một hệ thống thông tin hoạt động với sự trợ giúp của tin học nhằm quản lý và thực hiện các giao dịch xuất nhập. Đầu vào của hệ thống là thông tin chi tiết về tên, giá cả, số lượng các danh mục hàng hoá xuất – nhập, tồn kho, các tổng kết về quá trình giao dịch xuất nhập. 1. Các đối tượng yêu cầu quản lý Qua quá trình khảo sát thực tế, ta cần quản lý các đối tượng chính trong hệ thống quản lý xuất nhập hàng như sau: Khách hàng (bao gồm cả nhà cung cấp và khách mua hàng), Hàng hoá, Kho, Đơn đặt hàng, Phiếu nhập/ xuất hàng, phiếu thanh toán. a. Quản lý khách hàng: Mọi khách hàng của Công ty (bao gồm cả nhà cung cấp và khách mua hàng) đều được Công ty quản lý những thông tin chính sau: - Mã khách hàng - Họ khách hàng - Tên khách hàng - Tên giao dịch - Địa chỉ - Số điện thoại - Số fax - Số tài khoản ngân hàng  Trong đó địa chỉ khách hàng bao gồm: + Số nhà + Đường + Huyện + Tỉnh + Thành phố + Quốc gia b. Quản lý hàng hoá: Mỗi mặt hàng được quản lý các thông tin sau: - Mã mặt hàng - Tên mặt hàng - Nhóm hàng - Nơi sản xuất (hãng sản xuất, nước sản xuất) - Đơn vị tính - Số lượng tồn tối thiểu - Số lượng tồn tối đa c. Quản lý kho: Hàng hoá được cất giữ tại nhiều kho, mỗi kho được quản lý các thông tin sau: - Mã kho - Tên kho - Địa chỉ kho - Điện thoại kho - Số fax - Thủ kho d. Quản lý đơn đặt hàng: - Mã đơn đặt hàng - Số lượng đặt hàng - Đơn giá đặt hàng - Ngày giao e. Quản lý phiếu nhập xuất hàng: (cả phiếu nhập và xuất hàng) - Mà phiếu nhập xuất hàng - Số lượng nhập xuất hàng - Đơn giá nhập xuất hàng - Ngày nhập xuất hàng - Ngày hẹn trả tiền f. Quản lý phiếu thanh toán: - Mã phiếu thanh toán - Ngày thanh toán - Số tiền g. Quản lý ngân hàng: - Mã ngân hàng - Tên ngân hàng 2. Các chức năng của hệ thống  Quản lý nhập hàng: quản lý các thông tin về nhập hàng hoá - Thông tin vào: các thông tin cơ bản về mặt hàng cần nhập (mã hàng, tên hàng, số lượng, giá nhập, nhà cung cấp). - Thông tin ra: danh mục hàng cần nhập.  quản lý xuất hàng: quản lý các thông tin liên quan trong công tác xuất hàng của Công ty. - Thông tin vào: các thông tin cơ bản khách hàng yêu cầu, thông tin về hàng hoá, thông tin về kho hàng. - Thông tin ra: danh mục hàng xuất kho, phiếu xuất hàng.  Thống kê: thống kê và báo cáo về hoạt động giao dịch kinh doanh. - Thông tin vào: các yêu cầu thống kê. - Thông tin ra: báo cáo thống kê.  Tìm kiếm: tìm kiếm các thông tin liên quan đến hoạt động nhập, xuất hàng hoá. - Thông tin vào: các yêu cầu tìm kiếm. - Thông tin ra: các kết quả tìm kiếm. Qua trên ta thấy được các chức năng chủ yếu của một hệ thống thông tin giao dịch xuất nhập hàng hoá. Các chức năng này được chia nhỏ ra và được trình bày trong sơ đồ phân rã chức năng dưới đây, để cho ta hình dung hệ thống một cách chi tiết hơn. III. SƠ ĐỒ PHÂN RÃ CHỨC NĂNG (BPC) CỦA HỆ THỐNG 1. Sơ đồ phân rã tổng thể 2. Sơ đồ chức năng chi tiết. a. Chức năng quản lý nhập hàng. Giải thích các chức năng: - Chọn nhà cung cấp mới: Khi công ty muốn nhập hàng thì trước hết phải chọn nhà cung cấp thích hợp để làm đối tác, tiêu chí chọn nhà cung cấp được dựa trên các thông tin về nhà cung cấp và các mặt hàng mà nhà cung cấp đó có khả năng cung ứng. HOẠT ĐỘNG GIAO DỊCH XUẤT NHẬP HÀNG QUẢN LÝ XUẤT HÀNG THỐNG KÊ VÀ BÁO CÁO TÌM KIẾM QUẢN LÝ NHẬP HÀNG QUẢN LÝ NHẬP HÀNG GHI NHẬN NHÀ CUNG CẤP MỚI LẬP ĐƠN ĐẶT HÀNG LẬP PHIẾU NHẬP HÀNG THANH TOÁN CHỌN NHÀ CUNG CẤP THÍCH HỢP KHỚP VỚI ĐƠN HÀNG VỀ CẬP NHẬT DANH MỤC HÀNG - Ghi nhận nhà cung cấp mới: Khi nhà cung cấp nào đó được chọn làm đối tác thì sẽ lưu lại các thông tin về nhà cung cấp (Họ tên nhà cung cấp, địa chỉ, điện thoại, …). - Lập đơn đặt hàng: Khi đã chọn nhà cung cấp nào đó làm đối tác rồi thì bộ phận kinh doanh sẽ tiến hành lập đơn đặt hàng để gửi tới nhà cung cấp đặt mua hàng. - Lập phiếu nhập hàng: Khi đã được nhà cung cấp thoả thuận cung ứng hàng hoá thì bộ phận kinh doanh sẽ tiến hành lập phiếu nhập hàng và nhận hàng về công ty. - Cập nhật danh mục hàng: Mỗi khi nhập hàng về thì tiến hành cập nhật lại danh mục hàng như là Tên mặt hàng (nếu là mặt hàng mới), số lượng, … - Khớp với đơn hàng về: Tiến hành so sánh các hoá đơn chứng từ với lượng hàng nhận về xem đã đủ số lượng, đúng mặt hàng như yêu cầu hay chưa. - Thanh toán: Sau khi khớp với đơn hàng về xong mà không sai sót gì thì bắt đầu lập phiếu thanh toán, tiến hành việc thanh toán tiền hàng cho nhà cung cấp. b. Chức năng quản lý xuất hàng. QUẢN LÝ XUẤT HÀNG GHI NHẬN KHÁCH HÀNG MỚI GIẢI QUYẾT ĐƠN ĐẶT HÀNG LẬP PHIẾU XUẤT HÀNG CẬP NHẬT DANH MỤC HÀNG THANH TOÁN GIẢI QUYẾT XUẤT HÀNG Giải thích các chức năng: - Ghi nhận khách hàng mới: Khi có khách hàng mới đặt mua hàng thì sẽ lưu lại một số thông tin về khách hàng mới đó (như là Họ tên khách hàng, địa chỉ, điện thoại, …). - Giải quyết đơn đặt hàng: Sau khi nhận đơn đặt hàng của khách hàng thì bộ phận kinh doanh sẽ tiến hành giải quyết đơn đặt hàng, nếu đủ điều kiện thì chấp nhận bán hàng, ngược lại thì hẹn lại với khách hàng hặc từ chối bán hàng. - Lập phiếu xuất hàng: Dựa vào các đơn đặt hàng đã được giải quyết, bộ phận kinh doanh sẽ tiến hành lập phiếu xuất hàng. - Giải quyết xuất hàng: Lập các hoá đơn chứng từ xuất hàng, tiến hành xuất hàng cho khách mua hàng. - Cập nhật danh mục hàng: Mỗi lần xuất hàng thì phải tiến hành cập nhật lại danh mục hàng. - Thanh toán: Sau khi giải quyết xuất hàng thì bắt đầu lập phiếu thanh toán, tiến hành thu tiền bán hàng. c. Chức năng thống kê và báo cáo. Giải thích các chức năng: - Thống kê hàng nhập: Thống kê lượng hàng hoá nhập về theo tháng hoặc theo yêu cầu của ban quản lý. - Thống kê hàng xuất: Thống kê lượng hàng hoá xuất bán theo tháng hoặc theo yêu cầu của ban quản lý. - Thống kê hàng tồn: Thống kê lượng hàng hoá còn tồn trong kho theo tháng hoặc theo yêu cầu của ban quản lý. d. Chức năng tìm kiếm. Giải thích các cức năng: TÌM KIẾM TÌM KIẾM PHIẾU NHẬP HÀNG TÌM KIẾM PHIẾU THU TÌM KIẾM PHIẾU CHI TÌM KIẾM PHIẾU XUẤT HÀNG THỐNG KÊ VÀ BÁO CÁO THỐNG KÊ HÀNG NHẬP THỐNG KÊ HÀNG XUẤT THỐNG KÊ HÀNG TỒN THỐNG KÊ NHẬP XUẤT CHI TIẾT - Tìm kiếm phiếu nhập hàng: Tiến hành tìm kiếm phiếu nhập hàng khi nhà cung cấp yêu cầu. - Tìm kiếm phiếu xuất hàng: Tiến hành tìm kiếm phiếu xuất hàng khi khách hàng yêu cầu. - Tìm kiếm phiếu chi: Tiến hành tìm kiếm phiếu chi tiền khi nhà cung cấp yêu cầu. - Tìm kiếm phiếu thu: Tiến hành tìm kiếm phiếu thu tiền khi khách hàng yêu cầu. IV. BIỂU ĐỒ LUỒNG DỮ LIỆU  Mục đích: - Sự diễn tả là ở mức logic, nghĩa là nhằm trả lời câu hỏi “Làm gì?”, mà bỏ qua câu hỏi “Làm như thế nào?”. - Chỉ rỏ các chức năng (con) phải thực hiện để hoàn tất quá trình xử lý cần mô tả. - Chỉ rõ các thông tin được chuyển giao giữa các chức năng đó, và qua đó phần nào thấy được trình tự thực hiện của chúng.  Phân mức: Dùng biểu đồ phân cấp chức năng ta có các mức như sau: - Mức khung cảnh: có một chức năng với các luồng vào ra. - Mức đỉnh: chức năng của hệ thống được phân ra thành nhiều chức năng con. - Mức dưới đỉnh: giải thích mỗi chức năng tương tứng của mức đỉnh. 1. Biểu đồ luồng dữ liệu mức khung cảnh NHÀ CUNG CẤP KHÁCH HÀNG Hoạt động giao dịch xuất nhập hàng Thông tin về hàng Đơn đặt hàng Hoá đơn Từ chối Phiếu trả tiền Hàng hoá Thông boá hoá đơn sai Y/C tìm kiếm ĐĐH/ PTT Thống kê Báo cáo Thông tin về hàng Đơn đặt hàng Từ chối Hoá đơn Phiếu trả tiền Y/C tìm kiếm ĐĐH/ PTT Yêu cầu thống kê BAN QUẢN LÝ 2. Bểu đồ luồng dữ liệu mức đỉnh NHÀ CUNG CẤP KHÁCH HÀNG Quản lý xuất hàng Thông tin về hàng Đơn đặt hàng Hoá đơn Từ chối Phiếu trả tiền Thông báo HĐ sai Thông boá HĐ sai Thông tin về hàng Đơn đặt hàng Từ chối Hoá đơn Phiếu trả tiền Y/C tìm kiếm Quản lý nhập hàng Tìm Danh mục hàng Phiếu N/X Phiếu TT Y/C tìm kiếm 3. Biểu đồ luồng dữ liệu mức dưới đỉnh a. Chức năng quản lý nhập hàng Ghi nhận NCC mới Chọn NCC Lập đơn đặt hàng Nhà cung cấp Đơn đặt hàng Nhà cung cấp Thông tin về hàng hoá, nhà CC Từ chối Thông tin về NCC mới T/t về NCC được chọn Đơn đặt hàng Thông báo hoá đơn sai b. Chức năng quản lý xuất hàng Ghi nhận KH mới Giải quyết đơn đặt hàng Khách hàng Khách hàng Thông tin về hàng hoá Từ chối Thông tin về KH mới Đơn đặt hàng Hoá đơn Đơn ĐH được giải quyết c. Chức năng thống kê Ban quản lý Thống kê hàng nhập Thống kê hàng xuất Yêu cầu thống kê Yêu cầu Yêu cầu Yêu cầu thống kê d. Chức năng tìm kiếm Nhà CC Tìm kiếm phiếu nhập hàng Tìm kiếm phiếu xuất hàng Tìm kiếm phiếu TT Tìm kiếm phiếu TT Phiếu nhập xuất Phiếu thanh toán Y/ c tìm kiếm PN Y/C tìm kiếm PX Y/c tìm kiếmPTT Khách hàng Y/C tìm kiếm PTT V. MÔ HÌNH THỰC THỂ 1. Một số khai niệm về mô hình thực thể  Khái niệm: Là mô hình dữ liệu logic được xây dựng trên các khái niệm logic như: Thực thể, kiểu thực thể, thuộc tính và quan hệ.  Thực thể: Thực thể là một chủ điểm, một nhiệm vụ, một đối tượng hay một sự kiện đáng quan tâm trong thực tế, kể cả thông tin mà nó lưu giữ là có ích cho hệ thống.  Kiểu thực thể: Là tập hợp các thực thể có cùng bản chất được biểu diễn.  Thuộc tính: Sau khi xác định được kiểu thực thể và thực thể thì ta xét đến những thông tin nào cần thiết phải được lưu giữ cho mỗi thực thể, đó chính là các thuộc tính. Các thuộc tính đặc trưng của thực thể thường được biểu diễn bằng các trường hoặc cột trong bảng.  Quy tắc xác định các thuộc tính của thực thể: - Từ tri thức của chính bản thân về thực thể công việc chung trong lĩnh vực mình đang nghiên cứu mà đưa ra các thuộc tính trong mỗi thục thể. - Từ người tiếp xúc phỏng vấn. - Từ việc xem xét các bảng biểu, tài liệu liên quan đến lĩnh vực đang nghiên cứu.  Liên kết: Là sự kết nối hay liên quan giữa hai hay nhiều thực thể phản ánh sự ràng buộc về quản lý.  Kiểu liên kết: Là tập hợp nhiều liên kết có dạng giống nhau giữa các cặp thực thể. Có 3 kiểu liên kết như sau: - Liên kết Một – Một: Một thực thể thuộc kiểu thực thể A liên kết với một thực thể thuộc kiểu thực thể B và ngược lại. - Liên kết Một – Nhiều: Một thực thể thuộc kiểu thực thể A liên kết với nhiều thực thể thuộc kiểu thực thể B. Một thực thể thuộc kiểu thực thể B liên kết với một thực thể thuộc kiểu thực thể A. - Liên kết Nhiều – Nhiều: Một thực thể thuộc kiểu thực thể A liên kết với nhiều thực thể thuộc kiểu thực thể B. Một thực thể thuộc kiểu thực thể B liên kết với nhiều thực thể thuộc kiểu thực thể A.  Quy tắc xác định liên kết: - Một liên kết tồn tại giữa hai thực thể khác nhau thuộc hai bảng khác nhau nếu cần phải giữ thông tin trong thực thể này về thực thể kia. A B A B A B - Trong liên kết Một – Nhiều, thực thể giữ thông tin kết nối theo định nghĩa là ở đầu nhiều. - Các liên kết gián tiếp (Nhiều – Nhiều) được biến đổi thành các liên kết Một - Nhiều.  Chuẩn hoá dữ liệu: Chuẩn hoá là quá trình phân tích chuyển hóa các thực thể thành một dạng mà tối thiểu việc lặp lại, không dư thừa nhưng dữ liệu vẫn đầy đủ.  Các quy tắc chuẩn hoá: - Quy tắc chuẩn hoá 1: Bảng không được chứa những thuộc tính xuất hiện nhiều lần. - Quy tắc chuẩn hoá 2: Mọi thuộc tính phải phụ thuộc hàm vào toàn bộ khoá. - Quy tắc chuẩn hoá thứ 3: Mỗi thuộc tính chỉ phụ thuộc hàm vào toàn bộ khoá mà không phụ thuộc hàm vào bất cứ thuộc tính nào khác trong bảng. Trên đây là sơ lược lý thuyết về việc xây dựng cơ sở dữ liệu cho hệ thống thông tin. Từ sự phân tích đầu vào và đầu ra của hệ thống, từ các biểu đồ luồng dữ liệu, ta sẽ thấy rõ về cơ sở dữ liệu của hệ thống. 2. Xác định các thực thể của hệ thống và các thuộc tính của chúng Với bài toán quản lý giao dịch xuất nhập hàng, hệ thống gồm có các thực thể và thuộc tính như sau (sau khi đã chuẩn hoá):  Khách hàng (Dùng cho cả nhà cung cấp và khách mua hàng): - Mã KH - Họ KH - Tên KH - Tên giao dịch - Số nhà KH - DT khách hàng - Fax KH - Tài khoản - ST nợ có thể - Mã huyện - Mã đường - Mã NH  Mặt hàng : - Mã hàng - Tên hàng - SL tồn TT - SL tồn TD - Mã HSX - Mã DVT - Mã nhóm  Quản lý kho : - Mã kho - Tên kho - DT kho - Fax kho - Số nhà kho - Thủ kho - Mã đường  Quản lý đơn đặt hàng : - Mã DDH - Mã KH - Ngày DH - Hạn ngày giao  Dòng đơn đặt hàng - Mã DDH - Mã hàng - Số lượng DH - Đơn giá DH  Quản lý phiếu nhập xuất hàng : - Mà PNXH - Mã DDH - Mã kho - Ngày NXH - Ngày HTT - Ngày lập PNX  Quản lý dòng phiếu nhập xuất hàng : - Mà PNXH - Mã hàng - Số lượng NXH - Đơn giá NXH  Quản lý phiếu thanh toán : - Mã PTT - Mã PNXH - Ngày TT - Số tiền  Quản lý đường : - Mã đường - Tên đường  Quản lý ngân hàng : - Mã NH - Tên NH  Quản lý huyện : - Mã huyện - Tên huyện - Mã tỉnh  Quản lý tỉnh : - Mã tỉnh - Tên tỉnh - Mã nước  Quản lý nước : - Mã nước - Tên nước  Quản lý hãng sản xuất : - Mã HSX - Tên HSX - Mã nước  Quản lý đơn vị tính : - Mã DVT - Tên DVT  Quản lý nhóm hàng : - Mã nhóm - Tên nhóm  Xây dựng mô hình thực thể liên kết KHÁCH HÀNG Mã KH Họ KH Tên KH Tên giao dịch Số nhà KH DT khách hàng Fax KH Tài khoản ST nợ có thể Mã huyện Mã đường Mã NH HUYỆN Mã huyện Tên huyện Mã tỉnh ĐƯỜNG Mã đường Tên đường KHO Mã kho Tên kho DT kho Fax kho Số nhà kho Thủ kho Mã đường TỈNH Mã tỉnh Tên tỉnh Mã nước NƯỚC Mã nước Tên nước HÃNG SX NGÂN HÀNG Mã NH Tên NH ĐƠNDHÀNG Mã DDH Mã KH Ngày DH Hạn ngày giao DÒNGĐƠNDH Mã DDH NX HÀNG Mã PNXH Mã DDH Mã kho Ngày NXH Ngày HTT Ngày lập PNX DÒNGNX HÀNG Mã PNXH VI. MÔ HÌNH TỔ CHỨC DỮ LIỆU Mô hình này chính là lược đồ cơ sở dữ liệu của hệ thống. Đây là bước trung gian chuyển đổi giữa mô hình thực thể (gần với người sử dụng) và mô hình vật lý dữ liệu (mô hình trong máy tính), chuẩn bị cho việc cài đặt hệ thống. Từ mô hình thực thể ở trên ta chuyển thành mô hình tổ chức dữ liệu của bài toán như sau : NUOC(MaNuoc, TenNuoc) TINH(MaTinh, TenTinh, MaNuoc) HUYEN(MaHuyen, TenHuyen, MaTinh) DUONG(MaDuong, TenDuong) HANG SX(MaHSX, TenHSX, MaNuoc) DVTINH(MaDVT, TenDVT) NHOM(MaNhom, TenNhom) MATHANG(MaHang, TenHang, SLTonTT, SLTonTD, MaDVT, MaHSX, MaNhom) KHO(MaKho, TenKho, DTKho, FaxKho, SoNhaKho, ThuKho, MaDuong) NGANHANG(MaNH, TenNH) KHACHHANG(MaKH, HoKH, TenKH, TenGiaoDich, SoNhaKH, DTKhachHang, FaxKH, TaiKhoan, STNoCoThe, MaDuong, MaHuyen, MaNH) DONDHANG(MaDDH, NgayDH, HanNgaygiao MaKH) DONGDONDH(MaDDH, MaHang, SoLuongDH, DonGiaDH) NXHANG(MaPNXH, NgayNXH, NgayHTT, Ngày lập PNX, MaDDH, MaKho) DONGNXHANG(MaPNXH, MaHang, SoLuongNXH, DonGiaNXH) THANHTOAN(MaPTT, MaPNXH, NgayTT, SoTien) VII. MÔ HÌNH VẬT LÝ DỮ LIỆU Các bảng được thiết kế trong hệ thống: NUOC(MaNuoc, TenNuoc) Tên thuộc tính Kiểu dữ liệu Kích thước Ràng buộc toàn vẹn MaNuoc (K) Char 2 Len() =2 TenNuoc Varchar 30 MaNuoc : Chữ viết tắt của một tên nước trên thế giới. TenNuoc : Tên của một nước. Ví dụ: MaNuoc = VN có TenNuoc = Việt Nam MaNuoc = TQ có TenNuoc = Trung Quốc MaNuoc = ML có TenNuoc = Malaysia Ý nghĩa: Mỗi nước có một mã số riêng để phân biệt các nước với nhau. TINH(MaTinh, TenTinh, MaNuoc) Tên thuộc tính Kiểu dữ liệu Kích thước Ràng buộc toàn vẹn MaTinh (K) Char 4 Len() = 4 TenTinh Varchar 20 MaNuoc Char 2 Lookup(NUOC) MaTinh : Số thứ tự của tỉnh trong nước. Việt Nam có dưới 100 tỉnh, nên ta chọn 2 ký tự để đánh số thứ tự của tỉnh. 2 Ký tự đầu là mã nước. 2 Ký tự tiếp theo là số thứ tự tỉnh trong nước. TênTinh: Bắt đầu là Tp cho thành phố trực thuộc trung ương, T cho tỉnh và tiếp theo là tên tỉnh hay thành phố. Ví dụ: MaTinh = VN01 có TenTinh = Tp.Hà Nội. MaTinh = VN02 có TenTinh =T.Quảng Ninh. Ý nghĩa: Mỗi một tỉnh có một mã số riêng để phân biệt các tỉnh với nhau. HUYEN(MaHuyen, TenHuyen, MaTinh) Tên thuộc tính Kiểu dữ liệu Kích thước Ràng buộc toàn vẹn MaHuyen (K) Char 6 Len()=6 TenHuyen Varchar 25 MaTinh Char 4 Lookup(TINH) MaHuyen : 4 ký tự đầu là mã nước và mã tỉnh, hai ký tự sau là số thứ tự của huyện trong tỉnh. Mỗi tỉnh không quá 100 huyện nên dùng 2 ký tự. TenHuyen : Bắt đầu là Tp cho thành phố trực thuộc Tỉnh, Q : cho quận, H cho huyện, TX cho thị xã và tiếp theo là tên thành phố, quận, huyện, thị xã. Ví dụ: MaHuyen = VN0101 có TenHuyen = Q. Ba Đình. MaHuyen = VN0201 có TenHuyen =Tp. Hạ Long. Ý nghĩa: Mỗi huyện được phân biệt bởi một mã huyện khác nhau ở trong một Tỉnh cũng như phân biệt với các huyện khác ở các tỉnh khác, vì trong mã huyện ta có kèm theo 2 kí tự của mã tỉnh nên có thể phân biệt được rằng ta đang biễu diễn mã của các huyện ở trong tỉnh nào. DUONG(MaDuong, TenDuong) Tên thuộc tính Kiểu dữ liệu Kích thước Ràng buộc toàn vẹn MaDuong (K) Char 4 TenDuong Varchar 30 MaDuong : Viết tắt các ký tự đầu của tên đường. TenDuong : Tên đường. Ví dụ: MaDuong = PCT có TenDuong = Phan Chu Trinh. MaDuong = NTMK có TenTinh = Nguyễn Thị Minh Khai. Ý nghĩa: Mỗi tên đường có một mã riêng để phân biệt giữa các đường với nhau. HANG SX(MaHSX, TenHSX, MaNuoc) Tên thuộc tính Liểu dữ liệu Kích thước Ràng buộc toàn vẹn MaHSX (K) Char 4 Len()=4 Ten HSX Varchar 50 MaNuoc Char 2 Lookup(NUOC) MaHSX : Hai ký tự đầu là mã nước, hai ký tự sau là số thứ tự hãng sản xuất trong nước. TenHSX : Tên của hãng sản xuất. MaNuoc : Mã nước của nước có hãng sản xuất đó. Ví dụ: MaHSX = ML01 có TenHSX = INTERFOODS PROCESSING …. MaHSX = JP01 có TenHSX = HITACHI. Ý nghĩa: Mỗi hãng sản xuất có một mã riêng để phân biệt giữa các hãng sản xuất với nhau. DONVITINH(MaDVT, TenDVT) Tên thuộc tính Kiểu dữ liệu Kích thước Ràng buộc toàn vẹn MaĐVT (K) Char 1 Len()=1 TenĐVT Varchar 7 MaDVT: Viết tắt ký tự đầu của tên đơn vị tính. TenDVT : Tên đơn vị tính. Ví dụ : MaDVT = T có TenDVT = Thùng. MaDVT = H có TenDVT = Hộp. Ý nghĩa: Mỗi đơn vị tính có một mã riêng để phân biệt giữa các đơn vị tính với nhau. NHOM(MaNhom, TenNhom) Tên thuộc tính Kiểu dữ liệu Kích thước Ràng buộc toàn vẹn MaNhom (K) Char 1 Len()=1 TenNhom Varchar 50 MaNhom : Dùng một chữ cái để ký hiệu nhóm. TenNhom : Tên nhóm hàng. Ví dụ: MaNhom = A có TenNhom = Nhóm hàng dùng ngay. MaNhom = B có TenNhom = Nhóm hàng phải qua chế biến mới dùng được. MaNhom = C có TenNhom = Nhóm hàng bánh kẹo. Ý nghĩa: Mỗi nhóm hàng có một mã riêng để phân biệt giữa các nhóm với nhau. MATHANG(MaHang, TenHang, SLTonTT, SLTonTD, MaDVT, MaHSX, MaNhom) Tên thuộc tính Kiểu dữ liệu Kích thước Ràng buộc toàn vẹn MaHang (K) Char 4 Len()=4 TenHang Varchar 50 SLTonTT Integer 8 SLTonTD Integer 8 MaDVT Char 1 Lookup(DONVITINH) MaH SX Char 4 Lookup(HANGSX) MaNhom Char 1 Lookup(NHOM) MaHang : 1 ký tự đầu tiên là mã nhóm, 3 ký tự tiếp theo là số thứ tự mặt hàng trong nhóm. TenHang : Tên mặt hàng. SLTonTT : Số lượng tồn tối thiểu ứng với một mặt hàng trong kho. Nếu số lượng mặt hàng đó tồn trong kho dưới mức tối thiểu thì phải nhập thêm vào. SLTonTD : Số lượng tồn tối đa ứng với một mặt hàng ở trong kho. Nếu nhập thêm số lượng mặt hàng nào đó thì tổng số lượng trong kho không được vượt quá số lượng tồn tối đa của mặt hàng đó. MaDVT : Mã đơn vị tính của đơn vị tính. MaHSX : Mã hãng sản xuất của hãng sản xuất. MaNhom : Mã nhóm của nhóm hàng. Ví dụ: MaHang = A001 có TenHang = Bird’s Nest. MaHang = B001 có TenHang = Coconut Milk. MaHang = C001 có TenHang = Chocolate. Ý nghĩa: Mỗi mặt hàng có một mã riêng để phân biệt giữa các mặt hàng với nhau. KHO(MaKho, TenKho, DTKho, FaxKho, SoNhaKho, ThuKho, MaDuong) Tên thuộc tính Kiểu dữ liệu Kích thước Ràng buộc toàn vẹn MaKho (K) Char 5 TenKho Varchar 50 DTKho Varchar 10 FaxKho Varchar 10 SoNhaKho Varchar 20 ThuKho Varchar 30 MaDuong Char 4 Lookup(DUONG) MaKho : 4 ký tự đầu là các ký tự viết tắt tên đường, 1 ký tự sau là số thứ tự kho trên đường đó. TenKho : Tên kho hàng. Ví dụ: MaKho = NTMK1 có TenKho = Kho nước. MaKho = NTMK2 có TenKho = Kho bánh kẹo. Ý nghĩa: Mỗi kho có một mã riêng để phân biệt giữa các kho với nhau. NGANHANG(MaNH, TenNH) Tên thuộc tính Kiểu dữ liệu Kích thước Ràng buộc toàn vẹn MaNH (K) Char 4 TenNH Varchar 30 MaNH : Viết tắt các ký tự đầu của tên ngân hàng. TenNH : Tên ngân hàng. Ví dụ: MaNH = NHNH có TenNH = Ngân hàng nông nghiệp. MaNH = NHNT có TenNH = Ngân hàng ngoại thương. Ý nghĩa: Mỗi ngân hàng có một mã riêng để phân biệt giữa các ngân hàng với nhau. KHACHHANG(MaKH, HoKH, TenKH, TenGiaoDich, SoNhaKH, DTKhachHang, FaxKH, TaiKhoan, STNoCoThe, MaDuong, MaHuyen, MaNH) Tên thuộc tính Kiểu dữ liệu Kích thước Ràng buộc toàn vẹn MaKH (K) Char 5 Len()=5 HoKH Varchar 23 TenKH Varchar 7 TenGiaoDich Varchar 30 SoNhaKH Varchar 20 DTKhachHang Varchar 10 FaxKH Varchar 10 TaiKhoan Varchar 16 STNoCoThe Money 8 MaDuong Char 4 Lookup(DUONG) MaHuyen Char 6 Lookup(HUYEN) MaNH Char 4 Lookup(NGANHANG) MaKH : 1 ký tự đầu dùng để phân biệt nhà cung cấp và khách mua hàng (C hay K), 4 ký tự sau là số thứ tự khách hàng. HoKH : Họ khách hàng, độ dài  23 ký tự. TenKH : Tên khách hàng, độ dài  7 ký tự. Ví dụ: MaKH = K0001 có HoKH & TenKH = Lê Văn Nam. MaKH = K0002 có HoKH & TenKH = Hồ Thị Phượng. MaKH = C0001 có HoKH & TenKH = Trần Thị Mỹ Hoa. Ý nghĩa: Mỗi khách hàng có một mã riêng để phân biệt giữa các khách hàng với nhau. DONDHANG(MaDDH, NgayDH, MaKH) Tên thuộc tính Kiểu dữ liệu Kích thức Ràng buộc toàn vẹn MaDDH(K) Char 5 Len() = 5 NgayDH DateTime Shortdste HanNgayGiao Datetime Shortdate MaKH Char 5 Lookup(KHACHHANG) MaDDH : 1 ký tự đầu dùng để phân biệt đơn đặt mua hàng của khách hàng hay đơn công ty gửi nhà cung cấp (M hay B), 4 ký tự sau là số thứ tự đơn đặt hàng. Ý nghĩa: Mỗi đơn đặt hàng có một tập hợp mã riêng để phân biệt giữa các đơn đặt hàng với nhau. DONGDONDH(MaDDH, MaHang, SoLuongDH, DonGiaDH, NgayGiao) Tên thuộc tính Kiểu dữ liệu Kích thước Ràng buộc toàn vẹn MaDDH (K) Char 5 Len()=5 MaHang (K) Char 4 Lookup(MATHANG) SoLuongDH Integer 8 DonGiaDH Money 8 NXHANG(MaPNXH, NgayNXH, NgayHTT, Ngày lập PNX, MaDDH, MaKho) Tên thuộc tính Kiểu dữ liệu Kích thước Ràng buộc toàn vẹn MaPNXH (K) Char 5 Len()=5 NgayNXH Datetime Shortdate NgayHTT Datetime Shortdate NgaylapPNX Datetime Shortdate MaDDH Char 5 Lookup(DONGDONDH) MaKho Char 5 Lookup(KHO) MaPXH : 1 ký tự đầu dùng để phân biệt phiếu nhập hay phiếu xuất hàng (N hay X), 4 ký tự sau là thứ tự phiếu xuất hay nhập hàng. Ý nghĩa: Mỗi đơn đặt hàng có một tập hợp mã riêng để phân biệt giữa các đơn đặt hàng với nhau. DONGNXHANG(MaPNXH, MaHang, SoLuongNXH, DonGiaNXH) Tên thuộc tính Kiểu dữ liệu Kích thước Ràng buộc toàn vẹn MaPNXH (K) Char 5 Len()=5 MaHang (K) Char 4 Len()=4 SoLuongNXH Integer 8 DonGiaNXH Money 8 THANHTOAN(MaPTT, MaPNXH, NgayTT, SoTien) Tên thuộc tính Kiểu dữ liệu Kích thước Ràng buộc toàn vẹn MaPTT (K) Char 5 Len()=5 NgayTT Datetime Shortdate SoTien Money 8 MaPNXH Char 5 Lookup(NXHANG) MaPTT : 1 ký tự đầu dùng để phân biệt phiếu thu hay phiếu chi (T hay C), 4 ký tự sau là số thứ tự phiếu thanh toán. Ý nghĩa : Mỗi phiếu thanh toán có một tập hợp mã riêng để phân biệt giữa các phiếu thanh toán với nhau. VIII. MÔ HÌNH TỪ ĐIỂN DỮ LIỆU STT TÊN THUỘC TÍNH KIỂU DỮ LIỆU ĐỘ DÀI VÍ DỤ 1 MaNuoc Char 2 VN 2 TenNuoc Varchar 30 Việt Nam 3 MaTinh Char 4 VN01 4 TenTinh Varchar 20 Tp. Hà Nội 5 MaHuyen Char 6 VN0101 6 TenHuyen Varchar 25 Q. Ba Đình 7 MaDuong Char NTMK 8 TenDuong Varchar 30 Nguyễn Thị Minh Khai 9 MaHSX Char 4 JP01 10 TenHSX Varchar 50 HITACHI 11 MaDVT Char 1 T 12 TenDVT Varchar 7 Thùng 13 MaNhom Char 1 A 14 TenNhom Varchar 50 Nhóm hàng dùng ngay 15 MaHang Char 4 A001 16 TenHang Varchar 50 Bird’s nest 17 SLTonTT Integer 8 50 18 SLTonTD Integer 8 250 19 MaKho Char 5 NTMK1 20 TenKho Varchar 50 Kho nước 21 DTKho Varchar 10 058.834223 22 FaxKho Varchar 10 058.834644 23 SoNhaKho Varchar 20 58 24 ThuKho Varchar 30 Lê Văn Tài 25 MaNH Char NHNN 27 TenNH Varchar 30 Ngân hàng nông nghiệp 28 MaKH Char 5 K0001 29 HoKH Varchar 23 Hồ Thị 30 TenKH Varchar 7 Phượng 31 TenGiaoDich Varchar 30 SAO MAI 33 SoNhaKH Varchar 20 35/11 34 DTKhachHang Varchar 10 058.832653 35 FaxKH Varchar 10 058.832253 36 TaiKhoan Varchar 0061.000031.8.1 37 STNoCoThe Money 8 1.500.000 38 MaDDH Char 5 B0001 39 NgayDH DateTime Shortdate 10/07/2003 40 SoLuongDH Integer 8 40 41 DonGiaDH Money 8 90.000 42 HanNgayGiao Datetime Shortdate 29/07/2003 43 MaPNXH Char 5 X0001 44 SoLuongNXH Integer 8 40 45 DonGiaNXH Money 8 90.000 46 NgayNXH Datetime Shortdate 30/07/2003 47 NgayHTT Datetime Shortdate 01/08/2003 48 MaPTT Char 5 T0001 49 NgayTT Datetime Shortdate 01/08/2003 50 SoTien Money 8 3.600.000 CHƯƠNG III LỰA CHỌN MÔI TRƯỜNG CÀI ĐẶT VÀ GIỚI THIỆU CÁC CÔNG NGHỆ LIÊN QUAN Với mục tiêu xây dựng một phần mềm đáp ứng được các chức năng trong việc quản lý giao dịch xuất nhập, đồng thời dễ sử dụng và thân thuộc với người sử dụng, em lựa chọn giải pháp lập trình ứng dụng trên nền Windows được cài đặt bằng ngô ngữ lập trình Microsoft VisualBasic 6.0 với hệ quản trị cơ sở dữ liệu Microsoft SQL Server. I. Giới thiệu về Visual Basic 6.0. Microsoft Visual Basic 6.0 tuy không còn là hiện thân mới nhất và độc đáo của ngôn ngữ BAISIC như cách đây vài năm nhưng nó vẫn còn tính năng ưu việt cho bạn hệ thống phát triển ứng dụng của Windows toàn diện và trọn gói. Microsoft Visual Basic 6.0 có nhiều công cụ hổ trợ mà bạn có thể viết thêm và biên dịch các file trợ giúp. Nó bao gồm: 1. Các công cụ điều khiển ( controls). Bao gồm các công cụ trên cửa sổ toolbox , những cái mà bạn có thể đặt vào biểu mẫu để tương tác với người dùng và điều khiển luồng chương trình. 2. Chương trình ( Program). Là tập hợp các câu lệnh để cho máy tính thực hiện các công việc nào đó theo ý muốn người lập trình. Bản thân Microsoft Visual Basic là trình ứng dụng. Bạn tải và thực hiện hệ thống giống như thực hiện các chương trình ứng dụng khác. Nó còn là công cụ rất tuyệt vời, các lập trình viên viết, kiểm tra và chạy các trình ứng dụng của Windows. Nó cung cấp các Form windows là vùng làm việc, nó duy trì các đối tượng tương tác của chương trình như các nút lệnh, các nhãn, các hợp thoại văn bản, các thanh cuộn và các công cụ điều khiển khác. 1. Đề án (Project): là tập hợp các file bạn tạo cho chương trình ứng dụng Windows của mình. 2. Wizard : Đây là các hộp thoại hỏi và trả lời tự động làm việc. 3. Trình biên dịch (Compiler): là hệ thống chuyển đổi chương trình bạn viết thành trình ứng dụng khả thi của máy tính. 4. Developer Studio: là môi trường phát triển của Visual Basic. Mặc dù Microsoft Visual Basic là ngôn ngữ lập trình toàn diện, nhưng nó vẫn duy trì ngôn ngữ BASIC thừa kế nó. Các lập trình viên vào cuối thập niên 1950 đã phát triển ngôn ngữ lập trình BASIC cho các lập trình viên sơ cấp. BASIC dễ sử dụng hơn các ngôn ngữ lập trình khác nhiều lần, như COBOL và FORTRAN. Microsoft không bao giờ quên nền tảng của VB khi phát triển nó. Nó giúp cho người lập trình có được nhiều chương trình Windows chỉ trong thời gian ngắn. Microsoft Visual Basic 6.0 có nhiều ấn bản khác nhau bao gồm : Standard, Profectional và Enterprise. An bản Enterprise cung cấp cho các lập trình viên phần mềm client /server với các công cụ mở rộng cho các máy tính ở xa và phân phối các trình ứng dụng. Microsoft tăng cường tính năng làm việc trên mạng, môi trường phân phối cho những người dùng phiên bản Enterprise. Một số tính năng mới trong Visual Basic 6.0 : Microsoft Visual Basic 6.0 có nhiều tính năng mới, các điều khiển mới cho phép ta viết chương trình ứng dụng kết hợp giao diện, các xử lý và tính năng của office 97 và trình duyệt WEB Internet Explorer. Microsoft Visual Basic 6.0 cho phép ta lập trình để thêm điều khiển vào dự án tự động và có thể tạo ra các ActiveX hiệu chỉnh. Ta cũng có thể viếc các ứng dụng phía máy chủ ( server-side) dùng HTML động nhúng kết với các thư viện liên kết động của Internet Information Server. Một vài ứng dụng với các cãi tiến giúp cho truy cập dữ liệu ở tầm cở vĩ mô liên quan đến hàng trăm, hàng nghìn người sử dụng qua mạng hay qua Internet. 3. Làm việc với Microsoft Visual Basic 6.0. 3.1. Khám phá dữ liệu mới. Visual Basic cung cấp các đối tượng dữ liệu ActiveX ( ActiveX Data Object – ADO ). Trong các phiên bản trước của VB, truy cập dữ liệu được thực hiện thông qua DAO ( Đối tượng truy cập dữ liệu- Data Access Object ) và RDO ( Đối tượng dữ liệu từ xa- Remote Data Object). ADO tổng hợp và thay thế các kỹ thuật này. ADO dễ dùng hơn và có tầm hoạt động rộng hơn. Ta có thể dùng ADO để kết nối với cơ sở dữ liệu của một máy để bàn hoặc một máy chủ chứa cơ sở dữ liệu ở xa. Hơn thế nữa ADO còn cho phép truy cập nhiều kiểu dữ liệu, ví dụ thư điện tử. Kỹ thuật ADO hiện nay chứa trong điều kiển mới, điều kiển dữ liệu ADO. Nó trông giống như các điều khiển dữ liệu trong các phiên bản trước, nhưng phần thuộc tính của điều khiển, ta sẽ thấy có nhiều điểm khác. Nó cho phép kết nối với cơ sở dữ liệu để bàn hay cơ sở dữ liệu máy chủ ODBC trên mạng, hoặc ta có thể tạo kết nối đến các cơ sở dữ liệu khác. Ngoài ADO, Visual Basic 6 còn có bộ công cụ kỹ thuật mới giúp truy cập dữ liệu dễ dàng hơn. Trình thiết kế môi truờng dữ liệu cho phép cho phép xem xét và thao tác dữ liệu trong CSDL khác nhau, bởi vì bản thân môi trường dữ liệu là các đối tượng, ta có thể sử dụng chúng như một điều khiển dữ liệu. Thậm chí ta có thể gắn nó với các điều khiển khác như hợp văn bản hay nhãn. Một vài điều khiển dữ liệu khác cho phép ta tận dụng các thế mạnh của điều khiển dữ liệu ADO. Điều khiển DataGrid cho phép xem dữ liệu dưới dạng bảng và các dòng và cột. DataList và DataCombo tương tự như DBList và Dbcombo trong các phiên bản trước, ta có thể dùng chúng để lấy một danh sách dữ liệu từ điều khiển ADO trong cấu hình hợp danh sách ( ListBox ) hoặc hợp kết hợp ( ComboBox) hoặc chúng ta có thể sử dụng FlexGrid để xem những dữ liệu phức tạp. Visual Basic 6.0 mở rộng khả năng báo cáo với các trình báo cáo dữ liệu cho phép tạo, xem trước và in các báo cáo trong Visual Basic tương tự như ACCESS. Ta có thể lấy các điều khiển báo cáo từ hợp cong cụ báo cáo dữ liệu mới và đưa vào biểu mẩu báo cáo dữ liệu. Sau đó gọi phương thức PrintReport() của báo cáo dữ liệu. 3.2. Bổ sung mới về lập trình hướng đối tượng. Visual Basic 6.0 giúp tạo các lớp và điều khiển ActiveX phong phú hơn. Giờ đây ta có thể lưu dữ liệu qua các lớp tự tạo từ session này sang session khác thông qua túi thuộc tính ( Property bag ). Ta cũng có thể tạo hai kiểu lớp hiệu chỉnh data-aware là data source và Data consumers. Các kiểu lớp dữ liệu này hạot động tương tự như các đối tượng dữ liệu ADO, nhưng chúng đáp ứng được yêu cầu của khách hàng nhiều hơn. Đối với điều khiển ActiveX, ta có thể tạo các điều khiển “hạng nhẹ” trong Visual Basic 6.0. Đây là các điều khiển “Windowless” tốn ít tài nguyên hệ thống hưon các điều khiển khác. Để xác định một điều khiển có phải “Windowless” hay không Visual Basic 6.0 cung cấp thuộc tính mới HasDC. Add-in là công cụ Visual Basic mà các lập trình viên có thể lập trình để tạo cho các lập trình viên khác. Nhưng Add-in được viết trong Visual Basic chỉ có thể thi hành trong IDE của VB. Trình tạo ứng dụng Application Wizard, trình biểu mẫu dữ liệu ( Data Forms Wizard ) là những phần thêm mới.  Một số Wizard / Add-in dùng trong mọi phiên bản như : - Trình đóng gói và triển khai tự động ( Package and development Wizard ) công dụng là chuẩn bị và triển khai ứng dụng cho các máy để bàn hoặc dùng qua mạng. - Trình tạo ứng dụng tự động (Application Wizard ): Khởi tạo khung sườn cho ứng dụng. Nó tự động thêm menu, thanh công cụ, tập tin tài nguyên, các điều khiển ActiveX và điều khiển dữ liệu. - Trình quản lý tự động ( Wizard Manager ): tổ chức các trình tự động khác nhau để có thể truy cập từ trong IDE.  Một số Wizard / Add-in dùng trong phiên bản Enterprise và Proffessional như: - Trình đối tượng dữ liệu tự động ( Data Object Wizard): Tạo các đối tượng dữ liệu liên kết với các điều khiển dữ liệu và các ActiveX hiệu chỉnh. - Tiện ích xây dựng lớp ( Class builder Ultility ): dùng tạo giao diện các lớp hiểu chỉnh. - Trình thanh công cụ tự động (toolBar Wizard): Dùng giao diện tạo thanh công cụ cho biểu mẫu. - Trình biểu mẫu dữ liệu tự động(Data Form Wizard): Tạo biểu mẫu chứa các điều khiển tham chiếu đến dữ liệu trong một CSDL. - Trình thiết kế Add-in (Add-in Designer) : Tạo các Add-in hiệu chỉnh của VB. - Trình trang thuộc tính tự động( Property page Wizard): Tạo hợp thoại thuộc tính cho các điều khiển ActiveX tự tạo. - Trình gỡ rối T-SQL (T- SQL Debugger): Giúp gỡ rối khi viết các CSDL của SQL Server. - Trình duyệt API Viewer: Giúp tra cứu các khai báo hàm, hằng, kiểu của các Window APIs. - Trình giao diện điều khiển ActiveX (ActiveX control interface Wizard) : Tạo các điều khiển ActiveX. 3.3. Làm việc trong môi trường lập trình.  Tìm hiểu các thành phần của IDE - Định nghĩa IDE : IDE là tên viết tắt của môi trường phát triển tích hợp ( Integrated Development Enviroment). IDE là nơi tạo ra các chương trình Visual Basic, là nơi tập trung các menu, thanh công cụ và các cửa sổ để ta thao tác trên chúng. Mỗi thành phần của IDE có các tính năng ảnh hưởng đến hoạt động lập ttrình khác nhau. - Thanh menu cho phép bạn thao tác trên toàn bộ ứng dụng, thanh công cụ cho phép thao tác, truy cập các chức năng của thanh menu qua các nut trên thanh công cụ. - Các biểu mẫu (Form) là khối xây dựng chính của chương trình Visual Basic, chúng xuất hiện trong các của sổ Form. Chúng ta có thể thêm các công cụ điều khiển vào biểu mẫu của các đề án( Project). - Project Explorer hiển thị các đề án bạn đang làm cũng như các thành phần khác của đề án, bạn có thể duyệt, cài đặt các thuộc tính của điều khiển, biểu mẫu và module trong của sổ Properties. - Cuối cùng bạn xem xét một hoặc nhiều biểu mẫu trên màn hình thông qua của sổ Form Layout.  Sử dụng một số thanh công cụ trong IDE Chúng ta có thể thêm và xoá các thanh công cụ trong IDE của Visual Basic: Thanh công cụ là tâp hợp các nút bấm mang biểu tượng chứa trong một thanh thường đặt dưới thanh menu. Các nút bấm này phải đảm bảo các chức năng thông dụng trong cấu trúc của thanh menu của Visual Basic. Thanh công cụ rất hữu ích và tiết kiệm thời gian để ta chọn qua các mục ở menu con, ta click vào một nút nào đó trên thanh công cụ để gọi một chức năng nào đó trên thanh menu. - Sử dụng thanh công cụ Debug : Thanh công cụ Debug dùng để kiểm tra chương trình và giả quyết một số lõi có thể xãy ra. Khi gỡ rối chương trình ta làm một số việc như chạy từng dòng chương trình, kiểm tra các giá trị biến, hoặc dừng chương trình tại một điểm nghi ngờ nào đó. - Sử dụng thanh công cụ Edit : Thanh công cụ Edit được dùng để viết chương trình trong các cửa sổ code. Nó bao gồm đầy đủ tính năng có ở menu Edit. Một tính năng lý thú của IDE là thanh công cụ Edit có chức năng complete Word, tự động hoàn tất các từ khoá, nó giúp cho ta tránh được các lỗi cú pháp do gõ sai chính tả. - Thanh công cụ Form Editor dùng để kéo giãn, di chuyển và sắp xếp các điều khiển trên biểu mẫu, nó có tính năng tương tự như menu Format. Thuộc tính ZOrder của điều khiển cho phép điều khiển nào có thể nằm lên trên điều khiển nào, điều khiển có ZOrder bằng không luôn nằm ở bên trên. - Sử dụng thanh công cụ chuẩn ( Standard )là thanh công cụ chính trong IDE, nó cung cấp nhiều tính năng trong menu File, Project, Debug và Run.  Thêm các điều khiển vào thanh công cụ Hợp công cụ là bảng chứa các điều khiển và ta thiết kế giao diện bằng cách chọn các mẫu điều khiển và đưa chúng vào biểu mẫu. Một số điều khiển có sẳn trong VB ta không thể gỡ bỏ khỏi hộp công cụ gọi là các điều khiển nội tại (intrinsic). Một số nằm ngoài VB chứa trong các tập tin có phần mở rộng là .OCX. Những điều khiển này có thể được thêm vào hoặc gỡ bỏ khỏi hộp công cụ.  Quản lý ứng dụng với Project Explorer Project Explorer trong VB 6.0 giúp ta định hướng và quản lý nhiều dự án, nó cho phép tổ chức nhiều dự án chung trong một nhóm gọi là Project groups. Ta có thể lưu tập hợp các đề án thành một tập tin nhóm đề án với phần mở rộng là .vbg. Project Explorer có cấu trúc cây phân cấp, các đề án nằm ở phần trên của cây và các bộ phận của đề án chứa trong phần dưới cây. Khi chúng ta cần thao tác trên thành phần nào của đề án ta chỉ việc chọn phần ấy và xem của sổ Form hoặc của sổ Code của nó. Đặc biệt nó vô cùng hữu ích cho chúng ta trong khi xây dựng nhiều dự án lớn.  Cửa sổ Properties: Mỗi thuộc tính trong cửa sổ có thể có một hoặc nhiều giá trị. Nó giúp bạn xem xét sửa đổi và điều khiển các thuộc tính của điều khiển ActiveX trong chương trình.  Hiển thị trong IDE Ta có thể hiển thị IDE của Visual Basic bằng hai cách : MDI và SDI. - MDI là giao diện đa tài liệu, cho phép ta hiển thị tất cả các cửa sổ thành phần trong IDE như là cửa sổ được chứa đựng trong cửa sổ mẹ. - Trái lại với giao diện SDI các cửa sổ thành phần hiển thị một cách độc lập nhau. Không có cửa sổ chính để chứa các cửa sổ thành phần.  Trợ giúp Không chỉ làm chủ ngôn ngữ lập trình VB, bạn cần phải cần sử dụng thuần thục môi trường VB cũng như hiểu các thông điệp mà VB gửi ra. Mircosoft đã cung cấp một trong những hệ thống trợ giúp tốt nhất cho công cụ phát triên ứng dụng. Những trợ giúp nhạy với ngữ cảnh ( Context-sensitive help) : tại vị trí bất kỳ trong VB bạn nhấn F1, hoặc nút trợ giúp. Nó sẽ kích hoạt hệ thống trợ giúp của Visual Basic, nơi có thể giải thích cũng như đưa ra các lời khuyên và các đoạn chương trình mẫu có liên quan. Những ai quen dùng Windows, chắc chắn cũng biết qua trợ giúp cảm ngữ cảnh. VB được hổ trợ với hệ thống thư viện MSDN được sử dụng rộng rãi cho các ứng dụng của Microsoft để cung cấp, truy cập đến công cụ hướng dẫn sử dụng các sản phẩm trực tuyến. 3.4. Giới thiệu về thuộc tính, phương thức, sự kiện. Visual Basic là một ngôn ngữ lập trình hổ trợ hướng đối tượng (Object- Oriented Programming). Trong lập trình hướng đối tượng , lập trình viên chia nhỏ các công việc thành các đối tượng. Từng đối tượng có đời sống riêng của nó, có những đặc điểm gọi là thuộc tính (Properties), có những chức năng riêng biệt gọi là phương thức ( methods).  Thuộc tính. Có thể hiểu nôm na là thuộc tính mô tả đối tượng. Mỗi đối tượng đều có thuộc tính mô tả riêng. Nhưng nhìn chung các đối tượng đều có những thuộc chính chung như : - Left : vị trí canh trái, - Right : vị trí canh phải, - Height :chiều cao của đối tượng điều khiển, - Width: chiều rộng của đối tượng, - Enable : Có giá trị logic ( True/False) quyết định người sử dụng có thể làm việc với các đối tượng này không. - Ngoài ra còn rất nhiều thuộc tính khác tuỳ theo từng đối tượng điều khiển.  Phương thức. Phương thức là những đoạn chương trình chứa trong điều khiển, cho điều khiển biết cách thực hiện công việc nào đó. Tương tự như thuộc tính, mỗi đối tượng điều khiển cũng có các phương thức khác nhau, nhưng cũng có các phương thức rất thông dụng cho hầu hết các đối tượng. Đó là: - Move : thay đổi vị trí của một đối tượng theo yêu cầu của chương trình. - Drag: thi hành hoạt động kéo thả của đối tượng. - SetFocus: cung cấp tầm ngắm cho đối tượng được chỉ ra trong lệnh gọi phương thức. - ZOder : qui định thứ tự xuất hiện của các đối tượng trên màn hình.  Sự kiện. Nếu như thuộc tính mô tả đối tượng, phương thức chỉ ra cách thức đối tượng hành động thì sự kiện là những phản ứng của đối tượng. Tương tự như thuộc tính và phương thức, sự kiện cũng có đặc trương ở từng đối tượng điều khiển. Nhưng những sự kiện thường gặp nhất của các đối tượng là: - Change: Người sử dụng sửa đổi chuỗi ký tự trong hộp kết hợp ( combobox) hoặc hộp văn bản (TextBox). - Click : Người sử dụng sử dụng các phím của chuột để click lên các đối tượng. - Dblick : Người sử dụng sử dụng phím của chuột để nhấp đúp lên các đối tượng. - DragDrop : Người sử dụng kéo rê một đối tượng sang đối tượng khác. - DragOver: Người sử dụng kéo rê một đối tượng ngang qua một điều khiển khác. - GotFocus: Đưa một đối tượng vào tầm ngắm của người sử dụng. - KeyDown: Người sử dụng nhấn một nút trên bàn phím khi một đối tượng đang trong tầm ngắm. - KeyPress: Người sử dụng nhấn và thả một nút trên bàn phím khi một đối tượng đang trong tầm ngắm. - KeyUp: Người sử dụng thả một nút trên bàn phím khi một đối tượng đang trong tầm ngắm. - LostFocus: Đưa một dối tượng ra khỏi tầm ngắm. - MouseDown: Người sử dụng nhấn một nút chuột bất kỳ trong khi con trỏ chuột đang nằm trên một đối tượng. - MouseMove : Người sử dụng di chuyển con trỏ ngang qua một đối tượng. - MouseUp : Người sử dụng thả nút chuột trong khi con trỏ chuột đang nằm trên một đối tượng. 3.5. Khả năng sử dụng các DLL và Windows API. Windows cung cấp vô số các hàm gọi, dưới dạng thư viện lên kết động (Dynamic Link Libraries ). Trong Visual Basic 6.0 còn có các tiện ích gọi ngược của DLL ( DLL Callback Facilities ), nghĩa là thay vì ta gọi chương trình trong API, nó cho phép ta gọi một API mà bản thân nó có thể gọi ngược về chương trình của ta như là một phần chương trình của nó vậy.  Giới thiệu về thư viện liên kết động (DLL) Đối với các ngôn ngữ lập trình cổ điển như C, khi biên dịch chương trình, ta có một chương trình .EXE duy nhất có thể thi hành mà không dùng bất kỳ tập tin nào khác, còn tập tin .vbp của Visual Basic không như thế nó phải chạy trong môi trường Visual Basic. Có 2 loại thư viện liên kết : thư viện liên kết tĩnh (SLL) và thư viện liên kết động (DLL). - Liên kết tĩnh : Cung cấp một kết nối bền vững giữa chương trình và module viết sẳn lúc thiết kế, tương tự như viết thủ tục trong Visual Basic và gọi thủ tục đó, nhưng chỉ khác là liên kết tĩnh chứa bên ngoài Visual Basic. Tuy nhiên khi sử dụng cần phải copy đoạn chương trình viết sẳn của liên kết tĩnh vào tập tin chương trình khi biên dịch. Từ đó trở đi nó trở thành một phần của chương trình viết sẳn và gắn chặt với chương trình của ta. - Liên kết động : Là giải pháp linh hoạt hơn liên kết tĩnh, tập tin thư viện bên ngoài chương trình không bị ràng buộc với chương trình. Nó chứa một nơi sao cho tập tin EXE có thể tìm ra và gửi thông điệp cho nó. Khi thi hành các thông điệp này là các cuộc gọi đến các hàm/ thủ tục, yêu cầu phần nào đó của DLL được thi hành. Các DLL của Visual Basic nằm trong thư mục Windows \ System \  Giới thiệu về các DLL của Windows. - KERNEL32 : Là DLL chính, đảm nhiệm quản lý bộ nhớ, thực hiện chức năng đa nhiệm và những hàm ảnh hưởng trực tiếp đến hoạt động của Windows. - USER32 : Là thư viện quản lý Windows. Thư viện này chứa các hàm xử lý menu, định giờ, truyền tin, tập tin và nhiều phần không được hiển thị khác của Windows. - GDI32 : Là thư viện chứa giao diện thiết bị đồ hoạ (Graphics Device Interface) cung cấp các hàm vẽ trên màn hình, cũng như kiểm tra phần biểu mẫu nào cần vẽ lại. - WINNM: cung cấp các hàm Multimedia để xử lý âm thanh, nhạc, video, thời gian thực, lấy mẫu, vv… Đây là thư viện 32 bit còn thư viện 16 bit tương ứng tên là MMSYSTEM.  Thế mạnh của DLL. - Nhất quán : Người sử dụng ưa chuộng Windows vì đa số điều có một giao diện phổ biến cho mọi ứng dụng, nghĩa là có chương trình chung để tạo ra chúng. - Dễ bảo trì : Những thay đổi hoặc bổ sung nếu có sẽ biểu hiện trên mọi ứng dụng. - Tập tin .EXE nhỏ hơn : Do một phần công việc chứa đựng ở nơi khác và không gắn kết “cứng nhắc” như liên kết tĩnh, kích cỡ tập tin nhỏ hơn. Tuy nhiên DLL còn chứa nhiều thành phần khác chứ không chỉ những gì chương trình của ta cần. Cấu trúc của Windows : DLL là nền tảng thiết kế của Windows. Windows thực chất là tập hợp các DLL để các ứng dụng khác nhau có thể dùng chung. Bên trong các DLL là hàng trăm, ngàn các hàm và thủ tục. Ta gọi chung là Windows API.  Giới thiệu về WIN API - Giao diện lập trình ứng dụng ( Application Programmer’s Interface ) là tập hợp các hàm có sẳn của Windows, chúng gần gủi với ngôn ngữ C/ C++ hơn. Visual Basic được thiết kế theo kiểu che bớt các công việc bên dưới hệ thống. Phần lớn các cuộc gọi đến hàm API được lồng trong các dạng lệnh của Visual Basic, bao gồm các từ khoá, phương thức và thuộc tính. Chúng sẽ được thông dịch thành WinAPI và chúng ta vận dụng các thế mạnh hổ trợ của chúng. - Lớp bọc API và các điều khiển hiệu chỉnh : Điều khiển hiệu chỉnh (OCX hay ActiveX) bản thân chúng là những lớp bọc API, chúng chuyển giao chuyển giao các chức năng theo kiểu Visual Basic một cách thân thiện. Các điều khiển ActiveX và OLE Automation Servers đưa chương trình vào các đề án mà không cần có các DLL thực sự.  Cách gọi hàm API. Gọi hàm API trong Visual Basic không khác với gọi hàm/ thủ tục trong module của đề án. Ví dụ thủ tục gọi sau: Public Declare Function Flash Lib “User32” Alias “FlashWindow” (ByVal hWnd as Long, Byval Invert As Long ) as Long. Khai báo cho một cuộc gọi API : Trước khi dùng hàm của DLL, ta cần khai báo hàm đó cho Visual Basic hiểu, Visual Basic cần biết: - Tên hàm hoặc thủ tục. - Tên tập tin DLL chứa nó. - Tham số truyền. - Kiểu dữ liệu trả về nếu là hàm. Từ khoá Declare báo cho VB biết đây là một hàm của DLL, sau Declare là từ khoá Sub hoặc Function cho biết đây là thủ tục hay hàm. Từ khoá Lib cho biết tên của DLL đang chứa hàm hoặc thủ tục mà ta gọi. Từ khoá Alias cho biết tên thực sự của thủ tục hoặc hàm trong thư viện. Nó có thể khác với tên ta khai báo trước từ khoá Lib. Cuối cùng là khai báo các tham số truyền, cùng các kiểu dữ liệu trã về. 3.6. Thiết lập báo cáo và truy xuất thông tin. Thiết lập báo cáo trên cơ sở dữ liệu không chỉ là hiển thị cơ sở dữ liệu từ dữ liệu mà nó còn liên quan đến một số hoạt động khác trên dữ liệu. Sau đây tôi xin giới thiệu về một số công cụ lập báo cao như Data Report, MS Access, Crystal Report. 3.6.1. Sử dụng một số công cụ để lập báo cáo trong Visual Basic.  Sử dụng thiết kế DATAREPORT: Đây là điểm nổi bậc trong VB 6, thiết kế Datareport là cách trực quan để tạo báo cáo trong môi trường phát triển VB, nó cung cấp các chức năng hết sức cơ bản nhưng lại lại dễ dùng. Các điều khiển Report bao gồm : - các điều khiển nhãn, - điều khiển hợp văn bản, - điều khiển ảnh, - điều khiển đoạn thẳng và điều khiển hình dạng, - điều khiển hàm cho phép chèn các tính toán tóm tắt vào báo cáo. Chúng ta có thể xem báo cáo trong chế độ Print Preview bằng cách thi hành phương thức Show  Sử dụng MS Access để lập báo cáo: MS Access cho phép viết các báo cáo cơ sở dữ liệu. Nó hổ trợ giao diện dễ dùng và trực quan. Nó cho phép sắp xếp và phân nhóm cũng như sử dụng các hiệu chỉnh trong báo cáo. Hai kỹ thuật để thực hiện là: - Sử dụng Automation để thi hành báo cáo Access. - Sử dụng VSREPORTS để thi hành báo cáo Access.  Sử dụng CRYSTAL REPORT để lập báo cáo: Ta không thể tạo báo cáo bằng chương trình mà thay vào đó ta dùng Crystal Report để xây dựng báo cáo. Sau khi xây dựng xong báo cáo ta lưu nó và phân phát cùng các ứng dụng cho người sử dụng. 3.6.2. Sử dụng các công cụ in ấn trong Visual Basic.  Sử dụng đối tượng Printer. Ta có thể dùng đối tượng Printer của Visual Basic để in dữ liệu từ ứng dụng. Tuy nhiên cách này đòi hỏi lập trình nhiều và không linh hoạt trong những trường hợp cần kiểm soát kết quả in ấn. Khi sử dụng đối tượng printer ta cần thực hiện các bước sau: - Xác định hệ toạ độ ta sẽ dùng với đối tượng Printer. - Tạo các cách bố trí báo cáo. - Viết chương trình tạo đối tượng Recordset dùng bất cứ thư viện truy cập cơ sở dữ liệu nào tuỳ thích. Lặp xuyên qua các mẫu tin để trả về các đối tượng Recordset, gửi dữ liệu đến đối tượng Printer dùng các thuộc tính và các phương thức của nó. Đối tượng Printer đưa ra một số thuộc tính và các phương thức hổ trợ việc thể hiện trang in và các tác vụ điều khiển như : - Thuộc tính CurentX, curentY : kiểm soát vị trí hiện hành trên trang in. - Thuộc tính Font là đối tượng điều khiển các thuộc tính của văn bản chứa trong trang in. - Phương thức Print : trình bày văn bản trên trang in. - Phương thức Newpages chèn một phép ngắt trang vào tác vụ in, thuộc tính page trả về trang in hiện hành của tác vụ in, phương thức KillDoc xoá bỏ một tác vụ in. - Phương thức đồ hoạ như Line, Point, Circle. - Phương thức EnDoc: gửi toàn bộ tác vụ in cho máy in. Thi hành phương thức này ở cuối tác vụ in sử dụng đối tượng Printer.  Sử dụng VSVIEW của VIDEOSOFT để lập báo cáo và in bảng in với điều khiển VsPrinter: Thiếu sót của đối tượng Printer là trước khi in ta không biết được báo cáo sẽ thể hiện như thế nào, hay thậm chí không biết báo cáo có bao nhiêu trang in do đó ta nên dùng công cụ cung cấp nhiều tiện ích hơn là vsPrinter. VsPrinter rất thích hợp để in bảng CSDL bởi vì nó hổ trợ rõ ràng cho việc in dữ liệu theo định dạng dòng – cột. Ta có thể in dữ liệu trong bảng bằng cách gán dữ liệu cho thuộc tính Table của điều khiển. Để tạo bảng vsPrinter, trước hết cần tạo ra một chuổi chứa thông tin định dạng cách thức in bảng chứa các thông tin đầy đủ về cách bố trí văn bản. 4. KHẢ NĂNG KẾT NỐI VỚI CƠ SỞ DỮ LIỆU CỦA VISUAL BASIC. Hình 2: Minh hoạ khả năng kết nối dữ liệu của VB với CSDL. Sử dụng Visual Basic 6.0 bạn có thể tạo các thành phần gói gọn từng bước trong một hệ thống truy cập dữ liệu. Khởi đầu với data source, Microsoft Visual Data ActiveX .EXE .DLL Midder Tier Data Source Form Client DHTML Report Code D at a bi nd in g Remoting Data Access ADO, RDO, DAO Class Module, Data Enviroment Creatable Recordsets, ADO Data Control , Intrinsic Data Control DCOM, Remotables,ADO Recordsets, Remoting UDTs Microsoft Transaction Server Microsoft Visual Database Tool (Dataview) Data Tools (Việc truy cập dữ liệu thông qua cửa sổ Dataview) cung cấp cho bạn các khả năng để xem và thao tác trên các đố tượng Table, views, Stored procedures, và các sơ đồ cơ sở dữ liệu trên các hệ thống SQL Server và Oracle. Data Source và Data Controls : Trên Client chúng ta có thể sử dụng công cụ Data Enviroment để thực hiện việc tạo nhanh các kết nối ADO và các đối tượng Command để truy cập dữ liệu của bạn. Data Enviroment còn cung cấp thêm các giao tiếp lập trình động cho phép truy cập các đối tượng dữ liệu trong dự án của bạn. ADO Conrol về bản chất bên trong cung tương tự như Data Control, ngoại trừ việc nó sử dụng đối tượng ADO Recordset như là một Data Source cho các Controls và các đối tượng trong Visual Basic. Dynamic Data Binding: Khả năng kết buộc một data source tới một đối tượng cần dữ liệu là khả thi đối với Visual Basic 6.0. Tại thời điểm thi hành bạn có thể thiết lập thuộc tính Data source của đối tượng cần dữ liệu (ví dụ như đối tượng DataGrid Control ) tới một data source. Thế mạnh của Visual Basic là khả năng hổ trợ và kết nối dữ liệu. Visual Basic hổ trợ các kiểu truy cập dữ liệu như : DAO - đối tượng truy cập dữ liệu, RDO – truy cập dữ liệu từ xa, ADO - các đối tượng dữ liệu ActiveX. Nó còn có khả năng kết nối với dữ liệu từ MS Access, SQL Server với hệ quản trị cơ sở dữ liệu Oracle và một số hệ quản trị cơ sở dữ liệu khác. Trong đồ án tốt nghiệp này tôi đã cài đặt chương trình trên ngôn ngữ VB 6.0 và dùng hệ quản trị CSDL SQL Server 7.0 qua phương pháp truy cập ADO. Sau đây tôi xin giới thiệu thêm về kiểu truy cập dữ liệu ADO Đối tượng dữ liệu ActiveX (Active X Data Object) Sơ đồ kiến trúc của ADO : Khái niệm về ADO: Là cầu nối giữa đối tượng cung cấp dữ liệu và đối tượng sử dụng dữ liệu thông qua các Data source đã được tạo cho việc sử dụng Microsoft ActiveX Data Objects (ADO), nó là phương pháp tối ưu nhất để truy cập dữ liệu của Visual Basic trong nguồn dữ liệu bất kỳ quan hệ và không quan hệ. Truy nhiên các phương pháp khác như RDO, DAO vẫn còn được hổ trợ. III. GIỚI THIỆU VỀ CÁC HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU SQL SERVER 1. Cấu trúc cơ sở dữ liệu của SQL Server 7.0. Connection Command Recordset Errors Fields Parameters Error Parameter Field SQL Server tổ chức dữ liệu lưu trong Cơ sở dữ liệu (CSDL) thành những thành phần logic. User làm việc trên những thành phần logic này như bảng (table), view, procedure… Thành phần vật lý của những file thì trong suốt (transparent), chỉ có người quản lý Cơ sở dữ liệu mới được làm việc trên đó. SQL Server có 4 cơ sở dữ liệu hệ thống ( master, msdb, model, temdb database ) và các cơ sở dữ liệu của user. Hình minh họa - Master database: Ghi lại cấu hình hệ thống của SQL Server. Nó ghi lại tất cả tài khoản đăng ký của user và cấu hình hệ thống, những file primary chứa thông tin khởi động của Cơ sở dữ liệu của user, chứa thông tin khởi động của SQL Server. Những thao tác sau gây ra những thay đổi trong master database: Tạo, thay đổi, xóa cơ sở dữ liệu,thay đổi transaction log. Thêm hay xóa của những sever sử dụng thủ tục hệ thống như sp-addserver (thêm server) and sp-dropserver (bỏ server). - Temdb database : chứa những bảng tạm và những stored procedure tạm. Những bảng tạm và những stored procedure của user khi nối kết vào hệ thống được lưu trong temdb database. Khi SQL khởi động thì tất cả các bảng tạm và các stored procedure trong temdb database đều mất. - Stored procedure : là 1 tập hợp biên dịch trước của những câu lệnh của Transact-SQL được lưu và xử lý như 1 đơn vị (unit). Stored procedure sẵn sàng cho việc quản lý SQL Server và hiển thị thông tin của cơ sở dữ liệu, của những người sử dụng. SQL Server cung cấp những stored procedure gọi là stored procedure hệ thống. - Model database : được dùng như 1 khuôn mẫu của CSDL trong hệ thống. Khi tạo ra 1 CSDL thì phần đầu của CSDL là bản sao của model database, phần còn lại là những trang trống. - Msdb database : SQL Server Agent dùng msdb database để lập kế hoạch alert, job. Alert là 1 định nghĩa của người sử dụng đáp ứng 1 sự kiện của SQL Server. Alert có thể thực thi cả nhiệm vụ định nghĩa hoặc gởi e-mail đến 1 người chỉ định. Job là sự thực hiện 1 hành động quản lý chứa 1 hoặc nhiều bước, thay thế cho thuật ngữ task của SQL Server 6.5. 2. Cấu trúc cơ sở dữ liệu vật lý. a. Trang (page). Đơn vị cơ bản lưu trữ dữ liệu là trang (page). Trong SQL Server 7.0, 1 trang có kích thước 8MB, ta sẽ có 128 trang/1MB. 96 byte đầu của mỗi trang chứa header của trang gồm thông tin hệ thống như loại trang, số vùng trống của trang. Cấu trúc trang dữ liệu : Các hàng dữ liệu (data row) được đưa vào tuần tự ngay sau page header, row offset được bắt đầu từ cuối trang, chỉ đến data row và cho biết byte bắt đầu của data row, kích thước hàng tối đa là 8060 byte. b. Extent. Extent là đơn vị cơ bản chỉ vùng lưu bảng và index. Mỗi extent gồm 8 trang liên tục nhau. Có 2 loại extent : Mixed extent có thể lưu những đối tượng khác nhau. Uniform extent chỉ có thể lưu 1 đối tượng duy nhất. c. Những loại file trong CSDL : SQL Server có 3 loại file: - Primary file : là file bắt đầu của cơ sở dữ liệu. Mỗi cơ sở dữ liệu chỉ có 1 file primary, tên file có phần mở rộng là .mdf - Secondary file : là file lưu những gì còn lại của cơ sở dữ liệu mà không chứa trong primary file, có thể có nhiều file secondary, tên file có phần mở rộng là .ndf. - Log file : chứa những thông tin transaction log, được dùng để khôi phục cơ sở dữ liệu, mỗi cơ sở dữ liệu có ít nhất 1 log file, tên file có phần mở rộng là .ldf.  File của SQL Server có 2 tên: - Logical_file_name: là tên dùng trong những câu lệnh Transact_SQL. - Os_file _name: là tên file vật lý, chỉ rõ đường dẫn của file cơ sở dữ liệu, ví dụ: C:\Mssql7\Data\MyData1.mdf là tên Os_file_name. - MyDB_primary là tên logical_file_name, Những trang trong file được đánh số bắt đầu từ 0. Mỗi file có 1 số ID. Mỗi trang trong file gồm cả ID file và số thứ tự trang trong file. Ví dụ: File primary có kích thước 4MB, và Secondary có kích thứơc 1 MB. Trang đầu tiên trong mỗi file là trang header file chứa thông tin về thuộc tính của file. Trang thứ 9 trong primary file là trang khởi động cơ sở dữ liệu chứa thông tin về thuộc tính của cơ sở dữ liệu. 3. Lý thuyết mô hình quan hệ a. Các khái niệm cơ bản - Thực thể : là một đối tượng cụ thể nào đó - Thuộc tính thực thể : Tính chất xác định thực thể - Lớp thực thể : Các thực thể có cùng thuộc tính - Thuộc tính: Tên thuộc tính, miền xác định của thuộc tính - Lược đồ quan he : gồm các thuộc tính của thực thể (tên, miền xác định) cùng với các mệnh đề ràng buộc. Lược đồ của một quan hệ : R== (A1: D1’ A2 : D2 ,……,An :Dn , M) trong đó: AI :Tên thuộc tính, DI :Miền xác định của thuộc tính, M : Mệnh đề ràng buộc. b. Khái Niệm phụ thuộc dữ liệu và các dạng chuẩn - Một thuộc tính gọi là phụ thuộc vào các thuộc tính khác khi giá trị của thuộc tính này phụ thuộc vào giá trị của thuộc tính kia. Sự phụ thuộc có thể là trực tiếp hay gián tiếp. - Một quan hệ bao giờ cũng có một nhóm thuộc tính mà giá trị của chúng qui định giá trị của các thuộc tính khác, nhóm thuộc tính đó gọi là khóa. - Với một quan hệ tùy vào các phụ thuộc của các thuộc tính vào khóa trong đó mà ta phân chia các quan hệ đó thành các dạng chuẩn khác nhau. Các dạng chuẩn cơ bản: Dạng chuẩn 1 Dạng chuẩn 2 Dạng chuẩn 3 Các dữ liệu lưu giữ dưới dạng chuẩn 3 tránh được hiện tượng dư thừa dữ liệu, tạo cho dữ liệu có tính độc lập cao. Các quan hệ nếu chưa ở dạng chuẩn 3 sẽ được phân rã thành các quan hệ nhỏ hơn ở dạng chuẩn 3. c. Khái niệm chỉ dẫn và khóa chỉ dẫn Để có thể tìm kiếm thông tin nhanh theo một tiêu chuẩn nào đó chúng ta tạo ra các thông tin chỉ dẫn theo tiêu chuẩn đó. Các thông tin chỉ dẫn là các thông tin giúp ta tìm kiếm dữ liệu nhanh. Các thông tin này gọi là khóa chỉ dẫn. Khóa chỉ dẫn có thể là một trường, hoặc nhiều trường. Với cách tạo ra khóa chỉ dẫn theo tiêu chuẩn nào đó ta có thể tìm kiếm nhanh dữ liệu theo tiêu chuẩn đó. CHƯƠNG IV XÂY DỰNG CHƯƠNG TRÌNH I. Phần dữ liệu : Như đã trình bày trong chương 2, phần phân tích và thiết kế hệ thống. Ta tổ chức dữ liệu thành 16 bảng dữ liệu như trên. Hình : Mô hình vật lý dữ liệu II. Một số giao diện chính : 1. Hình ảnh Form chính của chương trình: 2. Đây là hình ảnh Menu giao dịch xuất hàng: 3. Hình ảnh Form đơn đặt hàng : 4. Hình ảnh Form lập phiếu xuất hàng : 5. Hình ảnh Form lập phiếu thu tiền hàng : III. Một số mô đun chính : 1. Mô mô đun kết nối CSDL : Public Function Ketnoi() As Boolean On Error Resume Next con.ConnectionTimeout = 5 'su dung sqloledb de ket noi toi sqlserver ' phuong thuc chuoi ket noi con.ConnectionString = "PROVIDER=SQLOLEDB.1;server =(local)" & ";Database=dulieu1" & ";Trusted_Connection=yes" 'con.Properties("Prompt") = adPromptComplete con.Open End Function 2. Mô đun kiểm tra ngày tháng nhập vào : ' Ham kiem tra ngay nhap vao Public Function checkdate(strdate As String) As String Dim temp As Integer Dim strtemp As String temp = 3 If IsNumeric(Left(strdate, 1)) Then ' Neu ky tu dau la so thi If IsNumeric(Mid(strdate, 2, 1)) Then ' Neu ky tu thu hai la so thi If Left(strdate, 2) <= 31 Then ' Neu gia tri 2 ky tu ' <=31 thi kiem tra dau "/" mask1: If Mid(strdate, temp, 1) = "/" Then If IsNumeric(Mid(strdate, temp + 1, 1)) Then If IsNumeric(Mid(strdate, temp + 2, 1)) Then If Mid(strdate, temp + 1, 2) <= 12 Then If Mid(strdate, temp + 3, 1) = "/" Then strtemp = Left(strdate, temp + 3) ' Cat bo 6 ky tu dau If IsDate(strdate) Then ' Chuyen phan con lai th nam checkdate = strtemp & Format(strdate, "yyyy") Else GoTo msgdate End If End If Else GoTo msgdate End If Else If Mid(strdate, temp + 2, 1) = "/" Then strtemp = Left(strdate, temp + 2) If IsDate(strdate) Then checkdate = strtemp & Format(strdate, "yyyy") Else GoTo msgdate End If End If End If Else GoTo msgdate End If Else GoTo msgdate End If Else GoTo msgdate End If Else If Mid(strdate, 2, 1) = "/" Then temp = 2 GoTo mask1 Else GoTo msgdate End If End If Else msgdate: checkdate = "1" End If End Function 3. Mô đun lưu dữ liệu xuất hàng: Public Sub Luudl() On Error GoTo error1 Dim rs As New ADODB.Recordset Dim cmd As New ADODB.Command Dim str As String If Trim(txtmapnx) = "" Or Trim(txtngaylappnx) = "" Or Trim(Combomaddh.Text) = "" Or Trim(txtngaynx) = "" Or Trim(txtngayhtt) = "" Or Trim(Combomahang.Text) = "" Or Trim(txtsoluongnx) = "" Or Trim(txtdongianx) = "" Then MsgBox "Chu y: Phai nhap day du thong tin truoc khi luu!", vbOKOnly + vbExclamation, "Thong bao" txtmapnx.SetFocus Exit Sub End If 'Neu kiem tra ma khach hang co bat dau bang chu 'K' hay khong If Left(Trim(txtmapnx), 1) "X" Then MsgBox "Chu y: Ma phieu xuat hang phai bat dau boi 'X ...' !", vbOKOnly + vbExclamation, "Thong bao" txtmapnx.SetFocus Exit Sub End If 'Tim xem da ton tai Maduong nay trong Table duong hay chua? Set cmd.ActiveConnection = con str = "Select NXHANG.mapnxh, NXHANG.maddh, NXHANG.makho, NXHANG.ngaynxh, NXHANG.ngayhtt, NXHANG.ngaylappnx from NXHANG where mapnxh like 'X%' and mapnxh = '" & Trim(txtmapnx) & "'" rs.Open str, con, adOpenKeyset, adLockPessimistic, adCmdText If rs.EOF = True Then 'Neu chua ton tai Set rs = Nothing ' Dong record lai toithieu = 0 'Xoa gia tri ban dau toida = 0 'Xoa gia tri ban dau Set cmd.ActiveConnection = con str = "select MATHANG.mahang, MATHANG.sltontt, MATHANG.sltontd from MATHANG where MATHANG.mahang ='" & Trim(Left(Combomahang.Text, 4)) & "'" rs.Open str, con, adOpenKeyset, adLockPessimistic, adCmdText If rs.EOF = False Then ' Neu da ton tai, chac chan co toithieu = rs!sltontt toida = rs!sltontd Set rs = Nothing End If Set cmd.ActiveConnection = con str = "select CTMATHANG.mahang, CTMATHANG.soluongton from CTMATHANG where CTMATHANG.mahang ='" & Trim(Left(Combomahang.Text, 4)) & "'" rs.Open str, con, adOpenKeyset, adLockPessimistic, adCmdText If rs.EOF = False Then ' Neu da ton tai sltontam = rs!soluongton - Val(txtsoluongnx) If sltontam < toithieu Then MsgBox "So luong hang ton duoi muc toi thieu. Can phai nhap them truoc da.", vbOKOnly + vbExclamation, "Thong bao" txtsoluongnx.SetFocus Me.MousePointer = 0 Set rs = Nothing Exit Sub Else ' Neu khong duoi muc ton toi thieu, cap nhat SL Set rs = Nothing Set cmd.ActiveConnection = con 'Mo lai de luu str = "Select NXHANG.mapnxh, NXHANG.maddh, NXHANG.makho, NXHANG.ngaynxh, NXHANG.ngayhtt, NXHANG.ngaylappnx from NXHANG where mapnxh like 'X%' and mapnxh = '" & Trim(txtmapnx) & "'" rs.Open str, con, adOpenKeyset, adLockPessimistic, adCmdText If rs.EOF = True Then 'Neu chua ton tai, chac chan chua co rs.AddNew rs!mapnxh = Trim(txtmapnx) rs!ngaylappnx = Trim(txtngaylappnx) rs!maddh = Trim(Left(Combomaddh.Text, 5)) rs!makho = Trim(Left(Combomakho.Text, 5)) rs!ngaynxh = Trim(txtngaynx) rs!ngayhtt = Trim(txtngayhtt) rs.Update Set rs = Nothing ' Dong record lai End If Set cmd.ActiveConnection = con str = "Select DONGNXHANG.mapnxh, DONGNXHANG.mahang, DONGNXHANG.soluongnxh, DONGNXHANG.dongianxh from DONGNXHANG where mapnxh like 'X%' and mapnxh = '" & Trim(txtmapnx) & "' and mahang = '" & Trim(Left(Combomahang.Text, 4)) & "'" rs.Open str, con, adOpenKeyset, adLockPessimistic, adCmdText If rs.EOF = True Then 'Neu chua ton tai rs.AddNew rs!mapnxh = Trim(txtmapnx) rs!mahang = Trim(Left(Combomahang.Text, 4)) rs!soluongnxh = Trim(txtsoluongnx) rs!dongianxh = Trim(txtdongianx) rs.Update Set rs = Nothing End If 'Chi tiet mat hang duoc cap nhat sau cung Set rs.ActiveConnection = con 'Cap nhat phai nhu vay str = "Update CTMATHANG set soluongton ='" & sltontam & "' where mahang ='" & Trim(Left(Combomahang.Text, 4)) & "'" rs.Open str, con, adOpenKeyset, adLockPessimistic, adCmdText sltontam = 0 ' Xoa Set rs = Nothing 'Dong ban ghi lai End If Else ' Neu chua co (chua xuat lan nao) sltontam = Val(txtsoluongnx) ' Kiem tra vuot Sltontd If sltontam < toithieu Then MsgBox "So luong hang ton duoi muc toi thieu. Can phai nhap them truoc da.", vbOKOnly + vbExclamation, "Thong bao" txtsoluongnx.SetFocus Me.MousePointer = 0 Set rs = Nothing Exit Sub Else ' Khong duoi SLtontt, tao moi Set rs = Nothing Set cmd.ActiveConnection = con 'Mo lai de luu str = "Select NXHANG.mapnxh, NXHANG.maddh, NXHANG.makho, NXHANG.ngaynxh, NXHANG.ngayhtt, NXHANG.ngaylappnx from NXHANG where mapnxh like 'X%' and mapnxh = '" & Trim(txtmapnx) & "'" rs.Open str, con, adOpenKeyset, adLockPessimistic, adCmdText If rs.EOF = True Then 'Neu chua ton tai, chac chan chua co rs.AddNew rs!mapnxh = Trim(txtmapnx) rs!ngaylappnx = Trim(txtngaylappnx) rs!maddh = Trim(Left(Combomaddh.Text, 5)) rs!makho = Trim(Left(Combomakho.Text, 5)) rs!ngaynxh = Trim(txtngaynx) rs!ngayhtt = Trim(txtngayhtt) rs.Update Set rs = Nothing ' Dong record lai End If Set cmd.ActiveConnection = con str = "Select DONGNXHANG.mapnxh, DONGNXHANG.mahang, DONGNXHANG.soluongnxh, DONGNXHANG.dongianxh from DONGNXHANG where mapnxh like 'X%' and mapnxh = '" & Trim(txtmapnx) & "' and mahang = '" & Trim(Left(Combomahang.Text, 4)) & "'" rs.Open str, con, adOpenKeyset, adLockPessimistic, adCmdText If rs.EOF = True Then 'Neu chua ton tai rs.AddNew rs!mapnxh = Trim(txtmapnx) rs!mahang = Trim(Left(Combomahang.Text, 4)) rs!soluongnxh = Trim(txtsoluongnx) rs!dongianxh = Trim(txtdongianx) rs.Update Set rs = Nothing End If 'Chi tiet mat hang phai duoc tao moi sau cung Set cmd.ActiveConnection = con str = "select CTMATHANG.mahang, CTMATHANG.soluongton from CTMATHANG where CTMATHANG.mahang ='" & Trim(Left(Combomahang.Text, 4)) & "'" rs.Open str, con, adOpenKeyset, adLockPessimistic, adCmdText If rs.EOF = True Then 'Chac chan chua co rs.AddNew rs!mahang = Trim(Left(Combomahang.Text, 4)) rs!soluongton = sltontam rs.Update Set rs = Nothing sltontam = 0 'Xoa gia tri End If End If End If toithieu = 0 'Xao gia tri toida = 0 'Xao gia tri Else 'Neu da ton tai phieu xuat hang nay roi MsgBox "Phieu xuat hang co ma so [" & Trim(txtmapnx) & "] da ton tai. Vui long kiem tra lai !", vbOKOnly + vbExclamation, "Thong bao" txtmapnx.SetFocus Me.MousePointer = 0 Exit Sub End If DisplayGrid 'Hien thi danh sach cac hang san xuat error1: If Err.Number 0 Then MsgBox Err.Number & Err.Description Else MsgBox "Luu thanh cong phieu xuat hang co ma so: '" & Trim(txtmapnx) & "'" response = MsgBox("Ban co muon them mat hang vao phieu xuat hang nua khong ?", vbYesNo + vbQuestion, "Thong bao") If response = vbYes Then 'Neu chon NO thi khong Xoa Locktext Unlocktext2 Setnull2 'Xoa Textbox Combomahang.SetFocus Flag = True Else Setnull2 'Xoa Textbox Locktext End If End If End Sub CHƯƠNG V ĐÁNH GIÁ HỆ THỐNG I. Những kết quả đạt được Hệ thống quản lý xuất nhập hàng giúp cho việc quản lý mua bán của công ty được thực hiện một cách thuận tiện nhanh chóng và an toàn, góp phần tiết kiệm thời gian và giảm bớt các công việc thủ công (tuy nhiên không thể thay thế hoàn toàn). Hệ thống đáp ứng được những yêu cầu cơ bản trong công tác cập nhật, xử lý xuất nhập hàng một cách nhanh chóng, chính xác như cập nhật dữ liệu, tìm kiếm thông tin, báo cáo tổng hợp xuất, nhập, tồn hàng. Giao diện thân thiện và dễ dàng cho người sử dụng. II. Những tồn tại của chương trình Trong điều kiện hạn hẹp về thời gian và kiến thức còn hạn chế nên chương trình vẫn còn một số tồn tại như sau: - Hệ thống chỉ mới phát triển bằng ngôn ngữ VisualBasic, lưu trữ dữ liệu bằng hệ quản trị cở sở dữ liệu MicroSoft SQL Server và chạy trên máy đơn. - Một số phần xử lý Tiếng Việt còn chư tốt. - Chưa xây dựng hệ thống bảo mật cơ sở dữ liệu và phân quyền người sử dụng. III. Hướng phát triển chương trình Dựa vào kết quả khảo sát bài toán thực tế và phân tích thiết kế hệ thống ở trên, em xin đề xuất hướng phát triển chương trình như sau: 1. Phát triển hệ thống Xây dựng hệ thống thương mại điện tử Web bằng công nghệ ASP (Active Server Pages) hoặc ASP.Net, lưu trữ dữ liệu bằng hệ quản trị cơ sở dữ liệu MicroSoft SQL Server hoặc Orecle và chạy trên mạng. 2. Bảo mật cơ sở dữ liệu và phân quyền người sử dụng Ta sẽ phân cấp ra 3 mức người sử dụng: - Addmin: có quyền thêm, sửa, xoá database, phân cấp, phân quyền cho người sử dụng. - User mức 1: có quyền thêm dữ liệu và database. - User mức 2: chỉ được quyền xem mà không được thực hiện bất cứ thao tác gì trên database. Một vấn đề nữa là database sẽ được đặt trên máy chủ chứ không đặt trên các máy con như hiện nay nữa và như vậy việc quản trị và bảo mật ddatabase sẽ dễ dàng hơn. TÀI LIỆU THAM KHẢO 1. Microsoft Visual Basic 6.0 & Lập trình cơ sở dữ liệu – Nguyễn Thị Ngọc Mai (Chủ biên), NXB GIÁO DỤC 2. Lập trình Visual Basic trong 21 ngày – Nathan Gurewich – On Gurewich, NXB GIÁO DỤC. 3. Kế toán doanh nghiệp với Visual Basic – VN GUIDE, NXB Thống Kê. 4. Giáo trình phân tích và thiết kế hệ thống thông tin quản lý – ThS.Nguyễn Hữu Trọng, Trường Đạ Học Thuỷ Sản. 5. Phân tích và thiết kế hệ thống thông tin - Nguyễn Văn Ba, NXB ĐẠI HỌC QUỐC GIA HÀ NỘI. 6. Hướng dẫn triển khai Căn Cứ Dữ Liệu sử dụng SQL SERVER 7.0 và VISUAL BASIC 6.0 - Biên dịch: Dương Quang Thiện, NXB Thống Kê.

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

  • pdfĐồ án tốt nghiệp - Phân tích thiết kế hệ thống - Quản lý xuất nhập hàng hoá.pdf