Сервис группового редактирования
Contents
Сервис группового редактирования#
Основные положения#
Операция группового редактирования объявлена в EntityAvi
в отображение Default
,
что означает, что она доступна в каждой выборке.
Что бы включить операцию группового редактирования, необходимо в вашем отображении переопределить операцию, так как изначально она выключена:
@Oper(
active = true,
headOperation = "extraOperation"
)
override def groupEditAttr(): Unit = super.groupEditAttr()
Для включения возможности группового редактирования на атрибуте, необходимо в odm (Объектно-документном представлении) или avm (Прикладную модель представления) добавить флаг isGroupEditAvailable:
<!-- odm -->
<attr name="dDoc" attribute-type="Date" caption="Дата док-та" order="60" type="basic" isVisible="true"
editorType="datePick" isHeadLine="true" isCopyInCopyObject="false" isGroupEditAvailable="true" />
<!-- avm -->
<attr name="dDoc" caption="Дата док-та" editorType="datePick" order="60" isGroupEditAvailable="true" />
Для json-атрибутов, при регистрации так же можно включить групповое редактирование (изначально оно выключено):
Btk_AttributeApi().registerJsonAttr(
idpClass = idClass,
spSystemName = "dCreateDoc".ns,
spCaption = "Дата создания док-та",
spAttrType = AttributeTypes.Long.toString,
spType = AttrTypes.Basic.toString,
bpGroupEditAvailable = 1.nn
)
Если необходимо включить групповое редактирование не изменя проектный код, необходимо зайти в приложение «Настройки системы» далее Сущности->Классы. В списке атрибутов в столбце «Групповое редактирование атрибутов» поставить галочку.
Редактируемые объекты#
Редактируемые объект представляет из себя ссылку на провайдер строки определённого класса.
Для классов в отображение происходит поиск атрибута с наименование id
, для миксинов gidRef
.
Если ваше отображение не привязано к классу, то в нём происходит поиск по следующим атрибутам: id
, gid
, gidRef
.
Если ни один из вышеперечисленных атрибутов не найден, будет выброшено исключение.
Свой список изменяемых объектов#
Если необходимо передать свой список изменяемых атрибутов, необходимо переопределить операцию ггруппового редактирования следующим образом:
@Oper(
active = true,
headOperation = "extraOperation"
)
override def groupEditAttr(): Unit = {
val idList = (0 until selection.selectedRecordsCount()).map { idx =>
// Вместо id -> idTask
NLong.fromAny(selection.selectedValueByName("idTask", idx))
}.toList
Btk_GroupEditPkg().execByRep(
baseRep = this,
listObjects = idList
)
}
Установка групп#
Если на классе установлена возможность группировки объектов Руководство разработчика: Сервисные возможности для классов # Группировка, то в отображении группового редактирования появится закладка «Установка групп», на которой можно задать группы для выделеных записей.
Дополнительные закладки для группового редактирования#
Для отображения группового редактирования есть возможность добавить новые закладки для дополнительной обработки объектов.
Для этого необходимо переопределить операцию группового редактирования, в которой вызывается Btk_GroupEditPkg().execByRep
, с параметром addTabs
,
который принимает последовательность объектов закладок для данного отображения.
Закладки представлены в виде кейс класса GroupEdit_TabsRow
, который принимает в себя данные об отображении и функцию обработки объекта.
Функция обработки объекта#
Данная функция принимает в себя один параметр в виде кейс класса GroupEdit_TabsRowParam
,
который содержит в себе Сессия выполнения группового редактирования и редактируемый объект, который может быть представлен в виде NGid или NLong.