0
0
mirror of https://github.com/fralx/LimeReport.git synced 2025-11-07 00:21:24 +03:00

Tear-off band relocation has been fixed

This commit is contained in:
Arin Alexander
2019-04-16 00:23:12 +03:00
parent c2ac8bfec9
commit 80e3a4dd64
4 changed files with 80 additions and 52 deletions

View File

@@ -630,13 +630,14 @@ void ReportRender::renderPageFooter(PageItemDesignIntf *patternPage)
{
BandDesignIntf* band = patternPage->bandByType(BandDesignIntf::PageFooter);
if (band){
BandDesignIntf* bandClone = dynamic_cast<BandDesignIntf*>(band->cloneItem(PreviewMode, m_renderPageItem,m_renderPageItem));
BandDesignIntf* bandClone = dynamic_cast<BandDesignIntf*>(band->cloneItem(PreviewMode, m_renderPageItem, m_renderPageItem));
replaceGroupsFunction(bandClone);
bandClone->updateItemSize(m_datasources);
bandClone->setItemPos(m_patternPageItem->pageRect().x(),m_patternPageItem->pageRect().bottom()-bandClone->height());
bandClone->setHeight(m_pageFooterHeight);
for(int i=0;i<m_maxHeightByColumn.size();++i)
m_maxHeightByColumn[i]+=m_pageFooterHeight;
m_renderPageItem->setPageFooter(bandClone);
registerBand(bandClone);
datasources()->clearGroupFunctionValues(band->objectName());
}
@@ -981,7 +982,7 @@ bool ReportRender::registerBand(BandDesignIntf *band, bool registerInChildren)
}
foreach(QList<BandDesignIntf*>* list,m_childBands.values()){
foreach(QList<BandDesignIntf*>* list, m_childBands.values()){
if (registerInChildren &&
band->bandType()!=BandDesignIntf::PageHeader &&
band->bandType()!=BandDesignIntf::PageFooter &&
@@ -1268,19 +1269,6 @@ BandDesignIntf* ReportRender::findEnclosingGroup()
return result;
}
void ReportRender::moveTearOffBand(){
BandDesignIntf* tearOffBand = m_renderPageItem->bandByType(BandDesignIntf::TearOffBand);
if (tearOffBand){
BandDesignIntf* pageFooter = m_renderPageItem->bandByType(BandDesignIntf::PageFooter);
if (pageFooter){
tearOffBand->setItemPos(m_patternPageItem->pageRect().x(),
m_patternPageItem->pageRect().bottom()-(tearOffBand->height()+pageFooter->height()));
} else {
tearOffBand->setItemPos(m_patternPageItem->pageRect().x(),m_patternPageItem->pageRect().bottom()-tearOffBand->height());
}
}
}
void ReportRender::savePage(bool isLast)
{
@@ -1325,7 +1313,7 @@ void ReportRender::savePage(bool isLast)
}
}
moveTearOffBand();
m_renderPageItem->placeTearOffBand();
emit m_patternPageItem->afterRender();
}