Урок 3. Интерактивная бизнес логика.
Contents
Урок 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
, который будет выводить новое отображение в качестве закладки.
Источники для самостоятельного изучения#
Изучите следующие разделы в Руководстве прикладного разработчика
: