diff --git a/common.pri b/common.pri index 14c9a7b..e239ecd 100644 --- a/common.pri +++ b/common.pri @@ -105,7 +105,7 @@ RCC_DIR = $${ARCH_DIR}/$${BUILD_TYPE}/rcc LIMEREPORT_VERSION_MAJOR = 1 LIMEREPORT_VERSION_MINOR = 4 -LIMEREPORT_VERSION_RELEASE = 94 +LIMEREPORT_VERSION_RELEASE = 95 LIMEREPORT_VERSION = '$${LIMEREPORT_VERSION_MAJOR}.$${LIMEREPORT_VERSION_MINOR}.$${LIMEREPORT_VERSION_RELEASE}' DEFINES *= LIMEREPORT_VERSION_STR=\\\"$${LIMEREPORT_VERSION}\\\" diff --git a/limereport/lrreportrender.cpp b/limereport/lrreportrender.cpp index a538b32..d96368f 100644 --- a/limereport/lrreportrender.cpp +++ b/limereport/lrreportrender.cpp @@ -88,11 +88,11 @@ void ReportRender::rearrangeColumnsItems() { if (isNeedToRearrangeColumnsItems()){ qreal startHeight = columnHeigth(0); - int avg = m_columnedBandItems.size()/m_columnedBandItems[0]->columnsCount(); - for (int i=1;icolumnsCount();++i){ - if (columnItemsCount(i)columnsCount(); + for (int i = 1; i < m_columnedBandItems[0]->columnsCount(); ++i){ + if (columnItemsCount(i) < avg){ int getCount = avg * (m_columnedBandItems[0]->columnsCount()-i) - columnItemsCount(i); - for (int j=0;jsetPos(band->pos().x()+band->width(),m_columnedBandItems[0]->pos().y()); band->setColumnIndex(i); @@ -148,7 +148,7 @@ void ReportRender::renameChildItems(BaseDesignIntf *item){ ReportRender::ReportRender(QObject *parent) :QObject(parent), m_renderPageItem(0), m_pageCount(0), - m_lastDataBand(0), m_lastRenderedFooter(0), m_currentColumn(0), m_newPageStarted(false), m_renderingFirstTOC(false) + m_lastRenderedHeader(0), m_lastDataBand(0), m_lastRenderedFooter(0), m_currentColumn(0), m_newPageStarted(false), m_renderingFirstTOC(false) { initColumns(); } @@ -440,6 +440,9 @@ BandDesignIntf* ReportRender::renderBand(BandDesignIntf *patternBand, BandDesign QCoreApplication::processEvents(); if (patternBand){ + if (patternBand->isHeader()) + m_lastRenderedHeader = patternBand; + BandDesignIntf* bandClone = 0; if (bandData){ @@ -499,6 +502,9 @@ BandDesignIntf* ReportRender::renderBand(BandDesignIntf *patternBand, BandDesign bandClone->columnsFillDirection()==BandDesignIntf::VerticalUniform)) { startNewColumn(); + if (patternBand->bandHeader() && patternBand->bandHeader()->columnsCount()>1){ + renderBand(patternBand->bandHeader(), 0, mode); + } } else { savePage(); startNewPage(); diff --git a/limereport/lrreportrender.h b/limereport/lrreportrender.h index 11353b9..80c4538 100644 --- a/limereport/lrreportrender.h +++ b/limereport/lrreportrender.h @@ -183,6 +183,7 @@ private: qreal m_dataAreaSize; qreal m_reportFooterHeight; int m_renderedDataBandCount; + BandDesignIntf* m_lastRenderedHeader; BandDesignIntf* m_lastDataBand; BandDesignIntf* m_lastRenderedFooter; bool m_renderCanceled;