Будь умным!


У вас вопросы?
У нас ответы:) SamZan.net

Тема 42 Создание отчетов в среде FstReport 4

Работа добавлена на сайт samzan.net:


PAGE  8

Раздел 4. Проектирование процессов вывода информации

Тема 4.2. Создание отчетов в среде FastReport 4.0

Практические занятия 7, 8

Содержание

  1.  Создание отчета «один-ко-многим»
  2.  Создание отчета при помощи SQL запроса

1. Создание отчета "один-ко-многим" 

При помощи средств FastReport 4.0 можно также создавать сложные отчеты. Такой отчет должен быть связан как минимум с двумя просмотрами, которые находятся в отношении "один-ко-многим".

Постановка задачи

Создать отчет, выводящий список поставщиков с соответствующими поставками для базы данных fabrika (Кондитерская фабрика).

Технология выполнения

1. Рассмотрим схему базы данных fabrika и определим, сколько пар компонентов необходимо предусмотреть для формирования отчета (до родительских форм, даже если они не используются в отчете, рис.1). В нашем случае их будет 3.

Рис.1. Таблицы, необходимые для формирования сложного отчета.

2. Создать пары элементов TFrxDBdataSet  и Tfrxreport (вкладка Fast Report 4), расположить их на поверхности той формы, которая вызывает создаваемый отчет, и установить соответствующие свойства.

таблица

Свойства

TFrxDBdataSet

TFrxreport

Postavshiki

DataSet

Name

dataBD.ADOPostavshik

frxPostavshik

frxreportPostavshik

Postavka

DataSet

Name

dataBD.ADOPostavka

frxPostavka

frxreportPostavka

Surie

DataSet

Name

dataBD.ADOSurie

frxSurie

frxreportSurie

Рис.2. Главная форма, вызывающая отчет о поставщиках.

3. Правой кнопкой мыши выделить элемент frxreportPostavka + Edit report – при вызове отчета будем ссылаться на этот элемент.

4. Подключить набор данных: report + data + необходимые флажки + ОК.

Рис.3. Подключение набора данных.

5. Подключить дерево объектов: View + Toolbars + data Tree (рис.4).

Рис.4. Дерево объектов.

6. Слева на панели инструментов выделить объект Insert Band  + report Title. Расположить в нем объект Picture Object и выбрать рисунок, сохраненный предварительно в папке с приложением, созданном в Turbo Delphi. Также расположить элемент Text Object и прописать «Список постоянных поставщиков фабрики».

7. Расположить в отчете полосу Master data (Insert  Band + master data), подключить ее к соответствующему элементу frxPostavshik (рис.5).

Рис.5. Подключение к набору данных.

С помощью мыши перетащить с набора данных необходимые поля и сверху в полосе report Title оформить соответствующие надписи (для того чтобы эти надписи появились один раз в отчете).

9. Расположить полосу Detail data (Insert  Band + detail data), подключить ее к соответствующему элементу frxSurie(рис.5).

В полосе Detail data расположить: name, ed_izm, price с объекта frxSurie.  

10. Правой кнопкой мыши щелкнуть по полосе Detail data и выбрать команду Add Child band и присоединить ее к frxPostavka.

Рис.6. Добавление подчиненной полосы.

11. На созданных полосах расположить следующие поля (методом перетаскивания с data Tree).

Child Band: data_post, kolvo, summa_post. Объясняющие надписи расположить объясняющие надписи в  предыдущей полосе (рис.7).

Рис.7. Отчет в конструкторе.

12. Запустить на предварительный просмотр кнопкой предварительного просмотра или клавишей F9 (рис.8).

Рис.8.Отчет в режиме просмотра.

13. В главном меню приложения предусмотреть пункт Поставки поставщиков в разделе Отчеты из которого вызвать созданный отчет, прописав строку:

frxreportpostavka.ShowReport;

2. Создание отчетов при помощи SQL запроса

Постановка задачи

Для базы данных fabrika (Кондитерская фабрика) создать форму, содержащую кнопки вывода формируемых отчетов.  Выбор фамилий клиентов или  выбор товара, с указанием всех клиентов, купивших данный товар, происходит при помощи раскрывающихся списков, расположенных на форме (рис.9).

Рис.10. Таблицы базы, необходимые для формирования отчетов.

Технология выполнения

Для создания новой формы, содержащей требуемые списки вывода формируемых отчетов, необходимо в модуле UnitBD создать элементы связи с наборами данных базы данных. Таких компонентов – 4 пары (по числу таблиц).

1. В модуле UnitBd  расположим элементы связи с наборами данных, необходимых для создания формы (рис.10, 11). Для отчета необходимо создать следующие элементы.

Таблицы базы

Tovar

Klient

Prodaga

Sort

ADOTable

Name

ADOOtchetTovar

ADOOtchetKlient

ADOOtchetProdaga

ADOOtchetSort

Connection

ADOfabrika

ADOfabrika

ADOfabrika

ADOFabrika

TableName

Tovar

Klient

Prodaga

Sort

Active

True

True

True

True

DataSourse

dataSet

ADOOtchetTovar

ADOOtchetKlient

ADOOtchetProdaga

ADOOtchetSort

Name

dataOtchetTovar

dataOtchetKlient

DataOtchetProdaga

DataOtchetSort

Рис.11. Компоненты в UnitBd.

2. Создайте форму FormOtchetprodaga (модуль UnitOtchetProdaga), установите свойство FormStyle=fsMDIChild, подключите модуль UnitBd. Выполните стандартные действия с дочерней формой.

3. В главной форме предусмотрите в разделе Отчеты пункт Продажа товара. Данный пункт будет вызывать форму FormOtchetprodaga.

4. Добавьте на общий модуль UnitBD  компонент ADOQuery1(вкладка dbGo) для общей видимости данного запроса.

Для компонента ADOQuery1 необходимо  установить свойства:

Name = QueryOtchetProdaga

Connection = ADOfabrika

dataSource = DataBD.DataOtchetKlient

SQL:

select *

from prodaga, Tovar, klient, surie

Active = true

5. Добавьте в модуль UnitBD компонент DataSource (вкладка Data Access), установите его свойства

DataSet = QueryOtchetProdaga

name=dataQueryotchetProdaga.

6. Расположить на форме, вызывающий отчет, элементы, связанные с формированием отчета.

таблица

Свойства

TFrxDBdataSet

TFrxreport

Klient

DataSet

Name

dataBD.ADOOtchetKlient

frxKlient

reportKlient

Prodaga

DataSet

Name

dataBD.ADOOtchetProdaga

frxProdaga

reportProdaga

Tovar

DataSet

Name

dataBD.ADOOtchetTovar

frxTovar

reportTovar

Surie

DataSet

Name

dataBD.ADOOtchetSurie

frxSurie

reportSurie

7. Расположить на форме элементы DBLookUpComboBox и установить для них соответствующие свойства, выводящие список наименований клиентов или товара.

Рис.12. Форма FormOtchetProdaga в конструкторе.

7. Правой кнопкой мыши выделить элемент reportProdaga + Edit report – при вызове отчета будем ссылаться на этот элемент.

8. Подключить набор данных: report + data + необходимые флажки + ОК.

Рис.13. Подключение набора данных.

9. Подключить дерево объектов: View + Toolbars + data Tree.

10. Слева на панели инструментов выделить объект Insert Band + report Title. Расположить в нем объект Picture Object и выбрать рисунок, сохраненный предварительно в папке с приложением, созданном в Turbo Delphi. Также расположить элемент Text Object и прописать «Продажа товара клиентам фабрики».

11. Расположить в отчете полосу Master data (Insert  Band + master data), подключить ее к соответствующему элементу frxKlient.

12. Расположить полосу Detail data (Insert  Band + detail data), подключить ее к соответствующему элементу frxProdaga.

13. На созданных полосах расположить следующие поля (методом перетаскивания с Data Tree).

В полосе masterData1: name, fam, otch с объекта frxKlient, а также расположить текстовые названия данных полей.

В полосе DetailData: data_post, kolvo, summa_post. Объясняющие надписи расположить в полосе Masterdata

15. Расположите на форме FormOtborProdaga кнопку Отчет по клиентам и прописать код:

databd.QueryKlient.Active:=false;

dataBD.QueryKlient.SQL.Clear;

dataBD.QueryKlient.SQL.Add('SELECT *');

dataBD.QueryKlient.SQL.Add('from klient, tovar, prodaga');

dataBD.QueryKlient.SQL.Add('where klient.id_klient=prodaga.id_klient and tovar.id_tov=prodaga.id_tov and klient.fam like '''+ edit1.Text+'''');

dataBD.QueryKlient.Active:=true;

reportprodaga.showreport;

16. Предусмотрим создание отчета для вызова из раскрывающегося списка «выберите товар».

Правой кнопкой мыши выделить элемент reportTovar + Edit report – при вызове отчета будем ссылаться на этот элемент.

Повторить все пункты 8 – 15 для создания отчета, подсоединив полосу MasterData к компоненту frxTovar. Остальное самостоятельно.




1. методические материалы к лекционным занятиям раскрывающие основное содержание курса и способствующие боле
2. реальность носит гносеологический оттенок термин материя носит онтологический оттенок
3. техническом сотрудничестве и международной торговле; содействие потребителям в компетентном выборе проду
4.  Государственный долг ~ основные понятия Понятие государственного долга Превышение госуда
5. I Words tkeover merger n cquisition lesing wrrnt option bonds futures tresure swp portfolio quottion mortgge svers outcomes dontion
6. Лекция 211 Зубков А
7.  Будова атмасферы Атмасфера ўяўляе шматслойную сістэму
8. лекция 14 1
9. мальчика для битья.html
10. 17 09 2013 ж Хаттама 1 Билет Саяси ~ылымны~ пайда болуы мен ~алыптасуы
11. Варианты и типы фотоприемников Вариант Тип фотоприемника ФП
12. Соціально-трудові відносини як система
13. ЧС Следствие закончено
14. Иностранные языки Учебнометодическое пособие по немецкому языку для студентов
15. Получить практические навыки в определении передаточных функций одноконтурных и многоконтурных систем упр
16. Общие положения 1.html
17. на тему- Экономический рост
18. техническим снабжением
19. 3 Относительная численность представителей отряда Chiropter
20.  Векторы Действия над векторами