Урок 3. Интерактивная бизнес логика.#
Данный урок знакомит слушателя с принципами построения интерактивной бизнес логики.
Отображение#
Группирует бизнес логику выборки
Для изучения смотри:
Операции#
Обработка события, вызванного пользователем или каким-то процессом
Для изучения смотри:
Атрибуты#
Перечень колонок, попавших в набор данных для отображения в результате операции onRefresh (а так же onRefreshExt в случае объектного запроса). Видимость, порядковый номер, отображаемое наименование, тип редактора и т.д. для атрибута настраивается в файле с разметкой (файл с расширением .avm.xml)
Типы фреймов#
Фреймы — это средство представления информации в выборке.
Полный перечень фреймов описан:
Средства отладки#
Наиболее популярными средствами отладки являются:
Клиентское окно отладчика.
Для изучения смотри:
Отладка в среде IDE.
Для изучения смотри:
Отладка в базе данных.
Отладка производится через обращения к БД с получением актуальных значений атрибутов.
Внимание
В БД хранятся только закоммиченные значения, т.е. пока пользователь не сохранил изменения, они не отобразятся в результате запроса
Практика#
Создание древовидного справочника#
Создайте справочник
Lbr_Catalog- Каталог с представлением объектов класса в виде дерева и указанными ниже атрибутами:name
attribute-type
caption
Дополнительно
idParent
Long
Предок
Ссылается на класс Lbr_Catalog. Невидимый атрибут
sCode
Varchar
Код
Обязательный для заполнения, мнемокод
sCaption
Varchar
Наименование
Обязательный для заполнения, хедлайн
Чтобы генератор кода автоматически создал нужные для отображения дерева методы, необходимо в метаданных указать
viewOptions.classType="tree"иviewOptions.classParentAttribute="idParent"Добавьте в класс
Lbr_Bookхранимую ссылку на каталог.Добавьте в
Lbr_MainMenuAviоткрытиеLbr_CatalogAvi.defList.
Добавление вычисляемого поля#
Добавьте поле с количеством книг в каталоге.
Переопределите
selectStatementиonRefreshExtи добавьте поле с количеством книг в каталоге, используя подзапрос.Добавьте в разметку описание нового атрибута, чтобы он был видимым и выводился после описания.
Добавление закладки#
Добавьте нередактируемую закладку к каталогу отображающую список книг без возможности создания и удаления.
В
Lbr_BookApiобъявите транзакционный индекс по полюidCatalogи метод получения книг по каталогу (refreshByCatalog), используя методrefreshByKeyобъявленного ранее транзакционного индекса.Для
Lbr_BookAviдобавьте новое отображение, которое будет выводить список книг для каталога, используя метод из предыдущего пункта.В
avmдобавьте разметку для нового отображения.Для этого отображения скройте операции
insert,deleteиuniFilter, используя аннотацию@OperвAviили блок<operations/>вavm. Так же скройте вывод панели фильтрации.Для
Lbr_Catalogв разметке отображенийTreeиCardпоменяйте настройкиlayoutсsimpleComposerнаtabComposerи добавьте блокtabItemsс конкретнымtabItem, который будет выводить новое отображение в качестве закладки.
Источники для самостоятельного изучения#
Изучите следующие разделы в Руководстве прикладного разработчика: