Практика 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.xml
objectAttrCardType="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())