欢迎来到冰豆网! | 帮助中心 分享价值,成长自我!
冰豆网
全部分类
  • IT计算机>
  • 经管营销>
  • 医药卫生>
  • 自然科学>
  • 农林牧渔>
  • 人文社科>
  • 工程科技>
  • PPT模板>
  • 求职职场>
  • 解决方案>
  • 总结汇报>
  • 党团工作>
  • ImageVerifierCode 换一换
    首页 冰豆网 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

    mo+vb程序设计报告.docx

    • 资源ID:23020646       资源大小:958.86KB        全文页数:19页
    • 资源格式: DOCX        下载积分:10金币
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录
    二维码
    微信扫一扫登录
    下载资源需要10金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,免费下载
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    mo+vb程序设计报告.docx

    1、mo+vb程序设计报告本科学生验证性实验报告姓名 学号 专业 GIS 班级 10地信 实验课程名称 GIS设计与开发 指导教师及职称 开课学期 2013 至 2014 学年 第一 学期上课时间 2013 年 12 月 15 日云南师范大学旅游与地理科学学院地理信息系统系一、实验设计实验名称:条件查询 实验时间:2013-12-15小组合作:是()否()小组成员:无1、 实验内容(含实验原理介绍):1.1设计软件界面1.2进行编程并进行调试1.3对程序进行优化并进行调试1.4实现如下界面功能:功能解析:1.4.1能够通过点击条件组合得到查询条件,基于MO提供的空间关系进行查询,并显示查询结果;1

    2、.4.2能够根据查询结果得到属性表,并显示查询结果;1.4.3根据查询出来的结果进行空间定位与显示。2、 实验目的:学会使用SearchExpression方法,能利用这种方法进行条件查询,并能将查询结果进行显示,能根据查询记录定位、显示地理要素。3、 设计实验相关情况介绍(包含使用软件以及实验设备等):(1)使用软件:MO软件和VB软件(2)实验设备:计算机、Windows7系统、键盘、鼠标等。4、 实验过程、方法步骤: 4.1设计软件界面首先新建一个查询窗体,并设计其界面然后添加一个窗体,在添加一个按钮,作为空间查询点击的入口按钮4.2进行编程并进行调试4.2.1在主窗体中点击“条件查询”

    3、,显示条件查询窗体代码如下:Private Sub Command1_Click()Form1.ShowEnd Sub4.2.2使地图的各图层的名在下拉菜单combo1中显示,并使下拉菜单字段名在list1中显示,即得到如下结果的功能代码如下:使地图的各图层的名在下拉菜单combo1中显示Private Sub Form_Load()Dim plyr As New MapObjects2.MapLayerFor Each plyr In Form2.Map1.Layers Combo1.AddItem plyr.NameNext plyrCombo1.ListIndex = 0Text1.Te

    4、xt = End Sub使下拉菜单字段名在list1中显示Private Sub Combo1_Click()Set lyr = Form2.Map1.Layers(Combo1.ListIndex)Set precord = lyr.RecordsDim ptable As New MapObjects2.TableDescSet ptable = precord.TableDesclist1.ClearDim i As IntegerFor i = 0 To ptable.FieldCount - 1 list1.AddItem ptable.FieldName(i)Next iEnd S

    5、ub4.2.3在list1中点击属性,在list2显示属性值,即得到如下结果的功能代码如下:在list1中点击属性,在list2显示属性值Private Sub list1_Click()Dim pfldname As Stringpfldname = list1.List(list1.ListIndex)list2.Clearprecord.MoveFirstWhile Not precord.EOF list2.AddItem precord.Fields(pfldname).ValueAsString precord.MoveNextWendEnd Sub4.2.4在text1中获得查询

    6、条件(即双击list1字段名,双击list2字段名,然后在text1中显示,单击表达式构造符号按钮在text1中显示),即得到如下结果的功能代码如下:双击list1字段名,在text中显示Private Sub list1_DblClick() Text1.Text = Text1.Text + list1.List(list1.ListIndex)End Sub双击list2字段名,在text中显示Private Sub list2_DblClick() Text1.Text = Text1.Text + list2.List(list2.ListIndex)End Sub单击各个符号在te

    7、xt1中进行显示Private Sub Command5_Click()Text1.Text = Text1.Text + Command5.CaptionEnd SubPrivate Sub Command6_Click()Text1.Text = Text1.Text + Command5.captionEnd SubPrivate Sub Command7_Click()Text1.Text = Text1.Text + and End SubPrivate Sub Command8_Click()Text1.Text = Text1.Text + Command8.captionEnd

    8、 SubPrivate Sub Command9_Click()Text1.Text = Text1.Text + Command9.captionEnd SubPrivate Sub Command10_Click()Text1.Text = Text1.Text + or End SubPrivate Sub Command11_Click()Text1.Text = Text1.Text + Command11.captionEnd SubPrivate Sub Command12_Click()Text1.Text = Text1.Text + Command12.captionEnd

    9、 SubPrivate Sub Command13_Click()Text1.Text = Text1.Text + not End SubPrivate Sub Command14_Click()Text1.Text = Text1.Text + Command14.captionEnd SubPrivate Sub Command15_Click()Text1.Text = Text1.Text + Command15.captionEnd SubPrivate Sub Command16_Click()Text1.Text = Text1.Text + like End Sub4.2.5

    10、获得查询条件,进行查询并在地图中进行显示以及获得属性表,得到如下结果代码如下:Public record As MapObjects2.Recordset 定义查询的记录集Public ponoff As Boolean 定义一个开关,(由于在差un提运行时就开始查询,所以要定义开关,在窗体运行时处于关状态,点击查询时才开始查询)窗体运行时开关处于关状态Private Sub Form_Load()ponoff = FalseEnd Sub查询及其显示(由于AfterTrackingLayerDraw是Map的方法,所以应该在Map1下进行编辑代码)Private Sub Map1_After

    11、TrackingLayerDraw(ByVal hDC As stdole.OLE_HANDLE)If ponoff = True ThenSet record =Form2.Map1.Layers(Form1.Combo1.ListIndex).SearchExpression(Form1.Text1.Text) Dim psym As New MapObjects2.Symbol psym.Color = moRed Form2.Map1.DrawShape record, psymEnd IfEnd Sub点击查询时,属性表的显示Public Sub DisplaySelFeature(

    12、) If Not record Is Nothing Then Dim tDesc As MapObjects2.TableDesc Dim i As Integer Set tDesc = record.TableDesc Dim recscount As Integer * 以下代码用来填充msgflexgrid Dim m As Integer Dim n As Integer record.MoveFirst Do While Not record.EOF record.MoveNext recscount = recscount + 1 Loop MsgBox recsCount F

    13、orm1.MSFlexGrid1.Cols = tDesc.FieldCount + 1 Form1.MSFlexGrid1.Rows = recscount + 1 Form1.MSFlexGrid1.AllowUserResizing = flexResizeColumns Form1.MSFlexGrid1.Clear Form1.MSFlexGrid1.CellAlignment = flexAlignLeftCenter For i = 1 To tDesc.FieldCount Form1.MSFlexGrid1.ColWidth(i) = tDesc.FieldLength(i

    14、- 1) * 72 Next i to filled the fields name into grid Form1.MSFlexGrid1.TextMatrix(0, 0) = 特征 ID For i = 1 To recscount Form1.MSFlexGrid1.TextMatrix(i, 0) = i Form1.MSFlexGrid1.CellAlignment = flexAlignLeftCenter Next i For i = 0 To tDesc.FieldCount - 1 Form1.MSFlexGrid1.TextMatrix(0, i + 1) = tDesc.

    15、FieldName(i) Form1.MSFlexGrid1.ColAlignment(i) = flexAlignLeftCenter Form1.MSFlexGrid1.ColWidth(i) = 1200 Next i Form1.MSFlexGrid1.ColAlignment(0) = flexAlignCenterCenter Form1.MSFlexGrid1.ColWidth(0) = 680 record.MoveFirst For m = 1 To recscount For n = 0 To tDesc.FieldCount - 1 Form1.MSFlexGrid1.T

    16、extMatrix(m, n + 1) = record.Fields(tDesc.FieldName(n).Value Next n record.MoveNext Next record.MoveFirst Form1.MSFlexGrid1.Refresh End IfEnd Sub点击查询按钮进行查询(实际查询过程在 Map1_AfterTrackingLayerDraw过程中,这里点击查询按钮,用开关进行控制查询)Private Sub Command1_Click() ponoff = True Form2.Map1.Refresh DisplaySelFeatureEnd Sub

    17、4.2.6清除功能的实现,点击清除功能,对text1以及属性表MSFlexGrid1中的条件进行清除代码如下:清除功能:Private Sub Command2_Click()Text1.Text = Form1.MSFlexGrid1.ClearSet record = NothingForm2.Map1.RefreshEnd Sub4.2.7闪烁功能的实现,对选择出来的结果进行闪烁代码如下:进行闪烁Private Sub Command3_Click() Form2.Map1.FlashShape record(shape).Value, 3End Sub4.2.8居中共能的实现,即对选中

    18、的结果进行居中显示代码如下:进行居中显示Private Sub Command4_Click() Dim Rect As Rectangle, Rect2 As Rectangle Dim shapeX As Double, shapeY As Double Dim deltax As Double, deltay As Double Dim theShape As Object, pinPoint As MapObjects2.Point Dim i As Integer Dim recNo As Integer recNo = MSFlexGrid1.Row - 1 record.Move

    19、First 记录指针移动到属性数据表选择中的记录上 For i = 0 To recNo - 1 record.MoveNext Next i Set theShape = record(shape).Value If record(shape).Type = moPoint Then Set Rect2 = Form2.Map1.Extent shapeX = record(shape).Value.X shapeY = record(shape).Value.Y deltax = shapeX - Rect2.Center.X deltay = shapeY - Rect2.Center.

    20、Y Rect2.Offset deltax, deltay Rect2.ScaleRectangle 0.1 Form2.Map1.Extent = Rect2 Else Set Rect = record(shape).Value.Extent Rect.ScaleRectangle 1.1 Form2.Map1.Extent = Rect End If Set Rect2 = Nothing Set theShape = NothingEnd Sub5、 实验结果:5.1查询功能运行的结果面查询:线查询:点查询:5.2清除功能的实现查询:然后再清除:5.3闪烁功能的实现先查询后闪烁5.4居中功能的实现先查询后居中6、 实验小结(出现过的问题或错误、原因分析):6.1在实验过程中,对VB编程的不熟悉,导致速度很慢。6.2在实验过程中,由于对很对函数的作用不了解,很多时候需要查看帮助。6.3在实验过程中,出现多次语法等错误导致结果出不来。还得需要老师的帮助或看老师的代码才能解决问题,自主编程能力差,还需要多家练习。6.4功能不完善,在进行调试的时候,出现很多问题和漏洞还不能解决。 指导老师评语:指导老师签名: 2013年 月 日


    注意事项

    本文(mo+vb程序设计报告.docx)为本站会员主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2022 冰点文档网站版权所有

    经营许可证编号:鄂ICP备2022015515号-1

    收起
    展开