如何添加字段

 

本例实现的是如何在一个FeatureClass中新增一个字段(Field)。

l   要点

定义IField接口对象,并用Field类实现,通过IFieldEdit接口对象设置IField接口对象的属性,最后通过IFeatureClass.AddField方法添加一个字段。

主要用到IField接口、IFieldEdit接口和IFeatureClass接口。

l   程序说明

函数OpenFeatureClass获得当前激活的Map中第一层的IFeatureClass接口对象。

函数AddField生成一个新的字段(Field)并添加到pFeatureClass中。

l   代码

Private Function AddField(pFeatureClass As IFeatureClass) As Boolean

    Dim pField                  As IField

    Dim pFieldEdit              As IFieldEdit

On Error GoTo ErrorHandler:

    AddField = False

    If (pFeatureClass Is Nothing) Then

        Exit Function

    End If       

    Set pField = New esriCore.Field

    Set pFieldEdit = pField

    With pFieldEdit

        .Length = 10

        .Name = "NewField"

        .Type = esriFieldTypeString

    End With

    pFeatureClass.AddField pField

    MsgBox ("已添加新字段:" & "  " & pField.Name)

    AddField = True

    Exit Function

ErrorHandler:

    MsgBox Err.Description

End Function

Private Function OpenFeatureClass() As IFeatureClass

    Dim pMxDocument             As IMxDocument

    Dim pMap                    As IMap

    Dim pFeatureLayer           As IFeatureLayer

    Dim pFeatureClass           As IFeatureClass

On Error GoTo ErrorHandler:

    Set OpenFeatureClass = Nothing

    Set pMxDocument = ThisDocument

    Set pMap = pMxDocument.FocusMap

    If (pMap.LayerCount = 0) Then

        MsgBox ("缺少数据")

        Exit Function

    End If

    Set pFeatureLayer = pMap.Layer(0)

    Set pFeatureClass = pFeatureLayer.FeatureClass

    Set OpenFeatureClass = pFeatureClass

    Exit Function

ErrorHandler:

    MsgBox Err.Description

End Function

Private Sub UIButtonControl1_Click()

On Error GoTo ErrorHandler:

    Dim pFeatureClass        As IFeatureClass

    Set pFeatureClass = OpenFeatureClass()

    AddField pFeatureClass

    Exit Sub

ErrorHandler:

    MsgBox Err.Description

End Sub

posted on 2006-09-07 13:18  greatbird  阅读(1161)  评论(1)    收藏  举报

导航