Найти в Дзене
Блог о системе IPS Search

Работа с формулами присвоения значений атрибутам связи.

В системе IPS существует два типа атрибутов: атрибуты объекты и атрибуты связи. Атрибуты объектов настраиваются в конфигураторе для каждого типа объектов и неразрывно связаны с этим типом вне зависимости от контекста и состава. Второй тип атрибутов- это атрибуты связи. Данные атрибуты формируются в зависимости от подчиненного отношения одного объекта к другому. Самые известные и часто используемые атрибуты связи для конструкторов- это атрибуты "Количество" и "Позиция". Данные атрибуты формируются в контексте конструкторского состава изделий. Найти данный атрибут вне выстроенных подчиненных отношений невозможно. Он появляется только при открытии нужного состава. Полный перечень возможных подчиненных связей и атрибутов находится в конфигураторе базы данных. У каждой связи есть большой набор связанных атрибутов. Для атрибутов связей возможно такая же настройка политик безопасности, добавления собственных форм и т.д. В контексте любого подчиненного состава эти атрибуты связи отображ

В системе IPS существует два типа атрибутов: атрибуты объекты и атрибуты связи.

Атрибуты объектов настраиваются в конфигураторе для каждого типа объектов и неразрывно связаны с этим типом вне зависимости от контекста и состава.

-2

Второй тип атрибутов- это атрибуты связи. Данные атрибуты формируются в зависимости от подчиненного отношения одного объекта к другому. Самые известные и часто используемые атрибуты связи для конструкторов- это атрибуты "Количество" и "Позиция". Данные атрибуты формируются в контексте конструкторского состава изделий.

-3

Найти данный атрибут вне выстроенных подчиненных отношений невозможно. Он появляется только при открытии нужного состава.

Полный перечень возможных подчиненных связей и атрибутов находится в конфигураторе базы данных. У каждой связи есть большой набор связанных атрибутов.

-4

Для атрибутов связей возможно такая же настройка политик безопасности, добавления собственных форм и т.д.

В контексте любого подчиненного состава эти атрибуты связи отображаются в карточке объекта во вкладке связи.

-5

Настройка правил взаимного подчинения объектов друг другу настраивается также в конфигураторе базы данных во вкладке "Допустимые связи" у выбранного объекта.

-6

Теперь перейдем непосредственно к самой задаче по настройке атрибутов связи, а точнее формул:

В контексте состава изделий существует атрибут Количество, которое представлено в виде вещественного числа с единицами измерения: 5 шт, 5л, 5м и т.д. Задача состоит в том, чтобы создать отдельный атрибут связи объекта: единица измерения на русском и единица измерения на английском. Данные дополнительные атрибуты часто используются в различных экспортных ведомостях, спецификациях и т.д.

Результат моей работы будет два дополнительных автоматически заполняемых с помощью формул атрибута связи: "Единица измерения-RUS" и "Единица измерения-ENG".

Решение:

1. В конфигураторе базы данных для связи "Состав изделия" добавим атрибуты связи "Единица измерения-RUS" и "Единица измерения-ENG".

-7
-8

Важные настройки данного атрибута связи выделены красным контуром.

Далее после создания не забываем настройки автоматического добавления данного атрибута. После всех необходимых настроек переходим в редактор формулы присвоения данного атрибута.

-9

В качестве формулы я использую нехитрую функцию RIGHT, которая возвращает подстроку, начиная с указанного символа. Символ, который я отлавливаю с помощью доп.функции POS,- это пробел в атрибуте количество.

Один важный нюанс- при работе формулами на атрибуты связи мы можем использовать только атрибуты связи, но не объекта.

RIGHT([Количество],POS(' ',[Количество])+1)

-10

Проверим результат на составе изделия. Мы видим, что при изменении количества в атрибут единица измерения RUS попадает нужное мне значение.

-11

Безусловно, что в зависимости от настроек атрибута "Количество", символ пробела может быть заменен на другой- тогда формула может быть изменена. Но в целом, первая часть задачи решена.

2. Для второй части аналогично первому этапу добавить атрибут "Единица измерения-ENG".

-12

В качестве формулы я буду использовать функцию IIF, которая позволяет создать несколько подусловий.

IIF([Единица измерения-RUS]=='шт', 'pcs', IIF([Единица измерения-RUS]=='кг', 'kgs', IIF([Единица измерения-RUS]=='г', 'g', 'Не опр.' )))

-13

В моем примере я создал условие только для трех значений: шт, кг, г. В остальных случаях возвращается значение "Не опр.". Безусловно, что код был бы элегантней в случае наличия функции ELSEIF или других подобных операндов, но к сожалению, работает с чем есть.

Посмотрим на появившийся результат в составе изделия.

-14

Если статья была полезной- не забываем ставить лайки)

Для связи используйте контакты,

Газизулин Александр

ООО "АМКАД"

Telegram-канал для пользователей IPS

8-800-3333-205

gam@amcad.ru