1 / 40

Sử dụng Avenue

Sử 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. Dòng lệnh đầu tiên trong một Script Avenue là gì?.

glenna
Download Presentation

Sử dụng Avenue

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Sử 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.

  2. Dò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")

  3. Hiể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.

  4. Hiểu về mô hình lược đồ đối tượng

  5. Cá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)

  6. Kiểu quan hệ thừa kế • Đôi khi gọi là “Kind of”

  7. Kiểu quan hệ hợp thành • Đôi khi gọi là kiểu quan hệ "composed of".

  8. Kiể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.

  9. Kiể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

  10. Kiểu kết hợp không hoặc nhiều • Dùng một đường thẳng và một hình tròn đặc. • Kiểu kết hợp không hoặc nhiều thường được dùng trong request FindThe zero or many association myTheme = theView.FindDoc("Streets")

  11. Cá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

  12. Các từ khóa Request • Khi lập trình với Avenue, lược đồ mô hình đối tượng 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.

  13. Get • Khi hai đối tượng có quan hệ 1,1 sử dụng request Get để nhận đối tượng kế tiếp. Ví dụ request GetProject và GetWin được sử dụng trong kiểu kết hợp 1,1. • Ví dụ: theView = av.GetActiveDoc

  14. Find • 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ử dụng để tìm một document. FindDoc có một tham số truyền vào là tên document mà bạn muốn tìm kiếm. • Ví dụ: addressField = addressVTab.FindField("Address")

  15. Set • 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)

  16. Make • Khi bạn cần khởi tạo một đối tượng mới, bạn dùng request Make. • Ví dụ aGeoName = GeoName.Make(aMatchSource, addressVTab, addressField, zipField)

  17. As • 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

  18. Cá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)

  19. Sử 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.GetprojecttheProjectName = theProject.GetnametheDate = theProject.GetCreationDatetheUserName = theProject.GetCreatortheComments = theProject.GetComments

  20. Thiế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”)

  21. Table document Mô hình đối tượng Table

  22. Table 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.

  23. Table document • Các thuộc tính • ActiveField: một bảng có một trường được chọn như thao tác sắp xếp. • FindString • Vtab: Là đối tượng cho phép người dùng tương tác với table. • Tạo Table • Make ( aVTab ) : Table • MakeWithGUI ( aVTab, aGUIName ) : Table

  24. Table document • Nhận và thiết lập các thuộc tính • GetActiveField : Field • GetEditor : Obj • GetFindString : String • GetVTab : VTab • SetActiveField ( aField ) • Các tương tác (Chỉ chấp nhận cho các sự kiện) • EditValues • GetUserField : Field • GetUserRow : Number • Select

  25. Table document • Thao tác với bảng • BlinkRow ( aRowNumber ) • BuildQuery • ConvertRecordToRow ( aRecordNumber ) : Number • ConvertRowToRecord ( aRowNumber ) : Number • EditProperties • Find ( aString ) : Number • MakeField : Field • Print • PromoteSelection • ShowCodepage • ShowRow ( aRowNumber ) • Sort ( aField, isDescending ) • StopEditing • Tương tác với Clipboard • Copy • Cut • GetEditString : String • Paste

  26. VTab • Quản lý các bảng dữ liệu • Có ba loại Table mà Vtab quản lý: • Dữ liệu dạng Grid • Dữ liệu dạng Chart • 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

  27. VTab • 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 end

  28. VTab • 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ụ: • CanEdit trước khi dùng SetEdit • CanAddRecord trước khi dùng AddRecord

  29. Là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.

  30. Ví 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 end

  31. Là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.

  32. Ví 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 x = aVTab.ReturnValue( xV , i) y = aVTab.ReturnValue( yV, i ) id = aVTab.ReturnValue( idV, i ) ' create the next row and add values newRec = myFTab.AddRecord myFTab.SetValue( shapeF, newRec, x@y ) myFTab.SetValue( idF, newRec, id ) end myView.AddTheme( FTheme.Make( myFTab ))

  33. Hiể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.

  34. List • 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. myList = List.MakemyList.Add("Red")myLIst.Add("201") myList.Add(myView)myList.Add(anotherList) • Dùng request Insert để chèn một phần tử tại vị trí bắt đầu của List. myList.Insert(today)

  35. List • 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)

  36. Mở một bảng

  37. Code theProject = av.GetProjecttheTable = theProject.FindDoc("ZIPCodes")theWin = theTable.GetWintheWin.Open

  38. theField = av.GetActiveDoc.GetActiveField fname = theField.GetName falias = theField.GetAlias ftype = theField.GetType fwidth = theField.GetWidth fprec = theField.GetPrecision fstat = theField.GetStatus fpwidth = theField.GetPixelWidth feditable = theField.IsEditable msgbox.Report("Name: "+fname+NL+ "Alias: "+falias+NL+ "Type: "+ftype.asstring+NL+ "Width: "+fwidth.asstring+NL+ "Precision: "+fprec.asstring+NL+ "Status: "+fstat.asstring+NL+ "Pixel Width: "+fpwidth.asstring+NL+ "Editable: "+feditable.AsString, "Field Properties")

More Related