Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2009.04.19;
Скачать: CL | DM;

Вниз

динамическое создание отчётов в FastReport   Найти похожие ветки 

 
lead-in   (2008-05-15 12:56) [0]

Добрый день. Необходимо создать отчёт по заранее неизвестному набору параметров (известно становится уже в ходе выполнения программы). На форму кидаю компонент frReport, отчёт создаю так:

var
 Page: TfrPage;
 frMemoView: TfrMemoView;
begin

 // сначала загружаю шаблон
 frReport.LoadFromFile(ExtractFilePath(Application.ExeName) + "pattern.frf");

 // затем пишу следущее:

 Page := frReport.Pages[0];
 frMemoView := TfrMemoView.Create;
 frMemoView.ParentPage := Page;
 frMemoView.x := 100;
 frMemoView.y := 100;
 frMemoView.Memo.Append("Some header...");
 frMemoView.Visible := True;

 frReport.PrepareReport;
 frReport.ShowReport

end;

но на форме отчёта это никак не отображается, те элементы которые созданы в "дизайнере" видно, а эти нет. Может сталкивался кто-нить с чем-то подобным... need help.


 
Style ©   (2008-05-15 14:15) [1]

а че нет у FastReporta примеров?

может нужно просто parent задать
frMemoView.Parent := Page;


 
lead-in   (2008-05-15 14:30) [2]

frMemoView.Parent имеет тип TfrBand, то есть это я так понимаю для случая с "компонентом" который входит в к.-л. Band, у меня же он лежит именно на "листе"
примеры есть - статические, так что толку от них ноль...


 
Style ©   (2008-05-15 14:43) [3]

а посмотри чему равен Parent у других компонентов, которые в дизайнере создал.


 
lead-in   (2008-05-15 15:38) [4]

у них nil))), пробовал тоже самое при создании, всё равно нет, я ещё думал может свойства отображения неправильные (в смысле они создаются но их не видно на отчёте), так вроде нет, у страницы (TfrPage) есть свойство Object: TList, там как раз указатели на все объекты на форме, как я не создаю компоненты кол-во объектов не меняется, может сначала нужно именно в этот Object добавить?.. хз
Вот ещё что интересно у созданного статически элемента отчёта родитель - nil, а в свойстве Object родителя этот элемент есть...


 
Style ©   (2008-05-15 15:40) [5]

Может у tfrPage есть для этого какие-нить методы.. AddControl или еще что-то вроде того.


 
lead-in   (2008-05-15 16:19) [6]

хз... по мне так упоустил что-то просто, косячок где-то, вот думал мож пользовался кто этим делом - сталкивался, компонент-то классный в опщем)))


 
Style ©   (2008-05-16 12:00) [7]

Вот нашел кусок код динамического создания.

 v := TfrButtonControl.Create;        // create button
 v.SetBounds(60, 100, 75, 25);
 TfrButtonControl(v).Button.Caption := "Test!";
 TfrButtonControl(v).Button.ModalResult := mrOk;

 Page.Objects.Add(v);

 frReport1.ShowReport;


 
lead-in   (2008-05-16 13:21) [8]

Попрбовал... работает)))
Ключевой момент - это именно добавление в Object, видать fastreport "прорисовывает" элементы ссылаясь по указателям в Object, хотя хз конечно...
Огромное спасибо, Style!!!



Страницы: 1 вся ветка

Текущий архив: 2009.04.19;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.016 c
2-1236069135
L-e-v-original
2009-03-03 11:32
2009.04.19
Гиперссылка в Static Text


3-1219219719
Max Zyuzin
2008-08-20 12:08
2009.04.19
ADO. переподключение после обрыва соединения


15-1235057008
@!!ex
2009-02-19 18:23
2009.04.19
Как ограничить скорость доступа к инету?


2-1236162484
пикассо
2009-03-04 13:28
2009.04.19
Ошибка ADO?


15-1224504901
Правильный$Вася
2008-10-20 16:15
2009.04.19
глобальный кризис и программисты