Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Создание динамических объектов в FastReport 
V
    Опции темы
Evgesha
Дата 20.6.2006, 23:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 181
Регистрация: 2.7.2005
Где: Германия

Репутация: нет
Всего: нет



Как создать диномические объекты в FastReport
Например линии, прямоугольники, круги 
--------------------
Все это хорошо, а как дальше жить!!!
PM MAIL   Вверх
bas
Дата 21.6.2006, 10:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 446
Регистрация: 14.8.2002
Где: Молдова, Кишинев

Репутация: нет
Всего: 2



Цитата

Построение отчета при помощи кода
Иногда возникает необходимость печати отчета, структура которого неизвестна на стадии проектирования приложения или может меняться в процессе работы программы. В этом случае встает необходимость динамического формирования шаблона отчета. При этом в отличие от ситуации, скажем, с добавленем нового бланка для бухгалтерской программы, где можно использовать принцип т.н. end-user-отчетов, форма отчета не является фиксированной и, соответственно, не может быть определена программистом в виде отдельного файла.
FastReport предоставляет возможность динамического создания форм отчетов с помощью программного кода, как это можно делать, например, с объектами VCL. Пример программного построения формы отчета находится в подкаталоге RUNTIME каталога примеров FastReport.
В этом примере по нажатию кнопки строится отчет, позволяющий получить список компаний из таблицы CUSTOMER.DB. Текст обработчика события OnClick этой кнопки приведен ниже:
    
    procedure TForm1.Button1Click(Sender: TObject);
    var
   v: TfrView;
   b: TfrBandView;
   Page: TfrPage;
    begin
   frReport1.Pages.Clear;
   frReport1.Pages.Add;              // create page
   Page := frReport1.Pages[0];
    
   b := TfrBandView(frCreateObject(gtBand, ''));  // create MasterData band
   b.SetBounds(0, 20, 0, 20);
   b.BandType := btMasterData;
   b.Dataset := 'frDBDataSet1';
   Page.Objects.Add(b);
    
   v := frCreateObject(gtMemo, '');  // create data field
   v.SetBounds(20, 20, 200, 16);
   v.Memo.Add('[Table1."Company"]');
   Page.Objects.Add(v);
    
   frReport1.ShowReport;
    end;
    
Этот код сначала удаляет все имеющиеся в форме отчета страницы, а потом создает одну чистую:
    
    frReport1.Pages.Clear;
    frReport1.Pages.Add;              // create page
    
Далее на этой странице создается одна секция типа «Master data» и привязывается к источнику данных.
    
    Page := frReport1.Pages[0];
    
    b := TfrBandView(frCreateObject(gtBand, ''));  // create MasterData band
    b.SetBounds(0, 20, 0, 20);
    b.BandType := btMasterData;
    b.Dataset := 'frDBDataSet1';
    Page.Objects.Add(b);
    
Следующим шагом создается один объект «Текст» с привязкой его к полю COMPANY таблицы CUSTOMER.DB:
    
    v := frCreateObject(gtMemo, '');  // create data field
    v.SetBounds(20, 20, 200, 16);
    v.Memo.Add('[Table1."Company"]');
    Page.Objects.Add(v);
    
Последнее, что делает указанный обработчик события – это выводит подготовленный отчет на предварительный просмотр.

 
PM MAIL   Вверх
Evgesha
Дата 24.6.2006, 12:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 181
Регистрация: 2.7.2005
Где: Германия

Репутация: нет
Всего: нет



Блин забыл написать я на билдере пишу 
--------------------
Все это хорошо, а как дальше жить!!!
PM MAIL   Вверх
sexton
Дата 26.6.2006, 15:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


sexton=Пономарь (eng)
**


Профиль
Группа: Участник
Сообщений: 503
Регистрация: 5.5.2004
Где: Ульяновск

Репутация: 5
Всего: 9



Ну и что? Из Delphi в билдер все прекрасно переводится. 
PM MAIL WWW ICQ   Вверх
Evgesha
Дата 26.6.2006, 20:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 181
Регистрация: 2.7.2005
Где: Германия

Репутация: нет
Всего: нет



Да спасибо я уже все зделал
И тему я уже закрыл  smile  
--------------------
Все это хорошо, а как дальше жить!!!
PM MAIL   Вверх
SAndrus
Дата 26.7.2010, 12:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 51
Регистрация: 25.8.2005

Репутация: нет
Всего: нет



А может кто знает, как динамически скопировать объект???
Т.е. у меня есть Memo мне бы такуюже в том же месте, а потом отодвинуть и пр.
Тоже в FastReporte.
Спасибо.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++ Builder"
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по С++ Builder обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Настоятельно рекомендуем заглянуть в DRKB (Delphi Russian Knowledge Base) - крупнейший в рунете сборник материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C++ Builder | Следующая тема »


 




[ Время генерации скрипта: 0.0412 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.