Dynamic attributes (setVisible)

Можете подсказать, как скрыть атрибут если значение другого атрибута равно чему-то по какому-либо условию . Как примерно будет выглядеть код заданный в “Скрипт пересчета значения” или это нужно задавать в “Скрипт валидации”?
Какие процедуры нужно проделать в общем и целом
И можно ли сделать так, чтобы категория одной сущности , появилась в edit окне другой? Если да, то как?

Здравствуйте!

Можете подсказать, как скрыть атрибут если значение другого атрибута равно чему-то по какому-либо условию . Как примерно будет выглядеть код заданный в “Скрипт пересчета значения” или это нужно задавать в “Скрипт валидации”?

Механизмом Dynamic attributes не предусмотрен условный показ полей в зависимости от значений сущности. Поле будет либо всегда добавлено на экран, либо всегда скрыто в зависимости от настроек.

Если нужно избежать внесения изменений в код экрана, можно - попробовать в скрипте пересчета значений очищать его (если значение может быть вновь вычислено в любой момент). Тогда будет показываться просто поле/ячейка с пустым значением в зависимости от другого атрибута.

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

И можно ли сделать так, чтобы категория одной сущности , появилась в edit окне другой? Если да, то как?

Такое тоже не предусмотрено реализацией Dynamic attributes: категория привязывается только к одной сущности.

Возможно, если вы опишите задачу, которая потребовала такого поведения от динамических атрибутов и имеющиеся ограничения, я смогу подсказать какие механизмы Jmix могут помочь в этом.

С уважением,
Дмитрий

Доброго времени суток!
Необходимо динамически менять атрибуты(поля) в окне “edit” в зависимости от значения другого атрибута.
Например:
В классе “Сотрудник” есть поле “имущество” , и в зависимости от его значения, должны меняться остальные атрибуты. Если “Движимое” , то появится поле тип, объем, двигатель, страна производства , если “Недвижимое” , то ранее перечисленные поля пропадают, и появляются адрес, площадь, кол-во комнат и т.д. и т.п.

Здравствуйте,

Если все это необходимо добавить исключительно в рамках динамических атрибутов, то есть без изменения схемы бд и перезапуска приложения в продакшне, то что-то новое тут посоветовать сложно.

Если же проект еще на этапе разработки, то в данной формулировке более подходящим вариантом выглядит обычная декомпозиция сущности и вынос полей в отдельный тип “Имущество” с подклассами, соответствующими указанным типам. Сокрытие полей/фрагментов реализуется в самом экране.

С уважением,
Дмитрий

Можно сделать поле “Имущество” категорией и использовать dynamicAttributesPanel для переключения набора атрибутов по категориям. См. Using DynamicAttributesPanel.