Студопедия

КАТЕГОРИИ:

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


Печать данных




Для осуществления печати результатов, представления данных в удобной для просмотра форме удобно использовать так называемые отчёты. В 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 - QuickRe­port1, то оператор

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. Структура базы данных.

№ п/п Наименование по­ля Тип Размер Пример
Фамилия FAM Символь­ный 20 симво­лов Иванов
... …   …   …  

 

6. Программирование (пояснить выбор программного пакета для реализации поставленной задачи).

7. Результаты. Привести листинги всех программных модулей, заголовочных файлов и файлов форм в текстовом виде (осу­ществляется выбором опции view as text из контекстного ме­ню формы), печать отчёта до внесения каких-либо изменений в БД и после этих изменений.

8. Анализ результатов. Проверить вручную правильность осуществления произведённых СУБД расчётов, показав правильность реализации расчётных процедур.


Поделиться:

Дата добавления: 2015-04-04; просмотров: 87; Мы поможем в написании вашей работы!; Нарушение авторских прав





lektsii.com - Лекции.Ком - 2014-2024 год. (0.006 сек.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав
Главная страница Случайная страница Контакты