Chương trình TGHP_Report có ý nghĩa rất lớn đối với trong việc đảm bảo tính liên tục của quá trình sản xuất. Nó có vai trò theo dõi tình trạng nguyên vật liệu trong kho để đưa ra các thông tin cần thiết cho các họat động xuất-nhập kho, đảm bảo đủ nguyên vật liệu cho quá trình sản xuất.
Sau một thời gian nghiên cứu và học tập tại công ty Trách nhiệm hữu hạn Fujitsu Việt Nam, các vấn đề tôi đã tìm hiểu và các công việc đã thực hiện được là:
Thứ nhất: Tìm hiểu tổng quan cơ cấu tổ chức, các hoạt động, sản phẩm của công ty TNHH Fujitsu Việt Nam. Bên cạnh đó, tôi tham gia vào nhóm Glovia, tham gia vào dự án làm báo cáo cho công ty Toyoda Gosei Hải Phòng. Trong nhóm, tôi nghiên cứu các tài liệu về phần mềm Glovia.com, nghiên cứu các tài liệu liên quan đến nghiệp vụ kinh tế của Glovia.
Thứ hai: Để có thể thực hiện được đề tài tôi đã tìm hiểu các nghiệp vụ liên quan đến việc phát sinh báo cáo của công ty Toyoda Gosei Hải Phòng, tìm hiểu phần mềm GloviaReport của công ty đã triển khai cho công ty TOA Việt Nam.
Thứ ba: Công việc phân tích thiết kế chương trình được sự giúp đỡ, hướng dẫn trực tiếp từ anh Phạm Hồng Tuấn – Cán bộ hướng dẫn, cùng với việc nghiên cứu các tài liệu về phân tích thiết kế. Tôi đã cùng anh Tuấn xuống công ty Toyoda để triển khai thử nghiệm chương trình TGHP_Report.
97 trang |
Chia sẻ: aloso | Lượt xem: 2146 | Lượt tải: 0
Bạn đang xem trước 20 trang tài liệu Xây dựng và phát triển Hệ thống thông tin quản lý Truy vấn và kết xuất báo cáo, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
hính, khả thi về thời hạn và khả thi về kỹ thuật.
Khả thi về tổ chức: Là xét giải pháp được thực hiện trong môi trường của tổ chức. Phân tích viên phải trả lời hàng loạt các câu hỏi: Dự án có tôn trọng chính sách quản lý nhân sự của tổ chức hay không? Nó ảnh hưởng như thế nào tới không khí làm việc và quan hệ với khách hàng? Tác động của dự án đối với các hệ thống bên cạnh? Người sử dụng có sẵn sàng tham gia vào dự án hay không?...
Khả thi về kỹ thuật được đánh giá bằng cách so sánh công nghệ hiện có hoặc có thể mua sắm được với yêu cầu kỹ thuật của hệ thống đề xuất. Cũng như việc các thiết bị đó có tương thích với công nghệ có sẵn trong tổ chức.
Khả thi về tài chính: Cần xem xét giữa lợi ích thu được từ hệ thống so với chi phí bỏ ra để thực hiện dự án.
Khả thi về thời gian: Là xem xét các khả năng trên có thể hoàn thành đúng thời gian đã đặt ra hay không.Trong giai đoạn này phải đưa ra được bảng tiến độ thời gian.
3.1.4. Chuẩn bị và trình bày báo cáo về đánh giá yêu cầu
Báo cáo này được gửi cho người có thẩm quyền quyết định việc có thực hiện bước tiếp theo của dự án. Vì thế báo cáo phải là bức tranh toàn cảnh về hệ thống mới và những kiến nghị trong những bước thực hiện tiếp theo một cách rõ ràng đầy đủ nhất.
Báo cáo cần trình bày rõ các nội dung sau:
- Nhắc lại yêu cầu (tên yêu cầu, tên người yêu cầu, hệ thống thông tin nghiên cứu, những vấn đề do người yêu cầu nêu lên)
- Phương pháp tiến hành yêu cầu ( các công cụ thu thập thông tin, những người đã gặp và làm việc )
- Mô tả khung cảnh ( nêu các bộ phận, các chức năng, các vị trí công tác có ảnh hưởng hoặc bị ảnh hưởng của hệ thống nghiên cứu, nêu tên các nhà quản lý có trách nhiệm, đặc trưng về tổ chức, đặc trưng về công nghệ, khung cảnh tài chính )
- Hệ thống nghiên cứu ( tên gọi và mô tả, mục đích của hệ thống )
- Nêu các vấn đề ( vấn đề dưới góc độ các nhà quản lý có liên quan và dưới góc độ nhà phân tích )
- Đánh giá về tính khả thi ( tổ chức, kỹ thuật, thời gian, tài chính )
- Kiến nghị
- Đề xuất của dự án ( Mô tảnhiệm vụ cần thực hiện, đề xuất về thời hạn, đề xuất về chi phí )
3.2. Phân tích chi tiết
Phân tích chi tiết được tiến hành ngay sau khi có sự đánh giá thuận lợi về yêu cầu. Mục đích chính của giai đoạn này là hiểu rõ những vấn đề của hệ thống đang nghiên cứu, xác định những nguyên nhân đích thực của những vấn đế đó, xác định những đòi hỏi, những ràng buộc áo đặt đối với hệ thống và xác định mục tiêu mà hệ thống thông tin mới phải đạt được. Trên cơ sở nội dung báo cáo phân tích chi tiết sẽ quyết định tiếp tục tiến hành hay thôi phát triển một hệ thống mới. Giai đoạn này gồm có các công đoạn sau đây:
-Lập kế hoạch phân tích chi tiết
-Nghiên cứu môi trường của hệ thống đang tồn tại
-Nghiên cứu hệ thống thực tại
-Đứa ra chẩn đoán và xác định các yếu tố giải pháp
-Đánh giá lại tính khả thi
-Thay đổ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.2.1.Thu thập thông tin.
Để có thể tiến hành phân tích chi tiết trước hết ta phải thu thập thông tin. Có nhiều phương pháp thu thập thông tin như phỏng vấn, nghiên cứu tài liệu, sử dụng phiếu điều tra, quan sát.
Các thông tin thu thập được cần phải được phân loại theo các tiêu chí:
- Hiện tại / tương lai:
Thông tin cho hiện tại phản ánh chung về môi trường hoàn cảnh, các thông tin có lợi ích cho nghiên cứu hệ thống quản lý.
Thông tin cho tương lai được lấy thu thập từ các mong muốn, phàn nàn, các dự kiến kế hoạch
- Tĩnh / động / biến đổi:
Các thông tin tĩnh là các thông tin sơ đẳng, cấu trúc hoá. Ví dụ các thông tin về mã khoa, mã lớp, sinh viên, …
Các thông tin động thường là các thông tin về không gian, thời gian, …
Các thông tin biến đổi: thông tin biến đổi là do các quy tắc quản lý, các quy định của nhà nước…
- Môi trường / nội bộ: Phân biệt các thông tin của nội bộ hay môi rường có tác động tới hệ thống
Thông tin thuộc nội bộ hay môi trường của hệ thống, thông thường thì người ta tổ chức sắp xếp, tổ hợp những vấn đề thông tin trên lại như sau:
Các thông tin về hệ thống hiện tại.
Các thông tin về môi trường, hoàn cảnh.
Các thông tin có ích cho hệ thống đang nghiên cứu.
- Các thông tin sơ đẳng
- Các thông tin có cấu trúc (sổ sách, file…).
- Hình thức tổ chức của cơ quan (phòng, ban).
- Trong không gian: con đường lưu trữ tài liệu, chứng từ.
- Trong thời gian: th.gian xử lý hạn định thực hiện (tính lương, v.v…).
- Các quy tắc quản lý.
- Các công thức tính toán.
- Thứ tự xử lý trước / sau.
Tĩnh
Biến đổi
Động
Các thông tin cho tương lai (nguyện vọng, yêu cầu)
- Được phát biểu (ý muốn, dự định cải tiến trong tương lai)
- Có ý thức không phát biểu: cần gợi ý (do ngại mà không phát biểu)
- Không ý thức: dự đoán
Các thông tin về hệ thống hiện tại.
Các thông tin về môi trường, hoàn cảnh.
Các thông tin có ích cho hệ thống đang nghiên cứu.
- Các thông tin sơ đẳng
- Các thông tin có cấu trúc (sổ sách, file…).
- Hình thức tổ chức của cơ quan (phòng, ban).
- Trong không gian: con đường lưu trữ tài liệu, chứng từ.
- Trong thời gian: th.gian xử lý hạn định thực hiện (tính lương, v.v…).
- Các quy tắc quản lý.
- Các công thức tính toán.
- Thứ tự xử lý trước / sau.
Tĩnh
Biến đổi
Động
Các thông tin cho tương lai (nguyện vọng, yêu cầu)
- Được phát biểu (ý muốn, dự định cải tiến trong tương lai)
- Có ý thức không phát biểu: cần gợi ý (do ngại mà không phát biểu)
- Không ý thức: dự đoán
3.2.2. Mã hoá dữ liệu
Việc xây dựng hệ thống thông tin rất cần phải mã hóa dữ liệu. Mã hoá là tên viết tắt gắn cho một đối tượng nào đó. Trong mỗi đối tượng gồm nhiều thuộc tính khác nhau thì yêu cầu mã hoá cho các thuộc tính cũnglà một yêu cầu cần thiết. Ngoài ra mã hoá còn là hình thức chuẩn hoá dữ liệu để phân loại dữ liệu lưu trữ và tìm kiếm có hiệu quả và bảo mật dữ liệu đặc biệt trong các hệ thống thông tin xử lý bằng máy tính.
VD: Khi ta xác định một sinh viên thì mã số sinh viên chính là mã của sinh viên đó. Và khi ta nói mã số sinh viên 44CQ2417 thì chỉ có duy nhất một sinh viên có mã số đó.
Lợi ích của việc mã hoá dữ liệu
Nhận diện không nhầm lẫn đối tượng
Mô tả nhanh chóng các đối tượng
Nhận diện nhóm đối tượng nhanh hơn
3.2.3. Công cụ mô hình hóa
3.2.3.1. Sơ đồ luồng thông tin
Các ký pháp của sơ đồ luồng thông tin:
- Xử lý:
Thủ công
Giao tác người - máy
Tin học hóa hoàn toàn
- Kho dữ liệu:
Thủ công
Tin học hóa
- Dòng thông tin:
Điều khiển:
3.2.3.2. Sơ dồ luồng dữ liệu (SĐLDL):
- Trong SĐLDL có sử dụng luồng dữ liệu (thông tin) chuyển giao giữa các chức năng.
- SĐLDL gồm có 5 yếu tố chính:
Chức năng
Luồng dữ liệu
Kho dữ liệu
Tác nhân ngoài
Tác nhân trong
Định nghĩa
Nhiệm vụ xử lý thông tin
Thông tin vào / ra một chức năng xử lý
Nơi lưu trữ thông tin trong một thời gian
Người hay tổ chức ngoài hệ thống có giao tiếp với hệ thống
Một chức năng hay một hệ con của hệ thống nhưng được mô tả ở trang khác
Tên đi kèm
Động từ(+ bổ ngữ)
Danh từ(+ tính từ)
Danh từ(+ tính từ)
Danh từ
Động từ
Tên
Tên
Tên
Tên
Tên
Làm đơn đặt hàng
Đơn hàng
Nhà cung cấp
Hoá đơn đã
xác nhận chi
Thanh toán
Biểu đồ
Ví dụ
Ví dụ: Sơ đồ cung ứng vật tư
Nhà cung cấp
Đặt hàng
Đối chiếu
Nhận hàng
Dự trù / Đơn hàng
Phân xưởng sản xuất
Đơn hàng
Nhận hàng
Nhà cung cấp
Thanh tóan
Phiếu giao hàng (+hàng)
Hóa đơn
Cheque
Hóa đơn đã xác nhận chi
Đơn đặt hàng
Thông tin thương lượng
Phiếu phát hàng
Danh sách đơn hàng
Dự trù
Danh sách hàng nhận
3.2.3.3. Phân mức:
a. Khái niêm:
Là sự phân cấp từ mức tổng quát đến mức chi tiết để nêu lên các chức năng của hệ thống. Tùy theo quy mô của hệ thống mà sự phân cấp này chi tiết đến mức nào, tuy nhiên, đa số thường được chia thành 3 mức:
A
B
C
D
E
F
G
H
I
Mức 0 (Mức khung cảnh)
Mức 1 (Mức đỉnh)
Mức 2 (Mức dưới đỉnh)
Hình 3.2: Cấu trúc một biểu đồ phân cấp chức năng
b. Phân mức để vẽ nhiều biểu đồ luồng dữ liệu:
- Biểu đồ luồng dữ liệu mức khung cảnh (mức 0): mức này chỉ có một biểu đồ gồm chức năng chính của hệ thống và biểu diễn hệ thông tin có giao tiếp với các tác nhân ngoài nào. Biểu đồ luồng dữ liệu mức khung cảnh thường có dạng như sau:
Tác nhân ngoài
Chức năng A
Tác nhân ngoài
Hình 3.3: Hình thức một biểu đồ luồng dữ liệu mức khung cảnh
- Biểu đồ luồng dữ liệu mức đỉnh (mức 1): Biểu đồ luồng dữ liệu mức đỉnh dùng để biểu diễn chức năng tổng quát A một cách chi tiết hơn bằng cách phân nhỏ chức năng A thành các chức năng chi tiết hơn và cũng chỉ có một biểu đồ. Biểu đồ luồng dữ liệu mức đỉnh thường có hình thức như sau:
Tác nhân ngoài 1
1
Chức năng A.1
Tác nhân ngoài 2
2
Chức năng A.2
Kho dữ liệu A
Hình 3.4 : Hình thức một biểu đồ luồng dữ liệu mức đỉnh
- Biểu đồ luồng dữ liệu mức dưới đỉnh (mức 2): Tất cả những chi tiết thông tin của hệ thống thường thể hiện rõ ở biểu đồ mức dưới đỉnh. Biểu đồ luồng dữ liệu này gồm nhiều biểu đồ chi tiết, mỗi biểu đồ thể hiện một chức năng chi tiết thường đầy đủ tất cả các đối tượng của hệ thống biểu đồ luồng dữ liệu . Ví dụ một biểu đồ luồng dữ liệu mức dưới đỉnh được thể hiện chi tiết của chức năng 1 ở trên.
Tác nhân ngoài
1.1
Chức năng A.1.1
1.2
Chức năng A.1.2
Kho dữ liệu A
Tác nhân trong
Hình 3.5: Biểu đồ luồng dữ liệu mức dưới đỉnh 1 (giải thích chức năng 1 ở biểu đồ luồng dữ liệu mức đỉnh)
Tác nhân ngoài
2.1
Chức năng A.2.1
2.2
Chức năng A.2.2
Kho dữ liệu B
Hình 3.6: Biểu đồ luồng dữ liệu mức dưới đỉnh 2 (giải thích chức năng 2 ở biểu đồ luồng dữ liệu mức đỉnh)
3.3. Thiết kế Logic
Giai đoạn náy nhằm xác định tất cả các thành phần logic của hệ thống thông tin, cho phép loại bỏ được các vấn đề của hệ thống thực tế và đạt được những mục tiêu đã được thiết lập ở giai đoạn trước. Mô hình logic của hệ thống mới sẽ bao hàm thông tin mà hệ thống mới sẽ sản sinh ra, nội dung của cơ sở dữ liệu, các xử lý và hợp thức hóa sẽ phải thực hiện và các dữ liệu sẽ được nhập vào. Mô hình logic sẽ phải được người sử dụng chấp nhận. Thiết kế logic có những công đoạn 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 hóa mô hình logic
3.3.1.Thiết kế cơ sở dữ liệu
3.3.1.1. Thiết kế cở dữ liệu logic từ thông tin đầu ra
Bước 1: Xác định các thông tin đầu ra
+ Liệt kê toàn bộ thông tin đầu ra
+ Nội dung khối lượng tần xuất và nơi nhận chúng
Bước 2: Xác định các tệp cần để cung cấp đủ dữ liệu cho việc tạo ra các thông tin đầu ra theo yêu cầu.
Liệt kê các phần tử thông tin trên đầu ra thành một danh sách các thuộc tính, đánh dấu các thuộc tính lặp (ký hiệu R), đánh dấu các thuộc tính thứ sinh (S) - thuộc tính được sinh ra từ các thuộc tính khác, sau đó loại bỏ chúng ra khỏi danh sách, chỉ để lại các thuộc tính cơ sở. Gạch chân các thuộc tính khoá cho thông tin đầu ra.
Các mức chuẩn hóa:
- Chuẩn hoá mức 1 (1NF): trong một danh sách không được chứa những thuộc tính lặp. Cần tách các thuộc tính lặp này ra một danh sách con, có ý nghĩa dưới góc độ quản lý. Cần gắn cho danh sách mới một cái tên, và tìm thuộc tính định danh riêng và thêm thuộc tính định danh của danh sách gốc. Trong một số trường hợp nếu có thuộc tính ít ý nghĩa thì cũng có thể bỏ đi.
- Chuẩn hoá mức 2 (2.NF): trong một danh sách mỗi thuộc tính phải phụ thuộc hàm vào toàn bộ khoá chứ không chỉ phụ thuộc vào một phần tử của khoá. Nếu có sự phụ thuộc này thì cần phải tách 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.
Lấy bộ phận khoá đó làm khoá cho danh sách mới. Đồng thời đặt cho danh sách mới này một tên riêng cho phù hợp với nội dung của các thuộc tính trong danh sách.
- Chuẩn hoá mức 3 (3.NF): trong danh sách không cho phép có sự phụ thuộc bắc cầu giữa các thuộc tính. Ví dụ : Z=f(Y) và Y=g(X), vì thế cần phải tách ra hai danh sách chứa quan hệ Z với Y và Y với X
Mô tả các tệp
Sau khi chuẩn hoá xong mức 3, mỗi danh sách tương ứng trong mức 3 sẽ cho ta một tệp cơ sở dữ liệu. Mỗi một thuộc tính trong dánh sách tương ứng là một thuộc tính trong tệp.
Bước 3: Tích hợp các tệp nói về cùng một thực thể thành một tệp duy nhất cho thực thể đó
Bước 4: Xác định liên hệ lôgic giữa các tệp và thiết lập sơ đồ cấu trúc dữ liệu
3.3.1.2. Thiết kế cơ sở dữ liệu bằng phương pháp mô hình hóa
a.Thực thể:
Thực thể là những đối tượng được quan tâm đến trong một tổ chức, trong một hệ thống, nó có thể là đối tượng cụ thể hay trừu tượng.
Cần phải hiểu rằng, khái niệm thực thể cho một sự liên tưởng tới một tập hợp các đối tượng có cùng các đặc trưng, chứ không phải một đối tượng riêng biệt. Thực thể được biểu diễn bằng hình chữ nhật trong đó có khi tên thực thể:
Môn học
Sinh viên
b.Liên kết:
Liên kết là sự kết nối có ý nghĩa giữa hai hay nhiều thực thể phản ánh một ràng buộc.
c. Kiểu liên kết: là tập hợp các liên kết cùng bản chất. Giữa các thực thể có thể tồn tại nhiều mối liên kết, mỗi mối liên kết xác định một tên duy nhất.
Các dạng kiểu liên kết:
- Liên kết một - một (1 - 1) giữa hai thực thể A, B là ứng với một thực thể trong A có một thực thể trong B và ngược lại. Trong thực tế liên kết này ít xảy ra, thông thường liên kết này mang đặc trưng bảo mật hoặc cần tách bạch một kiểu thực thể phức tạp thành kiểu thựcthể nhỏ hơn.
- Liên kết một nhiều (1 - N) giữa hai kiểu thực thể A, B là ứng với một thực thể trong A có nhiều thực thể trong B và ngượclại ứng với một thực thể trong B chỉ có 1 thực thể trong A
- Liên kết nhiều nhiều (N - N) giữa hai kiểu thực thể A, B là ứng với một thựcthể trong A có nhiều thực thể trong B và ngược lại ứng với một thực thể trong B có nhiều thực thể trong A.
d. Các thuộc tính:
Thuộc tính là giá trị thể hiện một đặc điểm nào đó của một thực thể hay một liên kết.
Ví dụ: Thuộc tính điểm thi cho quan hệ giữa một môn học và một sinh viên
Có 3 loại thuộc tính:
-Thuộc tính định danh là thuộc tính dùng để xác địnhmột cách duy nhất mỗi lần xuất
Ví dụ: Mã số hàng hóa là duy nhất cho hàng hóa
-Thuộc tính mô tả dùng để mô tả về thực thể
Ví dụ: Họ tên sinh viên
- Thuộc tính quan hệ dùng để chỉ đến một lần xuất nào đó trong thực thể có quan hệ.
Ví dụ: Thuộc tinh mã môn khi trong thực thể môn học trỏ tới thực thể sinh viên
3.3.2.Thiết kế xử lý
Các sơ đồ logic của xử lý làm rõ những quan hệ có tính chất ngữ nghĩa của các dữ liệu và không quan tâm đến những yếu tố mang tính chất tổ chức. Thiết kế xử lý logíc được thực hiện thông qua phân tích tra cứu và phân tích cập nhật.
Phân tích tra cứu: là tìm hiểu xem bằng cách nào để có được những thông tin đầu ra từ các tệp được thiết kế trong phần thiết kế cơ sở dữ liệu. Kết quả của việc phân tích sẽ được thể hiện thành sơ đồ phân tích tra cứu và đưa vào các phích xử lý trong từ điển hệ thống.
Phân tích cập nhật: Thông tin trong cơ sở dữ liệu phải được thường xuyên cập nhật để đảm bảo cơ sở dữ liệu phản ánh được tình trang dữ liệu mới nhất của các đối tượng mà nó quản lý.
Phân tích cập nhật phải thông qua các bước sau:
- Lập bảng sự kiện cập nhật
- Xác định cách thức hợp lệ hoá dữ liệu cập nhật
Tính toán số lượng xử lý, tra cứu và cập nhật: Một xử lý trên sơ đồ con logic được phân rã thành các thao tác xử lý cơ sở hoặc tra cứu hoặc cập nhật. Để tính khối lượng cho chúng, ta phải quy đổi khối lượng hoạt động của các thao tác xử lý về theo khối lượng xử lý của một thao tác cơ sở được chọn làm đơn vị.
3.4. Đề xuất các phương án của giải pháp
Đây là việc xây dựng các phương án khác nhau để cụ thể hóa mô hình logic. Mỗi một phương án khác nhau là phác họa của mô hình vật lý ngoài của hệ thống nhưng chưa phải là mô tả chi tiết. Để giúp người sử dụng lựa chọn giải pháp vật lý nào tốt hơn các mục tiêu đã định ra trước đây thì phải đánh giá các chi phí và lợi ích (hữu hình và vô hình) cả mỗi phương án và phải có những khuyến nghị cụ thể. Những người sử dụng sẽ chọn lấy một phương án tỏ ra đáp ứng tốt nhất các yêu cầu của họ mà vẫn tôn trọng các ràng buộc của tổ chức. Các công đoạn 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 tổ chức
-Xây dựng các phương án của 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 của giai đoạn đề xuất các phương án giải pháp
3.4.1. Xác định các ràng buộc tin học và tổ chức
Hệ thống thông tin luôn luôn tồn tại trong một môi trường nhất định, luôn có sự tác động qua lại giữa hệ thống và môi trường. Một hệ thống có thể hoạt động tốt trong môi trường của tổ chức này nhưng có thể lại hoạt động kém trong môi trường một tổ chức khác. Do đó trong quá trình phát triển hệ thống thông tin phải luôn luôn chú ý đến các ràng buộc liên quan đến hệ thống.
Các ràng buộc có liên quan đến tổ chức bao gồm tài chính dự trù cho việc phát triển hệ thống mới, phân bố người sử dụng, phân bố của trang thiết bị đang sử dụng, quan điểm của người lãnh đạo , tình hình nhân sự…
Các ràng buộc về tin học bao gồm các ràng buộc về phần cứng, phần mềm và nguồn lực về tin học.
3.4.2. Xây dựng các phương án của giải pháp
Quá trình phát triển hệ thống thông tin chịu tác động của rất nhiều yếu tố, các vấn đề thì luôn luôn biến đổi không ngừng do đó cần phải xây dựng một số phương án cho giải pháp để đáp ứng kịp thời những thay đổi, đảm bảo đúng tiến độ của quá trình phát triển. Việc xây dựng một phương án của giải pháp bắt đầu từ hai khâu chính là: xác định biên giới phần tin học hóa và xác định cách thức cho các xử lý.
Xác định biên giới cho phần tin học hóa là quá trình xác định phạm vi tiến hành tin học hóa, phân chia phần thủ công và tin học hóa của hệ thống thông tin. Sơ đồ luồng dữ liệu (DFD) mức 0 hoặc mức 1 là công cụ tốt cho việc phân chia biên giới.
Xác định cách thức xử lý được tiến hành sau khi đ• xác định biên giới cho phần tin học hóa tức là phải lựa chọn cách thức xử lý theo lô, xử lý hội thoại hay hỗn hợp. Đồng thời lựa chọn các thiết bị ngoại vi để nhập dữ liệu và đưa ra kết quả, quyết định về mức tập trung của xử lý. Cán bộ phân tích cũng phải ước tính chi phí cho các phương án đề xuất.
3.4.3. Đánh giá các phương án của giải pháp
Từ các phương án được đưa ra trong công đoạn trên, phân tích viên tiến hành đánh giá để lựa chọn phương án khả thi và đem lại hiệu quả cao nhất. Các phương pháp thường sử dụng để đánh giá là: phân tích chi phí lợi ích và phân tích đa tiêu chuẩn.
3.4.4. Chuẩn bị và trình bày báo cáo về các phương án của giải pháp
Tổng hợp dữ liệu, lên báo cáo về các phương án của giải pháp từ đó lựa chọn, đưa ra phương án tốt nhất.
3.5. Thiết kế vật lý ngoài
Giai đoạn này được tiến hành sau khi một phương án giải pháp được lựa chọn. Thiết kế vật lý bao gồm hai tài liệu kết quả cần có: Trước hết là một tài liệu bao chứa tất cả các đặc trưng của hệ thống mới sẽ cần cho việc thực hiện kỹ thuật; và tiếp đó là một tài liệu dành cho người sử dụng và nó mô tả phần thủ công và cả những giao diện với những phần tin học hóa. Những công đoạn chính của của giai đoạn này là:
-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ách thức tương tác với phần tin học hóa
-Thiết kế các thủ tục thủ công
-Chuẩn bị và trình bày báo cáo về thiết kế vật lý ngoài
3.5.1. Lập kế hoạch thiết kế vật lý ngoài
Nhiệm vụ của công đoạn này là lựa chọn phương tiện, khuôn dạng của các dòng vào/ra, xác định cách thức hoạt động với phần thủ công và phần tin học hóa, phân bố thời gian và lập danh mục các sản phẩm.
Một số nguyên tắc khi thiết kế vật lý ngoài một hệ thống thông tin:
- Đảm bảo rằng người sử dụng luôn đang kiểm soát hệ thống.
- Thiết kế hệ thống theo thói quen và kinh nghiệm của người sử dụng.
- Gắn chặt chẽ với các thuật ngữ, dạng thức và các thủ tục đã được dùng.
- Che khuất những bộ phận bên trong của các phần mềm và phần cứng tạo thành hệ thống.
- Cung cấp thông tin tư liệu trên màn hình.
- Giảm tới mức tối thiểu lượng thông tin mà người sử dụng phải nhớ trong khi sử dụng hệ thống.
- Dựa vào những quy tắc đã được chấp nhận về đồ họa, ký họa khi thể hiện thông tin trên màn hình hoặc trên giấy.
3.5.2. Thiết kế chi tiết vào/ra
Thiết kế chi tiết vào/ra nhằm thiết kế khuôn dạng trình bày của các đầu ra và thể thức nhập tin cho người sử dụng.
a. Thiết kế vật lý các đầu ra
Lựa chọn vật mang tin phải được thực hiện đầu tiên vì nó xác định hình dạng thực tế của đầu ra. Có bốn vật mang tin được sử dụng để trình bày thông tin là: giấy, màn hình, tiếng nói và vật mang tin từ tính hoặc quang tính.
Bố trí thông tin trên vật mang là xem xét cách thức bố trí thông tin trên các vật mang tin.
b. Thiết kế vào
Đây là quá trình thiết kế các thủ tục nhập liệu nhằm đem lại sự tiện dụng và giảm thiểu các sai sót. Thiết kế vào bao gồm: lựa chọn phương tiện nhập và thiết kế khuôn dạng cho thông tin nhập.
Một số quy tắc khi thiết kế màn hình nhập liệu:
- Khi nhập dữ liệu từ một tài liệu gốc, khuôn dạng màn hình phải giống như tài liệu gốc.
- Nên nhóm các trường trên màn hình theo một trật tự có ý nghĩa, theo trật tự tự nhiên, theo tần số sử dụng, theo chức năng hoặc theo tầm quan trọng.
- Không nhập các thông tin mà hệ thống có thể truy cập được từ cơ sở dữ liệu hoặc tính toán được.
- Đặt tên trường ở trên hoặc ở trước trường nhập.
- Đặt các giá trị ngầm ở trên hoặc ở trước trường nhập.
- Đặt các giá trị ngầm định cho phù hợp.
- Sử dụng phím Tab để chuyển trường nhập…
3.5.3. Thiết kế cách thức giao tác với phần tin học hóa
Thiết kế giao tác với phần tin học hóa là quá trình thiết kế các giao tác người-máy giúp cho người sử dụng chỉ định những công việc mà hệ thống cần thực hiện. Có bốn cách thức để thực hiện tương tác với hệ thống tin học hóa.
Giao tác bằng tập hợp lệnh: được thực hiện thông qua việc nhập các câu lệnh yêu cầu hệ thống thực hiện.
Giao tác bằng các phím trên bàn phím: đây là cách giao tác dựa trên việc sử dụng một phím hoặc một tổ hợp phím để thực hiện một lệnh nào đó của người sử dụng.
Giao tác qua thực đơn: quá trình giao tác người-máy được thực hiện thông qua một danh sách các công việc mà hệ thống có thể thực hiện vào thời điểm đó. Với các hệ thống phức tạp thì thực đơn có thể xây dựng thực đơn phân cấp hoặc thực đơn hoa tiêu.
Giao tác dựa vào các biểu tượng: với các kỹ thuật lập trình đồ họa có thể thiết kế giao tác thông qua các biểu tượng trên màn hình
3.6. Triển khai kĩ thuật
Kết quả quan trọng nhất của giai đoạn thực hiện kỹ thuật là phần tin học hoá của hệ thống thông tin tức là phần mềm. Những người chịu trách nhiệm về giai đoạn này phải cung cấp các tài liệu như các bản hướng dẫn sử dụng và thao tác cũng như các tài liệu mô tả về hệ thống. Giai đoạn triển khai kỹ thuật hệ thống bao gồm các công đoạn
-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 hệ thống
-Chuẩn bị tài liệu
3.7. Cài đặt bảo trì và khai thác hệ thống
Cài đặt hệ thống là công việc trong đó việc chuyển từ hệ thống cũ sang hệ thống mới được thực hiện. Để việc chuyển đôỉ này được thực hiện với những va chạm ít nhất, cần phải lập kế hoạch một cách cẩn thận. 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á
CÔNG CỤ THỰC HIỆN ĐỀ TÀI
4.1. Ngôn ngữ lập trình Visual Basic
4.1.1. Lập trình hướng đối tượng:
Những chương trình nhỏ thì việc sử dụng lập trình hướng đối tượng OOP – Object Orient Programming không phù hợp. Với kiểu lập trình cổ điển, còn gọi là lập trình theo cấu trúc (Structure Software Development). Ta phải xác định dữ liệu cũng như cách thức xử lí dữ liệu dùng trong ứng dụng, sau đó các hàm và thủ tục được xây dựng để thực sự xử lí dữ liệu. Để giải quyết một vấn đề lớn, ứng dụng được chia thành nhiều vấn đề nhỏ để giải quyết trong các hàm / thủ tục.
OOP hơi khác một chút. Với lập trình có cấu trúc, cách thức xây dựng ứng dụng, cách chúng kết hợp ở mức chương trình rất khác biệt với thực tế cuộc sống. Lấy một ứng dụng lương làm ví dụ: KHi nhân viên được nhận vào làm việc, các thong tin chi tiết về nhân viên đó sẽ được nhập vào hệ thống tính lương. Sử dụng lập trình có cấu trúc, ta sẽ dùng một biểu mẫu để chứa các thông tin của nhân viên và viết chương trình để copy tất cả các thông tin đã nhập vào biểu mẫu đó vào cơ sở dữ liệu của công ty. Để tạo ra phiếu trả lương, ta cần một biểu mẫu in phiếu trả lương cho phép người sử dụng chươgn trình chọn một nhân viên sẽ trả lương, rồi viết chương trình để thu thập tất cả các thông tin từ cơ sở dữ liệuvà định dạng nó rồi đưa ra máy in.
Ta có thể thấy rằng , giải pháp này nặng về kĩ thuật và nghiêng về xử lí máy tính hơn là cách thực hiên trong thực tế. Lập trình hường đối tượng sẽ làm cho mọi việc trở nên đơn giản hơn nhiều.
Với OOP ta viết một chương trình dựa trên các đối tượng thực tế của cuộc sống. Ví dụ , nếu ta đang viết một ứng dụng tính lương, đối tượng mà ta cần làm việc sẽ là Phòng ban và Nhân viên. Mỗi đối tượng sẽ có một thuộc tính : Một nhân viên có tên và số, một phòng ban có vị trí và trưởng phòng. Thêm vào đó, có một số phương thức để phòng phát lương áp dụng cho các đối tượng trên-mỗi tháng một lần. Nó quyết định áp dụng phương thức phát lương cho các đối tượng nhân viên. Lập trinh OOP cũng thế: Ta quyết định đối tượng nào cần thiết, đối tượng có những thuộc tính nào, ta sẽ áp dụng những phương thức nào cho đối tượng.
Ta có thể thấy rằng đây là một phương pháp hết sức gần gũi với thực tế cuộc sống thường xuyên gặp phải. Nhân viên được xem là đối tượng trong một ứng dụng và phòng ban là đối tượng có liên quan với nhân viên.
Với lập trình có cấu trúc ta có xu hướng xem dữ liệu và cách thức xử lí dữ liệu là hai phần tách biệt nhau, hoàn toàn khác với lập trình hướng đối tượng và cách xử lí trong cuộc sống mà ta vẫn thường làm. Với OOP ta đóng gói dữ liệu và các chức năng xử lí dữ liệu trong một đối tượng (Object) giống hệt với đối tượng trong thực tế cuộc sống. Nhân viên có tên và đị chỉ, vì vậy đây sẽ là thuộc tính của đối tượng nhân viên - dữ liệu. Nhân viên có thể được nhận việc hoặc bị đuổi việc, đây là phương thức của đối tượng nhân viên - chức năng.
Bằng cách chia ứng dụng thành nhiều đối tượng và phát triển trên các đối tượng, kĩ thuật này gần gũi hơn với đời sống. Nó giúp tạo ra các chương trình dễ đọc, dễ bảo trì. Kĩ thuật này là sự lựa chọn của nhiều công ty lớn trong phát triển phần mềm – Trong đó có công ty TNHH Fujitsu Việt Nam.
4.1.2.Giới thiệu về Visual Basic
Visual Basic là gì? Phần "Visual" đề cập đến phương phàp được sử dụng để tạo giao diện đồ họa người dùng (Graphical User Interface hay viết tắc là GUI) . Có sẵn những bộ phận hình ảnh, gọi là controls, bạn sắp đặt vị trí và quyết định các đặc tính của chúng trên một khung màn hình, gọi là form. Nếu bạn đã từng sử dụng chương trình vẽ chẳng hạn như Paint, bạn đã có sẵn các kỹ năng cần thiết để tạo một GUI cho VB6.
Phần "Basic" đề cập đến ngôn ngữ BASIC (Beginners All-Purpose Symbolic Instruction Code), một ngôn ngữ lập trình đơn giản, dễ học, được chế ra cho các khoa học gia (những người không có thì giờ để học lập trình điện toán) dùng.
Visual Basic đã được ra từ MSBasic, do Bill Gates viết từ thời dùng cho máy tính 8 bits 8080 hay Z80. Hiện nay nó chứa đến hàng trăm câu lệnh (commands), hàm (functions) và từ khóa (keywords). Rất nhiều commands, functions liên hệ trực tiếp đến MSWindows GUI. Những người mới bắt đầu có thể viết chương trình bằng cách học chỉ một vài commands, functions và keywords. Khả năng của ngôn ngữ này cho phép những người chuyên nghiệp hoàn thành bất kỳ điều gì nhờ sử dụng ngôn ngữ lập trình MSWindows nào khác.
Người mang lại phần "Visual" cho VB là ông Alan Cooper. Ông đã gói môi trường hoạt động của Basic trong một phạm vi dễ hiểu, dễ dùng, không cần phải chú ý đến sự tinh xảo của MSWindows, nhưng vẫn dùng các chức năng của MSWindows một cách hiệu quả. Do đó, nhiều người xem ông Alan Cooper là cha già của Visual Basic.
Visual Basic còn có hai dạng khác: Visual Basic for Application (VBA) và VBScript. VBA là ngôn ngữ nằm phía sau các chương trình Word, Excel, MSAccess, MSProject, .v.v.. còn gọi là Macros. Dùng VBA trong MSOffice, ta có thể làm tăng chức năng bằng cách tự động hóa các chương trình. VBScript được dùng cho Internet và chính Operating System.
Dù cho mục đích của bạn là tạo một tiện ích nhỏ cho riêng bạn, trong một nhóm làm việc của bạn, trong một công ty lớn, hay cần phân bố chương trình ứng dụng rộng rãi trên thế giới qua Internet, VB6 cũng sẽ có các công cụ lập trình mà bạn cần thiết.
4.2. Cơ sở dữ liệu Oracle và công cụ PL/SQL
Oracle là cơ sở dữ liệu hàng đầu thế giới. Oracle không chỉ nhắm tới những DN lớn mà còn nhắm tới những DN trung bình và cho cả những DN nhỏ. Cụ thể là Oracle Server có đủ các phiên bản thương mại từ Personal, Standard đến Enterprise (ngoài ra còn có Oracle lite nữa). Các lợi ích khi sử dụng cơ sở dữ liệu oracle: - Về phía các DN: Oracle tỏ ra rất có ưu điểm như tính bảo mật cao, tính an toàn dữ liệu cao, dễ dàng bảo trì-nâng cấp, cơ chế quyền hạn rỏ ràng, ổn định,...Oracle cũng không quá đắc như các bạn nghĩ, nếu DN đã từng mua lisence của MSSQLServer thì sẽ thấy giá của Oracle cũng không chênh lệch là bao thậm chí còn rẻ hơn , nhưng lợi ích có được lại rất lớn.- Về phía những nhà phát triển: Oracle cũng tỏ ra rất có ưu điểm như dễ cài đặt, dễ triển khai và dễ nâng cấp lên phiên bản mới.Hơn nữa Oracle còn tích hợp thêm PL/SQL, là một ngôn ngữ lập trình có cấu trúc - Structure Language. Tạo thuận lợi cho các lập trình viện viết các Trigger, StoreProcedure, Package. Đây là điểm rất mạnh so với các CSDL hiện có trên thị trường.Oracle, ngoài các kiểu dữ liệu thông thường còn có các kiểu dữ liệu đặc biệt khác góp phần mang lại sức mạnh cho Oracle như Blob, clob, Bfile, ...- Ngoài ra, bạn có thể triển khai Oracle trên nhiều OS khác nhau (Windows, Solaris, Linux,...) mà không cần phải viết lại PL/SQL code.Có thể import một dumpFile (backupFile) từ một máy chạy OS này sang OS khác hoặc từ một version thấp lên một version cao hơn mà không gặp bất cứ trở ngại nào ! (việc ngược lại cũng có thể thực hiện được nếu như bạn không dùng các tính năng mới so với version trước đó).
4.3. Xây dựng báo cáo với Crystal Report
Crystal Report là một công cụ hỗ trợ viết báo cáo rất mạnh, được sử dụng rất rộng rãi trên thế giới. Crystal Report có thể kết nối với tất cả các loại cơ sở dữ liệu, nó còn cung câp khả năng kết nối với các thủ tục lưu trữ (Store Procedure) với các tham biến (Parameter) để dễ dàng tạo ra các trường dữ liệu cho báo cáo. Sử dụng Crystal Report có thể dễ dàng chuyển báo cáo sang các định dạng file khác nhau như file .PDF, file Word, file Excel, ..... Điều đó giúp cho người sử dụng dễ dàng hơn, thực hiện một số tính toán hay công việc khác với báo cáo. Hơn nữa việc thiết kế báo cáo rất dễ dàng và thuận tiện, nhúng vào Visual Basic cũng đơn giản.
Chương 3: PHÂN TÍCH VÀ THIẾT KẾ HỆ THÔNG THÔNG TIN QUẢN LÝ TRUY VẤN VÀ KẾT XUẤT BÁO CÁO
XÁC ĐỊNH YÊU CẦU PHẦN MỀM
Các yêu cầu của khách hàng: Công ty Toyoda Gosei Hải Phòng
Các mẫu báo cáo yêu cầu từ công ty Toyoda Gosei Hải Phòng như sau:
1.1.1. Mẫu báo cáo PO – Purchase Order : Hoá đơn mua hàng
(Xem trang cuối: Phụ lục 1- Hoá đơn mua hàng )
1.1.2. Mẫu báo cáo PO Request - Yêu cầu đặt hàng:
(Xem trang cuối: Phụ lục 2- Yêu cầu đặt hàng)
1.1.3. Mẫu báo cáo Forecast - Dự báo nguyên vật liệu sử dụng
(Xem trang cuối: Phụ lục 3 - Dự báo nguyên vật liệu )
Các nghiệp vụ có liên quan đến báo cáo
Quá trình sản xuất của rmột doanh nghiệp bắt đầu từ việc mua nguyên vật liệu để sản xuất sản phẩm. Các nguyên vật liệu này được lưu trữ trong kho. Để đảm bảo cho quá trình sản xuất được liên tục thì kho nguyên vật liệu luôn luôn phải đảm bảo được một số lượng nguyên vật liệu định mức nhất định. Khi số lượng nguyên vật liệu trong kho nhỏ hơn giá trị định mức thì hệ thống Glovia tự động sinh ra các dữ liệu về số lượng nguyên vật liệu cần đặt mua để đảm bảo định mức nghuyên vật liệu và lưu trữ vào trong bảng PO của cơ sở dữ liệu Glovia. Các dữ liệu này cần được in ra thành báo cáo. Báo cáo này chính là PO Request. Sau khi PO Request được nhà quản lý kiểm tra, điều chỉnh và phê duyệt thì nó được gửi tới các nhà cung cấp nguyên vật liệu cho công ty. Lúc này, PO Request trở thành PO. PO chứa các thông tin về tên các nguyên vật liệu cần mua, số lượng mua, ... .và các thông tin khác liên quan đến việc giao dịch như phương thức thanh toán, phương thức vận chuyển, thời gian và địa điểm giao nhận hàng hoá.
1.2.1.Các nghiệp vụ phát sinh PR và PO:
1.2.1.1.Sơ đồ luồng ngữ cảnh quản lý kho nguyên vật liệu
Nguyên vật liệu
Nguyên vật liệu
Hệ thống quản lý kho nguyên vật liệu
Nhà cung cấp
Bộ phận sản xuất
1.2.1.2.Sơ đồ luồng dữ liệu Quản lý kho nguyên vật liệu
1. Nhập kho nguyên vật liệu
2. Xuất kho nguyên vật liệu
Kho nguyên vật liệu
3. Quản lý dự trữ kho nguyên vật liệu
Bộ phận sản xuất
Xác nhận cho phép xuất
Kết quả kiểm tra
Kiểm tra định mức nguyên vật liệu
Kho nguyên vật liệu
Yêu cầu nhập
Nguyên vật liệu
Nguyên vật liệu
Nguyên vật liệu
Bộ phận cung ứng
Nguyên vật liệu
1.2.1.3.Sơ đồ luồng dữ liệu Hoạt động quản lý dự trữ kho
Cho phép xuất
Đặt hàng
3.1. Kiểm tra định mức nguyên vật liệu
Nhà cung cấp
Bộ phận cung ứng
3.2. Yêu cầu đặt hàng
3.3. Xác nhận cho phép xuất
Yêu cầu đặt hàng (PR)
Hóa đơn mua hàng
(PO)
Nguyên vật liệu
Không đủ định mức
Đủ định mức
Bộ phận xuất kho
1.2.2. Các nghiệp vụ phát sinh Forecast:
Forecast sinh ra trên cơ sở kế hoạch sản xuất, định hướng và xu thế sản xuất của doanh nghiệp, bộ phận dự báo sản xuất sẽ đưa ra các số liệu cho báo cáo này. Thông tin chi tiết cho Forecast lấy từ bảng C_FC
PHÂN TÍCH VÀ THIẾT KẾ PHẦN MỀM
2.1. Kiến trúc hệ thống của phần mềm
HTTTQL Truy vấn và kết xuất báo cáo
Các báo cáo
Báo cáo hoá đơn đặt hàng - PO
Báo cáo yêu cầu đặt hàng – PO Request
Kết nối với cơ sở dữ liệu
Báo cáo Dự báo nguyên vật liệu – Forecast
2.2. Cấu trúc các bảng cơ sở dữ liệu trong cơ sở dữ liệu Glovia cần truy cập để lấy dữ liệu:
Bảng CCN – Corporation Control Number ( Bảng thông tin về doanh nghiệp sử dụng chương trình)
Bảng MAS_LOC – Master Location (Bảng thông tin về bộ phận sinh báo cáo)
Bảng PO_HDR – Purchase order header (Thông tin chung của hoá đơn đặt hàng):
Bảng VEN_LOC - Vendor location (Thông tin về doanh nghiệp cung cấp nguyên vật liệu):
Bảng PO - Purchase order information in detail (Thông tin chi tiết về đơn đặt hàng):
Bảng ITEM - Product information (Thông tin về nguyên vật liệu đặt mua):
Bảng TERMS – Thông tin về phương thức thanh toán :
2.3. Thiết kế kỹ thuật chi tiết
2.3.1. Thiết kế giao diện:
Giao diện kết nối với cơ sở dữ liệu:
Giao diện lựa chọn báo cáo:
Giao diện báo cáo hoá đơn mua hàng – PO:
Giao diện báo cáo yêu cầu mua hàng – PO Request:
Giao diện báo cáo dự báo nguyên vật liệu – Forecast:
2.3.2. Thiết kế các truy nhập cơ sở dữ liệu cho các trường của báo cáo:
2.3.2.1. Báo cáo Hoá đơn mua hàng – PO:
2.3.2.2. Báo cáo Yêu cầu đặt hàng – PO Request:
LẬP TRÌNH PHẦN MỀM
3.1. Sơ đồ các thuật toán sử dụng trong chương trình:
3.1.1. Thuật toán của chương trình truy vấn và kết xuất báo cáo:
Bắt đầu
Kết nối với cơ sở dữ liệu
Lựa chọn các báo cáo
Hiện Form điền thông tin truy vấn báo cáo
Xem báo cáo
Kết thúc
Y
N
3.1.2. Thuật toán kết nối với cở dữ liệu
Nhập tên server, tên user và mật khẩu
Tên server hoặc tên user hoặc mật khẩu sai
Kết thúc
Thông báo lỗi kết nối với cơ sở dữ liệu
Bắt đầu
Thông báo kết nối thành công, vào giao diện chương trình
Y
N
Nhập lại server, user, mật khẩu
N
Y
3.1.3. Thuật toán lựa chọn Form báo cáo:
Bắt đầu
Liệt kê danh sách các báo cáo
Hiện Form báo cáo PO
Hiện Form báo cáo PO Request
Kết thúc
FRM_PO
FRM_PR
Hiện Form báo cáo Forecast
FRM_FC
Lựa chọn báo cáo
3.1.4.Thuật toán xem báo cáo
Lựa chọn thông tin của báo cáo
Bắt đầu
Sinh dữ liệu cho báo cáo
Sinh dữ liệu thành công
Đưa ra báo cáo
Thông báo lỗi
Kết thúc
Y
N
3.1.5. Thuật toán sinh dữ liệu cho báo cáo
Bắt đầu
Nhận thông tin đầu vào từ Form ứng dụng Visual Basic
Truyền giá trị vào Parameter Field của Crystal Report
Tạo các Store Procedure để sinh dữ liệu cho báo cáo bằng PL/SQL
Thi hành các Store Procedure
Kết thúc
Thông báo lỗi thi hành
N
Y
3.2. Tài liệu hướng dẫn cài đặt:
3.3.1.Các yêu cầu của cài đặt đối với doanh nghiệp sử dụng chương trình:
Máy chủ cấu hình tối thiểu Pentium IV, 256MB RAM cung cấp dịch vụ có cài Oracle Server phiên bản 9.2.0.1
Máy client từ Pentium III trở lên, 256MB RAM cài Oracle Client
Doanh nghiệp sử dụng cơ sở dữ liệu Glovia
3.3.2.Các bước cài đặt:
Bước 1: Chạy các Sripts sau trong Oracle Database Server (Sử dụng công cụ PL/SQL Developer)
- pkg_cr.sql
CREATE_TABLES.sql
c_rpt001.sql
c_rpt001sub.sql
c_rpt001pr.sql
c_rpt001subpr.sql
c_tblrpt001.sql
c_tblrpt001pr.sql
Bước 2: Cài đặt Oracle Client trên các máy trạm
Bước 3: Cài đặt GloviaReport trên máy trạm (chạy GloviaSetup)
Bước 4: Cấu hình máy trạm để kết nối cơ sở dữ liệu
KẾT KUẬN
Chương trình TGHP_Report có ý nghĩa rất lớn đối với trong việc đảm bảo tính liên tục của quá trình sản xuất. Nó có vai trò theo dõi tình trạng nguyên vật liệu trong kho để đưa ra các thông tin cần thiết cho các họat động xuất-nhập kho, đảm bảo đủ nguyên vật liệu cho quá trình sản xuất.
Sau một thời gian nghiên cứu và học tập tại công ty Trách nhiệm hữu hạn Fujitsu Việt Nam, các vấn đề tôi đã tìm hiểu và các công việc đã thực hiện được là:
Thứ nhất: Tìm hiểu tổng quan cơ cấu tổ chức, các hoạt động, sản phẩm của công ty TNHH Fujitsu Việt Nam. Bên cạnh đó, tôi tham gia vào nhóm Glovia, tham gia vào dự án làm báo cáo cho công ty Toyoda Gosei Hải Phòng. Trong nhóm, tôi nghiên cứu các tài liệu về phần mềm Glovia.com, nghiên cứu các tài liệu liên quan đến nghiệp vụ kinh tế của Glovia.
Thứ hai: Để có thể thực hiện được đề tài tôi đã tìm hiểu các nghiệp vụ liên quan đến việc phát sinh báo cáo của công ty Toyoda Gosei Hải Phòng, tìm hiểu phần mềm GloviaReport của công ty đã triển khai cho công ty TOA Việt Nam.
Thứ ba: Công việc phân tích thiết kế chương trình được sự giúp đỡ, hướng dẫn trực tiếp từ anh Phạm Hồng Tuấn – Cán bộ hướng dẫn, cùng với việc nghiên cứu các tài liệu về phân tích thiết kế. Tôi đã cùng anh Tuấn xuống công ty Toyoda để triển khai thử nghiệm chương trình TGHP_Report.
Thứ tư: Lập trình chương trình gặp nhiều khó khăn được sự giúp đỡ của anh Nguyễn Tiến Tùng nhóm Yamaha, tôi đã tìm hiểu cách sử dụng ngôn ngữ lập trình Visual Basic, tìm hiểu cách viết Store Procedure bằng công cụ PL/SQL developer, cách truy cập dữ liệu Oracle và thiết kế báo cáo với Crystal Report. Cuối cùng tôi cũng dẫ hoàn thiện được chương trình.
Sau mỗi một giai đoạn hoàn thành công việc, tôi gửi bản thảo tới PSG.TS Hàn Viết Thuận và nhận sự chỉnh sửa của thầy.
Chương trình TGHP_ Report hiện đã được triển khai và đi vào hoạt động chính thức từ ngày 12/06/2006. Trong tương lai chương trình sẽ phát triển thêm một số báo cáo nữa, đó là: Báo cáo nhập xuất tồn kho nguyên vật liệu, Packing-weight list, Lệnh sản xuất,.....
DANH MỤC TÀI LIỆU THAM KHẢO
1. TS. Trương Văn Tú, TS. Trần Thị Song Minh - Giáo trình “Hệ thống thông tin quản lý” – NXB Thống Kê
2. PGS.TS. Hàn Viết Thuận – Giáo trình “Cấu trúc dữ liệu và Giải thuật” – NXB Thống Kê
3. Nguyễn Quang Thông – Giáo trình “Phân tích thiết kế hệ thống thông tin quản lý” - Tài liệu từ Internet
4. Bài giảng các môn : Hệ thống thông tin quản lý, Cấu trúc dữ liệu và giải thuật, Cơ sở dữ liệu.
5. Các tài liệu khác trên Internet ( www.oravn.com , www.caulacbovb.com, .....)
6. Oracle corporation – Develope PL/SQL program
7. Joe Estes, Neil FitzGerald, Kathryn Hunt, Steve Lucas, Ryan Marples - Teach Yourself Crystal Reports® 9
8. Glovia 7.1 workbook – For interal use only (Tài liệu nội bộ của công ty)
PHỤ LỤC: MỘT SỐ CODE CỦA CHƯƠNG TRÌNH
Thủ tục C_RPT001 - Lấy các thông tin cho báo cáo Hoá đơn mua hàng – PO
CREATE OR REPLACE PROCEDURE C_RPT001(p_CCN IN varchar2, p_MasLoc IN varchar2, p_PONo IN varchar2,
p_ETD IN varchar2, p_ETA IN varchar2,
p_MTHD IN varchar2, p_ShipFrom IN varchar2, p_ShipTo IN varchar2,
p_PayTerm IN varchar2, p_PartType IN varchar2, p_PartTypeDes IN varchar2, p_ShipTerms in varchar2,
p_RefCur IN OUT PKG_CR.RefCurType)
/*
==============================================================================
Tên thủ tục : C_RPT001
Mục đích : Lấy các thông tin cho báo cáo Hoá đơn mua hàng – PO
Tham số vào:
v_CCN : CCN code – Mã công ty
v_MasLoc : Master Location code – Mã bộ phận
v_PONo : Purchase order number - Số hoá đơn
Tham số ra: v_RefCur
==============================================================================
*/
AS
V_ATTN VARCHAR2(140);
V_Vencontact varchar2(16);
v_VenDor varchar2(40);
v_PurLoc varchar2(24);
v_VenLocName varchar2(140);
v_CCNAddr1 char(100);
v_CCNAddr2 char(100);
v_CCNAddr3 char(100);
v_CCNAddr4 char(100);
v_CCNAddr5 char(100);
v_CCNAddr6 char(100);
v_DatePlaced date;
v_DelTerm varchar2(16);
v_MLOCDESC varchar2(200);
v_TermsCode char(100);
v_Currency varchar2(12);
v_Buyer varchar2(16);
v_BuyerName varchar2(140);
--v_Trans varchar2(280);
v_rev varchar(20);
BEGIN
--Get date_place, del_term,...
SELECT max(substr(ven_contact,1,16)),max(substr(vendor,1,40)),max(substr(pur_loc,1,24)),max(date_placed), max(substr(Currency,1,12)), max(substr(Buyer,1,16))
INTO v_vencontact,v_VenDor, v_PurLoc, v_DatePlaced, v_Currency,v_Buyer
FROM po_hdr
WHERE ccn=p_CCN AND mas_loc=p_MasLoc AND LTrim(RTrim(po_num,' '),' ') = p_PONo;
--get del_term
select max(substr(a.description,1,16)) into v_DelTerm
from del_term a,
(
SELECT del_term,ccn
FROM po_hdr
WHERE ccn=p_CCN AND mas_loc=p_MasLoc AND LTrim(RTrim(po_num,' '),' ') = p_PONo
) b
where a.ccn = b.ccn and a.del_term = b.del_term ;
select max(substr(b.desc_,1,100)) into v_TermsCode
FROM (select terms_code, ccn from po_hdr where ccn=p_CCN AND mas_loc=p_MasLoc AND LTrim(RTrim(po_num))=p_PONo ) a,
terms b
WHERE a.terms_code = b.terms_code and a.ccn = b.ccn;
--Get Master Location Description
select max(substr(a.MLOC_DESC,1,200)) into v_MLOCDESC
from MAS_LOC a,
(
SELECT MAS_LOC,ccn
FROM po_hdr
WHERE ccn=p_CCN AND mas_loc=p_MasLoc AND LTrim(RTrim(po_num,' '),' ') = p_PONo
) b
where a.ccn = b.ccn and a.MAS_LOC = b.MAS_LOC;
--and ven_loc name
SELECT max(name) INTO v_VenLocName FROM ven_loc WHERE vendor=v_VenDor AND ven_loc=v_PurLoc;
--get Buyer name
SELECT max(name) INTO v_BuyerName FROM Buyer WHERE buyer=v_buyer;
--get ATTN
select max(name) into v_ATTN from Ven_con where vendor=v_VenDor and ven_loc=v_purloc and ven_contact=v_VenContact;
--Get ccn address
SELECT max(addr1),max(addr2),max(addr3),max(addr4),max(addr5),max(addr6) INTO v_CCNAddr1,v_CCNAddr2,v_CCNAddr3,v_CCNAddr4,v_CCNAddr5,v_CCNAddr6 FROM ccnadd WHERE ccn=p_CCN;
--Get Rev
select max(substr(nvl(text,''),1,20)) into v_rev from pohd_txt where pur_ccn = p_CCN and LTrim(RTrim(po_num)) = p_PONo;
if trim(v_rev) = '' then
v_rev := '';
end if;
if trim(v_rev) '' then
v_rev := '(' || trim(v_rev) || ')';
end if;
OPEN p_RefCur FOR
SELECT
v_CCNAddr1 ccnAddr1,
v_CCNAddr2 ccnAddr2,
v_CCNAddr3 ccnAddr3,
v_CCNAddr4 ccnAddr4,
v_CCNAddr5 ccnAddr5,
v_CCNAddr6 ccnAddr6,
v_VenLocName VenLocName,
to_char(v_DatePlaced,'dd-Mon-yyyy') DatePlaced,
v_DelTerm DeliveryTerm,
v_MLOCDESC MLOCDESC,
v_TermsCode TermsCode,
v_Currency Currency,
v_BuyerName BuyerName,
--v_Trans Trans,
v_ATTN Attn,
po.ITEM,
po.QTY_ORD,
po.UM,
po.REQD_DATE,
po.UNIT_PRICE,
it.DESCRIPTION,
poln.text,
prb.BIN,
v_rev rev
FROM (
select a.item,a.po_num,a.ccn,a.mas_loc,a.qty_ord, a.um, a.reqd_date,a.unit_price,b.po_line from
(select item, qty_ord, um, reqd_date, unit_price, ccn,po_num, mas_loc, to_number(po_line) po_line from PO
where CCN=p_CCN AND MAS_LOC=p_MasLoc AND LTrim(RTrim(PO_NUM))=p_PONo) a,
(select to_number(po_line) po_line from c_tblrpt001) b
where b.po_line = a.po_line(+)
) po
LEFT JOIN PRIM_BIN prb ON po.ITEM=prb.ITEM AND po.CCN=prb.CCN AND po.MAS_LOC=prb.MAS_LOC
LEFT JOIN ITEM it ON po.ITEM=it.ITEM
LEFT JOIN POLN_TXT poln ON po.ccn=poln.pur_ccn and po.po_num=poln.po_num and po.po_line=poln.po_line and poln.poln_txt_seq=0001
ORDER BY po.po_line;
END;
Thủ tục C_RPT001pr - Lấy các thông tin cho báo cáo Yêu cầu mua hàng – PO Request
CREATE OR REPLACE PROCEDURE C_RPT001PR(p_CCN IN varchar2, p_MasLoc IN varchar2, p_PONo IN varchar2,
p_RefCur IN OUT PKG_CR.RefCurType)
/*
==============================================================================
Tên thủ tục : C_RPT001
Mục đích: Lấy các thông tin cho báo cáo Yêu cầu mua hàng – PO Request
Tham số vào:
v_CCN : CCN code – Mã công ty
v_MasLoc : Master Location code - Mã bộ phận
v_PONo : Purchase order number - Số hoá đơn
Tham số ra: v_RefCur
==============================================================================
*/
AS
V_ATTN VARCHAR2(140);
V_Vencontact varchar2(16);
v_VenDor varchar2(40);
v_PurLoc varchar2(24);
v_VenLocName varchar2(140);
v_CCNAddr1 char(100);
v_CCNAddr2 char(100);
v_CCNAddr3 char(100);
v_CCNAddr4 char(100);
v_CCNAddr5 char(100);
v_CCNAddr6 char(100);
v_DatePlaced date;
v_DelTerm varchar2(16);
v_MLOCDESC varchar2(200);
v_TermsCode char(100);
v_Currency varchar2(12);
v_Buyer varchar2(16);
--v_BuyerName varchar2(140);
--v_Trans varchar2(280);
v_rev varchar(20);
BEGIN
--Get date_place, del_term,...
SELECT max(substr(ven_contact,1,16)),max(substr(vendor,1,40)),max(substr(pur_loc,1,24)),max(date_placed), max(substr(Currency,1,12)), max(substr(Buyer,1,16))
INTO v_vencontact,v_VenDor, v_PurLoc, v_DatePlaced, v_Currency,v_Buyer
FROM PR_HDR
WHERE ccn=p_CCN AND mas_loc=p_MasLoc AND LTrim(RTrim(PR_NUM,' '),' ') = p_PONo;
--get del_term
select max(substr(a.description,1,16)) into v_DelTerm
from del_term a,
(
SELECT del_term,ccn
FROM PR_HDR
WHERE ccn=p_CCN AND mas_loc=p_MasLoc AND LTrim(RTrim(PR_NUM,' '),' ') = p_PONo
) b
where a.ccn = b.ccn and a.del_term = b.del_term ;
select max(substr(b.desc_,1,100)) into v_TermsCode
FROM (select terms_code, ccn from PR_HDR where ccn=p_CCN AND mas_loc=p_MasLoc AND LTrim(RTrim(PR_NUM))=p_PONo ) a,
terms b
WHERE a.terms_code = b.terms_code and a.ccn = b.ccn;
--Get Master Location Description
select max(substr(a.MLOC_DESC,1,200)) into v_MLOCDESC
from MAS_LOC a,
(
SELECT MAS_LOC,ccn
FROM PR_HDR
WHERE ccn=p_CCN AND mas_loc=p_MasLoc AND LTrim(RTrim(PR_NUM,' '),' ') = p_PONo
) b
where a.ccn = b.ccn and a.MAS_LOC = b.MAS_LOC;
--and ven_loc name
SELECT max(name) INTO v_VenLocName FROM ven_loc WHERE vendor=v_VenDor AND ven_loc=v_PurLoc;
--get Buyer name
--SELECT max(name) INTO v_BuyerName FROM Buyer WHERE buyer=v_buyer;
--get ATTN
--select max(name) into v_ATTN from Ven_con where vendor=v_VenDor and ven_loc=v_purloc and ven_contact=v_VenContact;
--Get ccn address
SELECT max(addr1),max(addr2),max(addr3),max(addr4),max(addr5),max(addr6) INTO v_CCNAddr1,v_CCNAddr2,v_CCNAddr3,v_CCNAddr4,v_CCNAddr5,v_CCNAddr6 FROM ccnadd WHERE ccn=p_CCN;
--Get Rev
select max(substr(nvl(text,''),1,20)) into v_rev from PRhd_txt where pur_ccn = p_CCN and LTrim(RTrim(PR_NUM)) = p_PONo;
if trim(v_rev) = '' then
v_rev := '';
end if;
if trim(v_rev) '' then
v_rev := '(' || trim(v_rev) || ')';
end if;
OPEN p_RefCur FOR
SELECT
v_CCNAddr1 ccnAddr1,
v_CCNAddr2 ccnAddr2,
v_CCNAddr3 ccnAddr3,
v_CCNAddr4 ccnAddr4,
v_CCNAddr5 ccnAddr5,
v_CCNAddr6 ccnAddr6,
v_VenLocName VenLocName,
to_char(v_DatePlaced,'dd-Mon-yyyy') DatePlaced,
v_DelTerm DeliveryTerm,
v_MLOCDESC MLOCDESC,
v_ATTN Attn,
PR.ITEM,
PR.QTY_ORD,
PR.UM,
PR.REQD_DATE,
PR.UNIT_PRICE,
it.DESCRIPTION,
PRLN.text,
prb.BIN,
v_rev rev
FROM (
select a.item,a.PR_NUM,a.ccn,a.mas_loc,a.qty_ord, a.um, a.reqd_date,a.unit_price,b.PR_line from
(select item, qty_ord, um, reqd_date, unit_price, ccn,PR_NUM, mas_loc, to_number(PR_line) PR_line from PR
where CCN=p_CCN AND MAS_LOC=p_MasLoc AND LTrim(RTrim(PR_NUM))=p_PONo) a,
(select to_number(PR_line) PR_line from c_tblrpt001PR) b
where b.PR_line = a.PR_line(+)
) PR
LEFT JOIN PRIM_BIN prb ON PR.ITEM=prb.ITEM AND PR.CCN=prb.CCN AND PR.MAS_LOC=prb.MAS_LOC
LEFT JOIN ITEM it ON PR.ITEM=it.ITEM
LEFT JOIN PRLN_TXT PRLN ON PR.ccn=PRLN.pur_ccn and PR.PR_NUM=PRLN.PR_NUM and PR.PR_line=PRLN.PR_line and PRLN.PRLN_TXT_seq=0001
ORDER BY PR.PR_line;
END;
Thủ tục C_RPT001sub - Điều khiển số bản ghi cho PO
CREATE OR REPLACE PROCEDURE C_rpt001sub (pCCN IN varchar2, pMasLoc IN varchar2, pPONo IN varchar2) AS
==============================================================================
-- Name : c_rpt001sub
-- Mô tả : Điều khiển số bản ghi của PO
============================================================
MinPoLine number;
MaxPoLine number;
counter number;
BEGIN
select nvl(max(to_number(po_line)),0) into MaxPoLine from po where po.CCN=pCCN
AND po.MAS_LOC=pMasLoc
AND LTrim(RTrim(po.PO_NUM))=pPONo;
execute immediate ('delete from c_tblrpt001');
for counter in 1..MaxPoLine loop
execute immediate ('insert into c_tblrpt001 values ('|| to_char(counter) ||')');
end loop;
execute immediate ('commit');
END;
Thủ tục C_RPT001subpr - Điều khiển số bản ghi cho PO Request
CREATE OR REPLACE PROCEDURE C_rpt001subPR (pCCN IN varchar2, pMasLoc IN varchar2, pPONo IN varchar2) AS
==============================================================================
-- Name : c_rpt001sub
-- Mô tả : Điều khiển số bản ghi của Po Request
--==============================================================================
MinPoLine number;
MaxPoLine number;
counter number;
BEGIN
select nvl(max(to_number(pr_line)),0) into MaxPoLine from pr where pr.CCN=pCCN
AND pr.MAS_LOC=pMasLoc
AND LTrim(RTrim(pr.pr_NUM))=pPONo;
execute immediate ('delete from c_tblrpt001pr');
for counter in 1..MaxPoLine loop
execute immediate ('insert into c_tblrpt001pr values ('|| to_char(counter) ||')');
end loop;
execute immediate ('commit');
END;
Các file đính kèm theo tài liệu này:
- 28652.doc