Связь объектов карты и записи таблицы данных |
Установление взаимосвязи между объектом карты и выбранной записью текущей таблицы (запроса) осуществляется с целью объединения информации об объекте местности, хранящейся во внешних (по отношению к ГИС Панорама) таблицах баз данных и внутренних структурах системы ГИС Панорама. Связь с объектом карты устанавливается путем сохранения в таблице уникальных данных об объекте карты, которыми являются его номер и имя листа, на котором он расположен. Связь таблицы и карты может быть следующих видов: - внутренний вид связи (параметры связи сохраняются в специальные поля - таблицы, имеющие предопределенное название и структуру); - внешний вид связи (параметры связи сохраняются в автоматически создаваемом внешнем файле); - отсутствие связи с картой (для таблиц, которые не должны иметь связь); - связь по семантике (установление связи по значению семантической характеристики объекта и значению поля таблицы).
При добавлении таблиц в Проект БД автоматически предлагается настроить параметры связи по умолчанию. Под умалчиваемыми параметрами понимается следующее: - Вид связи – внутренний. - Поля связи – LINKSHEET – для имени листа, LINKOBJECT – для номера объекта. - В случае отсутствия полей связи, они добавляются автоматически.
В процессе работы с Проектом БД параметры связи можно переопределить. Для этого в закладке Источники данных необходимо нажать кнопку Связь с картой. Рекомендуется устанавливать именно умалчиваемые параметры связи. Такой вид связи наиболее надежен. Он используется во всех прикладных задачах ГИС Панорама. Например, при выполнении операции тематического картографирования уже не придется выполнять поиск объектов карты, если будет установлен вид связи Внутренний с умалчиваемыми именами полей (LINKSHEET и LINKOBJECT). Вид связи выбирается в диалоге настройки параметров связи. Порядок настройки следующий: - установить в меню нужный вид связи; - настроить параметры связи; - сохранить изменения.
Для внутреннего вида связи задаются параметры: - Имя поля для хранения имени листа карты. Поле должно быть символьным, длиной не менее 24. По умолчанию имя поля – LINKSHEET. - Имя поля для хранения номера объекта карты в пределах листа. Поле должно быть числовым и позволяющим записать тип – длинное целое. Для таблиц DBase – тип "N 10.0". По умолчанию имя поля – LINKOBJECT. - Флаг автоматического добавления полей в случае их отсутствия. - Флаг осуществления контроля дублирования связей. - Флаг разрешения на установление связи при наложенном фильтре на таблицу.
Для внешнего вида связи задаются параметры: - Имя файла для хранения данных о связи. Имя файла можно определить по умолчанию путем нажатия кнопки Имя файла по умолчанию. В этом случае имя файла параметров связи будет сформировано путем добавления имени таблицы к имени карты и с расширением DBI в поддиректории \BASE директории, где располагается файл паспорта карты, к которой открыта данная таблица. При перемещении таблицы данных или карты на другой носитель не забудьте скопировать и файл связей. Утеря его приведет к разрушению всех связей карты и таблицы. Для каждой комбинации карта - таблица создается отдельный файл связей. - Имя поля связи. Указывается поле таблицы, которое содержит уникальные значения. - Тип связи: "один к одному" или "много ко многим". - Флаг осуществления контроля дублирования связей. - Флаг разрешения на установление связи при наложенном фильтре на таблицу.
Для связи по семантике задаются параметры: - Имя семантики – уникальное название семантической характеристики из классификатора карты. По значениям данной семантики будет установлена связь. - Имя поля таблицы, значения которого должны совпадать со значениями семантики объекта в момент установления связи. Тип данного поля может быть числовым или символьным. Если связь устанавливается по символьному полю, то учитываются первые 63 символа. - Флаг разрешения на редактирование таблицы. Если редактирование запрещено, а заданное поле не содержит значений, то связь не производится. - Параметры объекта карты (дополнительные ограничения на тип объекта карты): - любой (без ограничений); - объект (связь может быть установлена только с объектом карты заданного типа); - слой (связь может быть установлена только с объектами выбранного слоя с указанной локализацией).
Если установлен вид связи Объект или Слой, то дополнительно выбирается значение ключа объекта карты и тип (локализация). Ограничения на тип объекта карты служат для однозначного связывания записей таблицы и объектов. Например, требуется установить связь по семантической характеристике Собственное название, которая имеет значение Москва. Данное значение может принадлежать нескольким объектам на карте (городу, реке). Для конкретного выбора объекта необходимо указать значение ключа объекта (например, Реки постоянные (L00314100002) и тип (линейный)). Значение ключа выбирается с помощью диалога Выбора объекта. В первую очередь использовать: - в момент установления связи значение семантики из поля таблицы. Если значение семантической характеристики объекта не совпадает со значением поля, то оно заменяется значением из таблицы; - в момент установления связи значение семантики. Если значение семантической характеристики объекта не совпадает со значением поля таблицы, то заменяется значение в таблице (при условии, что разрешено редактирование таблицы).
Вид связи Внешний позволяет организовать связь одной таблицы с несколькими картами, а также одной записи с несколькими объектами карты. Вид связи Внутренний позволяет организовать связь таблицы только с одной картой в режиме Одна запись - Один объект. Выполнение операций по установлению связи записи таблицы с объектом карты осуществляется с использованием управляющих кнопок в Форме пользователя, в Стандартной форме, по нажатию командной кнопки Запрос формы для объекта, расположенной на главной панели. Для выполнения этих операций в Форме пользователя и в Стандартной форме существует специальный набор управляющих кнопок: - Связать - связать текущую запись с выбранным объектом карты; - Найти объект - найти объект карты, который связан с текущей записью таблицы; - Найти запись - найти запись в текущей таблице, которая связана с выбранным объектом карты; - Выделить - выделить объекты карты, которые связаны с доступными в данный момент записями из текущей таблицы данных; - Отменить - отменить множественное выделение объектов карты.
Для выполнения операции связывания текущей записи с выделенным объектом карты необходимо нажать кнопку Связать на главной панели СФ или ФП. Режим считается активным до тех пор, пока соответствующая кнопка находится в нажатом положении. После выбора режима Связать запись с объектом карты необходимо: - переместить указатель текущей записи на нужную запись таблицы; - выбрать объект карты.
Найти объект карты для текущей записи. Поиск объекта карты, соответствующего текущей записи таблицы, осуществляется при условии, что эта запись была ранее связана с объектом карты. Если объект будет найден, то он появится в окне просмотра карты и будет выделен. Найти запись для выбранного объекта. Для поиска записи, связанной с объектом карты, необходимо: - выбрать объект карты; - нажать кнопку поиска записи.
В случае, когда Форма пользователя не создана, для более точного поиска информации об объекте карты заполняются Параметры связи для поиска таблицы: - Таблица связана с картой (устанавливается по умолчанию) - Таблица связана со слоем карты.
Если объект не связан с картой, то после активизации режима Запрос формы для объекта активизируется специальная форма, в которой автоматически добавляется запись, с заполненными значениями номера объекта карты и именем листа карты. Пользователь имеет возможность внести изменения в данную запись, сохранить или отказаться от данной операции. Если параметры связи не были установлены или в проекте нет таблиц, связанных с данным объектом, то отображается первая таблица из списка. Для вертикального послойного перемещения по объектам карты предназначены кнопки Вперед и Назад. |