-
Добрый день. Необходимо создать отчёт по заранее неизвестному набору параметров (известно становится уже в ходе выполнения программы). На форму кидаю компонент 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.
-
а че нет у FastReporta примеров?
может нужно просто parent задать frMemoView.Parent := Page;
-
frMemoView.Parent имеет тип TfrBand, то есть это я так понимаю для случая с "компонентом" который входит в к.-л. Band, у меня же он лежит именно на "листе" примеры есть - статические, так что толку от них ноль...
-
а посмотри чему равен Parent у других компонентов, которые в дизайнере создал.
-
у них nil))), пробовал тоже самое при создании, всё равно нет, я ещё думал может свойства отображения неправильные (в смысле они создаются но их не видно на отчёте), так вроде нет, у страницы (TfrPage) есть свойство Object: TList, там как раз указатели на все объекты на форме, как я не создаю компоненты кол-во объектов не меняется, может сначала нужно именно в этот Object добавить?.. хз Вот ещё что интересно у созданного статически элемента отчёта родитель - nil, а в свойстве Object родителя этот элемент есть...
-
Может у tfrPage есть для этого какие-нить методы.. AddControl или еще что-то вроде того.
-
хз... по мне так упоустил что-то просто, косячок где-то, вот думал мож пользовался кто этим делом - сталкивался, компонент-то классный в опщем)))
-
Вот нашел кусок код динамического создания.
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;
-
Попрбовал... работает))) Ключевой момент - это именно добавление в Object, видать fastreport "прорисовывает" элементы ссылаясь по указателям в Object, хотя хз конечно... Огромное спасибо, Style!!!
|