Урок 7. Практика разработки. Часть 4

Сайт: Система дистанционного обучения ФГБОУ ВО ЮГУ
Курс: Тест Глобал
Книга: Урок 7. Практика разработки. Часть 4
Напечатано:: Гость
Дата: воскресенье, 20 апреля 2025, 08:21

Описание

Цель данного урока познакомить слушателя с различными возможностями классов и выборок

1. Сервис универсальных коллекций (v-collection)

Универсальные коллекции – это коллекции, для которых в качестве мастера могут выступать объекты разных классов.

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


2. Денормализация классов-деревьев

В нашем случае под денормализацией понимается вспомогательный класс, который обеспечивает более быстрый доступ к данным по иерархичным связям, чем рекурсивные запросы.

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


3. Режимы редактирования выборки

Для отображения имеется 3 варианта редактируемости, которые указываются в свойстве отображения editMode в разметке (файле avm):

  • edit - Разрешено редактирование данных. Можно запретить редактирование

  • notEdit - Запрещено редактирование данных. Можно разрешить редактирование

  • readOnly - Запрещено редактирование данных.

Для редактируемых списков доступна операция allowEdit, которая меняет режим редактирования.


4. Передача параметров в выборку

Передача параметров в выборку – способ передачи данных между выборками, которые не зависят друг от друга. По умолчанию такая передача используется при открытии карточки, в которую передаются id объекта и режим редактирования.

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

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


5. Клонируемые операции

Операции, которые размножаются по результату запроса. Запрос для размножения операции может быть указан в аннотации @Oper в свойстве cloneQuery или в разметке в блоке oper в свойстве cloneQuery

Результат запроса должен содержать поля:

  • sName – системное имя операции

  • nImageIndex – номер изображения для операции

  • sCaption – отображаемое имя операции

Получение значений атрибутов запроса происходит как обычное получение атрибутов через getVar. Для получения значений атрибутов выборки, откуда была вызвана операция, необходимо добавить super$ к имени атрибута


6. Фильтры

Фильтрация набора данных производится с помощью макроса фильтра, генерируемого на основе условий с признаком isExpression="true" или непосредственного добавления условия в запрос получения данных. Имя макроса берется из разметки фильтра и подставляется с префиксом &. Например, для <macros name="DefFltReferenceMacro"> в запрос необходимо подставить &DefFltReferenceMacro, в котором будет сгенерирован макрос фильтра.

По умолчанию для справочников и классов с группировкой в Dvi генерируется подстановка макроса фильтра в запрос с помощью prepareSelectStatement

Разметка для фильтров аналогична разметке атрибутов. Атрибуты фильтров выводятся на панели фильтрации и имеют свои собственные сеттеры. По умолчанию для справочников генерируется фильтр «Отображать неиспользуемые». В свойствах фрейма можно отключить отображение панели фильтрации с помощью свойства frame «filter.isVisible» (по умолчанию отображение отключено для карточки).

Пример условия для частичного совпадения по тексту

expression="upper(t.sCode) like upper('%'||:flt_sCode||'%')"