




已阅读5页,还剩2页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
MapObject特征查询二、实验内容、步骤和结果(要求:详细写清楚本次实验的完成的主要内容、具体实施步骤和实验结果。纸张不够可以自行添加。)一、 打开一个VB标准工程,该工程包含两个窗体Form1和Form2。分别对两个窗体进行界面设计。具体的设计步骤如下所示:(1) 在工程中添加部件:ESRI MapObjects 2.2,Microsoft FlexGrid control 6.0 (2) 在Form1中添加一个Map控件和一个command控件,在Map中添加相应的数据,以便运行时使用。设计完的Form1如下图所示:(3) Form2 是该实验中界面设计的主要部分,其设计界面如下图所示:二、 编写相应的代码(1) 在Form1的代码窗口中编写如下代码,实现单击查询按钮后显示查询窗体的界面。Private Sub Command1_Click()Form2.ShowEnd Sub运行程序前先在Map1中添加图形文件【整的思路:窗体加载时,在combo1中则显示地图的所有图层(该地图为多图层地图),点击combo1则会在list1 中出现对应选择图层图层的属性名,点击list1则会在list2中显示出与list1先对应属性的属性值。】(2) 在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该步骤运行结果如图所示:(4) 双击列表框(list)中的字段名、字段值;单击按钮构建查询语句,并使查询的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中对应的属性值,此时要进行判断,要不构建的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该部分运行结果如图所示:(5) 点击“查询”按钮,在MSHFlexGrid1中显示相应的属性表 “太难可省Private Sub Command2_Click(Index As Integer) Set g_sRecordset = lyr.SearchExpression(Text1.Text) With MSFlexGrid1 .Cols = tDesc.FieldCount 测试:人工统计方法 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运行结果如下所示:(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构造框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. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 管道安装考试题及答案
- 孤儿救助考试题及答案
- 幼儿园教学教案设计:不跟陌生人走
- 我最喜爱的书籍读后感(5篇)
- 防范病毒考试题及答案
- (正式版)DB15∕T 3685-2024 《严寒地区预制拼装箱型涵洞设计与施工技术规范》
- 车辆买卖合同及其附加条款
- (正式版)DB15∕T 3651-2024 《光伏项目防沙治沙技术规程》
- 动物口语考试题及答案
- 顶尖学校考试题及答案
- 2025年医疗工作人员定向招聘考试笔试试题(含答案)
- 第二单元混合运算单元测试卷(含答案) 2025-2026学年人教版三年级数学上册
- 2025年中央一号文件客观题及参考答案
- 出境人员行前安全培训课件
- 俄乌局势进展
- 2025甘肃兰州兴蓉环境发展有限责任公司招聘内控管理岗等岗位5人笔试模拟试题及答案解析
- 苏教版三年级上册数学全册教学设计(配2025年秋新版教材)
- 用电安全与消防知识培训课件
- 2025年法考真题及答案
- 绘本《其实我很喜欢你》冯玉梅
- 国家开放大学《人文英语4》边学边练参考答案
评论
0/150
提交评论