Управление отображением данных.
Удалим из предыдущего примера поле Key, которое пользователю видеть не нужно. Это поле – счетчик, и его значение увеличивается автоматически. А раз пользователь не может влиять на значения этого поля, и оно не несет для него полезной информации, то и отображать это поле не надо.
Чтобы спрятать от пользователя ненужные поля и показывать только то, что нужно и в том виде, в котором нам нужно, необходимо научиться управлять отображением данных. Сначала создайте в нашей базе (в MS Access) еще два поля Дата и Мобильник. Для этого загрузите базу данных в MS Access, щелкните по ней правой кнопкой мыши и в появившемся меню выберите Конструктор.
Далее, в режиме конструктора необходимо выполнить следующие действия:
- Добавьте поле с именем Дата и типом Дата/время.
- Добавьте поле с именем Мобильник и типом Логический. Если в строке находится номер мобильного телефона, то в этом поле будем ставить true, иначе false.
- Закройте таблицу.
Теперь перейдем в Delphi и попробуем отобразить изменения в уже созданном примере.
- Для начала перенесем компоненты доступа к базе данных в отдельное специальное окно. Выделите компоненты ADOConnection1, DataSource1 и BookTable. Теперь выберите из меню Edit пункт Cut, чтобы эти компоненты скопировались в буфер обмена и сразу удалились с формы.
- Выберите меню File – New – Data Module. Этим вы заставите Delphi создать специальное окно Data Module, которое подходит для хранения компонентов доступа к данным.
- Выберите из меню Edit пункт Paste, чтобы вставить в это окно вырезанные нами компоненты. Расположите их так, как вам удобно.
- Откройте Менеджер проектов (меню View – Project Manager) и расположите это окно так, чтобы вам было удобно в любой момент получить к нему доступ. Теперь, когда потребуется перейти из главной формы в модуль данных DataModule или обратно, вы можете это легко сделать с помощью Менеджера проектов, дважды щелкнув мышью по нужной форме.
- Перейдите в главную форму, и вы сразу увидите, что в нашей сетке DBGrid1 нет данных. Это потому, что она потеряла связь с компонентами доступа к данным. Выделите сетку и щелкните мышью по свойству DataSource. Вы увидите, что в выпадающем списке ничего нет. Это потому, что все нужные компоненты мы убрали в отдельную форму и главная форма пока об этом не знает. Чтобы форма узнала о существовании компонентов, ей нужно определить в разделе Uses модуль DataModuleUnit. Это можно сделать вручную или выбрать из меню File пункт Use Unit (в этот момент должно быть выделено окно главной формы, так как мы подключаем новый модуль именно к ней). В появившемся окне нужно выбрать имя нового модуля – DataModuleUnit (пока оно одно в списке) и нажать ОК.
- Теперь можно выделять сетку DBGrid и в свойстве DataSource указать компонент DataSource, данные которого должны быть отображены в сетке (DataModule1.DataSource1).
- Теперь перейдем в модуль DataModule и настроим отображение данных. Дважды щелкните мышью по компоненту BookTable, и перед вами появится окно редактирования полей базы данных.
- Пока оно пустое. В него нужно добавить все поля базы данных. Для этого щелкните по нему правой кнопкой мыши и в появившемся меню выберите пункт Добавить все поля(Add All Field). Окно автоматически заполнится именами полей.
Поля можно переставлять местами, двигая их мышью. При этом физическое положение их в базе не изменится. Однако при отображении данных в сетке они будут отображаться в том порядке, в котором выстроены. Таким образом вы можете изменить порядок отображения данных, не обращаясь к самой БД.
Также можно выделять отдельные поля и в объектном инспекторе редактировать их свойства. Свойства и полей могут быть разные в зависимости от типа поля.