13 | Документация

Настройки условий видимости

Для следующих элементов Карточки объекта можно задать Условия видимости (см. Рисунок 361 и Рисунок 362 ):
  • вкладок и блоков (см. п. 5.2.2 и пп. 5.3 - 5.10 , 5.12 - 5.13 );
  • кнопок вызова дополнительных инструментов (см. пп. 5.15 - 5.23 );
  • специальных кнопок создания или сохранения объектов (см. п. 4.2.2.8 );
  • редактируемых атрибутивных полей (см п. 4.2.2.10 );
  • подсказок к редактируемым атрибутивным полям (см. п. 4.2.2.10 ).
  • Рисунок 361 - Условия видимости вкладок, блоков, кнопок и подсказок к редактируемым атрибутивным полям в Карточке объекта
  • Рисунок 362 - Условия видимости редактируемых атрибутивных полей
Таким образом можно управлять, при каких значениях атрибутов элемент будет отображаться в Карточке объекта (пример - см. Рисунок 363 и Рисунок 364 ).
Прежде чем добавить Условия видимости вкладок, блоков или кнопок вызова инструментов, назначьте текущий шаблон Карточки объекта слою объектов (опция Использовать шаблоны для Карточки объекта во вкладке Карточка объекта картографического сервиса, см. п. 4.1.6 ). В таком случае в опциях шаблона Карточки объекта , где необходимо выбирать атрибутивное поле, будет отображаться выпадающий список с атрибутивными полями выбранного слоя объектов.
Что касается специальных кнопок создания или сохранения объектов, редактируемых атрибутивных полей и подсказок к ним, то слой, на значения атрибутивных полей которого будут назначены условия, указывается непосредственно при настройке (см. пп. 4.2.2.8 , 4.2.2.10 ).
В параметре Условия видимости нажмите кнопку , чтобы добавить условие. Выберите атрибутивное поле из выпадающего списка, либо задайте его вручную.
Выберите один из операторов сравнения из выпадающего списка - «равно» ( = ), «не равно» ( <> ), «начинается с», «содержит», «не содержит», «больше» ( > ), «больше или равно» ( >= ), «меньше» ( < ), «меньше или равно» ( <= ), «пустое значение», «непустое значение».
Укажите значение, с которым надо сравнить значение выбранного атрибутивного поля. Для операторов «пустое значение» и «непустое значение» значение для сравнения указывать не требуется, и указанные значения с такими операторами игнорируются. Если выбранному атрибутивному полю назначен домен предопределенных значений, то значение для сравнения в условии видимости можно задать, выбрав одно из предопределенных значений из выпадающего списка. При этом в качестве значения для сравнения указывайте код домена.
Для указания значения для сравнения можно использовать макросы (см. п. 16 ). Помимо основных макросов, отраженных в п. 16 , для условий видимости вкладок, блоков и кнопок в Карточке объекта доступны макросы разрешенных операций SOE (для всех макросов операций значение 1 - операция разрешена, 0 - запрещена):
  • {AddObject} - возможность добавлять объект;
  • {AddAttachment} - возможность добавлять вложения к объекту;
  • {AddRelation} - возможность добавлять связи к объекту;
  • {RemoveAttachment} - возможность удалять вложения объекта;
  • {RemoveObject} - возможность удалять объект;
  • {RemoveRelation} - возможность удалять связи объекта;
  • {UpdateAttachment} - возможность редактировать вложения объекта;
  • {UpdateObject} - возможность редактировать объект;
  • {UpdateField: myfield } - возможность редактировать конкретное поле объекта, где myfield - имя атрибутивного поля;
  • {UpdateGeometry} - возможность редактировать геометрию объекта;
  • {UpdateRelation} - возможность редактировать связи объекта.
Пример использования макросов разрешенных операций - см. Рисунок 365 .
Для вкладок, блоков, кнопок вызова инструментов, специальных кнопок создания или сохранения объектов и подсказок к редактируемым атрибутивным полям укажите, в какой момент проверять заданное условие: Проверять при открытии Карточки объекта или Проверять при любом изменении атрибута, с использованием которого сформировано условие видимости (см. Рисунок 363 ).
Рисунок 363 - Настройка видимости вкладки Карточки объекта
Рисунок 364 - Отображение вкладки Карточки объекта с заданным условием видимости
Рисунок 365 - Настройка видимости блоков Карточки объекта с использованием макросов разрешенных операций (для объекта Тест-2 с неразрешенной операцией добавления связи блок Добавление связи скрыт)
Можно задать несколько условий видимости. В этом случае необходимо выбрать Логику применимости условий:
  • Выберите И , чтобы элемент Карточки объекта был виден, когда все заданные условия выполняются.
  • Выберите ИЛИ , чтобы элемент Карточки объекта был виден, когда хотя бы одно из заданных условий выполняется.
В условии видимости можно указывать не просто атрибутивное поле, но и выражение из нескольких атрибутивных полей (см. п. 5.24.1 ).
С одним и тем же атрибутивным полем (или выражением) может быть задано несколько условий видимости (см. п 5.24.2 ). Также при настройке условий видимости полей для редактирования можно управлять свойством обязательности поля (см. п. 5.24.3 ).
Если назначенные условия видимости не выполняются, то этот элемент не отображается в Карточке объекта .
Для кнопок вызова дополнительных инструментов (см. пп. 5.15 - 5.23 , кроме стандартных, связанных с редактированием, и элементов Создание связанного объекта и Создание объекта в другом слое ) и специальных кнопок создания или сохранения объектов (см. п. 4.2.2.8 ) в рамках условий видимости вы можете отметить опцию Показывать сообщение, если элемент недоступен и ввести текст сообщения в строку рядом. В таком случае настроенная кнопка будет видна пользователю даже при невыполнении условий видимости, но при нажатии на кнопку пользователю будет показано окно с сообщением (см. подробнее о настройке сообщения в п. 5.25 ).

Использование выражения из атрибутивных полей в условии видимости

Для создания сложного условия видимости можно задавать для сравнения выражения из атрибутивных полей (см. Рисунок 366 ). В выражениях имена атрибутивных полей задаются в квадратных скобках.
При анализе выражения имя атрибутивного поля в квадратных скобках заменяется на значение этого поля для конкретного объекта, после чего значение как символьная строка объединяется с другими введенными в выражение символами.
Результатом выражения (какого бы типа атрибутивные поля не участвовали в выражении) всегда является строка символов. В таком случае и введенное значение, с которым сравнивается результат выражения, воспринимается как строка символов.
Рисунок 366 - Пример настройки условий видимости вкладки с использованием выражений и макросов

Логика применимости нескольких условий видимости с одним и тем же атрибутивным полем (выражением)

Если настроено несколько условий с одним и тем же атрибутивным полем (или с одним и тем же выражением), то вне зависимости от выбранной Логики применимости эти условия будут применяться группой со следующей логикой внутри группы:
  • И - для условий только с операторами «не равно» ( <> ), «не содержит», «непустое значение»;
  • ИЛИ - для условий только с операторами «равно» ( = ), «содержит», «начинается с», «пустое значение».
При этом между этими группами условий, а также во всех остальных случаях между условиями будет применяться логика, выбранная в параметре Логика применимости (см. Таблица 5 ).
Таблица 5 - Логика, применяемая между условиями видимости с одним и тем же атрибутивным полем
field содержит ‘test’
field непустое
field < 150
(field2 <> ‘value2’)
И
(field2 непустое)
field = ‘value’
всегда ИЛИ
выбранная
выбранная
выбранная
field <> ‘value’
выбранная
всегда И
выбранная
выбранная
field > 50
выбранная
выбранная
выбранная
выбранная
(field1 = ‘value1’)
ИЛИ
(field1 содержит ‘test1’)
выбранная
выбранная
выбранная
выбранная
Например, см. Рисунок 367 , в данном случае блок будет отображаться в Карточке объекта , если выполняется одно из условий с полем status И оба условия с полем waiting, т. е.:
[(status = approved) ИЛИ (status содержит tested)] И (waiting > 10) И (waiting непустое)
Рисунок 367 - Несколько условий видимости на одно атрибутивное поле

Управление свойством обязательности атрибутивного поля при редактировании

При настройке редактирования полей (см. п. 4.2.2.10 ) есть возможность установить обязательность заполнения редактируемому полю с помощью условий видимости. В таком случае, например поле, изначально необязательное для заполнения, при определенном значении другого поля (после проверки условия видимости) становится обязательным (см. Рисунок 368 и Рисунок 369 ).
Для настройки обязательности заполнения поля с определенным условием видимости отметьте опцию Значение обязательно справа от нужного условия видимости.
Рисунок 368 - Управление свойством обязательности поля с помощью условий видимости
Рисунок 369 - Отображение поля при редактировании в зависимости от условия видимости (слева - поле обязательно для заполнения, т.к. площадь объекта больше 15 га; справа - поле необязательно для заполнения, т.к. площадь объекта больше 10 га, но меньше 15 га; поле не отображается при площади объекта менее 10 га)