Признак заполненности детали

Подскажите, как можно динамически подставлять в заголовок свёрнутой детали (например, адреса контрагента) признак (* или кол-во), если в детали есть данные?

Нравится

9 комментариев

Добрый день!
стандартными средствами это реализовать не возможно.
Но, Вы можете, обладая знаниями программирования на JS, написать в принципе что угодно, к примеру найти нужный вам div и изменить его содержимое в зависимости от интересующих вас условий.

"Мотков Илья" написал:написать в принципе что угодно

это понятно, что что угодно можно.
Но в bpm как-то система уже отображает "нет данных", следовательно, эта информация уже где-то подсчитана.
Вопрос - как её добыть

Попробовали this.getGridData().collection.length

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

Проще будет на init или еще где-то написать запрос esq к объекту детали. (только не забыть фильтр по родительской записи).
В this.getGridData().collection.length не всегда будет храниться правильная информация,т.к. в деталь записи тянуться постранично. В указанном параметре будут храниться количество уже загруженных данных.

"Пащенко Александр Сергеевич" написал:только не забыть фильтр по родительской записи

Фильтр может быть и не по родительской записи. То есть, при таком подходе про универсальность можно забыть.
Количество записей не важно - важно их наличие или отсутствие.

Возможно, есть какое какое-то событие у детали, которое возникает при загрузке данных, и когда этот параметр будет уже соответствовать действительности?

Тогда есть смысл посмотреть в сторону атрибута IsGridEmpty и метода initIsGridEmpty.
Подробнее в GridUtilitiesV2

"Пащенко Александр Сергеевич" написал:Тогда есть смысл посмотреть в сторону атрибута IsGridEmpty и метода initIsGridEmpty.
Подробнее в GridUtilitiesV2

Спасибо!

Всё заработало!

"Пащенко Александр Сергеевич" написал:Тогда есть смысл посмотреть в сторону атрибута IsGridEmpty и метода initIsGridEmpty

Эх, я поторопился. Заработало только в том случае, если деталь развёрнута.
А когда деталь свёрнута, то IsGridEmpty не определяется (undefined).

В bpm для свёрнутой детали вообще не подчитываются никакие записи?

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

Для увеличения быстродействия данные на свернутую деталь действительно не загружаются. Загрузка данных осуществляется в момент разворачивания детали.
За загрузку данных отвечает метод loadGridData. Этот метод вызывается в момент разворачивания детали.

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

Важно! Не рекомендуется переопределять метод loadGridData, так как это замедлит быстродействие.

Показать все комментарии