Практика 6.4 Объектные характеристики.
Ответ на задание необходимо предоставить в виде файлов Scala и XML, которые были изменены в текущем уроке (для написанного программного кода). Скриншоты интерфейса приложения для заданий выполняемых в интерфейсе и для демонстрации работы кода в системе Global ERP следует отправить в формате PDF, PNG или JPG. Для удобства рекомендуется прислать все файлы в одном архиве.
В ответе на задание должны содержаться элементы, обеспечивающие работоспособность описанного в задании функционала.
- Внимание!
-
-
Для получения и установки значений базовых атрибутов класса используйте соответствующие методы из
api, методыrop.setByAttrName,rop.getByAttrNameиспользуются для установки и получения значенийТОЛЬКОjson-хранимых атрибутов, созданных в интерфейсе приложения, или в коде, при помощиBtk_AttributeApi().registerJsonAttr.
- Добавьте в
odmклассаLbr_Publisherлогический атрибутbIsForeign-Зарубежное издательство, укажите ему свойство, что он является объектной характеристикой. -
Настройке карточку объектных характеристик для класса
Lbr_Publisher, зависящую от групп объекта.-
укажите нужный тип карточки в
odm.xmlobjectAttrCardType="group" -
выведите закладку в карточке объекта (используйте выборку
Btk_ObjectGroupAvi#List_Tab).
-
укажите нужный тип карточки в
-
Добавьте объектные характеристики, хранящиеся в json-контейнере, в карточке класса.
-
зайдите в карточку класса
Lbr_Publisherи откройте закладкуАтрибуты - выполните операцию создать
-
заполните поля для нового атрибута:
- системное имя = dSanctionBegin
- наименование = Дата начала санкций
- тип данных = Date
-
Тип атрибута = Basic
- сохраните результат.
-
создайте второй атрибут:
- системное имя = idJsonAuthor
- наименование = Любимый автор издательства
- тип данных = Long
- Тип атрибута = RefObject
-
Ссылается на класс = выберите
Lbr_Author
-
зайдите в карточку класса
-
Настройте вывод объектных характеристик на группах объекта.
-
Откройте интерфейс редактирования групп и закладку
Атрибуты группыи включите редактирование в списке - Для корневой группы добавьте атрибут
bIsForeign -
Для группы «Зарубежные издательства»
-
добавьте атрибут
dSanctionBegin -
переопределите атрибут
bIsForeign, установите значение по умолчанию1. В предложенном диалоге согласитесь установить значение по умолчанию для всех объектов с перезаписью имеющихся значений.
-
добавьте атрибут
-
Для группы «Отечественные издательства»
-
добавьте атрибут
idJsonAuthor -
переопределите атрибут
bIsForeign, установите значение по умолчанию0. В предложенном диалоге согласитесь установить значение по умолчанию для всех объектов с перезаписью имеющихся значений.
-
добавьте атрибут
-
После настройки на карточке об. характеристик будут доступны атрибуты:
-
bIsForeign- для всех объектов, при включении в группу «Зарубежные издательства» будет устанавливаться значение1, при включении в «Отечественные издательства» будет устанавливаться значение0 -
dSanctionBegin- для объектов группы «Зарубежные издательства», снимите признакИспользовать для основных групп -
idJsonAuthor- для объектов группы «Отечественные издательства», снимите признакИспользовать для основных групп
-
-
Откройте интерфейс редактирования групп и закладку
-
Под операцией
Дополнительносделайте операциюОбновить характеристики, которая будет обновлять значения характеристик объекта.- Создайте новую операцию на тулбаре, укажите ей операцию-предка
-
Проверяем какое это издательство, получая значение характеристики
bIsForeign-
Если зарубежное:
-
проверяем текущее значение характеристики
dSanctionBegin, если оно заполнено, то выдаем сообщениеДля издательства <Наименование> уже введены санкции, начало санкций: <значение характеристики dSanctionBegin> -
если текущее значение
dSanctionBeginне заполнено, то заполняем текущей датой, и выдаем сообщениеДля издательства <Наименование> успешно введены санкции
-
проверяем текущее значение характеристики
-
Если отечественное:
-
проверяем текущее значение характеристики
idJsonAuthor, если оно заполнено, то выдаем сообщениеДля издательства <Наименование> уже выбран любимый автор: <headline для значение характеристики idJsonAuthor> -
если текущее значение
idJsonAuthorне заполнено, то открываем диалог выбора автора, и устанавливаем выбранное значение в характеристику
-
проверяем текущее значение характеристики
-
Если зарубежное:
- Примечание
-
-
- Для получения значения характеристики, хранящейся в таблице класса используется стандартный способ, как и для других атрибутов класса.
-
Для получения значения json-характеристики используется метод
ru.bitec.app.btk.class_.attr.AttrApi#getAttrValue. Пример вызова:
val dDate = Lbr_PublisherApi().getAttrValue(rop, "dSanctionBegin").asNDate
-
Для установки значения json-характеристики используется метод
ru.bitec.app.btk.class_.attr.AttrApi#setAttrValue. Пример вызова:
Lbr_PublisherApi().setAttrValue(rop, "dSanctionBegin", NDate.now())