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
109 trang |
Chia sẻ: lvcdongnoi | Lượt xem: 2756 | Lượt tải: 2
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:
- Phân tích và thiết kế phần mềm Quản lí hàng hoá vật tư lưu kho.docx