怎样用程序添加、删除连接(join)和关联(relate)

上传人:kms****20 文档编号:37430406 上传时间:2018-04-16 格式:DOC 页数:3 大小:25.50KB
返回 下载 相关 举报
怎样用程序添加、删除连接(join)和关联(relate)_第1页
第1页 / 共3页
怎样用程序添加、删除连接(join)和关联(relate)_第2页
第2页 / 共3页
怎样用程序添加、删除连接(join)和关联(relate)_第3页
第3页 / 共3页
亲,该文档总共3页,全部预览完了,如果喜欢就下载吧!
资源描述

《怎样用程序添加、删除连接(join)和关联(relate)》由会员分享,可在线阅读,更多相关《怎样用程序添加、删除连接(join)和关联(relate)(3页珍藏版)》请在金锄头文库上搜索。

1、内容摘要 ArcMap 里面可以通过属性字段为两个图层建立或删除连接和关联,怎样使用 VBA 或 Engine 完成同样的工作呢? 这里主要用到 IDisplayRelationshipClass.DisplayRelationshipClass 方法,如下为实现 的 VBA 代码: 过程描述 Private Sub AddJoin_Relation_Click()Dim pFeatLayer As IFeatureLayerDim pDispTable As IDisplayTableDim pFCLayer As IFeatureClassDim pTLayer As ITableDim

2、pTabCollection As IStandaloneTableCollectionDim pStTable As IStandaloneTableDim pDispTable2 As IDisplayTableDim pTTable As ITableDim pMemRelFact As IMemoryRelationshipClassFactoryDim pRelClass As IRelationshipClassDim pDispRC As IDisplayRelationshipClassSet pFeatLayer = GetLayer(0) MapControl1.Layer

3、(0)Dim pDoc As IMxDocumentSet pDoc = ThisDocumentDim pMap As IMapSet pMap = pDoc.ActiveViewSet pTabCollection = pMapIf pTabCollection.StandaloneTableCount = 0 ThenExit SubEnd IfSet pDispTable = pFeatLayerSet pFCLayer = pDispTable.DisplayTableSet pTLayer = pFCLayerSet pDispRC = pFeatLayerSet pStTable

4、 = pTabCollection.StandaloneTable(0)Set pDispTable2 = pStTableSet pTTable = pDispTable2.DisplayTableSet pMemRelFact = New MemoryRelationshipClassFactorySet pRelClass = pMemRelFact.Open(pStTable.Name, pTTable, “id“, pTLayer, “省 行政中心“, “forward“, “backward“, esriRelCardinality.esriRelCardinalityOneToM

5、any) 这里参数根据具体数据和需求设置,详细信息可参照开发帮助文档增加连接 JoinpDispRC.DisplayRelationshipClass pRelClass, esriJoinType.esriLeftOuterJoin增加关系 -RelateDim pRelClassCollEdit As IRelationshipClassCollectionEditSet pRelClassCollEdit = pFeatLayerpRelClassCollEdit.AddRelationshipClass pRelClassSet pDispRC = pFeatLayerIf Not p

6、DispRC.RelationshipClass Is Nothing ThenMsgBox “建立关联时:“ & pDispRC.RelationshipClass.OriginClass.AliasNameEnd If End SubPrivate Sub RemoveJoinRelation_Click()Dim pFeatLayer As IFeatureLayerDim pDispRC As IDisplayRelationshipClassDim pRelationshipClassCollectionEdit As IRelationshipClassCollectionEdit

7、Set pFeatLayer = GetLayer(0) MapControl1.Layer(0)Set pRelationshipClassCollectionEdit = pFeatLayerSet pDispRC = pFeatLayerIf Not pDispRC.RelationshipClass Is Nothing ThenMsgBox “删除关联前:“ & pDispRC.RelationshipClass.OriginClass.AliasNameEnd If删除 RelateCall pRelationshipClassCollectionEdit.RemoveAllRelationshipClasses删除所有 JoinpDispRC.DisplayRelationshipClass Nothing, esriJoinType.esriLeftOuterJoin 这里第一个参数传入 Nothing 即可完成删除Set pDispRC = pFeatLayerIf Not pDispRC.RelationshipClass Is Nothing ThenMsgBox “删除关联后:“ & pDispRC.RelationshipClass.OriginClass.AliasNameEnd IfEnd Sub

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 科普知识

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号