В том случае, если вы все сделали правильно, то даже в режиме проектирования в компонентах 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. Форма приобретет приблизительно следующий вид:
Из неописанных элементов интерфейса у нас остался только элемент DBComboBox, отображающий информацию о поле студента. Как и в случае с полями DBEdit для адекватной работы этого компонента необходимо поменять его свойства DataSource и DataField. Элементы в список возможных значений добавляются двойным щелчком по свойству Items («Элементы») в инспекторе объектов. Напоминаем, что надо также настроить русифицированные заголовки в DBGrid3, расположенной на странице «Учебный график» главной формы. Настойка заголовка главной формы оставляется на самостоятельную проработку.
Выше мы умышленно не касались русификации главного меню. Ее мы проведем параллельно с наращиванием функциональности программы.
Начнем это наращивание с фильтрации данных об успеваемости, заставив нашу программу отображать данные об успеваемости только конкретного студента. Это можно реализовать как с помощью фильтра, так и с помощью параметрических запросов. С запросами в т.ч.параметрическими мы поработаем на следующем занятии, сейчас же рассмотрим фильтры.
Работа с фильтрами для таблиц БД в Delphi нисколько не сложнее работы с фильтрами в Access. Общий подход такой
1. Отключаем фильтрацию набора данных
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.