Определить переход но новую страницу в композитном отчете

pskpsk
отредактировано 14:37 Раздел: FastReport 4.0
Всем добрый день.

Несколько маленьких отчетов (примерно на треть/четверть страницы) добавляются в один(PrintOnPreviousPage:=True).
frxReport1.LoadFromFile(f1);
frxReport1.PrepareReport(false);
frxReport1.LoadFromFile(f2);
frxReport1.PrepareReport(false);

И тут добавляем некий N-ый отчет, который переваливает на новую страницу.
Как минимальными средствами можно отследить этот момент и предотвратить его?
Тоесть этот N-ый отчет сюда не добавлять, а рапечатать сформированную страницу и начать новую "пачку" отчетов
(frxReport1.PreviewPages.Clear;
frxReport1.LoadFromFile(fN);
frxReport1.PrepareReport(false);
...............................................)

Комментарии

  • pskpsk
    отредактировано 14:37
    frxReport1.Clear;
    frxReport1.PreviewPages.Clear;
    for datasetkey:=0 to 100 do  // в цикле выбираем нужные нам ID контрагентов для отчета
    begin
    TemplateCnt:=F(datasetkey); TemplateCnt - количество шаблонов для данной записи с datasetkey(может быть разным)
    
    for i:=0 to TemplateCnt-1 do   //  На каждую запись с  datasetkey из базы для разных шаблонов выбираются данные
     begin
     DataSet.Close;
     DataSet.Parameters.ParamByName('datasetkey').Value:=datasetkey;
     DataSet.Parameters.ParamByName('TPLID').Value:=i;   
     DataSet.Open;
     frxReport1.LoadFromFile(  'TEMPLATE_N'+IntToStr(i)+'.fr3'   );
     frxReport1.PrepareReport(false);
     end; // for i
    
    // Для одного контрагента сформировали пачку нужных ему отчетов
    // КАК теперь здесь принудительно вставить переход на следующую страницу?
    // Чтобы следующему контрагенту с новой страницы начать его пачку отчетов.
    // в шаблонах PrintOnPreviousPage:=true
    // И возможно ли уже сформированную пачку отправить на печать и продолжить формирование следующей пачки?
    // И чтобы печать последовательно после формирования каждой пачки добавлялась в одно и тоже задание
    // печати, иначе у ОС будет несварение от количества заданий, т.к. пачек будут десятки тысяч.
    end; //for datasetkey
    
    //frxReport1.ShowPreparedReport;
    frxReport1.Print;
    
  • pskpsk
    отредактировано 14:37
    С переходом нановую страницу разобрался.
    В начале следующей пачки:
    frxReport1.LoadFromFile(s1);
    if i=0 then TfrxReportPage(frxReport1.Pages[1]).PrintOnPreviousPage := false;

    А вот с живой печатью по мере добавления в композит новых отчетов пока вопрос остался...

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

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