Шаг 3. Настройка внешнего вида отображения таблицы

Кликните дважды по компоненту TableMagazin – получите окно настройки полей таблицы Form1.TableMagazin. Кликните в нем правой клавишей мыши и в контекстном меню выберите опцию добавления всего содержимого таблицы – Add all fields.

Из полученного состояния можно удалить первое поле id_kn – идентификатор книги. Это поле является счетчиком, содержимое которого формируется автоматически и для пользователя не несет полезной информации. Оставшиеся поля можно настраивать по своему усмотрению.

Свойство Alignment определяет выравнивание содержимого полей, свойство DisplayWidth – отображаемую ширину столбцов, свойство DisplayLabel – надпись в титульной строке. Этого пока достаточно для первоначальной настройки.

Дальнейшие настройки можно произвести в компоненте DBGrid1.

Для начала настройте через Инспектор Объектов по своему усмотрению шрифт титульной строки в свойстве TitleFont и установите приемлемый цвет в свойстве FixedColor. Далее отключите dgIndikator в свойстве Options.

Существует возможность настраивать вид столбцов по отдельности. Для этого кликните дважды по компоненту DBGrid1 и получите окно настройки полей таблицы. Кликните правой клавишей мыши по окну настройке и возникшем контекстном меню выберите опцию добавления всех полей. Затем расставьте их по своему усмотрению, передвигая левой клавишей мыши вверх-вниз. Эта расстановка никак не скажется на исходной таблице в базе данных. Для каждого поля в инспекторе объектов можно установить свой цвет, выравнивание и другие параметры.

Пример оформления внешнего вида таблицы:

К текущему моменту еще не было написано ни строчки программного кода. Давайте все-таки уже попробуем управлять отображением таблицы динамически – через программный код. Предоставим пользователю возможность организовать сортировку таблицы по выбранному столбцу и выбрать направление сортировки.

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

Разместите на форме компонент RadioGroup1 и добавьте две строки в его свойство Items: автор и цена (по этим столбцам будем проводить сортировку). Дважды кликните по компоненту RadioGroup1 и добавьте в обработчик события код:

procedure TForm1.RadioGroup1Click(Sender: TObject);

begin

with RadioGroup1 do

DM.TableMagazin.Sort:=Items[ItemIndex];

end;

Параметр ItemIndex содержит номер нажатой кнопки в RadioGroup1 (счет ведется с нуля), а Items – содержит соответствующие строки (вы их сами набирали).

Теперь организуем возможность выбора направления сортировки. Для чего разместите на форме компонент RadioGroup2 и добавьте две строки в его свойство Items: по возрастанию и по убыванию. В инспекторе объектов для компонента RadioGroup2 в качестве обработчика события OnClick в выпадающем списке укажите обработчик RadioGroup1Click, то есть один обработчик будет обрабатывать события при выборе пользователем как направления сортировки так и столбца для сортировки. Это обстоятельство следует учесть в обработчике события:

procedure TForm1.RadioGroup1Click(Sender: TObject);

var ns: string;

begin

case RadioGroup2.ItemIndex of

0: ns:=' ASC';

1: ns:=' DESC';

end;

with RadioGroup1 do

DM.TableMagazin.Sort:=Items[ItemIndex]+ns;

end;

В этом коде уже используются элементы языка SQL (англ. Structured Query Language – «язык структурированных запросов») – универсальный компьютерный язык, применяемый для создания, модификации и управления информацией в базах данных. Данный язык не является целью при освоении материала описанного в этом пособии, но по мере необходимости он будет использоваться и будут приводиться соответствующие комментарии для лучшего понимания материала.

Тут следует упомянуть, что ASC (сокращение от ASCENDING – гл. подниматься) и DESC (от DESCENDING – гл. спускаться) инструкции, указывающие направление сортировки. Однако на практике слово ASC обычно не применяется, поскольку такой порядок используется по умолчанию (он предполагается, если не указано ни ASС, ни DESC).

Другой способ расширить функционал СУБД – обеспечить фильтрацию данных по выбору пользователя. Давайте предоставим пользователю возможность из таблицы отбирать книги по году издания. У компонента TableMagazin есть строковый параметр Filter – там укажем команду, определяющую условие фильтрации.

Разместите на форме компонент GroupBox1 и добавьте в него компоненты Label1, MaskEdit1 и Button1 (см на рис. далее). MaskEdit1 настройте так, чтобы пользователь не мог ввести буквы или символы, а только четырехзначное число (используя свойство EditMask = 9999 и Text = 2000 – это для образца).

В обработчик события нажатия кнопки добавьте код:

procedure TForm1.Button1Click(Sender: TObject);

begin

with DM.TableMagazin do

begin

Filter:='[год издания]>='+MaskEdit1.Text;

Filtered:=True;

end;

end;

Пояснения к коду. Поле год издания следует брать в прямоугольные скобки так как оно состоит из двух слов (таковы правила SQL). Из компонента MaskEdit берется год для проверки условия. Свойство Filtred (типа Boolean) переводится в состояние True, для того чтобы сработал механизм фильтрации.

Пример оформления формы для организации фильтрации по году издания:


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: