




已閱讀5頁,還剩2頁未讀, 繼續(xù)免費閱讀
版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
MapObject特征查詢二、實驗內(nèi)容、步驟和結(jié)果(要求:詳細寫清楚本次實驗的完成的主要內(nèi)容、具體實施步驟和實驗結(jié)果。紙張不夠可以自行添加。)一、 打開一個VB標準工程,該工程包含兩個窗體Form1和Form2。分別對兩個窗體進行界面設計。具體的設計步驟如下所示:(1) 在工程中添加部件:ESRI MapObjects 2.2,Microsoft FlexGrid control 6.0 (2) 在Form1中添加一個Map控件和一個command控件,在Map中添加相應的數(shù)據(jù),以便運行時使用。設計完的Form1如下圖所示:(3) Form2 是該實驗中界面設計的主要部分,其設計界面如下圖所示:二、 編寫相應的代碼(1) 在Form1的代碼窗口中編寫如下代碼,實現(xiàn)單擊查詢按鈕后顯示查詢窗體的界面。Private Sub Command1_Click()Form2.ShowEnd Sub運行程序前先在Map1中添加圖形文件【整的思路:窗體加載時,在combo1中則顯示地圖的所有圖層(該地圖為多圖層地圖),點擊combo1則會在list1 中出現(xiàn)對應選擇圖層圖層的屬性名,點擊list1則會在list2中顯示出與list1先對應屬性的屬性值?!浚?) 在Combo1中添加圖層,在窗體加載時,就在Combo1中顯示圖層名。 Private Sub Form_Load() Call loadlys 定義一個加載子過程End SubPrivate Sub loadlyrs() 申明子過程 Combo1.Clear 清空 For Each lyr In Form1.Map1.Layers lyr為圖層 If lyr.LayerType = moMapLayer Then Combo1.AddItem lyr.Name End If Next lyr Combo1.ListIndex = 0End Sub (3)點擊combo1設置combo1中選中的圖層,并將該圖層的(記錄集:records)屬性名加載到list1中。Private Sub Combo1_click() List1.Clear Set lyr = Form1.Map1.Layers(Combo1.ListIndex) lyr為當前combo1中選中的圖層 Set pRect = lyr.Records Set tDesc = pRect.TableDesc For i = 0 To tDesc.FieldCount 1 將combo1中選中圖層的屬性名依次加入到list1中 List1.AddItem tDesc.FieldName(i) Next iEnd SubB、單擊字段名列表中的字段在字段值列表中顯示相應的字段值Private Sub List1_Click() List2.Clear Set pRect = lyr.Records pRect.MoveFirst Dim strField As String strField = List1.List(List1.ListIndex) While Not pRect.EOF List2.AddItem pRect.Fields(strField).ValueAsString pRect.MoveNext WendEnd Sub該步驟運行結(jié)果如圖所示:(4) 雙擊列表框(list)中的字段名、字段值;單擊按鈕構(gòu)建查詢語句,并使查詢的SQL語句在文本框(textbox)中顯示:首先輸入list1中的屬性名Private Sub List1_DblClick() 雙擊 Dim tempstring As String tempstring = Right(Text1.Text, 3) If tempstring = And Or tempstring = or Or tempstring = ! Then Text1.Text = Text1.Text & & List1 Else Text1.Text = Text1.Text & List1 End IfEnd Sub然后選擇list2中對應的屬性值,此時要進行判斷,要不構(gòu)建的where語句將出錯Private Sub List2_DblClick() Dim strSQL As String If pRect.Fields(List1.List(List1.ListIndex).Type = moString Then 使用type判斷其屬性值類型 Text1.Text = Text1.Text & & List2 & Else Text1.Text = Text1.Text & List2 End IfEnd Sub該部分運行結(jié)果如圖所示:(5) 點擊“查詢”按鈕,在MSHFlexGrid1中顯示相應的屬性表 “太難可省Private Sub Command2_Click(Index As Integer) Set g_sRecordset = lyr.SearchExpression(Text1.Text) With MSFlexGrid1 .Cols = tDesc.FieldCount 測試:人工統(tǒng)計方法 g_sRecordset.MoveFirst While Not g_sRecordset.EOF pCount = pCount + 1 g_sRecordset.MoveNext Wend .Rows = pCount + 1 .AllowUserResizing = flexResizeColumns .Clear End With For i = 0 To tDesc.FieldCount - 1 MSFlexGrid1.TextMatrix(0, i) = tDesc.FieldName(i) Next i r控制行,c控制列 Dim r As Integer Dim c As Integer g_sRecordset.MoveFirst For r = 1 To pCount For c = 0 To tDesc.FieldCount - 1 MSFlexGrid1.TextMatrix(r, c) = g_sRecordset.Fields(tDesc.FieldName(c).Value Next c g_sRecordset.MoveNext Next rEnd Sub運行結(jié)果如下所示:(6)雙擊屬性值,居中顯示圖形:Private Sub MSFlexGrid1_dblClick() g_sRecordset.MoveFirst For i = 0 To pCount - 1 g_sRecordset.MoveNext Next i Dim theshape As Object Dim shapeX As Double Dim shapeY As Double Dim rect As Rectangle g_sRecordset.MoveFirst Set theshape = g_sRecordset(shape).Value If g_sRecordset(shape).Type = moPoint Then shapeX = g_sRecordset(shape).Value.X shapeY = g_sRecordset(shape).Value.Y Form1.Map1.CenterAt shapeX, shapeY Else Set rect = g_sRecordset(shape).Value.Extent rect.ScaleRectangle 1.2 Form1.Map1.Extent = rect End IfEnd Sub(7)編寫閃爍、清除、取消三個按鈕的代碼,并運行程序:清除SQL構(gòu)造框Private Sub Command3_Click()Text1.Text = MSFlexGrid1.ClearEnd Sub閃爍Private Sub Command4_Click()Dim shp as mapobject2.polygonSet g_sRecordset = lyr.S
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024-2025年商旅行業(yè)市場前景及投資研究報告:管理市場
- 穆棱輔警考試題庫2024
- 老王說課課件模板
- 2025年汝陽縣社區(qū)工作者招聘考試筆試試題(含答案)
- 老年護理安全課件
- 老年護理壓瘡課件
- 老年中醫(yī)養(yǎng)生教學課件
- 知識產(chǎn)權密集型部分股份轉(zhuǎn)讓合同樣本
- 生態(tài)農(nóng)業(yè)部分股權投資與產(chǎn)業(yè)鏈整合合同
- 餐飲連鎖企業(yè)員工福利待遇合同范本
- 廣東省湛江市雷州市2023-2024學年六年級下學期4月月考綜合試題
- 護理MDT多學科協(xié)作模式
- 《槍炮、病菌與鋼鐵》讀書分享交流會
- DB13-T1431-2011森林消防物資儲備庫建設和管理規(guī)范
- 煙臺市開發(fā)區(qū)行業(yè)報告
- 臨床男科學與男科疾病診療
- 乳腺癌輔助化療
- 10kV試驗報告模板-大全
- 醫(yī)院保潔服務投標方案(完整技術標)
- 范卿平人教版初三化學講義全集
- 產(chǎn)科運用PDCA循環(huán)降低入室新生兒低血糖發(fā)生率品管圈成果匯報
評論
0/150
提交評論