Chuyên đề Phân tích thiết kế hệ thống thông tin quản lý vật tư tại Nhà máy Thuỷ điện Hoà Bình

Với các tài liệu tham khảo thu thập được trong quá trình học tập và thực tập thực tế, em đã đưa ra các dữ liệu đầu vào của chương trình, các kết quả đầu ra của chương trình để phục vụ quá trình quản lý, chương trình giúp người sử dụng kết xuất được các thông tin đầu ra thông qua các báo cáo. Chương trình đã thực hiện được các công viêc sau: Cập nhật dữ liệu Cập nhật dữ liệu về vật tư. Cập nhật dữ liệu về nhóm vật tư. Cập nhật dữ liệu về nhà cung cấp. Cập nhật dữ liệu về bộ phận sử dụng(công trình). Tìm kiếm Tìm kiếm thông tin theo nhà cung cấp. Tìm kiếm thông tin theo BPSD. Tìm kiếm thông tin về vật tư theo mã vật tư. Báo cáo Báo cáo nhập – xuất – tồn.

doc136 trang | Chia sẻ: aloso | Lượt xem: 1530 | Lượt tải: 0download
Bạn đang xem trước 20 trang tài liệu Chuyên đề Phân tích thiết kế hệ thống thông tin quản lý vật tư tại Nhà máy Thuỷ điện Hoà Bình, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
ông việc đang nghiên cứu, những người sử dụng hệ thống hiện tại và xem xét các tài liệu sử dụng thường xuyên trong lĩnh vực nghiên cứu. + Xác định kiểu thực thể: Để có được kiểu thực thể người phân tích phải chuẩn hoá nhằm mục đích: - Tối thiểu việc lặp lại. - Tránh dư thừa thông tin. + Xác định các quan hệ: Thiết lập mối liên hệ tự nhiên giữa các thực thể và liên kết này phải ở dạng quan hệ một - nhiều. e. Quá trình chuẩn hoá mô hình dữ liệu. Chuẩn hoá là việc chuyển đổi tập hợp dữ liệu được lưu trữ sang cấu trúc dữ liệu nhỏ hơn, đơn giản và ổn định hơn. Cấu trúc dữ liệu được chuẩn hoá cũng thuận lợi hơn trong việc bảo quản. Một số quy tắc về chuẩn hoá: + Chuẩn hoá mức 1 (1.NF) Chuẩn hoá mức 1 quy định rằng, trong mỗi danh sách không được chứa các thuộc tính lặp. Nếu có các thuộc tính lặp thì phải tách các thuộc tính đó thành các danh sách con, có ý nghĩa dưới góc độ quản lý. + Chuẩn hoá mức 2 (2.NF) Chuẩn hoá mức 2 quy định rằng, trong một danh sách mỗi thuộc tính không phải khoá phải phụ thuộc hàm hoàn toàn vào toàn bộ khoá chứ không chỉ phụ thuộc vào một phần của khoá. Nếu có sự phụ thuộc như vậy thì phải tách những những thuộc tính phụ thuộc hàm vào bộ phận của khoá thành một danh sách con mới. + Chuẩn hoá mức 3 (3.NF): Chuẩn hoá mức 3 quy định rằng, trong một danh sách không được phép có sự phụ thuộc bắc cầu giữa các thuộc tính. Nếu thuộc tính này phụ thuộc hàm vào thuộc tính kia thì phải tách chúng ta thành các thuộc tính khác nhau có quan hệ với nhau. 2.4. Mô hình quan hệ Mô hình quan hệ là danh sách tất cả các thuộc tính thích hợp cho từng thực thể của mỗi mô hình dữ liệu. Mục đích xây dựng mô hình quan hệ: Nhằm kiểm tra, cải tiến, mở rộng và tối ưu hoá mô hình dữ liệu đã xây dựng. Các bước xây dựng mô hình quan hệ: - Xác định tất cả các thuộc tính cần dùng tới trong hệ thống định xây dựng. - Xác định kiểu thực thể để đặt từng thuộc tính nhằm giảm thiểu việc sao chép và tránh dư thừa. Với các thuộc tính, kiểu thực thể và quan hệ đã biết có thể xây dựng một sơ đồ trực giác mô hình quan hệ. Khi đó ta có thể so sánh các mô hình và trích ra được từ việc so sánh đó một mô hình duy nhất có chứa đặc trưng tốt nhất của cả hai. CáC GIAI ĐOạN PHáT TRIểN Hệ THốNG THÔNG TIN Một hệ thống thông tin dù lớn hay nhỏ thì quá trình phát triển của nó cũng phải qua các công đoạn cụ thể nhất định. Đó chính là các bước các công việc phải làm trong quá trình phát triển một hệ thống thông tin. Sản phẩm của công đoạn trước chính là đầu vào của công đoạn sau, vì thế nếu có sự cố xảy ra ở giai đoạn nào thì cũng làm ảnh hưởng đến toàn bộ dự án và nó làm chậm dự án. Phát triển một hệ thống thông tin gồm 7 giai đoạn: - Đánh giá yêu cầu - Phân tích chi tiết - Thiết kế logic - Đề xuất các phương án của giải pháp - Thiết kế vật lý ngoài - Triển khai kỹ thuật hệ thống - Cài đặt và khai thác 3.1. Giai đoạn đánh giá yêu cầu. Giai đoạn đánh giá yêu cầu nhằm cung cấp cho lãnh đạo có được những thông tin đầy đủ chính xác để ra quyết định về thời cơ, tính khả thi và hiệu quả của một dự án. Khả thi ở đây ngoài tính khả thi về mặt kỹ thuật còn là tính khả thi về mặt tài chính. Đối với một dự án phát triển hệ thống thông tin rất tốn kém về nhân lực, tiền bạc, thời gian và chất xám. Vì thế giai đoạn đánh giá yêu cầu nó quyết định xem dự án có được tiếp tục hay là bị huỷ bỏ. Đánh giá đúng yêu cầu cũng là yếu tố quyết định đến sự thành công của dự án. Bất cứ một sự sai lầm nào dù lớn dù nhỏ thì cũng đều gây nên những tổn thất khôn lường cho công ty. Đánh giá yêu cầu được bắt đầu từ việc nêu ra các yêu cầu của khách hàng, từ đó xác định được quy mô của dự án, xác định những thay đổi có thể có trong tương lai, xác định xem dự án chịu tác động của những yếu tố nào. Để từ đó có thể đưa ra được những thông tin hỗ trợ cho người ra quyết định. Tuy vậy giai đoạn này phải tiến hành tương đối nhanh, tránh gây tốn kém về nhân lực và tiền của. Giai đoạn này bao gồm các công đoạn sau: - Lập kế hoạch đánh giá yêu cầu: Nó bao gồm các công việc xác định xem giai đoạn này cần phải tìm hiểu những gì từ hệ thống, cần phải thực hiện những công việc gì, thời gian thực hiện. - Làm rõ yêu cầu: Phân tích viên phải xác định được chính xác yêu cầu của khách hàng, cũng như yêu cầu của hệ thống, môi trường của hệ thống những ràng buộc của hệ thống. - Đánh giá tính khả thi: Xác định những yếu tố gây trở ngại cho hệ thống, đánh giá tính khả thi của hệ thống về mặt kỹ thuật, tổ chức, tài chính, thời gian. - Chuẩn bị và trình bày báo cáo đánh giá yêu cầu. 3.2. Giai đoạn phân tích chi tiết Mục đích chính của giai đoạn phân tích chi tiết là đưa ra được chuẩn đoán chi tiết về hệ thống đang tồn tại nghĩa là xác định được những vấn đề chính cũng như các nguyên nhân chính của chúng, xác định được mục tiêu cần đạt được của hệ thống mới và đề ra được các yếu tố giải pháp cho phép đạt được mục tiêu trên. Giai đoạn này gồm các công đoạn sau: - Lập kế hoạch nghiên cứu chi tiết: Người chịu trách nhiệm của giai đoạn này phải lập kế hoạch về các nhiệm vụ phải thực hiện. - Nghiên cứu môi trường hệ thống đang tồn tại: Khi đưa ra chuẩn đoán về hệ thống hiện thời, phân tích viên phải cố gắng để có được sự hiểu biết sâu sắc về môi trường hệ thống nghiên cứu để đánh giá mức độ phù hợp giữa các đặc trưng hệ thống với các ràng buộc của môi trường. - Nghiên cứu hệ thống hiện tại: Cho biết lý do tồn tại của hệ thống; các mối liên hệ của nó với các hệ thống khác trong tổ chức; những người sử dụng; các bộ phận cấu thành; các phương thức xử lý; thông tin mà nó sản sinh ra; những dữ liệu mà nó thu nhận; khối lượng dữ liệu mà nó xử lý; giá cả gắn liền với thu thập, xử lý và phân phát thông tin, hiệu quả xử lý dữ liệu... - Chuẩn đoán và xác định yếu tố giải quyết vấn đề: Nhiệm vụ của công đoạn này là đưa ra chẩn đoán, xác định các mục tiêu mà hệ thống được sửa chữa hoặc hệ thống mới cần phải đạt được và xác định các yếu tố của giải pháp. - Đánh giá lại tính khả thi: Được thực hiện bằng việc so sánh những thông tin mà thu thập được từ những công đoạn trước với những ràng buộc về tổ chức, kỹ thuật, tài chính và thời hạn đã được xác định trước đây. - Sửa đổi đề xuất của dự án. - Chuẩn bị và trình bày báo cáo phân tích chi tiết. 3.3. Giai đoạn thiết kế logic Mục đích của giai đoạn này là xác định một cách chi tiết và chính xác những cái gì mà hệ thống mới phải làm để đạt được những mục tiêu đã được thiết lập từ giai đoạn phân tích chi tiết. Sản phẩm đưa ra của giai đoạn thiết kế logic là các sơ đồ luồng dữ liệu DFD, các sơ đồ cấu trúc dữ liệu DSD, các sơ đồ phân tích tra cứu và các phích logic của từ điển hệ thống. Các công đoạn chính của giai đoạn này bao gồm các bước sau - Thiết kế cơ sở dữ liệu. - Thiết kế xử lý. - Thiết kế các luồng dữ liệu vào. - Chỉnh sửa tài liệu cho mức logic. - Hợp thức hoá mô hình logic. Thiết kế cơ sở dữ liệu là xác định yêu cầu thông tin của người sử dụng hệ thống, đây là công việc tương đối phức tạp. Phân tích viên ngoài việc gặp gỡ những người sử dụng và hỏi họ danh sách dữ liệu mà họ cần để hoàn thành có hiệu quả công việc đang làm. Tuy nhiên công việc hỏi như vậy thường gặp khó khăn. Để công việc được diễn ra một cách thuận lợi thì phân tích viên buộc phải nghiên cứu kỹ lưỡng cơ sở dữ liệu của hệ thống. Tuỳ theo yêu cầu của công việc và từng tình huống cụ thể phân tích viên có những phương pháp thu thập dữ liệu cho phù hợp. Tuy nhiên, phân tích viên có thể áp dụng một trong các phương pháp sau: - Thiết kế cơ sở dữ liệu logic đi từ các thông tin ra. - Thiết kế cơ sở dữ liệu bằng phương pháp mô hình hoá. 3.4. Đề xuất các phương án của giải pháp ở giai đoạn này, nhóm phân tích viên đã xác định về mặt logic những đầu vào, những xử lý, những tệp CSDL và những đầu ra cho phép giải quyết tốt hơn những vấn đề của hệ thống thông tin hiện có và đạt được những mục tiêu đề ra của người sử dụng. Tuy nhiên những khía cạnh như: Ai chịu trách nhiệm nhập dữ liệu? Cách thức xử lý nào được sử dụng cho mỗi xử lý? Phương tiện xử lý nào được dùng? ....chưa được làm sáng tỏ. Chính vì vậy mục đích của giai đoạn này là thiết lập các phác họa cho mô hình vật lý, đánh giá chi phí lợi ích cho các phác họa, xác định khả năng đạt mục tiêu cũng như sự tác động của chúng và lĩnh vực tổ chức, nhân sự đang làm việc tại hệ thống và đưa ra những khuyến nghị cho lãnh đạo những phương án hứa hẹn nhất. Các công đoạn chính của giai đoạn này là: - Xác định các ràng buộc tin học và ràng buộc về tổ chức. - Xây dựng các phương án giải pháp. - Đánh giá các phương án của giải pháp. - Chuẩn bị và trình bày báo cáo. Đánh giá phương án của giải pháp là một công việc quan trọng nhất của giai đoạn này. Thực chất của hoạt động này là phân tích chi phí lợi ích, phân tích đa tiêu chuẩn. Ngoài ra phân tích viên còn có thể trình bày thêm các phương pháp phân tích khác như phương pháp chuyên gia, phương pháp so sánh. Đối với hệ thống thông tin của các doanh nghiệp cần đặc biệt nhấn mạnh hiệu quả kinh tế. Sự thuyết phục về mặt tài chính và tính khả thi tài chính của dự án quyết định xem dự án có tiếp tục được đi tiếp không hay là sẽ được thay đổi theo phương pháp khác. 3.5. Thiết kế vật lý ngoài Giai đoạn này ngoài mô tả chi tiết phương án của giải pháp đã được chọn ở giai đoạn trước. Đây là giai đoạn rất quan trọng, vì những mô tả chính xác ở đây có ảnh hưởng và tác động trực tiếp tới công việc thường ngày của người sử dụng, mỗi lỗi của thiết kế vật lý như biểu khó đọc, một hội thoại không dứt khoát....sẽ là nguyên nhân gây nên một trong những thất bại của hệ thống. Sản phẩm của giai đoạn này là một tài liệu bao chứa tất cả đặc trưng của hệ thống mới sẽ cần cho việc thực hiện kỹ thuật, tài liệu dành cho người sử dụng và nó mô tả cả phần thủ công và cả những giao diện với những phần tin học hoá. Các công đoạn chính của giai đoạn này: - Lập kế hoạch thiết kế vật lý ngoài. - Thiết kế chi tiết các giao diện (vào/ra). - Thiết kế các cách thứ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. 3.6. Triển khai kỹ thuật hệ thống Nhiệm vụ của giai đoạn này đư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 vật lý CSDL, cách thức truy nhập tới bản ghi của các tệp và những chương trình khác cấu thành nên hệ thống. Mục tiêu chính của giai đoạn này là xây dựng hệ thống hoạt động tốt. Kết quả của giai đoạn này là phần mềm tin học hoá, hoàn thành tài liệu hệ thống và tài liệu hướng dẫn người sử dụng. Những công đoạn chính của giai đoạn này: - Lập kế hoạch thực hiện kỹ thuật. - Thiết kế vật lý trong. - Lập trình. - Thử nghiệm kiểm tra. - Chuẩn bị các tài liệu cho hệ thống. - Đào tạo người sử dụng. Trong giai đoạn này có một số khái niệm cơ sở: Sự kiện (Evenement): Là một việc thực khi đến nó làm khởi sinh việc thực hiện một hay nhiều xử lý nào đó. Có những sự kiện nằm ngay trong cơ chế của tổ chức, có những sự kiện từ ngoài và chỉ thể hiện trên sơ đồ xử lý những sự kiện ngoài này. Công việc (Operation): Là một dãy xử lý có chung sự kiện khởi sinh. Tiến trình (Process): 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 cùng một lĩnh vực nghiệp vụ. Nếu tiến trình quá lớn thì nên chia cắt thành những lĩnh vực nhỏ hơn. Nhiệm vụ: Là một xử lý được xác định thêm các yếu tố về tổ chức: Ai? ở đâu? Khi nào thì thực hiện nó? Pha xử lý: Là một 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. Mô đun 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. Đây là cách chia nhỏ các xử lý, yêu cầu xử lý ít số liệu chỉ mang tính tương đối và nó tuỳ thuộc vào một số tiêu chuẩn khác. Trong giai đoạn này thì công đoạn lập trình là quan trọng nhất, đây là quá trình chuyển đổi các thiết kế vật lý của nhà phân tích thành phần mềm máy tính do các lập trình viên đảm nhận. 3.7. Cài đặt, bảo trì và khai thác hệ thống Cài đặt là quá trình chuyển đổi từ hệ thống cũ sang hệ thống mới. Mục tiêu của giai đoạn này 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, đồng thời đáp ứng được những thay đổi có thể xẩy ra trong suốt quá trình sử dụng. Công việc của giai đoạn này là chuyển đổi về mặt kỹ thuật, chuyển đổi về mặt con người. Các công đoạn của giai đoạn này: - Lập kế hoạch cài đặt. - Chuyển đổi. - Khai thác và bảo trì. - Đánh giá. Tóm lại, quá trình phân tích và thiết kế hệ thống là một quá trình đòi hỏi ở người phân tích phải tư duy một cách khoa học trên cơ sở các vấn đề thực tế cũng như lý thuyết, “vật lý” cũng như “logic” để cải tiến mô hình hoạt động của hệ thống, nâng cao hiệu quả quản lý và hiệu quả kinh doanh của doanh nghiệp, của tổ chức. Công cụ thực hiện đề tài 4.1. Cơ sở dữ liệu Một hệ thống thông tin chỉ có thể tồn tại được khi nó được cung cấp dữ liệu. Một trong những công việc của quản lý hệ thống thông tin chính là quản lý dữ liệu, xử lý dữ liệu. Hoạt động quản lý dữ liệu là một hoạt động quyết định đến tính sống còn của hệ thống cũng như của tổ chức. Dữ liệu là một vấn dề vô cùng quan trọng đối với mỗi doanh nghiệp, tổ chức vì mỗi doanh nghiệp, tổ chức sẽ đưa vào trong máy tính những thông tin dữ liệu cần thiết phục vụ cho hoạt động sản xuất kinh doanh của bản thân tổ chức đó. Từ các thông tin dữ liệu đó tạo ra hệ quản trị cơ sở dữ liệu. Hệ quản trị cơ sở dữ liệu: Người ta lưu trữ và quản lý dữ liệu trong những kho dữ liệu, đó là nơi cất giữ dữ liệu một cách có tổ chức sao cho có thể tìm kiếm nhanh chóng những dữ liệu cần thiết. Nếu kho dữ liệu này được đặt trên những phương tiện nhớ của máy tính điện tử (MTĐT) và được bảo quản nhờ chương trình máy tính thì nó còn được gọi là ngân hàng dữ liệu (NHDL) hay hệ quản trị cơ sở dữ liệu. NHDL là một hệ thống dùng MTĐT để lưu trữ, quản lý tập trung dữ liệu nhằm phục vụ cho nhiều người và nhiều mục đích quản lý khác nhau. 4.2. Các khái niệm liên quan đến cơ sở dữ liệu Thực thể: Là một đối tượng nào đó mà nhà quản lý muốn lưu trữ với các đặc điểm và tính chất cần ghi chép lại. Nó chính là các đối tượng cùng loại. Thuộc tính: Là đặc điểm và tính chất của thực thể. Mỗi thuộc tính là một yếu tố dữ liệu tách biệt, thường không chia nhỏ được. Các thuộc tính góp phần mô tả thực thể là những dữ liệu về thực thể mà muốn lưu trữ. Trường: Một cột gọi là một trường dữ liệu nó là nơi lưu trữ một thuộc tính của một thực thể. Bản ghi: Mỗi dòng là một bản ghi vì nó ghi chép dữ liệu về một cá thể tức là biểu hiện riêng biệt của thực thể. Bảng: Toàn bộ các bản ghi lưu trữ thông tin của một thực thể tạo ra một bảng mà mỗi dòng là một bản ghi và mỗi cột là một trường. Cơ sở dữ liệu: Là một nhóm gồm một hay nhiều bảng có liên quan với nhau. 4.3. Những hoạt động chính của cơ sở dữ liệu a. Cập nhật dữ liệu Có nhiều nhiệm vụ cần thực hiện khi sử dụng cơ sở dữ liệu. Một số nhiệm vụ thực hiện trực tiếp từ các nhân viên hoặc nhà quản lý, một số khác do các quản trị viên cơ sở dữ liệu hoặc lập trình viên có năng lực thực hiện. Xu thế của các hệ quản trị cơ sở dữ liệu làm dễ dàng việc tạo và nhập dữ liệu, quản trị những ứng dụng cơ sở dữ liệu cho những người sử dụng. b. Truy vấn dữ liệu Truy vấn dữ liệu là làm thế nào để lấy dữ liệu từ cơ sở dữ liệu. Để thực hiện nhịêm vụ này phải có một cách thức nào đó giao diện với cơ sở dữ liệu. Thông thường thông qua một dạng nào đó của ngôn ngữ truy vấn: - Ngôn ngữ truy vấn có cấu trúc SQL là ngôn ngữ phổ dụng nhất được dùng để truy vấn các cơ sở dữ liệu hiện nay. Việc viết một lệnh SQL đòi hỏi nhiều kỹ năng và thời gian nhất là những truy vấn phức tạp trong một cơ sở dữ liệu lớn. - Truy vấn bằng QBE: Nhiều hệ quản trị cơ sở dữ liệu có cách thức đơn giản hơn để giao tác với cơ sở dữ liệu dựa vào quan niệm QBE. Vì nó tạo cho người dùng sử dụng một lưới điền hoặc một mẫu để xây dựng cấu trúc một mẫu mà họ muốn tìm kiếm. Hệ quản trị cơ sở dữ liệu hiện đại sử dụng giao diện hiện đại và kỹ thuật rê chuột để tạo truy vấn một cách dễ dàng và nhanh chóng. c. Lập báo cáo từ cơ sở dữ liệu Thường thì các hệ quản trị cơ sở dữ liệu bổ sung tính năng lập báo cáo cho việc truy vấn dữ liệu. Báo cáo là những dữ liệu kết xuất ra từ cơ sở dữ liệu, được tổ chức sắp xếp và đưa ra dưới dạng in ấn. Tuy nhiên báo cáo cũng có thể hiện trên màn hình. d. Cấu trúc tệp và mô hình dữ liệu Dữ liệu cần phải được tổ chức theo một cách nào đó để không dư thừa và dễ dàng tìm kiếm, phân tích hiểu được chúng. Vì vậy cơ sở dữ liệu được tổ chức cần phải cấu trúc lại. Đối với thực thể việc xác định tên gọi, độ rộng các trường, loại của từng trường. Tất cả những thứ đó đều được gọi là cấu trúc một thực thể. Để lưu trữ dữ liệu cần một cơ chế để gắn kết một thực thể mà chúng có mối liên hệ tự nhiên giữa cái nọ với cái kia. - Mô hình phân cấp thể hiện mối quan hệ Cha _Con. Một thực thể cha có thể có nhiều thực thể con, nhưng mỗi thực thể con thì có một thực thể cha. Quan hệ này được gọi là quan hệ Một _Nhiều - Mô hình mạng lưới tỏ ra mềm dẻo hơn nhiều so với mô hình phân cấp. Theo mô hình này một thực thể cha có nhiều thực thể con và ngược lại. Quan hệ này đuợc gọi là quan hệ Nhiều _Nhiều. Mô hình này mềm dẻo nhưng cũng có nhiều yếu điểm của nó. Kích thước của sự phức tạp của các mối quan hệ sẽ làm cơ sở dữ liệu trở lên lớn và cồng kềnh và rất dễ nhầm lẫn. - Mô hình quan hệ là mô hình được sử dụng nhiều nhất hiện nay. Theo mô hình này thì hệ quản trị cơ sở dữ liệu xem xét và thực hiện các thực thể như là bảng hai chiều với bản ghi là các hàng và các trường là các cột. Có một cột đóng vai trò trường khoá hay còn gọi là trường định danh. Mỗi giá trị của nó xác định một bản ghi duy nhất. Bảng có thể chứa các trường liên kết, chúng không phải là những trường mô tả về thực thể mà là móc xích liên kết với nhiều và một bản ghi của một bảng khác. Cấu trúc như vậy có nhiều thuận lợi cho việc thao tác với dữ liệu trên các bảng . e. Cơ sở dữ liệu và mạng Những ứng dụng cơ sở trong một tổ chức ngày càng lớn và ngày càng phức tạp và nó phục vụ cho nhiều mục đích, cho nhiều người vì vậy khó có thể thực hiện chúng một cách có hiệu quả trên một máy vi tính. Kiến trúc Client/Server được thiết kế để giải quyết vấn đề đó. Trong kiến trúc Client/Server các ứng dụng được chia làm hai phần: Cơ sở dữ liệu được nằm trong một máy tính mạnh được gọi là máy chủ cơ sở dữ liệu, những chương trình xử lý dữ liệu nằm ở các máy tính trên bàn của người sử dụng gọi là máy khách. Nói cách khác người sử dụng có thể tìm dữ liệu trên máy chủ bằng cách chạy chương trình ứng dụng trên máy tính tại bàn của họ. f. Cơ sở dữ liệu hướng đối tượng Một số cơ sở dữ liệu đã bắt đầu bao chứa những kỹ thuật thiết kế hướng đối tượng được dùng trong kỹ thuật lập trình. Đối tượng là tập hợp gồm dữ liệu và những thao tác thực hiện trên các dữ liệu đó, cơ sở dữ liệu hướng đối tượng xử lý các bảng các truy vấn và các đối tượng. Khả năng module hoá và việc sử dụng lại nhanh và dễ dàng các đối tượng xuất hiện trong tổ chức làm giảm chi phí về thời gian và tiền bạc cho cơ sở dữ liệu đó. 4.4. Giới thiệu về ngôn ngữ lập trình Visual Foxpro Bằng việc sử dụng ngôn ngữ lập trình Visual Foxpro - một hệ quản trị cơ sở dữ liệu có nhiều công cụ giúp tổng hợp, truy xuất thông tin một cách nhanh chóng, thuận tiện và một bộ lệnh lập trình rất phong phú đã giảm bớt được khối lượng lập trình nặng nhọc mà bạn phải thực hiện khi xây dựng ứng dụng đồng thời nó lại là những phương thức tổ chức, xử lý, mang tính hiện đại tương tự như Microsoft Access. a. Việc sử dụng Visual Foxpro đã áp dụng triệt để thành tựu của tin học hiện đại - Visual Foxpro có thể tạo ra các ứng dụng làm cho việc liên lạc giữa các phòng chức năng trở nên dễ dàng và đáp ứng được nhu cầu thực tế về việc giao dịch trực tiếp với khách hàng. - Visual Foxpro là một ngôn ngữ có thể sử dụng rất nhiều dạng cơ sở dữ liệu nên ta có thể dùng các dữ liệu của Access để giao tiếp giữa các phân hệ chương trình đồng thời có thể sử dụng dữ liệu của chính nó hay của các chương trình phần mềm khác. - Visual Foxpro cung cấp nhiều công cụ được sử dụng để thiết kế những ứng dụng có giao diện đồ hoạ rất đẹp, tạo cảm giác thân thiện, dễ hiểu, dễ sử dụng cho người dùng. - Visual Foxpro là ngôn ngữ lập trình hướng đối tượng nên dễ viết, dễ bảo trì và dễ phát triển trong tương lai. b. Lập trình nhập dữ liệu Khả năng kết hợp các đoạn chương trình hiện có, Visual Foxpro cho phép tạo ra màn hình nhập dựa trên màn hình bảo trì đó cho phép người lập trình dễ dàng kết hợp các phần tử của ứng dụng đã được viết trước đó. c. Báo cáo Visual Foxpro cho phép xây dựng các báo cáo một cách dễ dàng bằng một chương trình tạo báo biểu báo cáo mang tính chuyên nghiệp. Thông tin có thể lấy từ các tệp CSDL tạo ra các trường tính và đặc tả chúng. Có thể tính tổng theo nhóm và tổng toàn biểu. Cách tạo báo cáo trong Visual Foxpro dễ hội nhập với yêu cầu chung. Đồng thời lại có thể cho thẳng ra máy in các báo cáo với tiêu đềvà các dòng phức tạp. d. Tạo thực đơn Visual Foxpro có một hệ công cụ thực đơn rất mạnh, người sử dụng có thể truy nhập dễ dàng đến bất kỳ đối tượng nào đã được tạo ra trong ứng dụng. e. Triển khai Đây là bước cung cấp sản phẩm tới người sử dụng. Yêu cầu đặt ra là tốc độ thực hiện chương trình, dung lượng đĩa sẽ phải dành cho nó cũng như cấu thành phần cứng mà chương trình đòi hỏi, cuối cùng là khả năng tạo lập mã nguồn của hệ thống. Chương III Phân tích, thiết kế Hệ THốNG THÔNG TIN quản lý vật tư Phân tích hệ thống 1.1.Mô tả hệ thống hiện tại Hiện nay chương trình QLVT trên toàn Tổng công ty mỗi đơn vị là một version chương trình, với bộ mã của từng đơn vị quy định. Chương trình quản lý vật tư đã được Tổng công ty cho cài đặt và sử dụng trên tất cả các đơn vị trong toàn ngành. Hệ thống chương trình được khép kín với hệ thống chương trình kế toán, khi phát sinh chứng từ nhập xuất đã hạch toán thì được ghi dữ liệu sang bên kế toán, chương trình được xây dựng cho cả hai phòng, phòng vật tư và phòng kế toán. Hệ thống đòi hỏi theo dõi theo các khía cạnh sau: Cho các đơn vị theo dõi mã vật tư dưới dạng thẻ kho và không có thẻ kho. Theo dõi đến chất lượng của vật tư, phân loại vật tư đó theo từng chất lượng của nó: nhập mới, thu hồi 56%, kém phẩm chất, …dưới dạng mã chất lượng không theo dõi dưới dạng mở kho địa lý. Đòi hỏi theo dõi tất cả các loại giá hiện hành, và cả cho đơn giá ngoại tệ. Đáp ứng cho cả 3 cấp: Cấp công ty, đơn vị, chi nhánh. Phải đáp ứng được các báo biểu đặc thù của từng đơn vị . Hệ thống không nhất thiết đòi hỏi cấu hình máy quá cao. 1.2.Phân tích hệ thống a.Mục đích, yêu cầu bài toán quản lý vật tư Dựa trên mô hình của các đơn vị trong toàn Tổng Công ty, yêu cầu xây dựng bài toán Quản lý vật tư đáp ứng được nghiệp vụ quản lý vật tư theo bộ mã vật tư do Tổng công ty quy định, chủ yếu trên hai mô hình chính: -Khối sản xuất: ( các công ty Điện lực, Công ty truyền tải,…) Quản lý kho: gồm kho địa lý, kho ảo. Quản lý vật tư trong kho: gồm các chủng loại vật tư: mới, thu hồi, kém phẩm chất… Quản lý vật tư tồn kho: theo kho, mã vật tư, mã nơi sản xuất. Quản lý các loại chứng từ nhập, xuất, xuất luân chuyển nội bộ. Quản lý các loại vật tư thu hồi. Quản lý vật tư kém phẩm chất. Vật tư kiểm kê, thanh lý. Hệ thống báo biểu do Tổng công ty quy định và biểu đặc thù của đơn vị. -Khối ban quản lý: Ngoài các yêu cầu như khối sản xuất, các ban quản lý dự án còn có các yêu cầu đặc thù sau: Quản lý chứng từ nhập theo hợp đồng. Quản lý chứng từ nhập, xuất vật tư theo hợp đồng, công trình, đơn vị thi công. Quản lý nhập, xuất vật tư theo ngoại tệ. Kiểm kê vật tư bên A, bên B. Quản lý vật tư theo nguồn vốn. b.Về nghiệp vụ quản lý sử dụng phương pháp số dư Tại kho: Định kỳ, sau khi ghi thẻ kho, thủ kho phải nhập toàn bộ chứng từ nhập kho, xuất kho phát sinh theo từng vật tư quy định. Sau đó lập phiếu giao nhận chứng từ và nộp cho kế toán kèm theo các chứng từ nhập, xuất vật tư. Ngoài ra, thủ kho còn phải ghi số lượng vật tư tồn kho cuối tháng theo từng danh điểm vật tư vào sổ số dư. Sổ số dư được kế toán mở chư từng kho và dùng cho cả năm, trước ngày cuối tháng, kế toán giao cho thủ kho để ghi vào sổ. Ghi xong thủ kho phải gửi về phòng kế toán để kiểm tra và tính thành tiền. Quy trình luân chuyển chứng từ nhập, xuất vật tư: Mã vật tư: gồm 8 ký tự theo quy định của Tổng công ty Mã nơi sản xuất có 3 ký tự. Kho: gồm kho địa lý và kho ảo, kho phân ra làm nhiều loại kho: kho thu hồi, kho thanh lý, kho kế hoạch 3… -Chứng từ nhập vật tư: Phòng vật tư theo yêu cầu của giấy đề nghị cấp vật tư, phòng kế toán hạch toán chứng từ nhập, xuất và đảm bảo về mặt gía trị, và có trách nhiệm cập nhật, hạch toán phụ phí và thuế, các thông số của chứng từ nhập được thể hiện qua từng phần sau: -Lý do phát sinh phiếu nhập: Giấy đề nghị cấp vật tư: từ phòng ban của đơn vị Hợp đồng mua bán: hợp đồng ký kết mua bán vật tư thiết bị ( không theo dõi). Quyết định điều động: điều động vật tư từ đơn vị này sang đơn vị khác… Biên bản thu hồi: Vật tư thu hồi từ các công trình… -Loại chứng từ: nhập mua ngoài, nhập thừa, nhập thu hồi, nhập luân chuyển nội bộ, nhập dự án, nhập lập kế hoạch 3, chứng từ nhập xuất trực tiếp,… -Phòng tài chính kế toán có nhiệm vụ hạch toán các chứng từ nhập bao gôm: Tài khoản nợ. Đối tượng nợ cấp 1,2,3. Loại hình nợ. Đối tượng nợ. Tài khoản có. Loại hình có. Toàn bộ thông tin chứng từ nhập được cung cấp cho phòng tài chính kế toán. Luân chuyển chứng từ nhập: Người nhập vật tư làm giấy để nghị cấp vật tư gửi cho phòng vật tư cùng với hồ sơ và chứng từ kèm theo. Phòng vật tư lập phiếu nhập( ký vào người lập và người phụ trách vật tư) Người nhập vật tư: nhập vật tư thiết bị. 01 liên thủ kho giữ, vào thẻ kho. 01 liên giao về phòng vật tư, cập nhật vào chương trình tính tồn kho. 01 liên kèm với hoá đơn và hồ sơ làm thanh toán gửi phòng tài chính kế toán. -Chứng từ xuất vật tư: Phòng vật tư phát hành chứng từ xuất theo yêu cầu của giấy đề nghị cấp vật tư, phòng kế toán có nhiệm vụ hạch toán chứng từ nhập và đảm bảo về giá trị của chứng từ nhập, các thông tin của chứng từ xuất được thể hiện qua từng phần sau: -Lý do phát sinh phiếu xuất: Theo kế hoạch duyệt… Dự toán được duyệt.(không theo dõi) Xuất theo văn bản, đề nghị được duyệt. Hợp đồng nhượng bán.(không theo dõi) Giấy đề nghị xuất vật tư. -Loại chứng từ xuất: Xuất ra công trình. Xuất cho đơn vị, bộ phận sử dụng. Luân chuyển chứng từ xuất : Bộ phận có nhu cầu lĩnh vật tư làm giấy đề nghị lĩnh vật tư. Phòng vật tư kiểm tra và lập phiếu. Thủ kho cấp phát và lấy chữ ký của người lĩnh vật tư. c.Công tác theo dõi quản lý và báo cáo In phiếu: in phiếu nhập, xuất theo mẫu có sẵn và không có sẵn. Liệt kê chứng từ: Nhập: liệt kê danh sách chứng từ nhập vật tư và nhập xuất trực tiếp. Xuất: liệt kê danh sách chứng từ xuất vật tư, xuất luân chuyển. Nhập, xuất: liệt kê chứng từ nhập, xuất điều chỉnh. Theo dõi vật tư nhập – xuất – tồn: Danh sách các vật tư biến động, nhập – xuất – tồn của đơn vị trong tháng theo các tiêu chí quản lý. Danh sách toàn bộ trong kho, nhập – xuất – tồn theo các tiêu chí quản lý. thiết kế hệ thống thông tin 2.1.Sơ đồ phân rã chức năng của hệ thống Như ta đã biết, mô hình nghiệp vụ là một mô tả các chức năng nghiệp vụ của một tổ chức( hay một miền nghiên cứu của tổ chức) và những mối quan hệ bên trong giữa các chức năng đó cũng như các mối quan hệ của chúng với môi trường bên ngoài. Mô hình nghiệp vụ được thể hiện bằng một số dạng khác nhau. Mỗi dạng mô tả một khía cạnh của hoạt động nghịêp vụ. Tất cả các dạng đó cho ta một bức tranh toàn cảnh về hoạt động nghiệp vụ. Một trong những cách thể hiện của mô hình nghiệp vụ là sơ đồ phân rã chức năng( biểu đồ phân rã chức năng). Nó cho ta thấy được các chức năng nghiệp vụ của một tổ chức được phân chia thành các chức năng nhỏ hơn theo một thứ bậc xác định. Sơ đồ phân rã chức năng của hệ thống thông tin quản lý vật tư tại Nhà máy thuỷ điện Hoà Bình được mô tả như sau: 2.2.Sơ đồ luồng dữ liệu của hệ thống Như đã đề cập tới trong phần trước, Mô hình hoá tiến trình nghiệp vụ là sự biểu diễn đồ thị các chức năng của quá trình để thu thập, thao tác, lưu trữ và phân phối dữ liệu giữa các bộ phận trong một hệ thống nghiệp vụ cũng như giữa hệ thống và môi trường của nó. Trong phương pháp phân tích HTTT hướng cấu trúc, các tài liệu đầu tiên của quá trình mô hình hoá quá trình nghịêp vụ là tập hợp các sơ đồ luồng dữ liệu biểu diễn mối liên hệ thông tin bên trong một hệ thống với môi trường của nó theo một số góc nhìn nhận khác nhau. Các sơ đồ đó là: Sơ đồ mức ngữ cảnh Sơ đồ luồng dữ liệu vật lý của hệ thống hiện thời. Sơ đồ luồng dữ liệu logic của hệ thống hiện thời. Sơ đồ luồng dữ liệu logic cho hệ thống mới. Sơ đồ luồng dữ liệu của hệ thống cần xây dựng. a.Sơ đồ mức ngữ cảnh Sơ đồ mức ngữ cảnh biểu diễn hệ thống ở mức cao nhất.Trong sơ đồ này chỉ gồm 3 loại thành phần: - Một tiến trình duy nhất: mô tả toàn bộ hệ thống, trong đó có tên hệ thống và có chỉ số là 0. - Các tác nhân( môi trường của hệ thống). - Các luồng dữ liệu giữa các tác nhân và hệ thống mô tả sự tương tác giữa hệ thống và môi trường. Sơ đồ ngữ cảnh cho ta một cái nhìn khái quát về hệ thống trong môi trường của nó. Tuy nhiên trong chuyên đề này ta chỉ quan tâm đến hệ thống thông tin quản lý vật tư và những ảnh hưởng đáng kể lên hệ thống: đó là những tác nhân có tương tác với hệ thống về mặt thông tin. b.Sơ đồ luồng dữ liệu mức 0 Quá trình phân nhỏ mỗi tiến trình của một sơ đồ luồng dữ liệu thành một sơ đồ luồng dữ liệu mới(nếu có thể) gọi là phân rã sơ đồ luồng dữ liệu đã cho. Khi phân rã một tiến trình của một biểu đồ luồng thành một biểu đồ ở mức sau thì mọi luồng dữ liệu vào và ra, các tác nhân ngoài và kho dữ liệu liên quan với nó phải được bảo toàn trong biểu đồ ở mức sau. Nguyên tắc được áp dụng để đảm bảo sự cân bằng và biểu đồ được vẽ đơn giản hơn: - Một luồng dữ liệu phức hợp có thể chia nhỏ thành các luồng dữ liệu thành phần ở mức sao cho vẫn giữ nguyên số lượng các luồng dữ liệu đã có trong luồng dữ liệu phức hợp… - Cho phép vẽ lặp lại một kho dữ liệu hay một tác nhân ở một vài vị trí. Vận dụng phương pháp và nguyên tắc phân rã sơ đồ luồng dữ liệu ở trên, ta tiến hành phân rã(làm mịn) sơ đồ ngữ cảnh để nhận được biểu đồ luồng dữ liệu mức 0. c. Sơ đồ phân rã mức 1 Việc phát triển các sơ đồ luồng dữ liệu chi tiết là quá trình tiếp tục làm mịn các sơ đồ luồng dữ liệu đã nhận được trước đó. Dựa trên quá trình làm mịn sơ đồ luồng dữ liệu mức i-1, ta nhận được một sơ đồ luồng dữ liệu mức i có thể mô tả như sau: Đối với mỗi tiến trình trong sơ đồ luồng dữ liệu mức i-1 mà có thể phân chia thành các tiến trình nhỏ hơn ta sẽ phân rã thành một sơ đồ luồng dữ liệu mức i theo cách sau: - Thay thế tiến trình được xét của biểu đồ luồng dữ liệu mức i-1 bằng các tiến trình con tương ứng với các chức năng của mức tương ứng trong biểu đồ phân rã chức năng. - Giữ nguyên toàn bộ các tác nhân ngoài, các kho dữ liệu và các luồng dữ liệu liên quan đến tiến trình được xét trong biểu đồ luồng dữ liệu mức i-1 và chuyển chúng sang biểu đồ luồng dữ liệu mức i. Tuy nhiên cần đặt lại các đầu mút của các luồng dữ liệu vào các tiến trình con mới thêm vào một cách thích hợp. - Thêm vào các luồng dữ liệu giữa các tiến trình con(dựa trên các mô tả khác). Việc đánh số hiệu các tiến trình trong một biểu đồ mới nhận được tuân theo các nguyên tắc sau: số hiệu của một tiến trình gồm hai phần: phần đầu và phần số thứ tự. Phần đầu là số hiệu của tiến trình được sử dụng để phân rã. Phần số thứ tự là thứ tự của tiến trình con. Từ đó ta có sơ đồ phân rã mức 1 như sau. 2.3.Thiết kế cơ sở dữ liệu cho hệ thống a.Thiết kế cơ sở dữ liệu logic đi từ các thông tin đầu ra Là phương pháp cổ điển và cơ bản của thiết kế hệ thống . Để thực hiện phương pháp này cần tuân thủ theo các bước sau: Bước 1: Xác định các đầu ra của hệ thống Bước 2: Xác định các tệp cần thiết cung cấp dữ liệu cho việc tạo đầu ra tương ứng Bước 3: Xác định khối lượng cho từng tệp và toàn bộ sơ đồ Bước 4: Xác định liên hệ logic giữa các tệp và thiết lập sơ đồ cấu trúc dữ liệu. Các thông tin đầu ra của hệ thống bao gồm: - Tổng hợp nhập: Bảng kê nhập chi tiết trong tháng Bảng kê nhập vật tư thừa. Bảng kê nhập vật tư thu hồi Bảng kê nhập vật tư thu hồi Bảng kê nhập vật tư mua ngoài Bảng kê chi tiết nhập vật tư khác Sổ chi tiết thanh toán với người bán - Tổng hợp khác: Báo cáo nhập – xuất – tồn vật tư: vật tư đầu kì, nhập trong kỳ, xuất trong kỳ, tồn cuối kì. Tổng hợp tồn kho cuối kì theo tài khoản kho. Tổng hợp tồn theo kho địa lý, chi tiết theo mã vật tư. Bảng cân đối phát sinh trong tháng. Đối chiếu số liệu hàng tháng với các đơn vị nhập vật tư. Mẫu sổ theo dõi tình hình nhập – xuất – tồn. Xuất phát từ nhu cầu quản lý vật tư của cơ sở cũng như nhu cầu tìm hiểu về hệ thống thông tin qủan lý vật tư một cách riêng rẽ. Để những người quan tâm đến vấn đề quản lý vật tư nhưng không có đủ khả năng hiểu tường tận về chương trình hiện có có thể tìm hiểu và hiểu nhanh hơn về một vấn đề nào đó trong hệ thống quản lý vật tư. Dựa vào phương pháp thiết kế cơ sở dữ liệu đầu vào từ các dmvttb(Danh mục vật tư thiết bị) Tên trường Kiểu dữ liệu Kích cỡ Mô tả mavt C 8 Mã vật tư tenvt C 20 Tên vật tư dvtinh C 10 đơn vị tính DmBPSD (Danh mục bộ phận sử dụng) Tên trường Kiểu dữ liệu Kích cỡ Mô tả MaBPSD C 8 Mã bộ phận sử dụng Tenbpsd C 20 Tên bộ phận sử dụng Masothue C 8 Mã số thuế diachi C 50 Địa chỉ Dmncc (Danh mục nhà cung cấp) Tên trường Kiểu dữ liệu Kích cỡ Mô tả MaNCC C 8 Mã nhà cung cấp TenNCC C 20 Tên nhà cung cấp Diachi C 20 Địa chỉ Tên trường Kiểu dữ liệu Kích cỡ Mô tả ManhomVT C 8 Mã nhóm vật tư TennhomVT C 20 Tên nhóm vật tư ghichu C 50 Ghi chú DmnhomVT (Danh mục nhóm vật tư) DmnhomBPSD (Danh mục nhóm bộ phận sử dụng) Tên trường Kiểu dữ liệu Kích cỡ Mô tả ManhomBPSD C 8 Mã nhóm bộ phận sử dụng TennhomBPSD C 20 Tên nhóm bộ phận sử dụng ghichu C 50 Ghi chú Dmnv (Danh mục nhân viên) Tên trường Kiểu dữ liệu Kích cỡ Mô tả Manv C 8 Mã nhân viên Tennv C 20 Tên nhân viên ghichu C 50 Ghi chú Dmnsx (Danh mục nước sản xuất) Tên trường Kiểu dữ liệu Kích cỡ Mô tả Mansx C 8 Mã nước sản xuất Tennsx C 20 Tên nước sản xuất Bangnhap-xuat VT(bảng nhập-xuất vật tư) Tên trường Kiểu dữ liệu Kích cỡ Mô tả soct C 8 Số chứng từ nhập Ngaynhap T 8 Ngày nhập mavt C 8 Mã vật tư makho C 8 Mã kho Mansx C 8 Mã nước sản xuất mancc C 8 Mã nhà cung cấp nguoinhap C 50 Người nhập lydo C 50 Lý do sl B 8 Số lượng nhập Dg B 8 Đơn giá nhập Ngayxuat T 8 Ngày xuất sl B 8 Số lượng xuất Dg B 8 đơn giá xuất Thông tin đầu ra. Hệ cơ sở dữ liệu được xây dựng như sau: Sơ đồ quan hệ thực thể: Một số thuật toán sử dụng trong chương trình Thuật toán sửa bản ghi Thuật toán in báo cáo: 2.5.Một số giao diện chương trình Giao diện chính của chương trình Form cập nhật bộ phận sử dụng Form cập nhật danh mục vật tư thiết bị Form cập nhật danh mục nhà cung cấp Form tìm kiếm theo bộ phận sử dụng Giao diện màn hình phiếu xuất vật tư Giao diện màn hình phiếu nhập vật tư Giao diện màn hình lên báo cáo Báo cáo đầu ra kết luận Sau một thời gian thực tập, tìm hiểu, nghiên cứu kết hợp với sự nhiệt tình hướng dẫn trực tiếp của thầy giáo Ths.Trịnh Phú Cường, Bác phó phòng vật tư Đinh Văn Thành, các cán bộ trong Phòng Vật tư Nhà Máy thuỷ điện Hoà Bình đã tạo mọi điều kiện giúp đỡ em trong quá trình thực tập. Cùng với những kiến thức đã được học trong nhà trường, sự cố gắng nỗ lực của bản thân em đã hoàn thành chuyên đề thực tập tốt nghiệp “Phân tích thiết kế hệ thống thông tin quản lý vật tư tại nhà máy Thuỷ điện Hoà Bình”. Xét về phạm vi nghiên cứu, đề tài đã đáp ứng được một số yêu cầu của công tác quản lý của đơn vị. Với các tài liệu tham khảo thu thập được trong quá trình học tập và thực tập thực tế, em đã đưa ra các dữ liệu đầu vào của chương trình, các kết quả đầu ra của chương trình để phục vụ quá trình quản lý, chương trình giúp người sử dụng kết xuất được các thông tin đầu ra thông qua các báo cáo. Chương trình đã thực hiện được các công viêc sau: Cập nhật dữ liệu Cập nhật dữ liệu về vật tư. Cập nhật dữ liệu về nhóm vật tư. Cập nhật dữ liệu về nhà cung cấp. Cập nhật dữ liệu về bộ phận sử dụng(công trình). Tìm kiếm Tìm kiếm thông tin theo nhà cung cấp. Tìm kiếm thông tin theo BPSD. Tìm kiếm thông tin về vật tư theo mã vật tư. Báo cáo Báo cáo nhập – xuất – tồn. Báo cáo tình hình chi mua vật tư trong kỳ. Báo cáo tình hình thanh toán với nhà cung cấp. Tuy nhiên cơ sở dữ liệu không có khả năng kết nối với các cơ sở dữ liệu khác, chưa có khả năng sao lưu dữ liệu,... Đây là lần đầu tiên chúng em mang những kiến thức đã được học vào áp dụng trong môi trường thực tế vì vậy không thể tránh khỏi những sai sót. Nhưng với tất cả sự cố gắng của mình, chuyên đề thực tập này chính là sản phẩm đầu tay sau 4 năm học tại trường. Rất mong được sự chỉ bảo góp ý của các thầy cô để em có thể hiểu sâu hơn về đề tài, rút kinh nghiệm những sai sót, hạn chế khuyết điểm và củng cố kiến thức của mình. Một lần nữa em xin chân thành cảm ơn sự nhiệt tình giúp đỡ của các thầy cô đặc biệt là thầy giáo Ths.Trịnh Phú Cường, các cán bộ trong phòng và Bác phó phòng Vật tư Đinh Văn Thành để em hoàn thành chuyên đề này. Sinh viên Nguyễn Thị Thuý Hồng Tài liệu tham khảo Giáo trình Hệ thống thông tin quản lý, TS Trương Văn Tú – TS Trần Thị Song Minh, NXB Thống kê, Hà Nội, 2000. Giáo trình Cấu trúc dữ liệu và giải thuật, PTS Hàn Viết Thuận, NXB Thống kê -Hà nội 1999. Phân tích thiết kế hệ thống thông tin quản lý, ThS Đinh Thế Hiển, NXB Thống kê. Phân tích và thiết kế hệ thống thông tin, Nguyễn văn Ba, NXB Đại học Quốc Gia HN, 2003 . Giáo trình Phân tích thiết kế hệ thống thông tin, Nguyễn Văn Vỵ, NXB Nông nghiệp, 2004. Sử dụng và khai thác Microsoft visual foxpro 6.0, Nguyễn Ngọc Minh – Nguyễn Đình Tê, NXB Lao Động – xã hội, 2003. Những bài thực hành visual foxpro, Vn – guide, NXB Thống Kê, 2004. Phụ lục Mã code của form cập nhật danh mục VTTB Form load IF USED('dmVTTB') SELECT dmVTTB ELSE USE dmVTTB SELECT 10 ENDIF SELECT dmVTTB GO top thisform.Refresh form init SET SAFETY OFF SET TALK OFF SET DELETED ON thisform.cmbmanhom.ReadOnly= .T. thisform.txtmavt.ReadOnly= .T. thisform.txttenvt.ReadOnly = .T. thisform.edittype=0 SCATTER MEMVAR thisform.Refresh them.click SELECT dmVTTB thisform.edittype=1 thisform.cmbmanhom.ReadOnly= .F. thisform.txtmavt.ReadOnly= .F. thisform.txttenvt.ReadOnly= .F. SCATTER MEMVAR blank thisform.cmbmanhom.SetFocus thisform.SetAll('enabled',.f.,'commandbutton') thisform.Refresh sua.click thisform.edittype=2 thisform.cmbmanhom.ReadOnly= .F. thisform.txtmavt.ReadOnly= .F. thisform.txttenvt.ReadOnly = .F. thisform.SetAll('enabled',.f.,'commandbutton') thisform.cmbmanhom.SetFocus thisform.Refresh xoa.click IF RECCOUNT()=0 MESSAGEBOX('Không có dữ liệu !') ELSE IF MESSAGEBOX('Bạn có muốn xóa không !',36,'Chú ý')=6 SKIP -1 DELETE ENDIF ENDIF thisform.Refresh ghi.click PRIVATE varmavt as Character SELECT dmVTTB varmavt=thisform.txtmavt.Value IF thisform.edittype = 1 LOCATE FOR ALLTRIM(mavt) ==ALLTRIM(varmavt) if FOUND() MESSAGEBOX('Mã vật tư không được trùng nhau !') thisform.SetAll('enabled',.f.,'commandbutton') thisform.cmdedit.Enabled= .T. thisform.cmdedit.SetFocus ENDIF ENDIF IF thisform.edittype = 1 APPEND BLANK GATHER memvar thisform.SetAll('enabled',.t.,'commandbutton') ENDIF IF thisform.edittype =2 GATHER memvar thisform.SetAll('enabled',.t.,'commandbutton') ENDIF thisform.edittype = 0 thisform.cmbmanhom.ReadOnly= .T. thisform.txtmavt.ReadOnly= .T. thisform.txttenvt.ReadOnly= .T. thisform.cmdsave.Enabled= .F. thisform.Refresh top.click SELECT dmVTTB GO top SCATTER memvar MESSAGEBOX('Đang ở bản ghi đầu tiên !',0,'Chú ý') thisform.cmdprev.Enabled= .F. thisform.cmdtop.Enabled = .F. thisform.cmdnext.Enabled= .T. thisform.cmdbott.Enabled= .T. thisform.Refresh bottom.click SELECT dmVTTB GO bottom SCATTER memvar MESSAGEbox('Bạn đang ở bản ghi đầu tiên !',0,'Chú ý') thisform.cmdtop.Enabled= .t. thisform.cmdprev.Enabled= .t. thisform.cmdnext.Enabled= .f. thisform.cmdbott.Enabled= .f. thisform.Refresh prev.click SELECT dmVTTB thisform.cmdBott.Enabled= .t. thisform.cmdNext.Enabled = .t. SKIP -1 SCATTER memvar IF BOF() SCATTER memvar MESSAGEBOX('Đang ở bản ghi đầu tiên !',0,'Chú ý') thisform.cmdTop.Enabled= .F. thisform.cmdPrev.Enabled= .F. thisform.cmdBott.Enabled= .t. thisform.cmdNext.Enabled = .t. ENDIF thisform.Refresh next.click SELECT dmVTTB thisform.cmdPrev.Enabled= .T. thisform.cmdtop.Enabled= .T. SKIP +1 SCATTER memvar IF EOF() SCATTER memvar MESSAGEBOX('Bạn đang ở bản ghi cuối !',0,'Chú ý') SKIP -1 thisform.cmdNext.Enabled= .F. thisform.cmdPrev.Enabled = .t. thisform.cmdBott.Enabled= .f. thisform.cmdTop.Enabled = .T. ENDIF thisform.Refresh Mã code form tìm kiếm theo mã vật tư Cmbmavt . interactive change PRIVATE varmavt as Character varmahh=thisform.cmbmavt.Value IF USED('dmVTTB') SELECT dmVTTB ELSE SELECT 0 USE dmVTTB ENDIF SELECT dmVTTB LOCATE FOR ALLTRIM(mavt)=ALLTRIM(varmavt) IF FOUND() thisform.lbltenvt.Caption =tenvt ENDIF SELECT a.tenvt ,b.sl,b.dgmua,b.thue FROM dmvt b,dmVTTB a ; WHERE b.mavt=a.mavt AND a.mavt=varmavt INTO dbf hhview SELECT hhview IF RECCOUNT()=0 MESSAGEBOX(‘vật tư này chưa nhập !',0,'chú ý') else thisform.grid1.RecordSource="hhview" ********************************* thisform.grid1.column1.header1.FontName=".vntime" thisform.grid1.column1.header1.FontSize =12 thisform.grid1.column1.FontSize =11 thisform.grid1.column1.header1.Caption ="Tên Vật Tư" *********************************** thisform.grid1.column2.header1.FontSize =12 thisform.grid1.column2.header1.FontName=".vntime" thisform.grid1.column2.FontSize =11 thisform.grid1.column2.header1.Caption="Số Lượng " *********************************** thisform.grid1.column3.header1.FontSize =12 thisform.grid1.column3.header1.FontName=".vntime" thisform.grid1.column3.FontSize =11 thisform.grid1.column3.header1.Caption="Đơn Giá" ************************************* thisform.grid1.column4.header1.FontName =".vntime" thisform.grid1.column4.header1.FontSize =12 thisform.grid1.column4.FontSize =11 thisform.grid1.column4.header1.Caption ="Thuế" ************************************ thisform.grid1.column1.Width=200 thisform.grid1.column2.Width =100 thisform.grid1.column3.Width=100 thisform.grid1.column4.Width =100 ENDIF thisform.Refresh Mã code form tìm kiếm theo mã vật tư Cmbmancc . interactive change PRIVATE varmancc as Character varmancc=thisform.cmbmancc.Value IF USED('dmncc') SELECT dmncc ELSE SELECT 0 USE dmncc ENDIF SELECT dmncc LOCATE FOR ALLTRIM(mancc)=ALLTRIM(varmancc) IF FOUND() thisform.lbltenncc.Caption =tenncc ENDIF SELECT a.tenncc ,a.dienthoai,a.diachi FROM dmncc a; WHERE a.mancc=varmancc INTO DBF nccview thisform.grid1.RecordSource="nccview" ********************************* thisform.grid1.column1.header1.FontName=".vntime" thisform.grid1.column1.header1.FontSize =12 thisform.grid1.column1.FontSize =11 thisform.grid1.column1.header1.Caption ="Tên Nhà Cung Cấp" *********************************** thisform.grid1.column2.header1.FontSize =12 thisform.grid1.column2.header1.FontName=".vntime" thisform.grid1.column2.FontSize =11 thisform.grid1.column2.header1.Caption="Điện Thoại " *********************************** thisform.grid1.column3.header1.FontSize =12 thisform.grid1.column3.header1.FontName=".vntime" thisform.grid1.column3.FontSize =11 thisform.grid1.column3.header1.Caption="Địa Chỉ" ************************************* thisform.grid1.column1.Width=250 thisform.grid1.column2.Width =100 thisform.grid1.column3.Width=307 thisform.Refresh Mã code form tìm kiếm theo BPSD(công trình) Cmbmabpsd . interactive change PRIVATE varmabpsd Character Varmabpsd=thisform.cmbmabpsd.value IF USED('dmBPSD') SELECT dmBPSD ELSE SELECT 0 USE dmBPSD ENDIF SELECT dmBPSD LOCATE FOR ALLTRIM(maBPSD)=ALLTRIM(varmaBPSD) IF FOUND() thisform.lbltenBPSD.Caption =tenBPSD ENDIF SELECT a.tenBPSD ,a.dienthoai,a.diachi FROM dmBPSD a; WHERE a.maBPSD=varmaBPSD INTO dbf khview thisform.grid1.RecordSource="khview" ********************************* thisform.grid1.column1.header1.FontName=".vntime" thisform.grid1.column1.header1.FontSize =12 thisform.grid1.column1.FontSize =11 thisform.grid1.column1.header1.Caption ="Tên BPSD" *********************************** thisform.grid1.column2.header1.FontSize =12 thisform.grid1.column2.header1.FontName=".vntime" thisform.grid1.column2.FontSize =11 thisform.grid1.column2.header1.Caption="Điện Thoại " *********************************** thisform.grid1.column3.header1.FontSize =12 thisform.grid1.column3.header1.FontName=".vntime" thisform.grid1.column3.FontSize =11 thisform.grid1.column3.header1.Caption="Địa Chỉ" ************************************* thisform.grid1.column1.Width=250 thisform.grid1.column2.Width =100 thisform.grid1.column3.Width=307 thisform.Refresh Mã code form báo cáo Nhan.click PUBLIC varngaybd as Date ,varngaykt as Date varngaybd=CTOD(thisform.txtngaybd.Value) varngaykt=CTOD(thisform.txtngaykt.Value) IF thisform.edittype=1 SELECT muaban SELECT a.mavt,b.tenvt,sum(a.slmua),sum(a.slban) FROM muaban a,hanghoa b WHERE b.mavt=a.mavt AND ( BETWEEN(a.ngaymua,varngaybd,varngaykt) ; OR BETWEEN(a.ngayban,varngaybd,varngaykt)) GROUP BY a.mahh INTO dbf muabandbf SELECT muabandbf REPORT FORM repxnt PREVIEW ENDIF if thisform.edittype =2 *SELECT hdbanhang *SELECT soct,tenkh,thanhtien,ngaylaphd from hdbanhang WHERE BETWEEN(ngaylaphd,varngaybd,varngaykt) order BY soct INTO dbf doanhthu *SELECT doanhthu SELECT * from doanhthu INTO dbf kq10 SELECT kq10 REPORT FORM repdt PREVIEW ENDIF IF thisform.edittype=3 *SELECT hdmuahang *SELECT * WHERE BETWEEN(ngaylap,varngaybd,varngaykt) FROM hdmuahang ORDER BY soct INTO dbf chiphi SELECT hdmuahang.soct,hdmuahang.tennhacc,hdmuahang.thanhtien,hdmuahang.ngaylap WHERE BETWEEN(hdmuahang.ngaylap,varngaybd,varngaykt) FROM hdmuahang ORDER BY soct INTO dbf chiphi SELECT chiphi REPORT FORM repcp PREVIEW ENDIF IF thisform.edittype=5 SELECT hdbanhang SELECT makh,tenkh,sum(thanhtoan),sum(thanhtien) FROM hdbanhang WHERE BETWEEN(ngaylaphd,varngaybd,varngaykt) GROUP BY makh INTO dbf ttkh SELECT ttkh REPORT FORM repttkh PREVIEW ENDIF IF thisform.edittype=4 *SELECT hdmuahang SELECT mancc,tennhacc,sum(.thanhtoan),sum(thanhtien) WHERE BETWEEN(ngaylap,varngaybd,varngaykt) FROM hdmuahang GROUP BY mancc INTO dbf ttncc SELECT ttncc *SELECT * from ttncc INTO dbf kq11 *SELECT kq11 REPORT FORM repttncc PREVIEW ENDIF Mã code form phiếu nhập Them.click SELECT hdbanhang thisform.edittype = 1 thisform.SetAll('enabled',.f.,'commandbutton') thisform.txtsoct.Value =' ' thisform.txtthanhtien.Value=' ' thisform.txtthanhtoan.Value =' ' thisform.cmbmabpsd.Value=' ' thisform.cmbmanv.Value=' ' thisform.txttenbpsd.Value =' ' thisform.txttennv.Value =' ' thisform.txtthanhtien.Value =' ' thisform.txtthanhtoan.Value =' ' thisform.SetAll ('readonly',.f.,'textbox') thisform.SetAll('readonly',.f.,'combobox') thisform.check1.Enabled= .t. SCATTER MEMVAR blank varsum=0 && khoi tao gia tri thisform.txtsoct.SetFocus thisform.Refresh sua.click SELECT hdbanhang thisform.txtthanhtien.ReadOnly= .T. thisform.check1.Enabled= .t. thisform.SetAll ('readonly',.f.,'textbox') thisform.SetAll('enabled',.f.,'commandbutton') thisform.SetAll('readonly',.f.,'combobox') thisform.edittype = 2 thisform.grdhangban.ReadOnly= .F. thisform.txtsoct.SetFocus thisform.Refresh xoa.click SELECT hdbanhang IF RECCOUNT()=0 MESSAGEBOX('Chưa có dự liệu !',0,'Chú ý') ELSE IF MESSAGEBOX('Bạn có muốn xóa không !',36,'Chú ý')=6 *SELECT hangban DELETE FROM hangban WHERE soct=thisform.txtsoct.Value DELETE FROM muaban WHERE soct=thisform.txtsoct.Value DELETE SKIP -1 SCATTER MEMVAR thisform.Refresh ENDIF ENDIF THISFORM.Refresh Themvt.click SELECT hangban thisform.SetAll('enabled',.f.,'commandbutton') thisform.cmbmavt.ReadOnly = .F. thisform.txtdg.ReadOnly = .F. thisform.txtsl.ReadOnly= .F. thisform.txtthue.ReadOnly = .F. SCATTER MEMVAR blank APPEND BLANK thisform.cmbmahh.SetFocus soct=thisform.txtSoct.Value && gan truc tiep vao truong hangban.soct of HangBan GATHER MEMVAR thisform.Refresh Mã code program Begin SET EXAC ON SET TALK OFF SET SAFE OFF SET DELE ON SET DATE dmy SET STATUS OFF SET CENTURY ON CLEAR _Prog = SYS(16) _Vt = AT("\", _Prog, OCCU("\", _Prog) -0) M_Root = SUBSTR(_Prog, 1, _Vt) WITH _Screen .CLOSABLE=.f. .ICON =[earth.ico] .ControlBox=.T. .MaxButton=.F. .MinButton=.T. .Height=600 .Width=800 .Caption='Qủan lý vật tư' .WindowState=2 ENDWITH CLEA DO ReleT DO menuct.mpr DO FORM formchinh1 READ EVEN SET SYSMENU TO DEFAULT *------------------------------------ PROCEDURE ReleT SET SYSMENU TO IF WEXIST([Report controls]) HIDE WIND [Report controls] ENDIF IF WEXIST([Form Controls]) HIDE WIND [Form Controls] ENDIF IF WEXIST([Database Designer]) HIDE WIND [Database Designer] ENDIF IF WEXIST([Form Designer]) HIDE WIND [Form Designer] ENDIF IF WEXIST([Color Palette]) HIDE WIND [Color Palette] ENDIF IF WEXIST([Layout]) HIDE WIND [Layout] ENDIF IF WEXIST([Report Designer]) HIDE WIND [Report Designer] ENDIF IF WEXIST([Query Designer]) HIDE WIND [Query Designer] ENDIF IF WEXIST([View Designer]) HIDE WIND [View Designer] ENDIF IF WEXIST([Standard]) HIDE WIND [Standard] ENDIF RETURN ***************************************

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

  • doc32333.doc
Tài liệu liên quan