<< На Главную     <В меню Советы по MapInfo

Обновить значение поля в MapInfo

Работая в MapInfo, приходиться иной раз решать разные мелкие, неожиданно возникающие задачки. Вот на днях пришлось столкнуться с одной из них - оператор случайно запортил содержимое одной из колонок в атрибутивной таблице. Исходная ситуация выглядела приблизительно так:

 

Список (Browse) таблицы в MapInfo В поле FARM_NAME хранилось название хозяйства,   а в колонке FARM_ID - его код.

 

Возникшая проблемка требовала восстановления названия хозяйств в поле FARM_NAME. Если бы было необходимо исправить значения во всей таблице, то тут делать  было нечего. По меню Update Column  (Обновить колонку) эта задачка решалась бы в два счета (более подробно можно посмотреть здесь). Проблема состояла в том, что данные нужно было заменить для каждой записи избирательно, по определенному алгоритму. В данном учебном случае - просто по коду хозяйства в колонке FARM_ID

 

Писать программку на MapBasic'е было как-то в лом и решение нашлось в виде следующего подхода.

Во -первых пришлось

подготовить вспомогательную таблицу со значение кода хозяйства

(поле id) и его "правильным" наименованием (поле Name) , приблизительно так (прим. идеально для разбираемой ситуации подходят таблицы-справочники, или, как их ещё называют - классификаторы):

 

Создать вспомогательную справочную таблицу

 

Далее необходимо сделать вот что -  воспользоваться меню Update Column (Обновить колонку) в меню Browser Tools на вкладке Table (Таблица):

 

Меню Update Column

 

Следующий шаг - указываем ключи для связи двух таблиц  -  на форме выставляем параметры обновления и жмем на кнопку Join (Соединить):

 

Форма Update Column

 

 

Дело осталось за малым - указываем ключи для связки двух таблиц, приблизительно так для случая нашего учебного примера:

 

Форма Specify Join в MapInfo

 

В завершении на форме Update Columns кликаем по кнопке OK , и получаем нужный результат - записи в колонке FARM_NAME обновились :

 

Результат обновления колонки по признаку

 

Только нужно иметь в виду  один момент - для тех кодов, что не нашлось значений во вспомогательной таблице программа проставила, естественно, пустые значения :

 

Пустые записи в таблице

 

Ну собственно и все о том, как изменить (обновить) значения в колонке по признаку(коду) из другого поля атрибутивной таблицы.

 

Как обновить колонку на основе пространственного анализа, можно посмотреть в этой заметке.

 

© Simashkov.2019

01.06.2019 г.

Назад