Доброго времени суток опять!
при попытке отследить процесс рендеринга, обнаружил проблему в сигнале renderPageFinished(int):
кол-во завершенных страниц всегда на 1 больше реального. Ну, как уже принято, покопался.
файл lrrenderengine.cpp, строки 546-547
connect(m_reportRender.data(),SIGNAL(pageRendered(int)),
this, SIGNAL(renderPageFinished(int)));
далее:
файл lrreportrender.cpp, строки 966-978:
if (m_ranges.last().lastPage==0 && m_ranges.count()>1) {
m_datasources->setReportVariable("#PAGE",1);
} else {
m_datasources->setReportVariable("#PAGE",m_datasources->variable("#PAGE").toInt()+1);
}
m_ranges.last().lastPage = m_pageCount;
m_pageCount++;
BandDesignIntf* pageFooter = m_renderPageItem->bandByType(BandDesignIntf::PageFooter);
if (pageFooter) pageFooter->setBandIndex(++m_currentIndex);
m_renderedPages.append(PageItemDesignIntf::Ptr(m_renderPageItem));
emit pageRendered(m_pageCount)
мне все же видится, что увеличить m_pageCount надо после emit pageRendered(m_pageCount)
P.S. вносить изменения и пересобирать еще не пробовал,