Trên đây là toàn chương trình “Quản lý Khách hàng Thư viện” tại Thư viện Trung tâm Thông tin. Chương trình được viêt bởi ngôn ngữ Visual Basic hỗ trợ việc quản lý khách hàng. Chương trình này chủ yếu hoạt động chủ yếu dựa vào các giao tiếp giữa người sử dụng và máy tính ,vì vậy tác giả đã cố gắng đưa ra một hệ thống giao diện cho chương trình một cách gần gũi ,thân thiện với người sử dụng , hệ thống thông báo dễ hiểu dễ thực hiện
Chương trình bước đầu đã cho những kết quả tốt , thực hiện đúng theo các yêu cầucác nhiệm vụ chức năng đã đưa ra.Tuy nhiên cũng như bất kỳ một sản phẩm phần mềm nào khác chương trình cần được bổ sung hoàn thiện không ngừng để phù hợp ,đáp ứng các yêu cầu mới về quản lý thông tin của người sử dụng.Các chức năng cần được cải tiến để thực hiện các yêu cầu nhanh chóng , hiệu quả hơn.
Chương trình trên đây chắc chắn sẽ còn có rất nhiều các khiếm khuyết nhật định, tác giả sẽ cố gắng học hỏi , để luôn cải tiến hoàn thiện chương trình đáp ứng các yêu cầu của người sử dụng trong những phiên bản mới nhất.
90 trang |
Chia sẻ: oanh_nt | Lượt xem: 1428 | Lượt tải: 0
Bạn đang xem trước 20 trang tài liệu Chuyên đề Quản lí Khách hàng Thư viện, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
ợc coi trọng hơn vì vai trò và tầm quan trọng không thể phủ nhận của nó.
Từ trước đến nay có nhiều phương pháp phân tích và thiết kế hệ thống ra đời cùng với việc trợ giúp các nhà phân tích, thiết kế thể hiện và phát triển các ý đồ của mình.
MERISE là một trong các phương phápphân tích và thiết kế hệ thống thông tin tin học hoá phục vụ quản lý doanh nghiệp. Đặc trưng đầu tiên, quan trọng hơn cả của MERISE là thể hiện một cách nhìn tổng thể về hệ thống tin học hoá theo cách gắn bó được thiết kế một hệ thống thông tin tin học hoá quản lý với việc hiện đại hoá tổ chức.
Theo MERISE, khi việc phân tích và thiết kế hệ thống cần chú ý đến ba vấn đề:
Nhìn mộ hệ thống quản lý dưới 3 hệ thống thành phần:
Hệ thống lãnh đạo
Hệ thống thông tin
Hệ thống tác nghiệp
Tách nghiên cứu dữ liệu và phần xử lý riêng biệt.
Chia nghiên cứu, tiếp cận từng mức gồm 3 mức: mức quan niệm, mức tổ chức và mức kỹ thuật.
Mức quan niệm: nhằm mục đích trả lời câu hỏi vì sao hệ thống đó tồn tại? Bước thể hiện tính ổn định của mô hình quan niệm và mục tiêu ràng buộc của hệ thống.
Mức tổ chức: trả lời câu hỏi ai? Bao giờ? ậ đâu? Từ câu hỏi này dưa ra vị trí làm việc cho các đối tượng trong hệ thống, mục đích là tìm ra được cách tổ chức tốt nhất.
Mức kỹ thuật: trả lời câu hỏi về máy móc, thiết bị.... là những công cụ làm việc của tổ chức.
Mức
Dữ liệu
Xử lý
Quan niệm
Mô hình quan niệm dữ liệu
Mô hình quan niệm xử lý
Tổ chức
Mô hình tổ chức dữ liệu
Mô hình tổ chức xử lý
Kỹ thuật
Mô hình kỹ thuật dữ liệu
Mô hình kỹ thuật xử lý
Việc phân tích và thiết kế được tiến hành qua các bước:
Nghiên cứu thực tế
Xây dựng mô hình quan niệm dữ liệu, mô hình quan niệm xử lý, mô hình tổ chức xử lý
Hợp thức hoá
Xây dựng mô hình logic dữ liệu
Xây dựng mô hình vật lý dữ liệu và tác nghiệp vật lý
Phân tích, thiết kế chương trình “Quản lý khách hàng thư viện” tại Trung tâm thông tin cũng phải trải qua các bước trên, bỏ qua một trong các bướ dó chương trình coi như chưa hoàn thành.
Quá trình xây dựng hệ thống
Phân rã ra thành
Tập hợp các thực thể tạo ra CSDL
Phân tích
Mô hình hoá dữ liệu
Mô hình hoá chức năng
Thiết kế
Thiết kế dữ liệu
Thiết kế modul
CSDL(mdb)
Các phát sinh của quá trình ứng dụng
Yêu cầu của chương trình
Xây dựng các ứng dụng
Chương trình
Kết nối đóng gói
Iv:giới thiệu về ngôn ngữ lập trình visual basic:
1: Tổng Quan về Visual Basic:
Visual Basic được xem là một công cụ phát triển phần mềm. Đã gần mười năm, Visual Basic quả không hổ danh là một ngôn ngữ lập trình phổ dụng nhất trên Thế Giới hiện nay. Nhưng tất cả những tuyên bố này là về cái gì ? Chính xác Visual Basic là gì và nó giúp gì cho ta ?
Vâng, Bill Gates đã mô tả Visual Basic nh một “công cụ vừa dễ lại vừa mạnh để phát triển các ứng dụng Windows bằng Basic”. Điều này dường như chưa đủ để minh chứng cho tất cả những phô trương trên, trừ khi bạn hiểu ra rằng hiện đang có hàng chục triệu người dùng Microsoft Windows.
Visual Basic 2.0 đã từng nhanh hơn, mạnh hơn và thậm chí dễ dùng hơn Visual Basic 1.0. Visual Basic 3 bổ sung các cách thức đơn giản để điều khiển các cơ sở dữ liệu mạnh nhất sẵn có. Visual Basic 4 lại bổ sung thêm phần hổ trợ phát triển 32 bit và bắt đầu tiến trình chuyển Visual Basic thành một ngôn ngữ lập trình hướng đối tượng đầy đủ. Visual Basic 5 đã bổ sung khả năng tạo các tập tin thi hành thực sự, thậm chí có khả năng tạo các điều khiển riêng. Và giờ đây, Visal Basic 6.0 bổ sung một số tính năng ngôn ngữ đã được mong đợi từ lâu, tăng cờng năng lực Internet, và cả các tính năng cơ sở dữ liệu mạnh hơn. Quả thật, Visual Basic đã trở thành mạnh nhất và trôi chảy nhất chưa từng thấy. Visual Basic đã phát triển qua rất nhều phiên bản, Basic là ngôn ngữ lập trình phi cấu trúc. Basic hầu như không còn được sử dụng trong suốt một thời gian dài vì ngôn ngữ không có cấu trúc chặt chẽ nhưng sau đó được hồi sinh với sự xuất hiện ồ ạt của máy vi tính. Visual Basic 6 có rất nhiều tính năng mới so với các phiên bản khác. Các điều khiển mới cho phép ta viết các chương trình ứng dụng kết hợp giao diện, cách xử lý và tính năng của Office 2000 và trình duyệt WEB Internet Explorer. Không nhất thiết phải có một instance của điều khiển trên biểu mẫu, Visual Basic cho phép ta lập trình để thêm điều khiển vào đề án tự động và ta có thể tạo ra các điều khiển Active X hiệu chỉnh.
Mặt khác, lợi điểm khi dùng Visual Basic chính là ở chỗ tiết kiệm thời gian và công sức so với các ngôn ngữ lập trình khác khi xây dựng cùng một ứng dụng.
Visual Basic gắn liền với khái niệm lập trình trực quan ( Visual ), nghĩa là khi thiết kế chương trình, ta nhìn thấy ngay kết quả qua từng thao tác và giao diện khi chương trình thực hiện. Đây là thuận lợi lớn so với các ngôn ngữ lập trình khác, Visual Basic cho phép ta chỉnh sửa đơn giản, nhanh chóng màu sắc, kích thước, hình dáng của các đối tượng có mặt trong ứng dụng.
Một khả năng khác của Visual Basic chính là khả năng kết hợp các thư viện liên kết động DLL (Dynamic Link Library). DLL chính là phần mở rông cho Visual Basic tức là khi xây dựng một ứng dụng nào đó có một số yêu cầu mà Visual Basic cha đáp ứng đủ, ta viết thêm DLL phụ trợ.
Ta cũng có thể viết các ứng dụng phía máy chủ (server - side) dùng HTML động nhúng kết với các thư viện liên kết động của Internet Information Server.
Một vài cải tiến cho phép làm việc với các ứng dụng truy cập cơ sở dữ liệu ở tầm vĩ mô liên quan đến hàng trăm, hàng nghìn người sử dụng qua mạng hay qua Internet.
Trong thế giới lý tưởng, mọi người sử dụng sẽ có một máy tính với bộ xử lý chạy nhanh nhất, bộ nhớ dồi dào, không gian đĩa không giới hạn, và nối mạng nhanh chóng. Thực tế cho thấy rằng đối với hầu hết mọi ứng dụng, khả năng thi hành thực sự của một ứng dụng sẽ bị ràng buộc bởi một hay nhiều nhân tố. Khi ta tạo ra các ứng dụng ngày càng lớn và tinh vi, lượng bộ nhớ mà ứng dụng cần dùng và tốc độ để chúng thi hành càng trở nên quan trọng hơn. Ta có thể tối ưu hoá ứng dụng bằng cách làm cho nó trở nên nhỏ hơn và tăng tốc độ tính toán, hiển thị.
Trong khi thiết kế và lập trình ứng dụng, có rất nhiều kỹ thuật khác nhau được dùng để tối ưu hoá khả năng hoạt động. Một số kỹ thuật làm cho ứng dụng chạy nhanh hơn; một số khác làm cho ứng dụng nhỏ hơn.
Visual Basic chia sẻ hầu hết các tính năng ngôn ngữ với Visual Basic for Application, một trình ứng dụng chứa trong Microsoft Office và nhiều ứng dụng khác. Visual Basic, scripting edition (còn gọi là VBScript), là một ngôn ngữ dùng cho các kịch bản Internet, nó cũng là một tập hợp con của ngôn ngữ Visual Basic. Nếu đã từng làm việc với Visual Basic for Application hay VBScript, ta có thể chia sẻ một số đoạn chương trình giữa các ngôn ngữ này
Khi viết chơng trình bằng Visual Basic, chúng ta phải qua hai bước :
Thiết kế giao diện (Visual Programming)
Viết lệnh (Code Programming)
2.Một số định nghĩa
Một chương trình bằng Visual Basic có 2 phần: Form và Code.
Form là “bộ mặt” của chương trình và người sử dụng làm việc với chương trình qua đối tượng này, trên đó thể hiện các nút điều khiển hay một trình đơn ... quy định cách làm việc của Form.
Code là phần bên trong của chương trình để điều khiển toàn chương trình. Phần này chỉ người lập trình mới có thể thấu suốt nó và thiết lập những đoạn lệnh ra lệnh cho đối tượng thực hiện một công việc nào đó.
Khi đã thực hiện xong việc tạo ra hai bước trên nghĩa là đã lập được một dự án (Project). Mỗi dự án có thể có nhiều Form, hoặc có những tập tin chứa mã lệnh riêng để xử lý những thao tác đặc biệt, hoặc có một số tập tin dùng để quản lý toàn bộ dự án ... Như vậy, một dự án có thể có:
+ Tập tin .FRM cho mỗi Form được thiết kế.
+ Tập tin .FRX cho Form được thiết kế với các công cụ đặc biệt.
+ Tập tin .BAS cho các mã lệnh riêng.
+ Tập tin .RES chứa các tài nguyên của dự án như Bitmap, Icon.
+ Tập tin duy nhất . VBP (chương trình chính) cho toàn bộ dự án.
3.Tìm hiểu về Visual Basic
3.1.Thuộc tính, phương thức và sự kiện
3.1.1. Đối tượng
Đối tượng là những thành phần tạo nên giao diện người sử dụng cho ứng dụng. Các điều khiển là những đối tượng. Những nới chứa (container) như biểu mẫu (Form), khung (frame), hay hộp ảnh (picture box) cũng là một đối tượng.
Visual Basic 6.0 hỗ trợ một cách lập trình tương đối mới là lập trình hướng đối tượng ( Object Oriented Programming).
Với lập trình hướng đối tượng, lập trình viên sẽ chia nhỏ vấn đề cần giải quyết thành các đối tượng. Từng đối tượng có đời sống riêng của nó. Nó có những đặc đIểm mà ta gọi là thuộc tính (properties) và những chức năng riêng biệt mà ta gọi là phương thức (method). Lập trình viên phảI đưa ra các thuộc tính và phương thức mà đối tượng cần thể hiện.
3.1.2. Thuộc tính
Nói một cách đơn giản, thuộc tính (properties) mô tả đối tượng.
Mỗi đối tượng đều có một bộ thuộc tính mô tả đối tượng. Biểu mẫu và đIều khiển đều có thuộc tính. Thậm chí, màn hình và máy in, là những đối tượng chỉ cho phép can thiệp lúc thi hành, cũng có thuộc tính. Ví dụ: vị trí và kích cỡ của biểu mẫu trên màn hình được xác định trong các thuộc tính Left, Top, Height và Width. Màu nền của biểu mẫu được quy định trong thuộc tính BackColor. Thuộc tính BorderStyle quyết định người sử dụng có thể co giãn cửa sổ được hay không.
Mặc dù mỗi đối tượng có những bộ thuộc tính khác nhau, nhưng trong đó, vẫn có một số thuộc tính thông dụng cho hầu hết các đIều khiển.
Các thuộc tính thông dụng
Thuộc tính
Giải thích
Left
Vị trí cạnh trái của điều khiển so với vật chứa nó.
Top
Vị trí cạnh trên của điều khiển so với vật chứa nó.
Height
Chiều cao của điều khiển.
Width
Chiều rộng của điều khiển.
Name
Một giá trị chuỗi được dùng để nói đến điều khiển.
Enabled
Giá trị logic (True hoặc False) quyết định người sử dụng có được làm việc với điều khiển hay không.
Visible
Giá trị logic (True hoặc False) quyết định người sử dụng có thấy điều khiển hay không.
Một thuộc tính quan trọng khác là BorderStyle, quyết định thành phần của cửa sổ (như thanh tiêu đề, nút Phóng to, nút Thu nhỏ, ...) mà một biểu mẫu sẽ có.
3.1.3. Phương thức
Là những đoạn chương trình chứa trong đIều khiển, cho đIều khiển biết cách thức để thể hiện một công việc nào đó, chẳng hạn dời đIều khiển đến một vị trí mới trên biểu mẫu. Tương tự thuộc tính, mỗi đIều khiển có những phương thức khác nhau, nhưng vẫn có một số phương thức rất thông dụng cho hầu hết các đIều khiển.
Các phương thức thông dụng
Phương thức
GiảI thích
Move
Thay đổi vị trí một đối tượng theo yêu cầu của chương trình.
Drag
Thi hành hoạt động kéo và thả của người sử dụng.
SetFocus
Cung cấp tầm ngắm cho đối tượng được chỉ ra trong lệnh gọi phương thức.
Zorder
Quy định thứ tự xuất hiện của các đIều khiển trên màn hình.
3.1.4. Sự kiện
Nếu như thuộc tính mô tả đối tượng, phương thức chỉ ra cách thức đối tượng hành động thì sự kiện là những phản ứng của đối tượng. Ví dụ khi người sử dụng nhấn vào nút lệnh, nhiều sự kiện xảy ra: nút chuột được nhấn, CommandBotton trong ứng dụng được nhấn, sau đó, nút chuột được thả. Ba hoạt động này tương đương với ba sự kiện: MouseDown, Click và MouseUp. Đồng thời, hai sự kiện GotFocus và LostFocus của CommnadButton cũng xảy ra.
Tương tự thuộc tính và phương thức, mỗi đIều khiển có những bộ sự kiện khác nhau, nhưng một số sự kiện rất thông dụng với hầu hết các đIều khiển. Các sự kiện này xảy ra thường là kết qủa của một hành động nào đó, như là di chuyển chuột, nhấn nút bàn phím, hoặc gõ vào hộp văn bản. Kiểu sự kiện này được gọi là sự kiện khởi tạo bởi người sử dụng, và ta sẽ phảI lập trình cho chúng.
Các sự kiện thông dụng
Sự kiện
Xảy ra khi
Change
Người sử dụng sửa đổi chuỗi kí tự trong hộp kết hợp (combobox) hoặc hộp văn bản (textbox).
Click
Người sử dụng sử dụng nút chuột để nhấn lên đối tượng.
DblClick
Người sử dụng sử dụng nút chuột để nhấn đúp lên đối tượng.
DragDrop
Người sử dụng kéo lê một đối tượng sang nơI khác.
DragOver
Người sử dụng kéo lê một đối tượng ngang qua một đIều khiển khác.
GotFocus
Đưa một đối tượng vào tầm ngắm của người sử dụng.
KeyDown
Người sử dụng nhấn một nút trên bàn phím trong khi một đối tượng đang trong tầm ngắm.
KeyPress
Người sử dụng nhấn và thả một nút trên bàn phím trong khi một đối tượng đang trong tầm ngắm.
KeyUp
Người sử dụng thả một nút trên bàn phím trong khi một đối tượng đang trong tầm ngắm.
LostFocus
Đưa một đối tượng ra khỏi tầm ngắm.
MouseDown
Người sử dụng nhấn một nút chuột bất kì trong khi con trỏ chuột đang nằm trên một đối tượng
MouseMove
Người sử dụng di chuyển con trỏ chuột ngang qua một đối tượng.
MouseUp
Người sử dụng thả nút chuột trong khi con trỏ chuột đang nằm trên một đối tượng.
Tầm quan trọng của lập trình theo sự kiện
Khi tạo một chương trình trong Visual Basic, ta lập trình chủ yếu theo sự kiện. ĐIều này có nghĩa là chương trình chỉ thi hành khi người sử dụng làm một thao tác trên giao diện hoặc có một việc gì đó xảy ra trong Windows. Dĩ nhiên, lập trình theo cách này có nghĩa là ta phảI biết khi nào sự kiện xảy ra và làm gì khi sự kiện đó xảy ra.
Đoạn chương trình sau là một thủ tục (procedure), được gọi từ trong ứng dụng. Nó có thể dùng để di chuyển một đối tượng trên biểu mẫu, tính toán kết quả một công thức, hoặc ghi dữ liệu vào cơ sở dữ liệu. Một thủ tục có dạng sau:
[ Public | Private ] [ Static ] Sub | Function | Property _
function_name ( arguments) [as Type]
{ ... Code ... }
End Sub | Function | Property
Một thủ tục xử lý sự kiện là nơI chứa đoạn chương trình sẽ thi hành khi sự kiện xảy ra. Để tạo một thủ tục xử lý sự kiện, ta mở cửa sổ Code của đối tượng theo những cách sau:
-Nhấn đúp chuột lên đối tượng;
-Hoặc chọn đối tượng bằng chuột và nhấn F7;
-Hoặc chọn đối tượng từ Menu View, chọn Code;
-Hoặc trong cửa sổ Project Explorer, chọn biểu mẫu và nhấn vào nút View Code. Chọn đối tượng từ cửa sổ Code.
Visual Basic tự động phát sinh ra các thủ tục xử lý sự kiện ngay sau khi ta chọn tên sự kiện trong cửa sổ Code. Tên thủ tục là kết hợp giữa tên đối tượng và tên sự kiện cách nhau bằng dấu gạch dưới (ví dụ: cmdExit_Click()).
3.1.5.Mối quan hệ giữa thuộc tính, phương thức và sự kiện
Mặc dù thuộc tính, phương thức và sự kiện có vai trò khác nhau, nhưng chúng thường xuyên liên hệ với nhau. Ví dụ, nếu ta di chuyển một đIều khiển bằng phương thức Move (thường để đáp ứng sự kiện), một số thuộc tính như Top, Height, Left, Width sẽ thay đổi theo. Bởi vì khi kích cỡ của đIều khiển thay đổi, sự kiện Resize xảy ra.
Chương III:
Phân tích thiết kế hệ thống cho bài toán
Quản lý Khách hàng thư viện
Trong điều kiện hội nhập với nền kinh tế thế giới hiện nay, có thể nói rằng các hệ thống kinh doanh và sản xuất có mặt trong tất cả các loại hình tổ chức doanh nghiệp với nhiệm vụ phục vụ sản xuất, nâng cao hiệu quả kinh tế. Các hệ thống thông tin kinh doanh và sản xuất hỗ trợ quá trình ra quyết định đối với các hoạt động phân phối và hoạch định các nguồn lực kinh doanh và sản xuất. Chính vì thế, việc phân tích, thiết kế hệ thống cho một hoạt động kinh doanh là việc rất cần thiết và quan trọng góp phần mang lại sự thành công, tính hiệu quả trong công việc.
I: Hệ thống thông tin của trung tâm:
Thư viện Trung tâm là một đơn vị đặc thù, tuy là một thư viện nhưng hoạt động của thư viện mang tính chất của một đơn vị kinh doanh bình thường. Thư viện sưu tầm và mua các bộ tiêu chuẩn trong và ngoài nước, sau đó cung cấp cho các công ty, doanh nghiệp cần các loại tiêu chuẩn đó dưới dạng bản photocoppy. Trong quá trình hội nhập hiện nay, đối với các doanh nghiệp, vấn đề nâng cao chất lượng sản phẩm, chất lượng quản lý là một vấn đề tất yếu và hết sức cần thiết, vì thế Tổng cục Tiêu chuẩn - Đo lường - Chất lượng nói chung vàTrung tâm thông tin nói riêng là địa chỉ hết sức quan trọng đối với họ. Để đáp ứng nhu cầu một tốt hơn, Thư viện cần phải không ngừng nâng cao chất lượng phục vụ, như vậy đòi hỏi phải có một Hệ thống thông tin phục vụ quản lý hiệu quả, chính xác và tiết kiệm thời gian.
1: Luồng thông tin của nghiệp vụ quản lý khách hàng Thư viện:
Do đã ứng dụng tin học trong việc quản lý nên nhiều công đoạn trong nghiệp vụ đã được tin học hoá, rút ngắn được rất nhiều thời gian trong quá trình phục vụ. Có thể mô tả luồng thông tin và cách thức hoạt động như sau:
Khi khách hàng vào thư viện, nhân viên thư viện sẽ đưa cho khách hàng một Phiếu yêu cầu để khách hàng điền theo mẫu cũng như tài liệu mà họ muốn có, nếu cần, họ cũng có thể tra cứu tài liệu trên máy vi tính cũng như danh mục. Nhân viên thư viện sẽ kiểm tra và xem xét khả năng đáp ứng. Nếu phiếu được chấp nhận, bộ phận liên quan sẽ tìm và in hoặc photo tài liệu đó cho khách hàng. Tuỳ theo số lượng tài liệu, khách hàng sẽ trả tiền và nhận tài liệu. Sau đó nhân viên thư viện sẽ điền những phần còn lại trên phiếu yêu cầu dành cho nhân viên như tổng tiền, còn nợ....Cuối ngày, nhân viên sẽ nhập Phiếu yêu cầu vào máy.
Các ký pháp trong sơ đồ luồng thông tin:
Xử lý:
Thủ công
Tin học hoá hoàn toàn
Giao tác
Người-máy
Tin học hoá
Thủ công
Kho lưu dữ liệu:
Dòng thông tin: Điều khiển:
Tài liệu
2: Sơ đồ luồng thông tin quản lý khách hàng thư viện:
( Trang bên)
Thời điểm
Phiếu yêu cầu
Phiếu được chấp nhận
Phiếu bị từ chối
Tài liệu đã giao
Đáp ứng? uứng?
*. DBF
Nhân viên Thư viện xét duyệt
In tài liệu
Cập nhật Phiếu y/c
Tổng hợp báo cáo ngày
Tổng hợp báo cáo tháng
Báo cáo doanh thu
Khách hàng
Bộ phận Thư viện Lãnh đạo
Tức thời
Không
Có
Cuối ngày
Cuối tháng
II: thiết kế cơ sở dữ liệu cho chương trình “Quản lý khách hàng thư viện ”:
Đối với Thư viện Trung tâm thông tin, phiếu yêu cầu lưu rất nhiều thông tin như thông tin khách hàng, doanh thu, tài liệu, từ đó cho các đầu ra là các báo cáo, vì thế Phiếu yêu cầu là đôii tượng chính trong nghiệp vụ quản lý khách hàng. Phiếu yêu cầu gồm hai phần đó là một phần dành cho khách hàng điền vào mẫu, bao gồm: Họ tên khách hàng, cơ quan, đơn vị công tác, lĩnh vực quan tâm thường xuyên, địa chỉ, Email, Fax, phương thức yêu cầu(Trực tiếp, Email, điện thoại), tài liệu yêu cầu.
Phần thứ hai dành cho cán bộ thư viện, bao gồm các thông tin như: Tổng tiền khách hàng phải trả, còn nợ, phương thức gửi tài liệu, phương thức thanh toán...Từ đó ta thiết kế dư liệu cho chương trình bao gồm: Phieu.DBF, Khach_hang.DBF, 3 tệp danh mục tài liệu( TLVN.DBF, TL_CD_ROM.DBF, TLNN.DBF). Cụ thể như sau:
1: Phieu.DBF:
Field
Field Name
Type
Width
Diễn giải
1
So_Phieu
Number
10
Số phiếu
2
Ngay
Number
2
Ngày
3
Thang
Number
2
Tháng
4
Nam
Number
4
Năm
2: KH.DBF: ( Lưu thông tin về khách hàng và các thông tin khác có liên quan)
Field
Field Name
Type
Width
Diễn giải
1
Ma_KH
Text
10
Mã khách hàng
2
Ten_KH
Text
30
Tên khách hàng
3
CQ_DVCT
Text
30
Cơ quan, đơn vị công tác
4
DC
Text
25
Địa chỉ khách hàng
5
Email
Text
15
Email
6
Fax
Number
10
7
LV_Quan_Tam
Text
30
Lĩnh vực quan tâm
8
Yeu_Cau
Text
10
Yêu cầu
9
Tong_Tien
Number
10
Tổng tiền
10
CT_No
Number
10
Còn nợ
11
Ngay_GTL
Date/time
Ngày gửi tài liệu
12
Ngay_TT
Date/time
Ngày thanh toán
3:TLVN.DBF: (Lưu các tài liệu Việt Nam)
Field
Field Name
Type
Width
Diễn giải
1
Ma_TL
Text
8
Mã tài liệu
2
Ten_TL
Text
30
Tên tài liệu
3
So_Trang
Number
4
Số trang
4:TL_CD_ROM>DBF
Field
Field Name
Type
Width
Diễn giải
1
Ma_TL
Text
8
Mã tài liệu
2
Ten_TL
Text
30
Tên tài liệu
3
So_Trang
Number
4
Số trang
5:TLNN.DBF
Field
Field Name
Type
Width
Diễn giải
1
Ma_TL
Text
8
Mã tài liệu
2
Ten_TL
Text
30
Tên tài liệu
3
So_Trang
Number
4
Số trang
Sơ đồ biểu diễn mối quan hệ của các thực thể:
III: Xây dựng mô hình các sơ đồ dữ liệu:
1: Sơ đồ chức năng nghiệp vụ:
Hệ thống thông tin Khách hàng thư viện có ba chức năng chính sau:
Quản lý giao dịch
Quản lý tài liệu
Quản trị hệ thống
Sơ đồ BFD (Bussiness Function Diagram) mức 0
Quản lý giao dịch
Hệ thống thông tin quản lý khách hàng thư viện
Quản trị hệ thống
Quản lý tài liệu
1.1 Chức năng quản lý giao dịch gồm có:
Danh mục khách hàng
Danh mục tài liệu
Phiếu yêu cầu.
Danh mục nhân viên.
Sơ đồ DBF quản ý giao dịch mức 1:
Danh mục khách hàng
Quản lý giao dịch
Danh mục tài liệu
Danh mục nhân viên
Phiếu yêu cầu
Chức năng danh mục khách hàng gồm:
Thêm khách hàng
Sửa khách hàng
Xoá bỏ khách hàng
Lọc khách hàng
Thêm khách hàng
Danh mục khách hàng
Xoá khách hàng
Sửa khách hàng
Lọc khách hàng
Chức năng phiếu yêu cầu gồm có:
Thêm mới
Sửa phiếu
Xoá bỏ
Xem tất cả thông tin về một khách hàng
In phiếu
Thêm mới
Phiếu yêu cầu
Xoá bỏ
Sửa
In phiếu
Chức năng danh mục tài liệu:
Thêm mới
Sửa tài liệu
Xoá bỏ
Xem tất cả tài liệu
Lọc
Thêm mới
Phiếu yêu cầu
Xoá bỏ
Sửa
In phiếu
1.2 Chức năng quản trị hệ thống:
Quản lý người sử dụng
Sao lưu phục hồi dữ liệu
Sơ đồ DBF quản trị hệ thống (mức 1)
Quản lý người sử dụng và chương trình
Quản TRị hệ thống
Sao lưu phục hồi dữ liệu
IV: sơ đồ dòng dữ liệu:
Sơ đồ dòng dữ liệu DFD là một công cụ dùng để trợ giúp cho bốn hoạt động chnhs của phân tich viên hệ thống trong quá trình phân tích thông tin đó là:
Phân tích: DFD được dùng để xác ddinhj yêu cầu của người sử dụng.
Thiết kế: DFD dùng để vạch kế hoạch và minh hoạ các phương án cho phân tích viên hệ thống và người khi thiết kế một hệ thống mới.
Biểu đạt: DFD là công cụ đơn giản, dễ hiểu đối với phân tích viên hệ thống và người dùng.
Tài liệu: DFD cho phép biểu diễn tài liệu phân tích hệ thông một cách đầy đủ, súc tích và ngắn gọn. DFD cung cấp cho người sử dụng một cái nhìn tổng thể về hệ thống và cơ chế lưu chuyển thông tin trong hệ thống đó.
Sơ đồ dòng dữ liệu nêu ra một mô hình về hệ thống có quan điểm cân xứng cho cảc dữ liệu và quá trình. Nó chỉ ra cách thông tin chuyển vận từ một quá trình hoặc từ chức năng này trong hệ thống sang moọt quá trình hoặc chcs năng khác. Điều quan trọng nhất là nó chỉ ra phải có sẵn những thông tin nào cần phải có trướckhi cho thực hiện một hàm hay quá trình. Điều này nhấn mạnh vào việc định danh các yêu cầu dữ liệu, và xếp DFD vào một quá trình phân tích chứ không phải của quá trình điều tra, và phân tích nó rõ rệt với lưu đồ khối có tính truyền thông hơn, vốn chỉ nêu được dãy các thủ tụa và dòng điều khiển của quá trình.
Sơ đồ dòng dữ liệu DFD cung chưa thể phân tích hệ thống thông tin một cách hoàn hảo. DFD là sơ đồ tĩnh nên nó không bao hàm được tham số thời gian. Chẳng hạn DFD không chỉ ra được các yếu tố thời gian như việc chuyển thông tin từ quá trình này sang quá trình khác mất bao nhiêu thời gian. Nó cũng không xác nhận trật tự thực hiện các chức năng. Mặc dù trật tự này hiển nhiên phụ thuộc vào việc chức năng này phải dựa trên sản phẩm của chức năng khác. DFD cũng không chỉ ra được các yếu tố định lượng đối với dữ liệu co liên quan như khối lượng, xu hướng, lượng tối đa và lượng tối thiểu, những thông tin là thành phần cơ bản trong quá trình phân tích. Do đó khi phân tích chúng ta cần phải bổ sung thêm các công cụ khác để ta có được một hệ thông tin mới hoàn toàn chính xác theo yêu cầu của người sử dụng.
Các ký pháp dùng cho sơ đồ luồng dữ liệu DFD:
Ngôn ngữ sơ đồ luồng dữ liệu DFD sử dụng bốn loại ký pháp cơ bản: Thực thể, tiến trình, kho dữ liệu, dòng dữ liệu.
Tên người, bộ phận phát/nhận tin
Nguồn hoặc đích
Tên dòng thông tin
Tiến trình xử lý
Tên tiến trình xử lý
Tệp dữ liệu
Kho dữ liệu
Sơ đồ ngữ cảnh (Context Diagram)
Hệ thống thông tin quản lý khách hàng thư viện
Giám đốc
Nhà cung cấp
Các bộ phận khác liên quan
Khách hàng
Sơ đồ DFD mức 0 của HTTT Quản lý khách hàng thư viện:
Gồm 3 tiến trình xử lý chính:
Quản lý giao dịch
Quản lý tài liệu
Quản trị hệ thống
Gồm 5 nguồn và đích chính:
Khách hàng
Nhà cung cấp
Danh mục tài liệu
Người sử dụng
Nhà quản lý
Sơ đồ biểu diễn:
Sơ đồ DFD mức 0 của HTTT quản lý khách hàng thư viện:
Cơ sở dữ liệu
Tài khoản
Báo cáo theo yêu cầu
Phân loại NCC
Thông tin NCC
Thông tin khách hàng
Phân loại khách hàng
Báo cáo theo yêu cầu
Tài khoản
Báo cáo
Quyết định mua bán
Thống kê
Nhà cung cấp
Khách hàng
Quản lý giao dịch
Quản lý tài liệu
Giám đốc
Người quản trị
Mua-Bán TL
Người sử dụng
Quản trị hệ thống
Ban lãnh đạo
1: Sơ đồ DFD quản lý giao dịch mức 1:
Gồm 3 tiêu thức:
Phân loại tiêu thức
Cập nhật CSDL
Thống kê báo cáo
Gồm 4 nguồn và đích chính:
Khách hàng
Các thông tin cần phân loại
Nhà cung cấp
Ban lãnh đạo
1: Sơ đồ DFD quản lý giao dịch mức 1:
Thống kê báo cáo nhật
Thông tin
Cập nhật
Thông tin NCC
Thông tin KH
Cập nhật
Thông tin cần phân loại
Phân loại tiêu thức
Cập nhật CSDL
Thống kê báo cáo
Các thông tin về các danh mục cần cập nhật phân loại
Khách hàng
Nhà cung cấp
Tệp csdl
Lãnh đạo
2: Sơ đồ DFD Quản trị hệ thống mức 1:
Gồm hai tiến trình xử lý:
Quản trị người sử dụng
Sao lưu phục hồi dữ liệu
Gồm 3 nguồn và đích chính:
Người sử dụng
Nhà quản trị
Ban lãnh đạo
Sơ đồ DFD Quản trị hệ thống mức 1
DL Quản trị
Ban lãnh đạo
Các quyền Các thông tin
Các báo cáo
Các thông tin
Các thông tin
Người sử dụng
Quản trị NSD
Sao lưu phục hồi DL
Người quản trị
V: một số thuật toán của chương trình:
1: Thuật toán kiểm tra mật khẩu truy cập chương trình:
Đúng
Đúng
Sai
Sai
Kiểm tra tên và MK
Có nhập lại không? vàMK
Bắt đầu
Nhập tên người sử dụng
Nhập mật khẩu
Hiện màn hình của chương trình làm việc
Thoát khỏi chương trình
Kết thúc
2: Thuật toán cập nhật phiếu yêu cầu.
Không
Có
Có
Không
Kiểm tra tính hợp lệ
Bắt đầu
Mở form Phiếu yêu cầu
Nhập dữ liệu
Thông báo lỗi
Kết thúc
Thêm bản ghi trắng
Nhập tiếp không?
Không
Có
Có
Không
In báo cáo?
Bắt đầu
Mở form lọc báo cáo
Tổng hợp số liệu
Kết thúc
Chọn tiêu thức cần báo cáo
Tiếp không?
Hiện ra màn hình thông tin cần báo cáo
In bấo cáo ra giấy
3: Thuât toán lập báo cáo:
VI.Một số form chính của chương trình:
1: Form Đăng nhập hệ thống:
2: Form chính của chương trình:
3: Form Nhập Phiếu yêu cầu:
4. Form lọc báo cáo:
5. Form Nhập tài liệu:
Trong quá trình vừa qua, được thực tập tại Trung tâm thông tin Tổng cục Tiêu chuẩn - Đo lường – Chất lượng và tham gia thực hiện đề tài, em thấy quá trình thực sự bổ ích cho bản thân. Tuy hiện nay kiến thức và kinh nghiệm còn hạn chế nhưng em tin rằng qua quá trình thực tập và trong tương lai em sẽ học hỏi và nâng cao kiến thức của mình nhằm có thể đáp ứng được yêu cầu thực sự cho công việc sau này. Bước đầu là giai đoạn thực tập thực tế đầu tiên em đã được phép cùng các anh, các cô, các chú trong Trung tâm thực hiện nghiên cứu đề tài “Quản lý Khách hàng Thư viện” là một may mắn cũng như thách thức đầu tiên đối với bản thân em, cùng với sự giúp đỡ của cán bộ Trung tâm và nỗ lực của bản thân, em hy vọng rằng sẽ có một kết quả tốt trong kỳ thực tập thực tế này.
Với việc chọn xây dựng một modul nhỏ trong Trung tâm em hy vọng em sẽ tìm hiểu được sâu và kỹ hơn một hệ thống để phát triển.
Mặc dù đây là chương trình nhỏ nhưng cũng là sản phẩm nghiên cứu thực tế tại cơ sở, vì vậy nó có tính thực tiễn rất cao, em mong rằng nếu như được phép, em sẽ hoàn thiện chương trình để có thể đem vào ứng dụng trong công việc tại Thư viện Trung tâm.
Kết luận
Trên đây là toàn chương trình “Quản lý Khách hàng Thư viện” tại Thư viện Trung tâm Thông tin. Chương trình được viêt bởi ngôn ngữ Visual Basic hỗ trợ việc quản lý khách hàng. Chương trình này chủ yếu hoạt động chủ yếu dựa vào các giao tiếp giữa người sử dụng và máy tính ,vì vậy tác giả đã cố gắng đưa ra một hệ thống giao diện cho chương trình một cách gần gũi ,thân thiện với người sử dụng , hệ thống thông báo dễ hiểu dễ thực hiện
Chương trình bước đầu đã cho những kết quả tốt , thực hiện đúng theo các yêu cầucác nhiệm vụ chức năng đã đưa ra.Tuy nhiên cũng như bất kỳ một sản phẩm phần mềm nào khác chương trình cần được bổ sung hoàn thiện không ngừng để phù hợp ,đáp ứng các yêu cầu mới về quản lý thông tin của người sử dụng.Các chức năng cần được cải tiến để thực hiện các yêu cầu nhanh chóng , hiệu quả hơn.
Chương trình trên đây chắc chắn sẽ còn có rất nhiều các khiếm khuyết nhật định, tác giả sẽ cố gắng học hỏi , để luôn cải tiến hoàn thiện chương trình đáp ứng các yêu cầu của người sử dụng trong những phiên bản mới nhất.
Phụ lục
Một số mã nguồn của chương trình:
Form Đăng nhập hệ thống:
Private Sub cmdconnect_Click()
Dim rs As New ADODB.Recordset
Dim str, i
If txtuser.Text = "" Or txtpass.Text = "" Then
MsgBox "Bạn nên nhập đầy đủ tên và mật mã !!", vbOKOnly + vbInformation, "Thông báo"
txtuser.SetFocus
Exit Sub
Else
If txtuser.Text = "Bùi gia Khương" And txtpass.Text = "KhươngTB" Then
frmchinh.Show
Unload Me
Else
MsgBox "Người sử dụng không hợp lệ", vbOKOnly + vbQuestion, "Thông báo"
Exit Sub
End If
End If
End Sub
Private Sub cmdthoat_Click()
Unload Me
End Sub
Private Sub txtpass_GotFocus()
txtpass.BackColor = &HC0E0FF
End Sub
Private Sub txtpass_KeyPress(KeyAscii As Integer)
Select Case KeyAscii
Case 13
cmdconnect.SetFocus
End Select
End Sub
Private Sub txtpass_LostFocus()
txtpass.BackColor = &HFFFFFF
End Sub
Private Sub txtuser_GotFocus()
txtuser.BackColor = &HC0E0FF
End Sub
Private Sub txtuser_KeyPress(KeyAscii As Integer)
Select Case KeyAscii
Case 13
txtpass.SetFocus
End Select
End Sub
Private Sub txtuser_LostFocus()
txtuser.BackColor = &HFFFFFF
End Sub
2: Form Phiếu yêu cầu:
Private Sub MSFlexGrid1_Click()
End Sub
Option Explicit
Dim c
Dim CurrentRow
Dim OldCol
Dim oldrow
Dim cl, rw ' Bien chi cot va hang cua o se nhan du lieu tu Textbox Tex trong luoi
Dim flag As String
Dim i, j
Private Sub Form_Load()
open_mdb
grdchi_tiet_Init 'Khoi tao luoi va gan gia tri ban dau
'grdCHI_TIET2_Init
'grdCHI_TIET3_Init
Lock_Text
Text.Visible = False 'An textbox nhap du lieu
currentCol = 1
CurrentRow = 1
End Sub
'Private Sub Form_Activate()
'Display
'End Sub
Private Sub cmdNew_click()
Un_Lock_Text
SET_NULL
End Sub
Private Sub cmdUpdate_click()
flag = "update"
Sua_Du_Lieu
End Sub
Private Sub cmdDel_click()
Xoa_Du_Lieu
End Sub
Private Sub cmdSave_click()
If flag "update" Then 'neu form dang o che do them moi thi dat bien co ve che do luu
flag = "save"
End If
Luu_Du_Lieu
End Sub
Private Sub cmdSkip_click()
SET_NULL
Lock_Text
cmdNew.SetFocus
End Sub
Private Sub cmdClose_click()
Unload Me
End Sub
Private Sub Sua_Du_Lieu()
Un_Lock_Text
txtSop.Enabled = False
txtNgay.SetFocus
End Sub
Private Sub Xoa_Du_Lieu()
Dim str
Dim reponse
Me.MousePointer = 11
If Trim(txtSP) = "" Then
Me.MousePointer = 0
Exit Sub
End If
MsgBox "Bạn có chắc chắn xoá phiếu này không?", vbYesNo + vbQuestion, "Thông báo"
If response = vbNo Then
Exit Sub
Else
str = "delete from Phieu where So_Phieu = '" & Trim(txtSop) & "'"
cn.Execute (str)
End If
SET_NULL
Lock_Text
Me.MousePointer = 0
End Sub
Private Sub Luu_Du_Lieu()
Dim rs As New ADODB.Recordset
Dim rs1 As New ADODB.Recordset
Dim str, lct
Me.MousePointer = 11
'If Check_Null = False Then
'MsgBox "Chú ý: Phải nhập số phiếu, ngày và Mã khách hàn trước khi lưu", vbOKOnly + vbExclamation, "Thông báo"
'Me.MousePointer = 0
'Exit Sub
'End If
' Tim co so phieu muon luu co trong table hay khong
str = "select * from Phieu where So_Phieu='" & Trim(txtSop) & "'"
rs.Open str, adOpenKeyset, adLockOptimistic, adCmdText
If rs.EOF = True Then
rs.AddNew
rs!So_Phieu = txtSop
rs!Ngay = txtNgay
rs!Thang = txtThang
rs!Nam = txtNam
rs.Update
rs.Close
rs.Close
Else
If flag = "save" Then
MsgBox "Số phiếu có mã [" & txtSop & "] đã tồn tại. Vui lòng kiểm tra lại", vbOKOnly + vbExclamation, "Thông báo"
Me.MousePointer = 0
str = "select * from KH where So_Phieu='" & Trim(txtSop) & "'"
rs1.Open str, adOpenKeyset, adLockOptimistic, adCmdText
If rs.EOF = True Then
rs1.AddNew
rs1!So_Phieu = txtSop
rs1!Ma_KH = txtMakh
rs1!Tenkh = txtTenkh
rs1!Dia_Chi = txtDC
rs1!CQ_DVCT = txtCQ
rs1!Email = txtDC
rs1!LV_Quan_Tam = txtLV
rs1!Fax = txtFax
rs1!Yeu_Cau = txtYC
rs1!Tong_Tien = txtTongt
rs1!CT_No = txtNo
rs1!Ngay_GTL = txtNgayg
rs1!Ngay_TT = txtNgaytt
rs1.Update
Luu_Chi_Tiet
End If
rs1.Close
Else
If flag = "save" Then
MsgBox "Số phiếu có mã [" & txtSop & "] đã tồn tại. Vui lòng kiểm tra lại", vbOKOnly + vbExclamation, "Thông báo"
Me.MousePointer = 0
End If
Exit Sub
End If
End If
Lock_Text
cmdNew.SetFocus
Me.MousePointer = 0
End Sub
Private Sub Luu_Chi_Tiet()
Dim str, i
For i = 1 To grdchi_tiet.Row - 1
If grdchi_tiet.TextMatrix(i, 1) "" Then
str = "insert into TL_CD_ROM(Ma_TL,) value('" & txtMatl & "','" & grdchi_tiet.TextMatrix(i, 1) & "')"
cn.Execute (str)
End If
Next i
End Sub
Private Sub grdchi_tiet_KeyPress(KeyAscii As Integer)
Dim ch As String
Dim oldrow
grdchi_tiet.SetFocus
Dim str1 As String
Dim i, c, r
Dim flag As Boolean
flag = False
c = grdchi_tiet.Col
r = grdchi_tiet.Row
Select Case KeyAscii
Case 27
Text.Text = grdchi_tiet.Text
KeyAscii = 0
Text.Visible = False
grdchi_tiet.SetFocus
Case 13
'Kiem tra danh muc TL
c = grdchi_tiet.Col
grdchi_tiet.Col = 0
If grdchi_tiet.Text "" Then
grdchi_tiet.Col = c
If grdchi_tiet.Col = 1 Then
If (Text.Text "") Then
Text.Text = UCase(Trim(Text.Text))
ma_so = Text.Text
Else
grdchi_tiet.Text = UCase(Trim(grdchi_tiet.Text))
ma_so = grdchi_tiet.Text
End If
str1 = "select * from TL_CD_ROM where Ma_TL='" & ma_so & "'"
sr1.Open str1, cn
If sr1.EOF = True Then
frmChontl.Show 1
If sosanh = True Then
If ma_so "@" Then
Text.Text = ma_so
Else
Text.Text = ""
grdchi_tiet.Text = ""
grdchi_tiet.Col = 2
grdchi_tiet.Text = ""
grdchi_tiet.Col = 1
End If
End If
Else
Dim X
sr1.Close
X = grdchi_tiet.Col
grdchi_tiet.Col = 2
If grdchi_tiet.Text = "" Then
str1 = "select * from TL_CD_ROM where Ma_TL='" & ma_so & "'"
sr1.Open str1, cn
If sr1.EOF = False Then
ma_so = sr1!Ma_TL
If sosanh = True Then
Text.Text = ma_so
grdchi_tiet.Col = 2
grdchi_tiet.Text = sr1!Ten_TL
grdchi_tiet.Col = 1
End If
End If
End If
grdchi_tiet.Col = X
End If
End If
End If
' ghi du lieu vao luoi
If (grdchi_tiet.Text "") Then
If (Text.Text grdchi_tiet.Text) And (Text.Text "") Then
grdchi_tiet.Text = Text.Text
Text.Text = ""
End If
Else
grdchi_tiet.Text = Text.Text
Text.Text = ""
End If
Text.Visible = False
grdchi_tiet.SetFocus
tetx.Text = ""
If (ma_so "@") Then ' neu ma tl da nhap nhay sang o ke tiep
MoveFirt
End If
grdchi_tiet.Refresh
If grdchi_tiet.Text "" Then
grdchi_tiet.Row = grdchi_tiet.Row + 1
End If
MoveFirt
'Else
If (grdchi_tiet.Col = 1) Then Insert
'End If
Case Else
If grdchi_tiet.Col = 1 Then
' Nhan du lieu vao tb va hien thi no tren o tuong ung cua luoi
ch = Chr$(KeyAscii)
Text.SelStart = 1
Text.Visible = False
Showtext
End If
End Select
End Sub
Private Sub Text_LostFocus()
currentCol = grdchi_tiet.Col
curentRow = grdchi_tiet.Row
grdchi_tiet.Row = oldrow
grdchi_tiet.Col = oldrow
If (grdchi_tiet.Text = "") And (Text.Text "") Then
grdchi_tiet.Text = Trim(Text.Text)
End If
grdchi_tiet.Col = currentCol
grdchi_tiet.Row = CurrentRow
Text.Text = ""
Text.Visible = False
End Sub
Private Function sosanh() As Boolean
Dim c, r, i
r = grdchi_tiet.Row
c = grdchi_tiet.Col
Dim c1
'Vong duyet noi dung cot ma TL trong tat ca cac hang tren luoi
For i = 1 To grdchi_tiet.Row - 1
grdchi_tiet.Row = i
grdchi_tiet.Col = 1
c1 = Trim(grdchi_tiet.Text)
If c1 = ma_so Then
MsgBox "Tài liệu này đã được chọn!", vbOKOnly + vbInformation, "Thông báo"
ma_so = "@"
grdchi_tiet.Col = c
grdchi_tiet.Row = r
Text.Text = ""
grdchi_tiet.Col = 1
sosanh = False
Exit Function
End If
Next i
grdchi_tiet.Col = c
grdchi_tiet.Row = r
sosanh = True
End Function
Public Sub Showtext()
cl = grdchi_tiet.Col
rw = grdchi_tiet.Row
Text.Top = (grdchi_tiet.RowPos(rw) + grdchi_tiet.Top) + 40
Text.Left = (grdchi_tiet.ColPos(cl) + grdchi_tiet.Left + grdchi_tiet.GridLineWidth * (grdchi_tiet.Col + 1)) + 40
Text.Width = grdchi_tiet.ColWidth(cl) - 10
Text.Height = grdchi_tiet.RowHeight(rw) - 10
Text.Visible = True
Text.SetFocus
End Sub
Public Sub MoveFirt()
SendKeys "{left}"
SendKeys "{left}"
End Sub
Private Sub txtSop_Gotfocus()
txtSop.BackColor = &HFEF0B
End Sub
Private Sub txtSop_KeyPress(KeyAscii As Integer)
Select Case KeyAscii
Case 13
txtNgay.SetFocus
End Select
End Sub
Private Sub txtSop_Lostfocus()
txtSop.BackColor = &HFFFFFF
txtSop = UCase(Trim(txtSop))
End Sub
Private Sub txtNgay_Gotfocus()
txtNgay.BackColor = &HFEF0B
End Sub
Private Sub txtNgay_KeyPress(KeyAscii As Integer)
Select Case KeyAscii
Case 13
txtThang.SetFocus
End Select
End Sub
Private Sub txtNgay_Lostfocus()
txtNgay.BackColor = &HFFFFFF
End Sub
Private Sub txtThang_Gotfocus()
txtThang.BackColor = &HFEF0B
End Sub
Private Sub txtThang_KeyPress(KeyAscii As Integer)
Select Case KeyAscii
Case 13
txtNam.SetFocus
End Select
End Sub
Private Sub txtThang_Lostfocus()
txtThang.BackColor = &HFFFFFF
End Sub
Private Sub txtNam_Gotfocus()
txtNam.BackColor = &HFEF0B
End Sub
Private Sub txtNam_KeyPress(KeyAscii As Integer)
Select Case KeyAscii
Case 13
txtMakh.SetFocus
End Select
End Sub
Private Sub txtNam_Lostfocus()
txtNam.BackColor = &HFFFFFF
End Sub
Private Sub txtMakh_Gotfocus()
txtMakh.BackColor = &HFEF0B
End Sub
Private Sub txtMakh_KeyPress(KeyAscii As Integer)
Select Case KeyAscii
Case 13
txtTenkh.SetFocus
End Select
End Sub
Private Sub txtMakh_Lostfocus()
txtMakh.BackColor = &HFFFFFF
End Sub
Private Sub txtTenkh_Gotfocus()
txtTenkh.BackColor = &HFEF0B
End Sub
Private Sub txtTenkh_KeyPress(KeyAscii As Integer)
Select Case KeyAscii
Case 13
txtCQ.SetFocus
End Select
End Sub
Private Sub txtTenkh_Lostfocus()
txtNam.BackColor = &HFFFFFF
End Sub
Private Sub txtCQ_Gotfocus()
txtCQ.BackColor = &HFEF0B
End Sub
Private Sub txtCQ_KeyPress(KeyAscii As Integer)
Select Case KeyAscii
Case 13
txtDC.SetFocus
End Select
End Sub
Private Sub txtCQ_Lostfocus()
txtCQ.BackColor = &HFFFFFF
End Sub
Private Sub txtDC_Gotfocus()
txtDC.BackColor = &HFEF0B
End Sub
Private Sub txtDC_KeyPress(KeyAscii As Integer)
Select Case KeyAscii
Case 13
txtDT.SetFocus
End Select
End Sub
Private Sub txtDC_Lostfocus()
txtDC.BackColor = &HFFFFFF
End Sub
Private Sub txtDT_Gotfocus()
txtDT.BackColor = &HFEF0B
End Sub
Private Sub txtDT_KeyPress(KeyAscii As Integer)
Select Case KeyAscii
Case 13
txtFax.SetFocus
End Select
End Sub
Private Sub txtDT_Lostfocus()
txtDT.BackColor = &HFFFFFF
End Sub
Private Sub txtFax_Gotfocus()
txtFax.BackColor = &HFEF0B
End Sub
Private Sub txtFax_KeyPress(KeyAscii As Integer)
Select Case KeyAscii
Case 13
txtEmail.SetFocus
End Select
End Sub
Private Sub txtFax_Lostfocus()
txtFax.BackColor = &HFFFFFF
End Sub
Private Sub txtEmail_Gotfocus()
txtEmail.BackColor = &HFEF0B
End Sub
Private Sub txtEmail_KeyPress(KeyAscii As Integer)
Select Case KeyAscii
Case 13
txtLV.SetFocus
End Select
End Sub
Private Sub txtEmail_Lostfocus()
txtLV.BackColor = &HFFFFFF
End Sub
Private Sub txtLV_Gotfocus()
txtLV.BackColor = &HFEF0B
End Sub
Private Sub txtLV_KeyPress(KeyAscii As Integer)
Select Case KeyAscii
Case 13
cmbYC.SetFocus
End Select
End Sub
Private Sub txtLV_Lostfocus()
txtLV.BackColor = &HFFFFFF
End Sub
Private Sub cmbYC_Gotfocus()
cmbYC.BackColor = &HFEF0B
End Sub
Private Sub cmbYC_KeyPress(KeyAscii As Integer)
Select Case KeyAscii
Case 13
txtTongt.SetFocus
End Select
End Sub
Private Sub cmbYC_Lostfocus()
cmbYC.BackColor = &HFFFFF
End Sub
Private Sub txtTongt_Gotfocus()
txtTongt.BackColor = &HFEF0B
End Sub
Private Sub txtTongt_KeyPress(KeyAscii As Integer)
Select Case KeyAscii
Case 13
txtNo.SetFocus
End Select
End Sub
Private Sub txtTongt_Lostfocus()
txtTongt.BackColor = &HFFFFFF
End Sub
Private Sub txtNo_Gotfocus()
txtLV.BackColor = &HFEF0B
End Sub
Private Sub txtNo_KeyPress(KeyAscii As Integer)
Select Case KeyAscii
Case 13
txtNg.SetFocus
End Select
End Sub
Private Sub txtNo_Lostfocus()
txtNo.BackColor = &HFFFFFF
End Sub
Private Sub txtNg_Gotfocus()
txtNg.BackColor = &HFEF0B
End Sub
Private Sub txtNg_KeyPress(KeyAscii As Integer)
Select Case KeyAscii
Case 13
cmbPTG.SetFocus
End Select
End Sub
Private Sub txtNg_Lostfocus()
txtNg.BackColor = &HFFFFFF
'If CheckDate(txtNg) = "1" Then
'Mgsbox "Chú ý:Dữ liệu kiểu ngày tháng. Vui lòng nhập lại", vbOKOnly + vbExclamation, "Thông báo"
'txtNg.SetFocus
'Exit Sub
'End If
End Sub
Private Sub cmbPTG_Gotfocus()
cmbPTG.BackColor = &HFEF0B
End Sub
Private Sub cmbPTG_KeyPress(KeyAscii As Integer)
Select Case KeyAscii
Case 13
txtNtt.SetFocus
End Select
End Sub
Private Sub cmbPTG_Lostfocus()
cmbPTG.BackColor = &HFFFFF
End Sub
Private Sub txtNtt_Gotfocus()
txtNg.BackColor = &HFEF0B
End Sub
Private Sub txtNtt_KeyPress(KeyAscii As Integer)
Select Case KeyAscii
Case 13
cmbPTTT.SetFocus
End Select
End Sub
Private Sub txtNtt_Lostfocus()
txtNtt.BackColor = &HFFFFFF
End Sub
Private Sub cmbPTTT_Gotfocus()
cmbPTTT.BackColor = &HFEF0B
End Sub
Private Sub cmbPTTT_KeyPress(KeyAscii As Integer)
Select Case KeyAscii
Case 13
grdchi_tiet.Row = 1
grdchi_tiet.Col = 1
grdchi_tiet.SetFocus
End Select
End Sub
Private Sub cmbPTTT_Lostfocus()
cmbPTTT.BackColor = &HFFFFF
End Sub
Private Sub SET_NULL()
txtSop = ""
txtNgay = ""
txtThang = ""
txtNam = ""
txtMakh = ""
txtTenkh = ""
txtDC = ""
txtCQ_DVCT = ""
txtDT = ""
txtphai = ""
txtNg = "__/__/____"
txtNtt = "__/__/____"
txtEmail = ""
txtFax = ""
txtTongt = ""
txtNo = ""
grdchi_tiet_clear
End Sub
Private Sub Lock_Text()
txtSop.Enabled = True
txtNgay.Enabled = False
txtThang.Enabled = False
txtNam.Enabled = False
txtMakh.Enabled = False
txtTenkh.Enabled = False
txtDC.Enabled = False
txtLV.Enabled = False
txtCQ.Enabled = False
txtEmail.Enabled = False
txtFax.Enabled = False
cmbYC.Enabled = False
txtTongt.Enabled = False
txtNo.Enabled = False
txtNg.Enabled = False
txtNtt.Enabled = False
cmbPTG.Enabled = False
cmbPTTT.Enabled = False
grdchi_tiet.Enabled = False
cmdSave.Enabled = False
cmdSkip.Enabled = False
cmdClose.Enabled = False
cmdDel.Enabled = True
cmdUpdate.Enabled = True
cmdNew.Enabled = True
flag = ""
End Sub
Private Sub Un_Lock_Text()
txtSop.Enabled = True
txtNgay.Enabled = True
txtThang.Enabled = True
txtNam.Enabled = True
txtMakh.Enabled = True
txtTenkh.Enabled = True
txtDC.Enabled = True
txtLV.Enabled = True
txtDT.Enabled = True
txtEmail.Enabled = True
txtFax.Enabled = True
txtTongt.Enabled = True
txtNo.Enabled = True
txtNg.Enabled = True
txtNtt.Enabled = True
txtCQ.Enabled = True
cmbYC.Enabled = True
cmbPTG.Enabled = True
cmbPTTT.Enabled = True
grdchi_tiet.Enabled = True
txtSop.SetFocus
cmdSave.Enabled = True
cmdSkip.Enabled = True
cmdNew.Enabled = False
cmdUpdate.Enabled = False
cmdDel.Enabled = False
End Sub
'Private Sub Display()
'Dim rs As ADODB.Recordset
'Dim rs1 As ADODB.Recordset
'Dim rs2 As ADODB.Recordset
'Dim rs3 As ADODB.Recordset
'Dim str, i
'Doc du lieu tu table KH
'str = "select * from KH where So_Phieu='1'"
'rs.Open str, cn
'If rs.EOF = False Then
' txtMakh = rs!Ma_KH
' txtTenkh = rs!Ten_KH
' txtDC = rs!Dia_Chi
' txtCQ = rs!CQ_DVCT
' txtEmail = rs!Email
' txtFax = rs!Fax
' txtDT = rs!DT
' txtTongt = rs!Tong_Tien
' txtNo = rs!CT_No
' cmbYC = rs!Yeu_Cau
' txtNg = rs!Ng
' txtNtt = rs!Ntt
' txtNgay = rs!Ngay
' cmbPTG = rs!Gui
'cmbPTTT = rs!TT
'str = "select * from Phieu where Sop='" & Phieuhh & "'"
'rs1.Open str, cn
'If rs1.EOF = False Then
' txtSop = rs1!So_Phieu
' txtNgay = rs1!Ngay
' txtThang = rs1!Thang
' txtNam = rs1!Nam
'i = 0
' While Not rs1.EOF
' i = i + 1
' If i >= grdchi_tiet.Row - 1 Then
' grdchi_tiet.Row = grdchi_tiet.Row + 1
' grdchi_tiet.TextMatrix(i, 0) = i
' End If
' grdchi_tiet.TextMatrix(i, 1) = rs1!Ma_TL
' str = " select Ten_TL from TL_CD_ROM where Ma_TL = '" & rs1!Ma_TL & "'"
' rs2.Open str, cn
' If rs2.EOF = False Then
' grdchi_tiet.TextMatrix(i, 2) = rs2!Ten_TL
' End If
' rs2.Close
' rs1.MoveNext
' Wend
' End If
' End If
'Phieuhh = "1"
'End Sub
Private Sub grdchi_tiet_clear()
Dim i, j
For i = 1 To grdchi_tiet.Row - 1
For j = 1 To grdchi_tiet.Cols - 1
grdchi_tiet.TextMatrix(i, j) = ""
Next j
Next i
End Sub
Private Sub Insert()
Dim c, r
c = grdchi_tiet.Col
r = grdchi_tiet.Row
If grdchi_tiet.Row >= grdchi_tiet.Rows - 1 Then
grdchi_tiet.Rows = grdchi_tiet.Rows + 1
grdchi_tiet.Row = grdchi_tiet.Rows - 1
grdchi_tiet.Col = 0
grdchi_tiet.Text = Format$(grdchi_tiet.Rows - 1)
End If
grdchi_tiet.Col = c
grdchi_tiet.Row = r
grdchi_tiet.SetFocus
End Sub
Private Sub grdchi_tiet_Init()
Dim i
grdchi_tiet.Cols = 3
grdchi_tiet.Rows = 20
grdchi_tiet.Font.Name = ".VnTime"
grdchi_tiet.FontSize = 10
grdchi_tiet.Row = 0
'1 Cot hien thi
grdchi_tiet.Col = 0
grdchi_tiet.ColWidth(0) = 700
grdchi_tiet.CellAlignment = 4
grdchi_tiet.ColAlignment(0) = 4
grdchi_tiet.Text = "STT"
' 2
grdchi_tiet.Col = 1
grdchi_tiet.ColWidth(1) = 1200
grdchi_tiet.CellAlignment = 4
grdchi_tiet.ColAlignment(1) = 4
grdchi_tiet.Text = "Mã TL"
'3
grdchi_tiet.Col = 2
grdchi_tiet.ColWidth(2) = 3000
grdchi_tiet.CellAlignment = 4
grdchi_tiet.ColAlignment(2) = 4
grdchi_tiet.Text = " Tên tài liệu"
' danh so cho STT
Dim STT
grdchi_tiet.Col = 0
For STT = 1 To grdchi_tiet.Rows - 1
grdchi_tiet.Row = STT
grdchi_tiet.Text = STT
Next STT
End Sub
3: Form Nhập tài liệu:
Option Explicit
Private flag As String
Private Sub cmdClose_click()
Unload Me
End Sub
Private Sub cmdDel_click()
Xoa_Du_Lieu
End Sub
Private Sub cmdNew_click()
Un_Lock_Text
SET_NULL
End Sub
Private Sub cmdSave_click()
If flag "update" Then
flag = "save"
End If
Luu_Du_Lieu
End Sub
Private Sub cmdSkip_click()
SET_NULL
Lock_Text
End Sub
Private Sub cmdUpdate_click()
flag = "update"
Sua_Du_Lieu
End Sub
Private Sub Form_Load()
open_mdb
Lock_Text
Display_Listview
End Sub
Private Sub Lvltem_ItemClick(ByVal Item As MSComctlLib.ListItem)
txtMatl = Item.Text
txtTentl = Item.SubItems(1)
End Sub
Private Sub txtMatl_GotFocus()
txtMatl.BackColor = &HFEF0B
End Sub
Private Sub txtMatl_KeyPress(KeyAscii As Integer)
Select Case KeyAscii
Case 13
txtTentl.SetFocus
End Select
End Sub
Private Sub txtMatl_LostFocus()
txtMatl.BackColor = 12640511
txtMatl = Trim(txtMatl)
End Sub
Private Sub txtTentl_GotFocus()
txtTentl.BackColor = &HFEF0B
'12640511
End Sub
Private Sub txtTentl_KeyPress(KeyAscii As Integer)
Select Case KeyAscii
Case 13
txtSot.SetFocus
End Select
End Sub
Private Sub txtTentl_LostFocus()
txtTentl.BackColor = 12640511
txtTentl = Trim(txtTentl)
End Sub
Private Sub txtSot_GotFocus()
txtSot.BackColor = &HFEF0B
End Sub
Private Sub txtSot_KeyPress(KeyAscii As Integer)
Select Case KeyAscii
Case 13
cmdSave.SetFocus
End Select
End Sub
Private Sub txtSot_LostFocus()
txtSot.BackColor = 12640511
End Sub
Private Sub Xoa_Du_Lieu()
Dim str
Dim response
If Trim(txtMatl) = "" Then
Exit Sub
End If
If MsgBox("Bạn có chắc chắn xoá phòng ban này không?", vbYesNo + vbQuestion, "Thông báo") = vbNo Then
Exit Sub
Else
str = "delete from TL_CD_ROM where Ma_TL='" & Trim(txtMatl) & "'"
cn.Execute (str)
End If
SET_NULL
Lock_Text
Display_Listview
End Sub
Private Sub Luu_Du_Lieu()
Dim rs As New ADODB.Recordset
Dim str
If Trim(txtMatl) = "" Or Trim(txtTentl) = "" Then
MsgBox "Chú ý:Phải nhập đầy đủ dữ liệu trước khi lưu", vbOKOnly + vbExclamation, "Thông báo"
Exit Sub
End If
str = "select Ma_TL, Ten_TL, So_Trang from TL_CD_ROM where Ma_TL='" & Trim(txtMatl) & "'"
rs.Open str, cn
If rs.EOF = True Then
str = "insert into TL_CD_ROM(Ma_TL, Ten_TL, So_Trang) values('" & Trim(txtMatl) & "','" & Trim(txtTentl) & "', '" & Trim(txtSot) & "')"
cn.Execute (str)
Else
If flag = "save" Then
MsgBox "Mã tài liệu đã tồn tại, vui lòng kiểm tra lại", vbOKOnly + vbExclamation, "Thông báo"
Me.MousePointer = 0
Exit Sub
End If
str = "update TL_CD_ROM set Ten_TL='" & Trim(txtTentl) & "', So_Trang='" & Trim(txtSot) & "' where Ma_TL='" & Trim(txtMatl) & "'"
cn.Execute (str)
End If
Lock_Text
Display_Listview
cmdNew.SetFocus
Me.MousePointer = 0
End Sub
'thu tuc khoi gan gia tri ban dau cho cac dieu khien Textbox
Private Sub SET_NULL()
txtMatl = ""
txtTentl = ""
txtSot = ""
End Sub
' thu tuc khoa cac dieu khien khi o che do xem
Private Sub Lock_Text()
txtMatl.Enabled = False
txtTentl.Enabled = False
txtSot.Enabled = False
cmdSave.Enabled = False
CmdSkip.Enabled = False
cmdNew.Enabled = True
cmdUpdate.Enabled = True
cmdDel.Enabled = True
flag = ""
End Sub
' Thu tuc mo khoa cac dieu khien khi o che do Them hoac Sua
Private Sub Un_Lock_Text()
txtMatl.Enabled = True
txtTentl.Enabled = True
txtSot.Enabled = True
txtMatl.SetFocus
cmdSave.Enabled = True
CmdSkip.Enabled = True
cmdNew.Enabled = False
cmdUpdate.Enabled = False
cmdDel.Enabled = False
End Sub
'Thu tuc hien thi du lieu trong table Phong ban ra dieu khin listview
Private Sub Display_Listview()
Dim rs As New ADODB.Recordset
Dim str
Dim mItem As ListItem
lvItem.ListItems.Clear
str = "select Ma_TL, Ten_TL, So_Trang from TL_CD_ROM order by Ma_TL asc"
rs.Open str, cn, adOpenDynamic, adLockOptimistic, adCmdText
If rs.EOF = False Then
While Not rs.EOF
Set mItem = lvItem.ListItems.Add(, , rs!Ma_TL)
mItem.SubItems(1) = rs!Ten_TL
mItem.SubItems(2) = rs!So_Trang
rs.MoveNext
Wend
End If
End Sub
Tài liệu tham khảo
Hệ thống thông tin quản lý. Tác giả TS Trương Văn Tú – Trần Thị Song Minh. Trường Đại học Kinh tế Quốc dân.
Microsoft Visual Basic & Lập trình cơ sở dữ liệu 6.0 – GSTS Nguyễn Hữu Anh – Nhà xuất bản giáo dục.
Giáo trình Cơ sở dữ liệu – Trần Công Uẩn – Nhà xuất bản Thống kê.
Những bài thực hành Cơ sở dữ liệu Visual Basic căn bản – Tổng hợp & biên soạn Ks Đinh Xuân Lâm – Nhà xuất bản thống kê.
Các tài liệu của Trung tâm Thông tin, Tổng cục TC_ĐL_CL
Các tài liệu luận văn khoá trước.
Mục lục
Các file đính kèm theo tài liệu này:
- P0028.doc