Yêu cầu GetProject được sử dụng cùng với av, một biến đặc biệt được tham chiếu tới cửa sổ ứng dụng của ArcView. Project bao gồm tất cả các document, để lấy Project hiện tại ta dùng: theProject = av.GetProject Sau đó bạn có thể thay đỏi tên của Project. theProject.SetName(streets.apr) Khi biến theProject đã tồn tại, bạn sẽ có khả năng nhận một document từ Project này. myView = theProject.FindDoc(City Streets View)
Trang 1Sử dụng Avenue
Lược đồ thể hiện mối quan hệ giữa các đối tượng và mối quan hệ giữa các đối tượng, giúp bạn hình dung các yêu cầu
để sử dụng cho thích hợp.
Trang 2Dòng lệnh đầu tiên trong một Script
Avenue là gì?
Yêu cầu GetProject được sử dụng cùng với
av, một biến đặc biệt được tham chiếu tới
cửa sổ ứng dụng của ArcView.
Project bao gồm tất cả các document, để lấy
Project hiện tại ta dùng:
theProject = av.GetProject
Sau đó bạn có thể thay đỏi tên của Project.
theProject.SetName("streets.apr")
Khi biến theProject đã tồn tại, bạn sẽ có khả
năng nhận một document từ Project này
myView = theProject.FindDoc("City Streets View")
Trang 3Hiểu về mô hình lược đồ đối tượng
Lược đồ mô hình đối tượng dùng các ký
hiệu đồ họa như đường, điểm, tam giác, và hình thoi (lines, dots, triangles, and
diamonds) để biểu diễn mối quan hệ giữa chúng với nhau.
Quan hệ giữa các đối tượng được hiển thị
bằng việc kết nối giữa đường thẳng với các biểu tượng.Mỗi đường kết nối giữa hai đối tượng yêu cầu bạn phải viết một request để tới một đối tượng kế tiếp Biểu tượng trong mối quan hệ giúp bạn hình dung được từ
khóa request được sử dụng.
Trang 4Hiểu về mô hình lược đồ đối tượng
Trang 6Các kiểu quan hệ giữa các đối tượng
Có năm kiểu quan hệ và mỗi kiểu có một ký hiệu riêng
Kiểu quan hệthừa kế hay "kind of" (dùng hình
tam giác)
Kiểu quan hệ hợp thành hay "composed of"
(dùng hình thoi)
Kiểu quan hệ 1,1 (dùng đường thẳng)
Kiểu quan hệ 0 hoặc một (một đường với hình
tròn rỗng)
Kiểu quan hệ 0 hoặc nhiều (một đường với hình
tròn đặc)
Trang 7Kiểu quan hệ thừa kế
Đôi khi gọi là “Kind of”
Trang 8Kiểu quan hệ hợp thành
Đôi khi gọi là kiểu quan hệ "composed of"
Trang 9Kiểu quan hệ kết hợp một một
Dùng một đường thẳng thể hiện.
Kiểu quan hệ một một thường sử dụng request Get.
Trang 10Kiểu kết hợp không hoặc một
Dùng một đường thẳng và hình tròn rỗng
Trang 11Kiểu kết hợp không hoặc nhiều
trong request FindThe zero or many association
myTheme = theView.FindDoc("Streets")
Trang 12Các từ khóa Request
Các request bắt đầu bằng một từ khóa
Các từ khóa:
Get Find Set Make Return Add
As Has, Is, Can
Trang 13Các từ khóa Request
thật hữu ích để bạn xem xét bởi vì mỗi đường kết nối trong lược đồ, bạn sẽ dùng request tương ứng
để nhận đối tượng kế tiếp
Trang 14 Ví dụ:
theView = av.GetActiveDoc
Trang 15Find
Với kiểu quan hệ 0 hoặc 1, dùng request
Find kết hợp với tên của đối tượng mà bạn đang muốn tìm
Ví dụ request FindDoc: Một Project bao
gồm nhiều document FindDoc được sử
Trang 16Set
Với một đối tượng bạn có,
bạn dùng requst Set để thay đổi thuộc tính của đối tượng
Ví dụ
aGeoName.SetFileName(fnOutFile)
Trang 18As
Khi bạn cần chuyển đổi (convert)
một đối tượng từ lớp này sang
một lớp khác, bạn dùng request As.
Ví dụ:
theNumber = theString.AsNumber
Trang 19Cách tạo các đối tượng
Bạn có thể dùng request Make để tạo các đối tượng trong ArcView.Dùng biến để tham chiếu tới đối tượng mới này.
Ví dụ tạo một View
theView = View.Make
Ví dụ tạo một Point
thePoint = Point.Make(245,187)
Trang 20Sử dụng các thuộc tính của đối tượng
Để nhận thuộc tính của một đối tượng,
dùng request bắt đầu bằng từ khóa Get và tên thuộc tính tương ứng Ví dụ nếu thuộc tính là Name thì request để trả về tên đối tượng là GetName Để nhận thuộc tính
Comments của đối tượng, request là
GetComments
theProject = av.Getproject theProjectName = theProject.Getname theDate = theProject.GetCreationDate theUserName = theProject.GetCreator
Trang 21Thiết lập các thuộc tính của
đối tượng
Bạn thiết lập các thuộc tính của đối tượng bắt đâu với từ khóa Set cộng với tên của thuộc tính Ví dụ nếu thuộc
tính của đối tượng là Name thì request thay đổi tên là SetName Để thay đổi thuộc tính Icon của Button hoặc Tool
ta sử dụng request SetIcon
av.SetName("ACME GIS Company") theTool.SetIcon(someIcon)
theTool.SetHelp("A Tool”)
Trang 22Table document
Trang 23Table document
Dữ liệu trình bày thành dạng bảng được
chứa trong Vtab Nó cho phép người sử dụng chỉnh sửa thứ tự của các bản ghi
và các trường trong bảng Trường (field)
bố trí theo cột, bản ghi (record) bố trí
theo hàng.
Table cung cấp giao diện người dùng với
các chức năng trong Vtab như: chọn,
xóa, xuất, thống kê các bản ghi, nhập
và liên kết hai bảng có trường chung.
Trang 26Table document
Thao tác với bảng
BlinkRow ( aRowNumber )
BuildQuery
ConvertRecordToRow ( aRecordNumber ) : Number
ConvertRowToRecord ( aRowNumber ) : Number
Trang 27 Dữ liệu dạng đi cùng với Theme
Truy xuất vào các bản ghi:
for each record in aVTab
v = aVTab.ReturnValue(aField, record) end
Trang 28 Vtab tối ưu việc truy cập các bản ghi
Mỗi khi ReturnValue hoặc một request tương tự đọc một trường của một bản
ghi từ đĩa, toàn bộ bản ghi được đọc vào
bộ nhớ.
Duyệt qua tất cả các trường của bản ghi
for each record in aVTab for each f in aVTab.GetFields
v = aVTab.ReturnValue(f, record) end
Trang 29 Khi thay đổi giá trị trong Vtab hoặc thêm, xóa trường hoặc bản ghi, bạn phải dùng Request bắt đầu với từ khóa
Can để thực hiện các thao tác.
Ví dụ:
Trang 30Làm việc với FTabs
Khi bạn muốn làm việc với bảng dữ liệu thuộc tính của theme, bạn làm việc với Ftab thừa kế từ Vtab nhưng khác với
Vtab bởi vì Ftab miêu tả việc kết hợp dữ liệu của bảng với đăc trưng của Theme
Trang 31Ví dụ Vtab và Ftab
aVTab = av.GetProject.FindDoc("Attributes of
Theme2.shp").GetVTab
if (aVTab = nil) then
msgbox.info("Khong ton tai bang du lieu","Thong
bao") exit
end
for each record in aVTab
for each f in aVTab.GetFields
v = aVTab.ReturnValue(f,record)
msgbox.info(v.asString,"Ket qua")
end
Trang 32Làm việc với FTab
Một Ftab là duy nhất bởi nó đi liền với một trường Shape.
Trang 33Ví dụ Vtab trong Table1.dbf có ba trường: X, Y và ID
An FTab is created whose shape field is built from the
X, Y fields in aVTab.
' Table1 contains X, Y and ID fields.
aVTab = av.GetProject.FindDoc( "table1.dbf" ).GetVTab
' Get the fields to copy from aVTab
xV = aVTab.FindField( "X" )
yV = aVTab.FindField( "Y" )
idV = aVTab.FindField( "ID" )
' Create an FTAB and get its fields
myFTab = FTab.MakeNew( "myFile.dbf".AsFileName, POINT )
myFTab.AddFields( {idV.clone} )
idF = myFTab.FindField( "id" )
shapeF = myFTab.FindField( "shape" )
' copy each row in the VTab to the new FTab
for each i in aVTab
' Get the values from aVTab
myFTab.SetValue( shapeF, newRec, x@y )
myFTab.SetValue( idF, newRec, id )
Trang 34Hiểu về List
List là một tập hợp các đối tượngđược sắp xếp có thứ tự List có thể chứa bất kỳ kiểu đối tượng nào List thật hữu
ích bởi chúng có thể dùng chúng trong vòng lặp Bạn có thể lấy từng phần tử trong mảng dùng chỉ số Chỉ số List bắt đầu từ 0.
Trang 35 Bạn có thể tạo một List với request Make
và rồi Add những phần tử vào List
Trang 36 Dùng request Set để thay thế
phần tử tại vị trí chỉ định với giá trị mới
myList.Set(1, "Blue")
Để lấy một phần tử từ List, dùng
request Get
anElement = myList.Get(1)
Trang 37Mở một bảng