- •Лабораторная работа №6 (8 часов) Работа с локальными базами данных и несвязанными таблицами
- •6.1. Приложение для работы с локальной базой данных
- •6.1.1. Цель работы
- •6.1.2. Задание на выполнение работы
- •6.1.3. Процесс разработки приложения
- •6.1.4. Создание псевдонима базы данных
- •6.1.5. Разработка структуры записи таблицы базы данных
- •6.1.6. Разработка основной формы и ее компонентов для работы с бд
- •6.1.6.1. Размещение и настройка основных компонентов
- •6.1.6.2. Размещение и настройка панелей
- •6.1.6.3. Настройка компонента dbGrid1
- •6.1.6.4. Формирование вычисляемого поля
- •6.1.6.5. Дополнение формы окнами из редактора полей таблицы
- •6.1.7. Формирование основного меню
- •6.1.8. Методы подменю Показать данные
- •6.1.9. Методы для сортировки данных
- •6.1.10. Методы для поиска данных
- •6.1.11. Выполнение команд подменю ‘Вычислить:’
- •6.1.12. Метод команды меню Трафик' и настройка графика
- •6.1.13. Выполнение команд подменю Отчет
- •6.1.13.1. Формирование отчета
- •6.1.13.2. Методы подменю Отчет
- •6.1.14. Листинги примера проекта
- •6.1.15. Варианты заданий на работу с локальными базами данных
- •6.1.16. Контрольные вопросы
- •6.2. Приложение для соединения данных двух таблиц 1:1
- •6.2.1. Цель и задание на выполнение работы
- •6.2.2. Процесс разработки приложения
- •1) Установка русификатора для работы с таблицами типа Paradox7;
- •6.2.4. Контрольные вопросы
- •6.3. Приложение для формирования, слияния и разъединения однотипных таблиц баз данных
- •6.3.1. Цель и задание на выполнение работы
- •6.3.2. Процесс разработки приложения
- •6.3.3. Метод для работы с данных двух таблиц
- •6.3.4. Контрольныевопросы
6.1.11. Выполнение команд подменю ‘Вычислить:’
Для выполнения команды ‘Вычислить: - сумму стипендий’ - формирования и вывода на метку суммы столбца - используется непосредственный доступ к записям БД в методе N24Click. Пример его текста дан в листинге 6.2.
Для формирования и вывода на метку Label11 значения средней стипендии из метода N25Click вызывается метод N24Click(Sender); с его помощью определяется S - сумма стипендий. Затем определяется ее среднее.
6.1.12. Метод команды меню Трафик' и настройка графика
Для формирования графика зависимости данных из БД используется компонент типа TDBChart. Настройка его параметров не отличается от настройки параметров компонента типа TChart. За исключением: в его редакторе надо установить источником данных базу данных.
В рассматриваемом примере график выводится на отдельной форме. Для ее показа в процессе выполнения программы в методе для пункта меню График используется оператор Form2.Show;. К модулю Form1 надо подключить Form2 оператором UsesUnit2;.
Настройка графика состоит в следующем. К проекту подключить вторую форму Form2. На нее поместить компонент типа TDBChart из страницы DataControls. Вызвать редактор компонента EditingDBChart1, например, двойным щелчком правой кнопкой на компоненте. Разместить на компоненте 2 кривые, например типа Line. Установить их свойства Title, например ‘Номер зачетки – стипендия’, ‘Номер зачетки - новая стипендия’. На странице редактора Chart\Titles установить заголовок, например ‘Зависимость стипендии от номера зачетки’. Настроить параметры на страницах редактора Chart\Panel, Chart\Axis, Chart\Walls аналогично настройкам, изложенным в разделах 8.4 и 4.1. На странице Chart\Legend установить положение легенды в нижней части компонента. Для этого в группе Position установить активность радиокнопки Bottom. Для параметра LegendStyleвыбрать из списка значение Automatic.
На странице Series\DataSourse (источник данных) выбрать источник данных в виде Dataset. Вид редактора со страницей Series\DataSourse дан на рис. 6.7. Выпадающий список Dataset содержит имена наборов данных, доступных в модуле формы Form1. Из него выбрать значение Form1.Table1. Настроить серии.
Рис. 6.7. Вид Series\DataSourse - страницы редактора
Для этого в окне для выбора серии выбрать кривую Series1 с именем ‘Номер зачетки – стипендия’. Для нее в окне X выбрать из выпадающего списка значение NZ. В окне Y: выбрать из выпадающего списка значение RS. Аналогично выбрать кривую Series2 с именем ‘Номер зачетки - новая стипендия’. Для нее в окне X: выбрать из выпадающего списка значение NZ. В окне Y: выбрать из выпадающего списка значение NRS.
При выполнении приложения дизайн графика кривой выглядит так же, как и при проектировании.
Текст модуля для формы Form2 дан в листинге 6.3.
6.1.13. Выполнение команд подменю Отчет
6.1.13.1. Формирование отчета
Для вывода отчета с данными из БД используется отдельная форма Form3 В модуле основной формы должна быть ссылка (UsesUnit3;) на модуль Form3. Данные БД выводятся в отчет с помощью компонентов, расположенных на странице QReport. Она содержит 23 различных компонента, предназначенных для вывода данных, размещенных в базах данных. В примере приложения формируется простой отчет. Для этого использованы 7 различных типов компонентов:
- TQuickRep - компонент-отчет;
- TQRBand - полоса - основная составная часть отчета, на которой размещаются другие его компоненты;
- TQRLabel - аналог компонента типа TLabel - для вывода заголовков столбцов;
- TQRDBText - для вывода текстовых значений поля записи (аналог DBText и DBEdit);
- TQRExpr - для вывода результатов вычислений, выполненных для отчета;
- TQRSysData - для вывода даты отчета;
- TQRDBImage - для вывода графического компонента записи БД.
Вид фрагмента формы с отчетом представлен на рис. 6.8. Текст модуля формы FormЗ представлен в листинге 6.4.
Рис.
6.8. Фрагмент
формы с проектом отчета на этапе
разработки приложения
QuickRep1 типа TQuickRep - компонент-отчет. Это основа, на которой размещаются другие компоненты. Он имеет вид страницы формата А4. С помощью свойства DataSet = Form1.Table1 этот компонент связывается с набором данных, которые надо отобразить в отчете.
После размещения компонента отчета можно изменить его параметры с помощью редактора страницы отчета (ReportSettings). Вызвать редактор можно двойным щелчком на компоненте или с помощью меню, вызванного щелчком правой кнопки мыши.
Отчет состоит из отдельных полос (компонентов типа TQRBand), на которых размещаются другие компоненты отчета. Каждый компонент размещается на том месте, где должны отображаться соответствующие компоненты (например, метки с заголовками) отчета или данные из БД. После размещения полосы на форме можно изменять ее размеры перетаскиванием ее горизонтальных границ. Полоса отчета имеет рамку и тип полосы, установленный в свойстве BandType. Тип полосы может иметь одно из 11 допустимых значений, например:
- RbTitle - для вывода заголовка таблицы; выводится в начале отчета;
- RbColumnHeader - для вывода заголовков столбцов;
- RbDetail - для вывода значений элементов записей таблицы;
- RbSummary - для вывода итоговых значений; выводится под всеми сведениями БД отчета; может содержать подписи под отчетом.
Отчет можно просматривать перед печатью.
В компоненте QRExpr размещается значение, формируемое выражением, в котором могут использоваться значения результатов обработки полей записи. Выражения можно формировать в методах для их вычисления. Заготовка метода вызывается двойным щелчком на компоненте. Для вычисления значений можно использовать встроенные функции. Вызов списка функций производится из свойства Expression компонента QRExpr. Вид редактора выражений для компонента QRExpr дан на рис. 6.9.
Рис. 6.9. Вид редактора выражений для компонента QRExpr
В приведенном примере проекта в компонентах QRExpr используются функции (рис. 6.8):
- SUM - для вычисления суммарной новой стипендии;
- МАХ - для определения максимального значения новой стипендии.
Компонент QRSysData содержит системную информацию. Ее тип определяется свойством TQRSysDataType. Оно может принимать одно из 10 допустимых значений. Например: qrsDate - вывод текущей даты, qrsDateTime - вывод текущей даты и времени; qrsTime - текущего времени; qrsDetailCount - количества записей в наборе данных; qrsImage - графического образа.
Вприведенном примере проекта используется компонент QRSysData со значением свойства TQRSysDataType = qrsDate для вывода текущей даты (рис. 6.8).
