Конференция "Основная" » динамическое создание отчётов в FastReport [D6, Win2k]
 
  • lead-in (15.05.08 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 © (15.05.08 14:15) [1]
    а че нет у FastReporta примеров?

    может нужно просто parent задать
    frMemoView.Parent := Page;
  • lead-in (15.05.08 14:30) [2]
    frMemoView.Parent имеет тип TfrBand, то есть это я так понимаю для случая с "компонентом" который входит в к.-л. Band, у меня же он лежит именно на "листе"
    примеры есть - статические, так что толку от них ноль...
  • Style © (15.05.08 14:43) [3]
    а посмотри чему равен Parent у других компонентов, которые в дизайнере создал.
  • lead-in (15.05.08 15:38) [4]
    у них nil))), пробовал тоже самое при создании, всё равно нет, я ещё думал может свойства отображения неправильные (в смысле они создаются но их не видно на отчёте), так вроде нет, у страницы (TfrPage) есть свойство Object: TList, там как раз указатели на все объекты на форме, как я не создаю компоненты кол-во объектов не меняется, может сначала нужно именно в этот Object добавить?.. хз
    Вот ещё что интересно у созданного статически элемента отчёта родитель - nil, а в свойстве Object родителя этот элемент есть...
  • Style © (15.05.08 15:40) [5]
    Может у tfrPage есть для этого какие-нить методы.. AddControl или еще что-то вроде того.
  • lead-in (15.05.08 16:19) [6]
    хз... по мне так упоустил что-то просто, косячок где-то, вот думал мож пользовался кто этим делом - сталкивался, компонент-то классный в опщем)))
  • Style © (16.05.08 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 (16.05.08 13:21) [8]
    Попрбовал... работает)))
    Ключевой момент - это именно добавление в Object, видать fastreport "прорисовывает" элементы ссылаясь по указателям в Object, хотя хз конечно...
    Огромное спасибо, Style!!!
 
Конференция "Основная" » динамическое создание отчётов в FastReport [D6, Win2k]
Есть новые Нет новых   [134491   +8][b:0][p:0]