воскресенье, 25 сентября 2016 г.

Работа с Fast Repot в Delphi (часть 2)

    И так в предыдущей части мы создали и настроили свое приложение, выполнили всю необходимую для подготовку включая и настройку компонентов  и сегодня можем уже приступить к самому интересному, начнем конструировать свой отчет.
1) Кликаем на компоненте  frxReport1, в инспекторе объектов находим его свойство DataSet, разворачиваем его и вводим следующие настройки:

RangeBegin устанавливаем в rbFirst;
RangeEnd устанавливаем в reCount
RangeEndCount устанавливаем в 1;

2) Дважды кликаем на компоненте  frxReport1, и перед нами откроется конструктор отчетов. С интерфейсом думаю разберетесь, работа на нем чем то похожа на работу в Rad Studio. Присутствует своя рабочая область, панель инструментов, диспетчер объектов. Компоненты (левая част окна) на рабочий лист помещаются так-же как и в Rad Studio - кликом. А переменные (правая часть окна) из окна DataTree -> Variables - перетаскиванием непосредственно на рабочее пространство).


 Настроим немного наш лист отчета. Для этого щелкаем дважды на белом (рабочем) листе, появится окно настройки страницы,


где в пункте Paper, разделе Size выберем привычный для большинства людей формат А-4, на котором продолжим конструировать наш отчет. Здесь можно внести и другие настройки, поля, ориентацию листа и пр. Но в данном примере трогать их не будем, чтобы не раздувать объем статьи.

3) Для вывода данных в отчет из нашего приложения, нам понадобятся соответствующие переменные, я назову их:

а) numb - сюда будет загружаться информация из Edit1 нашей формы (номер отчета);
б) fam - сюда будет загружаться информация из Edit2 нашей формы (Фамилия);
в) im - сюда будет загружаться информация из Edit3 нашей формы (Имя);
г) ot - сюда будет загружаться информация из Edit4 нашей формы (Отчество);
д) gr - сюда будет загружаться информация из DateTimePicker1 нашей формы (год рождения);

    Сохраняем наш отчет в папке с проектом, называем его как нибудь и продолжаем работу.
Заходим в пункт меню Report отчета (левая верхняя часть окна), далее выбираем Variables. Перед нами всплывает окно создания и настройки переменных. Создаем в нем новую категорию называем её MyVariables, для этого заходим на вкладку Variables, выделяем пиктограмму папки с одноименным названием, после чего создаем новую папку, называем ее MyVariables и создаем в ней все необходимые переменные. Сложного ничего нет, проблем возникнуть не должно, вот как это получилось например у меня:


кликаем на зелененькую галочку и переходим к правой части экрана дизайнера отчетов, разделу Data Tree, там на вкладочке Variables, помимо системных, должна отобразиться созданная нами только что директория MyVariables с нашими переменными, откуда теперь их нужно перетащить на наш рабочий лист. На рабочем листе выставляем их по порядку в столбик и с помощью инструмента - Text object (панель инструментов - левая часть конструктора) cоздаем текстовые объекты Мемо c 1 по 5, называем их Отчет№, Фамилия, Имя и т.д. и размещаем их напротив соответствующих переменных. У меня получилось примерно так:

    Да чуть-было не забыл, для вывода фотки из Image1 нашей формы нужно с той же панели установить и разместить на рабочем пространстве нашего отчета компонент Picture1 (инструмент Picture Object) и его свойства: HightQuality, Stretched и Center в диспетчере объектов установить в true
Еще важно, клацните дважды по каждой переменной, зайдите на вкладочку - Format и убедитесь, что все переменные относятся к категории Text (no formatting).
    Вроде все, сохраняем наш отчет еще раз закрываем и переходим к нашей форме. Будем привязывать её к отчету.

4) Создаем обработчик событий OnClick на Button3 где записываем следующий код:

procedure TForm1.Button3Click(Sender: TObject);
var
frPicture: TfrxPictureView; //Графическая переменная FastReport;

begin

frxReport1.Variables.Variables['numb']:=#39+edit1.Text+#39; //Загружаем №;
frxReport1.Variables.Variables['fam']:=#39+edit2.Text+#39//Загружаем фамилию;
frxReport1.Variables.Variables['im']:=#39+edit3.Text+#39//Загружаем имя;
frxReport1.Variables.Variables['ot']:=#39+edit4.Text+#39; //Загружаем отчество;
frxReport1.Variables.Variables['gr']:=#39+DateToStr(DateTimePicker1.Date)+#39; { год   рождения;}
frPicture:=frxReport1.FindObject('Picture1') as TfrxPictureView;
frPicture.Picture:=Form1.image1.Picture; //Выводим картинку в отчет;

frxreport1.showreport; //Показываем отчет;

end;

    Ну вот собственно и все, пробуйте запускать. Если все выполняли внимательно, то после ввода данных, программа сгенерирует вам отчет, который можно как распечатать, так и сохранить в файлы форматов: .jpg; .bmp; .tif; .rtf; .pdf; и разумеется .fb3;). 


    До новых встреч). Если кому нужен исходник, отпишитесь в комментариях...














2 комментария:

  1. Класс!!! Суперская статья все пашет четко, давно искал. Везде примеры заполнения из баз данных, а из файлов и компонентов толком мало где есть. Спасибо!

    ОтветитьУдалить

Примечание. Отправлять комментарии могут только участники этого блога.