gsl1982
路人甲
路人甲
  • 注册日期2004-05-08
  • 发帖数135
  • QQ
  • 铜币543枚
  • 威望0点
  • 贡献值0点
  • 银元0个
阅读:2307回复:5

请问如何得到图层某一字段值唯一的所有要素?

楼主#
更多 发布于:2005-01-05 13:07
比如有一个图层featureLayer,其中有一个字段symbol。假如该图层有4个feature,字段symbol值分别是1,2,3,3,现在想要得到的要素的字段值分别为1,2,3。请问该如何实现?
喜欢0 评分0
gsl1982
路人甲
路人甲
  • 注册日期2004-05-08
  • 发帖数135
  • QQ
  • 铜币543枚
  • 威望0点
  • 贡献值0点
  • 银元0个
1楼#
发布于:2005-01-08 11:32
怎么没有人回答一下啊,最近迫切需要这个功能,各位大虾帮帮忙
举报 回复(0) 喜欢(0)     评分
wavvylia
路人甲
路人甲
  • 注册日期2003-07-28
  • 发帖数384
  • QQ
  • 铜币555枚
  • 威望0点
  • 贡献值0点
  • 银元0个
2楼#
发布于:2005-01-10 11:34
<P>自己过滤不行么?</P>
举报 回复(0) 喜欢(0)     评分
suppergg
路人甲
路人甲
  • 注册日期2004-10-25
  • 发帖数60
  • QQ
  • 铜币256枚
  • 威望0点
  • 贡献值0点
  • 银元0个
3楼#
发布于:2005-02-25 17:33
<P>用filter设置whereclaus</P><P>简单例子</P><P>dim pCursor as ICursor
dim pTable as ITable
dim pQFilter as IQueryFilter
dim pNextRow as IRow</P><P>pTable =pFeatureLayer </P><P>pQFilter =new QueryFilter
pQFilter.WhereClause = "symbol ='1'"    '查询symbol为1的
pQFilter.AddField("symbol")
pCursor = pTable.Search(pQFilter,true)
pNextRow = pTable.Search(pQFilter,true)
pNextRow =pCursor.NextRow</P><P>do while not pNextRow is Nothing
  '...遍历</P><P>Loop</P><img src="images/post/smile/dvbbs/em04.gif" />
举报 回复(0) 喜欢(0)     评分
wavvylia
路人甲
路人甲
  • 注册日期2003-07-28
  • 发帖数384
  • QQ
  • 铜币555枚
  • 威望0点
  • 贡献值0点
  • 银元0个
4楼#
发布于:2005-02-27 21:17
这样遍历出来还是不能得到唯一值,恐怕还要写些如何得到唯一值的代码的!不知道IUniqueValues这个接口能不能用上?
举报 回复(0) 喜欢(0)     评分
xpdown
路人甲
路人甲
  • 注册日期2005-02-25
  • 发帖数3
  • QQ
  • 铜币110枚
  • 威望0点
  • 贡献值0点
  • 银元0个
5楼#
发布于:2005-02-28 13:39
帮助里有的:

<pre><code>Public Sub</code> ShowUniqueValues(pTable <code>As</code> ITable, sFieldName <code>As String</code>)
  <code>Dim</code> pQueryDef <code>As</code> IQueryDef
  <code>Dim</code> pRow <code>As</code> IRow
  <code>Dim</code> pCursor <code>As</code> ICursor
  <code>Dim</code> pFeatureWorkspace <code>As</code> IFeatureWorkspace
  <code>Dim</code> pDataset <code>As</code> IDataset

  <code>Set</code> pDataset = pTable
  <code>Set</code> pFeatureWorkspace = pDataset.Workspace
  <code>Set</code> pQueryDef = pFeatureWorkspace.CreateQueryDef
  <code>With</code> pQueryDef
    .Tables = pDataset.Name <code>' Fully qualified table name</code>
    .SubFields = "DISTINCT(" ; sFieldName ; ")"
    <code>Set</code> pCursor = .Evaluate
  <code>End With

  Set</code> pRow = pCursor.NextRow
  <code>Do Until</code> pRow <code>Is Nothing
    Debug.Print</code> pRow.Value(0) <code>' Note only one field in the cursor</code>
    <code>Set</code> pRow = pCursor.NextRow
  <code>Loop
End Sub</code></pre>即使自己来写也可以的,就是多点代码而已。
举报 回复(0) 喜欢(0)     评分
游客

返回顶部