выбор строки среди дублированных в VBA - PullRequest
0 голосов
/ 25 мая 2010

ArcGIS 9.3 Arcobject

Я хочу выбрать одну строку каждого дублированного идентификатора безопасности в поле ниже. (таблица атрибутов файла формы)

Приоритет: R> S = I> 0
Поэтому среди SID 87 будет выбран FID1.
(СИД 88, СОСТОЯНИЕ будет S + I)
(SID 89, FID 6 будет выбран)

Пожалуйста, посоветуйте VBA шнур для запуска выбора и спасибо.

FID    SID    STATUS 
 1     87       R
 2     87       O
 3     88       I
 4     88       S
 5     89       I
 6     89       R      
 7     89       I
 8     89       S

1 Ответ

0 голосов
/ 27 мая 2010

Это не может быть оптимальным способом, но вы можете попробовать что-то вроде этого:

  1. Используйте ITable.Search с нулевым QueryFilter, чтобы открыть курсор всех строк в таблице.
  2. Создайте объект DataStatistics и передайте курсор в свойство IDataStatistics.Cursor.
  3. Используйте свойство IDataStatistics.UniqueValues, чтобы получить набор уникальных значений SID в таблице.
  4. Для каждого уникального значения SID используйте ITable.Search, чтобы открыть курсор, содержащий все строки, имеющие SID.
  5. Используя описанную логику, определите FID строки, которая должна быть добавлена ​​к выбору для конкретного SID.
  6. Создание объекта SelectionSet, настройка вашей таблицы как объекта. Используйте метод Add для добавления одной строки или метод AddList для добавления списка строк в набор выбора.
  7. Используйте этот SelectionSet для установки свойства IFeatureSelection.SelectionSet в шейп-файле.

Извините, поскольку я новичок, я не могу публиковать гиперссылки на справку, но вот стартовая страница справки VB6 для ArcObjects 9.3:

http://resources.esri.com/help/9.3/arcgisengine/com_cpp/vb6_start.htm

...