GIỚI THIỆU CHUNG
GIỚI THIỆU CHUNG VỀ ĐỒ ÁN
Ngày nay, sự phát triển của khoa học kỹ thuật nói chung và ngành công nghệ thông tin nói riêng đã mang lại nhiều thành tựu to lớn trong các lĩnh vực của cuộc sống Những thành tựu to lớn đó góp phần làm cho chất lượng cuộc sống của con người ngày càng tốt hơn.
Trong lĩnh vực công nghệ thông tin thì sự ra đời của mạng Internet đã đáp ứng được phần nào những nhu cầu thiết thực của đời sống về nhu cầu thông tin, giải trí,học tập, nghiên cứu v.v… Trên những thành tựu đó tôi muốn xây dựng một hệ thống quản lý Phát hành báo chí trong ngành Bưu điện Mục đích của hệ thống cho phép trung tâm phát hành báo chí quản lý các cửa hàng bán lẻ, độc giả dài hạn trên địa bàn.Khách hàng có thể đặt báo dài hạn, và tham khảo giá báo chi tiết tại các cửa hàng của trung tâm Đồng thời hệ thống cho phép thống kê báo của toàn tỉnh từ nhu cầu của các bưu cục và phân phối tạp chí đến các bưu cục.
GIỚI THIỆU BÀI TOÁN HỆ THỐNG THÔNG TIN QUẢN LÝ PHBC
Nếu như trong những năm 1984-1985, cả nước ta chỉ có hơn hai trăm tờ báo, tạp chí và mấy trăm bản thông tin khó học, kỹ thuật thì đến nay chúng ta có hơn 450 đơn vị báo chí trong đó báo in xuất bản 563 ấn phẩm các loại, phát hành 565 triệu bản/năm, 160 tờ báo hằng ngày và tuần báo với số lượng phát hành 546.223.000 bản/năm, có 63 tờ báo trung ương, 97 tờ báo địa phương, ngoài ra có rất nhiều loại tạp chí khác Trong 15 năm qua, chúng ta đã hình thành một hệ thống báo chí khá hoàn chỉnh Ngành củng cố và mở rộng mạng lưới phát hành báo chí trong cả nước, phát triển mạnh khách hàng thông qua các hình thức bán lẻ và dài hạn, khai thác nhiều chủng loại báo chí, nhận đặt mua và chuyển phát báo chí trên địa bàn Các tạp chí thường được chuyển về trung tâm phát hành của tỉnh, từ đó các mới được phân phối đến các bưu cục Việc phân phối báo cần phải nhanh chóng để tránh tình trạng báo ế và kịp thời đến các độc giả Do nhu cầu báo chí ngày càng tăng, để đáp ứng được nhu cầu bạn đọc đến tận nơi, các hình thức bán lẻ xuất hiện cùng với các cửa hàng bán lẻ là các đại lý của bưu cục Hơn nữa bạn đọc tuỳ theo từng sở thích có thể đặt báo dài hạn tại các cửa hàng ban lẻ Do đó cần tạo ra môi trường để các nhân viên ở các cửa hàng bán lẻ có thể giao dịch trực tiếp với các khách hàng đặt báo dài hạn, khách hàng có thể lựa chọn các mục báo, các thể loại báo cũng như tham khảo về giá cả trước khi đặt hay có thể tìm các loại báo theo nhu cầu của mình Với một khách hàng sẽ có một mã số khách hàng riêng Thanh toán tiền dài hạn cũng cần phải khả mở cho khách hàng, khách hàng có thể thanh toán từng đợt tại các cửa hàng của trung tâm Tại trung tâm sẽ quản lý các cửa hàng bán lẻ, nhu cầu của các cửa hàng bán lẻ và thu chi Tại bộ phận phát hành báo chí sẽ thống kê nhu cầu của từng mục báo trong toàn tỉnh để có thể báo cáo lên trung ương.
Nhiệm vụ của bài toán đặt ra nhằm phục vụ có hiệu quả cho công tác quản lý và khai thác nghiệp vụ BC-PHBC của một bưu điện tỉnh Tạo ra cơ sở dữ liệu nhằm quản lý thống nhất và tập trung nghiệp vụ BC-PHBC Một bưu điện tỉnh quản lý tất cả các bưu cục nằm trên địa bàn tỉnh Bưu cục được chia ra làm hai loại gồm: bưu cục trực thuộc và bưu cục không trực thuộc Bưu cục trực thuộc là các bưu cục có cùng địa bàn thành phố với bưu điện tỉnh (bưu điện tỉnh thường đóng tại thành phố, trung tâm của tỉnh) Mỗi bưu cục trực thuộc thường có 1 hoặc 2 cửa hàng bán lẻ đại diện để bán báo Vì các bưu cục trực thuộc nhỏ nên bưu điện tỉnh sẽ quản lý tất cả các cửa hàng bán lẻ này Bưu cục không trực thuộc là các bưu cục thuộc các huyện Các bưu cục không trực thuộc sẽ đăng ký với bưu điện tỉnh nhu cầu báo cho bưu cục mình Như vậy đối tượng sử dụng của hệ thống được phân thành ba cấp gồm nhân viên của bưu điện tỉnh, nhân viên các cửa hàng bán lẻ và nhân viên các bưu cục ( bưu cục không trực thuộc ) Tại các cửa hàng bán lẻ cho phép khách hàng đặt báo dài hạn: khách hàng có nhu cầu đặt báo dài hạn sẽ đến tại các cửa hàng bán lẻ nơi địa bàn của mình. Khách hàng có thể tham khảo giá báo và chi tiết các loại báo Sau khi khách hàng điền các thông tin về đặt báo dài hạn của mình cùng với thông tin và địa chỉ khách hàng ( nếu là khách hàng lần đầu tiên đặt báo) Nhân viên cửa hàng bán lẻ tiếp nhận nhu cầu báo của khách hàng xem có hợp lý không, các mục báo có trong phần quản lý
? Đồng thời, nhân viên cửa hàng bán lẻ thu tiền trực tiếp tiền báo dài hạn mà khách hàng đã đặt Tại bưu điện tỉnh có nhiệm vụ phân phối cho các độc giả dài hạn đã đặt báo tại các cửa hàng bán lẻ theo các tuyến sao cho tối ưu hoá chi phí vận chuyển, thống kê công nợ khách hàng đặt báo dài hạn và nhu cầu đối với các mục báo Tại đây còn cho phép theo dõi các cửa hàng bán lẻ: báo đã bán hết, báo ế, báo tồn, thu tiền báo các cửa hàng bán lẻ Từ nhu cầu báo độc giả dài hạn và báo bán hết của các cửa hàng bán lẻ sẽ thống kê được nhu cầu báo của thành phố ( nơi bưu điện tỉnh đóng ), kết hợp với nhu cầu báo các bưu cục huyện cho phép thống kê báo toàn tỉnh Bưu điện tỉnh báo cáo nhu cầu từng mục báo của toàn tỉnh lên công ty PHBC trung ương Để thuận lợi cho việc phân phối báo của công ty PHBCTW Đối với các loại báo không đóng thẳng ( các tạp chí được vận chuyển từ công ty PHBCTW đến bưu điện tỉnh ), thì chỉ cần báo cáo số lượng đối với từng mục báo Đối với các loại báo đóng thẳng ( báo được vận chuyển từ công ty PHBCTW đến tất cả các bưu cục trên địa bàn t ỉnh) cần báo cáo chi tiết số lượng từng mục báo đối với từng bưu cục Báo không đóng thẳng được bưu điện tỉnh phân phối đến các bưu cục trên địa bàn dựa trên nhu cầu của các bưu cục.
Bài toán đươc phân thành các modul:
Thứ nhất là quản lý các loại báo:
- Đơn giá, tính đơn giá theo quý theo năm.
- Biến động về các kỳ xuất bản, số xuất bản.
- Tăng giảm về biến động báo
Thứ hai là quản lý độc giả dài hạn: Tiếp nhận và quản lý các yêu cầu của độc giả tại các cửa hàng bán lẻ.
- Đặt mới các loại báo tạp chí.
- Đặt bổ sung các loại báo, tạp chí.
- Thu tiền trực tiếp đối với các yêu cầu khách hàng đặt báo nộp tiền tại quầy
- Độc giả được phép đặt báo bất cứ ngày nào trong tháng và không nhất thiếtbáo phải đặt tròn tháng, tròn quý.
- Sau khi độc giả đặt báo, cho phép in ra hóa đơn cho khách hàng số tiền khách hàng phải trả, tuy nhiên khách hàng có thể trả thành nhiều đợt.
Thứ ba là quản lý báo ở cửa hàng bán lẻ:
- Quản lý các cửa hàng, danh mục về loại cửa hàng, các đại lý.
- Phân phối báo đến các cửa hàng bán lẻ.
- Tổng hợp được nhu cầu bán lẻ dành cho các cửa hàng.
- Quản lý các loại báo lưu ký, báo ế trả lại, báo tồn ở các cửa hàng bán lẻ.
- Từ đó thu tiền đối với các cửa hàng bán lẻ.
Thứ tư là phân phối báo:
- Cho phép tổng hợp nhu cầu của các bưu cục dựa trên nhu cầu của độc giả dài hạn và nhu cầu bán lẻ của các cửa hàng trong bưu cục hoặc có thể tự tổng hợp nhu cầu và nhập số liệu vào.
- Tổng hợp báo, tạp chí, cho phép in các báo cáo tổng hợp theo nhu cầu báo và tạp chí theo cấp bưu cục, huyện và toàn tỉnh
- Báo được về hàng ngày, nên đòi hỏi cần phải cập nhật thường xuyên Vì vậy hệ thống cần phải giảm thiểu nhập số liệu báo về hàng ngày.
- Hệ thống tự động chia báo không đóng thẳng (tạp chí) cho các bưu cục, và in phiếu về loại báo không đóng thẳng cho các bưu cục.
Hình 1.1: Mô hình hoá bài toán hệ thống thông tin quản lý PHBC cho một tỉnh
Lý do chọn đề tài:
- Nghành Bưu điện là ngành có hạ tầng về công nghệ thông tin phát triển Trong thời gian qua ngành Bưu điện đã xây dựng được mạng diện rộng nối giữa các cấp với nhau, đây cũng là một hạ tầng cơ sở cho việc triển khai hệ thống Quản lý Phát hành Báo chí.
- Khối lượng thông tin đồ sộ do độc giả báo chí dài hạn và khách hàng gia tăng nhanh, cũng như lượng báo hàng ngày cần được cập nhật thường xuyên.
- Nhằm phục vụ có hiệu quả cho công tác quản lý và khai thác nghiệp vụ BC- PHBC của Trung tâm Phát hành báo chí Bưu điện tỉnh: quản lý cửa hàng bán lẻ, độc giả dài hạn trực thuộc công ty, tiếp nhận nhu cầu báo tất cả các bưu cục không trực thuộc ( bưu cục của các huyện), báo cáo nhu cầu báo của toàn tỉnh lên công ty PHBCTW, phân phối báo cho độc giả dài hạn, phân phối tạp chí ( báo không đóng thẳng ) cho các bưu cục thuộc các huyện.
- Tạo ra cơ sở dữ liệu nhằm quản lý thống nhất và tập trung nghiệp vụ BC- PHBC của trung tâm.
- Giảm các chi phí: bảo trì, vận hành, nâng cấp và phát triển hệ thống do tính tái sử dụng Hệ thống có thể được bảo hành từ xa theo thoả thuận của khách hàng.
- Tối ưu hoá lưu trữ dữ liệu của phần cứng Dữ liệu có thể được phân mảnh Do hệ thống Phát hành Báo chí được quản lý theo từng năm nên số liệu tháng cuối của năm trước được chuyển sang tháng đầu của năm sau, do đó tránh dữ liệu bị phình to, tăng tính ổn định.
- Bảo đảm độ tin cậy, tính nhất quán và bảo mật an toàn dữ liệu ( mặt chất lượng)
- Đa dạng hoá thông tin quản lý (mặt số lượng).
- Nâng cao tính linh hoạt của hệ thống nhờ các phương pháp quản lý CSDL hiện đại (ngôn ngữ lập trình hướng đối tượng, ngôn ngữ vấn tin có cấu trúc như: PL/SQL là ngôn ngữ truy vấn trực tiếp cơ sở dữ liệu, tăng tốc độ của ứng dụng ) giảm bớt cách thể hiện bằng ngôn ngữ lập trình theo dạng thủ tục. Ý nghĩa:
- Đem lại sự thống nhất, quy củ chặt chẽ của CSDL làm nền tảng để nâng cấp, kết nối và phát triển của toàn hệ thống Từ đó nâng cao hiệu quả của công tác quản lý Phát hành báo chí.
- Tiếp cận và sử dụng công nghệ mới.
CÁC TỪ NGỮ ĐƯỢC DÙNG TRONG PHÁT HÀNH BÁO CHÍ
3.1 Kỳ xuất bản của một mục báo cho biết thời gian, số lượng mà báo, tạp chí, tập san của mục báo đó phát hành trong một tuần hay một tháng, …Chẳng hạn: Báo nhân dân có kỳ xuất bản ra hàng tuần 4 số vào ngày thứ 2, thứ 3, thứ 5, thứ 6; hay báo Tiền phong chủ nhật có kỳ xuất bản ra hàng tuần vào Chủ Nhât. Thồng thường mã kì xuất bản và tên kì xuất bản có sự liên kết với nhau về ý nghĩa và do quy định của trung tâm PHBC trung ương:
- MK1, MK2, MK3 : Là loại báo ra tương ứng một tháng 1 kỳ, 2 kỳ, 3 kỳ
BƯU CỤC ( thuộc địa bàn tỉnh ) CÔNG TY PHBCTW
- MKC là báo ra vào tháng chẵn.
- MKL là báo ra vào các tháng lẻ.
- M3, M6 : Là loại báo ra tương ứng 3 tháng một kỳ, 6 tháng một kỳ
- N, N1, N7 : Là các loại báo ra hàng ngày, ra hàng ngày trừ chủ nhật, ra hàng ngày trừ thứ 7
- TN1, TN13, : Là các loại báo ra hàng tuần vào chủ nhật, ra hàng tuần vào chủ nhật và thứ 3
- K1, K2, : Là các loại báo ra không theo các điều kiện trên
3.2 Báo đóng thẳng là các báo từ trung ương được đóng thẳng cho các bưu cục, mà không qua bưu cục trung tâm nhằm giảm chi phí vận chuyển, thường là các loại báo ngày, báo tuần.
Hình 1.2: Sơ đô phân phối báo đóng thẳng
3.3 Báo không đóng thẳng là các báo về trung tâm phát hành báo chí (bưu điện Tỉnh) Sau đó dựa vào nhu cầu của các bưu cục, báo được phát đi, thường là các loại tạp chí.
Hình 1.3: Sơ đồ phân phối báo không đóng thẳng ( các tạp chí )
3.4 Nơi xuất bản của một mục báo được phân thành báo trong nước, báo nước ngoài, báo địa phương và báo trung ương Trong đó báo địa phương là các loại báo được sản xuất trên địa bàn tỉnh như: Tuần báo Nghệ An, Tuần báo Quảng Ninh.
3.5 Loại báo: Báo gồm báo hàng ngày, báo tuần, báo tháng, báo quý Báo ngày là các loại báo trong một tuần ra nhiều số, chẳng hạn báo Nhân Dân là báo ngày. Tuy nhiên NS Nhân Dân một tháng ra hai số vào giữa tháng và cuối tháng cũng là báo ngày, hay Nhân Dân cuối tuần cũng là báo ngày Báo tuần thông thường mỗi tuần ra một số Báo tháng là báo ra vào các ngày nhất định trong tháng.
TRUNG TÂM PHBC ( Bưu điện tỉnh )
BƯU CỤC ( thuộc địa bàn tỉnh )
3.6 Biến động báo: Kỳ xuất bản của báo cho biết thời gian báo phát hành Tuy nhiên có thể do điều kiện khách quan nên kỳ xuất bản có thể thay đổi, thêm hoặc bớt mục báo, tăng giá báo Chẳng hạn: báo Tết, báo Chuyên Đề, …là các báo thêm.
3.7 Tỷ lệ báo: là tỷ lệ hoa hồng các đơn vị phát báo được hưởng, thường là 20%. 3.8 Bưu cục: Các loại báo và tạp chí được đóng thẳng về đây Từ đó mới phân phối báo cho độc giả dài hạn và các cửa hàng bán lẻ theo các tuyến trên địa bàn của mình Một huyện thường có một bưu cục trung tâm và các bưu cục khác Bưu cục trung tâm chịu trách nhiệm quản lý độc giả dài hạn và các cửa hàng bán lẻ trên địa bàn của mình.
3.9 Cửa hàng bán lẻ: Là nơi đại diện cho bưu cục để bán báo Thông thường mỗi bưu cục sẽ có một cửa hàng bán lẻ hoăc hai cửa hàng tuỳ theo nhu cầu khách hàng của bưu cục.
3.10 Độc giả dài hạn Là những người trực tiếp nhận báo dài hạn, được phân phối theo tuyến bởi các bưu cục có cùng điạ bàn Nếu độc giả tự trả tiền thì độc giả cũng là khách hàng, nếu không thì độc giả phải chọn cho mình một khách hàng để thanh toán tiền.
3.11 Khách hàng: là những người giao dịch trực tiếp với các nhân viên để đặt báo độc giả dài hạn Một khách hàng có thể đặt báo cho nhiều độc giả Khách hàng trực tiếp thanh toán tiền báo hay nói cách khác công nợ phát hành báo chí được theo dõi dựa trên danh mục khách h àng Khách hàng thanh toán tiền báo cho nhiều độc giả hoặc chỉ thanh toán duy nhất cho một độc giả.
3.12 Bao thiếu: Một số độc giả dài hạn bị phát thiếu do số lượng báo về không phân phối đủ hay các điều kiện khác như do thời tiết xấu.
3.13 Báo cũ cho độc giả: Là các loại báo mà độc giả có nhu cầu từ năm trước hoặc quý trước Thường thì các loại báo này là các loại báo về chậm hơn so với yêu cầu Các loại báo này sau đó được phân phối cho các độc giả dài hạn.
3.14 Báo lưu ký: Là các báo có tình trạng ế tại các cửa hàng bán lẻ hay các bưu cục không đóng thẳng nhưng chưa được trả ế Mục đích nhằm về sau theo dõi xem các cửa hang bán lẻ trả ế có đúng danh mục, chủng loại của loại báo đã lưu ký không.
3.15 Báo ế: Báo không bán được và các cửa hàng bán lẻ chỉ được trả ế từ các loại báo lưu ký mà thôi.
3.16 Báo tồn là các báo tồn đọng chưa bán được Tồn của tháng trước chính là tồn đầu kỳ của tháng này, số lượng tồn của tháng này cũng chính là tồn cuối kỳ của tháng Báo bán hết có thể được suy ra nhờ báo tồn thông qua tồn đầu kỳ và tồn cuối kỳ trong tháng.
3.17 Tuyến: Cửa hàng bán lẻ, độc giả dài hạn được phân loại nhờ vị trí địa lý, từ đó báo được phân phối cho các độc giả dài hạn Mỗi bưu cục có nhiều tuyến khác nhau Thông thường tuyến báo cũng là tuyến đường thư do bưu điện quản lý.
BƯU CỤC TRỰC THUỘC BƯU CỤC KHÔNG TRỰC THUỘC
CÁC CỬA HÀNG BÁN LẺ ĐỘC GIẢ DÀI HẠN
NHU CẦU THỰC TẾ
Hình 1.4: Cấp quản lý của bưu điện tỉnh Các bưu cục không trực thuộc là các bưu cục tại các huyện trong địa bàn tỉnh.
Các bưu cục trực thuộc có cùng địa bàn với bưu cục trung tâm, cùng thành phố Vì các bưu cục này nhỏ, hơn nữa để dễ quản lý nên các cửa hàng bán lẻ ở các bưu cục trực thuộc sẽ thuộc quản lý của các bưu cục trung tâm Mỗi cửa hàng bán lẻ thường đại diện cho một bưu cục để bán báo.
Nghành Bưu điện là ngành có hạ tầng về công nghệ thông tin phát triển Giữa các cấp có các vị trí địa lý khác nhau tuy nhiên có sự gắn kết chặt chẽ một cách liên tục, dữ liệu lại được xử lý tập trung Ở các cửa hàng bán lẻ sau khi khách hàng đăng ký độc giả dài hạn Ho phải đến bưu cục trung tâm để nộp, đồng thời thống kê về thu chi.Khi dữ liệu bị sai, thường dẫn đến mất rất nhiều thời gian, công sức và các lợi ích khác của cá nhân, tổ chức của hai bên Hơn nữa nhu cầu báo của các bưu cục ở các huyện là thay đổi thường xuyên Thay vì phải đến thẳng trực tiếp bưu cục trung tâm,nhân viên các cửa hàng bán lẻ có thể đăng ký độc giả trực tiếp tại cửa hàng Nhân viên các bưu cục cập nhật nhu cầu bưu cục mình ngay tại chỗ.
TỔNG HỢP KIẾN THỨC LIÊN QUAN ĐẾN ĐỒ ÁN
ASP.NET
Active Server Pages( ASP) là một môi trường server-side scripting mạnh để tạo trang Web hoặc các ứng dụng Web Tuy nhiên việc pha trộn mã và nội dung, có thể sẽ gây rắc rối khi được thực hiện bởi một đội ngũ, với ASP bạn phải viết mã hầu hết với mọi công việc, bất kể đơn giản đến mức nào.
Hình 2.1 Giao tiếp giữa trình duyệt từ máy Client và cơ sở dữ liệu
ASP.NET cung cấp một nền tảng mạnh và cung cấp nhiều lợi ích, ASP.NET giải quyết được tất cả các vấn đề của ASP.
-Cải thiện tiến trình triển khai, khả năng chỉnh quy mô, bảo mật và tính đáng tin cậy
-Cung cấp phần hỗ trợ tốt hơn cho các trình duyệt và các thiết bị khác.
-Kích hoạt một dòng dõi mới các ứng dụng web.
ASP.NET và đa ngôn ngữ
Asp bị hạn chế vào các động cơ ký mã, nhất là VBScript và Jscript Cơ cấu NET hỗ trợ đa ngôn ngữ, do đó ta có thể dung bất kỳ ngôn ngữ nào mà ta cảm thấy thuần thục nhất Microsoft hỗ trợ VB.NET, C#, và Jscript (tất cả đều được biên dịch).
Xử lý hệ phục vụ
Một trong những vấn đề lớn đối với ASP đó là các trang đơn giản định nghĩa một chức năng lớn, bắt đầu tại đầu trang va kết thúc tại cuối trang ASP.NET đưa ra mô hình khai báo, gốc hệ phục vụ, cho các điều khiển Các điều khiển được khai báo trên hệ phục vụ có thể được lập trình dựa trên hệ phục vụ, nhưng có thể được điều khiển theo sự kiện từ hệ khách Một điều khiển HTML bình thường thành một điều khiển hệ phục vụ là bổ sung runat= “server” làm thuộc tính
ASP.NET tách biệt mã và nội dung.
Trong các trang ASP.NET, để tách mã và nội dung đó là mô hình mã hậu [code- behind], ở đó mã được gỡ bỏ hoàn toàn để đưa vào một tập tin tách biệt Do đó việc thiết kế và mã hoá có thể dễ dàng được tiến hành một lúc, dễ giải quyết nguy cơ các sự cố tiềm ẩn nếu cần cập nhật trang.
ASP.NET và sự phát triển Web
Có thể nói ASP.NET là một con đường nhanh chóng và linh hoạt để tạo các ứng dụng Web Bằng việc sử dụng các Script để tạo ra giao diện HTML Sử dụng các thành phần ActiveX để đóng gói các module chương trình mà có thể được gọi từ các chương trình khác.
Với một môi trường phong phú hơn bạn có thể dung Visual Studio.NET, ở đó bạn có phần hỗ trợ kéo thả, mã được tô màu Phần trợ giúp ngữ cảnh, các khung gợi nhớ [tooltips], và tất cả các tính năng hiêu chỉnh tuyệt vời thông thường mà Visual Studio đã có trong quá khứ.
Hình 2.2: Mô hình ASP.NET
2 Tạo các trang ASP.NET
ASP.NET dựa vào sự kiện, nên bạn cần hiểu rõ thứ tự của các sự kiện, sao cho bạn có thể thấy nơi mã nguồn tương đương xuất hiện Mã bên trong các sự kiện được xử lý tuần tự, song các sự kiện chỉ được xử lý khi chúng nảy sinh.
Trang này mặc nhận cơ sở dữ liệu pubs đã được cài đặt trên hệ thống của bản.
Sub Page_Load(Sender as Object, E As EventArgs)
If not Page IsPostPack Then
Sub ShowAuthors(Sender As Object, E As EventArgs)
Dim conn As New OracleConnection(“DataSource =;”&_
“Initial Catalog=pubs; UID=sa; PWD=”)
Qry= “Select * from authors Where state= ‘ “&_
Cmd= New SqlCommand(qry,con)
State:
3 Các Buil-in object của ASP.NET
ASP.NET cung cấp sẵn các đối tượng (object) khi sử dụng không cần phải tạo ra các instance cho chúng, mỗi đối tượng thực hiện một số chức năng riêng khác nhau. Hầu hết các đối tượng ASP vẫn sẵn dùng và không thay đổi Tuy nhiên có các thay đổi đối với vài tính chất và phương pháp, cũng như bổ sung các mục mới Một thay đổi đáng kể đó là việc gỡ bỏ đối tượng ASPError, bởi tính năng điều quản lỗi, giờ đây được quản lý bởi các ngoại lệ Các đối tượng này được gọi là các Built-in-Object, bao gồm: Request: Lấy thông tin từ một user
Response: Gửi thông tin tới một user
Server: Điều khiển môi trường hoạt động của ASP.NET
Session: Lưu giữ thông tin về 1 session của user
Application: Chia sẻ thông tin giữa các user trong cùng một ứng dụng
Cú pháp của các đối tượng
Cú pháp của các đối tượng phụ thuộc vào người lập trình sử dụng.
Để truy xuất thông tin của một đối tượng ta dùng các phương thức (method) và các thuộc tính (property).
Một method là một procedure hoạt động trên một đối tượng nào đó Cú pháp tổng quát của method là:
Object.Method [parameters] parameter là các thông số của method
Một property là một tính chất được đặt tên của một đối tượng Chúng định nghĩa các tính chất của đối tượng như kích thước, màu, vị trí trên màn hình hay thể hiện các trạng thái của đối tượng như được phép (enable) hay không được phép (disable) Cú pháp tổng quát của property là:
Parameter là các thông số của Property
Parameter thường là các biến, dữ liệu, chuỗi ký tự, hoặc là một URL. a Request object
Yêu cầu được thực thi bởi lớp HttpRequest trong không gian tên System.Web. Tất cả các tính chấtRequest Object lấy các giá trị mà client browser gởi lên server thông qua một HTTP request
Request Object có các collection chính sau:
AcceptTypes: Trả về một mảng chuỗi các kiểu MIME được hệ khách hỗ trợ. Với ASP, nó có thể được trích từ mục ServerVariables HTTP_ACCEPT được tách biệt bằng dấu phẩy.
BinaryRead: Trả về một mảng byte chứa thông tin nhị phân được gửi cho hệ phục vụ Trong ASP, kiểu trả về là variant.
Browser: Trả về một đối tượng HttpBrowserCapabilities mô tả các tính năng của trình duyệt.
ClientCertificate: Trả về một đối tượng HttpClientCertificate ( trái với một mảng các giá trị trong ASP).
Cookies: Trả về một đối tượng HttpCookieCollection (trái với một mảng các giá trị trong ASP).
Files: Trả về một HttpFileCollection các tập tin được tải (để đăng dạng nhiều phần).
Form: Trả về một sưu tập ( NameValueCollection) các nội dung Form Truy cập sưu tập này khác với truy cập sưu tập Form dưới ASP.
HttpMethod: Phương pháp HTTP dung cho yêu cầu Tương đương với REQUEST_METHOD.
Params: Một sưu tập đã phối hợp của Querystring, Form, Server Variables, vàCookíe.
QueryString: Trả về một sưu tập (Namevaluecollection) các nội dung QueryString Truy cập sưu tập này khác với truy cập sưu tập QueryString dưới ASP.
ApplicationPath: Tính chất này chỉ rõ đường dẫn ứng dụng ảo.
ContentLength: Tính chất này chỉ rõ chiều dài (tính bằng byte) của yêu cầu. Tương đương với CONTENT_TYPE.
FilePath: Tính chất này chỉ rõ đường dẫn ảo của yêu cầu Tương đương với SCRIPT_NAME.
Filter: Định danh bộ lọc luồng dùng cho yêu cầu Tất cả nội dung sẽ được chuyển qua bộ lọc trước khi trang có thể truy cập.
Headers: Một sưu tập (Namevaluecolletion) các phần đầu HTTP Trong ASP các giá trị này là các cặp name:value được tách biệt bằng dấu cách; trong NET chúng có thể được truy cập thông qua HTTP_name.
IsAuthenticated: Nêu rõ người dùng đã được thẩm định quyền hay chưa.
IsSecureConnection: Nêu rõ tuyến nối có đang dùng HTTPS hay không. Tương đương với HTTPS trong ASP.
Path: Đường dẫn ảo của yêu cầu Tương đương với PATH_INFO.
RawUrl: URL thô của yêu cầu Tương đương với RAW_URL.
Url: Một đối tượng Url chứa các chi tiết của yêu cầu Một đối tượng Url (từ không gian tên System) gói riêng thông tin về một tài nguyên cụ thể, chẳng hạn như cổng và thông tin DNS.
UrlReferrer: Một đối tượng Url nêu chi tiết thông tin bên tham chiếu.
UserAgent: Chuỗi tác nhân người dùng trình duyệt Tương đương với HTTP _USER_AGENT.
UserHostAddress: Địa chỉ IP của người dùng Tương đương với REMOTE _ADDR.
UserHostName: Tên DSN người dùng Tương đương với REMOTE_NAME.
Cú pháp tổng quát khi sử dụng Request object là:
Trong đó Variable là tên biến trong Collection muốn truy xuất thông tin Cũng có thể sử dụng cú pháp:
Khi đó thứ tự tìm kiếm sẽ tuân theo danh sách các collection trên và khi gặp biến đầu tiên trùng tên thì trả về giá trị của biến đó Vì thế nếu có nhiều hơn một biến với cùng một tên trong các collection khác nhau thì nên sử dụng dạng cú pháp tổng quát Sau đây là một số ứng dụng của đối tượng Request: b Response object Đáp ứng của một yêu cầu được thực thi bởi lớp HttpResponse Giống như yêu cầu, toàn bộ công năng hiện có đều được lưu giữ và các thay đổi hoặc bổ sung:
Catche: Trả vể một đối tượng HttpCatchePolicy, chứa các chi tiết về nội quy lập catche của đáp ứng hiện hành.
Cookies: Trả về một sưu tập (HttpCookieCollection) các đối tượngHttpCookie (trái với một mảng các giá trị có thuộc tính trong ASP) Các thuộc tính cookie ASP xuất hiện dưới dạng các tính chất của đối tượng HttpCookie.
Filter: Đối tượng Stream tác động như bộ lọc kết xuất Tất cả kết xuất sẽ đi qua bộ lọc này trước khi được trả về cho hệ khách.
Output: Trả về một đối tượng TextWriter thông qua nó kết xuất tuỳ biến có thể được trả về cho hệ khách.
OutputStream: Trả về một đối tượng Stream biểu thị cho dữ liệu thô của thân nội dung.
AppendHeader: Chắp một phần đầu HTTP vào luồng nội dung.
ClearContent: Xoá nội dung ra khỏi luồng vùng đệm.
ClearHeaders: Xoá các phần đầu ra khỏi luồng vùng đệm.
Ghi dữ liệu nhị phân
Ghi dữ liệu nhị phân (một mảng Byte) ra luồng kết xuất Trong ASP, mảng là một variant các số nguyên không dấu.
Phương pháp này bị quá tải, và có thể chấp nhận một trong bốn loại tham số:
-Một mảng Char, cùng với chỉ mục khởi đầuvà số lượng các ký tự để ghi.
Chuyển hướng kết nối đến URL khác :
CƠ SỞ DỮ LIỆU ORACLE
1 Cơ sở dữ liệu cá nhân cho chương trình ứng dụng đa người dùng
Hình 2.3: Giao tiếp giữa máy server và client
Hệ thống cơ sở dữ liệu cá nhân (như Microsoft Access, FoxPro) thì mỗi trạm làm việc (client) phải nạp toàn bộ chương trình cơ sở dữ liệu vào bộ nhớ chính Yêu cầu lượng nhỏ dữ liệu từ cơ sở dữ liệu lớn có thể buộc máy chủ (Server) chuyền toàn bộ cơ sở dữ liệu (có khi lên tới hàng trăm megabyte) cho các máy client Bởi vậy những hệ quản trị cơ sở dữ liệu (DBMS – database managerment system) loại này luôn đòi hỏi cấu hình của máy client phải mạnh, mạng truyền phải nhanh mới xử lý nổi lưu lượng tạo ra khi chuyển tập tin cơ sở dữ liệu cho máy client và gửi trả những thay đổi (thêm, xoá …) cho máy Server Tuy thời gian trả lời của hệ thống tuỳ thuộc vào tốc độ mạng, kích thước cơ sở dữ liệu, và cách dùng cơ sở dữ liệu, nhưng cơ sở dữ liệu cá nhân trên máy Server chỉ có thể xử lý đồng thời không quá 10 giao dịch cơ sở dữ liệu.
2 Cơ sở dữ liệu client/server
Với cơ sở dữ liệu client/server (chẳng hạn như Oracle) thì chia DBMS và chương trình truy cập DBMS thành “tiến trình xử lý “chạy trên máy Server và chương trình ứng dụng chạy trên máy khách Chương trình trên máy client gửi yêu cầu dữ liệu qua mạng Khi máy Server nhận yêu cầu, tiến trình xử lý DBMS sẽ truy xuất dữ liệu, thực hiện chức năng yêu cầu đối với dữ liệu rồi gửi kết quả cuối cùng (không phải là toàn bộ cơ sở dữ liệu ) về máy client Qua đây cho thấy cơ sở dữ liệu Client/Server phục vụ đa người dùng tạo ít lưu lượng mạng hơn cơ sở dữ liệu cá nhân và ít có khả năng ách tắc do mạng quá tải.
Thêm một khác biệt quan trọng nữa giữa cơ sở dữ liệu cá nhân và cơ sở dữ liệu Client/Server là cách xử lý sự cố máy Client Trong hệ thống cơ sở dữ liệu cá nhân, khi client mất điện hoặc do phần mềm hoạt động sai, cơ sở dữ liệu rất có thể bị hư hại do các tiến trình như cập nhật, sửa đổi v.v… đang bị gián đoạn Các mẩu tin sử dụng tại thời điểm gặp sự cố sẽ bị máy Client “khoá lại”, tức là không khả dụng với người dùng khác Có thể sửa chữa cơ sở dữ liệu nhưng yêu cầu tất cả người sử dụng phải đăng xuất trong quá trình sửa chữa Điều này có khi mất rất nhiều thời gian và thường là khó tái lập tiến trình xoá, cập nhật, chèn vào lúc xảy ra sự cố Nếu không sửa được thì người quản trị có thể phục hồi cơ sở dữ liệu theo bản sao lưu lần cuối, nhưng tất cả các giao dịch diễn ra kể từ lúc sao lưu sẽ bị mất.
3 Oracle và công nghệ khách/chủ
Oracle Corporation trở thành một công ty cơ sở dữ liệu nổi tiếng nhờ tạo ra một hệ thống quản trị cơ sở dữ liệu theo kiểu server với hiệu suất cao và đầy đủ chức năng. Với cơ sở dữ liệu làm nền tảng cho phạm vi sản xuất, Oracle đã vượt qua tầm vóc một công ty cơ sở dữ liệu khi bổ sung cho hệ quản trị cơ sở dữ liệu quan hệ kiểu server của nó những sản phẩm tích hợp cao được thiết kế đặc biệt cho các ứng dụng xử lý dữ liệu phân tán và công nghệ khách/chủ.
Khi mà cơ sở dữ liệu kiểu server của Oracle tiến triển đến mức cung cấp cho những hệ thống công ty qui mô lớn những sản phẩm để xử lý giao dịch và hỗ trợ quyết định, có thể nói rằng Oracle đã cung cấp một giải pháp chọn vẹn cho sự phát triển và triển khai các ứng dụng khách/chủ.
Hình 2.4: Kiến trúc của Oracle 9iOracle 9i là hệ quản trị cơ sở dữ liệu quan hệ thích hợp lý tưởng để hỗ trợ các môi trường khách/chủ phức tạp Nhiều nét đặc trưng của kiến trúc bên trong Oracle9i được thiết kế để cung cấp tính hiệu quả cao, năng suất cực đại, tính bảo mật và sử dụng hợp lý tài nguyên máy chủ Ngoài các đặc tính quan trọng về mặt kiến trúc đối với một server cơ sở dữ liệu, Oracle 9i còn có các đặc trưng ngôn ngữ làm tăng tốc sự phát triển và cải tiến hiệu quả các thành phần ứng dụng mức server.
Các thao tác cơ sở dữ liệu được thực hiện trên server, còn việc tiếp nhận các yêu cầu người sử dụng và trình bày dữ liệu được thực hiện tại client, do đó che dấu được dữ liệu và nâng cao khả năng thực hiện của hệ thống, tránh được các thao tác bất hợp pháp của người sử dụng lên dữ liệu Sự phân quyền được thực hiện bởi hệ quản trị cơ sở dữ liệu oracle, do đó ngăn chặn được các rủi ro cũng như những người sử dụng bất hợp pháp cố tình can thiệp vào dữ liệu bằng công cụ khác.
Ngôn ngữ PL/SQL: Một thành phần chính của Oracle 9i là engine xử lý PL/SQL Đây là ngôn ngữ thế hệ thứ tư của Oracle, kết hợp các nguyên tố ngôn ngữ thủ tục có cấu trúc với ngôn ngữ SQL/ PL/SQL được thiết kế đặc thù để xử lý khách/chủ.
Stored Procedures: Là khả năng lưu trữ các khối PL/SQL như là các đối tượng cơ sở dữ liệu ở dạng các stored procedure làm tăng đáng kể hiệu quả của hệ thống khách/chủ.
Database triggers: Các triggers được gọi tự động bởi phần hạt nhân cơ sở dữ liệu quan hệ để đáp lại một sự kiện thời gian xảy ra (như các thao tác chèn, sửa đổi hay xoá) Các triggers cũng chính là các khối PL/SQL nên chúng giống như các stored procedures, các trigger cơ sở dữ liệu giảm lượng mã và sự xử lý cần thiết trong phần client của một ứng dụng.
Tính toàn vẹn có thể khai báo: Khi định nghĩa một bảng trong Oracle 9i ta có thể bao gồm các ràng buộc toàn vẹn như là một phần của định nghĩa bảng. Các ràng buộc được hỗ trợ bởi server khi một bản ghi được chèn, sửa đổi hay xoá.
Khi phát triển hệ thống khách/chủ bằng Oracle, ta có thể sử dụng phần mềm kết nối mạng Oracle để cài đặt sự kết nối giữa các nút trên mạng Những sản phẩm và công cụ làm đơn giản hoá quá trình kết nối các ứng dụng client với server cơ sở dữ liệu trên mạng:
Net8: Là phần mềm kết nối cơ sở dữ liệu dùng để cung cấp các thông tin cơ sở dữ liệu xác thực, tối ưu trên mọi thủ tục mạng thông dụng Net8 được thiết kế để cung cấp tính trong suốt của server cho bất kỳ nút nào bên trong một ứng dụng mạng và sử dụng các thành phần nằm trên cả 2 phía client và server của một ứng dụng.
Oracle Names: Ta có thể tạo các liên kết cơ sở dữ liệu chứa các thông tin nút mạng trên một mạng bằng cách sử dụng từ điển toàn cục chung Oracle Names Đặc trưng này đặc biệt được sử dụng cho các mạng ứng dụng lớn phân bố ở nhiều vị trí để đơn giản hoá sự giám sát liên kết cơ sở dữ liệu và thông tin mạng.
Ngoài ra còn có: Multi-Protocol Interchange, Oracle Network Manager.
Một điểm quan trọng được cải tiến trong Oracle 9i đó là việc cắt bỏ user Internal,một user mà khi truy nhập hệ thống không có sự bảo mật Đây chính là một điểm quan trọng trong bảo mật của Oracle 9i, đi đôi với nó chính là việc mỗi một user khi truy nhập hệ thống cần chỉ ra một quyền hạn cụ thể Không những thể vì Oracle 9i hỗ trợ rất mạnh cho Internet nên trong Oracle9i này rất nhiều kiểu font chữ được hỗ trợ.
PL/SQL
1 Các ưu điểm của PL/SQL
PL/SQL có nhiều ưu điểm so với các ngôn ngữ lập trình khác về mặt quản lý logic và hỗ trợ các qui luật hoạt động của các ứng dụng cơ sở dữ liêu.
Cho phép bạn sử dụng tất cả loại dữ liệu SQL, điều khiển con trỏ, và các lệnh điều khiển giao dịch, cũng như các hàm, toán tử SQL, và các cột giả
Ngoài ra PL/SQL còn hỗ trợ SQL động, một công nghệ lập trình phát triển sẽ làm cho ứng dụng của bạn linh hoạt và hiệu quả hơn Chương trình có thể xử lý định nghĩa dữ liệu sql, điều khiển dữ liệu và cú pháp điều khiển phiên tại thời gian chạy.
- Hỗ trợ lập trình hướng đối tượng. Đóng gói các phép toán với dữ liệu, có thể thay đổi chi tiết mà không ảnh hưởng đến client programs
Với SQL, Oracle phải xử lý SQL statements tại thời gian chạy Trong môi trường mạng, SQL statements được sử dụng tại bất cứ thời gian nào do vây tạo ra nhiều tắc nghẽn Tuy nhiên với PL/SQL, một khối các statements được gửi đi chỉ một lần giảm giao tiếp giữa ứng dụng và Oracle Stored procedures được dịch một lần và lưu dưới dạng file exe, procedure call nhanh và hiệu quả.
- Tích hợp chặt chẽ với Oracle, là ngôn ngữ lập trình duy nhất được lưu giữ trực tiếp trong cơ sở dũ liệu Oracle, hỗ trợ tất cả các loại dữ liệu SQL Ngoài ra các thuộc tính
%TYPE và %ROWTYPE là ưu điểm so với SQL.
Hình 2.5: Các kiểu dữ liêu trong PL/SQL
Kiểu số của oracle dùng để chứa các dạng số dương, số âm,số thực, số với dấu chấm động number(p, s): -2147483647 2147483647. p: số chữ số trước dấu chấm thập phân (precision), p từ 1 đến 38 chữ số. s: số các chữ số tính từ dấu chem thập phân về bên phải, s từ -84 đến 127.
- Char: lưu giữ một chuỗi có chiều dài cố định.chiều dài tối đa cho phép của kiểu char là 32767 byte.
- Varchar2: dùng để khai báo chuỗi ký tự với chiều dài thay đổi khi khai báo một biến hoặc một cột phải chỉ ra chiều dài tối đa.
- Long và long raw: long dùng để khai báo kiểu chuỗi ký tự với độ dài biến đổi, chiều dài tối đa cua long là 32760 bytes Long raw dùng để chứa các chuỗi byte, các dũ liệu nhị phân.
- Raw: giống với kiểu long raw nhưng kiểu dữ liệu này chỉ có thể gán hoặc truy cập chứ không được thực hiện thao tác như đối với chuối ký tự
- Idrow: trong CSDL đều có cột giả, được lưu giữ dưới dạng nhị phân gọi là rowid, mỗi rowid xác định một hàng trong bảng gốc.rowid cho phép định vị một mẩu tin, cho biết mẩu tin được lưu trữ như thế nào Rowid gồm:
Block.row.file, trong đó: block: chuỗi hệ bát phân cho biết block chứa row row: chuỗi hệ bát phân cho biết row trong block file: chuỗi hệ bát pân cho biừt database file chứa block
SQL> SELECT rowed , ename FROM emp WHERE empno = 7788 ; might return the following row:
- Date: dùng để chứa dữ liệu ngày và thời gian mặc dù kiểu ngày và thời gian được chứa trong kiểu char và number. sysdate + 1 : ngày hôm sau
- Lob(large object) : bfile,blob,clob và nclob cho phép bạn lưu trữ các khối dữ liệu không cấu trúc (text, graphic images, video clips) lên đến 4 gigabytes.
Các biến làm việc với các cột của bảng nên có cùng kiểu dữ liệu như các cột thay vì phải dò tìm, nhà phát triển ứng dụng có thể sử dụng một đặc trưng cú pháp cho phép họ đơn giản hoá việc chỉ định kiểu dữ liệu biến tương ứng với các cột trong bảng. DECLARE my_empno emp empno%TYPE ;
BEGIN my_empno := NULL; this works
Cho phép nhà phát triển ứng dụng tạo ra một kiểu dữ liệu phức, trong đó tất cả các cột của một hàng trong bảng tham trỏ được kết hợp thành một record.
DECLARE my_empno emp.empno%TYPE;
BEGIN my_empno := NULL; this works
3 Giao tiếp với cơ sở dư liệu oracle
PL/SQL không thể hoàn thiện nếu không có sự tương tác dễ dàng với cơ sở dữ liêu oracle Bất kỳ sự xử lý hay thay đổi dữ liệu nào cũng được hoàn thành trong pl/sql mà không cần thêm môi trường lập trình nào khác Không có giao tiếp ODBC, cũng không cần nhúng bất cứ phép xử lý dữ liệu nào.
3.1 Oracle đựoc hỗ trợ bởi sql:
Sử dụng một lệnh select trong khối mã PL/SQL cho thấy không có sự phân chia giữa PL/SQL và cơ sở dữ liệu oracle Một khác biệt nhỏ của PL/SQL là mệnh đề into, cho phép đặt giá trị trở về từ lệnh select vào bản ghi %rowtype được tạo ra trong phần khai báo Sự tiện nghi tương tự cũng thấy trong lệnh update việc sử dụng lệnh insert trong PL/SQL cũng giống như các lệnh trong sql Điều này cũng đúng với lệnh insert và lênh delete.
SELECT sal + NVL(comm, 0) wages, ename FROM emp; my_rec my_cursor%ROWTYPE;
FETCH my_cursor INTO my_rec;
IF my_rec.wages > 2000 THEN
INSERT INTO temp VALUES (NULL, my_rec.wages, my_rec.ename);
- Điều khiển giao dịch (Transaction control):
Oracle sử dụng các giao dịch để đảm bảo tính toàn vẹn dữ liệu Một giao dịch là các câu lệnh thực hiện dữ liệu SQL với cùng một đơn vị công việc Ví dụ: 2 lệnh update trong cùng một lúc với một tài khoản ngân hàng.
PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG THÔNG TIN QUẢN LÝ PHBC
YÊU CẦU ĐỐI VỚI HỆ THỐNG
Hệ thống Quản lý Phát hành Báo chí cần phát triển với quy trình nghiệp vụ thống nhất và khép kín Như vậy đối tượng sử dụng được phân thành 3 cấp, cao nhất là trung tâm phát hành báo chí (bưu điện Tỉnh), tiếp đến là các bưu cục huyện, cuối cùng là các bưu cục trong địa bàn bưu điện huyện ( cửa hàng bán lẻ) Tại các cửa hàng bán lẻ (đại diện cho các bưu cục):
- Khách hàng có nhu cầu đặt báo sẽ tới điểm giao dịch để đưa ra yêu cầu của mình với nhân viên giao dịch.
- Nhân viên giao dịch xem xét nhu cầu đặt báo của khách hàng có hợp lý không ( loại báo khách hàng yêu cầu có trong danh mục báo chí phát hành không,…)
- Nhân viên giao dịch tiếp nhận yêu cầu đặt báo của độc giả Tính tiền báo cho độc giả.
- Nếu khách hàng thanh toán tiền trực tiếp, nhân viên giao dịch cập nhật phiếu thu và thu tiền của độc giả.
- Cho phép quản lý các cửa hàng bán lẻ, tiếp nhận nhu cầu hàng ngày của các cửa hàng bán lẻ của các b ưu cục trên địa bàn của mình.
- Thống kê về nhu cầu báo của các bưu cục ( bao gồm của độc giả dài hạn và các cửa hàng bán lẻ ).
- Thu tiền báo các cửa hàng bán lẻ, tổng hợp công nợ.
- Tổng hợp công nợ của các độc giả trong từng bưu cục, trong toàn huyện mình.
Tại bưu cục trung tâm (Bưu điện tỉnh )
- Quản lý các bưu cục trên địa bàn của tỉnh.
- Tiếp nhận nhu cầu báo chí của các bưu cục.
- Thu tiền báo của các bưu cục, tổng hợp công nợ đối với các bưu cục trên toàn tỉnh.
- Thống kê nhu cầu báo chí toàn tỉnh, cập nhật báo phát thiếu, biến động báo và đơn giá báo chí.
LỰA CHỌN GIẢI PHÁP
Với yêu cầu của bài toán đặt ra thì với sức mạnh của công nghệ Internet đã tạo ra một mô hình ứng dụng mới dành cho người sử dụng, đó là mô hình ứng dụng Web. Ưu điểm nổi bật của các ứng dụng Web là chỉ cần một trình duyệt thông thường và máy tính đã kết nối (quay số), người dùng đã có thể sử dụng được chương trình mà không cần phải quan tới việc cài đặt, bảo dưỡng, hay nâng cấp các ứng dụng này Đó cũng là ưu thế của công nghệ Client/Server dựa trên dịch vụ World Wide Web (WWW) Ngoài ra sự áp dụng công nghệ này còn dựa trên những căn cứ thực tế sau:
Về mặt công cụ lập trình
Các ứng dụng Web database có ưu điểm là: Dựa vào thế mạnh của giao diện Web trong khi làm việc với cơ sở dữ liệu Database lưu trữ tập trung, bảo mật cao nhưng lại cho phép truy xuất dễ dàng.
Việc viết các ứng dụng Web cho phép giao tiếp dữ liệu giữa Browser và Web server cũng như việc giao tiếp giữa ứng dụng và cơ sở dữ liệu hiện nay cũng có nhiều phương pháp và kỹ thuật khác nhau Nhưng nổi bật trong số đó là môi trường phát triển ứng dụng ASP.NET của Microsoft.
ASP.NET là một môi trường phát triển ứng dụng tuyệt vời phát triển toàn diện đối với ASP, ASP.NET tách biệt giữa mã và nội dung, làm cho mã chương trình được sạch hơn Đặc biệt, ASP.NET được kết hợp với các ngôn ngữ khác như C#, là ngôn ngữ hoàn toàn hướng đối tượng, giúp cho việc thực hiện cài đặt theo phân tích thiết kế hướng đối tượng thuận lợi Ngoài ra Net xây dựng sẵn một thư viện ADO.NET gồm các thành phần để giao tiếp với các cở sở dữ liệu khác nhau: Oracle (OracleClient), SQL Server(SQLClient), tuy nhiên chúng có cùng cấu trúc giống nhau Trong ứng dụng này tôi sử dụng OracleClient, thành phần của ADO.NET là một trong những công cụ mạnh nhất trong việc phát triển các ứng dụng Web Oracle Database.
Các đối tượng Connection, Command, Data Reader và Data Adapter là thành phần chính của NET OracleClient. Đối tượng Mô tả
Connection Thiết lập kết nối với một cơ sở dữ liệu xác định và quản lý các Transaction
Command Thực hiện một câu lệnh trên cơ sở dữ liệu đã được kết nối bới đối tượng.
DataReader Data Reader chỉ để đọc dữ liệu, đọc hết một bản ghi, nó tự nhảy dến con trỏ kế tiếp Data Reader không thể thay đổi dữ liệu.
DataAdapter Đối tượng này thường đi cùng với Data Set và giải quyết các vấn đề về cập nhật cơ sở dữ liệu.
Data Set là một thực thể độc lập, dùng để biểu diễn dữ liệu ở bên trong bộ nhớ Nó không biết gì về nguồn dữ liệu mà nó lưu trữ Bên trong Data Set chứa một tập dữ liệu hoàn thiện như: Table, Column, Relationship …
Như vậy, trong khi Data Set không biết gì về nguồn dữ liệu thì NET Data Provider lại có tất cả các thông tin chi tiết Vai trò của NET Data Provider là liên kết, điền đầy dữ liệu vào Data Set từ nguồn dữ liệu.
Trong Net Data Provider ta cần chú ý đến đối tượng Data Adapter Đó là một đối tượng kết nối với cơ sở dữ liệu để điền đầy vào Data Set Sau đó, nó sẽ cập nhật dữ liệu trong cơ sở dữ liệu dựa trên các thao tác được thực hiện, trong khi Data Set vẫn nắm giữ dữ liệu.
Data Adapter Select Command UpdateCommand Insert Command Delete Command
Ngày nay, quá trình xử lý dữ liệu là cách tiếp cận dựa trên thông điệp, nó tập trung vào các vùng thông tin Trung tâm của cách tiếp cận này là Data Adapter, Data Adapter là cầu nối để lấy và lưu thông tin giữa Data Set và nguồn dữ liệu Nó thực hiện điều này bằng cách yêu cầu các câu lệnh SQL thích hợp với nguồn lưu trữ dữ liệu
Hình 3.1: Kiến trúc của ADO.NET
Công cụ phân tích thiết kế
Hiện nay việc phân tích thiết kế tiếp cận theo hướng đối tượng đã khẳng định được những ưu điểm vượt trội so với phương pháp pháp phân tích thiết kế cổ điển Và cũng là để học hỏi thêm kiến thức trong khi làm đồ án tốt nghiệp Nhưng em không đi sâu vào phân tích thiết kế tất cả các use case, mà tập trung vào các ch ức năng chính của ứng dụng Hơn nữa, trong bài luận văn này chỉ từ các use case, actor và các quan hệ,chúng ta có thể dẫn tới các quan hệ của các thực thể (cụ thể ở đây là các bảng) Và từ các “biểu đồ logic” đó ta tạo nên “biểu đồ vật lý” thông qua ký pháp UML được thực hiện bởi phần mềm Rational Suite Enterprise của hãng Rational Software Corporation.
Các chức năng về quản trị
Về phía người quản trị hệ thống.
Cập nhật người sử dụng
Sau đây là biểu đồ use case (mà chức năng modul báo chí cung cấp) của hệ thống cung cấp:
Người sử dụng hệ thống được phân ra làm hai khu vực khác nhau ở mỗi khu vực lại được chia nhỏ theo quyền hạn về hệ thống khu vực đó Khu vực thứ nhất là người dùng cấp bưu cục, khu vực thứ hai là người dùng cấp quản trị Người dùng cấp bưu cục nếu có quyền hệ thống cũng chỉ được phép tạo ra người sử dụng mới trong bưu cục đó Người dùng cấp quản trị có quyền tạo ra những người sử dụng mới tại tất cả các bưu cục Trong mỗi khu vực có 3 mức thẩm quyền khác nhau
Quyền hệ thống : là quyền cho phép th êm, xoá sửa người sử dụng
Quyền nhập số liệu : là quyền cho phép người sử dụng nhập các dữ liệu liên quan như danh mục độc giả, khách hàng, nhu cầu độc giả dài hạn
Quyền in báo cáo : là quyền cho phép người sử dụng được in báo cáo
Thông tin một user bao gồm
Các use case này cho phép người quản trị lưu trữ thông tin về người sử dụng hệ thống, bao gồm: thêm, cập nhật xoá người sử dụng,
Các chức năng về báo chí
Về phía người quản trị hệ thống
Cập nhật danh mục báo
Cap nhat nguoi su dung
Xoa nguoi su dung Nguoi quan tri
Xem,timkiem Dm biendongbao Xem,timkiem Dm bao
Nhan vien cac buu cuc
Nguoi quan tri (from Use Case View) )
Cập nhật danh mục biến động báo.
Cập nhật danh mục kì xuất bản.
Cập nhật danh mục loại báo.
Cập nhật danh mục loại báo.
Tính đơn giá báo cho từng tháng, quý của tất cả các báo có trong cơ sở dữ liệu.
( Cập nhật ở đây được hiểu là thêm, bớt, xoá các mục trong CSDL)
Về phía nhân viên các bưu cục: bao gồm các nhân viên cửa hàng bán lẻ đại diện các bưu cục và nhân viên của bưu cục đại diện cho bưu điện huyện.
Xem, tìm kiếm danh mục báo.
Xem, tìm kiếm danh mục biến động báo.
Xem, tìm kiếm danh mục kì xuất bản.
Xem, tìm kiếm danh mục loại báo.
Xem, tìm kiếm đơn giá báo.
Thống kê báo theo các tiêu chí khác nhau.
Sau đây là biểu đồ use case (mà chức năng modul báo chí cung cấp) của hệ thống:
Chi tiết các use case
Về phía người quản trị.
1 Use case: Cập nhật danh mục kì xuất bản.
Nhiệm vụ: Thêm, sửa, xoá một danh mục kì xuất bản vào hệ thống.
Actor: Người quản trị hệ thống tại trung tâm PHBC (bưu điện tỉnh).
Bước 1: Thêm một kì xuất bản vào hệ thống Trước hết cần phải điền đầy đủ các thông tin trên form Thông tin bao gồm:
Mã kỳ xuất bản là một thông tin quan trọng để tính ra số kỳ xuất bản từ đó tính ra được giá báo tháng, giá báo quý Có các loại kỳ xuất bản và cách đặt mã kỳ như sau:
MK1, MK2, MK3 : là loại báo ra tương ứng một tháng 1 kỳ, 2 kỳ, 3 kỳ
MKC là báo ra vào tháng chẵn, MKL là báo ra vào các tháng lẻ.
M3, M6 : loại báo ra tương ứng 3 tháng một kỳ, 6 tháng một kỳ
N, N1, N7 : là các loại báo ra hàng ngày, ra hàng ngày trừ chủ nhật, ra hàng ngày trừ thứ 7
TN1, TN13, : là các loại báo ra hàng tuần vào chủ nhật, ra hàng tuần vào chủ nhật và thứ 3
K1, K2, : là các loại báo ra không theo các điều kiện trên khi đó chương trình không tính được giá báo mà giá báo là do người sử dụng tự nhập trong phần cập nhật đơn giá báo chí.
Bước 2: Hệ thống sẽ kiểm tra mã kì xuất bản có trùng với mã kì xuất bản nào đã có trong hệ thống không ? Nếu trùng thì hệ thống sẽ yêu cầu chọn mã kì xuất bản khác Mặt khác hệ thống còn kiểm tra về độ dài của mã kì xuất bản và tên kì xuất bản
Bước 3: N ếu bước 2 thành công h ệ th ống sẽ thêm mới m ột k ì xuất bản đồng thời thông báo thêm mới một kì xuất bản thành công.
Chon Dm ki xuat ban trong menu Chon them moi
Thong diep them moi thanh cong
Kiem tra tinh dung dan cua thong tin
Thong diep can sua lai
Kiem tra xem co muc bao nao lien quan den danh muc da chon
Thong diep y eu cau chon ma khac
: Nguoi quan tri : CDmkxbGui : CDmkxbController : CDmkxb : CDmbaoDatabase 1: Chon Dmkixuatban trong menu
2: Mo form Dm ki xuat ban
3: Chon them dm ki xuat ban
5: Kiem tra tinh dung dan cua thong tin
7: Tao thuc the Dmkxb 6: Them Dm ki xuat ban
9: Them danh muc ki xuat ban
10: Goi thuc the Dm ki xuat ban
11: Kiem tra Dm ki xuat ban da ton tai trong he thong
12: Luu tru vao co so du lieu 8: Tao thong tin thuc the ki xuat ban
2: Mo form Dm ki xuat ban
3: Chon them dm ki xuat ban 4: Nhap thong tin 5: Kiem tra tinh dung dan cua thong tin
6: Them Dm ki xuat ban
9: Them danh muc ki xuat ban
10: Goi thuc the Dm ki xuat ban
11: Kiem tra Dm ki xuat ban da ton tai trong he thong
12: Luu tru vao co so du lieu
8: Tao thong tin thuc the ki xuat ban
Xoá:Bước 1: Xoá một kì xuất bản ra khỏi hệ thống Người quản trị cần phải xác định mục kì xuất bản nào cần xoá.
Bước 2: Hệ thống sẽ tìm xem có danh mục báo nào có kì xuất bản trùng với kì xuất bản đã chọn Nếu trùng, hệ thống sẽ thông báo có danh mục báo liên quan đến kì xuất bản Khi đó mục kì xuất bản sẽ không được xoá.
B ư ớc 3: Nếu bước 2 hệ thống không tìm thấy danh mục báo nào có kì xuất bản trùng với kì xuất bản đã chọn Hệ thống sẽ xoá kì xuất bản đó ra khỏi CSDL và thông báo xoá kì xuất bản thành công.
Chon Dm kixuatban trong menu
Chon danh muc can xoa Kiem tra xem co muc bao nao lien quan den danh muc da chon
Thong diep xoa thanh cong
Thong diep xoa khong thanh cong
Co muc bao nao lien quan khong? Co
: CDmkxb : CDmbaoDatabase 1: Chon Dmkixuatban trong menu
2: Mo form Dm ki xuat ban
3: Chon xoa dm ki xuat ban
4: Xoa Dm ki xuat ban
5: Tao thuc the Dmkxb 6: Tao thong tin thuc the ki xuat ban
7: Xoa Dm ki xuat ban
8: Goi thuc the Dm ki xuat ban
9: Kiem tra co Dm bao lien quan den ki xuat ban se xoa 10: Xoa Dm ki xuat ban ra khoi CSDL
Bước 1: Cập nhật một kì xuất bản trong hệ thống Người quản trị cần phải xác định mục kì xuất bản nào cần cập nhật
Bước 2: Nhập thông tin về tên kì xuất bản (chỉ được phép sửa tên kì xuất bản).
Hệ thống sẽ kiểm tra độ dài tên kì xuất bản cần cập nhật Bước 3: Nếu bước 2 thành công hệ thống sẽ cập nhật kì xuất bản, đồng thời thông báo cập nhật kì xuất bản thành công.
Nhap thong tin can cap nhat
Chon thong tin can cap nhat
Chon Dm kixuatban trong menu
Lay thong tin chi tiet
Kiem tra tinh dung dan cua thong tin
Thong diep can sua lai
Co dung dan khong ? Khong
Thong diep cap nhat thanh cong
: Nguoi quan tri : CDmkxbGui : CDmkxbController : CDmkxb : CDmbaoDatabase
1: Chon Dm ki xuat ban trong menu
9: Cap nhat thong tin Dmkxb
10: Lay thong tin Dmkxb can cap nhat
2: Mo form Dm ki xuat ban
3: Chon thong tin Dm ki xuat ban can cap nhat
5: Kiem tra tinh dung dan cua thong tin
6: Cap nhat Dm ki xuat ban
11: Luu Dm ki xuat ban vao CSDL 8: Tao thong tin thuc the Dm ki xuat ban
2: Mo form Dm ki xuat ban 5: Kiem tra tinh dung dan cua thong tin
11: Luu Dm ki xuat ban vao CSDL
1: Chon Dm ki xuat ban trong menu
3: Chon thong tin Dm ki xuat ban can cap nhat
6: Cap nhat Dm ki xuat ban
7: Tao thuc the Dmkxb 8: Tao thong tin thuc the Dm ki xuat ban 9: Cap nhat thong tin Dmkxb
10: Lay thong tin Dmkxb can cap nhat Điều kiện trước khi xảy ra use case : Người quản trị phải login vào hệ thống và chọn dm kxb từ menu chính của hệ thống. Điều kiện sau khi xảy ra use case : Nếu use case này được thực hiện thành công thì thông tin của dm kxb sẽ được bổ sung, cập nhật vào hệ thống hoặc xoá dm kxb ra khỏi hệ thống
1 Use case: Cập nhật danh mục nhà xuất bản
Mục này chứa các thông tin về danh mục nơi xuất bản dùng để phân biệt báo địa phương, báo trung ương, báo trong ngành, báo ngoài ngành.
Thông tin một danh mục nhà xuất bản bao gồm
Use case này cho phép user lưu trữ thông tin của danh mục nhà xuất bản vào hệ thống bao gồm: thêm, cập nhật xoá một danh mục nhà xuất bản ví dụ: d - địa phương, n – nước ngoài,
2 Use case: Cập nhật danh mục loại báo
Mục này chứa các thông tin về danh mục loại báo dùng để phân biệt các loại báo theo báo ngày, tuần, tháng v.v.v
Use case này cho phép user lưu trữ thông tin của danh mục loại báo vào hệ thống. bao gồm: thêm, cập nhật xoá một danh mục loại báo ví dụ: n – báo ngày, nn – nước ngoài,
Thông tin một danh mục loại báo bao gồm
Hệ thống sẽ tìm xem có danh mục báo nào có loại báo trùng với loại báo bản đã chọn. Loại báo thường được tham chiếu bởi danh mục báo, do đó khi xoá danh mục này yêu cầu không có mục báo nào tham có loại báo như thế Nếu không hệ thống sẽ không xoá và nhắc nhở bạn.
3 Use case: Cập nhật danh mục biến động báo
Mục này chứa các thông tin về danh mục biến động báo dùng để cho chương trình có thể tính ra được giá báo một cách chính xác theo thực tế báo xuất bản Trường hợp báo cắt số : phần số lượng tăng giảm nhập là -1 Trường hợp báo thêm số : phần số lượng tăng giảm nhập là 1
Trường hợp tăng, giảm giá báo : nhập một bản ghi với giá báo cũ và số lượng tăng giảm là -1 Nhập tiếp một bản ghi mới với giá báo mới và số lượng tăng giảm là 1 Các trường hợp khác cũng làm tương tự như trên
Thông tin một danh mục biến động báo báo gồm
Use case này cho phép user lưu trữ thông tin của dm bdb vào hệ thống, bao gồm: thêm, cập nhật xoá dm bdb, tăng, giảm số lượng hàng ngày Sauk hi use c ase nay thực hiên thành c ông b ạn cần th ực hi ện lại chức năng tính đơn giá
4 Use case: Cập nhật danh mục báo
Mục này chứa các thông tin về danh mục chứa báo chí Chú ý rằng ta phải cập nhật các mục kỳ xuất bản, nơi xuất bản, loại báo trước khi cập nhật danh mục báo chí Một số khái niệm trong danh mục báo
Các chức năng về độc giả dài hạn
Các chức năng của modul Độc giả dài hạn
Về phía nhân viên các cửa hàng bán lẻ (đại diện cho các bưu cục để bán báo)
Cập nhật danh mục độc giả dài hạn
Cập nhật danh mục khách hàng.
Cập nhật danh mục báo thiếu cho độc giả.
Cập nhật danh mục báo cũ cho độc giả.
Cập nhật phiếu thu khách hàng.
Cập nhật phiếu chi khách hàng.
Độc giả đặt báo dài hạn
Thống kê công nợ độc giả.
( Cập nhật ở đây được hiểu là thêm, bớt, xoá, tìm kiếm các mục trong CSDL)
Về phía nhân viên các bưu cục ( quản lý các cửa hàng bán lẻ)
Thống kê nhu cầu độc giả dài hạn đặt báo.
Sau đây là biểu đồ use case (chức năng modul Độc giả dài hạn cung cấp) của hệ thống:
Chi tiết các use case
Về phía nhân viên các cửa hàng bán lẻ.
1 Use case: Cập nhật danh mục độc giả dài hạn.
Nhiệm vụ: Thêm, sửa, xoá, tìm kiếm một danh mục độc giả dài hạn vào hệ thống.
Bước 1: Thêm độc giả dài hạn vào hệ thống Trước hết cần phải điền đầy đủ các thông tin trên form Thông tin bao gồm:
Mã độc giả, tên độc giả
Mã khách hàng: Thông tin này được điền khi độc giả không tự trả tiền, độc giả phải lựa chọn một khách hàng có trong hệ thống trả tiền.
Bước 2: Hệ thống sẽ kiểm tra mã độc giả có trùng với mã độc giả nào đã có trong hệ thống không ? Nếu trùng thì hệ thống sẽ yêu cầu chọn mã độc giả khác Mặt khác hệ thống còn kiểm tra tính đúng đắn của thông tin nhập vào.
Bước 3: Nếu độc giả tự trả tiền thì hệ thống tự động thêm mới một khách hàng.
Thông tin một khách hàng báo gồm:
Mã khách hàng trùng với mã độc giả
Tên khách hàng trùng với tên độc giả
Địa chỉ khách hàng trùng với tên địa chỉ độc giả.
Bước 4: Nếu bước 2 thành công hệ thống sẽ thêm mới một độc giả mới vào hệ thống, đồng thời thông báo thêm mới một độc giả thành công.
Xoá:Bước 1: Xoá độc giả dài hạn ra khỏi hệ thống Nhân viên phải xác định độc giả dài hạn nào cần xoá.
Bước 2: Hệ thống sẽ kiểm tra xem có độc giả có được phép xoá hay không.
Thông thường độc giả dài hạn là ít khi được xoá vì có nhiều thành phần khác tham chiếu đến
B ư ớc 3: Nếu bước 2 thành công, hệ thống sẽ xoá độc giả dài hạn ra khỏi
CSDL và thông báo xoá độc giả dài hạn thành công.
Bước 1: Cập nhật một độc giả dài hạn trong hệ thống Người quản trị cần phải xác định độc giả dài hạn nào cần cập nhật
Bước 2: Nhập thông tin thành phần cần sửa Hệ thống sẽ kiểm tra thông tin vừa sửa có hợp lệ không.
Bước 3: Nếu bước 2 thành công hệ thống sẽ cập nhật danh mục độc giả dài hạn, đồng thời thông báo cập nhật độc giả dài hạn thành công.
Chọn chức năng tìm kiếm và nhập các tiêu chí tìm kiếm như: Mã độc giả, tên độc giả, tên khách hàng, tuyến Hệ thống sẽ hiện các kết quả đạt được Nếu không có kết quả nào thì hệ thống sẽ hiện toàn bộ đơn giá toàn bộ độc giả hiện có.
2 Use case: Cập nhật danh mục khách hàng
Danh mục khách hàng chứa các thông tin về khách hàng Thường trong danh mục khách hàng ta không thêm khách hàng mới, hoặc xoá khách hàng cũ đi mà mục đích chính trong danh mục khách hàng là sửa thông tin tên và địa chỉ của khách hàng đó vì việc thêm và bớt trong danh mục khách hàng thường được làm tự động khi ta nhập trong danh mục độc giả ( như đã nói ở phần danh mục độc giả ở trên ) Danh mục khách hàng là tên và địa chỉ của cơ quan trực tiếp thanh toán tiền báo chí hay nói cách khác công nợ phát hành báo chí được theo dõi dựa trên danh mục khách hàng Một khách hàng có thể thanh toán tiền báo cho nhiều độc giả hoặc chỉ thanh toán duy nhất cho một độc giả
3 Use case: Cập nhật danh mục báo thiếu cho độc giả Đây là danh mục báo phát thiếu cho độc giả, là thành phần trong thống kê công nợ độc giả.
Use case này cho phép bạn thêm, tìm kiếm, sửa, xoá muc báo thiếu cho hệ thống
4 Use case: Cập nhật danh mục báo cũ cho độc giả Đây là danh mục báo về muộn được phát cho độc giả, là thành phần trong thống kê công nợ độc giả.
Thông tin mục báo cũ cho độc giả bao gồm:
Use case này cho phép bạn thêm, tìm kiếm, sửa, xoá muc báo cũ cho hệ thống.
5 Use case: Cập nhật phiếu thu khách hàng: Đây là mục khách hàng nộp, khách hàng có thể nộp tiền theo nhiều đợt trong đó số biên lai được đánh theo thứ tự tăng dần Nhân viên cửa hàng có thể in phiếu thu cho khách hàng ngay tại quầy.
Thông tin vê một phiếu thu :
Use case này cho phép bạn thêm, tìm kiếm, sửa, xoá phiếu thu khách hàng
6 Use case: Cập nhật phiếu chi khách hàng: Đây là mục thoái chi, trả lại tiền cho khách hàng do khách hàng giảm số báo, hay cắt số, trong đó số biên lai được đánh theo thứ tự tăng dần Nhân viên cửa hàng có thể in phiếu chi cho khách hàng ngay tại quầy.
Thông tin vê một phiếu chi :
Use case này cho phép bạn thêm, tìm kiếm, sửa, xoá phiếu chi khách hàng
7 Use case: Độc giả đặt báo Đây là mục để cập nhật nhu cầu đặt báo của độc giả dài hạn.
Mua tròn tháng : khách hàng có thể đặt báo mua tròn tháng hoặc không mua tròn tháng, khi đó hệ thống sẽ cho phép bạn nhập vào ngày bắt đầu đặt và ngày kết thúc đặt.
Hệ thống cho phép đặt mới, bổ xung, thôi mua: tuỳ theo yêu cầu.
Hệ thống cho phép in giấy tính tiền cho độc giả đặt báo, đồng thời cập nhập phiếu thu khách hàng.
Thông tin về mục độc giả đặt báo bao gồm:
Use case này cho phép bạn thêm, tìm kiếm, sửa, xoá phiếu chi khách hàng
8 Use case: Thống kê công nợ độc giả dài hạn:
Nhiệm vụ: Có thể thống kê, in biểu theo quý, mã báo, mã độc giả và theo tuyến khi có sự thay đổi (nhập mới, sửa đổi) về nhu cầu của độc giả dài hạn trong tháng, quý cần thống kê thì khi đó phải chạy lại phần tổng hợp lại để có số liệu nhu cầu độc giả dài hạn chính xác Có thể thống kê, in biểu ph1 theo theo tháng, theo mã khách hàng và theo tuyến.
Bước 1: Nhập các điều kiện thống kê như mã báo, độc giả dài hạn, hay tuyến muốn thống kê.
Bước 2: Hệ thống sẽ thống kê từ bảng PH1_DH của tháng đó và hiển thị dữ liệu.
Bước 1 : Nhập tháng cần thống kê lại Chọn chức năng thống kê lại.
Bước 2 : Hệ thống sẽ gọi thủ tục PBC_PH1DH được lưu trữ trong hệ thống sẽ thiết lập lại cho bảng PH1_DH của tháng đó.
Nhap thong tin thong ke
Chon chuc nang thong ke
Chon chuc nang thong ke lai
Lay thong tin thoa man trong bang ph1_dh cua thang can thong ke
Chay thu tuc PBC_PH1DH thiet lap lai du lieu cho bang ph1_dh thang can thong ke
Hethong PHBC Quan tri he thong
: Nhan vien buu cuc : CTkcongnoGui : TkcongnoController : CDgdhDatabase 1: Chon menu thong ke cong no
2: Mo Form, chon chuc nang thong ke lai
5: Goi thu tuc PBC_PH1DH trong co so du lieu luu vao bang ph1_dh
Về phía nhân viên các bưu cục ( quản lý các cửa hàng bán lẻ):
1 Use case: Thống kê nhu cầu độc giả:
Nhiệm vụ: Có thể thống kê, in biểu theo quý mã báo, mã độc giả và theo tuyến.
Khi có sự thay đổi (nhập mới, sửa đổi) về nhu cầu độc giả dài hạn (đặt báo dài hạn) trong tháng, quý cần thống kê khi đó cần phải thống kê lại để có số liệu nhu cầu độc giả dài hạn(PH2) chính xác
Bước 1: Nhập các điều kiện thống kê như mã báo, độc giả dài hạn, hay tuyến và quý muốn thống kê.
Bước 2: Hệ thống sẽ thống kê lấy d ữ liệu t ừ bảng PH2_DH của quý đó và hiển thị dữ liệu.
Bước 1 : Chọn quý cần thống kê lại Chọn chức năng thống kê lại.
Bước 2 : Hệ thống sẽ gọi thủ tục stored procedure PBC_PH2DH được lưu trữ trong CSDL sẽ thiết lập lại cho bảng PH2_DH của quý đó.
: Nhan vien buu cuc : CTkcongnoGui : TkcongnoController
1: Chon menu thong ke cong no
2: Mo Form, chon chuc nang thong ke lai
4: Thong ke lai 5: Goi thu tuc PBC_PH1DH trong co so du lieu luu vao bang ph1_dh
: Nhan vien buu cuc : CThongkenhucauGui : CTkncController : CDgdhDatabase
1: Chon menu thong ke nhu cau
5: Goi thu tuc PBC_PH2DH trong co so du lieu luu vao bang ph2_dh
Nhap thong tin thong ke
Chon chuc nang thong ke
Chon chuc nang thong ke lai
Chay thu tuc PBC_PH1DH thiet lap lai du lieu cho bang ph1_dh thang can thong ke
Lay thong tin thoa man trong bang ph1_dh cua thang can thong ke
Hethong PHBC Quan tri he thong
: Nhan vien buu cuc : CThongkenhucauGui : CTkncController
1: Chon menu thong ke nhu cau
5: Goi thu tuc PBC_PH2DH trong co so du lieu luu vao bang ph2_dh
Các thực thể trong gói (Package) danh mục độc giả dài hạn
DM_TUYEN MA_TUYEN : NUMBER TEN_TUYEN : VARCHAR2 PK_DMT = MA_TUYEN
DM_HUYEN MA_HUYEN : VARCHAR2 TEN_HUYEN : VARCHAR2 PK_DMH = MA_HUYEN
DM_BC3 MA_BC : VARCHAR2 TEN_BC : VARCHAR2 PK_DMBC = MA_BC
MA_BC = MA_BC MA_BC = MA_BC
MA_HUYEN = MA_HUYEN MA_HUYEN = MA_HUYEN
PH11_DH SO_BL : VARCHAR2 MA_CH : NUMBER TIEN_NOP : NUMBER NGAY_NOP : DATE DIEN_GIAI : VARCHAR2 PK_PH11DH = SO_BL PH11_DH_MAKH_NGAY NOP = MA_KH,NGAY_NOP
KHACH_HANG MA_KH : NUMBER TEN_KH : VARCHAR2 DIACHI_KH : VARCHAR2 PK_KH = MA_KH KHACH_HANG_MAKH = MA_KH,TEN_KH
MA_KH = MA_KH MA_KH = MA_KH
PH13_DH SO_BL : VARCHAR2 MA_CH : NUMBER TIEN_NOP : NUMBER NGAY_TRA : DATE DIEN_GIAI : VARCHAR2 PK_PH13DH = SO_BL
MA_KH = MA_KH MA_KH = MA_KH
PH19_DH ID_PH19_DH : NUMBER
SO_PH19 : NUMBER NGAY : DATE LOAI : VARCHAR2 TU_THANG : NUMBER DEN_THANG : NUMBER TU_NGAY : DATE DEN_NGAY : DATE
SL : NUMBER SK_KHONG : NUMBER TIEN : NUMBER GHI_CHU : VARCHAR2 PK_PH19DH = ID_PH19_DH PH19_DH_MABAO_MADG = MA_BAO,MA_DG,TU_NGAY,DEN_NGAY PH19_DH_MADG = MA_DG
BAO_THIEU ID_BAO_THIEU : NUMBER
PK_BAOTHIEU = ID_BAO_THIEU
DOC_GIA MA_DG : NUMBER
DOC_GIA_MADG_MAKH = MA_DG,MA_KH
MA_KH = MA_KH MA_KH = MA_KH
MA_TUYEN = MA_TUYEN MA_TUYEN = MA_TUYEN
MA_DG = MA_DG MA_DG = MA_DG
MA_DG = MA_DG MA_DG = MA_DG
CHUYEN_DG ID_CHUYEN_DG : NUMBER
PK_CHUYENDG = ID_CHUYEN_DG
MA_DG = MA_DG MA_DG = MA_DG
Biểu đồ lớp của package danh mục độc giả:
Load() AddBaocu() DeleteBaocu() UpdateBaocu() ValidateInfo()
UpdatePhieuthu() SelectPhieuthu() ValidateInfo() ShowListPhieuthu() DeletePhieuthu() AddPhieuthu()
Update() Delete() Find() Add() Commit()
CBaocu id_baocu ma_bao ma_dg sl ngay_xb
CBaothieu id_baothieu ma_bao ma_dg sl ngay_xb
CDatbao id_datbao ma_dg tu_thang name den_thang tu_ngay den_ngay ma_bao ghi_chu sl
CDocgia ma_dg ten_dg diachi_dg ma_tuyen ma_kh
CKhachhang ma_kh ten_kh diachi_kh
CPhieuchi so_phieu ma_kh ngay_chi ma_ch dien_giai
CPhieuthu so_phieu ma_kh ngay_nop so_tien dien_giai
AddBaocu() UpdateBaocu() DeleteBaocu() FindBaocu() CheckBaocuExist() AddBaothieu() UpdateBaothieu() DeleteBaothieu() FindBaothieu() CheckBaothieuExist() AddPhieuthu() UpdatePhieuthu() DeletePhieuthu() FindPhieuthu() CheckPhieuthuExist() AddPhieuchi() UpdatePhieuchi() DeletePhieuchi() FindPhieuchi() CheckPhieuchiExist() AddDocgia() UpdateDocgia() DeleteDocgia() FindDocgia() CheckDocgiaExist() UpdateKhachhang() DeleteKhachhang() FindKhachhang() CheckKhachhangExist() AddDatbao() UpdateDatbao() DeleteDatbao() FindDatbao() CheckDatbaoExist() Thongkenhucau() Thongkeconno()
Các chức năng quản lý cửa hàng bán lẻ
Về phía nhân viên các bưu cục.
Cập nhật danh mục cửa hàng bán lẻ.
Phân phối báo cho cửa hàng bán lẻ.
Thu tiền cửa hàng bán lẻ.
Cập nhật báo lưu ký.
Về phía nhân viên cửa hàng bán lẻ.
Sau đây là biểu đồ use case (mà chức năng Package Quản lý cửa hàng bán lẻ cung cấp) của hệ thống:
Chi tiết các use case
Về phía nhân viên bưu cục.
1 Use case: Cập nhật danh mục cửa hàng bán lẻ.
Mục này chứa các thông tin về danh mục c ửa hàng bán lẻ của bưu cục.Loại cửa hàng có thể là đóng thẳng (DT) ho ặc kh ông đ óng th ẳng (KT)
Cửa hàng đóng thẳng: là cửa hàng đại diện cho bưu cục đó, và tất cả các loại báo được chuyển thẳng về đây, mỗi bưu cục có một cửa hàng đóng thẳng Tên và địa chỉ cửa hàng ta lấy luôn là tên và địa chỉ của bưu cục mà nó đại diện Tuyến ta lấy một tuyến của bưu cục đó để đại diện
Cửa hàng không đóng thẳng là cửa hàng: báo được chuyển đến bưu cục sau đó mới được phân phối đến cho cửa hàng không đóng thẳng
Thông tin một danh mục loại cửa hàng bao gồm
Nhan vien cua hang ban le (from Use Case View) ) Capnhat Phieuthubl
Use case này cho phép user lưu trữ thông tin của danh mục cửa hàng vào hệ thống. Bao gồm: thêm, cập nhật xoá một danh mục cửa hàng Thông thường rất ít khi xoá một cửa hàng, Vì phải đảm bảo các mục liên quan đến cửa hàng.
2 Use case: Phân phối báo cho cửa hàng bán lẻ.
Nhiệm vụ: Tất cả các báo được chuyển về cho bưu cục: bao gồm báo cho độc giả dài hạn, báo về mu ộn, báo lưu kí, dữ liệu này thuộc báo về hàng ngày Use case này cho phép tính toán để phân phối báo cho cửa hàng bán lẻ ( loại đóng thẳng ) một cách chính xác Từ đó phân phối cho các cửa hàng bán lẻ của bưu cục ( không đóng thẳng)
Bước 1: Chọn chức năng phân phối lại Tính toán số lượng báo cho tất cả các cửa hàng bán lẻ của bưu cục được dồn về cho cửa hàng bán lẻ đóng thẳng đại diện cho bưu cục.
Bước 2: Cập nhật báo bán lẻ cho các cửa hàng không đóng thẳng thuộc bưu cục quản lý.
Bước 3: Chọn chức năng phân phối lại, nhằm tính toán chính xác số lượng báo cho tất cả các cửa hàng bán lẻ. Điều kiện trước khi xảy ra use case : Người quản trị, nhân viên ở trung tâm
PHBC (ở bưu điện tỉnh) phải cập nhật báo về hàng ngày cho bưu cục ( chức năng này ở trong modul Phân phối báo ). Điều kiện sau khi xảy ra use case : Nếu use case này được thực hiện thành công thì thông tin s ố lượng báo về cho các cửa hàng bán lẻ trong bưu cục được cập nhật. Ngoài ra trạng thái của hệ thống không thay đổi.
Chon chuc nang phan phoi bao
Cap nhat bao cho cho cac cua hang khong dong thang
Chon chuc nang phan phoi bao
Goi thu tuc Stored Procedure PBC_PH3BL trong co so du lieu
So luong bao duoc don cho cua hang ban le (DT) dai dien cho buu cuc
Tinh toan so luong bao cho cho tat ca cac cua hang cua buu cuc
Hethong PHBC Nhan vien buu cuc
3 Use case: Thu tiền cửa hàng bán lẻ.
Mục này chứa các thông tin về phiếu thu cửa hàng bán lẻ nộp cho bưu cục Số biên lai có chiều dài tối đa là 10 ký tự, đánh theo số phiếu nộp tiền Tiền nộp được phân làm 2 loại khác nhau : nộp tiền cho báo bán lẻ trong ngành và nộp tiền báo bán lẻ cho báo ngoài ngành.
Thông tin một phiếu thu bao gồm
: Nhan vien buu cuc : CPhanphoibaoGui : CPphoiController : CDatabaseDmbl
1: Chon menu phan phoi bao
2: Mo form, chon chuc nang phan phoi
5: Goi thu tuc PH3_BL trong co so du lieu de tinh toan
: Nhan vien buu cuc : CPhanphoibaoGui : CPphoiController
1: Chon menu phan phoi bao
2: Mo form, chon chuc nang phan phoi
5: Goi thu tuc PH3_BL trong co so du lieu de tinh toan
Use case này cho phép user lưu trữ thông tin thu tiền cửa hàng cửa bán lẻ vào hệ thống bao gồm: thêm, cập nhật, t ìm kiếm, xoá phiếu thu cửa hàng bán lẻ
4 Use case: Cập nhật báo lưu ký
Mục đích của use case này nhằm về sau theo dõi xem các cửa hàng trả ế có đúng danh mục, chủng loại c ủa loại báo đã lưu ký không.
Thông tin một danh mục báo lưu ký bao gồm:
Use case này cho phép user lưu trữ danh m ục báo lưu ký cho c ác cửa hàng bán lẻ vào hệ thống bao gồm: thêm, cập nhật, tìm kiếm, xoá danh mục báo lưu ký cửa hàng bán lẻ
Về phía nhân viên cửa hàng bán lẻ.
1 Use case: Cập nhật báo tồn.
Báo tồn là các báo tồn đọng chưa bán được Ngày nhận thuộc tháng nào thì đó chính là số lượng tồn của tháng đó ( nên nhập ngày nhận là cuối tháng)
Số lượng tồn của tháng trước chính là tồn đầu kỳ của tháng này.
Số lượng tồn của tháng này cũng chính là tồn cuối kỳ của tháng.
Từ tồn đầu kỳ và cuối kỳ ta có thể suy ra số lượng bán hết ( phần báo tồn ) trong tháng
Thông tin một danh mục báo tồn bao gồm:
Use case này cho phép user lưu trữ danh mục báo tồn cho các cửa hàng bán lẻ vào hệ thống bao gồm: thêm, cập nhật, tìm kiếm, xoá danh mục báo tồn của cửa hàng bán lẻ
2 Use case: Cập nhật báo ế. Đây là phần trả ế báo của cửa hàng bán lẻ cho bưu cục Chỉ được trả ế các loại báo lưu ký mà thôi.
Thông tin một danh mục báo tồn bao gồm:
Use case này cho phép user lưu trữ danh mục báo ế cho các cửa hàng bán lẻ vào hệ thống bao gồm: thêm, cập nhật, tìm kiếm, xoá danh mục báo ế của cửa hàng bán lẻ
Các thực thể trong gói (Package) quản lý cửa hàng bán lẻ:
Biểu đồ lớp của gói (package) quản lý cửa hàng bán lẻ:
SO_BL : VARCHAR2 NGAY_NOP : DATE TIEN_NOP : NUMBER DIEN_GIAI : VARCHAR2 LOAI : VARCHAR2 PK_PH11BL = SO_BL
ID_LUU_KY : NUMBER NGAY_NB : DATE SO_XB : VARCHAR2
SL : NUMBER GIA_LE : NUMBER TIEN : NUMBER PK_LUUKY = ID_LUU_KY
ID_PH3_BL : NUMBER NGAY_NB : DATE SO_XB : VARCHAR2
SL : NUMBER GIA_LE : NUMBER TIEN : NUMBER PK_PH3BL = ID_PH3_BL
MA_CH = MA_CH MA_CH = MA_CH
MA_CH = MA_CH MA_CH = MA_CH
MA_CH = MA_CH MA_CH = MA_CH
NGAY_NB : DATE SO_XB : VARCHAR2
SL : NUMBER GIA_LE : NUMBER TIEN : NUMBER PK_TON = ID_TON
MA_CH = MA_CH MA_CH = MA_CH
Các chức năng phân phối báo
ShowBaoeList() SelectBaoe() DeleteBaoe() AddBaoe() UpdateBaoe() ValidateInfo()
AddPhieuthubl() UpdatePhieuthubl() DeletePhieuthubl() ShowPhieuthublList() SelectPhieuthubl()
CBaoluuky id_baolk ma_bao ma_ch ngay_nhan xo_xb gia_le thanh_tien sl
UpdateBaoe() AddBaoe() DeleteBaoe() FindBaoe() Commit()
CBaoe ma_ch ma_bao id_baoe ngay_nhan so_xb gia_le thanh_tien sl
Id_baoton ma_bao ngay_nhan gia_le sl thanh_tien so_xb
CDmbl ma_ch ten_ch ma_tuyen
CPhieuthubl so_bl ma_ch tien_nop ngay_nop dien_giai
CPhanphoibao ma_bao ma_ch sl gia_le thanh_tien ngay_nhan Id_ppbao
AddBaoe() UpdateBaoe() DeleteBaoe() GetBaoes() FindBaoe() CheckBaoeExist() AddBaolk() UpdateBaolk() DeleteBaolk() GetBaolks() FindBaolk() CheckBaolkExist() AddBaoton() UpdateBaoton() DeleteBaoton() GetBaotons() CheckBaotonExist() AddDmbl() UpdateDmbl() DeleteDmbl() CheckDmblExist() GetDmbls() AddPpbao() UpdatePpbao() DeletePpbao() CheckPpbaoExist() GetPpbaos() AddPhieuthubl() UpdatePhieuthubl() DeletePhieuthubl() CheckPhieuthublExist() GetPhieuthubls()
Về phía quản trị hệ thống.
Cập nhật danh mục huyện.
Cập nhật danh mục bưu cục.
Về phía nhân viên trung tâm PHBC (bưu điện tỉnh)
Cập nhật số lượng báo về hàng ngày cho các bưu cục
Tổng hợp nhu cầu báo chí toàn tỉnh nộp lên trung ương, tổng hợp nhu cầu báo của các bưu cục để kiểm tra.
Cập nhật tăng giảm nhu cầu bưu cục ( báo lưu ký).
Phân phối báo không đóng thẳng, in chuyển báo.
Tổng hợp nhu cầu từng loại báo thực tế cho các huyện.
Về phía nhân viên bưu cục.
Cập nhật danh mục tuyến.
Cập nhật nhu cầu bưu cục.
Tổng hợp phân phối báo cho độc giả theo tuyến
Sau đây là biểu đồ use case (mà chức năng modul Phân phối báo cung cấp) của hệ thống:
Chi tiết các use case
Về phía người quản tri.
1 Use case: Cập nhật danh mục huyện.
Mục này chứa các thông tin về danh mục các bưu điện huyện nằm trên địa bàn quản lý
Thông tin một danh mục loại cửa hàng bao gồm
Cap nhat bao ve hang ngay
Cap nhat tang giam nhu cau buu cuc
Phan phoi bao khong dong thang
Thong ke bao toan tinh
Nhan vien trung tam PHBC (from Use Case View) )
Cap nhat Dm buu cuc
Phan phoi bao theo cac tuyen
Cap nhat nhu cau buu cuc
Use case này cho phép user lưu trữ thông tin của danh mục huyện vào hệ thống. bao gồm: thêm, cập nhật xoá một danh mục cửa huyện Thông thường rất ít khi xoá một danh mục huyện, vì phải đảm bảo các mục liên quan đến danh mục huyện.
2 Use case: Cập nhật danh mục bưu cục.
Mục này chứa các thông tin về danh mục các bưu cục nằm trên địa bàn quản lý Thông tin một danh mục loại bưu cục bao gồm:
Use case này cho phép user lưu trữ thông tin của danh mục bưu cục vào hệ thống, bao gồm: thêm, cập nhật xoá một danh mục bưu cục Thông thường rất ít khi xoá một danh mục bưu cục, vì phải đảm bảo các mục liên quan đến danh mục bưu cục.
Về phía nhân viên bưu cục.
1 Use case: Cập nhật danh mục tuyến.
Mục này chứa các thông tin về danh mục các tuyến của bưu cuc nằm trên địa bàn quản lý
Thông tin một danh mục tuyến bao gồm
Use case này cho phép user lưu trữ thông tin của danh mục tuyến vào hệ thống, bao gồm: thêm, cập nhật xoá một danh mục tuyến Thông thường rất ít khi xoá một danh mục tuyến, vì phải đảm bảo các mục khác liên quan đến danh mục tuyến.
2 Use case: Cập nhật nhu cầu bưu cục.
Mục này chứa các thông tin về nhu cầu danh mục báo của các bưu cục cho từng tháng Phần này cho phép tự tổng hợp nhu cầu PH6 các bưu cục dựa trên nhu cầu độc giả dài hạn và nhu cầu bán lẻ
Dữ liệu nhu cầu các bưu cục là rất quan trọng và được sử dụng các mục đích sau:
- Tổng hợp nhu cầu báo chí toàn tỉnh hoặc toàn huyện để gửi lên trung ương.
- Phân phối báo chí cho các bưu cục từ báo hàng ngày PH33 loại báo không đóng thẳng (tạp chí) một cách chính xác (PH15).
Thông tin một danh mục nhu cầu bưu cục bao gồm:
Số lượng chuyển độc giả.
Use case này cho phép mỗi bưu cục lưu trữ thông tin của nhu cầu từng loai báo vào hệ thống bao gồm: thêm, cập nhật xoá nhu cầu từng loại báo của bưu cục Thông thường rất ít khi xoá một danh mục tuyến, vì phải đảm bảo các mục liên quan đến danh mục tuyến.
3 Use case: Phân phối báo cho độc giả dài hạn cho các tuyến Để đảm bảo tính chính xác, và không phải thống kê nhiều lần, ta dùng một thực thể tạm PH9_TEN_TUYEN và PH9_DATA_TUYEN để lưu giữ dữ liệu được thống kê D ữ liệu các thực thể này sẽ được thiết lập khi ta chọn chức năng phân phối lại Use case này sẽ gọi thu t ục PBC_PH9_TUYEN được lưu trữ trong cơ sở dữ liệu nhằm tăng tốc độ cho chương trình.
Thực thể PH9_TEN_TUYEN: lưu trữ tên báo trong danh mục báo là tiêu đề trong bảng phân phối.
Thực thể PH9_DATA_TUYEN: mỗi hàng lưu trữ số lượng báo cho tuyến tương ứng với tên báo trong tiêu đề.
Use case này nhằm in bảng phân phối báo theo các tuyến cho bưu cục đang quản lý để hàng ngày có thể phân phối báo cho độc giả dài hạn theo các tuyến Số lượng và mã báo được tổng hợp từ nhu cầu của độc giả dài hạn (PH19) trong phần menu độc giả dài hạn.
Về phía nhân viên trung tâm PHBC.
1 Use case: Cập nhật báo về hàng ngày cho các bưu cục.
Báo về hàng ngày cần được cập nhật thường xuyên Đây là thông tin quan trọng để cho các bưu cục ph ân phối báo cho các cửa hàng bán lẻ, đồng thời là cơ sở để thống kê sô lượng báo đã phát cho các độc giả dài hạn trong tháng ( nhu cầu độc giả ) Do đó đòi hỏi dữ liệu cần được cập nhật chính xác.
Thông tin một danh mục báo về hàng ngày bao gồm (PH33):
Số lượng chuyển độc giả.
Ngày nhận báo : là ngày báo về.
Ngày xuất bản : là ngày báo xuất bản ( dựa báo hàng ngày mà ta có thể biết được loại báo đó có nằm trong nhu cầu của độc giả không Mặc dù báo có thể về chậm nhưng ngày xuất bản nằm trong khoảng thời gian độc giả yêu cầu thì vẫn phát báo cho độc giả Chú ý ngày xuất bản + mã báo + mã bưu cục phải là duy nh ất.
Ngày phát báo : là ngày báo được phát cho độc giả Thường thì ngày phát báo giống hệt ngày nhận báo nên ta không phải thay đổi, chỉ có trường hợp đặc biệt hai loại ngày này mới khác nhau ( báo về cuối quý để sang đầu quý sau mới phát).
Use case này cho phép thông tin báo về hàng ngày cho từng bưu cục hệ thống Bao gồm: thêm, cập nhật xoá từng mục báo cho từng bưu cục.
2 Use case: Cập nhật tăng giảm nhu cầu cho các bưu cục.
PHBC của trung ương muốn ký gửi cho các bưu cục để bán báo ngoài nhu cầu của các bưu cục ( th ường là cho từng ng ày) Do đó số lượng báo chuyển cho bưu cục tăng thêm mục lưu ký.
Dữ liệu tăng giảm nhu cầu các bưu cục là rất quan trọng và được sử dụng mục đích sau: Phân phối báo không đóng thẳng cho các bưu cục.
Thông tin một danh mục nhu cầu bưu cục bao gồm:
Số lượng chuyển độc giả.
Use case này cho phép cập nhật thông tin tăng giảm báo cho từng bưu cục hệ thống Bao gồm: thêm, cập nhật xoá từng mục báo cho từng bưu cục.
3 Use case: Ph ân phối báo không đóng thẳng.
Các thủ tục được lưu trữ trong cơ sở dữ liệu
Trong Package Danh mục báo:
- Tính đơn giá báo năm: tinhdg(mcktc in varchar)
Đầu vào : Năm cần tính
Mục đích : Tính đơn giá cho báo chí dựa theo kỳ xuất bản cho các loại kỳ không phải là loại khác ( Kỳ cõ chữ đầu là K)
- Tính đơn giá báo quý: tinhdg(bthang in numer)
Đầu vào: quý cần tính
Mục đích : Tính đơn giá cho báo chí dựa theo kỳ xuất bản cho các loại kỳ không phải là loạii khác ( Kỳ cõ chữ đầu là K) Hai thủ tục n ày là tương tự nhau, tuy nhiên thủ tục sau nhằm tăng tốc độ chương trình, khi chỉ cần tính lại đơn giá cho 1 quý của tất cả các loại báo.
Trong Package Độc giả dài hạn:
- Báo cáo công nợ độc giả dài hạn (PH1_DH1,2,3, ,12 – Theo tháng và tuyến)
PBC_PH1DH(bthang in number):
Đầu vào thủ tục : tháng
Phân tích công nợ độc giả về dư đầu kỳ, nhận đặt, phát báo, thoái chi
Dư đầu kỳ : lấy dư cuối kỳ của PH1_DH tháng trước nếu tháng khác 1, nếu là tháng 1 thì lấy từ bảng dư đầu kỳ (PH1_DHDK)
Nhận đặt trong tháng : Lấy dữ liệu từ phiếu thu ph11 dài hạn (PH11_DH)
Phát báo trong tháng ( Coi như là phát đủ) : Loại báo lấy từ PH33 có ngày phát báo trong tháng và ngày xuất bản nằm trong khoảng ngày nhu cầu trong bảng nhu cầu độc giả dài hạn (PH19_DH)
Báo thiếu : Lấy từ bảng báo phát thiếu (BAO_THIEU)
Báo cũ : Là loại báo mà độc giả đặt từ năm trước năm nay mới về (BAO_CU)
Báo phát đủ – Báo thiếu +Báo cũ = Phát báo trong tháng
Thoái chi : Lấy dữ liệu từ phiếu chi ph13 dài hạn (PH13_DH)
- Nhu cầu báo chí PH2 dài hạn (Theo quý ) PBC_PH2DH(quy in number)
Đầu vào thủ tục : quý
Thống kê tổng hợp về nhu cầu báo chí của độc giả dài hạn theo các tháng trong quý
Dữ liệu được lấy từ nhu cầu dài hạn (PH19_DH)
Báo đặt tròn tháng, quý : Số lượng bằng số lượng của loại đặt mới + số lượng loại bổ xung – số lượng loại thôi mua (BS+DM-TM)
Báo đặt không tròn tháng, quý : Số lượng in riêng rẽ trên từng dòng
Trong Package Cửa hàng bán lẻ:
- Phân phối báo PH3 bán lẻ (Theo ngày) PBC_PH3BL(bngay in date, btinhlai in number, btc in number default 1,bmach in number default null )
Đầu vào thủ tục : Ngày, Tính lại hay tạo số liệu in, In cho tất cả không, nếu không thì in cho cửa hàng nào
Chức năng phân phối : Dựa vào số lượng nhập về và nhu cầu dài hạn để tính ra số lượng cho bán lẻ của các bưu cục
Chức năng in sổ theo dõi PH3 bán lẻ : Tập hợp từ số liệu ở trên theo các ngày để in ra sổ theo dõi cuối tháng
Loại cửa hàng được cập nhật : Là loại cửa hàng có mã loại là bưu cục đóng thẳng
Loại báo : Lấy từ PH33 có ngày phát báo là ngày hiện tại, mã nhà xuất bản không phải là ngoài ngành (NG) và được tách biệt theo mã báo, ngày xuất bản, số xuất bản ( Do đó số liệu trên PH33 yêu cầu số xuất bản phải được cập nhật giống nhau )
Số lượng nhập về bằng số lượng đặt + số lượng lưu ký của PH33 (nếu là báo đóng thẳng : dm_bao.dong_thang=1) hoặc của PH15 (nếu là báo không đóng thẳng dm_bao.dong_thang=0)
Số lượng đặt lấy từ nhu cầu dài hạn PH19DH
Số lượng = Số lượng nhập về – số lượng đặt dài hạn – số lượng báo cũ mới về – số lượng báo thiếu của dài hạn – số lượng bán lẻ của các cửa hàng có mã loại là bưu cục không đóng thẳng (KT) và nằm trong cùng một bưu cục với bưu cục đó.
In sổ theo dõi PH3 : Lấy dữ liệu từ bảng phân phối báo bán lẻ hàng ngày trên (PH3_BL), Số liệu trả ế từ bảng báo ế (E_TON), số liệu chuyển nộp từ phiếu thu chuyển nộp (PH11_BL) có loại chuyển nộp là cho báo trong ngành (TN)
Trong Package Phân phối báo:
- Tổng hợp nhu cầu báo chí toàn tỉnh PH7 (Theo tháng)
Đầu vào thủ tục : Tháng
Chức năng : In bảng báo cáo nhu cầu báo chí toàn tỉnh cho hai loại báo đóng thẳng và không đóng thẳng (PH6 báo và PH7 tạp chí)
Báo đóng thẳng : Lấy loại báo và số lượng đặt từ bảng nhu cầu PH6 tương ứng với mỗi bưu cục với điều kiện loại báo đó là đóng thẳng và không phải là báo ngoài ngành (NG) Các bưu cục được lấy ra từ danh mục bưu cục (Chính là các bưu cục đóng thẳng)
Báo không đóng thẳng (Tạp chí) : Tổng hợp số liệu từ bảng nhu cầu PH6 cho tất cả các bưu cục với điều kiện loại báo là không đóng thẳng(dm_bao.dong_thang=0) và không phải là báo ngoài ngành(dm_bao.ma_nxb=’NG’)
- Bảng phân phối báo không đóng thẳng (tạp chí) PH15 theo tuyến(Theo tháng, mã bưu cục) PBC_PH15 (bngay in date,bchuyenso in number,bmabc in varchar2 default null)
Đầu vào thủ tục : tháng c ần in, bchuyenso thường là ngày phát báo, mã bưu cục.
Ch ức n ăng: Chia báo từ báo hàng ngày PH33 đ ư ợc lấy số liệu từ PH6, PH6_TG tăng độ chính xác, in gửi chuyển tạp chí cho các bưu cục mình quản lý.
- Bảng phân phố báo PH9 theo tuyến(Theo tháng, mã bưu cục)
Đầu vào thủ tục : Tháng cần in, mã bưu cục của các tuyến trên
Chức năng : In bảng phân phối báo theo các tuyến cho bưu cục đang quản lý để hàng ngày có thể phân phối báo dài hạn cho các tuyến thuộc bưu cục quản lý.
Số lượng, mã báo lấy từ nhu cầu báo chí của độc giả dài hạn tương ứng với các tuyến nằm trong bưu cục mình quản lý.
Kết quả chương trình cài đặt
Form thống kê danh mục báo:
Báo cáo cho khách hàng xem đơn giá điều kiện Mã kỳ là MK1 (1 tháng ra một kỳ) :
Form Danh mục độc giả dài hạn:
Form Độc giả đặt báo tại cửa hàng bán lẻ:
Form thống kê nhu cầu báo của độc giả dài hạn:
Form thống kê công nợ của độc giả dài hạn :
Form phân phối báo cho các cửa hàng bán lẻ của bưu cục:
Form cập nhật báo về hàng ngày cho tất cả các bưu cục trong tỉnh:
Báo cáo nhu cầu tạp chí toàn tỉnh: