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.
115 trang |
Chia sẻ: lvcdongnoi | Lượt xem: 2912 | Lượt tải: 3
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:
- Xây dựng cơ sở dữ liệu GIS sơ đồ địa bàn phường Vĩnh Thọ - TPNha Trang.doc