В отчёте формируются две TfrxReportPage. На первой странице выводятся данные для лицевой стороны листа, на второй - для обратной. Для печати в дуплексе необходимо выводить поочерёдно лицевую и обратную сторону. Как это можно реализовать?

Question: В отчёте формируются две TfrxReportPage. На первой странице выводятся данные для лицевой стороны листа, на второй - для обратной. Для печати в дуплексе необходимо выводить поочерёдно лицевую и обратную сторону. Как это можно реализовать?

Answer:

Вы можете пересортировать страницы превью после формирования отчёта: 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
var i, j: integer; 
page : TfrxReportPage; 
begin 
frxReport1.PrepareReport(); 
j := frxReport1.PreviewPages.Count div 2; 
page := TfrxReportPage.Create(nil); 
for i := 0 to j - 2 do 
begin 
page.AssignAll(frxReport1.PreviewPages.Page[j + i]); 
frxReport1.PreviewPages.AddEmptyPage(i * 2 + 1); 
frxReport1.PreviewPages.ModifyPage(i * 2 + 1, page); 
frxReport1.PreviewPages.DeletePage(j + i + 1); 
end; 
page.Free; 
frxReport1.ShowPreparedReport; 
end;