Создание простейшего клиента БД в Delphi. Краткое описание интерфейса Turbo Delphi 2006. Примитивная программа работы с БД, страница 5

В том случае, если вы все сделали правильно, то даже в режиме проектирования в компонентах DBGrid будут отображаться имеющиеся в БД данные. Если же этого не происходит, проверьте в первую очередь свойство Connected компонента SQLConnection, свойства Active компонентов SimpleDataset, и свойства Enabled компонентов DataSource все они должны иметь значение TRUE;

Сохраните ваш проект. Самая примитивная его альфа-версия готова.

Щелните мышью по зеленому треугольнику на панели инструментов Delphi и запустите проект на выполнение. После успешной компиляции вы увидите приблизительно такое окно:

Рис. 3.3 – примитивная программа работы с БД.

Как видим, программа работает, но имеет довольно большое количество недостатков и фактически мало чем отличается от IBConsole. В разработанной программе даже не работает ни один пункт меню (за исключением Exit и Help). Само меню и заголовки столбцов таблиц выполнены частично англоязычно, частично в транслитерации, что делает пользование программой неудобной. Тем не менее, программа отображает содержимое  БД, а дальнейшее развитие интерфейса целиком в наших руках.

Можно предложить следующие пункты развития:

l  список оценок в нижней части формы должен динамически меняться в зависимости от студента, выбранного в верхней части экрана. Крометого, список оценок имеет смысл несколько расширить.

l  Информацию о студентах, вероятно надо представить двояко: в табличном виде для быстроты навигации оставить только один столбец с фамилией,  остальные столбцы заменить отдельными полями ввода TDBEdit.

l  Русифицировать меню и другие элементы интерфейса.

l  В строке статуса можно отображать имя БД, к которой подключена программа в данный момент

l  Добавить функции поиска и фильтрации.

Начнем эти изменения с верхнего DBGrid. Дважды щелкнем по нему, у нас откроется окно редактирования колонок. Пока оно пустое. Нажимаем клавишу «Ins» и добавляем колонку. Выделяем ее  имя кнопкой мыши, затем  в инспекторе объектов меняем свойство FieldName (Имя поля) на «Surname»,  а свойство Title->Caption (Шапка-> Текст Шапки ) на «Фамилия». Закрываем окно редактирования полей. Подгоняем размер  объекта DBGrid под размер его единственной колонки, и смещаем влево. Используя аналогичные приемы, модифицируем нижний DBGrid, отображающий успеваемость.  О других настройках DBGrid можно (и рекомендуется) почитать в конце методических указаний к Лабораторной работе № 4.

Размещаем на форме 6 компонетов TDBEdit и TCaption как показано на рисунке 3.3, либо по собственному вкусу.  У компонентов TDBEdit поменяйте свойство DataSource на DataModule1.Stud_Src (или иное значение в зависимости от имен объектов на модуле данных) и свойство DataField в соответствии с именем поля таблицы БД с которым хотите связать данный TDBEdit. Форма приобретет приблизительно следующий вид:

Надпись:  
Рисунок 3.4 - модифицированная форма альфа-версии программы

Из неописанных элементов интерфейса у нас остался только элемент DBComboBox, отображающий информацию о поле студента. Как и в случае с полями DBEdit для адекватной работы этого компонента необходимо поменять его свойства DataSource и DataField. Элементы в список возможных значений добавляются двойным щелчком по свойству Items («Элементы») в инспекторе объектов. Напоминаем, что надо также настроить русифицированные заголовки в DBGrid3, расположенной на странице «Учебный график» главной формы. Настойка заголовка главной формы оставляется на самостоятельную  проработку.

Выше мы умышленно не касались русификации главного меню. Ее мы проведем параллельно с наращиванием функциональности программы.

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

Работа с фильтрами для таблиц БД в Delphi нисколько не сложнее работы с фильтрами в Access. Общий подход такой

1.  Отключаем фильтрацию набора данных