




已閱讀5頁,還剩2頁未讀, 繼續(xù)免費(fèi)閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
MapObject特征查詢二、實(shí)驗(yàn)內(nèi)容、步驟和結(jié)果(要求:詳細(xì)寫清楚本次實(shí)驗(yàn)的完成的主要內(nèi)容、具體實(shí)施步驟和實(shí)驗(yàn)結(jié)果。紙張不夠可以自行添加。)一、 打開一個(gè)VB標(biāo)準(zhǔn)工程,該工程包含兩個(gè)窗體Form1和Form2。分別對(duì)兩個(gè)窗體進(jìn)行界面設(shè)計(jì)。具體的設(shè)計(jì)步驟如下所示:(1) 在工程中添加部件:ESRI MapObjects 2.2,Microsoft FlexGrid control 6.0 (2) 在Form1中添加一個(gè)Map控件和一個(gè)command控件,在Map中添加相應(yīng)的數(shù)據(jù),以便運(yùn)行時(shí)使用。設(shè)計(jì)完的Form1如下圖所示:(3) Form2 是該實(shí)驗(yàn)中界面設(shè)計(jì)的主要部分,其設(shè)計(jì)界面如下圖所示:二、 編寫相應(yīng)的代碼(1) 在Form1的代碼窗口中編寫如下代碼,實(shí)現(xiàn)單擊查詢按鈕后顯示查詢窗體的界面。Private Sub Command1_Click()Form2.ShowEnd Sub運(yùn)行程序前先在Map1中添加圖形文件【整的思路:窗體加載時(shí),在combo1中則顯示地圖的所有圖層(該地圖為多圖層地圖),點(diǎn)擊combo1則會(huì)在list1 中出現(xiàn)對(duì)應(yīng)選擇圖層圖層的屬性名,點(diǎn)擊list1則會(huì)在list2中顯示出與list1先對(duì)應(yīng)屬性的屬性值?!浚?) 在Combo1中添加圖層,在窗體加載時(shí),就在Combo1中顯示圖層名。 Private Sub Form_Load() Call loadlys 定義一個(gè)加載子過程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)點(diǎn)擊combo1設(shè)置combo1中選中的圖層,并將該圖層的(記錄集:records)屬性名加載到list1中。Private Sub Combo1_click() List1.Clear Set lyr = Form1.Map1.Layers(Combo1.ListIndex) lyr為當(dāng)前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、單擊字段名列表中的字段在字段值列表中顯示相應(yīng)的字段值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該步驟運(yùn)行結(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中對(duì)應(yīng)的屬性值,此時(shí)要進(jìn)行判斷,要不構(gòu)建的where語句將出錯(cuò)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該部分運(yùn)行結(jié)果如圖所示:(5) 點(diǎn)擊“查詢”按鈕,在MSHFlexGrid1中顯示相應(yīng)的屬性表 “太難可省Private Sub Command2_Click(Index As Integer) Set g_sRecordset = lyr.SearchExpression(Text1.Text) With MSFlexGrid1 .Cols = tDesc.FieldCount 測(cè)試:人工統(tǒng)計(jì)方法 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運(yùn)行結(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)編寫閃爍、清除、取消三個(gè)按鈕的代碼,并運(yùn)行程序:清除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等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 暑期家庭教育活動(dòng)方案
- 未央餐飲活動(dòng)策劃方案
- 服裝店優(yōu)惠活動(dòng)方案
- 村級(jí)敬老活動(dòng)方案
- 期末備戰(zhàn)活動(dòng)方案
- 木門砍價(jià)活動(dòng)方案
- 服飾公司周年慶活動(dòng)方案
- 村居開展八一活動(dòng)方案
- 機(jī)關(guān)文化體育活動(dòng)方案
- 機(jī)關(guān)工會(huì)助學(xué)活動(dòng)方案
- GB/T 45719-2025半導(dǎo)體器件金屬氧化物半導(dǎo)體(MOS)晶體管的熱載流子試驗(yàn)
- 寶媽日常心理護(hù)理
- 2025年社會(huì)學(xué)概論測(cè)試題含答案(附解析)
- 2025-2030年環(huán)境工程產(chǎn)業(yè)深度調(diào)研及發(fā)展趨勢(shì)與投資戰(zhàn)略研究報(bào)告
- 2025年事業(yè)單位公開招聘考試(E類)《綜合應(yīng)用能力西醫(yī)臨床》試卷真題及完整解析
- 保險(xiǎn)公司保單管理制度
- 2025年中國AI翻譯行業(yè)市場全景分析及前景機(jī)遇研判報(bào)告
- 2025-2030中國酶聯(lián)免疫吸附測(cè)定(ELISA)行業(yè)市場發(fā)展趨勢(shì)與前景展望戰(zhàn)略研究報(bào)告
- 2024年安徽大學(xué)專職輔導(dǎo)員招聘筆試真題
- GB 9743-2024轎車輪胎
- 消防器材購銷合同2
評(píng)論
0/150
提交評(píng)論