Phân tích và thiết kế phần mềm Quản lí hàng hoá vật tư lưu kho

LỜI NÓI ĐẦU Trong những năm gần đây cùng với sự phát triển mạnh mẽ của nền kinh tế và sự phát triển của ngành CNTT. Tin học đang và sẽ phát triển một cách mạnh mẽ không ngừng, các ứng dụng của nó đã phổ biến trong các nghành Quản lí kinh tế, Sản suất kinh doanh,Y tế và Giáo dục, Máy tính đã trở nên quen thuộc vàđược sử dụng rộng rãi trong đời sống xã hội. Tin học đã thâm nhập vào bất kì một công việc nào đặc biệt là trong lĩnh vực quản lí , nóđã giúp cho các nhà Quản lí xử lí khối lượng công việc khổng lồ một cách mau lẹ và chính xác . Trong lĩnh vực kinh doanh, hoạt động Quản lí vật tư hàng hoá nếu phải thực hiện bằng phương pháp thủ công “ ghi chép bằng tay “ hoặc nếu chỉ dừng ở việc sử dụng máy tính với phần mềm Excel để làm thì rất khó khăn ,tốn nhiều thời gian và không thực sự hiệu quả . Trong quá trình tìm hiểu thực tế tại nơi thực tập “Viện Công Nghệ Thông Tin Bộ Quốc Phòng”, em nhận thấy nhu cầu về một phần mềm Quản lí vật tự hàng hoá lưư kho là rất cần thiết cho đơn vị . Được sự hỗ trợ của cơ quan nơi thực tập, được sự hướng dẫn của thầy giáo Nguyễn Bá Tiến , em đã chọn đề tài: "Phân tích và thiết kế phần mềm Quản lí hàng hoá vật tư lưu kho" để làm khoá luận tốt nghiệp của mình, đồng thời lấy đó làm tiền đề cho công việc sau này của mình . ĐỀ TÀI BAO GỒM CÁC CHƯƠNG SAU : + Chương 1: Tổng quan về Viện Công Nghệ Thông Tin, Bộ Quốc Phòng. + Chương 2: Cơ sở phương pháp luận trong việc nghiên cứu đề tài + Chương 3: Phân tích và thiết kế phần mềm Quản l‎ý hàng hoá vật tư lưu kho. Do thời gian có hạn, kinh nghiệm khảo sát, phân tích và lập trình chưa nhiều nên chắc chắn sẽ có những thiếu sót trong chương trình . Em rất mong nhận được sự quan tâm chỉ bảo của các Thầy cô giáo cũng như những góp ‎ý của các bạn SV để chương trình được hoàn thiện hơn . Em xin chân thành cảm ơn Thầy Nguyễn Bá Tiến – Giáo viên hướng dẫn, và các Thầy cô giáo trong trường ĐHDL Phương Đông đã tận tình giúp đỡ em thực hiện đề tài này. MỤC LỤC LỜI NÓI ĐẦU 1 + Chương 1: Tổng quan về Viện Công Nghệ Thông Tin, Bộ Quốc Phòng. 1.1. TỔNG QUAN VỀ VIỆN CÔNG NGHỆ THÔNG TIN 2 1.1.1. Tên tổ chức khoa học công nghệ 2 1.1.2. Cơ quan ra quyết định thành lập 2 1.1.3. Thành phần kinh tế 2 1.1.4. Trụ sở chính thức 2 1.1.5. Họ và tên người lãnh đạo của tổ chức 2 1.1.6. Các cơ sở giao dịch 2 1.1.7. Biên chế 3 1.1.8. Chức năng, nhiệm vụ quyền hạn 3 1.1.9. Đội ngũ cán bộ khoa học công nghệ 5 1.1.10. Năng lực công nghệ và kinh nghiệm triển khai các hệ thống công nghệ thông tin 5 1.2. NHỮNG VẤN ĐỀ CHUYÊN MÔN ĐÃ TÌM HIỂU TẠI NƠI THỰC TẬP 5 1.2.1. Quản lý hàng hoá lưu kho 5 1.2.2. Chiến lược kho bãi 7 1.2.3. Hệ thống xử lý nguyên vật liệu và bao gói hàng hoá 7 1.2.4. Quản lý thông tin 8 + Chương 2: Cơ sở phương pháp luận trong việc nghiên cứu đề tài 2.1. CÁC KHÁI NIỆM CƠ BẢN VỀ HỆ THỐNG THÔNG TIN 9 2.1.1. Khái niệm về dữ liệu và thông tin 9 2.1.2. Hệ thống thông tin 10 a. Khái niệm về hệ thống thông tin 10 b. Mô hình biểu diễn hệ thống thông tin 11 2.1.3. Cơ sở dữ liệu 13 2.2. PHÂN TÍCH THIẾT KẾ MỘT HỆ THỐNG THÔNG TIN 15 2.2.1. Mô hình của phân tích, thiết kế một hệ thống thông tin 15 2.2.2. Các phương pháp thường dùng để phát triển một hệ thống thông tin 16 2.2.3. Các công đoạn của phát triển hệ thống 17 2.2.3.1. Đánh giá yêu cầu 17 2.2.3.2. Phân tích chi tiết 20 2.2.3.3. Thiết kế lô gíc 28 2.2.3.4. Đề xuất các phương án của giải pháp 32 2.2.3.5. Thiết kế vật lý ngoài 33 2.2.3.6. Triển khai hệ thống thông tin 34 2.2.3.7. Cài đặt bảo trì hệ thống 35 2.3. GIỚI THIỆU VỀ HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU ACCESS VÀ NGÔN NGỮ LẬP TRÌNH VISUAL BASIC 35 2.3.1. Giới thiệu về Microsoft Access 35 2.3.2. Giới thiệu về ngôn ngữ lập trình Visual Basic 35 + Chương 3: Phân tích và thiết kế phần mềm Quản l‎ý hàng hoá vật tư lưu kho. 3.1. PHÂN TÍCH YÊU CẦU 37 3.1.1. Phân tích yêu cầu của bài toán 37 3.1.2. Yêu cầu đối với chương trình 37 3.2. PHÂN TÍCH THIẾT KẾ PHẦN MỀM QUẢN LÝ HÀNG HOÁ VẬT TƯ 38 3.2.1. Sơđồ chức năng 38 3.2.2. Sơđồ các môđun chương trình 39 a. Môđun chương trình quản lý hàng hoá vật tư lưu kho 39 b. Môđun hệ thống 40 c. Mođun quản lý xuất nhập 40 d. Mođun quản lý danh mục 40 e. Mođun tổng hợp 41 f. Mođun báo cáo 41 3.2.3. Thiết kế lô gíc 41 a. Sơđồ luồng dữ liệu 41 b. Thiết kế cơ sở dữ liệu bằng phương pháp mô hình hoá 47 c. Sơđồ quan hệ thực thể 53 3.2.4. Thiết kế giao diện vàđầu ra của chương trình 53 3.2.5. Cài đặt và triển khai 72 3.2.6. Một số thuật toán cơ bản trong chương trình 73 KẾT LUẬN 76 PHỤ LỤC 77 TÀI LIỆU THAM KHẢO 98

docx109 trang | Chia sẻ: lvcdongnoi | Lượt xem: 2743 | Lượt tải: 2download
Bạn đang xem trước 20 trang tài liệu Phân tích và thiết kế phần mềm Quản lí hàng hoá vật tư lưu kho, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
y hết hạn,… Thuộc tính quan hệ dùng để chỉ đến một lần xuất nào đó trong thực thể có quan hệ. b. Thiết kế logic xử lý Các sơ đồ logic của xử lý làm rõ những quan hệ có tính chất ngữ nghĩa của các dữ liệu và không quan tâm đến những yếu tố mang tính chất tổ chức. Thiết kế xử lý logíc được thực hiện thông qua phân tích tra cứu và phân tích cập nhật. Phân tích tra cứu: là tìm hiểu xem bằng cách nào để có được những thông tin đầu ra từ các tệp được thiết kế trong phần thiết kế cơ sở dữ liệu. Kết quả của việc phân tích sẽ được thể hiện thành sơ đồ phân tích tra cứu và đưa vào các phích xử lý trong từ điển hệ thống. Phân tích cập nhật: Thông tin trong cơ sở dữ liệu phải được thường xuyên cập nhật để đảm bảo cơ sở dữ liệu phản ánh được tình trạng dữ liệu mới nhất của các đối tượng mà nó quản lý. Phân tích cập nhật phải thông qua các bước sau: Lập bảng sự kiện cập nhật Xác định cách thức hợp lệ hoá dữ liệu cập nhật Tính toán số lượng xử lý, tra cứu và cập nhật: Một xử lý trên sơ đồ con logic được phân rã thành các thao tác xử lý cơ sở hoặc tra cứu hoặc cập nhật. Để tính khối lượng cho chúng, ta phải quy đổi khối lượng hoạt động của các thao tác xử lý về theo khối lượng xử lý của một thao tác cơ sở được chọn làm đơn vị. 2.2.3.4. Đề xuất các phương án của giải pháp: Mục đích của giai đoạn này là thiết lập các phác hoạ cho mô hình vật lý, tạo ra sự mềm dẻo cho dự án, đáp ứng nhu cầu của nhà quản lý, đánh giá lựa chọn phương án tối ưu, tạo ra cơ hội để nhà thiết kế trình bày ý tưởng khác nhau của mình. Trong giai đoạn này, cần phải làm các công việc sau: Xác định các ràng buộc tin học và tổ chức Xây dựng các phương án giải pháp: Xác định biên giới cho phần tin học hoá và xác định cách thức xử lý Đánh giá phương án của giải pháp: Phân tích chi phí và lợi ích; phân tích đa tiêu chuẩn 2.2.3.5. Thiết kế vật lý ngoài Mục đích của giai đoạn này là mô tả phương án chi tiết các yếu tố nhìn thấy được của hệ thống đó là các giao diện vào, ra, giao tác với hệ thống. Nội dung của giai đoạn này: Lập kế hoạch Thiết kế vào, ra: Thiết kế khuôn dạng trình bày của các đầu ra và thể thức nhập tin cho người dùng. Thiết kế các giao tác với phần tin học hoá Thiết kế các thủ tục thủ công Chuẩn bị và trình bày báo cáo Các nguyên tắc cơ bản khi thiết kế vật lý ngoài Đảm bảo người sử dụng kiểm soát được hoạt động của hệ thống Xem xét và thiết kế bề ngoài của hệ thống theo thói quen, kinh nghiệm của người sử dụng Sử dụng thuật ngữ, các dạng thức và các thủ tục Che khuất toàn bộ yếu tố bên trong của phần mềm và phần cứng tạo thành hệ thống Hệ thống cung cấp thông tin tư liệu trên màn hình. Giảm tối thiểu lượng thông tin mà người sử dụng hệ thống phải nhớ trong khi sử dụng. Chấp nhận các quy tắc chung 2.2.3.6. Triển khai hệ thống thông tin Giai đoạn này có nhiệm vụ đưa ra các quyết định có liên quan tới việc lựa chọn công cụ phát triển hệ thống, tổ chức của cơ sở dữ liệu, cách thức truy nhập tới các bản ghi và các chương trình máy tính khác cấu thành nên hệ thống thông tin. Thiết kế vật lý trong: Thiết kế cơ sở dữ liệu nhằm mục đích tìm cách tiếp cận với dữ liệu nhanh và hiệu quả nhất. Thiết kế vật lý trong các xử lý. Để có thể thiết kế được tốt cần phải chú ý các khái niệm sau: Sự kiện: là một việc thực khi đến nó làm khởi sinh việc thực hiện của một xử lý nào đó. Ví dụ: Sau khi viết phiếu nhập hay phiếu xuất xong thì sự việc này là khởi điểm để in các phiếu xuất, nhập, hay xem tồn kho,… Công việc: là một dãy xử lý có chung một sự kiện khởi sinh Ví dụ: Sau khi viết phiếu xong thì các công việc sau sẽ được thực hiện: + Tính tồn kho. + Xem lại các phiếu xuất, nhập đã viết, có thể chỉnh sửa. + In ấn các phiếu. +Xem thẻ kho. Tiến trình: là một dãy các công việc mà các xử lý bên trong của nó nằm trong một lĩnh vực nghiệp vụ Nhiệm vụ: là một xử lý được xác định thêm các yếu tố về mặt tổ chức Pha xử lý: là tập hợp các nhiệm vụ có tính đến các yếu tố tổ chức và sự thực hiện của chúng, không phụ thuộc vào sự kiện nào khác mà chỉ phụ thuộc vào sự kiện khởi sinh ban đầu. Modul xử lý: là một xử lý cập nhật hoặc tra cứu bên trong của một pha và thao tác với số lượng tương đối ít dữ liệu. 2.2.3.7. Cài đặt bảo trì hệ thống Cài đặt là quá trình chuyển đổi từ hệ thống cũ sang hệ thống mới, tức là tích hợp hệ thống được phát triển vào các hoạt động của tổ chức một cách ít va vấp nhất và đáp ứng những thay đổi có thể xảy ra trong suốt quá trình sử dụng. Bảo trì hệ thống là nhằm tiến triển hệ thống về mặt chức năng để cho hệ thống có những thay đổi yêu cầu về mặt nghiệp vụ tốt hơn. 2.3. GIỚI THIỆU VỀ HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU ACCESS VÀ NGÔN NGỮ LẬP TRÌNH VISUAL BASIC 2.3.1. Giới thiệu về Microsoft Access Microsoft Access là một phần mềm do hãng Microsoft phát hành nằm trong bộ Microsoft Office. Microsoft Access có một giao diện tinh xảo dễ dùng để tạo các đối tượng cơ sở dữ liệu. Vì vậy Microsoft Access được sử dụng rất phổ biến ở nước ta và nhiều nơi trên thế giới. Dữ liệu trên Microsoft Access được tổ chức trên một File duy nhất *.mdb.Trên file dữ liệu được tổ chức thành bảng có quan hệ với nhau và ta có thể thao tác với cơ sở dữ liệu thông qua câu truy vấn. Một câu truy vấn là một lệnh cơ sở dữ liệu để lấy về các mẩu tin. Sử dụng các câu truy vấn ta có thể lấy dữ liệu từ một hoặc nhiều trường trong một hay nhiều bảng. 2.3.2. Giới thiệu về ngôn ngữ lập trình Visual Basic Việc lựa chọn ngôn ngữ lập trình đóng vai trò quan trọng đến việc thành công của chương trình. Các ngôn ngữ được đánh giá bởi các tiêu thức như: Mức độ hỗ trợ cho người lập trình, khả năng trong việc thiết kế giao diện, sự đáp ứng yêu cầu trong trong quản lý cơ sở dữ liệu, yêu cầu về phần cứng, tính thông dụng. Ngôn ngữ Visual Basic có nhiều ưu điểm thể hiện qua những chức năng ưu việt sau: Visual Basic gắn liền với khái niệm lập trình trực quan với giao diện người dùng đồ họa (GUI), tức là khi thiết kế chương trình người dùng được nhìn ngay kết quả qua từng thao tác và giao diện khi chương trình thực hiện. Đây là thuận lợi lớn so với ngôn ngữ lập trình khác. Visual Basic cho phép chỉnh sửa đơn giản nhanh chóng hình dáng kích thước, mầu sắc của các đối tượng có mặt trong ứng dụng Visual Basic có khả năng kết hợp với các thư viện liên kết động DDL( Dinammic link liblary). Nó có thể dễ dàng sử dụng các chức năng sẵn có của Windows mà không cần mất công thiết kế lại như nó có thể sử dụng các hộp thoại dùng chung với Windows, truy xuất tới các thư viện liên kết động. Visual Basic có thể liên lạc với các ứng dụng khác chạy trong Windows thông qua công nghệ OLE (Object Linking and Embedding) của Microsoft. Phương pháp lập trình sự kiện của Visual Basic làm cho việc xây dựng chương trình đơn giản rất nhiều. Các chương trình được tạo ra bởi Visual Basic có thể đứng một cách độc lập như một phần mềm thực sự chạy trong môi trường Windows Trong các ứng dụng có liên quan đến cơ sở dữ liệu Visual Basic có thể dễ dàng truy xuất và điều khiển các cơ sở dữ liệu của các hệ quản trị cơ sở dữ liệu thông dụng như Access, Foxpro, SQL,… và còn rất hay là các chương trình xử lý dữ liệu do Visual Basic tạo ra không hề phải phụ thuộc vào hệ quản trị cơ sở dữ liệu mẹ giống như Access. Visual Basic cho phép dễ dàng xây dựng các chương trình và các ứng dụng Internet. CHƯƠNG 3 PHÂN TÍCH THIẾT KẾ PHẦN MỀM QUẢN LÝ HÀNG HOÁ VẬT TƯ 3.1. PHÂN TÍCH YÊU CẦU 3.1.1. Phân tích yêu cầu của bài toán Quản lý hàng hoá vật tư là hoạt động có ở bất cứ cơ sở sản xuất kinh doanh nào, kể cả nhà nước lẫn tư nhân, trong quân đội cũng như ngoài quân đội. Việc quản lý hàng hoá vật tư thủ công làm mất rất nhiều thời gian, chi phí mà hiệu quả lại không cao. Ngày nay, cùng với sự phát triển của khoa học kĩ thuật và công nghệ thì các đơn vị sản xuất dần dần chuyển từng bước áp dụng công nghệ thông tin vào quản lý nhằm giảm thiểu tối đa chi phí, nâng cao hiệu quả trong công tác quản lý. Yêu cầu đặt ra đối với một bài toán quản lý hàng hoá đó là quản lý được hàng hoá tồn trong kho, có thể biết được hiện nay trong kho này hàng hoá tồn với số lượng là bao nhiêu, chất lượng ra sao, hàng trong kho khác thì ra sao, quản lý được các đơn vị, tổ chức thường xuyên thực hiện giao dịch với đơn vị mình, thực hiện việc viết các phiếu xuất, phiếu nhập khi phát sinh giao dịch với khách hàng hoặc nhà cung cấp, cho phép xem thẻ kho, lập các báo cáo về tình hình xuất nhập của đơn vị… 3.1.2. Yêu cầu đối với chương trình 3.1.2.1. Yêu cầu chức năng * Quản lý danh mục - Cập nhật danh mục kho. - Cập nhật danh mục hàng hoá, vật tư. - Cập nhật danh mục các đơn vị nhập. - Cập nhật danh mục các đơn vị xuất. - Cập nhật danh mục tính chất nhập, tính chất xuất. * Quản lý xuất , nhập - Cập nhật phiếu nhập kho. - Cập nhật phiếu xuất kho. * Quản lý tồn kho - Nhập tồn kho ban đầu. - Xem tồn kho tại thời điểm hiện tại. - Tổng hợp phát sinh nhập, xuất trong kì. * Xuất báo cáo - Tổng hợp báo cáo nhập hàng cho đơn vị. - Tổng hợp báo cáo xuất hàng cho đơn vị. - In các báo cáo về hàng tồn kho cuối kì. - Xem và in thẻ kho đối với từng mặt hàng. - In các phiếu xuất, phiếu nhập. 3.1.2.2. Yêu cầu phi chức năng - Tạo thêm mới người dùng. - Thực hiện chức năng bảo mật và phân quyền cho người dùng. - Sao lưu và phục hồi dữ liệu. 3.2. PHÂN TÍCH THIẾT KẾ PHẦN MỀM QUẢN LÝ HÀNG HOÁ VẬT TƯ Sơ đồ chức năng chương trình QUẢN LÝ HÀNG HOÁ VẬT TƯ LƯU KHO QUẢN LÝ DANH MỤC QUẢN LÝ XUẤT NHẬP TỒN BÁO CÁO 3.2.2. Sơ đồ các mô đun chương trình a. Mô đun: Chương trình quản lý hàng hóa vật tư lưu kho CHƯƠNG TRÌNH QUẢN LÝ HÀNG HOÁ VẬT TƯ LƯU KHO HỆ THỐNG QUẢN LÝ XUẤT NHẬP QUẢN LÝ DANH MỤC TỔNG HỢP BÁO CÁO b.Mô đun: Hệ Thống HỆ THỐNG ĐĂNG NHẬP HỆ THỐNG NHẬP TỒN ĐẦU THAY ĐỔI MẬT KHẨU QUẢN LÝ NGƯỜI DÙNG SAO LƯU DỮ LIỆU PHỤC HỒI DỮ LIỆU c. Mô đun: Quản Lý Xuất Nhập QUẢN LÝ XUẤT NHẬP CẬP NHẬT PHIẾU NHẬP CẬP NHẬT PHIẾU XUẤT d. Mô đun: Quản Lý Danh Mục QUẢN LÝ DANH MỤC DANH MỤC KHO DANH MỤC VẬT TƯ DANH MỤC ĐƠN VỊ DANH MỤC TÍNH CHẤT NHẬP XUẤT NHẬP XUẤT e. Mô đun: Tổng Hợp TỔNG HỢP TỒN KHO THẺ KHO TÌM KIẾM f. Mô đun: Báo Cáo BÁO CÁO BÁO CÁO NHẬP HÀNG BÁO CÁO XUẤT HÀNG 3.2.3. Thiết kế lô gíc a. Sơ đồ luồng dữ liệu SƠ ĐỒ NGỮ CẢNH Đơn đặt hàng QUẢN LÝ HÀNG HOÁ VẬT TƯ LƯU KHO ĐƠN VỊ GIAO HÀNG ĐƠN VỊ NHẬP HÀNG CHỦ NHIỆM KHO Phiếu nhập vật tư Thông tin vật tư nhập Phiếu xuất vật tư Đơn đặt hàng Báo cáo xuất Thông tin kho Thông tin vật tư Báo cáo nhập Thông tin đơn vị giao,nhận vật tư Thông tin vật tư xuất ĐƠN VỊ GIAO HÀNG ĐƠN VỊ NHẬP HÀNG CHỦ NHIỆM KHO Yêu cầu hiệu chỉnh Yêu cầu xem thông tin Kết quả cần xem SƠ ĐỒ MỨC 0. ĐƠN VỊ GIAO HÀNG CHỦ NHIỆM KHO ĐƠN VỊ NHẬP HÀNG 1.0. NHẬP CÁC DANH MỤC 3.0. TỔNG HỢP BÁO CÁO 2.0. QUẢN LÝ XUẤT – NHẬP – TỒN Thông tin kho Thông tin vật tư Thông tin đơn vị giao,nhận vật tư CHỦ NHIỆM KHO Yêu cầu hiệu chỉnh Yêu cầu xem thông tin Kết quả cần xem ĐƠN VỊ NHẬP HÀNG ĐƠN VỊ GIAO HÀNG CHỦ NHIỆM KHO Báo cáo xuất Báo cáo nhập Xuất, nhập tồn Danh mục Đơn đặt hàng Phiếu nhập vật tư Thông tin vật tư nhập Phiếu xuất vật tư Đơn đặt hàng Thông tin vật tư xuất SƠ ĐỒ PHÂN RÃ MỨC 1 1.0. NHẬP CÁC DANH MỤC Danh mục CHỦ NHIỆM KHO 13. XEM DANH MỤC 1.2. HIỆU CHỈNH 1.0. NHẬP DANH MỤC Thông tin kho Thông tin vật tư Thông tin đơn vị giao,nhận vật tư CHỦ NHIỆM KHO Yêu cầu hiệu chỉnh Yêu cầu xem thông tin Kết quả cần xem 2.0. QUẢN LÝ XUẤT – NHẬP – TỒN Xuất, nhập tồn ĐƠN VỊ GIAO HÀNG ĐƠN VỊ NHẬP HÀNG ĐƠN VỊ NHẬP HÀNG ĐƠN VỊ GIAO HÀNG 2.1. QUẢN LÝ NHẬP 2.2. QUẢN LÝ XUẤT 2.3. QUẢN LÝ TỒN Đơn đặt hàng Phiếu nhập vật tư Thông tin vật tư nhập Phiếu xuất vật tư Đơn đặt hàng Thông tin vật tư xuất Thông tin tồn kho Thông tin xuất vật tư Thông tin nhập vật tư 3.0. TỔNG HỢP BÁO CÁO 3.1. TỔNG HỢP NHẬP XUẤT 3.2. LẬP BÁO CÁO NHẬP 3.3. LẬP BÁO CÁO XUẤT CHỦ NHIỆM KHO Báo cáo xuất Báo cáo nhập Xuất, nhập tồn Thông tin nhập đã xử lý Thông tin xuất đã xử lý b. Thiết kế cơ sở dữ liệu bằng phương pháp mô hình hoá #MA_DVN #MA_TCN #MA_TCX #MA_DVX #STT_REC #MAKHO #MA_VT #MAKHO #MA_VT 1 N 1 1 1 1 1 1 N N N N N #DG DM_DVN DM_TCN DM_TCX DM_DVX CTCHUNG DM_KHO DM_VT CTVT Có trong Có trong Có trong Có Có #MA_VT + Các thuộc tính của các thực thể Cơ sở dữ liệu được tạo lập bằng hệ quản trị cơ sở dữ liệu Microsoft Access. Các thuộc tính của các thực thể trong mỗi bảng như sau: Bảng danh mục đơn vị nhập DM_DVN lưu trữ các thông tin về đơn vị nhập. Field Name Data Type Field Size Description MA_DVN Text 4 Mã đơn vị nhập TEN_DVN Text 35 Tên đơn vị nhập GHICHU Text 35 Ghi chú Bảng DM_TCN lưu trữ các thông tin về tính chất nhập. Field Name Data Type Field Size Description MA_TCN Text 4 Mã tính chất nhập TEN_TCN Text 35 Tên tính chất nhập GHICHU Text 35 Ghi chú Bảng DM_DVX lưu trữ các thông tin về các đơn vị xuất. Field Name Data Type Field Size Description MA_DVX Text 4 Mã đơn vị xuất TEN_DVX Text 35 Tên đơn vị xuất GHICHU Text 35 Ghi chú Bảng DM_TCX lưu trữ các thông tin về tính chất xuất trong phiếu xuất. Field Name Data Type Field Size Description MA_TCX Text 4 Mã tính chất xuất TEN_TCX Text 35 Tên tính chất xuất GHICHU Text 35 Ghi chú Bảng CTCHUNG: Lưu trữ các thông tin chung trong phiếu xuất và phiếu nhập. Field Name Data Type Field Size Description STT_REC Autonumber Số thứ tự bản ghi MA_CT Text 2 Mã chứng từ (PX,PN) SO_CT Text 6 Số chứng từ NGAY_CT Date/Time Ngày viết phiếu MAKHO Text 8 Mã kho MA_DVN Text 4 Mã đơn vị nhập MA_TCN Text 4 Mã tính chất nhập MA_DVX Text 4 Mã đơn vị xuất MA_TCX Text 4 Mã tính chất xuất NGAY_HH Date/Time Ngày chứng từ hết hạn Bảng CTVT : Lưu trữ các thông tin chi tiết của phiếu nhập và phiếu xuất. Field Name Data Type Field Size Description MA_VT Text 24 Mã vật tư CL Text 1 Chất lượng DG Currency Đơn giá STT_REC Number Long Integer Số thứ tự bản ghi STT_KHOAN Number Long Integer Số thứ tự khoản SL Number Double Số lượng Bảng DM_VT: lưu trữ các thông tin về vật tư gồm có mã vật tư, tên vật tư và đơn vị tính. Field Name Data Type Field Size Description MA_VT Text 24 Mã vật tư TEN_VT Text 70 Tên vật tư DVT Text 10 Đơn vị tính Bảng TON_DAU lưu trữ các thông tin về số lượng hàng tồn trong từng kho vào đầu mỗi ki là bao nhiêu và chất lượng ra sao. Field Name Data Type Field Size Description MAKHO Text 8 Mã kho MA_VT Text 24 Mã vật tư CL Text 1 Chất lượng SL Number Long integer Số lượng DG Currency Đơn giá Bảng TON_KHO lưu trữ các thông tin về hàng hoá tồn trong kho tại 1 thời điểm. Field Name Data Type Field Size Description MAKHO Text 8 Mã kho MA_VT Text 24 Mã vật tư CL Text 1 Chất lượng SL Number Long integer Số lượng tồn DG Currency 50 Đơn giá Bảng DM_KHO lưu trữ các thông tin về kho hàng. Field Name Data Type Field Size Description MAKHO Text 8 Mã kho TENKHO Text 35 Tên kho Bảng QLND lưu trữ các thông tin về người sử dụng. Field Name Data Type Field Size Description TEN_ND Text 50 Tên của người dùng ID_ND Text 10 Tên dùng để đăng nhập MAT_KHAU Text 10 Mật khẩu dùng để đăng nhập QUYEN Text 20 Quyền của người sử dụng Ngoài ra chương trình còn sử dụng một số bảng nháp, dùng để tính tồn kho,thẻ kho. Bảng CDTEMP dùng để lưu số lượng hàng hoá tồn đầu, số lượng nhập, số lượng xuất trong mỗi kho. Field Name Data Type Field Size Description MAKHO Text 8 Mã kho MA_VT Text 24 Mã vật tư CL Text 1 Chất lượng DG Currency Đơn giá SL_DAU Number Long integer Số lượng tồn đầu kì SL_NHAP Number Long integer Số lượng nhập trong kì SL_XUAT Number Long interger Số lượng xuất trong kì Bảng CDTEMP2 dùng để tổng hợp số lượng hàng hoá theo từng kho và theo từng vật tư. Field Name Data Type Field Size Description MAKHO Text 8 Mã kho MA_VT Text 24 Mã vật tư CL Text 1 Chất lượng DG Currency Đơn giá SL_DAU Number Long integer Số lượng tồn đầu kì SL_NHAP Number Long integer Số lượng nhập trong kì SL_XUAT Number Long integer Số lượng xuất trong kì Bảng THEKHO dùng để xác định thẻ kho đối với các hàng hoá trong kho khi có phát sinh giao dịch. Field Name Data Type Field Size Description MAVT Text 50 Mã vật tư NGAYNHAP Date/Time Ngày nhập NGAYXUAT Date/time Ngày xuất CHATLUONG Number Long integer Chất lượng DONVITINH Text 20 Đơn vị tính DONVINHAP Text 50 Đơn vị nhập DONVIXUAT Text 50 Đơn vị xuất DONVINHAP Number Double Lượng nhập LUONGXUAT Number Double Lượng xuất LUONGTON Number Double Lượng tồn c. Sơ đồ quan hệ thực thể 3.2.4. Thiết kế giao diện và đầu ra của chương trình Việc thiết kế giao diện có ý nghĩa vô cùng quan trọng đối với sự thành công của hệ thống. Qúa trình thiết kế giao diện trong hệ thống quản lý hàng hoá vật tư đã tuân thủ một số nguyên tắc sau: Hệ thống luôn đảm bảo rằng người sử dụng đang kiểm soát hệ thống. Hệ thống được thiết kế theo thói quen và kinh nghiệm của người sử dụng. Hệ thống che khuất những bộ phận bên trong của các phần mềm và phần cứng tạo thành hệ thống. Hệ thống cung cấp thông tin tư liệu trên màn hình. Hệ thống đã được thiết kế để giảm tối thiểu lượng thông tin mà người sử dụng phải nhớ trong qúa trình sử dụng chương trình. Hệ thống tuân thủ những nguyên tắc chuẩn đã được chấp nhận khi thể hiện thông tin trên màn hình hay trên giấy. Một số giao diện chính trong chương trình. Form Đăng nhập hệ thống: Khi người sử dụng đăng nhập vào chương trình thì phải khai báo tên và mật khẩu để truy nhập. Chương trình sẽ thực hiện việc kiểm tra tên và mật khẩu. Nếu tồn tại thì cho phép đăng nhập, nếu nhập sai quá 3 lần thì chương trình tự động thoát. Form chính của chương trình quản lý hàng hoá vật tư lưu kho Form Quản lý người dùng: Cho phép người quản lý có thể tạo thêm mới người sử dụng, đồng thời có thể chỉnh xoá sửa các thông tin của người dùng. Form Nhập tồn đầu cho các kho: Hệ thống cho phép thực hiện cập nhật những hàng hoá tồn trong các kho khi bắt đầu hệ thống đi vào hoạt động, thủ kho có thể xem, chỉnh sửa các thông tin về hàng hoá tồn trong kho. Form Đổi mật khẩu: Người dùng có thể sử dụng chức năng thay đổi mật khẩu trong chương trình để đảm bảo tính bảo mật của hệ thống. Form Sao lưu dữ liệu: Cho phép người quản trị hệ thống có thể sao lưu dữ liệu một cách dễ dàng, nhằm giảm thiểu những rủi ro không đáng có. Form Phục hồi dữ liệu: Sử dụng để phục hồi lại dữ liệu gốc sau khi đã thực hiện sao lưu trước đó. Form Cập nhật phiếu nhập vật tư: Cho phép người dùng có thể xem các phiếu đã viết trước, có thể chỉnh sửa phiếu và viết thêm các phiếu nhập mới. Form Cập nhật chi tiết phiếu nhập: Được sử dụng để cập nhật, chỉnh sửa và xoá các thông tin về vật tư trong phiếu nhập. Form Cập nhật phiếu xuất vật tư: Cho phép người sử dụng có thể xem, chỉnh sửa các phiếu cũ, đồng thời viết mới các phiếu xuất kho. Form Cập nhật chi tiết phiếu xuất: Dùng để cập nhật và chỉnh sửa các thông tin về vật tư trong mục phiếu xuất. Form Danh mục vật tư: Dùng để chọn vật tư để cập nhật vào phiếu xuất kho. Form Danh mục vật tư tồn trong kho: Dùng để chọn các vật tư để cập nhật vào phiếu xuất vật tư. Form Danh mục kho: Hệ thống chỉ cho phép người người quản trị mới có thể cập nhật, chỉnh sửa và xoá thông tin về kho. Form Danh mục vật tư: Cho phép người quản trị có thể tạo mới xem, sửa, xoá các thông tin về danh mục vật tư. Form Danh mục đơn vị nhập: Người quản trị có thể tạo mới, xem, chỉnh sửa, xoá các thông tin về đơn vị nhập. Form Danh mục đơn vị xuất: Cho phép người quản trị hệ thống có thể tạo mới, xem, sửa, xoá danh mục các đơn vị xuất. Form Danh mục tính chất nhập: Lưu các thông tin về cách thức nhập hàng hoá. Form Danh mục tính chất xuất: Được sử dụng để lưu các thông tin về cách thức xuất hàng của đơn vị. Form Xem tồn kho: Dùng để xem các thông tin về hàng hoá tồn trong kho tại thời điểm hiện tại. Form Xem thẻ kho: Được sử dụng để theo dõi tình hình của hàng hoá trong kho khi có phát sinh nhập, phát sinh xuất. Form Tìm kiếm: Form này cho phép thủ kho có thể tìm kiếm các phiếu xuất và phiếu nhập hiện đang tồn tại theo nhiều tiêu chí khác nhau. Form Chi tiết phiếu: Cho biết trong các thông tin cụ thể về các phiếu xuất, nhập khi người dùng kích đúp chuột vào các phiếu đó. Form Báo cáo nhập hàng: Dùng để tổng hợp hàng hoá nhập cho đơn vị trong khoảng thời gian nào đó. Form Báo cáo xuất hàng: Dùng để tổng hợp các hàng hoá mà đơn vị đã xuất trong 1 khoảng thời gian nào đó theo các điều kiện khác nhau. Một số mẫu báo cáo trong chương trình Phiếu xuất vật tư Phiếu nhập vật tư Báo cáo hàng tồn kho Thẻ kho Báo cáo nhập hàng tổng hợp Báo cáo xuất hàng tổng hợp Báo cáo danh mục đơn vị nhập Báo cáo danh mục các đơn vị xuất Báo cáo danh mục tính chất nhập Báo cáo danh mục tính chất xuất 3.2.5. Cài đặt và triển khai Visual Basic là ngôn ngữ lập trình phức hợp và khá mạnh nên để có thể sử dụng được Visual Basic thì hệ thống cần phải đủ mạnh, để có thể chạy được trên phiên bản Visual Basic Enterprise thì hệ thống tối thiểu phải đảm bảo: Bộ xử lý 486 hay Pentium III trở lên, hơn 100 Mb không gian đĩa và 16 Mb Ram. Chương trình “Quản lý hàng hoá vật tư lưu kho” có quy mô nhỏ nên ít đỏi hỏi về phần cứng và có thể chạy trên hầu hết hệ thống có cài đặt hệ điều hành Windows và một số hệ điều hành khác. Cài đặt: cho đĩa chương trình vào và cài đặt theo hướng dẫn 3.2.6. Một số thuật toán cơ bản trong chương trình THUẬT TOÁN ĐĂNG NHẬP VÀO HỆ THỐNG BĐ MỞ FORM ĐĂNG NHẬP KIỂM TRA TÊN NSD VÀ MẬT KHẨU KT ĐÚNG Sai NHẬP TÊN VÀ MẬT KHẨU VÀO CHƯƠNG TRÌNH THÔNG BÁO NHẬP SAI CÓ NHẬP LẠI KHÔNG Sai ĐÚNG THUẬT TOÁN CẬP NHẬT DỮ LIỆU ĐÚNG sai Sai ĐÚNG sai ĐÚNG BĐ MỞ FORM CẬP NHẬT THÊM 1 BẢN GHI TRẮNG NHẬP DỮ LIỆU KIỂM TRA DỮ LIỆU? LƯU BẢN GHI KT TIẾP TỤC? THÔNG BÁO DỮ LIỆU NHẬP SAI NHẬP LẠI ? THUẬT TOÁN LÊN BÁO CÁO ĐÚNG BĐ CHỌN BÁO CÁO NHẬP ĐIỀU KIỆN THỰC HIỆN TÌM KIẾM CÓ THẤY DỮ LIỆU? IN BÁO CÁO sai KT THÔNG BÁO KHÔNG CÓ DỮ LIỆU KẾT LUẬN Trong đồ án tốt nghiệp này em đã giới thiệu các thông tin tổng quan về cơ sở thực tập, trình bày một cách khái quát các khái niệm cơ bản về hệ thống thông tin, cơ sở dữ liệu, sự hiệu quả trong việc ứng dụng công nghệ thông tin trong việc quản lý, về quá trình phân tích và thiết kế hệ thống thông tin. Đề tài trình bày một cách chi tiết toàn bộ quá trình phân tích và thiết kế: “Chương trình quản lý hàng hoá vật tư lưu kho". Đề tài đã thu được một số kết quả tốt như chương trình có tính bảo mật, có khả năng sao lưu và phục hồi dữ liệu, nhập tồn kho, viết được các phiếu xuất, phiếu nhập, xem tồn kho, xem được thẻ kho, tổng hợp được hàng xuất và hàng nhập của đơn vị. Do thời gian hạn chế của một đề tài tốt nghiệp và hạn chế về kiến thức nên hệ thống còn rất nhiều thiếu xót, chưa thể đáp ứng được tất cả các nhu cầu của người sử dụng.Vì vậy, em hy vọng trong thời gian tới sẽ có điều kiện để nghiên cứu và thực hiện tốt hơn chương trình này. Phương hướng phát triển: Đề tài có thể phát triển thêm chức năng như cho phép quản lý vốn ngân sách, cho phép xuất và nhập theo các giá khác nhau, quản lý tài chính, hoá đơn, hợp đồng,… Để hoàn thành được luận văn tốt nghiệp này, một lần nữa em xin gửi lời cảm ơn tới thầy giáo Nguyễn Bá Tiến đã hướng dẫn, chỉ bảo tận tình cho em trong quá trình thực hiện đồ án. Em xin chân thành cảm ơn tới các thầy cô trong khoa Công Nghệ Thông Tin - ĐHDL Phương Đông đã giảng dạy em trong 5 năm học đại học giúp em có được những kiến thức khoa học, những tư duy cho công việc sau này. Em xin chân thành cảm ơn! Hà Nội tháng 4 năm 2006 Sinh viên Nguyễn Lynh Hoàng PHỤ LỤC Mã nguồn của modul kết nối. Public Cn As New ADODB.Connection Public rs As New ADODB.Recordset Public f_user, f_group As String Public flag_pass As String Public key As String Public Sub connect_database() Dim Str As String Dim db_Field Name db_Field Name = App.Path & "\db1.mdb" Str = "provider=Microsoft.jet.OLEDB.4.0;data source=" & db_Field Name & "" DE_HH.CN_HH.ConnectionString = "Provider=Microsoft.jet.OLEDB.4.0;Persist Security Info=False;Data Source=" & db_Field Name & "" DE_HH.CN_HH.Open Cn.Open Str End Sub Hàm kiểm tra sự tồn tại của vật tư. Public Function Ktra_ExistVT(mSTT_REC As Integer, mMa_VT As String, mCL As String, mDG As Double) As Boolean Dim Rs1 As ADODB.Recordset Set Rs1 = New ADODB.Recordset Ktra_ExistVT = False Rs1.Open "SELECT * FROM CTVT WHERE STT_REC=" & Str(mSTT_REC) & " AND MA_VT='" & mMa_VT & "' AND CL='" & mCL & "' AND DG=" & Str(mDG), Cn, adOpenDynamic, adLockReadOnly If Not Rs1.EOF Then Ktra_ExistVT = True End If Rs1.Close Set Rs1 = Nothing End Function Hàm kiểm tra số chứng từ. Public Function Ktra_SoCT(mSO_CT As String, mMA_CT As String) As Boolean Dim Rs1 As ADODB.Recordset Set Rs1 = New ADODB.Recordset Ktra_SoCT = False Rs1.Open "SELECT * FROM CTCHUNG WHERE SO_CT='" & mSO_CT & "' AND MA_CT='" & mMA_CT & "'", Cn, adOpenDynamic, adLockReadOnly If Not Rs1.EOF Then Ktra_SoCT = True End If Rs1.Close Set Rs1 = Nothing End Function Mã nguồn trong Form sao lưu dữ liệu Private Sub Drive1_Change() On Error GoTo loi Dir1.Path = Drive1.Drive exit_loi: Exit Sub loi: MsgBox "Lỗi " & Err.Number & ": " & Err.Description, vbCritical, "Cảnh báo" Drive1.Drive = Left(App.Path, 2) Me.Dir1.Path = App.Path Resume exit_loi End Sub Private Sub SSCommand1_Click() 'On Error Resume Next On Error GoTo loi If MsgBox("Bạn có thực sự muốn sao lưu không ?", vbQuestion + vbYesNo, "Thông báo") = vbYes Then Screen.MousePointer = vbHourglass Else Exit Sub End If 'MsgBox Dir1.Path If rs Is Nothing Then Else ' rs.Close Set rs = Nothing End If DE_HH.CN_HH.Close Cn.Close Set Cn = Nothing Dim ngay As String ngay = "QuanLyHangHoa" ngay = ngay & ".MDB" 'MsgBox ngay & ".mdb" ' DBEngine.CompactDatabase App.Path & "\db1.mdb", Dir1.Path & "\" & ngay Dim sSource As String sSource = App.Path & "\db1.mdb" Dim sDes As String sDes = Dir1.Path & "\" & ngay 'MsgBox sSource 'MsgBox sDes Dim fso As New FileSystemObject fso.CopyFile App.Path & "\db1.mdb", Dir1.Path & "\" & ngay connect_database MsgBox "Đã sao lưu thành công !!!", vbInformation, "Thông báo" Screen.MousePointer = vbNormal exit_loi: Exit Sub loi: MsgBox "Lỗi " & Err.Number & ":" & Err.Description, vbCritical, "Cảnh báo" connect_database Screen.MousePointer = vbNormal Resume exit_loi End Sub Private Sub SSCommand2_Click() Unload Me Mã nguồn trong Form thẻ kho Private Sub cboMaVatTu_Click() Dim mRs As ADODB.Recordset Set mRs = New ADODB.Recordset Me.combochatluong.Clear Me.comdongia.Clear mRs.Open "SELECT ma_cl,ten_cl FROM chatluong where makho ='" & Trim(frmTheKho.commakho.ColText) & "' AND MA_VT ='" & Trim(frmTheKho.cboMaVatTu.ColText) & "' group by ma_cl,ten_cl", Cn, adOpenDynamic, adLockReadOnly 'Me.combochatluong.Clear Do While Not mRs.EOF combochatluong.AddItem Trim(mRs!ma_cl) & vbTab & Trim(mRs!TEN_cl) mRs.MoveNext Loop mRs.Close Set mRs = Nothing End Sub Private Sub cmdcancel_Click() Unload Me End Sub Private Sub cmdIn_Click() If Len(commakho.Text) = 0 Then MsgBox "Chưa chọn mã kho !", vbCritical, "Chú ý !" commakho.SetFocus Exit Sub End If If Len(cboMaVatTu.Text) = 0 Then MsgBox "Chưa chọn vật tư!", vbCritical, "Chú ý !" cboMaVatTu.SetFocus Exit Sub End If If Len(combochatluong.Text) = 0 Then MsgBox "Chưa chọn chất lượng!", vbCritical, "Chú ý !" combochatluong.SetFocus Exit Sub End If If Len(comdongia.Text) = 0 Then MsgBox "Chưa chọn đơn giá!", vbCritical, "Chú ý !" comdongia.SetFocus Exit Sub End If TheKho frmTheKho.cboMaVatTu.ColText, frmTheKho.combochatluong.ColText, Me.comdongia.Text '" & Trim(frmTON_DAU.comMAKHO.ColText) & "' Dim rpt As New arTheKho Set rpt.DataControl1.Connection = Cn rpt.DataControl1.Source = "Select MaVT,ChatLuong,NgayNhap,NgayXuat,DonViXuat,DonViNhap,LuongXuat,LuongNhap,LuongTon from TheKho where mavt ='" & Trim(frmTheKho.cboMaVatTu.ColText) & "' and ChatLuong =" & Trim(frmTheKho.combochatluong.ColText) & "" ' rpt.MaVT.DataField = "MaVT" Dim rs As New ADODB.Recordset rs.Open "Select MaVT,DonViTinh,ChatLuong from Thekho where MaVT ='" & Trim(frmTheKho.cboMaVatTu.ColText) & "'", Cn, adOpenStatic, adLockReadOnly If rs.RecordCount > 0 Then rpt.txttenkho.Text = frmTheKho.commakho.Text rpt.MaVT.Caption = frmTheKho.cboMaVatTu.ColText rpt.DonViTinh.Caption = rs("DonViTinh") rpt.ChatLuong.Caption = IIf(frmTheKho.combochatluong.ColText = "1", "Tốt", IIf(Me.combochatluong.ColText = "2", "Trung bình", "Kém")) ' rpt.ChatLuong.Caption = IIf(Me.txtChatLuong.Text = "1", "Tot", IIf(Me.txtChatLuong.Text = "2", "Tb", "Kem")) Set rs = New ADODB.Recordset rs.Open "Select ten_vt from dm_vt where ma_vt ='" & Trim(frmTheKho.cboMaVatTu.ColText) & "'", Cn, adOpenStatic, adLockReadOnly If rs.RecordCount > 0 Then rpt.TenVT.Caption = rs(0) Set rs = New ADODB.Recordset rs.Open "Select sl from Ton_dau where Ma_Vt ='" & Trim(frmTheKho.cboMaVatTu.ColText) & "' and dg =" & Trim(frmTheKho.comdongia.Text) & "", Cn, adOpenStatic, adLockReadOnly If rs.RecordCount > 0 Then rpt.TonDau.Caption = rs(0) Else rpt.TonDau.Caption = 0 End If Set rs = New ADODB.Recordset rs.Open "Select LuongTon from thekho where MaVt ='" & Trim(frmTheKho.cboMaVatTu.ColText) & "'", Cn, adOpenStatic, adLockReadOnly If rs.RecordCount > 0 Then rs.MoveLast: rpt.TonCuoi.Caption = rs(0) rpt.DonGia.Caption = Me.comdongia.Text End If rpt.NgayNhap.DataField = "NgayNhap" rpt.NgayXuat.DataField = "NgayXuat" rpt.DVN.DataField = "DonViNhap" rpt.DVX.DataField = "DonViXuat" rpt.LuongNhap.DataField = "LuongNhap" rpt.LuongXuat.DataField = "LuongXuat" rpt.LuongTon.DataField = "LuongTon" Dim fPreview As New frmPreview fPreview.RunReport rpt fPreview.Show 1 Set rpt = Nothing Unload fPreview End Sub Private Sub cmdok_Click() If Len(commakho.Text) = 0 Then MsgBox "Chưa chọn mã kho !", vbCritical, "Chú ý !" commakho.SetFocus Exit Sub End If If Len(cboMaVatTu.Text) = 0 Then MsgBox "Chưa chọn vật tư!", vbCritical, "Chú ý !" cboMaVatTu.SetFocus Exit Sub End If If Len(combochatluong.Text) = 0 Then MsgBox "Chưa chọn chất lượng!", vbCritical, "Chú ý !" combochatluong.SetFocus Exit Sub End If If Len(comdongia.Text) = 0 Then MsgBox "Chưa chọn đơn giá!", vbCritical, "Chú ý !" comdongia.SetFocus Exit Sub End If TheKho frmTheKho.cboMaVatTu.ColText, frmTheKho.combochatluong.ColText, Me.comdongia.Text frmXemTheKho.Show 1 End Sub Private Sub combochatluong_Click() 'add don gia 'Me.comdongia.Clear Dim mRs As New ADODB.Recordset Dim s As String s = "Select DG from viewThe_khott where ma_vt ='" & Me.cboMaVatTu.ColText & "' and cl='" & Me.combochatluong.ColText & "' and Makho ='" & Me.commakho.ColText & "' group by dg" Set mRs = New ADODB.Recordset mRs.Open s, Cn, adOpenStatic, adLockReadOnly If mRs.RecordCount > 0 Then mRs.MoveFirst ' Me.comdongia.Clear Me.comdongia.Text = mRs(0) ' Me.combochatluong.Clear Do While Not mRs.EOF Me.comdongia.AddItem mRs(0) mRs.MoveNext Loop End If mRs.Close End Sub Private Sub comMAKHO_Click() 'load danh muc vat tu theo kho Dim rs As ADODB.Recordset Set rs = New ADODB.Recordset Me.cboMaVatTu.Clear Me.combochatluong.Clear Me.comdongia.Clear rs.Open "Select ma_vt,ten_vt,viewthe_khott.makho from viewthe_khott where makho ='" & Trim(frmTheKho.commakho.ColText) & "' group by makho,ma_vt,ten_vt", Cn, adOpenStatic, adLockOptimistic If rs.RecordCount > 0 Then rs.MoveFirst 'Me.cboMaVatTu.Clear Do While Not rs.EOF Me.cboMaVatTu.AddItem rs(0) & vbTab & rs(1) rs.MoveNext Loop End If rs.Close Set rs = Nothing ' LOAD DON GIA End Sub Private Sub Form_Load() ' TheKho Dim rs As New ADODB.Recordset 'load danh muc kho Set rs = New ADODB.Recordset rs.Open "Select MaKho,TenKHo from viewThe_KhoTT group by MaKho,TenKho order by MaKho,TenKho", Cn, adOpenStatic, adLockReadOnly If rs.RecordCount > 0 Then rs.MoveFirst Do While Not rs.EOF Me.commakho.AddItem rs(0) & vbTab & rs(1) rs.MoveNext Loop End If rs.Close Set rs = Nothing 'load chatluong ' Set mRs = New ADODB.Recordset ' ' mRs.Open "SELECT ma_cl,ten_cl FROM chatluong where makho ='" & Trim(frmTheKho.commakho.ColText) & "' AND MA_VT ='" & Trim(frmTheKho.cboMaVatTu.ColText) & "' ", Cn, adOpenDynamic, adLockReadOnly ' Do While Not mRs.EOF ' combochatluong.AddItem Trim(mRs!ma_cl) & vbTab & Trim(mRs!TEN_cl) ' '& vbTab & Trim(mRs!TEN_TCX) ' mRs.MoveNext ' Loop ' mRs.Close ' Set mRs = Nothing ' End Sub Mã nguồn trong Form phục hồi dữ liệu Private Sub cmdcancel_Click() Unload Me End Sub Private Sub cmdok_Click() On Error GoTo loi MsgBox "Bạn nên sao lưu dữ liệu trước khi khôi phục !!!", vbCritical, "Cảnh báo" If MsgBox("Dữ liệu sẽ bị ghi đè. Bạn có chắc chắn khôi phục hay không ?", vbQuestion + vbYesNo, "Khôi phục dữ liệu") = vbYes Then 'huy ket noi toi CSDL Screen.MousePointer = vbHourglass DE_HH.CN_HH.Close Cn.Close 'Kill App.Path & "\db1.mdb" 'xoa file db1.mdb Dim fso As New FileSystemObject Dim s As String s = Dir1.Path & "\" s = s & List1.Text fso.CopyFile s, App.Path & "\db1.mdb", True MsgBox "Đã khôi phục thành công !!!", vbInformation, "Thông báo" Screen.MousePointer = vbNormal connect_database 'khoi tao ket noi toi CSDL End If exit_loi: Exit Sub loi: MsgBox "Lỗi " & Err.Number & ":" & Err.Description, vbCritical, "Cảnh báo" connect_database Screen.MousePointer = vbNormal End Sub Private Sub Dir1_Change() 'File1.Path = Dir1.Path On Error GoTo loi Dim fso As New FileSystemObject Dim fil As file Dim fol As Folder Set fol = fso.GetFolder(Dir1.Path) List1.Clear For Each fil In fol.Files If UCase(Right(fil.Field Name, 4)) = ".MDB" Then List1.AddItem fil.Field Name End If Next exit_loi: Exit Sub loi: MsgBox "Lỗi " & Err.Number & ":" & Err.Description, vbCritical, "Cảnh báo" connect_database End Sub Private Sub Drive1_Change() On Error GoTo loi Dir1.Path = Drive1.Drive exit_loi: Exit Sub loi: MsgBox "Lỗi " & Err.Number & ": " & Err.Description, vbCritical, "Cảnh báo" Drive1.Drive = Left(App.Path, 2) Me.Dir1.Path = App.Path Resume exit_loi End Sub Mã nguồn trong Form Viết phiếu nhập. Option Explicit Dim State As String Public mSTT_REC As Integer Dim mSO_CT As String Private Sub cmdADD_Click() State = "ADD" cmdEDIT.Caption = "&Ghi" cmdDEL.Caption = "&Hũy" cmdDEL.Enabled = True cmdEDIT.Enabled = True cmdADD.Enabled = False cmdCANDOI.Enabled = False mSO_CT = "" Call EmptyItem Call LockItem(False) txtNGAY_CT.Value = Format(Date, "dd/mmm/yyyy") txtSO_CT.SetFocus cmdPREV.Enabled = False cmdNEXT.Enabled = False cmdfirst.Enabled = False cmdlast.Enabled = False comMAKHO.Enabled = False cmdIN.Enabled = False cmdADD_VT.Enabled = False cmdEDIT_VT.Enabled = False cmdDEL_VT.Enabled = False End Sub Private Sub cmdADD_VT_Click() frmRUOT_PN.State = "ADD" frmRUOT_PN.Show 1 End Sub Private Sub cmdCANDOI_Click() If MsgBox("Bạn thực sự muốn cân đối vật tư trong kho!", vbOKCancel, "Chú ý !") = vbOK Then Cn.Execute "DELETE * FROM CDTEMP" Cn.Execute "delete * from CDTEMP2" Cn.Execute "delete * from TON_KHO" Cn.Execute "INSERT INTO CDTEMP(MAKHO,MA_VT,CL,SL_DAU,DG) SELECT MAKHO,MA_VT,CL,SL,DG FROM TON_DAU " Cn.Execute "INSERT INTO CDTEMP(MAKHO,MA_VT,CL,SL_NHAP,DG) SELECT MAKHO,MA_VT,CL,SL, DG from viewPSNHAP'" Cn.Execute "INSERT INTO CDTEMP(MAKHO,MA_VT,CL,SL_XUAT,DG) SELECT MAKHO,MA_VT,CL,SL, DG from viewPSXUAT'" Cn.Execute "INSERT INTO CDTEMP2(MAKHO,MA_VT,CL,SL_DAU,SL_NHAP,SL_XUAT,DG) SELECT * FROM viewTONGHOP" Cn.Execute "INSERT INTO TON_KHO(MAKHO,MA_VT,CL,SL,DG) SELECT * FROM viewTONKHO" cmdCANDOI.Enabled = False End If End Sub Private Sub cmdDEL_Click() If State = "" Then If MsgBox("Thực sự muốn xóa phiếu nhập này !", vbOKCancel, "Chú ý !") = vbOK Then Cn.Execute "DELETE FROM CTVT WHERE STT_REC=" & Str(rs!Stt_Rec) Cn.Execute "DELETE FROM CTCHUNG WHERE STT_REC=" & Str(rs!Stt_Rec) rs.Requery rs.Find "MAKHO='" & Trim(comMAKHO.ColText) & "'" cmdEDIT.Caption = "&Sửa phiếu" cmdDEL.Caption = "&Xóaphiếu" cmdADD.Enabled = True Call LockItem(True) If rs.EOF Then Call EmptyItem cmdDEL.Enabled = False cmdEDIT.Enabled = False cmdIN.Enabled = False cmdADD_VT.Enabled = False cmdDEL_VT.Enabled = False cmdEDIT_VT.Enabled = False Else Call MovePhieu cmdDEL.Enabled = True cmdEDIT.Enabled = True cmdIN.Enabled = True End If End If Else State = "" cmdEDIT.Caption = "&Sửa phiếu" cmdDEL.Caption = "&Xóaphiếu" cmdADD.Enabled = True Call LockItem(True) cmdADD.SetFocus If rs.BOF And rs.EOF Then cmdDEL.Enabled = False cmdEDIT.Enabled = False cmdIN.Enabled = False cmdADD_VT.Enabled = False cmdDEL_VT.Enabled = False cmdEDIT_VT.Enabled = False Call EmptyItem Else cmdIN.Enabled = True Call MovePhieu End If cmdPREV.Enabled = True cmdNEXT.Enabled = True cmdfirst.Enabled = True cmdlast.Enabled = True comMAKHO.Enabled = True End If cmdCANDOI.Enabled = True End Sub Private Sub cmdDEL_VT_Click() If MsgBox("Thực sự muốn xóa khoản hàng này !", vbOKCancel, "Chú ý !") = vbOK Then Cn.Execute "DELETE FROM CTVT WHERE STT_REC=" & Str(mSTT_REC) & " AND STT_KHOAN = " & Grid.TextMatrix(Grid.Row, 0) Call RuotPhieu(rs!Stt_Rec) End If End Sub Private Sub cmdEDIT_Click() Dim Ten_ND Dim Sql As String Dim mDate As String If State = "" Then State = "EDIT" cmdEDIT.Caption = "&Ghi" cmdDEL.Caption = "&Hũy" cmdDEL.Enabled = True cmdEDIT.Enabled = True cmdADD.Enabled = False Call LockItem(False) mSO_CT = Trim(txtSO_CT.Text) txtSO_CT.Enabled = False cmdPREV.Enabled = False cmdNEXT.Enabled = False cmdfirst.Enabled = False cmdlast.Enabled = False comMAKHO.Enabled = False cmdIN.Enabled = False cmdADD_VT.Enabled = False cmdEDIT_VT.Enabled = False cmdDEL_VT.Enabled = False Else If State = "ADD" Then If Ktra_SoCT(Trim(txtSO_CT.Text), "PN") = True Then txtSO_CT.SetFocus MsgBox "Trùng số chứng từ !", vbCritical, "Chú ý !" Exit Sub End If If txtSO_CT = "" Then MsgBox "Chưa nhập số chứng từ !", vbCritical, "Chú ý !" txtSO_CT.SetFocus Exit Sub End If End If If txtNGAY_HH.Value <= txtNGAY_CT.Value Then MsgBox " Ngày hết hạn nhập sai !", vbCritical, "Chú ý !" txtNGAY_HH.SetFocus Exit Sub End If If txtNGAY_HH.ValueIsNull Then MsgBox "Ngày hết hạn không được để trống !", vbCritical, "Chú ý !" txtNGAY_HH.SetFocus Exit Sub End If If IsDate(txtNGAY_CT.Value) = False Then MsgBox "Ngày chứng từ nhập sai !", vbCritical, "Chú ý !" txtNGAY_CT.SetFocus Exit Sub End If If comMA_TCN.ListIndex = -1 Then MsgBox "Chưa nhập tính chất nhập !", vbCritical, "Chú ý !" comMA_TCN.SetFocus Exit Sub End If If comMA_DVN.ListIndex = -1 Then MsgBox "Chưa nhập đơn vị giao hàng !", vbCritical, "Chú ý !" comMA_DVN.SetFocus Exit Sub End If If State = "ADD" Then rs.AddNew End If rs!MA_CT = "PN" rs!So_CT = UCase(Trim(txtSO_CT.Text)) rs!NGAY_CT = IIf(IsNull(txtNGAY_CT.Value), Null, Format(txtNGAY_CT.Value, "dd/mm/yyyy")) rs!NGUOI_NHAP = Trim(f_user) rs!MaKHO = Trim(comMAKHO.ColText) rs!MA_DVN = Trim(comMA_DVN.ColText) rs!MA_TCN = Trim(comMA_TCN.ColText) rs!NGAY_HH = IIf(IsNull(txtNGAY_HH.Value), Null, Format(txtNGAY_HH.Value, "dd/mm/yyyy")) rs.UpdateBatch adAffectAllChapters cmdEDIT.Caption = "&Sửa phiếu" cmdDEL.Caption = "&Xóa phiếu" cmdDEL.Enabled = True cmdEDIT.Enabled = True cmdADD.Enabled = True cmdIN.Enabled = True Call LockItem(True) rs.Requery cmdADD.SetFocus If State = "ADD" Then rs.MoveLast Call MovePhieu frmRUOT_PN.State = "ADD" frmRUOT_PN.Show 1 Else Call MovePhieu End If State = "" cmdPREV.Enabled = True cmdNEXT.Enabled = True cmdfirst.Enabled = True cmdlast.Enabled = True comMAKHO.Enabled = True cmdIN.Enabled = True End If cmdCANDOI.Enabled = True End Sub Private Sub cmdEDIT_VT_Click() frmRUOT_PN.State = "EDIT" frmRUOT_PN.Show 1 End Sub Private Sub cmdEXIT_Click() Unload Me End Sub Private Sub cmdfirst_Click() If Not rs.EOF Then rs.MoveFirst End If If Not rs.EOF Then Call MovePhieu Else If rs.BOF Then Exit Sub rs.MoveLast Call MovePhieu End If End Sub Private Sub cmdIN_Click() reportPN.Show 1 End Sub Private Sub cmdlast_Click() If Not rs.EOF Then rs.MoveLast End If If Not rs.EOF Then Call MovePhieu Else If rs.BOF Then Exit Sub rs.MoveFirst Call MovePhieu End If End Sub Private Sub cmdNEXT_Click() If Not rs.EOF Then rs.MoveNext End If If Not rs.EOF Then Call MovePhieu Else If rs.BOF Then Exit Sub rs.MoveLast Call MovePhieu End If End Sub Private Sub cmdPREV_Click() If Not rs.BOF Then rs.MovePrevious End If If Not rs.BOF Then Call MovePhieu End If End Sub Private Sub comMA_DVN_KeyDown(KeyCode As Integer, Shift As Integer) If KeyCode = 13 Then comMA_TCN.SetFocus End If End Sub Private Sub comMA_DVN_LostFocus() On Error Resume Next If comMA_DVN.ListIndex = -1 Then comMA_DVN.Text = "" End If End Sub Private Sub comMA_TCN_LostFocus() If comMA_TCN.ListIndex = -1 Then comMA_TCN.Text = "" End If End Sub Private Sub comMAKHO_Click() Call DuyetPhieu(Trim(comMAKHO.ColText)) End Sub Private Sub Form_Load() Set rs = New ADODB.Recordset Grid.Rows = 1 Call LoadDM Call LockItem(True) End Sub Private Sub Form_Unload(Cancel As Integer) If State "" Then Cancel = 1 Else If rs.State = 1 Then rs.Close End If Set rs = Nothing End If End Sub Private Sub Grid_DblClick() If Grid.Rows > 1 Then frmRUOT_PN.State = "EDIT" frmRUOT_PN.Show 1 End If End Sub Private Sub Grid_KeyDown(KeyCode As Integer, Shift As Integer) If Grid.Rows > 1 And KeyCode = 13 Then frmRUOT_PN.State = "EDIT" frmRUOT_PN.Show 1 End If End Sub Private Sub LoadDM() Dim mRs As ADODB.Recordset Set mRs = New ADODB.Recordset mRs.Open "SELECT * FROM DM_TCN ORDER BY MA_TCN", Cn, adOpenDynamic, adLockReadOnly Do While Not mRs.EOF comMA_TCN.AddItem Trim(mRs!MA_TCN) & vbTab & Trim(mRs!TEN_TCN) mRs.MoveNext Loop mRs.Close mRs.Open "SELECT * FROM DM_DVN ORDER BY MA_DVN", Cn, adOpenDynamic, adLockReadOnly Do While Not mRs.EOF comMA_DVN.AddItem Trim(mRs!MA_DVN) & vbTab & Trim(mRs!TEN_DVN) mRs.MoveNext Loop mRs.Close mRs.Open "SELECT * FROM DM_KHO ORDER BY MAKHO", Cn, adOpenDynamic, adLockReadOnly Do While Not mRs.EOF comMAKHO.AddItem Trim(mRs!MaKHO) & vbTab & Trim(mRs!TENKHO) mRs.MoveNext Loop If comMAKHO.ListCount > 0 Then comMAKHO.ListIndex = 0 Else Call EmptyItem cmdDEL.Enabled = False cmdEDIT.Enabled = False cmdIN.Enabled = False cmdADD_VT.Enabled = False cmdDEL_VT.Enabled = False cmdEDIT_VT.Enabled = False End If mRs.Close Set mRs = Nothing End Sub Private Sub LockItem(Dk As Boolean) txtNGAY_CT.ReadOnly = Dk txtNGAY_HH.ReadOnly = Dk txtSO_CT.Locked = Dk comMA_DVN.Enabled = Not Dk comMA_TCN.Enabled = Not Dk End Sub Private Sub EmptyItem() txtNGAY_CT.Text = "" txtNGAY_HH.Text = "" txtSO_CT.Text = "" comMA_DVN.ListIndex = -1 comMA_TCN.ListIndex = -1 Grid.Rows = 1 labTONGTIEN.Caption = "" End Sub Private Sub DuyetPhieu(MaKHO As String) Dim Sql As String DoEvents If rs.State = 1 Then rs.Close rs.Open "SELECT * FROM viewCTNHAP WHERE MA_CT='PN' AND MAKHO='" & MaKHO & "'", Cn, adOpenDynamic, adLockBatchOptimistic, adAsyncExecute While (rs.State And adStateExecuting) = adStateExecuting Wend If Not rs.EOF Then rs.MoveFirst mSTT_REC = rs!Stt_Rec Call MovePhieu cmdDEL.Enabled = True cmdEDIT.Enabled = True cmdIN.Enabled = True Else Call EmptyItem cmdDEL.Enabled = False cmdEDIT.Enabled = False cmdIN.Enabled = False cmdADD_VT.Enabled = False cmdDEL_VT.Enabled = False cmdEDIT_VT.Enabled = False End If End Sub Public Sub RuotPhieu(Stt_Rec As Integer) Dim mRs As ADODB.Recordset Dim mTONG_TIEN As Double Set mRs = New ADODB.Recordset mRs.Open "SELECT STT_KHOAN,CL,SL,DG,DM_VT.MA_VT, DM_VT.TEN_VT,DM_VT.DVT FROM CTVT INNER JOIN DM_VT ON CTVT.MA_VT=DM_VT.MA_VT WHERE STT_REC=" & Str(Stt_Rec), Cn, adOpenDynamic, adLockBatchOptimistic Grid.Rows = 1 mTONG_TIEN = 0 Do While Not mRs.EOF Grid.AddItem mRs!STT_KHOAN & vbTab & Trim(mRs!MA_VT) & vbTab & Trim(mRs!TEN_VT) & vbTab & Trim(mRs!DVT) & vbTab & Trim(mRs!CL) & vbTab & mRs!SL & vbTab & mRs!DG & vbTab & IIf(IsNull(mRs!SL), 0, mRs!SL) * IIf(IsNull(mRs!DG), 0, mRs!DG) mTONG_TIEN = mTONG_TIEN + IIf(IsNull(mRs!SL), 0, mRs!SL) * IIf(IsNull(mRs!DG), 0, mRs!DG) Grid.Cell(flexcpForeColor, Grid.Rows - 1, 0) = &H80& Grid.Cell(flexcpFontBold, Grid.Rows - 1, 0) = True Grid.Cell(flexcpFontBold, Grid.Rows - 1, 1) = True mRs.MoveNext Loop labTONGTIEN.Caption = Str(mTONG_TIEN) cmdADD_VT.Enabled = True If Grid.Rows = 1 Then cmdEDIT_VT.Enabled = False cmdDEL_VT.Enabled = False Else cmdEDIT_VT.Enabled = True cmdDEL_VT.Enabled = True End If End Sub Public Sub MovePhieu() If rs.BOF Or rs.EOF Then Exit Sub End If txtSO_CT.Text = IIf(IsNull(rs!So_CT), "", Trim(rs!So_CT)) txtNGAY_CT.Value = Format(IIf(IsNull(rs!NGAY_CT), "", Trim(rs!NGAY_CT)), "dd/mm/yyyy") txtNGAY_HH.Value = Format(IIf(IsNull(rs!NGAY_HH), "", Trim(rs!NGAY_HH)), "dd/mm/yyyy") SetCmbValue comMA_DVN, IIf(IsNull(rs!MA_DVN), "", Trim(rs!MA_DVN)) SetCmbValue comMA_TCN, IIf(IsNull(rs!MA_TCN), "", Trim(rs!MA_TCN)) mSO_CT = IIf(IsNull(rs!So_CT), "", Trim(rs!So_CT)) mSTT_REC = rs!Stt_Rec Call RuotPhieu(rs!Stt_Rec) End Sub Private Sub txtNGAY_CT_KeyDown(KeyCode As Integer, Shift As Integer) If KeyCode = 13 Then If comMA_DVN.Enabled = True Then comMA_DVN.SetFocus Else txtNGAY_HH.SetFocus End If End If End Sub Private Sub txtNGAY_HH_KeyDown(KeyCode As Integer, Shift As Integer) If KeyCode = 13 Then txtNGAY_CT.SetFocus End If End Sub Private Sub txtSO_CT_Change() labSO_CT.Caption = Trim(txtSO_CT.Text) End Sub Private Sub txtSO_CT_KeyDown(KeyCode As Integer, Shift As Integer) If KeyCode = 13 Then txtNGAY_CT.SetFocus End If End Sub TÀI LIỆU THAM KHẢO Nguyễn Ngọc Mai, Microsoft Visual Basic 6.0 & Lập trình cơ sở dữ liệu, NXB Giáo dục, Hà Nội, 2000. Ks. Đinh Xuân Lâm & VN- GUIDE, Những bài thực hành Cơ sở dữ liệu Visual Basic căn bản, NXB Thống kê, 2004. Ks. Đinh Xuân Lâm & VN – GUIDE, Những bài thực hành Visual Basic 6.0, NXB Thống kê, Hà Nội, 2004. Ths. Trần Công Uẩn, Giáo trình Cơ sở dữ liệu, NXB Thống kê, Hà Nội, 2000. Ts. Trương Văn Tú, Trần Thị Song Minh, Giáo trình Hệ thống thông tin quản lý, NXB Thống kê, Hà Nội, 2000. MỤC LỤC LỜI NÓI ĐẦU 1 CHƯƠNG 1. TỔNG QUAN VỀ VIỆN CÔNG NGHỆ THÔNG TIN BỘ QUỐC PHÒNG 2 1.1. TỔNG QUAN VỀ VIỆN CÔNG NGHỆ THÔNG TIN 2 1.1.1. Tên tổ chức khoa học công nghệ 2 1.1.2. Cơ quan ra quyết định thành lập 2 1.1.3. Thành phần kinh tế 2 1.1.4. Trụ sở chính thức 2 1.1.5. Họ và tên người lãnh đạo của tổ chức 2 1.1.6. Các cơ sở giao dịch 2 1.1.7. Biên chế 3 1.1.8. Chức năng, nhiệm vụ quyền hạn 3 1.1.9. Đội ngũ cán bộ khoa học công nghệ 5 1.1.10. Năng lực công nghệ và kinh nghiệm triển khai các hệ thống công nghệ thông tin 5 1.2. NHỮNG VẤN ĐỀ CHUYÊN MÔN ĐÃ TÌM HIỂU TẠI NƠI THỰC TẬP 5 1.2.1. Quản lý hàng hoá lưu kho 5 1.2.2. Chiến lược kho bãi 7 1.2.3. Hệ thống xử lý nguyên vật liệu và bao gói hàng hoá 7 1.2.4. Quản lý thông tin 8 CHƯƠNG 2. CƠ SỞ PHƯƠNG PHÁP LUẬN TRONG VIỆC NGHIÊN CỨU ĐỀ TÀI 9 2.1. CÁC KHÁI NIỆM CƠ BẢN VỀ HỆ THỐNG THÔNG TIN 9 2.1.1. Khái niệm về dữ liệu và thông tin 9 2.1.2. Hệ thống thông tin 10 a. Khái niệm về hệ thống thông tin 10 b. Mô hình biểu diễn hệ thống thông tin 11 2.1.3. Cơ sở dữ liệu 13 2.2. PHÂN TÍCH THIẾT KẾ MỘT HỆ THỐNG THÔNG TIN 15 2.2.1. Mô hình của phân tích, thiết kế một hệ thống thông tin 15 2.2.2. Các phương pháp thường dùng để phát triển một hệ thống thông tin 16 2.2.3. Các công đoạn của phát triển hệ thống 17 2.2.3.1. Đánh giá yêu cầu 17 2.2.3.2. Phân tích chi tiết 20 2.2.3.3. Thiết kế lô gíc 28 2.2.3.4. Đề xuất các phương án của giải pháp 32 2.2.3.5. Thiết kế vật lý ngoài 33 2.2.3.6. Triển khai hệ thống thông tin 34 2.2.3.7. Cài đặt bảo trì hệ thống 35 2.3. GIỚI THIỆU VỀ HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU ACCESS VÀ NGÔN NGỮ LẬP TRÌNH VISUAL BASIC 35 2.3.1. Giới thiệu về Microsoft Access 35 2.3.2. Giới thiệu về ngôn ngữ lập trình Visual Basic 35 CHƯƠNG 3. PHÂN TÍCH THIẾT KẾ PHẦN MỀM QUẢN LÝ HÀNG HOÁ VẬT TƯ 37 3.1. PHÂN TÍCH YÊU CẦU 37 3.1.1. Phân tích yêu cầu của bài toán 37 3.1.2. Yêu cầu đối với chương trình 37 3.2. PHÂN TÍCH THIẾT KẾ PHẦN MỀM QUẢN LÝ HÀNG HOÁ VẬT TƯ 38 3.2.1. Sơ đồ chức năng 38 3.2.2. Sơ đồ các môđun chương trình 39 a. Môđun chương trình quản lý hàng hoá vật tư lưu kho 39 b. Môđun hệ thống 40 c. Mođun quản lý xuất nhập 40 d. Mođun quản lý danh mục 40 e. Mođun tổng hợp 41 f. Mođun báo cáo 41 3.2.3. Thiết kế lô gíc 41 a. Sơ đồ luồng dữ liệu 41 b. Thiết kế cơ sở dữ liệu bằng phương pháp mô hình hoá 47 c. Sơ đồ quan hệ thực thể 53 3.2.4. Thiết kế giao diện và đầu ra của chương trình 53 3.2.5. Cài đặt và triển khai 72 3.2.6. Một số thuật toán cơ bản trong chương trình 73 KẾT LUẬN 76 PHỤ LỤC 77 TÀI LIỆU THAM KHẢO 98 BỘ GIÁO DỤC VÀ ĐÀO TẠO ĐẠI HỌC DÂN LẬP PHƯƠNG ĐÔNG KHOA CÔNG NGHỆ THÔNG TIN ĐỒ ÁN TỐT NGHIỆP ĐỀ TÀI : PHÂN TÍCH VÀ THIẾT KẾ PHẦN MỀM QUẢN LÝ HÀNG HOÁ VẬT TƯ LƯU KHO Giáo viên hướng dẫn : Nguyễn Bá Tiến Sinh viên thực hiện : Nguyễn Lynh Hoàng Lớp : 811A Hà Nội – 2006 LỜI CAM ĐOAN Tôi xin cam đoan đây là công trình nghiên cứu của riêng tôi. Những tài liệu trong đồ án tốt nghiệp là hoàn toàn trung thực. Các kết quả nghiên cứu do chính tôi thực hiện dưới sự chỉ đạo của giáo viên hướng dẫn.

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

  • docxPhân tích và thiết kế phần mềm Quản lí hàng hoá vật tư lưu kho.docx