Xây dựng phần mềm quản lý kho gỗ của chi nhánh công ty ván gỗ ép MDF Gia Lai

Phần mềm được viết bằng ngôn ngữ Visual Basic sẽ được đóng gói ra file *.exe để chạy. Phần mềm được đóng gói sẽ gồm 1 đĩa CD bao gồm code và các file để chạy chương trình. Công ty MDF Gia Lai sẽ cho người hướng dẫn nhõn viên phòng quản lý kho cài đặt phần mềm cũng như đào tạo người sử dụng. Sau khi cài đặt, phần mềm sẽ được bảo trì miễn phí cũng như sửa chữa phần mềm nếu có sự cố xảy ra cho công ty trong vũng 6 tháng tiếp theo.

doc79 trang | Chia sẻ: lylyngoc | Lượt xem: 2850 | Lượt tải: 2download
Bạn đang xem trước 20 trang tài liệu Xây dựng phần mềm quản lý kho gỗ của chi nhánh công ty ván gỗ ép MDF Gia Lai, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
MỤC LỤC LỜI NểI ĐẦU Công nghệ phần mềm là lĩnh vực nghiên cứu của tin học nhằm đề xuất các nguyên lý, phương pháp, công cụ, cách tiếp cận và phương tiện phục vụ cho việc thiết kế và cài đặt các sản phẩm phần mềm một cách kinh tế, vừa tin cậy, vừa làm việc hiệu quả trên máy tớnh. Sau một thời gian được tiếp thu những kiến thức quý bỏu trong môn Công nghệ phần mềm do thầy PGS.TS Hàn Viết Thuận giảng dạy, chúng em đã có cơ hội được thực hành để xõy dựng nên một phần mềm, qua đó cụ thể hoá những kiến thức đã học. Đề tài nhóm 3 - Tin học kinh tế 48 chúng em lựa chọn là “Xõy dựng phần mềm quản lý kho gỗ của chi nhánh công ty ván gỗ ép MDF Gia Lai”. Qua từng tuần, thực hiện từng quy trình trong công nghệ phần mềm, cùng với sự hướng dẫn nhiệt tình của thầy Thuận, sự đóng góp ý kiến của các bạn trong lớp, và sự miệt mài làm việc của nhóm 3, chúng em đã cho ra mắt phần mềm đáp ứng được yêu cầu cao của người sử dụng. Quóng thời gian làm việc cùng nhau của nhóm 3 không chỉ là cơ hội tốt để các thành viên học cách làm việc tập thể, cùng nhau giải quyết những vấn đề khó khăn, mà cũn là dịp để các bạn thật sự hiểu nhau hơn, chia sẻ những cảm xúc tươi mới và luôn vẹn nguyên trong tình bạn. Tất cả cùng nhau “đoàn kết sáng tạo và không ngừng vươn xa”. Chúng em xin chõn thành cảm ơn Phó giáo sư, tiến sĩ Hàn Viết Thuận, người đã trực tiếp giảng dạy và hướng dẫn chúng em thực hiện đề tài. Chúng em mong thầy luôn là điểm tựa vững chắc để chúng em có thể vững bước trên con đường mình đã chọn. Chỳng em cũng xin gửi lời cám ơn đến Chi nhánh công ty ván gỗ ép MDF Gia Lai đã tạo điều kiện tốt nhất cho chúng em thực hiện thành công đề tài này. Hà Nội, 11/2009 Nhóm sinh viên thực hiện Nhóm 3 - Tin học kinh tế 48 1.Tổng quan 1.1 Giới thiệu về chi nhánh công ty ván gỗ ép MDF Gia Lai TỔNG CÔNG TY LÂM NGHIỆP VIỆT NAM - VINAFOR Chi nhánh công ty ván gỗ ép MDF Gia Lai -Địa chỉ:32 – Đại Từ - Đại Kim – Hà Nội -Điện thoại: 04.35400826 -Fax : 04.6283690 -Email: vinafor_kt@fpt.vn -Website: www.vinafor.com.vn Đụi nét về công ty: Ván Sợi (MDF) là ván nhân tạo có đặc tính cơ lý cao, kích thước lớn, phù hợp với công nghệ sản xuất đồ mộc nội thất trong vùng khí hậu nhiệt đới. Nhà máy MDF Gia Lai của VINAFOR có công suất 54.000 m3 SP/năm sử dụng dây chuyền công nghệ hiện đại châu Âu và được quản lý theo hệ thống quản lý chất lượng ISO 9001-2000. Quy cách sản phẩm 1.830 mm x 2.440mm dầy từ 6-30mm. Sản phẩm ván MDF được sử dụng rộng rãi trong các lĩnh vực sản xuất đồ mộc, trang trí nội thất, xây dựng… 1.2 Giới thiệu nhóm 3 - Tin học kinh tế 48 Nhóm 3 - Tin học kinh tế 48 được thành lập 15 - 09 - 2009. Trong bối cảnh tin học hóa là một bước tiến bắt buộc đối với các doanh nghiệp. Nhóm 3 được thành lập với mục tiêu mang lại sự tin học hóa đến với doanh nghiệp.Được thành lập với các thành viên năng động có kiến thức chuyên môn sõu. Nhúm chúng tôi có quyết tâm biến kiến thức học được trên giảng đường thành các ứng dụng cho doanh nghiệp hiện đại. Danh sách các thành viên - Thiều Quang Huy - Nguyễn Tuấn Anh - Nguyễn Thị Thanh - Đinh Gia Cương - Đào Tuấn Cường - Nguyễn Thị Ngọc Bích - Vũ Danh Mạnh - Lò Đức Khoa - Hồ Hoàng Huệ 1.3 Bảng phân công công việc Nhiệm vụ Cán bộ phụ trách chính Thời gian thực hiện Xác định đề tài Cả nhóm 1 ngày Đi thực tế Cả nhóm 2 ngày Xây dựng hợp đồng Đào Tuấn Cường 4 ngày Xác định nhu cầu người sử dụng Nguyễn Thị Ngọc Bích Xây dựng HĐPM Đào Tuấn Cường Xác định yêu cầu Nguyễn Thị Thanh Hồ Hoàng Huệ 1 tuần Lập kế hoạch xác định yêu cầu Nguyễn Thị Thanh Xác định yêu cầu người sử dụng Nguyễn Thị Thanh Phân tích nghiệp vụ chuyên sâu Nguyễn Thị Thanh Mô hình hoạt động của hệ thống Hồ Hoàng Huệ Báo cáo quy trình 2 Nguyễn Thị Thanh Phân tích thiết kế Đào Tuấn Cường 2 tuần Lập kế hoạch thiết kế Vũ Danh Mạnh Thiết kế kiến trúc Đào Tuấn Cường Thiết kế dữ liệu Thiều Quang Huy Thiết kế thủ tục Nguyễn Tuấn Anh Thiết kế giao diện Đinh Gia Cương Lập trình Thiều Quang Huy 2 tuần Lập trình hệ thống Nguyễn Tuấn Anh Lập trình cập nhật danh mục Thiều Quang Huy Lập trình xử lý nghiệp vụ Thiều Quang Huy Nguyễn Tuấn Anh Lập trình tìm kiếm báo cáo Nguyễn Tuấn Anh Test Đinh Gia Cương Lò Đức Kho 1 tuần Lập kế hoạch Test Lò Đức Khoa Lập kịch bản Test Lò Đức Khoa Thực hiện Test Lò Đức Khoa Vũ Danh Mạnh Báo cáo quy trình Test Vũ Danh Mạnh Triển khai Đinh Gia Cương 1 tuần Lập kế hoạch Đinh Gia Cương Lập giải pháp Đinh Gia Cương Cài đặt và vận hành Đinh Gia Cương Đào tạo sử dụng Đinh Gia Cương Báo cáo triển khai Đinh Gia Cương Tổng thời gian 8 tuần 1.4 Kế hoạch triển khai STT Công việc 27/09-01/10 02-08/10 09-23/10 24/10-06/11 07-14/11 15-21/11 1 Xây dựng hợp đồng 2 Xác định yêu cầu 3 Phân tích thiết kế 4 Lập trình 5 Test 6 Qui trình triển khai 2. Quy trình xây dựng hợp đồng phần mềm CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM Độc lập - Tự do – Hạnh phúc -----o0o----- HỢP ĐỒNG KINH DOANH PHẦN MỀM Số 14/HĐPM -Căn cứ vào Bộ luật dân sự của nước Cộng Hòa Xã Hội Chủ Nghĩa Việt Nam được Quốc Hội khóa 11 thông qua ngày 14/6/2005 -Căn cứ vào luõt thương mại số 36/2005/QH11 của nước Cộng Hòa Xã Hội Chủ Nghĩa Việt Nam được Quốc Hội khóa 11 thông qua ngày 14/6/2005 - Căn cứ vào nghị định Nghị định 47/NĐ-CP có hiệu lực từ 30/6/2009 về bảo vệ phần mềm máy tính - Căn cứ vào Pháp lệnh 04/2008/UBTVQH12 về sở hữu trí tuệ có hiệu lực từ ngày 1/8/2008 - Căn cứ Luật Công nghệ thông tin ngày 29 tháng 6 năm 2006 -Căn cứ Quyết định số 246/2005/QĐ-TTg ngày 06 tháng 10 năm 2005 của Thủ tướng Chính phủ về việc phê duyệt Chiến lược phát triển công nghệ thông tin và truyền thông đến năm 2010 và định hướng đến năm 2020 -Sau khi xem xét yêu cầu của Công ty kho gỗ ván ép của chi nhánh công ty MDF Gia Lai và khả năng cung cấp dịch vụ của Nhóm xây dựng phần mềm Quản lý kho. Hôm nay Ngày 27 Tháng 10 Năm 2009, chúng tôi gồm BấN A: Công ty kho gỗ ván ép của chi nhánh công ty MDF Gia Lai Địa chỉ: Số 32-Đại Từ-Đại Kim-Hà Nội Điện thoại: 04.35400826 Fax : 04.6283690 Đại diện: Đinh Ngọc Xuân Chức vụ: Giám đốc Mã số thuế: 5900227820-003 Tài khoản: 1460431101000348 Mở tại: Ngân hàng NN&PTNT Nam – Hà Nội BấN B: NHểM XÂY DỰNG PHẦM MỀM QUẢN LÝ KHO Địa chỉ: Số 207 - Giải Phóng- Hai Bà Trưng – Hà Nội Điện thoại: 0986148893 Fax………………………… Đại diện: Thiều Quang Huy Chức vụ :Quản trị viên dự án Mã số thuế: ………. Email: ……… Hai bên thỏa thuận ký kết hợp đồng với những nội dung như sau: Điều 1 : Nội dung hợp đồng Bên B cung cấp cho bên A những dịch vụ như sau: Số TT Tên dịch vụ Ghi chú 1 Phần mềm QL kho 2 Tạo tài khoản cập nhật dữ liệu 3 Duy trì tài khoản cập nhật dữ liệu 4 Giới thiệu phần mềm Miễn phí 5 Hướng dẫn sử dụng Miễn phí 6 Tư vấn miễn phí về phần mềm Miễn phí 7 Tìm kiếm Miễn phí 8 Liên hệ Miễn phí 9 Ngôn ngữ Tiếng Việt Miễn phí 10 Cài đặt triển khai hoàn chỉnh Điều 2: Giá trị hợp đồng và thanh toán (chưa bao gồm thuế VAT) 2.1 Chi phí toàn bộ phần mềm: 5.600.000 VND (Bằng chữ: Năm triệu sáu trăm đồng chẵn) 2.2 Phương thức thanh toán: Thanh toán bằng tiền đồng Việt Nam(thanh toán bằng tiền mặt,ngõn phiếu sec hoặc chuyển khoản) 2.3 Lịch trình thanh toán: Chi phí xây dựng phần mềm sẽ thanh toan 60% ngay sau khi ký kết hợp đồng,cũn lại 40% thanh toán ngay sau khi cỏc bờn ký vào Biên bản thanh lý hợp đồng phân mềm. Điều 3: Trách nhiệm và quyền hạn của mụĩ bờn 3.1 Trách nhiệm quyền hạn của bên A: -Cung cấp thông tin đảm bảo chính xác ,trung thực trong khuôn khổ pháp luật quy định -Có trách nhiệm thanh toán các khoản chi phí theo như quy định tại điều 2 nói trên. -Có quyền khiếu nại về chất lượng thông tin,chất lượng dịch vụ do bên B cung cấp.Mọi khiếu nại phải được gửi cho Bên B dưới dạng văn bản trong vòng 5 ngày kể từ ngày phát sinh vấn đề và Bên B trả lời khiếu nại cho bên A trong vòng 5 ngày kể từ ngày Bên B nhận được công văn của bên A 3.2 Trách nhiệm quyền hạn của Bên B -Cung cấp các dịch vụ theo Điều 1 của Hợp đồng này -Có quyền tạm ngưng phục vụ nếu Bên A thanh toán chậm quá 10 ngày kể từ ngày bàn giao kỹ thuật ch bên B -Trong vòng 30 ngày kể từ ngày ký bên B sẽ cung cấp sản phẩm hoàn thiện cho bên A Điều 4: Bảo hành 4.1 Bên B có trách nhiệm bảo hành về các lỗi kỹ thuật và tư vấn trực tiếp,qua điện thoại hoặc qua fax cho Bên A trong thời gian 12 tháng kể từ ngày bàn giao phần mềm hoàn chỉnh 4.2 Sau khi hết hạn bảo hành Bên B tư vấn miễm phí cho Bên A qua điện thoại, Mail hoặc fax nếu có vưỡng mắc về kỹ thuật. Điều 5: Điều khoản chung 5.1 Hai bên cam kết thực hiện đúng nghiac vụ của mình theo các điều khoản dã ghi trong hợp đồng 5.2 Trong quá trình thực hiện hợp đồng, nếu có bất kỳ vấn đề nào phát sinh hai bên cùng trao đổi, giả quyết trrn tinh thần hợp tác giúp đỡ lẫn nhau 5.3 Nêu cú tranh chấp xảy ra thì mọi vấn đề không thống nhất sẽ được giải quýờt theo quy định của pháp luật 5.5 Hợp đồng này gồm 5 trang ,được lập thành 2 bản có giá trị pháp lý như nhau .Mỗi bên giữ 1 bản và có hiệu lực từ ngày ký. Hà Nội,Ngày 27 Tháng 10 Năm 2009 ĐẠI DIỆN BấN A ĐẠI DIỆN BấN B (Ký tên, đóng dấu) (Ký tên, đóng dấu) PHỤ LỤC 1: CÁC MODULE TÍNH NĂNG VÀ YÊU CẦU KỸ THUẬT PHẦN MỀM QUẢN LÝ KHO HÀNG No Items Quantity Unit price (VND) Amount (VND) VAT 1 Thiết kế giao diện chính Hệ thống Cập nhật danh mục Quản lý Báo cáo Trợ giúp 01 package 1.000.000 1.000.000 0% 2 Module Hệ thống Đăng nhập Quản lý user 01 module 500.000 500.000 0% 3 Module cập nhật danh mục Cập nhật danh mục 01 module 500.000 500.000 0% 4 Module Quản lý Cập nhật phiếu nhập Cập nhật phiếu xuất Quản lý tồn kho 01 module 2.000.000 2.000.000 0% 5 Module Báo cáo Báo cáo nhập kho Báo cáo tồn kho Báo cáo xuất nhập tồn 01 module 800.000 800.000 0% 7 Module Help 01 module 200.000 200.000 0% Tổng: 5.000.000 Bằng chữ: Năm triệu đồng Miễn phí bảo trì vĩnh viễn. Miễn phí đào tạo, hướng dẫn vận hành, quản lý phần mềm. 3. Quy trình xác định yêu cầu Mục đích: sau khi đó cú hợp đồng với khách hàng, hợp đồng được chuyển sang để thực hiện chương trình thứ hai nhằm xác định nhu cầu của khách hang về sản phẩm tương lai. Yêu cầu đặt ra là phải lượng hoá được các dạng mô hình. Các giai đoạn Lập kế hoạch xác định yêu cầu Xác định yêu cầu của người sử dụng Phân tích nghiệp vụ Lập mô hình hệ thống Báo cáo quy trình 2 3.1 Lập kế hoạch STT Công Việc Nhân lực (Người) Thời gian (ngày) Người/ngày 1 Xác định yêu cầu người sử dụng 2 2 4 2 Phân tích nghiệp vụ 2 2 4 3 Lập mô hình hệ thống 2 2 4 4 Báo cáo quy trình 2 1 1 1 3.2 Khảo sát và xác định yêu cầu người sử dụng 3.2.1 Sơ đồ tổ chức của chi nhánh công ty ván gỗ ép MDF Gia Lai Ban giám đốc Kho Phòng kế toán Chi trả lương Thanh toán hoá đơn Kiểm tra hàng hóa Xác định kết quả kinh doanh Lưu trữ hàng hóa Quản lý hàng hóa 3.2.2 Yêu cầu chức năng nghiệp vụ a. Kho Quản lý hàng nhập Quản lý hàng xuất Quản lý hàng tồn b. Phũng kế toán Yêu cầu các báo cáo thường kì về hàng hóa trong kho. 3.2.3 Yêu cầu chức năng hệ thống - Phân quyền: Với mỗi chức danh khác nhau thỡ cỏc chức năng của phần mềm có giới hạn khác nhau. Quyền admin thì lớn hơn quyền user - Cấu hình thiết bị: Máy cá nhân phải được trang bị cấu hình phần cứng mạnh, chạy hệ điều hành Windows XP trở lên. 3.2.4 Yêu cầu phi chức năng - Giao diện trực quan, thân thiện, dễ sử dụng. - Khả năng quản lý linh hoạt: Cho phép thêm mới, sửa chữa, cập nhật nhanh chóng, chính xác. - Khả năng tìm kiếm đa khoá: Sử dụng nhiều khoá để có thể tìm kiếm chính xác nhất. - Khả năng báo cáo tuỳ biến: Cho phép người dùng lựa chọn cỏc tiờu thức theo ý mình để in báo cáo - Tự động hoỏ cỏc công việc diễn ra hàng ngày: như phân bổ chuyến đi, cập nhật xe về bến, nhắc nhở bảo dưỡng, sửa chữa. 3.3 Phân tích nghiệp vụ chuyên sâu 3.3.1. Nhập kho : Bước 1 : Phòng kế toán chuyển đơn đặt hàng và bảng kê xuống kho ( đây là đơn đặt hàng của chi nhánh gửi vào trong tổng công ty MDF Gia Lai có ghi rõ chủng loại và khối lượng gỗ cần đặt ) Bước 2 : Kho kiểm kê hàng theo bảng kê, kiểm tra số lượng và chất lượng của ván sau đó ghi xác nhận giao nhận hàng vào phần dưới của bảng kê Bước 3 : Viết phiếu nhập kho 3.3.2.Xuất kho : Bước 1 : Kho nhận hóa đơn và bảng kê từ phòng kế toán Bước 2 : Kho viết phiếu xuất kho : phiếu này gồm có 3 liên : 1 gửi lên phòng kế toán, 1 do kho giữ, 1 đưa cho khách hàng Bước 3 : Khách hàng kiểm tra hàng theo đúng bảng kê sau đó ghi xác nhận giao nhận hàng vào phần dưới bảng kê Bước 4 : Kho chuyển phiếu xuất kho lên cho phòng kế toán 3.4 Mô tả hoạt động hệ thống 3.4.1 Sơ đồ BFD QUẢN LÝ KHO GỖ CHI NHÁNH CÔNG TY MDF GIA LAI Quản lý hàng nhập Quản lý hàng xuất Lập báo cáo Nhận bảng kê từ P.KT Kiểm tra hàng nhập Xếp hàng vào kho Xác nhận nhập hàng Nhận bảng kê từ P.KT Gửi phiếu nhập kho lên P.KT Viết phiếu xuất kho Lưu phiếu xuất kho Gửi phiếu xuất kho lên Khách hàng Giao hàng Gửi phiếu xuất kho lên P.KT Lập báo cáo định kỳ Lập báo cáo theo yêu cầu Lưu phiếu nhập kho Kiểm tra lýợng tồn & Báo cáo lên P.KT 3.4.2 Sơ đồ DFD 3.4.2.1 Sơ đồ mức ngữ cảnh Quản Lý Kho Gỗ Chi Nhánh Công Ty MDF GIA LAI Khách Hàng Tổng Công Ty MDF GIA LAI Công Nhân Viên Trong Kho Giám Đốc Chi Nhánh CSDL Công Ty Chi Nhánh 3.4.2.2 Sơ đồ DFD mức 0 3.4.3 Sơ đồ DFD mức 1 3.4.3.1 Sơ đồ DFD mức 1 Quản lý phiếu nhập. 3.4.3.2 Sơ đồ DFD mức 1 Quản lý phiếu xuất. 3.4.3.3 Sơ đồ DFD mức 1 Báo cáo 3.5 Báo cáo quy trình xác định yêu cầu Ta thu được các bản phân tích nghiệp vụ, phân tích yêu cầu của người sử dụng và tổng quan về hoạt động của hệ thống cũng như các sơ đồ BFD, DFD là đầu vào của quy trình phân tích thiết kế. 4. Quy trình phân tích thiết kế 4.1 Lập kế hoạch thiết kế STT Công việc Nhân lực (Người) Thời gian (ngày) Người/ngày 1 Thiết kế kiến trúc 1 2 2 2 Thiết kế dữ liệu 1 5 5 3 Thiết kế thủ tục 1 2 2 4 Thiết kế giao diện 1 4 4 4.2 Thiết kế kiến trúc 4.3 Thiết kế dữ liệu 4.3.1 Sơ đồ cấu trúc dữ liệu DSD 4.3.2 Thiết kế các bảng CSDL 4.3.2.1 Bảng người dùng STT Tên Trường Kiểu Dữ Liệu Độ Rộng Diễn Giải 1 User Text 24 Người Đăng Nhập 3 Pass Text 16 Mật khẩu 4 Quyen Text 30 Quyền Hạn Người Đăng nhập 4.3.2.2 Bảng nhân viên STT Tên Trường Kiểu Dữ Liệu Độ Rộng Diễn Giải 1 MaNV Text 10 Mã Nhân Viên 2 TenNV Text 25 Tên Nhân Viên 3 NgaySinh Date Ngày Sinh 4 CMTND Number 12 Chứng minh thư nhân dân 5 QueQuan Text 30 Quê Quán 6 DiaChi Text 50 Địa Chỉ 7 SDT Number 20 Số Điện Thoại 4.3.2.3 Bảng khách hàng STT Tên Trường Kiểu Dữ Liệu Độ Rộng Diễn Giải 1 MaKH Text 10 Mã Khách Hàng 2 TenKH Text 25 Tên Khách Hàng 3 DiaChi Text 30 Địa Chỉ 4 SDT Number 20 Số điện thoại 5 Fax Number 12 Số fax 6 TaiKhoan Number 12 Tài Khoản 7 MaSoThue Number 10 Mã số thuế 4.3.2.4 Bảng mặt hàng STT Tên Trường Kiểu Dữ Liệu Độ Rộng Diễn Giải 1 MaMH Text 10 Mã Mặt Hàng 2 TenMH Text 25 Tên Mặt Hàng 3 DVT Text 10 Đơn vị tính 5 GhiChu Text 50 Ghi Chú 4.2.3.5 Bảng phiếu nhập STT Tên Trường Kiểu Dữ Liệu Độ Rộng Diễn Giải 1 MaPNK Text 10 Mã Phiếu Nhập Kho 2 LyDoNhap Text 5 Lý Do Nhập 3 MaNV Text 7 Mã Nhân Viên 4 TongTien Number 10 Tổng tiền 5 NgayThang Date Ngày Tháng 4.3.2.6 Bảng phiếu xuất STT Tên Trường Kiểu Dữ Liệu Độ Rộng Diễn Giải 1 MaPXK Text 10 Mã Phiếu Nhập Kho 2 MaKH Text 10 Mã Khách Hàng 3 LiDoXuat Text 50 Lý Do Xuất 4 MaNV Text 10 Mã Nhân Viên 5 TongTien Text 10 Tổng Tiền 6 NgayThang Date  dd/mm/yyyy Ngày Tháng 4.3.2.7 Bảng phiếu nhập kho chi tiết STT Tên Trường Kiểu Dữ Liệu Độ Rộng Diễn Giải 1 MaPNKCT Text 10 Mã Phiếu Nhập Kho Chi Tiết 2 MaPNK Text 10 Mã Phiếu Nhập Kho 3 MaMH Text 10 Mã Mặt Hàng 4 TenMH Text 50 Tên Mặt Hàng 5 DVT Text 10 Đơn Vị Tính 6 SLNhapYC Number 4 Số Lượng Nhập Theo Yêu Cầu 7 SLNhapTT Number 4 Số Lượng Nhập Thực Tế 8 DonGia Number 7 Đơn Giá 4.3.2.8 Bảng phiếu xuất kho chi tiết STT Tên Trường Kiểu Dữ Liệu Độ Rộng Diễn Giải 1 MaPXKCT Text 10 Mã Phiếu Xuất Kho Chi Tiết 2 MaPXK Text 10 Mã Phiếu Xuất Kho 3 MaMH Text 10 Mã Mặt Hàng 4 TenMH Text 50 Tên Mặt Hàng 5 DVT Text 10 Đơn Vị Tính 6 SLXuatYC Number 4 Số Lượng Xuất Theo Yêu Cầu 7 SLXuatTT Number 4 Số Lượng Xuất Thực Tế 8 DonGia Number 7 Đơn Giá 4.4 Thiết kế giải thuật 4.4.1 Giải thuật đăng nhập 4.4.2 Giải thuật cập nhật dữ liệu 4.4.3 Giải thuật xuất báo cáo 4.5 Thiết kế giao diện 4.5.1 Giao diện của chương trình 4.5.2 Form đăng nhập 4.5.3 Các menu của chương trình - Menu Hệ thống Menu cập nhật danh mục Menu Quản lý Menu Quản lý báo cáo - Menu trợ giúp 4.5.4 Form quản lý người dùng mới 4.5.5 Form đổi mật khẩu 4.5.6 Form danh mục khách hàng 4.5.6 Form danh mục mặt hàng 4.5.7 Form danh mục nhân viên 4.5.8 Form quản lý danh sách phiếu nhập 4.5.9 Form quản lý danh sách phiếu xuất 3 4.5.10 Form phiếu nhập 4.5.11 Form phiếu xuất 4.5.12 Form báo cáo nhập kho 4.5.13 Form báo cáo xuất kho 4.5.14 Form báo cáo xuất nhập tồn 4.5.14 Form hướng dẫn 4.5.15 Giới thiệu phần mềm 5. Quy trình lập trình 5.1 Lập kế hoạch lập trình STT Công việc Nhân lực (Người) Thời gian (ngày) Người/ngày 1 Lập trình hệ thống 1 2 3 2 Cập nhật danh mục 1 3 3 3 Xử lý nghiệp vụ 2 4 8 4 Tìm kiếm báo cáo 1 4 4 - Sử dụng ngôn ngữ Visual Basic 6.0 và hệ quản trị cơ sở dữ liệu Microsoft Access 2003. - Sử dụng phần mềm Crystal Report 8.5 để thiết kế báo cáo. - Sử dụng phần mềm Help and Menual 11 để tạo Help File. - Sử dụng phần mềm InstallShield 12 để tạo bộ cài đặt. 5.2 Lập trình cập nhật danh mục Đoạn code cho phép cập nhật danh mục chính xác. Có bẫy nhiều lỗi và đảm bảo độ an toàn của thông tin nhập liệu. - Với giao diện như sau Code của form mặt hàng Dim bStatus As Boolean, bAdd As Boolean Dim sFilter As String Private Sub cmdCancel_Click() bStatus = False Reset_Form True Grid.Enabled = True cmdFilter.Default = True cmdThoat.Cancel = True End Sub Private Sub cmdFilter_Click() sFilter = "" If txtFilter.Text "" Then Select Case cboFilter.ListIndex Case 0: sFilter = "" Case 1: sFilter = " WHERE MaMH LIKE '%" & txtFilter.Text & "%'" Case 2: sFilter = " WHERE TenMH LIKE '" & txtFilter.Text & "%'" Case 3: sFilter = " WHERE DVT LIKE '%" & txtFilter.Text & "%'" Case 4: sFilter = " WHERE GhiChu LIKE '%" & txtFilter.Text & "%'" End Select End If loadGrid sFilter End Sub Private Sub cmdSave_Click() If txtTen.Text = "" Then MsgBox "Hay nhap ten mat hang", vbOKOnly, "Chu y" Exit Sub End If If txtDVT.Text = "" Then MsgBox "Hay nhap don vi tinh", vbOKOnly, "Chu y" Exit Sub End If If txtGhiChu.Text = "" Then MsgBox "Hay nhap ghi chu", vbOKOnly, "Chu y" Exit Sub End If If bAdd Then Them Else: Sua bStatus = False Reset_Form True Grid.Enabled = True End Sub Private Sub cmdSua_Click() bAdd = False bStatus = True Reset_Form False Grid.Enabled = True cmdSave.Default = True cmdCancel.Cancel = True txtTen.SetFocus End Sub Private Sub cmdThem_Click() bAdd = True bStatus = True Reset_Form True Grid.Enabled = False cmdSave.Default = True cmdCancel.Cancel = True txtTen.SetFocus End Sub Private Sub cmdThoat_Click() Unload Me End Sub Private Sub cmdXoa_Click() Xoa End Sub Private Sub Form_Load() CenterMDI frmmain, Me cboFilter.AddItem "Tất cả", 0 cboFilter.AddItem "Mã mặt hàng", 1 cboFilter.AddItem "Tên mặt hàng", 2 cboFilter.AddItem "Đơn vị tính", 3 cboFilter.AddItem "Ghi chó", 4 cboFilter.ListIndex = 0 txtID.Locked = True bStatus = False Reset_Form True loadGrid End Sub Private Sub loadGrid(Optional sFil As String = "") Grid.clear Grid.FormatString = "STT" & "|Mã mặt hàng " & Space(0) & "|Tên mặt hàng" & Space(26) & "|Đơn vị tính" & Space(0) & "|Ghi chó" & Space(40) Grid.Rows = 1 OpenDB "SELECT *" & _ " FROM MatHang" & sFil Do While Not rs.EOF Grid.AddItem Grid.Rows & vbTab & rs!MaMH & vbTab & rs!TenMH & vbTab & rs!DVT & vbTab & rs!GhiChu, Grid.Rows rs.MoveNext Loop CloseDB If sFil = "" Then cboFilter.ListIndex = 0 End Sub Private Sub Reset_Form(clear As Boolean) If clear Then txtID.Text = "" txtTen.Text = "" txtDVT.Text = "" txtGhiChu.Text = "" End If txtTen.Locked = Not bStatus txtDVT.Locked = Not bStatus txtGhiChu.Locked = Not bStatus cmdThem.Enabled = Not bStatus cmdSua.Enabled = Not bStatus cmdXoa.Enabled = Not bStatus cmdSave.Enabled = bStatus cmdCancel.Enabled = bStatus End Sub Private Sub Grid_SelChange() txtID.Text = Grid.TextMatrix(Grid.Row, 1) txtTen.Text = Grid.TextMatrix(Grid.Row, 2) txtDVT.Text = Grid.TextMatrix(Grid.Row, 3) txtGhiChu.Text = Grid.TextMatrix(Grid.Row, 4) End Sub Private Sub Them() OpenDB "select * from MatHang" txtID.Text = CreateID("MaMH", rs, "MH0001") rs.AddNew rs!MaMH = txtID.Text rs!TenMH = txtTen.Text rs!GhiChu = txtGhiChu.Text rs!DVT = txtDVT.Text rs.Update CloseDB Reset_Form True loadGrid End Sub Private Sub Sua() If txtID.Text = "" Then Exit Sub OpenDB "select * from MatHang where MaMH='" & txtID.Text & "'" 'Update rs!TenMH = txtTen.Text rs!GhiChu = txtGhiChu.Text rs!DVT = txtDVT.Text rs.Update CloseDB Reset_Form True loadGrid sFilter End Sub Private Sub Xoa() If txtID.Text = "" Then Exit Sub If MsgBox("Bạn có muốn xóa mặt hàng có MaMH = " & txtID.Text & " không?.", vbYesNo + vbCritical, "Thông báo!") = vbYes Then OpenDB "select * from MatHang where MaMH='" & txtID.Text & "'" 'Delete rs.Delete CloseDB Reset_Form True loadGrid End If End Sub 5.3 Lập trình form phiếu nhập Đoạn code cho phép cập nhật phiếu nhập. Đáp ứng được yêu cầu cập nhật một phiếu nhập mới hoặc sửa phiếu đã nhập - Với giao diện như sau Code của form phiếu nhập. Dim bStatus As Boolean, bAdd As Boolean Dim sFilter As String Dim rsnv As New ADODB.Recordset Dim rshang As New ADODB.Recordset Dim rs1 As New ADODB.Recordset Private Sub cbo1_Change() If cbo1.Text "" Then OpenDB "select * from MatHang where MaMH='" & cbo1.Text & "'" txttenMH.Text = rs.Fields("TenMH") txtdvt.Text = rs.Fields("DVT") CloseDB End If End Sub Private Sub cbo1_Click() If cbo1.Text "" Then OpenDB "select * from MatHang where MaMH='" & cbo1.Text & "'" txttenMH.Text = rs.Fields("TenMH") txtdvt.Text = rs.Fields("DVT") CloseDB txtnhapyc.SetFocus End If End Sub Private Sub cbo2_change() If cbo2.Text "" Then rs1.Open " SELECT * FROM NhanVien WHERE MaNV='" & cbo2.Text & "' ", cn, adOpenDynamic, adLockOptimistic txttennv.Text = rs1.Fields("TenNV") rs1.Close End If End Sub Private Sub cbo2_Click() If cbo2.Text "" Then rs1.Open " SELECT * FROM NhanVien WHERE MaNV='" & cbo2.Text & "' ", cn, adOpenDynamic, adLockOptimistic txttennv.Text = rs1.Fields("TenNV") rs1.Close End If End Sub Private Sub cmdCancel_Click() bStatus = False Reset_Form True Grid.Enabled = True ' cmdFilter.Default = True cmdThoat.Cancel = True End Sub Private Sub cmdSave_Click() If txtnhapyc.Text = "" Then MsgBox " Bạn cần nhập S/L yêu cầu", vbExclamation, "Chó ý" Exit Sub End If If txtnhaptt.Text = "" Then MsgBox " Bạn cần nhập S/L thực tế", vbExclamation, "Chó ý" Exit Sub End If If txtdongia.Text = "" Then MsgBox " Bạn cần nhập đơn giá", vbExclamation, "Chó ý" Exit Sub End If If txtngaythang.Text = "" Then MsgBox " Bạn cần nhập ngày tháng", vbExclamation, "Chó ý" Exit Sub End If If txttennv.Text = "" Then MsgBox " Bạn cần chọn nhân viên ", vbExclamation, "Chó ý" Exit Sub End If cmdSavehd_Click If bAdd Then Them Else: Sua bStatus = False Reset_Form True ' Tinh tong tien OpenDB "Select sum(ThanhTien) from PNKchitiet where MaPNK='" & txtID.Text & "'" txttongtien.Text = rs.Fields(0) CloseDB ' Update tong tien OpenDB "select * from PhieuNhap where MaPNK='" & txtID.Text & "'" rs!tongtien = txttongtien.Text rs.Update CloseDB Grid.Enabled = True End Sub Private Sub cmdSavehd_Click() If badd1 Then Themhd End If End Sub Private Sub cmdSua_Click() bAdd = False bStatus = True cbo2.Locked = True cbo1.Locked = True txtngaythang.Locked = True txtlido.Locked = True Reset_Form False Grid.Enabled = True cmdSave.Default = True cmdCancel.Cancel = True End Sub Private Sub cmdThem_Click() bAdd = True bStatus = True Reset_Form True cbo1.Locked = False Grid.Enabled = False cmdSave.Default = True cmdCancel.Cancel = True End Sub Private Sub cmdThoat_Click() frmlistphieunhap.Show Unload Me rsnv.Close rshang.Close End Sub Private Sub cmdXoa_Click() Xoa End Sub Private Sub Xoa() If cbo1.Text = "" Then Exit Sub If MsgBox("Xoa mat hang co MaMH = " & cbo1.Text & " khong?.", vbYesNo + vbCritical, "Xac nhan xoa!") = vbYes Then OpenDB "select * from PNKchitiet where MaMH='" & cbo1.Text & "' and MaPNK='" & txtID.Text & "'" 'Delete rs.Delete CloseDB OpenDB "select * from BieuGhi where MaMH='" & cbo1.Text & "' and MaPNK='" & txtID.Text & "'" rs.Delete CloseDB Reset_Form True End If tongtien sFilter = " WHERE MaPNK = '" & txtID.Text & "'" loadGrid sFilter Grid.Refresh End Sub Private Sub Form_Activate() sFilter = " WHERE MaPNK = '" & txtID.Text & "'" loadGrid sFilter End Sub Private Sub Form_Load() 'SetFont Me CenterMDI frmmain, Me If badd1 = True Then OpenDB "select * from PNKchitiet" txtID.Text = CreateID("MaPNK", rs, "PNK0001") CloseDB End If bStatus = False Reset_Form True rsnv.CursorLocation = adUseClient rsnv.Open "Select * from NhanVien", cn, adOpenDynamic, adLockOptimistic rshang.CursorLocation = adUseClient rshang.Open "select * from MatHang", cn, adOpenDynamic, adLockOptimistic gandulieu txttongtien.Locked = True txtthanhtien.Locked = True txtID.Locked = True txttennv.Locked = True txtdvt.Locked = True End Sub Private Sub loadGrid(Optional sFil As String = "") Grid.clear Grid.FormatString = "STT" & "|Mã mặt hàng " & Space(0) & "|Tên mặt hàng" & Space(9) & "|DVT" & Space(2) & "|SL yêu cầu" & Space(1) & "|SL thực tế" & Space(2) & "|Đơn giá" & Space(7) & "|Thành tiền" & Space(15) Grid.Rows = 1 OpenDB "SELECT *" & _ " FROM PNKchitiet" & sFil Do While Not rs.EOF Grid.AddItem Grid.Rows & vbTab & rs!MaMH & vbTab & rs!TenMH & vbTab & rs!DVT & vbTab & rs!SLnhapYC & vbTab & rs!SLnhapTT & vbTab & rs!DonGia & vbTab & rs!ThanhTien, Grid.Rows rs.MoveNext Loop CloseDB End Sub Private Sub Reset_Form(clear As Boolean) If clear Then cbo1.Text = "" txttenMH.Text = "" txtdvt.Text = "" txtnhapyc.Text = "" txtnhaptt.Text = "" txtdongia.Text = "" txtthanhtien.Text = "" End If txttenMH.Locked = Not bStatus txtdvt.Locked = Not bStatus txtnhapyc.Locked = Not bStatus txtnhaptt.Locked = Not bStatus txtdongia.Locked = Not bStatus txtthanhtien.Locked = Not bStatus cmdThem.Enabled = Not bStatus cmdSua.Enabled = Not bStatus cmdXoa.Enabled = Not bStatus cmdSave.Enabled = bStatus cmdCancel.Enabled = bStatus End Sub Private Sub Grid_SelChange() cbo1.Text = Grid.TextMatrix(Grid.Row, 1) txttenMH.Text = Grid.TextMatrix(Grid.Row, 2) txtdvt.Text = Grid.TextMatrix(Grid.Row, 3) txtnhapyc.Text = Grid.TextMatrix(Grid.Row, 4) txtnhaptt.Text = Grid.TextMatrix(Grid.Row, 5) txtdongia.Text = Grid.TextMatrix(Grid.Row, 6) txtthanhtien.Text = Grid.TextMatrix(Grid.Row, 7) End Sub Private Sub Themhd() OpenDB "select * from PhieuNhap" Do While Not rs.EOF If rs!MaPNK = txtID.Text Then Exit Sub End If rs.MoveNext Loop rs.AddNew rs!MaPNK = txtID.Text rs!Ngaythang = txtngaythang.Text rs!LiDoNhap = txtlido.Text rs!MaNV = cbo2.Text ' rs!TongTien = txttongtien.Text rs.Update CloseDB 'Reset_Form True 'loadGrid End Sub Private Sub Them() OpenDB "select * from PNKchitiet where MaPNK='" & txtID.Text & "'" Do While Not rs.EOF If rs!MaMH = cbo1.Text Then rs!SLnhapYC = rs.Fields(4).Value + txtnhapyc.Text rs!SLnhapTT = rs.Fields(5).Value + txtnhaptt.Text rs!ThanhTien = rs.Fields(7).Value + txtthanhtien.Text rs.Update CloseDB ' Cap nhat vao bieu ghi OpenDB "select * from BieuGhi where MaPNK='" & txtID.Text & "' and MaMH='" & cbo1.Text & "'" rs!SLnhapTT = rs.Fields(7).Value + txtnhaptt.Text rs!ThanhTien = rs.Fields(9).Value + txtthanhtien.Text rs.Update CloseDB Reset_Form True sFilter = " WHERE MaPNK = '" & txtID.Text & "'" loadGrid sFilter Exit Sub End If rs.MoveNext Loop rs.AddNew rs!MaPNK = txtID.Text rs!MaMH = cbo1.Text rs!TenMH = txttenMH.Text rs!DVT = txtdvt.Text rs!SLnhapYC = txtnhapyc.Text rs!SLnhapTT = txtnhaptt.Text rs!DonGia = txtdongia.Text rs!ThanhTien = txtthanhtien.Text rs.Update CloseDB ' update vao truong ban ghi OpenDB " select * from BieuGhi " rs.AddNew rs!Nghiepvu = "NK" rs!MaPNK = txtID.Text 'rs!MaPXK = "0" rs!Ngaythang = txtngaythang.Text rs!MaMH = cbo1.Text rs!TenMH = txttenMH.Text rs!SLnhapTT = txtnhaptt.Text rs!ThanhTien = txtthanhtien.Text rs.Update CloseDB Reset_Form True sFilter = " WHERE MaPNK = '" & txtID.Text & "'" loadGrid sFilter End Sub Private Sub Sua() If cbo1.Text = "" Then Exit Sub OpenDB "select * from PNKchitiet where MaMH='" & cbo1.Text & "'" 'Update rs!MaMH = cbo1.Text rs!TenMH = txttenMH.Text rs!DVT = txtdvt.Text rs!SLnhapYC = txtnhapyc.Text rs!SLnhapTT = txtnhaptt.Text rs!DonGia = txtdongia.Text rs!ThanhTien = txtthanhtien.Text rs.Update CloseDB ' update vao bieu ghi OpenDB "select * from BieuGhi where MaPNK='" & txtID.Text & "' and MaMH='" & cbo1.Text & "'" rs!SLnhapTT = txtnhaptt.Text rs!ThanhTien = txtthanhtien.Text rs.Update CloseDB Reset_Form True sFilter = " WHERE MaPNK = '" & txtID.Text & "'" loadGrid sFilter End Sub Private Sub tongtien() ' Tinh tong tien OpenDB "Select sum(ThanhTien) from PNKchitiet where MaPNK = '" & txtID.Text & "' " 'If rs.EOF = rs.BOF Then 'txttongtien.Text = "0" 'CloseDB 'Else txttongtien.Text = rs.Fields(0) CloseDB ' End If ' Update tong tien OpenDB "select * from PhieuNhap where MaPNK='" & txtID.Text & "'" rs!tongtien = txttongtien.Text rs.Update CloseDB End Sub Private Sub gandulieu() 'Gan du lieu cho dcbMahang With rshang .MoveFirst Do While Not (.EOF Or .BOF) cbo1.AddItem (.Fields(0).Value) .MoveNext Loop End With ' Gan du lieu cho dcbManv With rsnv .MoveFirst Do While Not (.EOF Or .BOF) cbo2.AddItem (.Fields(0).Value) .MoveNext Loop End With End Sub Private Sub txtdongia_Change() If txtdongia.Text = "" Or txtnhaptt.Text = "" Then txtthanhtien.Text = "" Exit Sub Else txtthanhtien.Text = txtdongia.Text * txtnhaptt.Text End If End Sub Private Sub txtdongia_KeyPress(KeyAscii As Integer) Dim Tmp As String Tmp = txtdongia.Text Select Case Chr$(KeyAscii) Case "0" To "9", Chr$(8) Case "-" If InStr(1, Tmp, "-") = 0 Then If txtdongia.SelStart > 0 Then KeyAscii = 0 End If Else KeyAscii = 0 End If Case "." If InStr(1, Tmp, ".") > 0 Then KeyAscii = 0 End If Case Else KeyAscii = 0 End Select End Sub Private Sub txtnhaptt_Change() If txtdongia.Text = "" Or txtnhaptt.Text = "" Then txtthanhtien.Text = "" Exit Sub Else txtthanhtien.Text = txtdongia.Text * txtnhaptt.Text End If End Sub Private Sub txtnhaptt_KeyPress(KeyAscii As Integer) Dim Tmp As String Tmp = txtnhaptt.Text Select Case Chr$(KeyAscii) Case "0" To "9", Chr$(8) Case "-" If InStr(1, Tmp, "-") = 0 Then If txtnhaptt.SelStart > 0 Then KeyAscii = 0 End If Else KeyAscii = 0 End If Case "." If InStr(1, Tmp, ".") > 0 Then KeyAscii = 0 End If Case Else KeyAscii = 0 End Select End Sub Private Sub txtnhapyc_KeyPress(KeyAscii As Integer) Dim Tmp As String Tmp = txtnhapyc.Text Select Case Chr$(KeyAscii) Case "0" To "9", Chr$(8) Case "-" If InStr(1, Tmp, "-") = 0 Then If txtnhapyc.SelStart > 0 Then KeyAscii = 0 End If Else KeyAscii = 0 End If Case "." If InStr(1, Tmp, ".") > 0 Then KeyAscii = 0 End If Case Else KeyAscii = 0 End Select End Sub Private Sub txtngaythang_Validate(Cancel As Boolean) Dim d As Variant d = txtngaythang.Text If Not IsDate(d) Then MsgBox "Bạn phải nhập vào ngày hợp lệ" & _ " (vd: 05/06/2009) ", vbCritical, " Nhập ngày hoá đơn" Cancel = True Exit Sub txtngaythang.SetFocus End If End Sub 5.4 Lập trình xuất báo cáo - Giao diện form báo cáo. - Code form báo cáo Dim rsmpnk As New ADODB.Recordset Dim rsmh As New ADODB.Recordset Dim rs1 As New ADODB.Recordset 'Dim rs2 As New ADODB.Recordset Private Sub cbo1_Change() If cbo1.Text "" Then OpenDB "select * from MatHang where MaMH='" & cbo1.Text & "'" txttenmh.Text = rs.Fields("TenMH") CloseDB End If End Sub Private Sub cbo1_Click() If cbo1.Text "" Then OpenDB "select * from MatHang where MaMH='" & cbo1.Text & "'" txttenmh.Text = rs.Fields("TenMH") Text11.Text = rs.Fields("MaMH") CloseDB End If End Sub. Private Sub cbo2_Click() If cbo2.Text "" Then OpenDB "select * from PhieuNhap where MaPNK='" & cbo2.Text & "'" Text12.Text = rs.Fields("MaPNK") CloseDB End If End Sub Private Sub cbo2_change() If cbo2.Text "" Then OpenDB "select * from PhieuNhap where MaPNK='" & cbo2.Text & "'" Text12.Text = rs.Fields("MaPNK") CloseDB End If End Sub Private Sub cmdin_click() Dim rs2 As New ADODB.Recordset If (opt1.Value = False) And (opt2.Value = False) Then MsgBox "Hãy chọn kiểu báo cao", vbOKOnly, "Chu Y" Exit Sub End If If (opt2.Value = True) And (opt1.Value = False) Then If (txttungay.Text = "") Or (txtdenngay.Text = "") Then MsgBox "Hay chon ngay thang", vbOKOnly, "Chu y" Exit Sub End If If cbo1.Text = "" Then MsgBox "Hay chon mat hang", vbOKOnly, "Chu y" Exit Sub End If If (DateValue(txttungay.Text) > DateValue(txtdenngay.Text)) Then MsgBox "Bạn chọn khoảng thời gian không chính xác ", vbOKOnly, "Thông báo!" Exit Sub End If rs2.Open "select Ngaythang,MaPNK,SLNhapTT,MaMH From BieuGhi where Nghiepvu = 'NK' and MaMH= '" & Text11.Text & "' and Ngaythang between Datevalue('" & txttungay.Text & "') and Datevalue('" & txtdenngay.Text & "')", cn, adOpenDynamic, adLockOptimistic cr.ReportFileName = App.Path & "\Report\rp_bcnk1.rpt" cr.SetTablePrivateData 0, 3, rs2 cr.Formulas(1) = "txttungay= '" & txttungay.Text & "'" cr.Formulas(2) = "txtdenngay= '" & txtdenngay.Text & "'" cr.Formulas(3) = "mamh= '" & cbo1.Text & "'" cr.Formulas(4) = "tenmh= '" & txttenmh.Text & "'" cr.WindowState = crptMaximized cr.PrintReport rs2.Close cbo1.Text = "" txttenmh.Text = "" End If If (opt1.Value = True) And (opt2.Value = False) Then If (DateValue(txttungay.Text) > DateValue(txtdenngay.Text)) Then MsgBox "Bạn chọn khoảng thời gian không chính xác ", vbOKOnly, "Thông báo!" Exit Sub End If If (txttungay.Text = "") Or (txtdenngay.Text = "") Then MsgBox "Hay chon ngay thang", vbOKOnly, "Chu y" Else Dim strSQL As String 'Dim rs1 As New ADODB.Recordset strSQL = " select Ngaythang,MaPNK,MaMH,TenMH,SLNhapTT From BieuGhi where Nghiepvu = 'NK' and Ngaythang between Datevalue('" & txttungay.Text & "') and Datevalue('" & txtdenngay.Text & "')" rs1.Open strSQL, cn, adOpenDynamic, adLockOptimistic cr1.ReportFileName = App.Path & "\Report\rp_bcnk.rpt" cr1.SetTablePrivateData 0, 3, rs1 cr1.Formulas(1) = "txttungay= '" & txttungay.Text & "'" cr1.Formulas(2) = "txtdenngay= '" & txtdenngay.Text & "'" cr1.WindowState = crptMaximized cr1.PrintReport rs1.Close End If End If End Sub Private Sub Form_Load() Calendar1.Value = Date Calendar2.Value = Date rsmh.CursorLocation = adUseClient rsmh.Open "select * from MatHang", cn, adOpenDynamic, adLockOptimistic gandulieu Label1.Visible = False Label2.Visible = False cbo1.Visible = False txttenmh.Visible = False End Sub Private Sub gandulieu() 'Gan du lieu cho dcbMahang With rsmh .MoveFirst Do While Not (.EOF Or .BOF) cbo1.AddItem (.Fields(0).Value) .MoveNext Loop End With End Sub Private Sub Form_Unload(Cancel As Integer) Unload Me rsmh.Close End Sub Private Sub Image1_Click(Index As Integer) Set cboOriginator = txttungay Calendar1.Visible = True Calendar1.SetFocus If Not IsNull(cboOriginator) Then Calendar1.Value = cboOriginator.Text Else Calendar1.Value = Date End If End Sub Private Sub Image2_Click(Index As Integer) Set cboOriginator = txtdenngay Calendar2.Visible = True Calendar2.SetFocus If Not IsNull(cboOriginator) Then Calendar2.Value = cboOriginator.Text Else Calendar2.Value = Date End If End Sub Private Sub Calendar1_Click() txttungay.Text = Format(Calendar1.Value, "dd/mm/yyyy") Calendar1.Visible = False End Sub Private Sub Calendar2_Click() txtdenngay.Text = Format(Calendar2.Value, "dd/mm/yyyy") Calendar2.Visible = False End Sub Private Sub opt2_Click() If opt2.Value = True Then Label1.Visible = True Label2.Visible = True cbo1.Visible = True txttenmh.Visible = True End If End Sub Private Sub opt1_Click() If opt1.Value = True Then Label1.Visible = False Label2.Visible = False cbo1.Visible = False txttenmh.Visible = False End If End Sub 6. Quy trình Test 6.1 Lập kế hoạch Test STT Công việc Nhân lực (Người) Thời gian (ngày) Người/ngày 1 Lập kịch bản Test 1 2 2 2 Thực hiện Test 2 4 8 3 Báo cáo quy trình 1 1 1 6.2 Lập kịch bản Test Kịch bản Mục đích Test - case 1 Kiểm tra tính bảo mật của hệ thống Test - case 2 Kiểm tra chức năng Quản lý User Tạo User mới Thay đổi tài khoản Test - case 3 Kiểm tra chức năng cập nhật danh mục Thêm, sửa, xoá, duyệt các bản ghi Chức năng tìm kiếm để sửa chữa Chức năng hiện dữ liệu trên đường lưới Test - case 4 Kiểm tra chức năng Danh sách phiếu nhập Test - case 5 Kiểm tra chức năng Danh sách phiếu xuất Test - case 6 Kiểm tra chức năng tạo báo cáo đa năng Tạo báo cáo theo ý người dùng - Lựa chọn trường lọc báo cáo Test - case 7 Kiểm tra chức năng trợ giúp – hướng dẫn sử dụng 6.3 Nội dung Test 6.3.1 Test - case 1 Kiểm tra tính bảo mật hệ thống Mục đích: Kiểm tra tính bảo mật hệ thống Các bước tiến hành: Bước 1: Khởi động chương trình và màn hình hỏi mật khẩu hiện ra. Bước 2: Nhập không chính xác tên đăng nhập và mật khẩu. Bước 3: Dữ liệu Demo có tên đăng nhập tuananh pass 1. Quyền admin Bước 4: Đăng nhập lại với tên đăng nhập tuananh pass 123. Quyền admin Kết quả dự kiến : Tính bảo mật tốt Kết quả thực tế: Tính bảo mật tốt Bước 1: Khởi động chương trình và màn hình hỏi mật khẩu hiện ra.Nhập mật khảu sai và hiện ra thông báo Bước2: Đăng nhập với user và mật khẩu chính xác 6.3.2 Test - case 2 Kiểm tra chức năng Quản lý User Mục đích: Kiểm tra chức năng Quản lý User Các bước thực hiện Bước 1: Tạo user mới Bước 2: Thay đổi mật khẩu Bước 3: Xem danh mục User Kết quả dự kiến : Các chức năng hoạt động tốt Kết quả thực tế: Các chức năng hoạt động tốt Bước 1 tạo tài khoản mới “NEU” với quyền quản trị. Bước 2: Thay đổi mật khẩu cho tài khoản NEU Xác nhận thay đổi mật khẩu: 6.3.3 Test - case 3 Kiểm tra chức năng cập nhật danh mục Mục đích : Kiểm tra chức năng cập nhật danh mục Bước 1: Thêm mới một danh mục Bước 2: Sửa một danh mục Bước 3: Xoá một danh mục Bước 4: Tìm kiếm để sửa một danh mục Kết quả dự kiến : Các chức năng hoạt động tốt Kết quả thực tế: Các chức năng hoạt động tố Bước 1: Thêm mới một danh mục Nhấn vào nút thêm Cập nhật xong ấn nút lưu Cập nhất thông tin mặt hàng Bước 2: Sửa một danh mục Bước 3: Xoá một danh mục Nút xóa mặt hàng - Hiện thị thông báo cú xóa mặt hàng không Bước 4: Tìm kiếm một danh mục - Chọn kiểu tìm kiếm: -Gừ kí tự cần tìm: 6.3.4 Test - case 4 Kiểm tra danh sách phiếu nhập 6.3.5 Test - case 5 Kiểm tra danh sách phiếu xuất 6.3.6 Test - case 6 Kiểm tra tạo báo cáo Bước 1: Chọn các tham số báo cáo Kết quả in báo cáo: 6.3.7 Test - case 7 Kiểm tra trợ giúp 6.4 Tổng kết quy trình Test Sau khi hoàn thành các kịch bản Test, chương trình đã chạy theo đúng yêu cầu đặt ra. Có thể chuyển sang công đoạn tiếp theo. 7.Quy trình triển khai 7.1 Lập kế hoạch STT Công việc Nhân lực (Người) Thời gian (ngày) Người/ngày 1 Lập giải pháp 1 1 1 2 Cài đặt và vận hành 1 1 1 3 Đào tạo sử dụng 1 4 3 4 Báo cáo triển khai 1 1 1 7.2 Lập giải pháp Phần mềm được viết bằng ngôn ngữ Visual Basic sẽ được đóng gói ra file *.exe để chạy. Phần mềm được đóng gói sẽ gồm 1 đĩa CD bao gồm code và các file để chạy chương trình. Công ty MDF Gia Lai sẽ cho người hướng dẫn nhõn viên phòng quản lý kho cài đặt phần mềm cũng như đào tạo người sử dụng. Sau khi cài đặt, phần mềm sẽ được bảo trì miễn phí cũng như sửa chữa phần mềm nếu có sự cố xảy ra cho công ty trong vũng 6 tháng tiếp theo. 7.3 Cài đặt và vận hành + Địa điểm: Phòng Quản lý kho công ty MDF Gia Lai + Thời gian cài đặt: 9h ngày 15/11/2009 + Số máy được cài: 1 máy. 7.4 Đào tạo sử dụng 7.4.1 Cung cấp sách hướng dẫn sử dụng: Hướng dẫn sử dụng: Phần mềm bao gồm các chức năng: + Đăng nhập hệ thống: Để vào được phần mềm, người dung cần đăng ký tài khoản và mật khẩu. + Chỉ người quản lý mới có quyền tạo thay đổi lưu xoá danh mục tài khoản và mật khẩu của người dùng. + Sau khi đăng nhập, nhõn viên kho có thể cập nhật, sửa, lưu, thay đổi, và xoá các danh mục trong các phõn hệ của chương trình. + Nhõn viên quản lý kho có thể lên báo cáo nhờ sự hỗ trợ của phần mềm để báo cáo với cấp trên. 7.4.2 Đào tạo người sử dụng: + Sáng 20/11/2009 đào tạo cán bộ kỹ thuật cách cài đặt và xử lý những lỗi nhỏ có thể phát sinh. Sau đó sẽ đào tạo cán bộ quản lý về cách kiểm soát, quản trị và sử dụng phần mềm. + Chiều 20/11/2009 sẽ đào tạo nhõn viên phòng quản lý kho với các chức năng. 7.5 Báo cáo triển khai Phần mềm được cài đặt tại công ty đã chạy tốt. Người sử dụng đã nắm được cách sử dụng phần mềm. Cán bộ triển khai và đại diện công ty ký kết biên bản triển khai với các nội dung sau đõy: CỘNG HOÀ XÃ HỘI CHỦ NGHĨA VIỆT NAM Độc lập - Tự do - Hạnh phúc Hà Nội, ngày 15/11/2009 BIÊN BẢN TRIỂN KHAI Chi nhánh công ty ván gỗ ép MDF Gia Lai (gọi tắt là “Bên A”) Địa chỉ : 32 – Đại Từ - Đại Kim – Hà Nội Điện thoại : 04.35400826 Người đại diện : Đinh Ngọc Xuân Chức vụ : Giám đốc chi nhánh Nhóm 3 Tin học 48 ( gọi tắt là “Bên B” ) Địa chỉ : 207 Giải Phóng - Hai Bà Trưng - Hà Nội Người đại diện : Đinh Gia Cương Chức vụ : Cán bộ triển khai Trong ngày15/11/2009, tôi (Bên B ) là cán bộ triển khai của nhóm 3 lớp tin học kinh tế 48, được cử xuống chi nhánh công ty ván gỗ MDF Gia Lai tiến hành cài đặt và chạy thử phần mềm. Sau khi phần mềm đã chạy ổn định, chúng tôi tiến hành bàn giao phần mềm cho công ty (Bên A ) bao gồm 01 đĩa CD. Ngày 15/11/2009, chúng tôi tiến hành đào tạo cho nhõn viên của công ty về cách cài đặt cũng như cách sử dụng phần mềm. Cả 2 bên đều đồng ý đã hoàn thành quá trình triển khai đúng tiến độ của dự án như đã thoả thuận trong hợp đồng. Đại diện bên A Đại diện bên B CỘNG HOÀ XÃ HỘI CHỦ NGHĨA VIỆT NAM Độc lập - Tự do - Hạnh phúc Hà Nội, ngày 20/11/2009 BIÊN BẢN THANH LÝ HỢP ĐỒNG PHẦN MỀM I. Chi nhánh công ty ván gỗ ép MDF GiaLai ( Gọi tắt là “Bờn A” ) Địa chỉ : 32 – Đại Từ - Đại Kim – Hà Nội Điện thoại : 04.35400826 Fax : 04.35400826 Người đại diện : Đinh Ngọc Xuân Chức vụ : Giám đốc chi nhánh II. Nhóm3 Tin học kinh tế 48 (Gọi tắt là “Bờn B”) Địa chỉ : 207 Giải Phóng - Hai Bà Trưng - Hà Nội Điện thoại : 04 36616186 Fax : 04 36616186 Người đại diện : Thiều Quang Huy Chức vụ : Quản trị viên Hôm nay, ngày 20/11/2009 chúng tôi gồm Thiều Quang Huy(đại diện bên B) và Đinh Ngọc Xuân (đại diện bên A ). Thống nhất các điều khoản sau: 1. Phần mềm do bên B cài đặt và bàn giao ngày 15.11.2009 sau 1,5 tháng đã hoạt động ổn định đúng cam kết trong hợp đồng. 2. Hai bên thoả thuận thanh lý hợp đồng. Bên B vẫn sẽ chịu trách nhiệm bảo hành phần mềm trong vòng 1 năm tớnh từ ngày 20.11.2008. 3. Biên bản thanh lý hợp đồng sẽ được in ra làm 2 bản, mỗi bên giữ một bản. Đại diện bên A Đại diện bên B

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

  • docdoko_vn_bai_tap_nhom_xay_dung_phan_me_6656.doc