Вкладка RX DBAware. Компонент TRxDBLookupList

   
На этом шаге мы рассмотрим компонент TRxDBLookupList.

    Компонент TRxDBLookupList почти полностью
аналогичен стандартному компоненту из VCL TDBLookupList
и имеет те же самые свойства, методы и события. Однако у этой компоненты есть
некоторые дополнительные возможности и свойства.


Рис.1. Компонент TRxDBLookupList

   
TRxDBLookupList позволяет использовать в качестве
LookupSource любой источник данных - как
TTable, так и TQuery, при этом свойство
LookupField не обязательно должно быть индексированным полем. Компонент TRxDBLookupList позволяет также производить поиск нужного термина при наборе первых букв этого термина.
   Компонент также позволяет задать изображения для
рисования в левой части каждой строки списка, в зависимости от содержимого
полей БД, с помощью события OnGetImage.
   В остальном компонент TRxDBLookupList
полностью аналогичен компоненту TDBLookupList.
   При присвоении значений свойству Value
или DisplayValue компонент TRxDBLookupCombo
или TRxDBLookupList безошибочное позиционирование на
соответствующую запись в списке произойдет только в том случае, если
соответствующее поле в подмножестве записей, заданном источником данных
DataSource, имеет только уникальные неповторяющиеся значения.
В противном случае вы получите несколько "выбранных" элементов в
списке (причем реально будет выбран только один самый первый), значения полей
в которых равны заданному. Избегайте таких ситуаций!
   При работе с некоторыми SQL-серверами
БД установка свойств IndexSwitch
или IgnoreCase в значение True может
приводить к неожиданному поведению компонента. В этом случае постарайтесь добиться
"правильного" поведения за счет комбинирования разных значений
свойств IgnoreCase и IndexSwitch.
   
Рассмотрим свойства данного компонента :

Таблица 1. Свойства компонента TRxDBLookupList.

СвойствоОписание
property OnGetImage: TGetImageEvent; Событие позволяет задать картинку (битовое изображение, иконку и т.д.), которая
будет изображаеться в левой части строки списка.
В обработчике события вы можете определить значение параметра TextMargin ,
определяющее отступ текста от левого края списка (рекомендуется задавать это
значение одинаковым для всех строк списка) и значение параметра
Graphic, определяющего изображение для рисования.
В обработчике события текущая запись Lookup-набора данных (заданного свойством
LookupSource) соотвествует той, для которой вы будете задавать
изображение, таким образом вы можете проверить содержимое этой записи и заданнное
вами графическое изображение будет зависеть от наполнения полей БД.
В компоненте TRxDBLookupCombo имеет смысл параметр события
IsEmpty. Если передано значение True, то этот
обработчик будет определять картинку для "пустого" значения
Value (если задано непустое значение свойства DisplayEmpty),
и в этом случае вы не должны обращаться к полям LookupSource.
property IndexSwitch: Boolean; Свойство задает значение DisplayValue в том случае, если
никакого выбора не сделано и значение Value равно значению
свойства EmptyValue (по умолчанию - пустой строке). В списке
отображается дополнительной строкой в верхней части списка с использованием цвета
EmptyItemColor и не скролируется (остается всегда видимым и
доступным для выбора).
property DisplayEmpty: string; Свойство задает значение DisplayValue в том случае, если
никакого выбора не сделано и значение Value равно значению свойства
EmptyValue (по умолчанию - пустой строке). В списке отображается
дополнительной строкой в верхней части списка с использованием цвета EmptyItemColor
и не скролируется (остается всегда видимым и доступным для выбора).
property EmptyValue: string; Свойство задает значение, присвоение которого свойству Value
будет восприниматься как присвоение "пустого" значения и приведет к очистке
DataField. По умолчанию значение свойства есть пустая строка.
property FieldsDelimiter: Char; Свойство определяет разделитель между полями, отображаемыми в списке, при
значении свойства ListStyle = lsDelimited. По умолчанию - запятая
(',').
property IgnoreCase: Boolean; Свойство определяет, будет ли учитываться регистр вводимых символов при поиске
термина путем набора его первых букв (см. описание компонента TrxDBLookupCombo).
True (по умолчанию) - регистр не учитывается.

   
Компонент TRxDBLookupList можно связать с таблицей.

   Например, поместим на форму компоненты
RxDBGrid1, Table2, DataSource2 – для связи
базы данных и таблицы, RxDBLookupList1 (рис.2).


Рис.2. Форма с размещенными на ней компонентами
RxDBGrid1, Table2, DataSource2, RxDBLookupList1

    Установим свойство LookupSource компонента
RxDBLookupList1 в значение DataSource2, LookupField
в значение ‘Код', тогда, выбирая в списке значение, в таблице будет происходить
позиционирование на строку, имеющую это значение (рис.3).


Рис.3. Переход на вторую строку компонента RxDBLookupList1
    Текст этого примера можно взять здесь.

   
На следующем шаге мы рассмотрим компонент TRxDBLookupCombo.



Вы можете оставить комментарий, или Трекбэк с вашего сайта.

Оставить комментарий