Chuyên đề Quản lí Khách hàng Thư việ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.

doc90 trang | Chia sẻ: oanh_nt | Lượt xem: 1337 | Lượt tải: 0download
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:

  • docP0028.doc