Урок 3. Интерактивная бизнес логика.#

Данный урок знакомит слушателя с принципами построения интерактивной бизнес логики.

Отображение#

Группирует бизнес логику выборки

Для изучения смотри:

Операции#

Обработка события, вызванного пользователем или каким-то процессом

Для изучения смотри:

Атрибуты#

Перечень колонок, попавших в набор данных для отображения в результате операции onRefresh (а так же onRefreshExt в случае объектного запроса). Видимость, порядковый номер, отображаемое наименование, тип редактора и т.д. для атрибута настраивается в файле с разметкой (файл с расширением .avm.xml)

Типы фреймов#

Фреймы — это средство представления информации в выборке.

Полный перечень фреймов описан:

Средства отладки#

Наиболее популярными средствами отладки являются:

Практика#

Создание древовидного справочника#

  • Создайте справочник 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.

Добавление вычисляемого поля#

Добавьте поле с количеством книг в каталоге.

  1. Переопределите selectStatement и onRefreshExt и добавьте поле с количеством книг в каталоге, используя подзапрос.

  2. Добавьте в разметку описание нового атрибута, чтобы он был видимым и выводился после описания.

Добавление закладки#

Добавьте нередактируемую закладку к каталогу отображающую список книг без возможности создания и удаления.

  1. В Lbr_BookApi объявите транзакционный индекс по полю idCatalog и метод получения книг по каталогу (refreshByCatalog), используя метод refreshByKey объявленного ранее транзакционного индекса.

  2. Для Lbr_BookAvi добавьте новое отображение, которое будет выводить список книг для каталога, используя метод из предыдущего пункта.

  3. В avm добавьте разметку для нового отображения.

  4. Для этого отображения скройте операции insert, delete и uniFilter, используя аннотацию @Oper в Avi или блок <operations/> в avm. Так же скройте вывод панели фильтрации.

  5. Для Lbr_Catalog в разметке отображений Tree и Card поменяйте настройки layout с simpleComposer на tabComposer и добавьте блок tabItems с конкретным tabItem, который будет выводить новое отображение в качестве закладки.

Источники для самостоятельного изучения#

Изучите следующие разделы в Руководстве прикладного разработчика: