0
0
mirror of https://github.com/fralx/LimeReport.git synced 2025-01-11 17:18:10 +03:00

Nested groups has been fixed

This commit is contained in:
Arin Alexander 2017-03-06 18:46:16 +03:00
parent cc374c0a38
commit 55364608c3
2 changed files with 15 additions and 3 deletions

View File

@ -699,14 +699,26 @@ void ReportRender::renderGroupHeader(BandDesignIntf *parentBand, IDataSource* da
} }
} }
void ReportRender::renderGroupFooterByHeader(BandDesignIntf* groupHeader){
foreach (BandDesignIntf* header, groupHeader->childrenByType(BandDesignIntf::GroupHeader)){
renderGroupFooterByHeader(header);
}
foreach (BandDesignIntf* footer, groupHeader->childrenByType(BandDesignIntf::GroupFooter)){
renderBand(footer, 0, StartNewPageAsNeeded);
}
}
void ReportRender::renderGroupFooter(BandDesignIntf *parentBand) void ReportRender::renderGroupFooter(BandDesignIntf *parentBand)
{ {
foreach(BandDesignIntf* band,parentBand->childrenByType(BandDesignIntf::GroupHeader)){ foreach(BandDesignIntf* band,parentBand->childrenByType(BandDesignIntf::GroupHeader)){
IGroupBand* gb = dynamic_cast<IGroupBand*>(band); IGroupBand* gb = dynamic_cast<IGroupBand*>(band);
if (gb && gb->isStarted()){ if (gb && gb->isStarted()){
if (band->reprintOnEachPage()) m_reprintableBands.removeOne(band); if (band->reprintOnEachPage()) m_reprintableBands.removeOne(band);
if (band->childBands().count()>0){ foreach(BandDesignIntf* header, band->childrenByType(BandDesignIntf::GroupHeader)){
renderBand(band->childBands().at(0), 0, StartNewPageAsNeeded); renderGroupFooterByHeader(header);
}
foreach(BandDesignIntf* footer, band->childrenByType(BandDesignIntf::GroupFooter)){
renderBand(footer, 0, StartNewPageAsNeeded);
} }
closeDataGroup(band); closeDataGroup(band);
} }

View File

@ -151,6 +151,7 @@ private:
qreal columnHeigth(int columnIndex); qreal columnHeigth(int columnIndex);
qreal maxColumnHeight(); qreal maxColumnHeight();
void renameChildItems(BaseDesignIntf *item); void renameChildItems(BaseDesignIntf *item);
void renderGroupFooterByHeader(BandDesignIntf *groupHeader);
private: private:
DataSourceManager* m_datasources; DataSourceManager* m_datasources;
ScriptEngineContext* m_scriptEngineContext; ScriptEngineContext* m_scriptEngineContext;
@ -183,7 +184,6 @@ private:
QVector<BandDesignIntf*> m_columnedBandItems; QVector<BandDesignIntf*> m_columnedBandItems;
unsigned long long m_curentNameIndex; unsigned long long m_curentNameIndex;
}; };
} // namespace LimeReport } // namespace LimeReport
#endif // LRREPORTRENDER_H #endif // LRREPORTRENDER_H