Перенос страницы из отчета в отчет

отредактировано November 2012 Раздел: FastReport 4.0
Подскажите как программно перенести Page со всеми элементами на нем из одного отчета в другой. Если просто Parent у страницы меняю и уничтожаю первоначальный отчет владелец, то страница тоже уничтожается.

Комментарии

  • gpigpi
    отредактировано 14:54
    Как-то так:
    unit Unit1;
    
    interface
    
    uses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, frxClass;
    
    type
      TForm1 = class(TForm)
        frxReport1: TfrxReport;
        procedure FormCreate(Sender: TObject);
      private
        { Private declarations }
      public
        { Public declarations }
      end;
    
    var
      Form1: TForm1;
    
    implementation
    
    {$R *.dfm}
    
    procedure TForm1.FormCreate(Sender: TObject);
    var Report: TfrxReport;
        Page: TfrxReportPage;
        Subreport: TfrxSubreport;
        MasterData: TfrxMasterData;
        i: integer;
        c: TfrxComponent;
    begin
        Report:=TfrxReport.Create(Form1);
        Report.LoadFromFile('subreport.fr3');
        Page:=TfrxReportPage.Create(nil);
        Page.AssignAll(Report.Pages[1]);
        Page.Parent:=frxReport1;
        Page.CreateUniqueName;
        for i:=0 to Page.AllObjects.Count-1 do
          begin
            c:=Page.AllObjects.Items[i];
            c.CreateUniqueName;
          end;
        MasterData:=TfrxMasterData(frxReport1.FindObject('MasterData1'));
        Subreport:=TfrxSubreport.Create(MasterData);
        Subreport.CreateUniqueName;
        Subreport.SetBounds(0, 0, 100, MasterData.Height);
        Subreport.Page:=Page;
        Report.Free;
        frxReport1.ShowReport();
    end;
    
    end.
    
    Этот код вставляет отчёт, как вложенный, но в нём Вы найдёте то, что Вам нужно
  • отредактировано 14:54
    gpi написал: »
    Этот код вставляет отчёт, как вложенный, но в нём Вы найдёте то, что Вам нужно
    Спасибо большое, как раз то, что надо было. Как раз и надо было вставить Subreport-ом

Оставить комментарий

Многофункциональный текстовый редактор. Чтобы отредактировать стиль параграфа, нажмите TAB, чтобы перейти к меню абзаца. Там вы можете выбрать стиль. По умолчанию не выбран ни один стиль. Когда вы выберете текст, появится встроенное меню форматирования. Нажмите TAB, чтобы войти в него. Некоторые элементы, такие как многофункциональные вставки ссылок, картинок, индикаторов загрузки и сообщений об ошибок могут быть вставлены в редактор. Вы можете перемещаться по ним, используя стрелки внутри редактора и удалять с помощью клавиш delete или backspace.