热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

vb+ae属性查询函数

属性查询函数PrivateSubQueryByAttribute(ByRefoperatorAsesriSelectionResultEnum)DimpFea

  '属性查询函数
    Private Sub QueryByAttribute(ByRef operator As esriSelectionResultEnum)
        Dim pFeatureLayer As IGeoFeatureLayer
        Dim j As Integer
        Dim i As Integer
        Dim pFeatureselection As IFeatureSelection
        Dim pActiveView As IActiveView
        Dim pFields As IFields
        Dim pField As IField
        Dim FieldID As Integer
        Dim operatorString As String
        Dim whereClause As String
        Dim pFilter As IQueryFilter
        Dim attName As String
        Dim attValue As Object

        On Error GoTo ErrorHandler

        '选择一个查询的条件,从下面的COMBO中。
        If ((lstAttribute.SelectedItems.Count <1) Or (txtValue.Text = "")) Then
            GiveWarning("警告", "你必须选择一个属性值!")
            Exit Sub
        End If

        For i = 0 To lstAttribute.Items.Count - 1
            If (lstAttribute.GetSelected(i)) Then
                attName = VB6.GetItemString(lstAttribute, i)
                i = lstAttribute.Items.Count
            End If
        Next i

        Select Case cboOperator.Text
            Case "等于"
                operatorString = "="
            Case "不等于"
                operatorString = "<>"
            Case "小于"
                operatorString = "<"
            Case "大于"
                operatorString = ">"
            Case "小于或等于"
                operatorString = "<="
            Case "大于或等于"
                operatorString = ">="
        End Select

        pActiveView = m_pMap
        pActiveView.PartialRefresh(esriViewDrawPhase.esriViewGeoSelection, Nothing, Nothing)
        For j = 0 To lstClass.Items.Count - 1
            If (lstClass.GetSelected(j)) Then
word="vbup1037"”
                If (FoundLayer(VB6.GetItemString(lstClass, j), pFeatureLayer)) Then
                    pFeatureselection = pFeatureLayer
                    If (pFeatureLayer.Selectable) Then
                        ' Must convert the attribute value to the correct type
                        '必须以准确的类型传递属性值。
                        pFields = pFeatureLayer.FeatureClass.Fields
                        FieldID = pFeatureLayer.FeatureClass.FindField(attName)
                        pField = pFields.Field(FieldID)
                        attValue = txtValue.Text
                        Select Case pField.Type
                            '字段的类型。
                        Case esriFieldType.esriFieldTypeInteger
                                attValue = CShort(attValue)
                            Case esriFieldType.esriFieldTypeSingle
                                attValue = CShort(attValue)
                            Case esriFieldType.esriFieldTypeSmallInteger
                                attValue = CShort(attValue)
                            Case esriFieldType.esriFieldTypeDouble
                                attValue = CDbl(attValue)
                            Case esriFieldType.esriFieldTypeOID
                                attValue = CInt(attValue)
                            Case esriFieldType.esriFieldTypeString
                                attValue = CStr(attValue)
                                attValue = "'" & CStr(attValue) & "'"
                        End Select
                        whereClause = attName & operatorString & " " & CStr(attValue)
                        '设置条件,进行查询过滤。
                        pFilter = New QueryFilter
                        pFilter.SubFields = "*"
                        pFilter.WhereClause = whereClause
                        pFilter.OutputSpatialReference(attName) = m_pMap.SpatialReference
                        pFeatureselection.SelectFeatures(pFilter, operator, False)
                    Else
                        If (operator = esriSelectionResultEnum.esriSelectionResultNew) Then pFeatureselection.Clear()
                    End If
                End If
            Else
word="vbup1037"”
                If (FoundLayer(VB6.GetItemString(lstClass, j), pFeatureLayer)) Then
                    pFeatureselection = pFeatureLayer
                    If ((operator = esriSelectionResultEnum.esriSelectionResultNew) Or (operator = esriSelectionResultEnum.esriSelectionResultAnd)) Then pFeatureselection.Clear()
                End If
            End If
        Next j
        System.Diagnostics.Debug.WriteLine(pFeatureLayer.Name)
        pActiveView.PartialRefresh(esriViewDrawPhase.esriViewGeoSelection, Nothing, Nothing)
        '  m_pApp.StatusBar.message(0) = "被选择的对象数目为: " & CStr(m_pMap.SelectionCount)
        RefreshSelectButtons()

        Exit Sub
ErrorHandler:
        MsgBox("An unexpected error has occured with the Selection Dialog." & vbCr & vbCr & "Details : " & Err.Description, MsgBoxStyle.Exclamation + MsgBoxStyle.OKOnly, "Error")
    End Sub



推荐阅读
  • Iamtryingtomakeaclassthatwillreadatextfileofnamesintoanarray,thenreturnthatarra ... [详细]
  • 在Android开发中,使用Picasso库可以实现对网络图片的等比例缩放。本文介绍了使用Picasso库进行图片缩放的方法,并提供了具体的代码实现。通过获取图片的宽高,计算目标宽度和高度,并创建新图实现等比例缩放。 ... [详细]
  • 本文主要解析了Open judge C16H问题中涉及到的Magical Balls的快速幂和逆元算法,并给出了问题的解析和解决方法。详细介绍了问题的背景和规则,并给出了相应的算法解析和实现步骤。通过本文的解析,读者可以更好地理解和解决Open judge C16H问题中的Magical Balls部分。 ... [详细]
  • Python正则表达式学习记录及常用方法
    本文记录了学习Python正则表达式的过程,介绍了re模块的常用方法re.search,并解释了rawstring的作用。正则表达式是一种方便检查字符串匹配模式的工具,通过本文的学习可以掌握Python中使用正则表达式的基本方法。 ... [详细]
  • 利用Visual Basic开发SAP接口程序初探的方法与原理
    本文介绍了利用Visual Basic开发SAP接口程序的方法与原理,以及SAP R/3系统的特点和二次开发平台ABAP的使用。通过程序接口自动读取SAP R/3的数据表或视图,在外部进行处理和利用水晶报表等工具生成符合中国人习惯的报表样式。具体介绍了RFC调用的原理和模型,并强调本文主要不讨论SAP R/3函数的开发,而是针对使用SAP的公司的非ABAP开发人员提供了初步的接口程序开发指导。 ... [详细]
  • 本文讨论了如何使用IF函数从基于有限输入列表的有限输出列表中获取输出,并提出了是否有更快/更有效的执行代码的方法。作者希望了解是否有办法缩短代码,并从自我开发的角度来看是否有更好的方法。提供的代码可以按原样工作,但作者想知道是否有更好的方法来执行这样的任务。 ... [详细]
  • IOS开发之短信发送与拨打电话的方法详解
    本文详细介绍了在IOS开发中实现短信发送和拨打电话的两种方式,一种是使用系统底层发送,虽然无法自定义短信内容和返回原应用,但是简单方便;另一种是使用第三方框架发送,需要导入MessageUI头文件,并遵守MFMessageComposeViewControllerDelegate协议,可以实现自定义短信内容和返回原应用的功能。 ... [详细]
  • 本文介绍了一个从入门到高手的VB.NET源代码,通过学习这些源代码,可以在21天内成为VB.NET高手。文章提供了下载地址,并提醒读者加入作者的QQ群和收藏作者的博客。 ... [详细]
  • vb.net面试题,请大家帮忙,谢谢。如果需要讲详细一点,那就加我QQ531412815第4题,潜在的错误,这里的错误不是常规错误,属于那种只有在运行是才知道的错误:Catchex ... [详细]
  • Spring源码解密之默认标签的解析方式分析
    本文分析了Spring源码解密中默认标签的解析方式。通过对命名空间的判断,区分默认命名空间和自定义命名空间,并采用不同的解析方式。其中,bean标签的解析最为复杂和重要。 ... [详细]
  • CSS3选择器的使用方法详解,提高Web开发效率和精准度
    本文详细介绍了CSS3新增的选择器方法,包括属性选择器的使用。通过CSS3选择器,可以提高Web开发的效率和精准度,使得查找元素更加方便和快捷。同时,本文还对属性选择器的各种用法进行了详细解释,并给出了相应的代码示例。通过学习本文,读者可以更好地掌握CSS3选择器的使用方法,提升自己的Web开发能力。 ... [详细]
  • Spring特性实现接口多类的动态调用详解
    本文详细介绍了如何使用Spring特性实现接口多类的动态调用。通过对Spring IoC容器的基础类BeanFactory和ApplicationContext的介绍,以及getBeansOfType方法的应用,解决了在实际工作中遇到的接口及多个实现类的问题。同时,文章还提到了SPI使用的不便之处,并介绍了借助ApplicationContext实现需求的方法。阅读本文,你将了解到Spring特性的实现原理和实际应用方式。 ... [详细]
  • ZSI.generate.Wsdl2PythonError: unsupported local simpleType restriction ... [详细]
  • Ihaveaworkfolderdirectory.我有一个工作文件夹目录。holderDir.glob(*)>holder[ProjectOne, ... [详细]
  • vb.net不用多线程如何同时运行两个过程?不用多线程?即使用多线程,也不会是“同时”执行,题主只要略懂一些计算机编译原理就能明白了。不用多线程更不可能让两个过程同步执行了。不过可 ... [详细]
author-avatar
縌风而行2010
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有