Предварительное условие:
Прежде чем настраивать правило Раскрыть связи (Expand Links), следует убедиться, что класс связей-пространственных объектов, обязательный для выполнения правила, существует в наборе схематических данных и связан с шаблоном схематических представлений, для которого будет задано правило.
Правило Раскрыть связи (Expand Links) позволяет создавать схематические представления после того, как все или некоторые связи, связанные с данным классом объектов схемы, были развернуты в несколько связей на основе определенных значений. Эти значения могут быть привнесены самими исходными связями или другими атрибутами пространственных объектов схемы, содержащихся в представлении.
Типичный пример ― управление фазами в электрической модели данных.
Вновь созданные связи ― это связи, реализованные тем же классом связей-пространственных объектов схемы. Можно выбрать между раскрытием всех исходных связей, реализованных классом пространственных объектов схемы, или только некоторых из них ― тех, которые были прошли SQL-фильтр, работающий с реальными пространственными объектами схемы или таблицей объектов, связанных с классом пространственных объектов.
Эти специфические значения, используемые для раскрытия исходных связей, могут иметь одно из следующих происхождений.
- Определенное поле, хранимое в классе пространственных объектов, связанных с определенным классом связей-пространственных объектов схемы.
- Расширенный критерий, т.е. пользовательская функция, которая возвращает определенное значение для каждой исходной связи, которую необходимо раскрыть
Далее для исходной связи-пространственного объекта схемы, значение которой показывает, что оно соответствует N количеству соединений, N количество раскрытых связей будут отображены в результирующем схематическом представлении. Исходная связь схемы будет сохранена, при этом будут созданы новые связи схемы (N-1) на основе того класса связей-пространственных объектов схемы. Свойства, соединенные с исходной связью схемы, будут отнесены к новым связям схемы (N-1).
Ниже описывается настройка страницы Свойства правила раскрытия связей (Expand Links Rule Properties), которая отображается при нажатии кнопки Свойства правила (Rule Properties) на панели инструментов вкладки Правила (Rules) при условии, что такое правило раскрытия связей уже добавлено к этой вкладке. Более подробную информацию о способах добавления любых новых элементов правил на вкладке Правила (Rules) и отображения страницы Свойства правила (Rule Properties) см. в разделе Задание правил схемы в шаблоне схематического представления.
Для правила Раскрыть связи (Expand Links), только что добавленного на вкладке Правила (Rules), при нажатии кнопки Свойства правила (Rule Properties) на панели инструментов вкладки Правила (Rules) открывается диалоговое окно Свойства правила (Rule Properties):
- Введите описание правила в поле Описание (Description).
Эта строка описания будет отображаться на вкладке Правила (Rules) для связанного элемента правила. Также она будет отображаться при создании и обновлении схематических представлений для уведомления пользователя о выполнении правила.
- Выберите имя класса пространственных объектов связи, с которым будет работать правило, в раскрывающемся списке Выбрать класс пространственных объектов связи для раскрытия (Select the link schematic feature class to expand).
Этот раскрывающийся список содержит все классы объектов связей схемы, относящиеся к шаблону схематического представления.
На первом шаге настройки правила предполагается раскрыть все пространственные объекты связи, реализованные выбранным классом пространственных объектов этой связи.
- Если нужно указать SQL фильтр для определенного класса узлов схемы, чтобы раскрыть только определенные узлы, выполните следующие действия.
- Нажмите кнопку Редактировать (Edit) в правой части панели SQL-фильтр класса связанных объектов (SQL Filter on associated feature/object class).
Откроется диалоговое окно SQL-запрос (SQL Query).
- Постройте нужный SQL-запрос.
Фильтр работает с полями класса пространственных объектов, которые относятся к указанному классу пространственных объектов узла.
- Нажмите кнопку ОК.
Диалоговое окно SQL-запрос (SQL Query) закроется и введенный SQL-фильтр автоматически отобразится на панели SQL-фильтр класса связанных объектов (SQL Filter on associated feature/object class).
Указанный SQL-фильтр определит подмножество связей схемы, которые необходимо раскрыть. Узлы, не соответствующие SQL фильтру, при выполнении правила раскрыты не будут.
- Нажмите кнопку Редактировать (Edit) в правой части панели SQL-фильтр класса связанных объектов (SQL Filter on associated feature/object class).
- После указания связей, которые должны быть раскрыты, нужно задать значения, которые будут определять способ раскрытия связей. Настройка выполняется в разделе Выбрать источник значения (Select value source).
- Когда значения, с которыми будет работать правило, сохранено в поле в таблице классов или объектов, связанной с определенным классом пространственных объектов связи, следует указать поле.
- Установите флажок напротив параметра Выбрать поле (Select field).
- Выберите нужное поле в раскрывающемся списке.
В этом списке доступны все поля из таблицы классов или объектов, связанной с выбранным классом пространственных объектов связи.
- Убедитесь, что установлен флажок напротив параметра Использовать кодовое имя, если в поле указан домен кодового значения (Use code name when a field has a code value domain), если в выбранном поле указан домен кодового значения, при этом нужно, чтобы такие кодированные значения определяли, как исходные связи схемы будут раскрываться, вместо использования прямых значений поля.
- Если значения, с которыми будет работать правило, возвращаются определенным расширенным критерием, которое было создано специально, выполните следующие действия.
- Включите опцию Использовать расширенный критерий (Use extended criteria).
- Выберите нужный расширенный критерий из раскрывающегося списка.
Расширенный критерий правила Раскрыть связи (Expand Links) реализует интерфейс esriSchematic.ISchematicExpandLinksByAttributeExtended.
Компонент расширенных критериев работает от схематических связей, подготовленных для раскрытия, и возвращает ожидаемое значение для каждой связи, подготовленный для раскрытия. Такие расширенные критерии обычно разрабатываются, если значения, с которыми будет работать правило, происходят из полей, хранимых в другой таблице классов или объектов, а не в таблице, связанной с определенным классом пространственных объектов. Например, когда такие значения хранятся в полях в классах пространственных объектов исходного или конечного узла.
- Далее в разделе Формат значения (Value format) следует указать тип значений, с которыми будет работать правило.
- Выберите параметр Связывание символов (Concatenation of characters) для строкового значения. В данном случае каждое значение расшифровывается символ за символом, при этом количество символов будет определять число связей, создаваемых каждой исходной связью.
- Выберите параметр Набор символов с разделителем = (Set of characters with separator =) и задайте разделитель символов в текстовой зоне справа, если возвращаемые сведения соответствуют списку значений, при этом каждое значение отделяется определенным символом. Число значений в списке определяет число раскрываемых связей.
- Выберите параметр Диапазон значений с разделителем = (Range of values with separator =) и задайте разделитель символов в текстовой зоне справа, если возвращаемые сведения содержат два целочисленных значения, при этом каждое значение отделяется определенным символом. Первое значение должно быть меньше второго. Если это не так, соединенная связь не будет раскрыта.
- Выберите параметр Целочисленное значение (Integer value) для целочисленного значения. В данном случае целые числа определяют количество связей, раскрываемых для каждой исходной связи.
- Далее в области Целевой атрибут (Target attribute) нужно указать схему Атрибут PropertySet, чтобы правило сохраняло расшифрованное значение, связанное с каждой создаваемой связью. Введите имя этого атрибута схемы в поле Имя (Name).
Например, когда значения, с которыми работает правило, представляют собой конкатенацию или набор символов, число расшифрованных символов определяет число создаваемых связей, при этом каждый расшифрованный символ соответствует одной из таких связей. Можно сохранить расшифрованные связи и использовать их для настройки свойств определенного слоя раскрытых связей. Определение атрибута PropertySet в поле Имя (Name) позволит правилу сохранить расшифрованные значения для последующего использования.
Если указанный атрибут не существует для расширенного класса пространственных объектов связи, он будет автоматически создан при проверке конфигурации правила.
- Снимите флажок напротив параметра Показывать связи без значений (Display links having no value), если нужно, чтобы связи, для которых нет значений, с которыми может работать правило, не отображались в результирующем представлении.
В данном случае только связи, которые были обработаны правилом Раскрыть связи (Expand Links), будут отображены в результирующем представлении.
- Нажмите кнопку OK, чтобы закрыть диалоговое окно Свойства правила (Rule Properties).