Для отображения на форме списка объектов существует специализированный элемент управления, ObjectListView.
Список объектов может быть сгенерирован на основе модели Flexberry Desinger или создан вручную.
Для отображения списока объектов без генерации необходимо:
- Поместить
ObjectListViewна форму. - Присоединить к
ObjectListViewсервис данных. Для этого проинициализировать уObjectListViewсвойствоDataService. Если на форме уже реализованы сервисы данных, то указать можно в окне редактирования свойств, где есть для этого выпадающий список. - Настроить отладочный пакет (если есть необходимость).
- Выбрать один или несколько классов для отображения. Для этого проинициализировать у
ObjectListViewсвойствоDataObjectTypes. Это можно также сделать при помощи специального дизайнера, доступного из окна редактирования свойств. - Выбрать совместимое со всеми классами представление. Для этого необходимо проинициализировать у
ObjectListViewсвойствоViewName. Это также можно сделать из окна редактирования свойств. Внимание! В выпадающий список попадают только совместимые со всеми типами, перечисленными вDataObjectTypes, представления. - Установить, при необходимости, ограничение. Для этого проинициализировать свойство
LimitFunction. Если делать в среде VS из окна редактирования свойств, то через свойствоLimit. - Настроить при необходимости видимость и ширину колонок. Для этого настроить у
ObjectListViewсвойствоColumnsчерез окно редактирования свойств.
Основная функциональность ObjectListView для пользователя
ObjectListView отображает разнотипные объекты в одном списке в соответствии с совместимым представлением. Кроме атрибутивного состава, согласно представлению, ObjectListView может отображать картинки (Image), приписанные классам данных.
Основная функциональность ObjectListView для пользователя:

Пользователь может:
- Просматривать список объектов (в т.ч. и разнотипных)
-
Обновить список объектов

-
Вернуть выбранные объекты (LookUp)

- Выполнять сортировку объектов, для чего необходимо ткнуть мышью в заголовок колонки
-
Создать объект (если DataObjectTypes содержит несколько типов, то пользователь может из выпадающего списка выбрать, какого типа необходимо создать объект)

- Создать объект на основе выделенного

- Отредактировать один или несколько выделенных объектов

- Удалить один или несколько выделенных объектов

- Настроить видимость колонок (пользователь может скрыть часть колонок для удобства)

- Наложить ограничение на список отображаемых объектов

- Выполнить поиск по списку

Также пользователю доступны:
- Предварительный просмотр печати списка

- Печать списка

- Настройки печати

- Копирование выделенного в буфер обмена

- Операции с пометками и выделением

Обновление рабочего стола
Для принудительного обновления дерева папок и списка рабочего стола необходимо вызвать метод DesktopCtrl.ReloadDesktopcustomizer().
Сообщение о продолжении загрузки при нехватке ресурсов
Сообщение с вопросом о продолжении загрузки возникает при исчерпании физической памяти, выделенной приложению, т.к. выделение памяти в файле подкачки требует значительных временных затрат.

Для включения данной функции необходимо присвоить свойству ‘‘MemoryTimeLoadLimit’’ любое положительное значение.
Оптимизация чтения данных
В обычном режиме ObjectListView зачитывает все поля, находящиеся в представлении, даже если некоторые колонки скрыты. SQL Server при выполнении запроса руководствуется полями входящими в самый верхний запрос (при их вложении) и ограничением. Если поле мастера не используется ни в списке выводимых, ни в ограничении, то SQL Server не выполняет join, тем самым ускоряя ограничение запроса.
Установка свойства ObjectListView.UseColumnOptimization=true позволяет не включать в запрос скрытые поля.
Установить режим оптимизации для всех списков приложения позволяет метод Tuner.Customize, в котором следует установить свойство UseColumnOptimization для ObjectListView, переданного в качестве параметра.
Отключение хоткей F2 для редактирования объектов
Нужно в ObjectListView указать UseHotkeyForEdit = false;. Это повлияет и на тултип, который появляется над кнопкой редактирования.
Полезные ссылки
- Объекты в ObjectListView
- Дизайн и функциональность
- Разное