Добавление страниц в Previewpages
Использую frxPreview (FR 4.9.21) для отображения "отчётов-результатов" как сформированных вручную или PrepareReport, так и загружаемых через LoadFromStream.
PrepareReport и LoadFromStream работают на ура, а вот при создании и добавлении новой страницы (созданной вручную или из другого отчёта) вылетает с ошибкой "индекс -1". В "свежесозданном" frxReport1 ошибка не возникает, а только если когда-то выполняли PrepareReport.
1) как правильно добавить страницы (по странично, а не все сразу) в TfrxReport.PreviewPages
2) а вообще где-то задокументирована методика добавления и редактирования страниц TfrxReport.PreviewPages ?
PrepareReport и LoadFromStream работают на ура, а вот при создании и добавлении новой страницы (созданной вручную или из другого отчёта) вылетает с ошибкой "индекс -1". В "свежесозданном" frxReport1 ошибка не возникает, а только если когда-то выполняли PrepareReport.
frxReport1.Clear;
frxReport1.PreviewPages.Clear;
frxReport1.PreviewPages.Initialize;
frxReport1.PreviewPages.AddPage(nil);
frxReport1.PreviewPages.ModifyPage(
frxReport1.PreviewPages.Count-1,
TfrxReportPage(nPage));
frxReport1.ShowPreparedReport;
frxReport1.PreviewPages.Finish;
Вопрос:1) как правильно добавить страницы (по странично, а не все сразу) в TfrxReport.PreviewPages
2) а вообще где-то задокументирована методика добавления и редактирования страниц TfrxReport.PreviewPages ?
Комментарии
1) PreviewPages.AddEmptyPage
...
- не добавляет страницы если отчёт пуст (Count = 0)
2) PreviewPages.AddPage(nil)
PreviewPages.ModifyPage()
- создаёт пустую страницу в конце отчёта и даже её можно изменить, но:
- страница имеет название "page-1" (в FPagesItem) и соответственно при первом же внутреннем вызове GetPageSize вылетаем с ошибкой "индекс -1";
- если вызвать PrepareReport, то ещё один вызов AddPage(nil) сразу велетает с ошибкой "индекс -1";
3) wPage := TfrxReportPage.Create(frxReport1);
PreviewPages.AddPage(wPage);
- то же, что и в 2)
4) PreviewPages.LoadFromStream(rStream) - работает только, если мы загрузили страницы из другого PreviewPages, а вот загрузить отдельную страницу не получится;
5) AssingAll - практически заменяет LoadFromStream.