Chuyên đề Xây dựng hệ thống thông tin quản lý bến xe khách

Mục đích của sơ đồ là nêu lên chính xác và cụ thể các chức năng chính của hệ thống thông tin. Sơ đồ chức năng của hệ thống chỉ ra cho chúng ta biết hệ thống cần phải làm gì chứ không phải chỉ ra là phải làm như thế nào. Việc phân cấp sơ đồ chức năng cho phép phân tích viên hệ thống đi từ tổng quát đến chi tiết theo cấu trúc hình cây. Sơ đồ BFD được biểu diễn dưới dạng hình cây, tại mỗi nút là một hình chữ nhật thể hiện chức năng hoặc một nhóm chức năng cụ thể và không nên phân rã biểu đồ quá sáu mức. Ở mỗi mức, các chức năng cùng mức sắp xếp trên cùng một hàng, cùng một dạng. Mỗi chức năng có một tên duy nhất, tên chức năng phải là một mệnh đề động từ gồm một động từ và một bổ ngữ. Tên chức năng cần phản ánh được nội dung công việc thực tế mà tổ chức thực hiện và người sử dụng quen dùng nó.

doc95 trang | Chia sẻ: oanh_nt | Lượt xem: 2530 | Lượt tải: 0download
Bạn đang xem trước 20 trang tài liệu Chuyên đề Xây dựng hệ thống thông tin quản lý bến xe khách, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
việc thực hiện kỹ thuật; và tiếp đó là tài liệu dành cho người sử dụng và nó mô tả phần thủ công và cả những giao diện với những phần tin học hoá. Những công đoạn chính của thiết kế vật lý ngoài là: - Lập kế hoạch thiết kế vật lý ngoài. - Thiết kế chi tiết các giao diện vào/ra. - Thiết kế cách thức tương tác với phần tin học hoá. - Thiết kế các thủ tục thủ công. - Chuẩn bị và trình bày báo cáo thiết kế vật lý ngoài. 2.3.3.6- Giai đoạn 6: Triển khai kỹ thuật hệ thống. Kết quả quan trọng nhất của giai đoạn thực hiện kỹ thuật là phần tin học hoá của hệ thống thông tin, có nghĩa là phần mềm. Những người chịu trách nhiệm về giai đoạn này phải cung cấp các tài liệu như các bản hướng dẫn sử dụng và thao tác cũng như các tài liệu mô tả về hệ thống. Các hoạt động chính của việc triển khai thực hiện kỹ thuật hệ thống như sau: - Lập kế hoạch thực hiện kỹ thuật. - Thiết kế vật lý trong. - Lập trình. - Thử nghiệm hệ thống. - Chuẩn bị các tài liệu hệ thống. 2.3.3.7- Giai đoạn 7: Cài đặt và khai thác Cài đặt hệ thống là pha trong đó việc chuyển từ hệ thống cũ sang hệ thống mới được thực hiện. Để việc chuyển đổi này được thực hiện với những va chạm ít nhất, cần phải lập kế hoạch một cách cẩn thận. Giai đoạn này bao gồm các công đoạn: - Lập kế hoạch cài đặt. - Chuyển đổi. - Khai thác và bảo trì. 7.4- Đánh giá. 2.4- Phân tích hệ thống thông tin quản lý. 2.4.1- Phương pháp thu thập thông tin. Muốn phân tích một hệ thống trước hết phải có thông tin về hệ thống đang tồn tại. Thu thập thông tin là công việc để có được các thông tin cần thiết cho quá trình phân thích hệ thống. Độ chính xác và chi tiết của thông tin thu thập được ảnh hưởng rất lớn tới chất lượng phân tích hệ thống cũng như chất lượng của hệ thống sau khi được xây dựng và phát triển. Có bốn phương pháp thu thập thông tin được sử dụng đó là: Nghiên cứu tài liệu, quan sát, phỏng vấn và sử dụng phiếu điều tra. Phương pháp nghiên cứu tài liệu: Phương pháp 1: Nghiên cứu tài liệu về hệ thống. Phương pháp này cho phép nghiên cứu kĩ và tỉ mỉ về nhiều khía cạnh của tổ chức như: Lịch sử ra đời và phát triển, tình trạng tài chính, bộ máy hoạt động… Kết quả của nghiên cứu tài liệu hệ thống cho ta cái nhìn tổng thể ban đầu về đối tượng nghiên cứu. Để có hình ảnh đầy đủ về các thành phần của hệ thống người ta phải nghiên cứu dữ liệu về các khía cạnh sau: + Hoạt động của hệ thống. + Thông tin vào của hệ thống. + Thông tin ra của hệ thống. + Quá trình xử lý. + Cách giao tiếp, trao đổi thông tin trong hệ thống. + Quan hệ giữa các phòng ban. + Khối lượng công việc. + Những khó khăn trong công việc. Phương pháp 2: Quan sát hệ thống. Quan sát hệ thống cũng là một phương pháp thu thập thông tin thường được áp dụng. Có những thông tin phân tích viết rất muốn biết nhưng không thế thấy trong các phương pháp khác, trong tài liệu của hệ thống cũng không có, khi đó người ta sẽ sử dụng phương pháp quan sát. Phương pháp quan sát rất có tác dụng khi muốn có một bức tranh khái quát về tổ chức cần tìm hiểu và cách quản lý các hoạt động của tổ chức này. Mục tiêu của việc quan sát là tìm ra những giải pháp tối ưu về kỹ thuật, tài chính, thời gian và những ràng buộc khác cho hệ thống. Tuy nhiên thì phương pháp quan sát cũng có hạn chế của nó. Một hệ thống mới thường sẽ làm thay đổi phương pháp và các chi tiết thao tác khiến cho phương pháp làm cũ không còn mấy ý nghĩa. Một hạn chế nữa đó là người bị quan sát sẽ cảm thấy khó chịu và thường thay đổi hành động. Phương pháp 3: Phỏng vấn. Phỏng vấn là một phương pháp thu thập thông tin rất hiệu quả và rất thông dụng. Phương pháp này có thể đem lại những thông tin về hệ thống mà khó có thể thu được từ những phương pháp khác. Do được trực tiếp nói chuyện với những người có thẩm quyền, chuyên môn nên thông tin thu được sẽ chính xác và sát với yêu cầu hơn. Tuy nhiên để phương pháp phỏng vấn đem lại hiệu quả như mong muốn thì cần có sự chuẩn bị kĩ càng trước khi đi phỏng vấn cũng như thể hiện của người phỏng vấn trong khi tiến hành phỏng vấn. Phương pháp 4: Sử dụng phiếu điều tra. Trong điều tra thì có hai phương pháp tiến hành điều tra đó là: Điều tra toàn bộ và điều tra chọn mẫu. Trong thực tế thì người ta thường tiến hành điều tra chọn mẫu do phương pháp điều tra toàn bộ khó thực hiện và rất tốn kém. Khi tiến hành điều tra chọn mẫu thì người ta phải lựa chọn các đối tượng có tính đại diện để điều tra sao cho kết quả điều tra phản ánh được thực trạng của hệ thống muốn phát triển. 2.4.2- Công cụ mô hình hóa hệ thống thông tin quản lý. 2.4.2.1- Sơ đồ chức năng (BFD). Mục đích của sơ đồ là nêu lên chính xác và cụ thể các chức năng chính của hệ thống thông tin. Sơ đồ chức năng của hệ thống chỉ ra cho chúng ta biết hệ thống cần phải làm gì chứ không phải chỉ ra là phải làm như thế nào. Việc phân cấp sơ đồ chức năng cho phép phân tích viên hệ thống đi từ tổng quát đến chi tiết theo cấu trúc hình cây. Sơ đồ BFD được biểu diễn dưới dạng hình cây, tại mỗi nút là một hình chữ nhật thể hiện chức năng hoặc một nhóm chức năng cụ thể và không nên phân rã biểu đồ quá sáu mức. Ở mỗi mức, các chức năng cùng mức sắp xếp trên cùng một hàng, cùng một dạng. Mỗi chức năng có một tên duy nhất, tên chức năng phải là một mệnh đề động từ gồm một động từ và một bổ ngữ. Tên chức năng cần phản ánh được nội dung công việc thực tế mà tổ chức thực hiện và người sử dụng quen dùng nó. Sau đây là ví dụ sơ đồ BFD của hệ thống quản lí bến xe khách. Hình 2.6: Sơ đồ BFD. 2.4.2.2- Sơ đồ luồng thông tin (IFD). Sơ đồ luồng thông tin được dùng để mô tả hệ thống thông tin theo cách thức động, tức là mô tả sự di chuyển của dữ liệu, việc xử lý, việc lưu trữ trong thế giới vật lý bằng các sơ đồ. Các kí pháp của sơ đồ luồng thông tin như sau: Hình 2.7: Kí pháp sơ đồ luồng thông tin. Ví dụ: Sơ đồ luồng thông tin của hệ thống thông tin quản lí bến xe. Hình 2.8: Sơ đồ luồng thông tin. 2.4.2.3- Sơ đồ luồng dữ liệu (DFD). Sơ đồ luồng dữ liệu là sơ đồ giúp các phân tích viên hệ thống trong quán trình phân tích thiết kế hệ thống thông tin, nó đưa ra một mô hình về hệ thống có quan điểm cấn xứng cho cả dữ liệu và quá trình. Nó chỉ ra cách mà thông tin vận chuyển từ một quá trình hay chức năng này sang một quá trình hay chức năng khách của hệ thống. Điều quan trọng là nó chỉ ra thông tin nào cần phải có trước khi cho thực hiện một hàm hay quá trình. Tuy nhiên sơ đồ luồng dữ liệu cũng không phải là công cụ 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 đương nhiên nó không bao hàm được các tham số thời gian, các tham số định lượng. Kí pháp dùng cho sơ đồ luồng dữ liệu (DFD): Hình 2.9: Sơ đồ luồng thông tin. Các mức của DFD. Sơ đồ ngữ cảnh thể hiện khái quát nội dung chính của hệ thống thông tin. Sơ đồ này không đi vào chi tiết mà mô tả sao cho chỉ nhìn một lần là nhận ra nội dung chính của hệ thống. Để cho sơ đồ ngữ cảnh dễ nhìn có thể bỏ qua các kho dữ liệu, các xử lí cập nhật. Ví dụ: Sơ đồ ngữ cảnh của hệ thống thông tin quản lí bến xe. Hình 2.10: Sơ đồ ngữ cảnh (mức 0). Phân rã sơ đồ Để mô tả chi tiết người ta sử dụng kỹ thuật phân rã sơ đồ. Bắt đầu từ sơ đồ ngữ cảnh, sơ đồ phân rã thành sơ đồ mức 0, mức 1… Ví dụ: Sơ đồ phân rã mức 1. Hình 2.11: Sơ đồ phân rã mức 1. 2.5- Thiết kế logic hệ thống thông tin. Chúng ta thường sử dụng phương pháp mô hình hóa để thiết kế cơ sở dữ liệu của hệ thống thông tin. Trước hết chúng ta làm quen với các khái niệm cơ bản của phương pháp mô hình hóa. Thực thể: Thực thể dùng để biểu diễn những đối tượng cụ thể hoặc trừu tượng trong thế giới thực mà ta muốn lưu trữ thông tin về chúng. Ví dụ thực thể như xe ô tô, lái xe, bến xe… Liên kết: Liên kết hay còn gọi là quan hệ được dùng để thể hiện những mối liên hệ tồn tại giữa các thực thể. Các loại liên kết: Liên kết 1@1: Liên kết Một – Một. Là liên kết mà mỗi lần xuất thực thể A được liên kết với chỉ một lần xuất thực thể B và ngược lại. Ví dụ trên cho thấy mỗi hành khách chỉ có một vé xe và mỗi vé xe chỉ thuộc về một hành khách. Liên kết 1@N: Liên kết Một – Nhiều. Là liên kết mà mỗi lần xuất của thực thể A được liên kết với một hoặc nhiều của thực thể B và mỗi lần xuất của thực thể B chỉ liên kết với duy nhất một lần xuất của thực thể A. Trong trường hợp này mỗi xe ô tô thì có nhiều nhiều hành khách, còn mỗi hành khách thì chỉ có thể đi trên một chiếc xe tại một thời điểm nhất định. Liên kết N@M: Liên kết Nhiều – Nhiều. Trong ví dụ này, mỗi xe ô tô có thể có nhiều lái xe và một lái xe có lái nhiều xe trong thời gian làm việc của mình. 2.6- Thiết kế vật lý ngoài. Thiết kế vật lý là mô tả chi tiết phương án giải pháp đã được lựa chọn để tiến hành phát triển hệ thống thông tin. Đây là giai đoạn rất quan trọng vì nó ảnh hưởng và tác động trực tiếp tới công việc hàng ngày của người sử dụng. 2.6.1- Thiết kế đầu vào. Mục đích của việc thiết kế đầu vào là thiết kế các thủ tục nhập liệu có hiệu quả và giảm thiểu các sai sót. Nó bao gồm lựa chọn các phương tiện và thiết kế khuôn dạng cho thông tin nhập. 2.6.2- Thiết kế đầu ra. Thiết kế vật lý đầu ra có hai nhiệm vụ phải làm: Lựa chọn vật mang tin và sắp đặt các thông tin đầu ra. Để truyền tải và lưu trữ thông tin cần phải có vật mang tin. Có bốn vật mang tin chính được sử dụng để trình bày thông tin đầu ra đó là: Giấy, màn hình, tiếng nói và vật mang tin từ tính hoặc quang tính. Thông tin đầu ra của hệ thống phải được bố trí để thể hiện tốt được nội dung muốn truyền tải cho người sử dụng. Tùy vào vật mang tin đầu ra là gì mà có cách bố trí thông tin khác nhau để thể hiện tốt nhất ý nghĩa của thông tin đầu ra. 2.6.3- Thiết kế giao diện và cách thức làm việc (Giao tác) với phần tin học hóa. Một hệ thống thông tin phải thực hiện nhiều công việc khác nhau như: Cập nhật, tìm kiếm, in ấn… Giao tác người máy phải đảm bảo rằng người sử dụng hệ thống có thể điều khiển được hệ thống. Hơn nữa giao tác người máy còn phải được thiết kế sao cho tiện dụng nhất đối với người sử dụng, không nên thiết kế quá phức tạp, khó sử dụng. Một giao tác được thiết kế kém thì có thể làm hạn chế nhiều tới hiệu quả sử dụng của hệ thống. 2.7- Thiết kế vật lí trong các xử lý. Giai đoạn thiết kế vật lý trong có mục đích là đảm bảo độ chính xác của thông tin và làm hệ thống mềm dẻo, giảm thiểu chi phí có thể. Ta xem xét một số khái niệm cơ sở. Sự kiện: Là một việc thực, khi xảy ra nó làm khởi sinh việc thực hiện của một hoặc nhiều xử lý nào đó. Ví dụ trong hệ thống thông tin bán vé, khi in vé bán cho hành khách thì làm khởi sinh xử lý cập nhật vào cơ sở dữ liệu thông tin vé được bán. Công việc: Là một dãy xử lý có chung một sự kiện khởi sinh. Ví dụ khi sự kiện hành khách có yêu cầu mua vé xảy ra thì một các xử lí sau được thực hiện: + Tìm kiếm thông tin xe theo yêu cầu hành khách. + Lựa chọn xe. + In vé bán cho hành khách. + Cập nhật cơ sở dữ liệu hệ thống. Tiến trình: Là một dãy các công việc mà các xử lý bên trong của nó nằm trong cùng một lĩnh vực nghiệp vụ. Ví dụ trong hoạt động quản lý xe ra vào bến sẽ có các tiến trình sau: + Cập nhật xe vào bến. + Quản lý xe trong bến. + Cập nhật xe xuất bến. Nhiệm vụ: Là một xử lý được xác định thêm các yếu tố về tổ chức: Ai? Ở đâu? Khi nào thực hiện nó? Ví dụ nhiệm vụ bán vé. Ai? ở đây là nhân viên bán vé với sự trợ giúp của máy tính, ở đâu? Là ở phòng bán vé, khi nào? Là khi có yêu cầu của hành khách. Pha xử lí: Là tập hợp các nhiệm vụ có tính đến các yếu tố tổ chức và sự thực hiện của chúng, không phụ thuộc vào sự kiện nào khác mà chỉ phụ thuộc vào sự kiện khởi sinh ban đầu. Ví dụ trong tiến trình quản lý tài chính thì có hai pha đó là: + Pha thu phí bến bãi. Pha này thực hiện bởi nhân viên quản lý bến tài phòng của nhân viên quản lý và phát sinh hàng tháng. + Pha thanh toán tiền vé cho lái xe. Pha này do nhân viên bán vé đảm nhiệm, tiến hành ở phòng bán vé và phát sinh khi xe sắp xuất bến. Module xử lí: Là một xử lý cập nhật hoặc tra cứu bên trong của một pha và thao tác với số lượng tương đối ít dữ liệu. Ví dụ trong pha cập nhật thông tin xe vào bến cần các module xử lý sau: + Tìm kiếm thông tin xe theo số xe. + Tìm kiếm tên nhân viên quản lý cho xe vào bến. + Cập nhật thông tin vào cơ sở dữ liệu. 2.8- Giới thiệu Hệ quản trị cơ sở dữ liệu SQL Server 2000 và Ngôn ngữ lập trình Visual Basic.Net. 2.8.1- Hệ quản trị cơ sở dữ liệu SQL Server 2000. SQL Server 2000 là hệ quản trị cơ sở dữ liệu thông dụng hiện nay. Bản thân SQL Server cũng là một hệ cơ sở dữ liệu, nó bào gồm cá đối tượng như Database, table, view, stored procedure… và một số cơ sở dữ liệu hỗ trợ khác. SQL Server 2000 hỗ trợ người dùng rất nhiều trong vấn đề lưu trữ và xử lý dữ liệu, người dùng có thể dễ dàng sửa đổi cơ sở dữ liệu hay lấy lại cơ sở dữ liệu ban đầu trong quá trình thiết kế nhờ chức năng Backup và Restore. SQL Server 2000 hỗ trợ môi trường nhiều người dùng, bất kì ai có quyền cũng có thể truy cập cơ sở dữ liệu để lấy thông tin nếu có kết nối với máy Server. Tất nhiên SQL Server 2000 cũng trợ giúp người dùng trong vấn đề bảo mật. SQL Server 2000 rất thân thiện với người dùng, người dùng có thể dễ dàng tạo lập một cơ sở dữ liệu mới, các bảng, các view, các lệnh SQL, các mô hình quan hệ mà không gặp khó khăn gì. Ngoài ra, SQL còn cho người cái nhìn trực quan hơn khi sử dụng lệnh SQL trong Query Analyzer, tất cả dữ liệu được truy vấn sẽ được xuất ra màn hình nếu câu lệnh SQL đúng cú pháp và dữ liệu truy vấn có tồn tại. Trong SQL Server 2000 hầu hết các kiểu dữ liệu đều được định nghĩa và SQL Server 2000 xây dụng một hệ thống hàm có sẵn cho phép người sử dụng có thể chuyển đổi các định dạng dữ liệu một cách dễ dàng khi cần thiết. SQL Server 2000 còn có rất nhiều hỗ trợ khác, khi nghiên cứu sâu hơn về SQL Server 2000 người dùng sẽ thấy được tính ưu việt của hệ quản trị cơ sở dữ liệu này. Và còn một điều quan trọng là SQL Server 2000 không đòi hỏi cấu hình máy quá cao giống như một sô hệ quản trị cơ sở dữ liệu khác nên không có khó khăn gì khi muốn nghiên cứu SQL Server 2000. 2.8.2- Ngôn ngữ lập trình Visual Basic.Net. Trong những năm gần đây, Visual Basic là ngôn ngữ lập trình được sử dụng rộng rãi trên toàn thế giới để tạo ra các ứng dụng. Visual Basic.Net mở rộng thêm khả năng cho lập trình viên thông qua cấu trúc điều khiển xử lí lỗi, hỗ trợ kết nối với cơ sở dữ liệu mới ADO.NET. Visual Basic.Net giải quyết được vấn đề về tốc độ thực thì, khi đã được đóng gói thì các câu hỏi liên quan tới tốc độ và hiệu quả thực thi không còn nữa. Việc lập trình hướng đối tượng sẽ giúp cho lập trình viên đỡ vất vả hơn vì họ có thể sử dụng các lớp để nhóm dữ liệu thành các phương thức dùng để xử lý dữ liệu. Visual Basic.Net hỗ trợ người dùng xây dựng một ứng dụng với giao diện đẹp bằng cách kéo thả các các điều khiển trên form. Các đối tượng của Visual Basic.Net được hỗ trợ rất nhiều các thuộc tính và mỗi đối tượng đều có thể được tác động tới bằng cách xử lí các sự kiện của chính đối tượng đó hay thậm chí cả từ đối tượng khác. Sau khi chương trình đã hoàn thiện thì việc đưa chương trình ra thành một ứng dụng có thể chạy trên nền Windows rất rễ ràng nhờ chức năng Setup Wizard được hộ trợ trong bộ .NET của Microsoft. CHƯƠNG III PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG THÔNG TIN QUẢN LÝ BẾN XE KHÁCH 3.1- Sự cần thiết của việc phát triển hệ thống thông tin quản lý bến xe khách. 3.1.1- Tìm hiểu tình hình thực tế. Trong xã hội ngày nay tình hình ứng dụng công nghệ thông tin vào quản lý đã trở nên ngày càng phổ biến ở các tổ chức. Việc quản lý có sự trợ giúp của công nghệ thông tin đã mang lại rất nhiều lợi ích như tiết kiệm chi phí, tiết kiệm thời gian, tiết kiệm và sử dụng có hiệu quả nguồn nhân lực, thông tin được truy xuất nhanh chóng, dễ dàng và tính bảo mật cao thông tin cao… Chính những điều đó đã khẳng định vai trò của việc ứng dụng tin học vào trong quản lý. Hệ thống quản lý bến xe khách của nước ra hiện này vẫn hoàn toàn thủ công. Việc xây dựng một hệ thống quản lý bến xe khách là cần thiết trong xu hướng phát triển của xã hội hiện nay. Sở dĩ việc này là cần thiết vì: + Nước ta đang trên đà công nghiệp hóa và hiện đại hóa, xã hội phát triển kéo theo nhu cầu của người dân ngày càng tăng cao. Việc thỏa mãn nhu cầu đi lại của người dân là cần thiết và việc quản lý thủ công sẽ không đáp ứng nhanh chóng và chính xác các yêu cầu này. + Xuất phát tình hình quản lý hiện tại ở các bến xe khách, việc bán vé, mời khách là khá lộn xộn. + Việc quản lý hành khách ra vào bến là không chặt chẽ, hành khách có thể vào bến khi chưa có vé. Điều này gây khó khăn cho việc quản lý bán vé. + Trong bến xe còn tồn tại các hàng quán rất khó khăn trong việc quản lý, không loại trừ trường hợp các tệ nạn xã hội diễn ra trong bến xe. Và thực tế là các bến xe là một nơi khá phức tạp với khá nhiều tệ nạn xã hội. + Các nhân viên bán vé trong bến xe không có được thông tin đầy đủ và chính xác về các xe ra vào bến hàng ngày, các xe mới đăng kí đỗ tại bến xe. Vì không có thông tin nên nhân viên bán vé cũng không thể cung cấp thông tin chính xác cho hành khách được. Đó là một số lý do chính chứng tỏ sự cần thiết của hệ thống thông tin quản lý bến xe khách có sự hỗ trợ của công nghệ thông tin. Nếu hệ thống thông tin được ứng dụng trong quản lý và các bến xe khách được tổ chức lại một cách hợp lý thì chắc chắn sẽ giảm thiểu, thậm chí là xóa bỏ hoàn toàn các thực trạng còn tồn tại trong các bến xe khách hiện nay. 3.1.2- Định hướng xây dựng hệ thống thông tin quản lý bến xe khách. Bến xe khách là một tổng thể lớn, bao gồm các bộ phận như: + Ban giám đốc. + Phòng hành chính tổ chức. + Bộ phận quản lý bến. + Bộ phận bán vé. + Bộ phận kiểm soát cổng ra vào. Như vậy một phần mềm quản lý bến xe khách là một phần mềm rất lớn, nó bao gồm hệ thống quản lý nhân viên, hệ thống quản lý lương, hệ thống quản lý xe đăng kí ra vào bến, hệ thống bán vé. Tuy nhiên trong chuyên đề thực tập này chỉ tập trung vào xây dựng hệ thống quản lý bán vé và hệ thống quản lý xe đăng kí ra vào bến còn các hệ thống khác sẽ được phát triển trong những phiên bản sau của hệ thống. 3.1.3- Mô tả sơ lược hệ thống thông tin mới. 3.1.3.1- Hệ thống quản lí xe đăng kí ra vào bến. Hệ thống mới sẽ xây dựng cơ sở dữ liệu về các xe ô tô đăng kí ra vào bến và được cập nhật mỗi khi có thay đổi diễn ra. Điều quan trọng là trong thông tin đăng kí của từng xe sẽ bao gồm cả thời gian xe vào bến và thời gian xe xuất bến. Thông tin này sẽ hỗ trợ nhân viên bán vé biết được thời gian xe xuất bến gần nhất để thông báo cho hành khách. Hàng ngày, khi một xe ô tô vào bến thì nhân viên quản lý bến sẽ cập nhật thời gian vào bến của xe, thông tin này được cập nhật vào cơ sở dữ liệu. Khi có yêu cầu của nhân viên bán vé thông tin này sẽ được truy xuất từ cơ sở dữ liệu, kết quả là nhân viên bán vé biết được xe nào đang có trong bến và thời gian nào xe sẽ chạy. Khi hệ thống quản lý bến xe được tổ chức lại thì quá trình mua bán vé sẽ được diễn ra duy nhất ở một nơi đó là quầy bán vé của bến xe. Và như vậy hành khách có thể yên tâm về nhưng thông tin được nhân viên bán vé cung cấp. Khi ô tô xuất bến, hệ thống thông tin cũng sẽ cập nhật thông tin này. Và khi nhân viên bán vé tìm kiếm sẽ không thấy xe ô tô đã xuất bến trong danh sách xe sắp xuất bến nữa. 3.1.3.2- Hệ thống quản lý bán vé. Hệ thống được thiết kế giúp nhân viên bán vé tìm kiếm thông tin xe nhanh chóng để cung cấp cho hành khách. Khi có yêu cầu của hành khách, nhân viên bán vé chỉ cần nhập bến xe cần tới thì một danh sách các xe chạy qua bến xe đo sẽ hiện ra và tùy theo yêu cầu của hành khách mà nhân viên bán vé có thể chọn chuyến xe nào phù hợp với yêu cầu và in vé cho hành khách. Thông tin bán vé sẽ được cập nhật vào cơ sở dữ liệu và khi có yêu cầu của Ban giám đốc hay của cơ quan quản lý nào đó thì việc lên báo cáo sẽ rất nhanh chóng và dễ dàng với sự hỗ trợ của hệ thống. Khi gần đến giờ xuất bến, lái xe ô tô sẽ đến phòng bán vé và thanh toán tiền vé với nhân viên bán vé; nhân viên bán vé sẽ thanh toán tiền cho lái xe và cấp cho lái xe phiếu lệnh xuất bến. Phiếu này đưa cho nhân viên quản lý bến khi ô tô muốn ra khỏi bến. 3.2- Phân tích hệ thống thông tin quản lí bến xe khách. 3.2.1- Thu thập thông tin. Để có được các thông tin cho việc xây dựng hệ thống thì việc thu thập thông tin là không thể thiếu và công việc này phải được thực hiện một cách cẩn thận và cho những thông tin chính xác. Thông tin thu thập để phục vụ cho công việc phân tích hệ thống là do kết quả của quá trình nghiên cứu tài liệu, phỏng vấn và quan sát tại bến xe Giáp Bát. Tuy nhiên thông tin chủ yếu thu được là do phỏng vấn. Sau thời gian phỏng vấn các nhân viên bán vé và nhân viên quản lý bến xe tài liệu thu được là cách tổ chức hoạt động của bến xe. Qua phân tích có thể đưa ra sơ đồ luồng thông tin của công tác tổ chức quản lý xe ra vào bến và công tác bán vé của bến xe. 3.2.2- Sơ đồ luồng thông tin (IFD). Hình 3.1: Sơ đồ luồng thông tin của hệ thống quản lí bến xe khách. Mô tả: Khi xe ô tô vào bến nhân viên quản lý sẽ cập nhật thông tin bao gồm: Số xe và giờ xe vào bến vào trong cơ sở dữ liệu. Sau khi thông tin này được cập nhật thì nhân viên bán vé có thể truy nhập và lấy thông tin xe từ cơ sở dữ liệu. Trong thời gian xe chờ trong bến thì nhân viên bán vé sẽ bán vé theo yêu cầu của khách hàng. Việc lựa chọn xe và giờ là do yêu cầu của hành khách. Tùy theo yêu cầu của hành khách mà nhân viên bán vé sẽ truy nhập cơ sở dữ liệu để chọn xe và in vé bán cho hành khách. Khi đến giờ xuất bến lái xe vào phòng bán vé yêu cầu nhân viên bán vé thanh toán và xin lệnh xuất bến. Lái xe đưa lệnh xuất bến cho nhân viên quản lý bến và cho xe rời bến. 3.2.3- Sơ đồ chức năng (BFD). Hình 3.2: Sơ đồ chức năng hệ thống quản lý bến xe khách. Mô tả: Hệ thống quản lý bến xe khách sẽ bao gồm 4 module chính: + Module Quản lý thông tin xe ô tô. + Module Quản lý thông tin nhân viên. + Module Quản lý xuất nhập bến. + Module Quản lý bán vé. 3.2.3.1- Module Quản lý thông tin xe ô tô. Nhiệm vụ: Cập nhật và quản lý thông tin của tất cả các xe ô tô đăng kí đậu trong bến xe. Các thông tin quản lý bao gồm thông tin về xe ô tô như: Số xe, điểm đến, thông tin lái xe… Chức năng: Lưu giữ các thông tin cần thiết về xe ô tô để cung cấp cho nhân viên bán vé khi truy nhập cơ sở dữ liệu tìm kiếm thông tin cho hành khách. 3.2.3.2- Module Quản lý thông tin nhân viên. Nhiệm vụ: Cập nhật thông tin nhân viên đang làm việc trong bến xe. Chức năng: Lưu giữ thông tin nhân viên vào cơ sở dữ liệu. Trợ giúp nhân viên trong việc cập nhật thông tin trong các module khác của chương trình. 3.2.3.3- Module Quản lý xe Nhập - Xuất bến. Nhiệm vụ: Cập nhật thông tin xe ô tô mỗi khi xe vào bến hoặc xuất bến, thông tin cập nhật bao gồm thời gian vào bến và thời gian xuất bến của từng xe. Ngoài ra module này còn cập nhật thông tin thu, nộp phí bến bãi của từng xe đăng kí đỗ trong bến. Chức năng: Nhân viên bán vé sẽ căn cứ vào thông tin của module này mà biết được xe ô tô nào còn trong bến và dựa vào đó để tìm kiếm xe thích hợp với yêu cầu của hành khách. 3.2.3.4- Module Quản lý bán vé. Nhiệm vụ: Hỗ trợ nhân viên bán vé trong việc tìm kiếm thông tin xe còn trong bến và thời gian chạy của từng xe, hỗ trợ nhân viên bán vé trong việc cung cấp lệnh xuất bến cho lái xe. Đồng thời module này cũng cập nhật các giao dịch đã diễn ra. Chức năng: Tìm kiếm thông tin xe ô tô trong bến để cung cấp cho hành khách khi có yêu cầu. Kiểm tra thời gian xuất bến của các xe khi lái xe có yêu cầu xin lệnh xuất bến. 3.2.4- Sơ đồ ngữ cảnh. Hình 3.3: Sơ đồ ngữ cảnh. 3.2.5- Sơ đồ luồng dữ liệu. 3.2.5.1- Sơ đồ mức 0. Hình 3.4: Sơ DFD mức 0. 3.2.5.2- Sơ đồ mức 1 của xử lý Tiếp nhận thông tin xe Ra - Vào bến. Hình 3.5: Sơ DFD mức 1 của xử lý Tiếp nhận thông tin xe Ra - Vào bến. 3.2.5.3- Sơ đồ mức 1 của xử lý Bán vé. Hình 3.6: Sơ DFD mức 1 của xử lý Bán vé. 3.2.5.4- Sơ đồ mức 1 của Xử lý Thu phí bến bãi. Hình 3.7: Sơ DFD mức 1 của Xử lý Thu phí bến bãi. 3.2.5.5- Sơ đồ mức 1 của Xử lý Lệnh xuất bến. Hình 3.8: Sơ DFD mức 1 của Xử lý Lệnh xuất bến. 3.2.5.6- Sơ đồ mức 1 của lập Báo cáo. Hình 3.9: Sơ DFD mức 1 của lập Báo cáo. 3.3- Thiết kế cơ sở dữ liệu. 3.3.1- Tệp Danh mục Xe. Tên Trường Kiểu Độ rộng Rỗng Diễn giải BKS nvarchar 12 NOT NULL Biển kiểm soát LoaiXe nvarchar 30 NULL Loại xe MauXe nvarchar 10 NULL Màu sơn SoGhe int 4 NULL Số ghế tgVaoDK char 8 NULL Đăng kí thời gian vào bến tgXuatDK char 8 NULL Đăng kí thời gian xuất bến PhiBen numeric 9 NULL Phí bến bãi 3.3.2- Tệp Danh mục Lái xe. Tên Trường Kiểu Độ rộng Rỗng Diễn giải MaLaiXe nvarchar 8 NOT NULL Mã lái xe HoTen nvarchar 30 NULL Họ tên NamSinh smalldatetime 4 NULL Ngày sinh DiaChi nvarchar 30 NULL Địa chỉ DienThoai char 12 NULL Điện thoại 3.3.3- Tệp Danh mục Xe ô tô và Lái xe. Tên Trường Kiểu Độ rộng Rỗng Diễn giải ID decimal 9 NOT NULL Trường định danh BKS nvarchar 12 NOT NULL Biển kiểm soát LoaiXe nvarchar 30 NULL Loại xe MaLaiXe nvarchar 8 NOT NULL Mã lái xe Ten nvarchar 30 NULL Tên lái xe 3.3.4- Tệp Danh mục Nhân viên. Tên Trường Kiểu Độ rộng Rỗng Diễn giải MaNhanvien nvarchar 5 NOT NULL Mã nhân viên HoTen nvarchar 30 NULL Họ tên NamSinh smalldatetime 4 NULL Năm sinh GioiTinh nvarchar 5 NULL Giới tính DiaChi nvarchar 30 NULL Địa chỉ 3.3.5- Tệp Danh mục bến xe. Tên Trường Kiểu Độ rộng Rỗng Diễn giải MaBen nvarchar 8 NOT NULL Mã bến TenBen nvarchar 30 NULL Tên bến DiaChi nvarchar 30 NULL Địa chỉ DoDai numeric 9 NULL Độ dài GiaVe numeric 9 NULL Giá vé 3.3.6- Tệp Danh mục Xe và Bến xe. Tên Trường Kiểu Độ rộng Rỗng Diễn giải ID numeric 9 NOT NULL Trường định danh MaBen nvarchar 8 NOT NULL Mã bến BKS nvarchar 12 NOT NULL Biển kiểm soát 3.3.7- Tệp Danh mục Vị trí bến. Tên Trường Kiểu Độ rộng Rỗng Diễn giải MaViTri nvarchar 10 NOT NULL Mã vị trí MoTa nvarchar 50 NULL Mô tả 3.3.8- Tệp Danh mục Phí bến bãi. Tên Trường Kiểu Độ rộng Rỗng Diễn giải ID decimal 9 NOT NULL Trường định danh Thang char 2 NULL Tháng nộp phí BKS nvarchar 12 NOT NULL Biển kiểm soát CuocPhi decimal 9 NULL Cước phí MaNVQL nvarchar 5 NULL Mã nhân viên quản lý MaLaiXe nvarchar 8 NULL Mã lái xe NgayNopPhi smalldatetime 4 NOT NULL Ngày nộp phí 3.3.9- Tệp Danh mục Thông tin xe trong bến. Tên Trường Kiểu Độ rộng Rỗng Diễn giải ID decimal 9 NOT NULL Trường định danh BKS nvarchar 12 NOT NULL Biển kiểm soát NgayThang datetime 8 NOT NULL Ngày tháng tgVaoBen char 12 NOT NULL Thời gian vào bến tgXuatBen char 12 NULL Thời gian xuất bến ViTriDo nvarchar 30 NULL Vị trí đỗ SoVe numeric 9 NULL Số vé TinhTrang bit 1 NULL Tình trạng MaNVQL nvarchar 5 NULL Mã nhân viên quản lý MaNVQL2 nvarchar 5 NULL Mã nhân viên quản lý 3.3.10- Tệp Danh mục Lệnh xuất bến. Tên Trường Kiểu Độ rộng Rỗng Diễn giải ID numeric 9 NOT NULL Trường định danh NgayThang datetime 8 NULL Ngày tháng BKS nvarchar 12 NULL Biển kiểm soát tgXuatBen char 8 NULL Thời gian xuất bến MaLaiXe nvarchar 8 NULL Mã lái xe MaNVBV nvarchar 5 NULL Mã nhân viênbán vé 3.3.11- Tệp Danh mục vé. Tên Trường Kiểu Độ rộng Rỗng Diễn giải ID decimal 9 NOT NULL Trường định danh Tuyen nvarchar 30 NULL Tuyến xe Gia decimal 9 NULL Giá vé BKS nvarchar 12 NULL Biển kiểm soát tgChay datetime 8 NULL Thời gian chạy MaNVBV nvarchar 5 NULL Mã nhân viên bán vé 3.3.12- Mô hình quan hệ thực thể. Hình 3.10: Sơ đồ quan hệ thực thể. 3.4- Thiết kế kỹ thuật. 3.4.1- Các yêu cầu về phần cứng và phần mềm. Hệ thống thông tin quản lý bến xe khách được thiết kế để hoạt động trong môi trường nhiều người dùng vì vậy để hệ thống có thể hoạt động tốt tổ chức cần đảm bảo các yêu cầu về phần cứng như sau: + Máy tính: Cấu hình tối thiểu Pentium III 500MHz, RAM 128, ổ cứng còn trống 500 MB, máy tính phải có Card mạng. + Phần mềm: Cài đặt hệ điều hành từ Windows 98 trở lên, cài đặt Drive đầy đủ cho máy, hệ quản trị cơ sở dữ liệu SQL Server 2000, cài đặt NET Framework. + Máy chủ: Máy chủ là nơi chứa cơ sở dữ liệu dùng chung cho toàn hệ thống nên nhất thiết phải có cấu hình cao, nếu có điều kiện thì có thể mua máy chủ, nếu không thì phải mua máy Desktop có cấu hình cao từ Pentium IV 2,4GHz, RAM 512MB trở lên. + Ngoài ra, ở bộ phận bán vé phải có máy in để in vé bán cho hành khách, tốt nhất là đi kèm mỗi máy tính nên có một máy in. 3.4.2- Thiết kế mạng nội bộ. Hệ thống được xây dựng để hỗ trợ cho hai bộ phận của bến xe khách là bộ phận Quản lý Ra - Vào bến và bộ phận bán vé. Trong đó bộ phận quản lý ra vào bến được chia ra thành bộ phận quản lý Vào bến và bộ phần quản lý Xuất bến. Ở bộ phận quản lý Vào bến và Xuất bến thì mỗi phòng chỉ cần một máy tính và một máy in còn trong bộ phận bán vé thì mỗi phòng bán vé cần một máy tính và một máy in. Tất cả các máy tính này được kết nối vào mạng nội bộ và có thể truy cập cơ sở dữ liệu dùng chung của hệ thống. Sau đây là mô hình mạng được thiết kế cho hệ thống thông tin quản lý bến xe khách: Hình 3.11:Thiết kế mô hình mạng. Trong mô hình này nhà quản lý là một bộ phận độc lập có toàn quyền truy nhập và giám sát hoạt động của hệ thống cũng như hoạt động của từng bộ phận. Cơ sở dữ liệu được đặt ở trung tâm của hệ thống, các máy trạm có thể truy nhập dễ dàng và nhanh chóng vào máy chủ và thực hiện các thao tác cập nhật tùy theo chức năng và quyền hạn của mình. Mạng LAN được kết nối với Internet, điều này phục vụ cho mục đích trong tương lai của hệ thống đó là sẽ đưa thông tin về các tuyến xe và giờ chạy của xe lên mạng phục vụ nhu cầu đi lại của hành khách. 3.5- Thiết kế giải thuật chương trình 3.5.1- Giải thuật đăng nhập. Hình 3.12: Sơ đồ giải thuật đăng nhập. 3.5.2- Giải thuật cập nhật. Hình 3.13: Sơ đồ giải thuật cập nhật dữ liệu. 3.5.3- Giải thuật Tìm kiếm. Hình 3.14: Sơ đồ giải thuật tìm kiếm. 3.5.4- Giải thuật lên Báo cáo. Hình 3.15: Sơ đồ giải thuật lên Báo cáo. 3.6- Một số giao diện chính của chương trình. 3.6.1- Giao diện đăng nhập. Hình 3.16: Giao diện đăng nhập hệ thống. 3.5.2- Giao diện chính. Hình 3.17: Giao diện chính của hệ thống. 3.6.3- Giao diện danh sách Lái xe. Hình 3.18: Giao diện danh sách Lái xe. 3.6.4- Giao Diện cập nhật Lái xe. Hình 3.19: Giao diện cập nhật Lái xe. 3.6.5- Giao Diện cập nhật xe vào bến. Hình 3.20: Giao diện cập nhật xe vào bến. 3.6.6- Giao Diện cập nhật xe xuất bến. Hình 3.21: Giao diện cập nhật xe xuất bến. 3.6.7- Giao Diện bán vé. Hình 3.22: Giao diện bán vé. 3.6.8- Giao Diện tìm kiếm thông tin xe. Hình 3.23: Giao diện tìm kiếm thông tin xe. 3.6.9- Giao Diện nhập báo cáo thông tin xe. Hình 3.24: Giao diện nhập báo cáo. 3.6.10- Giao Diện báo cáo thông tin xe. Hình 3.25: Giao diện báo cáo thông tin xe. 3.7- Triển khai hệ thống thông tin quản lý bến xe khách. Để triển khai thành công hệ thống yêu cầu cơ sở phải đảm bảo các yêu cầu về phần cứng và phần mềm như trong thiết kế. Để hệ thống đi vào hoạt động nhân viên triển khai cần cài đặt môi trường NET Framework cho tất cả các máy sử dụng hệ thống và cài đặt hệ thống. Cơ sở dữ liệu sẽ được cài đặt ở máy chủ, các máy trạm không cần cài đặt hệ quản trị cơ sở dữ liệu SQL Server 2000 mà chỉ cần truy cập dữ liệu từ Server. Người sử dụng có thể sử dụng thành thạo hệ thống sau khi được cán bộ triển khai hướng dẫn. Một khi được đưa vào hoạt động chắc chắn hệ thống sẽ cho người sử dụng thấy sự cần thiết phải phát triển hệ thống thông tin quản lí trong các bến xe khách, nó sẽ hỗ trợ nhân viên trong bến xe rất nhiều trong công việc cập nhật và tìm kiếm thông tin. KẾT LUẬN Trong thời gian thực tập, nghiên cứu và xây dựng đề tài, em đã học hỏi thêm được những kiến thức và kinh nghiệm khi phát triển một hệ thống thông tin. Khi thực sự đi sâu em mới thấy tầm quan trọng của giai đoạn phân tích thiết kế hệ thống, một bản thiết kế không chuẩn có thể làm cả dự án thất bại. Vì vậy, em đã cố gắng phân tích thiết kế hết sức cẩn thận trước khi tiến hành xây dựng phần mềm. Sau thời gian thực tập với đề tài: “XÂY DỰNG HỆ THỐNG THÔNG TIN QUẢN LÍ BẾN XE KHÁCH”. Tuy còn rất nhiều thiếu sót nhưng em cũng đã có được một số kết quả nhất định như sau: + Bản thiết kế hệ thống với hai module xử lý chính là Quản lý thông tin xe Ra – Vào bến và Quản lý bán vé. + Phần mềm: Quản lý bến xe khách kết nối với cơ sở dữ liệu nhiều người dùng. + Cơ sở dữ liệu có khả năng lưu trữ các thông tin cần thiết của các đối tượng cần quản lí. + Hệ thống có tính bảo mật đối với người dùng, người sử dụng phải có tên đăng nhập và mã khóa mới có thể truy cập được hệ thống cũng như dữ liệu của hệ thống. + Giao diện thân thiện với người sử dụng với đầy đủ chức năng của hệ thống. + Các form nhập được thiết kế hợp lý, giảm thiểu các thao tác nhập cho người sử dụng. + Các thông tin có thể được tìm kiếm và truy xuất một cách nhanh chóng và chính xác. + Xuất các báo cáo khi có yêu cầu. Trên đây là những kết quả đã đạt được tuy nhiên hệ thống này chỉ tập trung vào hai module Quản lý xe Ra – Vào bến và Quản lý bán vé như đã nói. Như chúng ta biết thì bến xe là một tổng thể lớn, quản lý bến xe bao gồm nhiều công việc khác nhau như: Quản lý nhân viên, quản lý lương, quản lý bán vé, quản lý vật tư… Vì vậy trong tương lai hệ thống này sẽ được phát triển thêm các module mới nhằm đáp ứng đầy đủ các nhu cầu quản lý của một bến xe cần có. Một vấn đề nữa là các thông tin của hệ thống được cập nhật thường xuyên nhưng các thông tin này chỉ được sử dụng trong hệ thống, hành khách không thể tra cứu những thông tin này trên mạng. Vì vậy trong tương lai hệ thống sẽ được phát triển thêm để có thể thường xuyên đưa thông tin lên mạng để hành khách có thể tra cứu ngay cả khi họ không tới bến xe, điều này sẽ tiết kiệm nhiều thời gian cho hành khách và đó cũng là chiều hướng của một xã hội hiện đại. Để có được những kết quả này em xin chân thành cảm ơn thầy giáo TS. Đặng Quế Vinh người đã trực tiếp hướng dẫn em hoàn thành chuyên đề này. Và để hoàn thiện hệ thống như định hướng em vẫn rất mong có được sự giúp đỡ của thầy và các thầy giáo, cô giáo trong Khoa Tin học kinh tế. Sự góp ý, phê bình của thầy cô là những lời khuyên cho em hoàn thiện hệ thống này. Em xin chân thành cảm ơn! DANH MỤC TÀI LIỆU THAM KHẢO 1. TS Trương Văn Tú – TS Nguyễn Thị Song Minh. Giáo trình Hệ thống thông tin quản lý. NXB Thống Kê, Hà Nội, 2000. 2. Trần Công Uẩn. Giáo trình Cơ sở dữ liệu SQL, Access. NXB Thống Kê, Hà Nội, 2000. 3. PGS.TS.Hàn Viết Thuận (Chủ biên) – TS. Trương Văn Tú – TS.Cao Đình Thi – TS.Trần Thị Song Minh. Giáo trình Hệ thống thông tin quản lí. (Dùng cho hệ cao học và nghiên cứu sinh) NXB Lao Động – Xã Hội,Hà nội, 2004. 4. Phạm Hữu Khang. Lập trình ứng dụng chuyên nghiệp SQL Server 2000. NXB Lao Động – Xã Hội, Hà nội, 2005. 5. Phương Lan. Visual Basic.Net Kỹ xảo lập trình. NXB Thống Kê, Hà nội, 2004. PHỤ LỤC 1- Đoạn chương trình cấu hình hệ thống. Module RootPro Public bxdbConnect As New ADODB.Connection Public bxsConnect As String Public bxsCurrUser As String Public AppTitle As String = "QLBX Solution" Public AppPath As String = System.IO.Path.GetFullPath("..\") Public year As String Public fMain As New frmMain Dim i As Integer Public Sub Main() Dim frm_Login As New frmLogin Do While (i < 3) i = i + 1 frm_Login.ShowDialog() If frm_Login.OK Then GoTo _Next End If Loop _Next: If Not frm_Login.OK Then End frm_Login.Dispose() Application.Run(fMain) End Sub Public Enum SysParameter pServer = 0 pDatabase = 1 pUserName = 2 pYear = 3 End Enum Friend Enum ADD_EDIT Add Edit End Enum Public Function ConnectDB(ByVal Server As String, ByVal Database As String) As Boolean On Error GoTo err bxdbConnect = Nothing bxdbConnect = New ADODB.Connection bxsConnect = "Provider=SQLOLEDB.1;persit Security Info=false;User ID=sa;Initial Catalog=" & Database & ";Data Source=" & Server bxdbConnect.CursorLocation = ADODB.CursorLocationEnum.adUseClient bxdbConnect.CommandTimeout = 0 bxdbConnect.Open(bxsConnect) ConnectDB = True Exit Function err: MsgBox(Err.Description) ConnectDB = False End Function Public Function GetConfigSystem(ByVal Item As SysParameter) As String Dim result As String Select Case Item Case Item.pServer result = GetSetting(AppTitle, "Settings\Connect", "SERVER", "(local)") Case Item.pDatabase result = GetSetting(AppTitle, "Settings\Connect", "DATABASE", "QLBX") Case Item.pUserName result = GetSetting(AppTitle, "Settings\Connect", "USER", "ADMIN") Case Item.pYear result = GetSetting(AppTitle, "Settings\Connect", "YEAR", "2006") End Select GetConfigSystem = result End Function Public Function Search_List(ByVal Table_Name As String, ByVal Truongma As String, ByVal Ma As Object, ByVal Truongten As String, Optional ByVal bNoChange As Boolean = True, Optional ByVal sChangeSql As String = "") As String Dim Rs As ADODB.Recordset If Ma = vbNullString Then Exit Function If Len(Trim$(Ma)) = 0 Then Exit Function If (bNoChange) Then Rs = bxdbConnect.Execute("Select * From " & Table_Name & " Where " & Truongma & "=N'" & Trim$(Ma) & "'") Else Rs = bxdbConnect.Execute(sChangeSql) End If If Rs.RecordCount > 0 Then If Rs.Fields(Truongten).Value "" Then Search_List = Trim$(Rs.Fields(Truongten).Value) Else Search_List = "" End If Else Search_List = "" End If Rs.Close() Rs = Nothing End Function Public Function Search_ListD(ByVal Table_Name As String, ByVal Truongma As String, ByVal Ma As Object, ByVal Truongten As String, Optional ByVal DK_Loc As String = "", Optional ByVal bNoChange As Boolean = True, Optional ByVal sChangeSql As String = "") As String Dim Rs As ADODB.Recordset If Ma = vbNullString Then Exit Function If Len(Trim$(Ma)) = 0 Then Exit Function If (bNoChange) Then Rs = bxdbConnect.Execute("Select * From " & Table_Name & " Where " & Truongma & "=N'" & Trim$(Ma) & "'" & " and convert(char(5),NgayThang,3) = " & "convert(char(5),'" & DK_Loc & " ',3)") ' and tgVaoBen = '" & Trim(Ma2) & "'") Else Rs = bxdbConnect.Execute(sChangeSql) End If If Rs.RecordCount > 0 Then If Rs.Fields(Truongten).Value "" Then Search_ListD = Trim$(Rs.Fields(Truongten).Value) Else Search_ListD = "" End If Else Search_ListD = "" End If Rs.Close() Rs = Nothing End Function Public Sub Dm_Validate(ByVal sMa As String, ByVal sTen As String, ByVal SBang As String, ByVal Object1 As Object, Optional ByVal Object2 As Object = vbNullString, Optional ByVal dk As String = "", Optional ByVal Dk_loc As String = "") Dim Textten As String Dim sqlstr As String Dim frmListDicDanhMuc As New frmList_DicDanhmuc sqlstr = "select * from " & SBang If Dk_loc "" Then sqlstr = sqlstr & Dk_loc End If sqlstr = sqlstr & " order by " & sMa If Dk_loc "" Then SBang = "(select * from " & SBang & " " & Dk_loc & ") as " & SBang End If If dk "" Then Textten = Search_List(dk, sMa, Object1.text, sTen) If dk = "" Then Textten = Search_List(SBang, sMa, Object1.text, sTen) If Len(Textten) = 0 Then With frmListDicDanhMuc .Userinput = Trim$(Object1.text) .psDic_Ma = sMa .psDic_Ten = sTen .psDic_Table = sqlstr .psDic_Name = SBang .ShowDialog() End With Object1.text = frmListDicDanhMuc.psResult If Not Object2 Is Nothing Then Object2 = Trim$(frmListDicDanhMuc.psTenResult) Else If Not Object2 Is Nothing Then Object2 = Trim$(Textten) End If frmListDicDanhMuc.Dispose() End Sub Public Function ConvertF(ByVal Ngay As String) As String Dim Rs As ADODB.Recordset Rs = bxdbConnect.Execute("select convert(smalldatetime,'" & Ngay & "',103) as _Value ") ConvertF = Rs.Fields("_value").Value End Function Public Sub ShowReport(ByVal strReportName As String, ByVal ds As DataSet) Dim strReportNamerpt As String = strReportName & ".rpt" ds.WriteXmlSchema(strReportName & ".xml") Dim rpt As New CrystalDecisions.CrystalReports.Engine.ReportDocument rpt.Load(strReportNamerpt) rpt.SetDataSource(ds) rpt.Refresh() On Error Resume Next Dim frm As New frmReportPreview(strReportNamerpt) frm.CrystalReportViewer.ShowRefreshButton = False frm.CrystalReportViewer.ShowGroupTreeButton = False frm.CrystalReportViewer.ReportSource = rpt frm.Show() End Sub Public Sub ShowTicketReport(ByVal strReportName As String, ByVal ds As DataSet) Dim i As Long Dim strReportNamerpt As String = strReportName & ".rpt" ds.WriteXmlSchema(strReportName & ".xml") End Sub End Module 2- Đoạn chương trình Form đăng nhập. Public Class frmLogin Inherits BaseForm Dim sRs As ADODB.Recordset Public OK As Boolean Private Sub cmd_OK_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmd_OK.Click If Not ConnectDB(txtServer.Text, cboDatabase.Text) Then MsgBox("Không kết nối được cơ sở dự liệu! Hãy kiểm tra lại các thông số", MsgBoxStyle.OKOnly, "THÔNG BÁO") Else If TestPass(txtUser.Text, txtPassword.Text) = True Then OK = True SaveSetting(AppTitle, "Setting\Connect", "SERVER", txtServer.Text) SaveSetting(AppTitle, "Setting\Connect", "DATABASE", cboDatabase.Text) SaveSetting(AppTitle, "Setting\Connect", "USER", txtUser.Text) SaveSetting(AppTitle, "Setting\Connect", "YEAR", spinYear.Text) year = spinYear.Text Me.Hide() Else Me.Close() End If End If End Sub Private Function TestPass(ByVal User As String, ByVal pass As String) As Boolean Dim rs As ADODB.Recordset TestPass = False rs = bxdbConnect.Execute("select * from tbl_User where UserName = '" & User & "' and Password='" & pass & "'") If rs.RecordCount > 0 Then bxsCurrUser = rs.Fields("ID").Value TestPass = True Else If MsgBox("Kiểm tra lại, tên người dùng hoặc mật khẩu không chính xác!", MsgBoxStyle.OKOnly, "THÔNG BÁO") = MsgBoxResult.OK Then Exit Function Else End If End If rs = Nothing End Function Private Sub frmLogin_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.Load If GetConfigSystem(SysParameter.pServer) "" Then txtServer.Text = GetConfigSystem(SysParameter.pServer) cboDatabase.Text = GetConfigSystem(SysParameter.pDatabase) txtUser.Text = GetConfigSystem(SysParameter.pUserName) spinYear.Text = GetConfigSystem(SysParameter.pYear) txtPassword.Text = "" End If End Sub Private Sub cboDatabase_Load() Dim cnn As ADODB.Connection Dim rs As ADODB.Recordset cnn = New ADODB.Connection cnn.CursorLocation = ADODB.CursorLocationEnum.adUseClient cnn.Open("Provider=SQLOLEDB.1;persist Security Info=false;user ID=sa;initial catalog = master;data source = " & txtServer.Text) cnn.CommandTimeout = 0 rs = cnn.Execute("select name from sysdatabases order by name") cboDatabase.Properties.Items.Clear() cboDatabase.Text = GetConfigSystem(SysParameter.pDatabase) Do While Not rs.EOF cboDatabase.Properties.Items.Add(rs.Fields("Name").Value) rs.MoveNext() Loop rs.Close() End Sub Private Sub cboDatabase_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles cboDatabase.Click Call cboDatabase_Load() End Sub Private Sub cmd_Cancel_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmd_Cancel.Click End End Sub End Class 3- Đoạn chương trình cập nhật thông tin nhân viên. Public Class frmNhanVien Inherits BaseForm Friend ADDEDIT As ADD_EDIT Public MaID As String Dim Rs As ADODB.Recordset Dim msg As String Public GT As String Private Sub frmNhanVien_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.Load If ADDEDIT = RootPro.ADD_EDIT.Edit Then Rs = bxdbConnect.Execute("select * from tbl_NhanVien where MaNhanVien = '" & MaID & "'") Me.txtMaNhanVien.Text = Rs.Fields("MaNhanVien").Value Me.txtHoTen.Text = Rs.Fields("HoTen").Value Me.txtNamSinh.EditValue = Rs.Fields("NamSinh").Value If Rs.Fields("GioiTinh").Value = "Nam" Then Me.chkNam.Checked = True Me.chkNu.Checked = False Else Me.chkNam.Checked = False Me.chkNu.Checked = True End If Me.txtDiaChi.Text = Rs.Fields("DiaChi").Value Me.txtDienThoai.Text = Rs.Fields("DienThoai").Value Rs = Nothing End If End Sub Function Check(ByRef msg As String) As Boolean Check = True If Me.txtMaNhanVien.Text = vbNullString Then msg = msg & " Mã nhân viên" Check = False Me.txtMaNhanVien.Focus() Exit Function End If If Me.txtHoTen.Text = vbNullString Then msg = msg & " Họ đệm nhân viên" Check = False Me.txtHoTen.Focus() Exit Function End If If ADDEDIT = RootPro.ADD_EDIT.Add Then Rs = bxdbConnect.Execute("select count(*) as Count from tbl_NhanVien where MaNhanVien = '" & Me.txtMaNhanVien.Text & "'") If Rs.Fields("Count").Value 0 Then msg = " Mã nhân viên này đã có, nhập lại mã khác! " Check = False Me.txtMaNhanVien.Focus() Exit Function End If Rs = Nothing End If If ADDEDIT = RootPro.ADD_EDIT.Edit Then Rs = bxdbConnect.Execute(" select count(*) as Count from tbl_NhanVien where MaNhanVien = '" & Me.txtMaNhanVien.Text & "'") If Rs.Fields("Count").Value 0 And Me.txtMaNhanVien.Text MaID Then msg = " Mã nhân viên này đã có, nhập lại mã khác! " Check = False Me.txtMaNhanVien.Focus() Exit Function End If Rs = Nothing End If End Function Private Sub cmd_OK_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmd_OK.Click On Error GoTo ERR msg = "Bạn phải nhập" If Not Check(msg) Then MsgBox(msg, vbInformation, AppTitle) Exit Sub End If bxdbConnect.BeginTrans() If Me.chkNam.Checked = True Then GT = "Nam" Else GT = "Nữ" End If Select Case ADDEDIT Case RootPro.ADD_EDIT.Add Call bxdbConnect.Execute("insert into tbl_NhanVien (MaNhanvien,HoTen,NamSinh,GioiTinh,DiaChi,DienThoai)" & _ " values ( " & _ "N'" & Me.txtMaNhanVien.Text & "', " & _ "N'" & Me.txtHoTen.Text & "', " & _ " convert(datetime,'" & Me.txtNamSinh.EditValue & "',103), " & _ "N'" & GT & "', " & _ "N'" & Me.txtDiaChi.Text & "', " & _ "'" & Me.txtDienThoai.Text & "')") Case RootPro.ADD_EDIT.Edit Call bxdbConnect.Execute("update tbl_NhanVien set " & _ " MaNhanVien = N'" & Me.txtMaNhanVien.Text & "', " & _ " HoTen = N'" & Me.txtHoTen.Text & "', " & _ " NamSinh = convert(datetime,'" & Me.txtNamSinh.EditValue & "',103), " & _ " GioiTinh = N'" & GT & "', " & _ " DiaChi = N'" & Me.txtDiaChi.Text & "', " & _ " DienThoai = '" & Me.txtDienThoai.Text & "' " & _ " where MaNhanVien = '" & MaID & "'") End Select bxdbConnect.CommitTrans() MaID = Me.txtMaNhanVien.Text Me.Close() Exit Sub ERR: MsgBox(Err.Description) On Error Resume Next bxdbConnect.RollbackTrans() End Sub End Class 4- Đoạn chương trình tìm kiếm thông tin xe. Public Class frmXeSearch Inherits DevExpress.XtraEditors.XtraForm Dim Rs As ADODB.Recordset Dim dA As New OleDb.OleDbDataAdapter Dim ds As New DataSet Dim tblName As String = "tbl_Xe" Private Sub cmdTimKiem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdTimKiem.Click If Me.RadioGroup.Properties.Items(Me.RadioGroup.SelectedIndex).Value = 1 Then Rs = bxdbConnect.Execute("select * from tbl_Xe where BKS like N'%" & Me.txtTimKiem.Text & "%'") dA = New OleDb.OleDbDataAdapter ds = New DataSet dA.Fill(ds, Rs, tblName) Me.GridControl.DataSource = ds.Tables(tblName) With GridView .Columns("LoaiXe").Caption = "Loại xe" .Columns("MauXe").Caption = "Màu xe" .Columns("SoGhe").Caption = "Số ghế" .Columns("tgVaoDK").Caption = "Giờ vào ĐK" .Columns("tgXuatDK").Caption = "Giờ xuất ĐK" .Columns("PhiBen").Caption = "Phí bến" .Columns("BKS").Caption = "Mã nhân viên" End With End If If Me.RadioGroup.Properties.Items(Me.RadioGroup.SelectedIndex).Value = 2 Then Rs = bxdbConnect.Execute("select * from tbl_Xe where LoaiXe like N'%" & Me.txtTimKiem.Text & "%'") dA = New OleDb.OleDbDataAdapter ds = New DataSet dA.Fill(ds, Rs, tblName) Me.GridControl.DataSource = ds.Tables(tblName) With GridView .Columns("LoaiXe").Caption = "Loại xe" .Columns("MauXe").Caption = "Màu xe" .Columns("SoGhe").Caption = "Số ghế" .Columns("tgVaoDK").Caption = "Giờ vào ĐK" .Columns("tgXuatDK").Caption = "Giờ xuất ĐK" .Columns("PhiBen").Caption = "Phí bến" .Columns("BKS").Caption = "Mã nhân viên" End With End If If Me.RadioGroup.Properties.Items(Me.RadioGroup.SelectedIndex).Value = 0 Then Rs = bxdbConnect.Execute("select * from tbl_Xe where " & _ " BKS like N'%" & Me.txtTimKiem.Text & "%' " & _ " or LoaiXe like N'%" & Me.txtTimKiem.Text & "%'" & _ " or MauXe like N'%" & Me.txtTimKiem.Text & "%'" & _ " or SoGhe like '%" & Me.txtTimKiem.Text & "%'" & _ " or tgVaoDK like '%" & Me.txtTimKiem.Text & "%'" & _ " or PhiBen like '%" & Me.txtTimKiem.Text & "%'" & _ "or tgXuatDK like '%" & Me.txtTimKiem.Text & "%'") dA = New OleDb.OleDbDataAdapter ds = New DataSet dA.Fill(ds, Rs, tblName) Me.GridControl.DataSource = ds.Tables(tblName) With GridView .Columns("LoaiXe").Caption = "Loại xe" .Columns("MauXe").Caption = "Màu xe" .Columns("SoGhe").Caption = "Số ghế" .Columns("tgVaoDK").Caption = "Giờ vào ĐK" .Columns("tgXuatDK").Caption = "Giờ xuất ĐK" .Columns("PhiBen").Caption = "Phí bến" .Columns("BKS").Caption = "Mã nhân viên" End With End If End Sub End Class 5- Đoạn chương trình Form báo cáo thông tin xe. Public Class frmXeReport Inherits DevExpress.XtraEditors.XtraForm Dim Rs As New ADODB.Recordset Dim dA As New OleDb.OleDbDataAdapter Dim dS As New DataSet Dim tblName As String = "tbl_Xe" Private Sub cmdTimKiem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdTimKiem.Click Dim rptName As String Rs = bxdbConnect.Execute("select * from tbl_Xe ") dS = New DataSet dA.Fill(dS, Rs, "rptXe") Call ShowReport("rptXe", dS) Me.Dispose(True) End Sub Private Sub frmNhanVienReport_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.Load Rs = bxdbConnect.Execute("select * from tbl_Xe order by 1") dS = New DataSet dA.Fill(dS, Rs, tblName) Me.GridControl.DataSource = dS.Tables(tblName) Rs = Nothing End Sub End Class

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

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