已阅读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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 冷藏柜购销合同范本
- 内部孵化项目协议书
- 河北省尚义县人民政府招聘工作人员易考易错模拟试题(共500题)试卷后附参考答案
- 江西吉安井冈山市展览馆接待员和讲解员招考(4人)易考易错模拟试题(共500题)试卷后附参考答案
- 柑橘种植托管协议书
- 养老用钱协议书范本
- 校园维修委托协议书
- 无锡市惠山经济发展总公司招考6名工作人员易考易错模拟试题(共500题)试卷后附参考答案
- 服务类合同关闭协议
- 广西壮族自治区水牛研究所招考工作人员易考易错模拟试题(共500题)试卷后附参考答案
- 浙江省杭州市西湖区2023-2024学年七年级上学期期末数学试卷(含答案)
- 德州扑克大赛策划方案
- 乡村电商与数字化农业的结合
- 新版药品批发企业质量管理体系文件大全
- 2023年汽车内饰行业市场分析报告及未来发展趋势
- 公司内外部环境风险与机遇评价表
- 环境友好型纳米农药研究进展
- 近距离放射治疗-后装治疗课件
- 青岛版科学四年级上册全册练习题(含答案)
- 带电班工作总结讲课稿
- 人人爱设计学习通课后章节答案期末考试题库2023年
评论
0/150
提交评论