Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Управление отображением данных






Цель: научиться управлять отображением данных из базы в приложении пользователя (скрывать ненужные поля, отображать на экране лишь данные, необходимые пользователю и в удобном для пользователя виде).

 

В предыдущем примере все работает хорошо, только вот поле ID_справочника пользователю видеть абсолютно не нужно. Это поле – счетчик, и его значение увеличивается автоматически. А раз пользователь не может влиять на значение этого поля и оно не несет для него полезной информации, то и отображать это поле не надо.

Создайте в таблице Справочник нашей базы еще два поля Дата (тип Дата/Время) и Мобильник (тип Логический, если в строке номер мобильного, то будем ставить в этом поле true, иначе false). Закройте таблицу.

Теперь перейдем в Delphi и попробуем отобразить изменения в уже созданном примере.

Для начала перенесем компоненты доступа к базе данных в отдельное специальное окно:

  • выделите компоненты ADOConnection1, DataSource1 и ADOTable1;
  • выберите из меню Edit | Cut;
  • выберите меню File | New | DataModule (создание специального окна DataModule для хранения компонентов доступа к БД);
  • выберите команду Edit | Paste (расположите компоненты в окне DataModule как вам удобно);
  • сохраните новый модуль под именем DataModuleUnit.

 

Откройте Менеджер проекта (Project | Project Manager) и расположите это окно так, чтобы вам было удобно в любой момент получить к нему доступ.

Перейдите в главную форму, вы сразу увидите, что в нашей сетке DBGrid1 нет данных, потому что она потеряла связь с компонентами доступа к данным. Выделите сетку и щелкните мышью по свойству DataSource, в выпадающем списке ничего нет. Чтобы форма узнала о существовании компонентов, ей нужно определить в разделе uses модуль DataModuleUnit. Для этого выбрать File | Use Unit | DataModuleUnit | Ok (в этот момент должна быть активна главная форма проекта). Теперь в редакторе кода после слова implementation появилась запись uses DataModuleUnit;.

Теперь выделите сетку DBGrid1 и в свойстве DataSource укажите компонент, данные которого должны быть отображены в сетке (DataModule1. DataSource1).

Теперь перейдем в модуль DataModule и попытаемся настроить отображение данных. Дважды щелкните по компоненту ADOTable1, перед вами появится окно редактирования полей базы данных.

 

Пока оно пустое. В него нужно добавить все поля таблицы Справочник. Для этого щелкните по нему правой кнопкой мыши и в появившемся меню выберите пункт Добавить все поля (Add All Field).

Поля можно перемещать мышью, при этом их положение в БД не меняется. Также можно выделять отдельные поля и в Инспекторе объектов редактировать их свойства, свойства у полей могут быть разные в зависимости от типа поля.

 

 

Первое, что мы должны сделать – убрать видимость счетчика (поле ID_справочник). Пользователю его не нужно видеть. Выделите это поле и установите в свойстве Visible значение False. Сразу же можете перейти в главную форму или запустить программу, чтобы убедиться в том, что поле ID_справочник больше не отображается.

Теперь отредактируем ширину отображения колонок. Выделите поле Фамилия. В БД мы выделили под это поле 50 символов. В сетке по умолчанию будет отображаться вся ширина. Но чаще фамилия не превышает 15 символов. За ширину колонки отвечает свойство DisplayWidth, по умолчанию в нем стоит значение физической ширины поля, но мы укажем там 15. Опять же на саму БД это не влияет. Точно так же сократите ширину поля Имя.

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

Выделите поле Дата. Мы будем здесь указывать дату рождения владельца телефона. Поэтому разумно в заголовке сетки отображать Дата рождения. За текст, отображаемый в заголовке, отвечает свойство DisplayLabel. Введите в нем текст «Дата рождения». Можете проверить, теперь в сетке отображается нужный заголовок.

Отредактируем формат отображения даты. За это отвечает свойство DisplayFormat. Здесь можно указывать текстовый формат, в котором нужно отображать дату. Удобно использовать для отображения даты полный формат – “ dddddd ”.

Нужно указать маску ввода для даты. Ее нужно указывать в свойстве EditMask. Желательно всегда указывать маску – 99/99/9999.

Запустите приложение, все даты рождения отображаются теперь в полном формате. Если дважды щелкнуть по любой дате, то дата сразу перейдет в режим редактирования.

 

 

Отредактируем поле Мобильник. Пока что здесь отображаются значения true или false. Но для нас удобнее будет видеть Да или Нет. Выделите это поле и найдите его свойство DisplayValues. Здесь нужно указать положительное значение и после точки с запятой отрицательное. Таким образом указываем Да; Нет.

Запустите приложение, убедитесь в том, что установленные настройки применились для отображения таблицы Справочник.

 

Контрольные вопросы:

  1. Перечислить компоненты, необходимые для подключения к БД из приложения Delphi.
  2. Указать назначение компонентов: ADOConnection, ADOTable, DataSource, DBGrid.
  3. Назвать порядок подключения к таблице базы данных и отображения ее данных.
  4. Какое свойство поля отвечает за его видимость?
  5. С помощью какого свойства можно изменять ширину поля при отображении?
  6. Какой формат удобен для отображения даты, с помощью какого свойства поля его можно установить?
  7. С помощью какого свойства устанавливаем маску ввода даты? Какую маску желательно применять?
  8. В каком свойстве булевого поля устанавливаются его положительное и отрицательное значение и в каком виде?





© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.