КАТЕГОРИИ:
АстрономияБиологияГеографияДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРиторикаСоциологияСпортСтроительствоТехнологияФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника
|
Печать данных ⇐ ПредыдущаяСтр 3 из 3 Для осуществления печати результатов, представления данных в удобной для просмотра форме удобно использовать так называемые отчёты. В Borland C++ Builder имеется набор компонент для быстрой визуальной разработки отчётов. За автоматическую генерацию отчёта отвечает компонента QuickReport. Для создания отчёта необходимо выполнить последовательность действий: 1. Создать дополнительную форму для отчёта,выбрав опции меню File->New Form. При созданииновой формы автоматически будет сгенерировано три новых файла с расширениями *.dfm, *.h,*.cpp. 2. В программные модули основной формы и формыотчётавключить директивой #include заголовочные файлы формы отчёта и основной формы соответственно (в модуле основной формы с именем Unitl.h необходимо вставить директиву #include "Unit2.h", где Unit2.h заголовочный файл формы отчёта). 3. Вынести на форму отчёта компоненту QuickReport из вкладки QReport. 4. Установить значение свойства DataSource компоненты QuickReport, указав имя соответствующей компоненты Data-Source. 5. Вынести на форму отчёта компоненты QRBand (полосы отчёта). Эта компонента является частью печатной страницы, т.е. основанием для ввода данных. В зависимости от свойств BandType различают несколько типов компонентыQRBand: заголовочная полоса (rbTitle) выводится только один раз в начале страницы (может содержать заголовок и наименования столбцов таблицы); полоса данных (rbDetail) содержит значения полей текущей записи и выводится столько раз, сколько записей в таблице; rbSummary выводится один раз в конце отчёта. 6. Установить значение свойства BandType компоненты QRBand. Рекомендуется выносить как минимум две полосы: заголовочную и данных. 7. На заголовочную полосу вынести компоненты QRLabel (аналогичны компонентам Label). Свойство Caption содержит выводимую на печать информацию (например, наименования столбцов, поясняющие надписи, расчётные значения и т.д.). 8. На полосу данных вынести компоненты QRDBText, отображающие значения определённых полей таблицы. Свойство DataSource устанавливает имя источника данных, а свойства DataField — имя выводимого поля. 9. Скорректировать размеры полос и взаимное расположение на них компонент. Предварительный просмотр на стадии проектирования приложения осуществляется двойным щелчком мыши на объекте QuickReport. Макет формы печати данных таблицы stud.dbf и рассчитанной средней оценкипредставлен на рис. 3.
Рис. 3. Внешний вид формы печати
Вывод данных на печать из программы выполняется встроенным в компоненту QuickReport методом Print(). Например, если имя компоненты QuickReport - QuickReport1, то оператор Form2->QuickReport1->Print(); выведет данные на печать, а Form2->QuickReport1->Preview(); осуществит предварительный просмотр на экране. Необходимо предусмотреть в программе вывод в отчёт расчётных значений с использованием компоненты QRLabel. При предварительном просмотре или выводе на печать данные будут отображены в следующем виде (рис. 4).
Рис. 4. Данные таблицы stud.dbf при предварительном просмотре 4. Пример реализации программы расчёта средней оценки Постановка задачи: необходимо организовать хранение информации о студентах: № зачётной книжки, шифр группы, ФИО, год рождения, пол, предмет, среднюю оценку по предмету. Обеспечить расчёт средней оценки для любого студента. А. Создадим таблицу соответствующей структуры и Windows-приложение для работы с БД (см. методические указания “Создание однотабличной БД в среде Borland C++ Builder”). B. Вынесем на макет формы приложения компоненту Edit с именем Edit1, компоненту Label с именем Label1 и компоненту Button с именем Button1 (см. рис. 1). Настроим свойства этих компонент в соответствии с табл. 1. Создадим обработчик события OnClick для компоненты Button1 и напишем в обработчике следующий код:
float soz = 0; int n=0; Table1->First(); while(Table1->Eof!=true) { if(Table1FAM->Value == Editl->Text) { soz=soz+Table1OZ->Value; n++; } Table1->Next() ; } if(n!=0) soz=soz/n; char buf[50]; sprintf(buf, "Средняя оценка: %.2f", soz) ; Label1->Caption = buf; QRLabel10->Caption = buf;
C. Создадим вторую форму выбором меню File->New. В программные модули основной формы и формыотчётавключим директивой #include заголовочные файлы формы отчёта и основной формы соответственно. Вынесем на форму компоненту QuickReport из вкладки QReport. Установим значение свойства DataSource компоненты QuickReport, указав имя соответствующей компоненты DataSource1. Вынесем на форму отчёта три компоненты QRBand (со свойствами BandType rbTitle, rbDetail и rbSummary). На заголовочную полосу вынесем компоненты QRLabel и настроим свойство Caption для отображения названия отчёта и столбцов. На полосу данных вынесем компоненты QRDBText и настроим их на связь с соответствующими полями. На последнюю полосу вынесем компоненту QRLabel c именем QRLabel10. Внешний вид и расположение компонент соответствует рис. 3. Просмотр отчёта организуем добавлением компоненты Button2 и обработчиком события OnClick следующего содержания: QuickReport1->Preview(); После компиляции проекта необходимо проверить правильность работы программы.
Контрольные вопросы 1. Программная навигация по записям таблицы. 2. Методы для работы с записями таблицы (пример использования). 3. Доступ к значениям полей данных в программе (пример). 4. Осуществление ввода данных пользователем с помощью компоненты Edit (пример). 5. Функции преобразования типов данных. 6. Вывод рассчитанных значений на форму приложения. 7. Создание обработчика события для компоненты Borland C++ Builder. 8. Создание отчёта c помощью компоненты QuickReport. 9. Компоненты, обеспечивающие вывод данных в отчёт. 5. Требования к отчёту Отчёт оформляется на листах формата А4, на титульном листе указывается название работы, дисциплина, студент, выполнивший работу и преподаватель, принявший отчет. Отчёт должен включать в себя следующие пункты: 1. Постановка задачи (формулировка задания). 2. Условные обозначения. 3. Расчётные зависимости. 4. Выбор метода решения (пояснить, почему для решения поставленной задачи необходимо применять базы данных). 5. Структура базы данных.
6. Программирование (пояснить выбор программного пакета для реализации поставленной задачи). 7. Результаты. Привести листинги всех программных модулей, заголовочных файлов и файлов форм в текстовом виде (осуществляется выбором опции view as text из контекстного меню формы), печать отчёта до внесения каких-либо изменений в БД и после этих изменений. 8. Анализ результатов. Проверить вручную правильность осуществления произведённых СУБД расчётов, показав правильность реализации расчётных процедур.
|