Xây dựng cơ sở dữ liệu GIS sơ đồ địa bàn phường Vĩnh Thọ - TP Nha Trang

LỜI NÓI ĐẦUTrước đây, GIS ứng dụng vào lĩnh vực số hóa bản đồ. Tuy nhiên trong những năm gần đây GIS đã được ứng dụng nhiều trong công tác phân tích, xử lý, cập nhật và quản lý dữ liệu cho các lĩnh vực khác nhau. Khoa học thông tin địa lý đã và đang trong việc phân tích và xử lý và quản lý số liệu. Do vậy, ứng dụng GIS vào công tác quản lý trên địa bàn tỉnh, phường sẽ dễ dàng kiểm soát các biến động và cập nhật các thông tin trên đối tượng đặc biệt và hộ khẩu là một giải pháp hữu hiệu. Dưới sự hướng dẫn của giáo viên, Thạc sỹ Nguyễn Thủy Đoan Trang, trong thời gian qua, em đã có dịp tìm hiểu và xây dựng cơ sở dữ liệu GIS sơ đồ địa bàn phường Vĩnh Thọ . Qua đợt thực tập này, em xin gửi lời cảm ơn chân thành tới cô Nguyễn Thủy Đoan Trang, giáo viên trực tiếp hướng dẫn đề tài đã tận tình giúp đỡ, chỉ bảo em hoàn thành đề tài. Em xin cảm ơn tới thầy cô của khoa Công Nghệ Thôg Tin, trường Đại học Nha Trang đã tạo điều kiện tốt cho em thưc hiện đề tài. Em xin cảm ơn tới chú Ngô Văn Thảo, trưởng Công An phường Vĩnh Thọ đã tạo điều kiện tốt và cung cấp những tư liệu cần thiết giúp ích cho em trong quá trình thưc hiện đề tài. Mặc dù đã có nhiều cố gắng nhưng trong quá trình thực hiện đề tài em không tránh khỏi những thiếu sót, rất mong quý thầy cô và các bạn quan tâm đóng góp ý kiến để đề tài thực tập tốt nghiệp ngày càng hoàn thiện hơn. Nha Trang, ngày 15 tháng 06 năm 2010 MỤC LỤCLỜI NÓI ĐẦU 4 MỤC LỤC 5 MỞ ĐẦU 7 ĐẶT VẤN ĐỀ 7 MỤC ĐÍCH - YÊU CẦU ĐỀ TÀI. 8 1. Mục tiêu. 8 2. Yêu cầu. 8 PHẠM VI TÌM HIỂU 8 CHƯƠNG 1. TỔNG QUAN VỀ HỆ THỐNG THÔNG TIN ĐỊA LÝ 9 1. MỘT SỐ KHÁI NIỆM CƠ BẢN 9 1.1 Giới thiệu. 9 1.2 Thông tin địa lý. 9 1.3 Hệ thống thông tin địa lý. 9 1.4 Khoa học thông tin địa lý. 11 1.5 Các thành phần của GIS. 12 2. CHỨC NĂNG CỦA GIS. 13 2.1 Thu thập dữ liệu. 13 2.2 Lưu trữ dữ liệu. 14 2.3 Phân tích dữ liệu. 14 2.4 Hiển thị dữ liệu. 15 3. ỨNG DỤNG CỦA GIS. 15 4. DỮ LIỆU GIS. 17 5. THU THẬP VÀ XỬ LÝ DỮ LIỆU ĐỊA LÝ 20 5.1 Thu thập dữ liệu địa lý. 20 5.2 Nhập dữ liệu từ bản đồ giấy. 20 5.3 Chuyển đổi cấu trúc dữ liệu. 21 5.4 Tiền xử lý dữ liệu bản đồ vector. 22 CHƯƠNG 2. NGÔN NGỮ LẬP TRÌNH AVENUE 24 1. GIỚI THIỆU VỀ NGÔN NGỮ AVENUE 24 1.1 Giới thiệu. 24 1.2 Đặc điểm của ngôn ngữ Avenue. 24 2. CẤU TRÚC NGÔN NGỮ AVENUE 24 2.1 Các kiểu đối tượng dữ liệu trong Avenue. 24 2.2 Các toán tử trong Avenue. 33 2.3 Biến và tầm vực của biến. 34 2.4 Các phát biểu. 35 2.5 Điều khiển giữa các Script 38 2.6 Đối tượng AV và từ khóa SELF. 39 2.7 Lớp MsgBox và Dialog. 40 CHƯƠNG 3. PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG THÔNG TIN 44 1. KHẢO SÁT HIỆN TRẠNG 44 1.1 Hiện trạng cơ sở hạ tầng. 44 1.2 Tình hình xã hội 44 1.3 Đặc tả bài toán. 45 2. THIẾT KẾ DỮ LIỆU 46 2.1 Dữ liệu không gian. 46 2.2 Dữ liệu thuộc tính. 51 2.2.1 Mô hình quan niệm dữ liệu. 51 2.2.2 Mô hình tổ chức dữ liệu. 52 2.2.3 Mô hình vật lý dữ liêu. 53 CHƯƠNG 4. XÂY DỰNG CHƯƠNG TRÌNH 63 1 KẾT NỐI DỮ LIỆU VỚI AVENUE 63 2 XÂY DỰNG GIAO DIỆN 68 3 XÂY DỰNG CHỨC NĂNG 87 CHƯƠNG 5. HƯỚNG DẪN SỬ DỤNG 101 5.1 CẤU HÌNH MÁY TÍNH 101 5.2 SỬ DỤNG CHỨC NĂNG VÀ CÁC CÔNG CỤ 102 5.3 SỬ DỤNG FONT CHỮ TIẾNG VIỆT TRONG ARCVIEW . 104 KẾT LUẬN 107 KẾT QUẢ THỰC HIỆN 107 HƯỚNG PHÁT TRIỂN 109 PHỤC LỤC 110 TÀI LIỆU THAM KHẢO 115 MỞ ĐẦUĐẶT VẤN ĐỀTrong thế kỷ 21, cùng với sự phát triển của khoa học công nghệ mà đặt biệt là lĩnh vực công nghệ thông tin ngày càng được ứng dụng rộng rãi trong cuộc sống, nhu cầu về thông tin về lãnh thổ, quy hoạch phát triển, thông tin về văn hóa, kinh tế xã hội, an ninh xã hội ngày càng lớn, nó đòi hỏi ngừơi quản lý phải biết nắm bắt, phân loại và xử lý thông tin một cách khoa học. Do vậy mục tiêu là phải xây dựng một hệ thống cơ sở dữ liệu thống nhất, từ đó cung cấp các thông tin hỗ trợ giúp quyết định phát triển kinh tế địa phương thực hiện công nghiệp hóa, hiện đại hóa đất nước. Ngày nay, đã có nhiều phần mềm ứng dụng ra đời thay thế cho các thao tác thủ công đem lại nhiều hiệu quả cao. Trong lỉnh vực an ninh trật tự xã hội, thì khối lượng thông tin là vô cùng lớn, nhưng yêu cầu phải quản lý và cung cấp thông tin chính xác cho người quản lý. Việc ứng dụng công nghệ thông tin trong quản lý an ninh trật tự khu vực ở nước ta chỉ là những bước đi ban đầu, khi mọi thao tác chỉ vẫn chỉ là thủ công gây khó khăn cho việc lưu trữ, truy xuất thông tin. Đối tượng tội phạm cần phải được theo dõi các thông tin thường xuyên, khối lượng thông tin cần phải lưu trữ, cập nhật là rất lớn bao gồm những thông tin vị trí ở, hình dạng, thông tin vể gia đình của các đối tượng. Nên cần đảm bảo độ chính xác cao, tìm kiếm dễ dàng và nhanh chóng hơn. Nhất là trong xu thế hội nhập khu vực và quốc tế thì việc ứng dụng và phát triển công nghệ tin học cho tất cả các lĩnh vực nói chung, lĩnh vực quản lý an ninh khu vực là một tất yếu khách quan. Hệ thống thông tin địa lý (GIS) là một trong những công cụ hỗ trợ đắc lực, hiệu quả nhất làm cơ sở cho lãnh đạo địa phương hoạch định chính sách, ra quyết định một cách chính xác, nhanh chóng trên cơ sở hệ thống dữ liệu tự nhiên và kinh tế - xã hội được lưu trữ, cập nhật. Trong lĩnh vực quản lý tài nguyên và môi trường nó là công cụ đắc lực cho phép phân tích, đánh giá đầy đủ hiện trạng và tiềm năng các nguồn lực tài nguyên thiên nhiên (nhân khẩu, đất đai, khoáng sản, nguồn nước, môi trường .) để từ đó định hướng khai thác, quản lý hiệu quả, tiết kiệm nhất các nguồn lực đó. ArcView Gis là một trong những phần mềm trong việc quản lý cơ sở dữ liệu không gian và cơ sở dữ liệu thuộc tính. Cho phép người dùng nắm bắt thông tin chính xác về địa bàn của địa phương và truy xuất dữ liệu phục vụ cho các công tác liên quan. Nhằm đáp ứng yêu cầu công tác quản lý tốt hộ khẩu và tình hình an ninh trật tự, kinh tế xã hội. Ứng dụng GIS vào công tác quản lý trên địa bàn tỉnh, phường sẽ dễ dàng kiểm soát các biến động và cập nhật các thông tin trên đối tượng đặc biệt và hộ khẩu. Từ những yêu cầu thực tế nêu trên, đề tài “Xây dựng cơ sở dữ liệu GIS sơ đồ địa bàn phường Vĩnh Thọ - TP.Nha Trang” sẽ giải quyết phần nào những bất cập trong công tác quản lý thông tin hiện nay của phường. MỤC ĐÍCH - YÊU CẦU ĐỀ TÀI1. Mục tiêuChuyển đổi, thiết kế, xây dựng cơ sở dữ liệu không gian và thuộc tính vào hệ thống phần mềm ArcView3.x Gis phục vụ công tác quản lý thông tin nhân khẩu và đối tượng tội phạm của phường Vĩnh Thọ.Ứng dụng GIS xây dựng công cụ hổ trợ công tác quản lý thông tin nhân khẩu.Góp phần hiện đại hoá việc cập nhật, các thông tin về nhân khẩu và các đối tượng phạm tội của phường. 2. Yêu cầuTìm hiểu công nghệ GIS, chủ yếu trên phần mềm ArcView, kết nối ArcView với hệ quản trị cơ sở dữ liệu SQL.Khảo sát hiện trạng tại đồn công an phường Vĩnh Thọ - TP. Nha TrangSố hóa bản đồ sơ đồ địa bàn phường Vĩnh Thọ.Xây dựng các chức năng phục vụ công tác quản lý địa bàn phường và công tác phòng chống tội phạmChương trình dễ sử dụng. PHẠM VI TÌM HIỂU Khảo sát hiện trạng tại đồn công an phường Vĩnh Thọ. Từ đó, phân tích thiết kế cơ sở dữ liệu và xây dựng chương trình quản lý. Chương trình hoàn thành sẽ được chạy thử tại địa bàn của phường Vĩnh Thọ Để xây dựng chương trình cần tìm hiểu phần mềm ArcView3.x, ngôn ngữ lập trinh Avenue, sử dụng hệ quản trị cơ sở dữ liệu SQL Server 2005 để phân tich và thiết kế cơ sở dữ liệu.

doc115 trang | Chia sẻ: lvcdongnoi | Lượt xem: 2789 | Lượt tải: 3download
Bạn đang xem trước 20 trang tài liệu Xây dựng cơ sở dữ liệu GIS sơ đồ địa bàn phường Vĩnh Thọ - TP Nha Trang, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
1 Len()=1 Tên CBSH Nvarchar 50 Mã CBSH: Số thứ tự của chi bộ đảng trong khu vực phường. Tên CBSH: Tên chi bộ . Ví dụ về bảng dữ liệu CHI BỘ SH: Mã CBSH Tên CBSH 1 Chi bộ Cù Lao Thường 2 Chi bộ lạc Thiện 3 Chi bộ Cù Lao Trung ĐẢNG VIÊN(Mã NK, Ngày VĐ, Ngày CT, Mã CBSH) Tên thuộc tính Kiểu dữ liệu Kích thước Ràng buộc toàn vẹn Mã NK (K) Nvarchar 7 Lookup(NHANKHAU) Ngày VĐ Datetime < Datetime()) Ngày CT Datetime < Datetime() Mã CBSH Nvarchar 1 Lookup(CHIBOSH) Phải có: Ngày CĐ < Ngày CT. Ví dụ về bảng dữ liệu ĐẢNG VIÊN: Mã NK Ngày VĐ Ngày CT Mã CBSH VT01201 12/5/1992 12/12/1992 1 VT01502 12/5/1997 12/12/1997 2 LÝ DO(Mã LD, Tên LD) Tên thuộc tính Kiểu dữ liệu Kích thước Ràng buộc toàn vẹn Mã LD (K) Nvarchar 2 Len()=2 Tên LD Nvarchar 50 Mã LD: Số thứ tự của lý do. Ví dụ về bảng dữ liệu LÝ DO: Mã LD Tên LD 01 Đi nghĩa vụ 02 Đi làm ăn xa TẠM VẮNG( Mã NK, Mã LD, Ngày đi, Ngày về) Tên thuộc tính Kiểu dữ liệu Kích thước Ràng buộc toàn vẹn Mã NK (K) Nvarchar 7 Lookup(NHANKHAU) Mã LD (K) Nvarchar 2 Lookup(LY DO) Ngày đi Datetime < Datetime() Ngày về Datetime < Datetime() Phải có Ngày đi < Ngày về. Ví dụ về bảng dữ liệu TẠM VẮNG: Mã NK Mã LD Ngày đi Ngày về VT01001 02 2/2/2008 12/12/2009 VT01501 01 2/2/2009 12/12/2009 CẤP BẬC(Mã CB, Tên CB) Tên thuộc tính Kiểu dữ liệu Kích thước Ràng buộc toàn vẹn Mã CB (K) Nvarchar 2 Len()=2 Tên CB Nvarchar 30 Mã CB: Số thứ tự của cấp bậc trong Quân đội Nhân dân Viêt Nam. Ví dụ về bảng dữ liệu CẤP BẬC: Mã CB Tên CB 01 Binh nhi 02 Binh nhất BINH CHỦNG(Mã BC,Tên BC) Tên thuộc tính Kiểu dữ liệu Kích thước Ràng buộc toàn vẹn Mã BC (K) Nvarchar 1 Len()=1 Tên BC Nvarchar 30 Mã BC: Số thứ tự của binh chủng trong Quân đội Nhân dân Việt Nam Ví dụ về bảng dữ liệu BINH CHỦNG: Mã BC Tên BC 1 Bộ binh 2 Không quân CC BINH(Mã NK, Ngày NN, Ngày XN, Mã BC, Mã CB) Tên thuộc tính Kiểu dữ liệu Kích thước Ràng buộc toàn vẹn Mã NK (K) Nvarchar 7 Lookup(NHANKHAU) Ngày NN Datetime < Datetime()) Ngày XN Datetime < Datetime() Mã BC Nvarchar 1 Lookup(BINH CHỦNG) Mã CB Nvarchar 2 Lookup(CẤP BẬC) Phải có: Ngày NN < Ngày XN. Ví dụ về bảng dữ liệu CC BINH: Mã NK Ngày NN Ngày XN Mã CB Mã BC VT01201 12/5/1972 12/12/1975 01 1 VT01502 12/5/1972 12/12/1975 05 1 QUAN HỆ(Mã NK1,Mã NK2, Mã LGT) Tên thuộc tính Kiểu dữ liệu Kích thước Ràng buộc toàn vẹn Mã NK1 (K) Nvarchar 7 Lookup(NHANKHAU) Mã NK2 (K) Nvarchar 7 Lookup(NHAN KHAU) Mã LGT Nvarchar 1 Lookup(LOAI GT) Ví dụ về bảng dữ liệu QUAN HỆ: Mã NK1 Mã NK2 Mã LGT VT01001 VT01002 1 VT01001 VT01003 6 TỔ DÂN PHỐ(Mã TDP, Tên TDP) Tên thuộc tính Kiểu dữ liệu Kích thước Ràng buộc toàn vẹn Mã TDP (K) Nvarchar 1 Len()=1 Tên TDP Nvarchar 20 Mã TDP: Số thứ tự của tổ dân phố trong địa bàn phường, Theo khảo sát thì phường Vĩnh Thọ có 8 tổ dân phố. Tên TDP: Tên tổ dân phố Ví dụ về bảng dữ liệu TỔ DÂN PHỐ: Mã TDP Tên TDP 1 Khu phô 1 2 Khu phố 2 … … 8 Khu phố 8 DƯỜNG(Mã đường, Tên đường) Tên thuộc tính Kiểu dữ liệu Kích thước Ràng buộc toàn vẹn Mã đường (K) Nvarchar 4 Len()=4 Tên đường Nvarchar 30 Mã đường: Viết tắt của tên đường. Ví dụ về bảng dữ liệu ĐƯỜNG: Mã đường Tên đường TTT Tôn Thất Tùng PVD Phạm Văn Đồng NDC Nguyễn Đình Chiểu KHÁCH TẠM TRÚ(Mã KH, Họ và tên, Giới tính, Ngày sinh, Số CMND, Mã huyện) Tên thuộc tính Kiểu dữ liệu Kích thước Ràng buộc toàn vẹn Mã KH (K) Nvarchar 3 Len()=3 Họ và tên KH Nvarchar 50 Giơi tính bit Ngày sinh Datetime Số CMND Nvarchar 10 Mã huyện Nvarchar 4 Lookup(HUYỆN) Ở đây quy ước nêu bit True: Nam, bit False: Nữ Ví dụ về bảng dữ liệu KHÁCH TẠM TRÚ: Mã KH Họ và tên KH Giới tính Ngày sinh Số CMND Mã huyện 001 Trần Đức Thuần True 1/1/1982 186750412 1201 002 Đặng Minh Sang True 5/6/1959 12123489 2503 TẠM TRÚ(Mã KH, Số sổ, Mã LD, Ngày đến, Ngày đi) Tên thuộc tính Kiểu dữ liệu Kích thước Ràng buộc toàn vẹn Mã KH (K) Nvarchar 3 Lookup(KHACHTTRU) Số sổ HK (K) Nvarchar 5 Lookup(SOHOKHAU) Mã LD (K) Nvarchar 2 Lookup(LYDO) Ngày đến Datetime < Datetime()) Ngày đi Datetime < Datetime() Phải có: Ngày đến < Ngày đi. Ví dụ về bảng dữ liệu TẠM TRÚ: Mã KH Số sổ Mã LD Ngày đến Ngày đi 001 VT012 04 12/5/2009 20/5/2009 002 VT015 06 12/5/2009 18/5/2009 LỖI VI PHẠM(Mã LVP, Tên LVP) Tên thuộc tính Kiểu dữ liệu Kích thước Ràng buộc toàn vẹn Mã LVP (K) Nvarchar 2 Len()=2 Tên LVP Nvarchar 50 Mã LVP: Số thứ tự của lỗi vi phạm. Ví dụ về bảng dữ liệu LỖI VI PHẠM: Mã LVP Tên LVP 01 Đánh nhau 02 Trộm cắp 03 Cướp giật 04 Buôn bán trái phếp HÌNH THỨC PHẠT(Mã HTP, Tên HTP) Tên thuộc tính Kiểu dữ liệu Kích thước Ràng buộc toàn vẹn Mã HTP (K) Nvarchar 2 Len()=2 Tên HTP Nvarchar 50 Mã HTP: Số thứ tự của hình thức xử phạt Ví dụ về bảng dữ liệu BINH CHỦNG: Mã HTP Tên HTP 01 Khiển trách 02 Cảnh cáo 03 Phạt tiền XỦ PHẠT(Mã NK, Số sổ, Mã LVP, Mã HTP, Ngày vi phạm, Ghi chú) Tên thuộc tính Kiểu dữ liệu Kích thước Ràng buộc toàn vẹn Mã NK (K) Nvarchar 7 Lookup(NHANKHAU) Số sổ HK (K) Nvarchar 5 Lookup(SOHOKHAU) Mã LVP (K) Nvarchar 2 Lookup(LOIVIPHAM) Mã HTP (K) Nvarchar 2 Lookup(HTPHAT) Ngày vi phạm Datetime Ghi chú Text Ví dụ về bảng dữ liệu XỬ PHẠT: Mã NK Số sổ HK Mã LVP Mã HTP Ngày vi phạm Ghi chú VT01201 VT012 01 02 12/12/2009 Uống rượu, gây gổ đánh nhau VT01501 VT015 04 03 12/12/2009 Buôn lậu LOẠI HGD(Mã LH, Tên LH) Tên thuộc tính Kiểu dữ liệu Kích thước Ràng buộc toàn vẹn Mã LH (K) Nvarchar 1 Len()=1 Tên LH Nvarchar 50 Mã HTP: Số thứ tự của loại hộ gia đình Ví dụ về bảng dữ liệu LOAI HGĐ: Mã LH Tên LH 1 Bình thường 2 Hộ gia đình văn hóa NHÂN KHẨU(Mã NK, Họ và tên, Tên thường gọi, Chủ hộ , Giới tính, Ngày sinh, Số CMND, Nghề nghiệp, Số sổ HK, Mã DT, Mã TDHV, Mã TG, Mã huyện) Tên thuộc tính Kiểu dữ liệu Kích thước Ràng buộc toàn vẹn Mã NK (K) Nvarchar 7 Len()=7 Họ và tên Nvarchar 50 Chủ hộ Bit Giới tính Bit Tên thường goi Nvarchar 20 Ngày sinh Datetime Số CMND Nvarchar 10 Nghề nghiệp Nvarchar 30 Số sô HK Nvarchar 5 Lookup(SÔHOKHAU) Mã TĐHV Nvarchar 1 Lookup(TĐHV) Mã huyện Nvarchar 4 Lookup(HUYỆN) Mã DT Nvarchar 2 Lookup(DÂN TỘC) Mã TG Nvarchar 2 Lookup(TÔN GIÁO) Mã NK: Năm ký tự đầu là Số sổ hộ khẩu, hai ký tự sau là số thứ tự của nhân khẩu trong hộ khẩu đó. Chủ hô: True là chủ hộ, False là có mối quan hệ với chủ hộ. NƠI CHUYỂN ĐẾN (Mã NK, Mã huyện, Ngày chuyển đến) Tên thuộc tính Kiểu dữ liệu Kích thước Ràng buộc toàn vẹn Mã NK (K) Nvarchar 7 Lookup(NHANKHAU) Mã huyện (K) Nvarchar 4 Lookup(HUYEN) Ngày chuyến đến Datetime Mã huyện: Mã huyện từ nơi chuyển đến. Ví dụ về bảng dữ liệu NƠI CHUYỂN ĐẾN: Mã NK Mã huyện Ngày chuyển đến VT01104 0302 12/12/2009 VT01506 0303 1/2/1998 NƠI CHUYỂN ĐI (Mã NK, Mã huyện, Ngày chuyển đi) Tên thuộc tính Kiểu dữ liệu Kích thước Ràng buộc toàn vẹn Mã NK (K) Nvarchar 7 Lookup(NHANKHAU) Mã huyện (K) Nvarchar 4 Lookup(HUYEN) Ngày chuyến đi Datetime Mã huyện: Mã huyện của nơi sê chuyển đến. Ví dụ về bảng dữ liệu NƠI CHUYỂN ĐI: Mã NK Mã huyện Ngày chuyển đi VT01303 0302 12/12/2006 VT01504 0303 1/2/2007 NƠI CẤP CMND (Mã NK, Mã tỉnh, Ngày cấp CMND) Tên thuộc tính Kiểu dữ liệu Kích thước Ràng buộc toàn vẹn Mã NK (K) Nvarchar 7 Lookup(NHANKHAU) Mã tỉnh (K) Nvarchar 2 Lookup(TỈNH) Ngày cấp CMND Datetime Mã tỉnh: Mã tỉnh của nơi cấp CMND. Ví dụ về bảng dữ liệu NƠI CẤP CMND: Mã NK Mã tỉnh Ngày cấp CMND VT01104 03 12/12/1991 VT01507 03 1/2/2006 SỔ HỘ KHẨU( Số sổ HK, Số nhà, Diện tích nhà, Diện tích đất, Mã đường, Mã LH, Mã TDP). Tên thuộc tính Kiểu dữ liệu Kích thước Ràng buộc toàn vẹn Số sổ HK (K) Nvarchar 5 Len()=5 Số nhà Nvarchar 20 Diện tích nhà decimal(4, 2) Diện tích đất decimal(4, 2) Mã đường Nvarchar 4 Lookup(ĐƯỜNG) Mã TDP Nvarchar 1 Lookup(TODANPHO) Mã LH Nvarchar 1 Lookup(LOAIHGD) Số sổ HL: Số thứ tự của sổ hộ khẩu. Ví dụ về bảng dữ liệu SỔ HỘ KHẨU: Số sổ HK Số nhà Diện tích nhà Diện tích đất Mã đường Mã TDP Mã LH VT011 26KA 50 m2 100 m2 LT 2 1 VT015 121/12 100 m2 200 m2 PVD 6 3 CHƯƠNG 4. XÂY DỰNG CHƯƠNG TRÌNH 1 KẾT NỐI DỮ LIỆU VỚI AVENUE ArcView cho phép ta kết nối với các loại dữ liệu SQL như MS Access, MS SQL Server, Oracle, FoxPro... Trên hệ điều hành Window và WinNT, ArcView sử dụng cầu nối ODBC (Open Database Connectivety) để kết nối vào vào cơ sở dữ liệu SQL. Avenue dùng đối tượng SQLCon để thiết lập kết nối đến một cơ sở dữ. SQLCon kết nối đến cơ sở dữ liệu thông qua cầu nối ODBC. Chọn Start à Programs à Administrative Tools à Data Sources (ODBC). Chọn DataSource (ODBC). Hộp thoại ODBC Data Source xuất hiện như sau. Chọn vào Tab User DSN, và nhấn vào nút Add. Hộp thoại yêu cầu chọn nguồn dữ liệu như hình. Chọn SQL Server và nhấp vào nút Finish. Hôp thoại mới xuất hiện ta nhập tên CSDL SQL mình tạo và tên Server vào như sau: Nhấp Next để tiếp tục. Chọn Next tiếp tục và kiểm tra xem kết nối CSDL có thành công không. Chọn Test Data Source để kiểm tra việ kết nôi. Nếu kết nối thành công sẽ có thông bao sau. Trong ArcView để thữ hiện truy vấn CSDL SQL vừa kết nối ta sử dụng Extensions có sẵn. Các bước thực hiện như sau: Từ File àExtensions à Database Access àOK. Từ Project à Add Database Table à ODBC kết nối CSDL. Ta có thể viết các câu lệnh SQL, sau đó nhấn Query sẽ được kết quả hiển thị. Sử dụng câu lệnh kết nối SQL: theSQL=SQLCon.Find("VinhTho") theSQL.Login("nhatrang/") astring="Select * from DANTOC" theSQL.ExecuteSQL(astring) theVTab=VTab.MakeSQL(theSQL,"Select * from DANTOC") myTable=Table.Make(theVtab) myTable.setName("DANTOC") av.GetProject.AddDoc(mytable) mytable.GetWin.Open 2 XÂY DỰNG GIAO DIỆN Xây dựng giao diện Avenue Tạo ứng dụng tuỳ biến là cách thay đổi giao diện ArcView theo ý của người sử dụng, ArcView cho phép ta thêm mới, xoá, chỉnh sửa menu, button, tool thậm chí có thể thay đổi giao diện ArcView thành giao diện ngôn ngữ nào đó để phục vụ cho nhu cầu riêng của từng lĩnh vực, ở từng vùng. Để thêm mới, xoá, chỉnh sửa một menu, button, tool . Kích đôi vào cửa sổ giao diện ArcView như hình. Kích đôi vào đây để thay đổi các menu, button, tool, Popup menu Hộp thoại chỉnh sửa như hình sau Trong hộp thoại chỉnh sửa này ta có thể thực hiện các thao tác thêm mới, chỉnh sửa, xoá các điều kiển trên giao diện. Tạo giao diện mới Tạo mới một Menu Để tạo mới một Menu ta làm như sau: Mở hộp thoại chỉnh sửa. Chọn Menus trong Caterogy Nhấn vào nút New Menu. Một Menu có tên ngẫu nhiên là Menu mới được tạo ra. Kích đôi vào mục Label để đổi tên của Menu, đổi tên của menu là Tìm kiếm Để tạo mới một menu con cho menu này ta nhấn vào nút New Item. Một menu con có tên là Item được tạo ra. Doube click vào mục Label để đổi tên của Item này, đổi tên menu là Tìm đường. Đóng hộp thoại chỉnh sửa giao diện, ta thấy xuất hiện trên menu của ArcView một menu có tên là Tìm kiếm Khi ta chọn vào menu con Tìm đường ta không thấy có sự kiện nào xảy ra, điều này do ta chưa gán một script nào cho sự kiện chọn menu con này. Bây giờ ta tiến hành gán một script cho sự kiện chọn Menu con này. Mở hộp thoại chỉnh sửa giao diện Chọn memu con Tìm đường Kích đôi vào mục Click Kích đôi vào đây đặt nhãn Kích đôi vào đây để gán Script cho sự kiện kích Hộp thoại yêu cầu xác định script cho menu này xuất hiện. Trong hộp thoại này ta chọn Script Opentimtheoduong đã viết sẵn. theView = av.GetActiveDoc aDlog=av.FindDialog("TD") if(aDlog nil)then aDlog.Open else MsgBox.info("Không tìm thấy Tìm theo đường","Thông Báo") end Đòng giao diện soạn thảo Scripts, quay về cửa sổ giao diện khung nhìn, ta chọn vào menu con Tìm đường, lúc đó màn hình xuất hiện hộp thoại sau: Để xoá Menu Tìm kiếm ta vào hộp thoại chỉnh sửa giao diện, chọn Menu này và nhấn vào nút Delete. Tạo mới một Button Để tạo mới một button ta làm như sau Mở hộp thoại chỉnh sửa giao diện Chọn Buttons trong Caterogy Nhấn vào nút New. Một Button mới được tạo ra, button này chưa có Icon. Kích đôi vào mục Icon để chọn Icon cho button này. Double click vào đây để gán Icon Hộp thoại chọn Icon hiện ra như hình. Chọn Icon có tên là Star, nhấn vào nút OK Đặt Tooltip cho Button bằng cách Kích đôi vào mục Help, gõ vào dòng “So do phuong Vinh Tho//Sơ đồ phường Vĩnh Thọ” Đóng hộp thoại chỉnh sửa giao diện, ta thấy xuất hiện trên Buttonbar của ArcView một Button mới. Khi ta nhấn vào button mới này ta không thấy có sự kiện nào xảy ra, điều này do ta chưa gán một script nào cho sự kiện click của button này. Bây giờ ta tiến hành gán một script cho sự kiện click button này. Mở hộp thoại chỉnh sửa giao diện Chọn button mới tạo Kích đôi vào mục Click, hộp thoại yêu cầu xác định script cho menu này xuất hiện. Nhấn vào nút New trong hộp thoại Script Manager để tạo mới một script. Đặt tên cho script này là Button1 Trong giao diện soạn thảo script, ta gõ vào script sau. msgbox.info(“Đây là sơ đồ phường Vĩnh Thọ ” ,”Thông báo”) Đóng giao diện soạn thảo script, quay về của sổ giao diện khung nhìn, ta click vào Button mới tạo, lúc đó màn hình xuất hiện hộp thoại thông điệp như sau. Để xoá button mới tạo ta vào hộp thoại chỉnh sửa giao diện, chọn Button vừa tạo và nhấn vào nút Delete. Tạo mới một ToolMenu Để tạo mới một ToolMenu ta làm như sau Mở hộp thoại chỉnh sửa giao diện Chọn Tools trong Caterogy Nhấn vào nút Tool. Một Tool mới được tạo ra, Tool này chưa có Icon. Kích đôi vào mục Icon để chọn Icon cho Tool này. Hộp thoại chọn Icon hiện ra như hình. Chọn Icon có tên là Index, click vào nút OK Đặt Tooltip cho Tool bằng cách Kích đôi vào mục Help, gõ vào dòng “Xem khách sạn//Xem khach san” Với Tool ta có thể xét hình dạng của con trỏ chuột sau khi chọn Tool, để xét hình dạng con trỏ chuột ta Kích đôi và Cursor. Hộp thoại Picker xuất hiện như sau: Ta chọn vào Cursors.Bullseye và nhấn vào nút OK Đóng hộp thoại chỉnh sửa giao diện, ta thấy xuất hiện trên Toolbar của ArcView một Tool mới. Tool mới tạo Khi ta nhấn vào Tool mới này sau đó đưa trỏ chuột vào khung nhìn ta thất trỏ chuột đổi sang dạng vòng tròn trong rỗng, nhấn vào một vị trí bất kỳ trên khung nhìn ta không thấy có sự kiện nào xảy ra, điều này do ta chưa gán một script nào cho sự kiện Apply của Tool này. Bây giờ ta tiến hành gán một script cho sự kiện Apply Tool này. Mở hộp thoại chỉnh sửa giao diện Chọn Tool mới tạo Kích đôi vào mục Apply, hộp thoại yêu cầu xác định script cho menu này xuất hiện. Gán Scripts “Xemnhanhthongtinkhachsan” có sẵn. Đóng giao diện soạn thảo script, quay về của sổ giao diện khung nhìn, ta nhấn vào Tool mới tạo, đưa trỏ chuột vào khung nhìn và chọn khách sạn cần xem, rồi click chuột vào ta thấy hộp thoại thông điệp xuất hiện như sau: Để xoá Tool vừa tạo ta vào hộp thoại chỉnh sửa giao diện chọn Tool này và nhấn vào nút Delete. Tool cũng có sự kiện click nhưng sự kiện này ta ít dùng, sự kiện click của Tool chỉ xảy ra khi ta nhấn vào Tool, còn sự kiện Apply xảy ra khi ta chọn Tool và nhấn vào khung nhìn. Tạo mới một Popup Menu Để tạo mới một popup menu ta làm như sau: Mở hộp thoại chỉnh sửa giao diện Chọn Popups trong Caterogy Trong hộp thoại chỉnh sửa giao diện ta thấy có sẵn một Popup Memu có tên là Menu, ta chọn nó và xoá nó bằng Click vào nút Delete. Nhấn vào nút New Popup. Một Popup Menu mới được tạo ra. Nhấn vào nút New Item để tạo mới một menu con cho Popup menu này. Vào mục Label đặt tên cho menu con này là phóng to Đóng hộp thoại chỉnh sửa, ra khung nhìn, kích chuột phải vào khung nhìn ta thấy xuất hiện như sau Khi ta nhấn vào Popup1 ta không thấy có sự kiện nào xảy ra, điều này do ta chưa gán một script nào cho sự kiện click của Phong to. Bây giờ ta tiến hành gán một script cho sự kiện click của Phong to. Mở hộp thoại chỉnh sửa giao diện Chọn phóng to Kích đôi vào mục Click, hộp thoại yêu cầu xác định script cho menu này xuất hiện. Chon Scripts View.ZoomOut Đóng giao diện soạn thảo script, quay về của sổ giao diện khung nhìn, nhấn phải chuột vào khung nhìn, click vào phóng to, lúc đó bản đồ sẽ được phóng to lên sau mỗi lần click. Để xoá Popup menu mới tạo ta vào hộp thoại chỉnh sửa giao diện, chọn Popup menu này và nhấn vào nút Delete. Ngoài ra các Menu, Button, Tool, Popup Menu còn các thuộc tính sau: Disabled: Xét tính kích hoạt hay không kích hoạt cho đối tượng Help Topic: Nội dung giúp đỡ Invisible: Hiển thị hay không hiển thị đối tượng này Tag: Một chuỗi được gán vào đối tượng để phân biệt với đối tượng khác Update: Update là sự kiện xảy ra khi ta thực hiện một thao tác nào đó, để có sự kiện này ta phải gán Script vào sự kiện này cho đối tượng. Sự kiện Update Đặt tag Xét kích hoạt hay không Đặt help Lập trình giao diện Dialog là một giao diện để xây dựng các ứng dụng trong ArcView. Dialog cho phép tổ chức các nhiệm vụ đơn hoặc một tập các nhiệm vụ quan hệ trên các cửa sổ riêng, giống như cách tổ chức các nhiệm vụ có quan hệ với nhau trong cùng một menu hoặc trên thanh button. Dialog Designer là một Extension do ArcView cung cấp. Dialog Designer chỉ hỗ trợ xây dựng các nhiệm vụ trên các Dialog mới chứ không cho phép sửa đổi các dialog sẵn có của ArcView. Lợi ích của việc dùng Dialog Designer là cho phép tạo ra các hộp thoại giao tiếp với người dùng theo thiết kế riêng. Để thiết kế được giao diện ta kích hoạt Extension là Dialog Designer: Từ menu File trong cửa sổ Project, chọn mục Extension..., Kích chọn Dialog Designer để thêm Extension này vào đề án. Các bước thiết kế giao diện Dialog cập nhật nhân khẩu: Từ Dialog à New Dialog. Kích phải chuột vào Dialog để mở cửa sổ thuộc tính (Properties) và đặt Name cho nó là “Themnhankhau”, Title: “Thêm mới nhân khẩu”, Open: “Modulieu” thiết lập các thuộc tính như hình dưới: Kich vào biểu tượng Text Line trên thanh Tooalbar và kéo thả nó vào cửa sổ Dialog. Kich vào biểu tượng Button trên thanh Tooalbar và kéo thả nó vào cửa sổ Dialog. Kich vào biểu tượng Combobox trên thanh Tooalbar và kéo thả nó vào cửa sổ Dialog. Kich vào biểu tượng Check box trên thanh Tooalbar và kéo thả nó vào cửa sổ Dialog. Kéo thả các Text Line, Label Button, Check box vào Dialog, kích chuột phải mở cửa sổ Properties và thiết lập các thuộc tính như sau: Button 1 Icon: Tìm kiếm Click: Sripts Search_Nhankhau Button 2 Icon: Xem thông tin Click: Sripts Xemthongtinnhankhau Button 3 Icon: Thêm mới dữ liệu Click: Sripts OK_Themnhankhau Button 4 Icon: Tiếp tục them mới Click: Sripts Tieptuc_nhankhau Button 5 Icon: Xóa dữ liệu Click: Sripts Xoa_Nhankhau Button 6 Icon: Thoát Click: Sripts Thoat Button 7 Icon: Sửa dữ liệu Click: Scripts Sửa_Nhankhau Text line 1 Name: txtmank Label: Mã nhân khẩu Text line 2 Name: txthten Label: Họ và tên nhân khẩu Text line 3 Name: txttgk Label: Tên gọi khác Text line 4 Name: txtns Label: Ngày sinh Text line 5 Name: txtnn Label: Nghề nghiệp Text line 6 Name: txtcmnd Label: Số CMND Combo box1 Name: shk Label: Số sổ hộ khẩu Combo box2 Name: cbdt Label: Dân tộc Combo box3 Name: cbgt Label: Giới tính Combo box4 Name: cbtg Label: Tôn giáo Combo box5 Name: ctdhv Label: Trình độ học vấn Combo box6 Name: cbhuyen Label: Huyện Check box Name: chuho Label: Chủ hộ Kết quả như sau: Các Scripts minh họa: Scripts Modulieu aDlog=self lbx_DanhSach1=aDlog.FindByName("cbhk") theView=av.GetActiveDoc astring="Select * from SOHOKHAU" theTable1=VTab.MakeSQL(_theSQL, astring) theField1=theTable1.FindField("Soso") listTheme1={} for each rec in theTable1 listTheme1.Add(theTable1.ReturnValue(theField1,rec)) end lbx_DanhSach1.DefineFromList(listTheme1) lbx_DanhSach3=aDlog.FindByName("cbmahuyen") theView=av.GetActiveDoc astring="Select * from HUYEN" theTable3=VTab.MakeSQL(_theSQL, astring) theField3=theTable3.FindField("Tenhuyen") listTheme3={} for each rec in theTable3 listTheme3.Add(theTable3.ReturnValue(theField3,rec)) end lbx_DanhSach3.DefineFromList(listTheme3) lbx_DanhSach4=aDlog.FindByName("cbtdhv") theView=av.GetActiveDoc astring="Select * from TDHV" theTable4=VTab.MakeSQL(_theSQL, astring) theField4=theTable4.FindField("TenTDHV") listTheme4={} for each rec in theTable4 listTheme4.Add(theTable4.ReturnValue(theField4,rec)) end lbx_DanhSach4.DefineFromList(listTheme4) lbx_DanhSach5=aDlog.FindByName("cbdt") theView=av.GetActiveDoc astring="Select * from DANTOC" theTable5=VTab.MakeSQL(_theSQL, astring) theField5=theTable5.FindField("TenDT") listTheme5={} for each rec in theTable5 listTheme5.Add(theTable5.ReturnValue(theField5,rec)) end lbx_DanhSach5.DefineFromList(listTheme5) lbx_DanhSach6=aDlog.FindByName("cbtongiao") theView=av.GetActiveDoc astring="Select * from TONGIAO" theTable6=VTab.MakeSQL(_theSQL, astring) theField6=theTable6.FindField("TenTG") listTheme6={} for each rec in theTable6 listTheme6.Add(theTable6.ReturnValue(theField6,rec)) end lbx_DanhSach6.DefineFromList(listTheme6) gtinh=aDlog.FindByName("cbgtinh") blist={} blist.Add("Nam") blist.Add("Nu") gtinh.DefineFromList(blist) dlog=av.FindDialog("Themnhankhau") f1 = dlog.FindByName("txthoten") f2 = dlog.FindByName("txttgk") f13 = dlog.FindByName("txtns") f14 = dlog.FindByName("txtnn") f15 = dlog.FindByName("txtcmnd") f16 = dlog.FindByName("txttgk") f17 = dlog.FindByName("txtmank") f1.empty f2.empty f13.empty f14.empty f15.empty f16.empty f17.empty Scripts Ok_Themnhankhau dlog=av.FindDialog("Themnhankhau") f0 = dlog.FindByName("cbhk") f1 = dlog.FindByName("txthoten") f5 = dlog.FindByName("cbdt") f6 = dlog.FindByName("cbgtinh") f7 = dlog.FindByName("cbtongiao") f8 = dlog.FindByName("cbtdhv") f9 = dlog.FindByName("cbmahuyen") f13 = dlog.FindByName("txtns") f14 = dlog.FindByName("txtnn") f15 = dlog.FindByName("txtcmnd") f16 = dlog.FindByName("txttgk") f17 = dlog.FindByName("txtmank") f18 = dlog.FindByName("chuho") if(f6.GetSelection.asString="Nam") then t="true" end if(f6.GetSelection.asString="Nu") then t="false" end if(f18.IsSelected=true) then t1="true" end if(f18.IsSelected=False) then t1="false" end str="Select * from DANTOC where TenDT='"+f5.GetSelection.asString+"'" theVTab=VTab.MakeSQL(_theSQL,str) for each rec in theVTab ma = theVTab.FindField("MaDT") mas = theVTab.ReturnValue(ma,rec) end str1="Select * from TONGIAO where TenTG='"+f7.GetSelection.asString+"'" theVTab1=VTab.MakeSQL(_theSQL,str1) for each rec in theVTab1 masc = theVTab1.FindField("MaTG") mascs = theVTab1.ReturnValue(masc,rec) end str2="Select * from HUYEN where Tenhuyen='"+f9.GetSelection.asString+"'" theVTab2=VTab.MakeSQL(_theSQL,str2) for each rec in theVTab2 malh = theVTab2.FindField("Mahuyen") malhs = theVTab2.ReturnValue(malh,rec) end str3="Select * from TDHV where TenTDHV='"+f8.GetSelection.asString+"'" theVTab3=VTab.MakeSQL(_theSQL,str3) for each rec in theVTab3 matd = theVTab3.FindField("MaTDHV") matds = theVTab3.ReturnValue(matd,rec) end astring="insert into NHANKHAU(MaNK,Chuho,HovatenNK,Tengoikhac,Gioitinh,Ngaysinh,SoCMND,Nghenghiep,Soso,MaDT,MaTDHV,Mahuyen,MaTG)Values('"+f17.GetText.asString+"','"+t1+"','"+f1.GetText.asString+"','"+f16.GetText.asString+"','"+t+"','"+f13.GetText.asString+"','"+f15.GetText.asString+"','"+f14.GetText.asString+"','"+f0.GetSelection.asString+"','"+mas.asString+"','"+matds.asString+"','"+malhs.asString+"','"+mascs.asString+"')" _theSQL.ExecuteSQL(astring) av.finddialog("Themnhankhau").close Msgbox.info("Them moi thanh cong","Thong Bao") Scripts Search_nhankhau dlog=av.FindDialog("Themnhankhau") f0= dlog.FindByName("cbhk") f1 = dlog.FindByName("txtmank") f5 = dlog.FindByName("txthoten") f2 = dlog.FindByName("txttgk") f3 = dlog.FindByName("txtns") f4 = dlog.FindByName("txtcmnd") f11 = dlog.FindByName("txtnn") f6 = dlog.FindByName("cbdt") f7 = dlog.FindByName("cbtongiao") f8 = dlog.FindByName("cbmahuyen") f9 = dlog.FindByName("cbtdhv") f10 = dlog.FindByName("cbgtinh") f12 = dlog.FindByName("chuho") astring="Select * from NHANKHAU where MaNK='"+ f1.GetText.asString +"'" theVTab=VTab.MakeSQL(_theSQL,astring) n=theVTab.GetNumRecords if(n0)then for each rec in theVTab ma = theVTab.Findfield("MaNK") mas = theVTab.ReturnValue(ma,rec) gt= theVTab.FindField("Gioitinh") gts = theVTab.ReturnValue(gt,rec) ss = theVTab.Findfield("Soso") sss = theVTab.ReturnValue(ss,rec) ht = theVTab.Findfield("HovatenNK") hts = theVTab.ReturnValue(ht,rec) tgk = theVTab.Findfield("Tengoikhac") tgks = theVTab.ReturnValue(tgk,rec) cm = theVTab.Findfield("SoCMND") cms = theVTab.ReturnValue(cm,rec) dt = theVTab.Findfield("MaDT") dts = theVTab.ReturnValue(dt,rec) nn = theVTab.Findfield("Nghenghiep") nns = theVTab.ReturnValue(nn,rec) n = theVTab.Findfield("Ngaysinh") ns = theVTab.ReturnValue(n,rec) tg = theVTab.Findfield("MaTG") tgs = theVTab.ReturnValue(tg,rec) h = theVTab.Findfield("Mahuyen") hs = theVTab.ReturnValue(h,rec) td = theVTab.Findfield("MaTDHV") tds = theVTab.ReturnValue(td,rec) ch = theVTab.Findfield("Chuho") chs = theVTab.ReturnValue(ch,rec) str="Select * from DANTOC where MaDT='"+dts.asString+"'" theVTab4=VTab.MakeSQL(_theSQL,str) for each rec in theVTab4 m1 = theVTab4.FindField("TenDT") m1s = theVTab4.ReturnValue(m1,rec) end str1="Select * from TONGIAO where MaTG='"+tgs.asString+"'" theVTab1=VTab.MakeSQL(_theSQL,str1) for each rec in theVTab1 m2 = theVTab1.FindField("TenTG") m2s = theVTab1.ReturnValue(m2,rec) end str2="Select * from HUYEN where Mahuyen='"+hs.asString+"'" theVTab2=VTab.MakeSQL(_theSQL,str2) for each rec in theVTab2 m3 = theVTab2.FindField("Tenhuyen") m3s = theVTab2.ReturnValue(m3,rec) end str3="Select * from TDHV where MaTDHV='"+tds.asString+"'" theVTab3=VTab.MakeSQL(_theSQL,str3) for each rec in theVTab3 m4 = theVTab3.FindField("TenTDHV") m4s = theVTab3.ReturnValue(m4,rec) end f0.SetCurrentValue(sss.asString) if(gts="1") then f10.SetCurrentValue("Nam") end if(gts="0") then f10.SetCurrentValue("Nu") end f6.SetCurrentValue(m1s.asString) f7.SetCurrentValue(m2s.asString) f8.SetCurrentValue(m3s.asString) f9.SetCurrentValue(m4s.asString) f1.SetText(mas.asString) f5.SetText(hts.asString) f2.SetText(tgks.asString) f4.SetText(cms.asString) f3.SetText(ns.asString) f11.SetText(nns.asString) if(chs="1") then f12.IsSelected end end else MsgBox.info("Khong tim thay du lieu","Thong Bao") End 3 XÂY DỰNG CHỨC NĂNG Hệ thống “Xây dựng cơ sở dữ liệu GIS sơ đồ địa bàn phường Vĩnh Thọ - TP.Nha Trang” xây dựng bằng ngôn ngữ lập trình Avenue được thực thi trong môi trường ArcView với giao diện lập trình nằm trong cửa sổ Project. Chương trình quản lý dữ liệu thông qua các lớp đối tượng và mọi thứ diễn ra đều qua các yêu cầu gửi tới lớp đối tượng. Tạo ứng dụng tùy biến Xây dựng Menu Quản lý thông tin Xây dựng các Item Xem thông tin Cập nhật dữ liệu Tìm kiếm dữ liệu Viết lệnh mở Item Tạo giao diện ứng dụng Thiết kế Dialog cập nhật, tìm kiếm Viết lệnh cho các điều khiển thực hiện Thiết kế Dialog hiển thị thông tin sau khi thực hiện lệnh In bản đồ Thống kê – Tính toán Sơ đồ: Quy trình thiết kế chức năng quản lý thông tin Cập nhật dữ liệu Quy trình cập nhật dữ liệu như sau: Tạo ứng dụng tùy biến Xây dựng Menu Cập nhật thông tin Xây dựng các Item Cập nhật thông tin Viết lệnh mở Item Tạo giao diện ứng dụng Thiết kế Dialog nhập thông tin cần cập nhật Viết lệnh cho các điều khiển cập nhật Thiết kế Dialog hiển thị thông tin cập nhật Chức năng cập dữ liệu được thiết kế dạng các Dialog, trên từng dialog thiết kế các Button gán các sự kiện xem, thêm, sửa, xóa dữ liệu. Khi muốn cập nhật dữ liệu ta chọn menu con trong menu “Cập nhật dữ liệu”. Ví dụ: Khi muốn cập nhật nhân khẩu ta chọn cập nhật nhân khẩu: Ta chọn hộ gia đình muốn thêm nhân khẩu từ danh sách sổ hộ khẩu. Sau đó nhập đầy đủ thông tin về nhân khẩu mới, rồi click vào biểu tưởng để thêm mới. Nếu có lỗi thì sẽ thông báo lỗi ngược lại sẽ có thông báo thêm mới thành công: Khi muốn xem dữ liệu sau khi thêm mới thì kích vào biểu tượng Khi muốn tiếp tục thêm mới thì kích vào biểu tượng . Khi muốn tìm kiếm dữ liệu thì ta nhập vào mã nhân khẩu hoặc số CMND cần tìm rồi kích vào biểu tượng thì thông tin nhân khẩu sẽ hiển thị. Dữ liệu từ bảng dữ liệu và dữ liệu hiển thị khi tìm kiếm Khi muốn xóa dữ liệu thì ta chọn mã nhân khẩu cần xóa, rồi kích vào biểu tượng để xóa thông tin nhân khẩu này. Khi muốn sửa dữ liệu thì ta chọn nhân khẩu cần sửa và nhập những thông tin mới cần sửa chữa rồi kích vào biểu tượng để sửa thông tin nhân khẩu. Sau đây là thông tin của một nhân khẩu trước và sau khi sửa dữ liệu: Khi cập nhật thành công sẽ có thông báo thành công, ngược lại có thông báo lỗi xảy ra. Dữ liệu từ bảng dữ liệu trước và sau cập nhật Bảng dữ liệu sau khi cập nhât: Xem nhanh thông tin Xem nhanh thông tin dữ liệu thuộc tính lưu trữ từ các bảng dữ liệu thì từ menu “Xem thông tin” ta chọn bảng dữ liệu hoặc các thông tin cần xem. Ngoài ra, nếu muốn xem thông dữ liệu từ bản đồ, ta click chuột trực tiếp vào điểm cần xem, lập tức các thông tin cần thiết sẽ hiển thị. Xây dựng công cụ hotlink hỗ trợ xem nhanh thông tin, khi bạn muốn xem thông tin một điểm nào đó trên bản đồ, chỉ cần chọn vào công cụ rồi click chuột vào điểm cần xem, thì sẽ thấy hình ảnh của điểm cấn xem đó và thông tin giới thiệu ngắn gọn về địa điểm này. Ví dụ, khi chọn Trường đại học Nha Trang. Tìm kiếm dữ liệu Tìm kiếm là một chức năng quan trọng trong bài toán quản lý. Ở đây, chỉ nói đến tìm kiếm trong dữ liệu không gian, còn dữ liệu thuộc tính thì đã nói ở phần “Cập nhật dữ liệu”Trong chương trình chức năng tìm kiếm được xây dựng rất đa dạng, người dùng có thể tìm kiếm nhanh bằng cách nhập từ khóa cần thiết để tìm kiếm, hoặc chọn đối tượng tìm kiếm từ danh sách có sẵn, hoặc khoanh vùng để dễ dàng tìm kiếm. Tìm kiếm hộ gia đình ta có thể nhập trực tiếp tên chủ hộ để tìm. Trong ArcView những địa điểm tìm thấy sẽ được tô sáng màu vàng. Tìm kiếm hộ khẩu theo đường cần chọn tên đường cần tìm rồi click tìm kiếm thì kết quả là danh sách các hộ gia đình tìm thấy và những hộ gia đình đó là những điểm sáng vàng trên bản đồ. Tương tự, chương trình còn có chức năng tìm kiếm hộ khẩu theo từng loại hộ(hộ bình thường, hộ văn hóa,..). Tìm kiếm đường giao thông, tìm cơ sở kinh doanh tư nhân, tìm khách sạn, tìm địa vật. Tìm nhân khẩu: Có thể chọn các thông tin người sử dụng biết được để tìm kiếm. Trường hơp, biết mã nhân khẩu thì chọn tìm kiếm theo mã, biết tên thì tìm kiếm theo tên hoặc là tìm theo số CMND, tìm kiếm theo sổ hộ khẩu. Chọn tìm kiếm từ danh sách. Trường hợp tìm hộ gia đình theo trong từng khu phố, ta chọn khu phố cần tìm và tìm kiếm. Kết quả sẽ hiện thị trong listbox danh sách hộ gia đình tìm thấy. Tìm kiếm theo phạm vi ta khoanh vùng phạm vi cần tìm kiếm. Sau đó tìm kiếm và kết quả hiển thi trong listbox và trên bản đồ là những điểm được tô sáng. Thống kê – tính toán Trong chương trình thống kê được có bao nhiêu hộ gia đình trong phường và tổng số dân trong phường. Ngoài ra, thống kê được số hộ gia đình, số dân trong từng khu phố Thống kê người phạm tội trong địa bàn phường. Xuất ra danh sách cho người dùng cần xem. Biểu diễn thông qua qua biểu đồ dân cư trên địa bàn phường, và biểu đồ cơ cấu giới tính nam nữ. Khi xuất dữ liệu qua Excel, ta chọn bảng dữ liệu cần chuyển rồi chọn “Xuất dữ liệu qua Excel” Tạo trang in bản đồ Trong chương trình đã tạo sẵn trang in bản đồ địa bàn phường Vĩnh Thọ. Khi muốn in bản đồ ra giấy có thể chọn in bản đồ, và chọn In. CHƯƠNG 5. HƯỚNG DẪN SỬ DỤNG 5.1 CẤU HÌNH MÁY TÍNH SQL Server 2005 là một hệ thống quản lý cở sở dữ liệu để trao đổi dữ liệu giữa Client computer và SQL Server computer. Vì thế, đề tài sử dụng SQL server 2005 để thiết kế CSDL, kết hợp với phần mềm ArcView 3.3 số hóa dữ liệu thu thập được, sử dụng ngôn ngữ lập trình Avenue để lập trinh giao diện người dùng. Để sử dụng được chương trình thì máy tính phải cài đặt phiên bản phần mềm ArcView 3.x và cài đặt chương trình SQL Server 2005 Express Edition. Các yêu cầu cho hệ thống 32 bit: Processor PIII 600MHZ hoặc cao hơn Tốt nhất: 1GHZ hoặc cao hơn Framework Microsoft.NET Framework 2.0 Operating System Windows XP with Service Pack 2 hoặc cao hơn. Microsoft Windows 2000 Professional SP4 Microsoft Windows 2000 Server Service Pack 4 hoặc cao hơn. Windows XP Professional SP2 Windows XP Professional Edition x64 Windows Server 2003 Standard, Enterprise, or Datacenter editions with Service Pack 1 hoặc cao hơn. Windows Server 2003 Web Edition SP1 Windows Small Business Server 2003with Server Pack 1 hoặc cao hơn. Vista Home Basic và các phiên bản cao hơn. Cá phiên bản Window Seven7. Memory 192 MB RAM hoặc cao hơn; tốt nhất: 512 MB hoặc cao hơn. Hard Disk 350MB ổ cứng cho cài đặt cơ bản. 425 MB ổ cứng cho cài đặt SQL Server Books Online, SQL Server Mobile Books Online và Sample database. Display Super VGA(1,024x768) hoặc cao hơn. Other Devices Mouse, Keyboard Other Requirements Microsoft Internet Explorer 6.0 hoặc cao hơn, Firefox,… ArcView GIS 3.x là một phần mềm chuyên về GIS trong họ phần mềm GIS của ESRI. Đơn giản, nhỏ gọn, dễ cài đặt. ArcView GIS 3.x là một phần mềm để bàn, desktop. ArcView chạy trên nền Windows. Việc cài đặt ArcView GIS cũng rất đơn giản, để cài đặt chương trình trước tiên ta chạy file Setup bằng cách click vào biểu tượng: Khởi động lại máy tính, khi đó trên desktop đã có biểu tượng của ArcView . Khởi động chương trình và kết thúc việc cài đặt bằng cách nhập Serial vào theo hướng dẫn. Bên cạnh những chức năng đã có của ArcView ta còn có thể cài đặt các chức năng ứng dụng mở rộng vào Extensions như: 3D Analyst 1.0, ArcView Internet MapServer 1.0, Network Analyst 1.0a, SmartImage 3.0 (No Keygen), Visual MODFLOW Pro 3.1.0.85, ArcPress 2.0, Image Analyst 1.1, SmartClassify 1.1 (No Keygen), Spatial Analyst 2.0. 5.2 SỬ DỤNG CHỨC NĂNG VÀ CÁC CÔNG CỤ Trước khi sử dụng chương trình bạn hãy click vào biểu tượng để kiểm tra kết nối cơ sở dữ liệu và xem chương trinh có bị lỗi không. Nếu có lỗi xảy ra sẽ có MsgBox thông báo lỗi hiển thị, ngược lại không có gì thì chương trình chạy tốt và không có lỗi xảy ra. Sử dụng các chức năng Các chức năng của chương trình được thiết kế dạng Menu, khi người sử dụng muốn thực hiện chức năng nào thì nhấn vào Menu thì xuất hiện danh sách các menu con để lựa chọn. Khi muốn thêm mới dữ liệu, bạn hãy nhập đầy đủ thông tin mới về đối tượng cần thêm, rồi click vào biểu tưởng để thêm mới. Khi muốn xem dữ liệu sau khi thêm mới hoặc xem thông tin của dữ liệu từ các bảng dữ liệu thì kích vào biểu tượng Khi muốn tiếp tục thêm mới thì kích vào biểu tượng . Khi muốn tìm kiếm dữ liệu thì ta nhập vào từ khóa cần tìm cần tìm rồi kích vào biểu tượng thì thông tin bạn cần tìm kiếm sẽ hiển thị. Khi muốn xóa dữ liệu thì ta chọn mã cần xóa, rồi kích vào biểu tượng để xóa thì toàn bộ thông tin về đối tượng này sẽ bị xóa hoàn toàn. Khi muốn sửa dữ liệu thì ta chọn bản ghi cần sửa và nhập những thông tin mới cần sửa chữa rồi kích vào biểu tượng để sửa thông tin. Khi muốn thoát thì kích vào biểu tượng Khi muốn hủy bỏ thao tác thêm mới dữ liệu không gian thì kích vào biểu tượng . Trong quá trình cập nhật dữ liệu nếu có lỗi thì sẽ thông báo lỗi ngược lại sẽ có thông báo thực hiện thành công. Sử dụng các công cụ Khi bạn muốn di chuyển trực tiếp các chủ đề thì chọn công cụ . Khi muốn phóng to chủ đề chọn . Khi muốn thu nho chủ đề chọn . Khi xem thông tin về đối tượng hộ gia đình tự chọn trên bản đồ chọn . Khi xem thông tin về đối tượng cơ sở kinh doanh tư nhân tự chọn trên bản đồ chọn. Khi xem thông tin về đối tượng địa vật trên bản đồ chọn . Khi xem thông tin về đối tượng khách sạn trên bản đồ chọn . Khi xem thông tin hotlink( hình ảnh và giới thiệu ngắn gọn) của đối tượng được chọn trên bản đồ chọn . Khi xem tọa độ của điểm trên bản đồ chọn công cụ . Khi thêm mới dữ liệu không gian thị chọn công cụ để thêm mới hộ gia đình, sau đó chọn vào điểm cần thêm trên bản đồ, rồi nhập đầy đủ thông tin thêm mới về đối tượng rồi chọn để thêm mới. Chọn công cụ để thêm mới cơ sở kinh doanh tư nhân, sau đó chọn vào điểm cần thêm trên bản đồ, rồi nhập đầy đủ thông tin thêm mới về đối tượng rồi chọn để thêm mới. Chọn công cụ để thêm mới địa vật, sau đó chọn vào điểm cần thêm trên bản đồ, rồi nhập đầy đủ thông tin thêm mới về đối tượng rồi chọn để thêm mới. Chọn công cụ để thêm mới khách sạn, sau đó chọn vào điểm cần thêm trên bản đồ, rồi nhập đầy đủ thông tin thêm mới về đối tượng rồi chọn để thêm mới. Nếu bản đồ đang được phóng to hay thu nhỏ ở một chế độ hiển thị nào đó, kích vào để đưa tất cả các chủ đề trong view về chế độ hiển thị toàn bộ màn hình. Click vào để phóng to dần tất cả các chủ đề đang được hiển thị trên màn hình tính từ tâm màn hình hiển thị của cửa sổ view. Click vào để thu nhỏ dần tất cả các chủ đề đang được hiển thị trên màn hình tính từ tâm màn hình hiển thị của cửa sổ view. 5.3 SỬ DỤNG FONT CHỮ TIẾNG VIỆT TRONG ARCVIEW Hiện nay ArcView chưa hộ trợ font Unicode nên muốn nhập và hiển thị tiếng việt trong phần mềm, chương trình ứng dụng liên quan đến ArcView thì phải sử dụng font TCVN3-ABC. Vì vậy, khi sử dụng cần chú ý một số vấn đề sau: Trên máy tính bạn cần phải cài đầy đủ bộ font TCVN-ABC. Nên cài Vietkey bản full trong lúc cài đặt cần lưu ý sau: Cài Vietkey với Custom và chọn TCVN System Fonts. Thay đổi lại font cho các hiển thị là Font: VK Sans Serif. Để chương trình hiển thị tiếng việt thị bạn click vào button . Button này đã gán Scripts cài đặt hiển thị font tiếng việt “SetupABC”. TOCFont = TextSymbol.Make TOCFont.SetFont (NFont.Make(".VnTime","Normal")) TOCFont.SetSize( 10 ) TOC.SetDefaultSymbol(TOCFont) allDocs = av.GetProject.GetDocs for each v in allDocs if (v.is(View) and (v.GetWin.IsOpen)) then v.GetWin.Close v.GetWin.Open end end Có thể từ Menu của chương trình Xem chủ đềàFont chữ sau đó bạn chọn font chữ tiếng việt như: .VnTime, .VnTimeH,.. là hiển thị được tiếng việt. Hiển thị chú thích là tiếng việt từ Menu Xem chủ đềà Hiển thị biểu tượng trong Window à ABC sau đó bạn chọn font chữ tiếng việt như: .VnTime, .VnTimeH,.. là hiển thị được tiếng việt. Lúc nhập thì chọn bảng mã TCVN3(ABC). Nên thống nhất một loại font chữ, cả bên ArcView và bên cơ sở dữ liệu SQL Server 2005. KẾT LUẬN KẾT QUẢ THỰC HIỆN Ứng dụng hệ thống thông tin địa lý (GIS) trong việc xây dựng cơ sở dữ liệu GIS sơ đồ địa bàn phường Vĩnh Thọ giúp công an phường thuận tiện trong việc quản lý phù hợp với nhu cầu và hoàn cảnh của địa phương là một việc hết sức cần thiết và thiết thực. Vì hiện tại phương pháp quản lý nhân khẩu – hộ khẩu và các thông tin liên quan đến dân cư trên địa bàn của địa phương chủ yếu quản lý trên giấy nên chưa thể đáp ứng tốt cho nhu cầu hiện tại với khối lượng thông tin ngày càng lớn. Để xây dựng bất kỳ hệ thống thông tin địa lý nào cũng cần phải có nguồn dữ liệu đầu vào, trải qua quá trình tổng hợp, xử lý thông tin để tạo kết quả đầu ra. Nguồn dữ liệu đầu vào cho hệ thống mà đề tài thực hiện được phân thành hai nhóm đó là dữ liệu bản đồ và dữ liệu thuộc tính. Từ những số liệu, bản đồ thu thập được, đề tài chủ yếu là cập nhật thông tin trên phần mềm ArcView và bước đầu ứng dụng phần mềm SQL Server 2005 xây dựng cơ sở dữ liệu, sử dụng ngôn ngữ lập trình Avenue xây dựng chương trình ứng dụng. Chương trình ứng dụng sau khi hoàn thành nó có thể cung cấp thông tin đầy đủ, kịp thời và chính xác cho người quản lý có thể cập nhật đầy đủ thông tin, đáp ứng nhu cầu phát triển kinh tế - xã hội. Điều này không chỉ phục vụ cho công tác quản lý trước mắt mà còn lâu dài về sau. Kết quả đề tài “Xây dựng cơ sở dữ liệu GIS sơ đồ địa bàn phường Vĩnh Thọ “đã đạt được kết quả như sau: Phân tích, đánh giá hiện trạng cơ sở dữ liệu hiện có trên địa bàn phường Vĩnh Thọ làm cơ sở để xây dựng cơ sở dữ liệu hoàn thiện theo mô hình GIS. Xây dựng nhóm chức năng cập nhật dữ liệu. Cho phép người sử dụng có thể thêm, sửa, xóa dữ liệu không gian và cả dữ liệu thuộc tính. Xây dựng chức năng xem nhanh thông tin trên bản đồ: Phóng to, thu nhỏ, xem nhanh điểm được chọn, vv… Xem nhanh thông tin các đối tượng. Xây dựng đa dạng các chức năng tìm kiếm dữ liệu thuộc tính và dữ liệu không gian. Thống kê, tính toán tổng số hộ gia đình trên địa bàn phường, tống số dân, .. , sau đó xuất dữ liệu ra bảng và biểu diễn trên biểu đồ thống kê. Tạo trang in bản đồ, biểu đồ. Xuất dữ liệu từ bảng dữ liệu thuộc tính qua Excel. Đề tài đã đạt được mục tiêu đề ra: Ứng dụng công nghệ GIS xây dựng cơ sở dữ liệu GIS sơ đồ địa bàn phường Vĩnh Thọ, hỗ trợ công tác phòng chống tội phạm. Ngoài ra, với chương trình này còn có thể tra cứu thông tin hộ khẩu, nhân khẩu cũng như trường học, nhà hàng, khách sạn… Như vây, có thể nói việc ứng dụng hệ thống thông tin địa lý (GIS) trong “Xây dựng cơ sở dữ liệu GIS sơ đồ địa bàn phường Vĩnh Thọ “ giúp rút ngắn được thời gian giải quyết các thủ tục hành chính, có chế độ báo cáo nhanh chóng, kịp thời, đồng thời có thể đáp ứng nhu cầu thông tin cho các ngành liên quan và những người quan tâm. HƯỚNG PHÁT TRIỂN Qua thời gian tìm hiểu và xây dựng đề tài về cơ bản em đã hoàn thành những yêu cầu đề ra. Đây là một đề tài thực tế và hết sức thiết thực. Cho nên, đề tài sau khi hoàn thành nó có thể cung cấp thông tin đầy đủ, kịp thời và chính xác cho người quản lý có thể cập nhầt đầy đủ thông tin, đáp ứng nhu cầu phát triển kinh tế - xã hội. Nó không chỉ phục vụ cho công tác quản lý trước mắt, mà nó có thể được phát triển, bảo trì để sử dụng lâu dài và đáp ứng khối lượng thông tin ngày càng lớn. Trong quá trình thực hiện đề tài tôi thấy còn nhiều vấn đề liên quan cần được quan tâm để hỗ trợ tốt cho người sử dụng và phạm vi ứng dụng của đề tài. Vì thế, em đã đề xuất vấn đề phát triển của đề tài: Phát triển giao diện thân thiện hơn với người sử dụng. Xây dựng mới những chức năng giúp đỡ người sử dụng như: In hộ khẩu. In sơ yếu lý lịch. Ứng dụng rộng rãi hơn đối với các phường khác trong thành phố Nha Trang và các huyện, tỉnh, thành phố khác trong cả nước. Ứng dụng phát triển trên công cụ ArcGIS Engine để xây dựng phần mềm độc lập. PHỤC LỤC Kết nối với CSDL SQL Server và hiển thị dữ liệu trong bảng dữ liệu. ‘ Tạo kết nối, tên đăng nhập và mật khẩu theSQL=SQLCon.Find("VinhTho") theSQL.Login("nhatrang/") ‘ Câu truy vấn SQL astring="Select s.Soso,s.Sonha,s.Dientichnha,s.Dientichdat,nk. ++”HovatenNK, tdp.TenTDP,d.Tenduong,lh.TenLH " ++"From SOHOKHAU s, NHANKHAU nk, LOAIHO lh, TODANPHO tdp, DUONG d " ++" Where s.Soso=nk.Soso" ++"and s.Maduong=d.Maduong" ++"and s.MaLH=lh.MaLH" ++"and s.MaTDP=tdp.MaTDP" ++"and nk.Chuho='true'" ‘ Thực thi câu lệnh SQL theSQL.ExecuteSQL(astring) ‘ Tạo bảng ảo trong ArcView theVTab=VTab.MakeSQL(theSQL,astring) ‘ Đưa bảng vào Project và mở bảng này ra. myTable=Table.Make(theVtab) myTable.setName("XemHK") av.GetProject.AddDoc(mytable) mytable.GetWin.Open Liên kết các bảng bằng thuộc tính. theSQL=SQLCon.Find("VinhTho") theSQL.Login("nhatrang/") ‘ Xác định bảng nguồn và bảng đích astring="Select * from SOHOKHAU" theSQL.ExecuteSQL(astring) theVTab=VTab.MakeSQL(theSQL,"Select * from SOHOKHAU") thetable=av.GetProject.FindDoc("SOHOKHAU") av.GetProject.RemoveDoc(thetable) myTable=Table.Make(theVtab) myTable.setName("SOHOKHAU") av.GetProject.AddDoc(mytable) toTable=av.GetProject.FindDoc("Hgdinh.shp") toVt=toTable.GetVTab ‘ Xác định trường dung chung để liên kết toField=toVt.FindField("Soso") fromfield=theVtab.FindField("Soso") ‘ Nếu muốn liên kết bằng Joint toVt.Join(toField,theVtab,fromfield) ‘ Nếu muốn liên kết bằng Link toVt.Link(toField,theVtab,fromfield) ‘ Nếu muốn hủy bỏ liên kết toVt.UnjoinAll toVt.UnlinkAll Mở dữ liệu tử bảng SQL và đưa dữ liệu vào Combobox tạo một danh sách các chọn lựa khi muốn tiết kiệm không gian. aDlog=self theSQL=SQLCon.Find("VinhTho") theSQL.Login("nhatrang/") ‘ Tìm đến đối tượng Combobox lbx_DanhSach=aDlog.FindByName("cbmavung") theView=av.GetActiveDoc astring="Select * from TODANPHO" ‘ Lấy các danh sách Tổ dân phố. theTable=VTab.MakeSQL(theSQL, astring) theField=theTable.FindField("TenTDP") listTheme={} for each rec in theTable listTheme.Add(theTable.ReturnValue(theField,rec)) end ‘Gán danh sách các Tổ dân phố vào combobox lbx_DanhSach.DefineFromList(listTheme) Đóng Dialog khi người dùng kích thoát. Self.GetDialog.Close Hủy các thao tác theView=av.getActivedoc theDisplay=theView.GetDisplay theGraphics=theView.GetGraphics theGraphics.empty theTheme = theView.GetEditableTheme ‘ Hủy bỏ các thao tác if (theView.GetGraphics.HasSelected) then av.GetProject.SetModified(true) end if (theTheme = nil) then theView.GetGraphics.ClearSelected else theTheme.GetFtab.BeginTransaction theTheme.ClearSelected theTheme.GetFTab.EndTransaction end ‘ Đóng hộp thoại cần lưu self.GetDialog.Close Mở Dialog theView = av.GetActiveDoc aDlog=av.FindDialog("timtrenduong") if(aDlog nil)then aDlog.Open else MsgBox.info("Không tìm thây Tìm theo đường","Thông Báo") end Tìm kiếm dữ liệu không gian. ‘ Tìm đến đối tượng Combobox alistbox = self.GetDialog.FindByName("cbcskd") tabletab = av.FindDoc("CSKD.shp").GetVTab thebitmap = tabletab.GetSelection ‘ Chọn tên CSKD từ danh sách tìm kiếm qry = "([Tencskd_tn] = """ + alistbox.GetCurrentValue.AsString + """)" tabletab.Query(qry, thebitmap, #VTAB_SELTYPE_NEW) theView = av.GetActiveDoc theView.Invalidate Tìm kiếm dữ liệu thuộc tính từ SQL. ‘ Tìm đến đối tượng Dialog, Combobox dlog=av.FindDialog("ANNK") f0= dlog.FindByName("cbmank") f1 = dlog.FindByName("cbsc") f2 = dlog.FindByName("txtngay") f3 = dlog.FindByName("txtthiethai") f4 = dlog.FindByName("txtghichu") ‘ Kết nối SQL và dùng câu lệnh SQL tìm kiếm theSQL=SQLCon.Find("VinhTho") theSQL.Login("nhatrang/") astring="Select * from ANNINHNK where MaNK='"+f0.GetSelection.AsString+"'" theVTab=VTab.MakeSQL(theSQL,astring) ‘Nếu nó tìm thấy n=theVTab.GetNumRecords if(n0)then for each rec in theVTab ‘ Tìm trường MaNK ma = theVTab.Findfield("MaNK") ‘ Trả về giá trị của trường tương ứng vứi chỉ số của mẫu tin mas = theVTab.ReturnValue(ma,rec) masc = theVTab.FindField("Masuco") mascs = theVTab.ReturnValue(masc,rec) ngay = theVTab.Findfield("Ngaygioxayra") ngays = theVTab.ReturnValue(ngay,rec) thai = theVTab.Findfield("Mucdothiethai") thais = theVTab.ReturnValue(thai,rec) gc = theVTab.Findfield("Ghichu") gcs = theVTab.ReturnValue(gc,rec) str="Select * from SUCO where Masuco='"+mascs.asString+"'" theVTab1=VTab.MakeSQL(theSQL,str) for each rec in theVTab1 m = theVTab1.FindField("Tensuco") ms = theVTab1.ReturnValue(m,rec) end ‘ Gán giá trị của trường tương ứng chỉ số mẫu tin f0.SetCurrentValue(mas.asString) f1.SetCurrentValue(ms.asString) f2.SetText(ngays.asString) f3.SetText(thais.asString) f4.SetText(gcs.asString) end else MsgBox.info("Không tim thấy dữ liệu","Thông báo") end Thêm mới dữ liệu dlog=av.FindDialog("ThemCSKD") tb=_theTheme.GetFtab f0 = dlog.FindByName("txttencskd") f1 = dlog.FindByName("cbmaduong") f2 = dlog.FindByName("cbmavung") theSQL=SQLCon.Find("VinhTho") theSQL.Login("nhatrang/") str="Select * from TODANPHO where TenTDP='"+f2.GetSelection.asString+"'" theVTab=VTab.MakeSQL(theSQL,str) for each rec in theVTab ma = theVTab.FindField("MaTDP") mas = theVTab.ReturnValue(ma,rec) end str1="Select * from DUONG where Tenduong='"+f1.GetSelection.asString+"'" theVTab1=VTab.MakeSQL(theSQL,str1) for each rec in theVTab1 masc = theVTab1.FindField("Maduong") mascs = theVTab1.ReturnValue(masc,rec) end tcs=tb.FindField("Tencskd_tn") maduong=tb.FindField("Maduong") mapho=tb.FindField("Ma_khu_pho") tb.SetValue(tcs,_re,f0.GetText.asString) tb.SetValue(maduong,_re,mascs.asString) tb.SetValue(mapho,_re,mas.asString) av.GetActiveDoc.SetEditableTheme(NIL) av.finddialog("ThemCSKD").close Xóa dữ liệu dlog=av.FindDialog("ANNK") f0 = dlog.FindByName("cbmank") theSQL=SQLCon.Find("VinhTho") theSQL.Login("nhatrang/") astring="Delete From ANNINHNK Where MaNK ='"+f0.GetSelection.asString+"'" TheSQL.ExecuteSQL(astring) TÀI LIỆU THAM KHẢO Bài giảng Lập trình Avenue, Giáo viên Nguyễn Thủy Đoan Trang – Đại học Nha Trang. Bài giảng hệ thống thông tin địa lý, GV. Nguyễn Thủy Đoan Trang – Đại học Nha Trang. ESRI: ArcView GIS Trần Vĩnh Phước, Gis đại cương – phần thực hành, NXB Đại học Quốc gia Tp.HCM, 2003 Đặng Liên, Bài giảng Arview ( Các diễn đàn trên internet.

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

  • docXây dựng cơ sở dữ liệu GIS sơ đồ địa bàn phường Vĩnh Thọ - TPNha Trang.doc