Subdetail headers render for column mode has been fixed

This commit is contained in:
Arin Alexander 2017-07-11 12:45:22 +03:00
commit 57a46f5798
3 changed files with 8 additions and 2 deletions

View File

@ -46,6 +46,7 @@ class SubDetailBand : public DataBandDesignIntf
public: public:
SubDetailBand(QObject* owner = 0, QGraphicsItem* parent=0); SubDetailBand(QObject* owner = 0, QGraphicsItem* parent=0);
bool isUnique() const {return false;} bool isUnique() const {return false;}
int bandNestingLevel(){ return 1;}
bool isHasHeader() const; bool isHasHeader() const;
bool isHasFooter() const; bool isHasFooter() const;
private: private:
@ -64,6 +65,7 @@ public:
SubDetailHeaderBand(QObject* owner = 0, QGraphicsItem* parent=0); SubDetailHeaderBand(QObject* owner = 0, QGraphicsItem* parent=0);
bool isUnique() const; bool isUnique() const;
bool isHeader() const {return true;} bool isHeader() const {return true;}
int bandNestingLevel(){ return 1;}
protected: protected:
QColor bandColor() const; QColor bandColor() const;
private: private:
@ -80,6 +82,7 @@ public:
SubDetailFooterBand(QObject* owner = 0, QGraphicsItem* parent=0); SubDetailFooterBand(QObject* owner = 0, QGraphicsItem* parent=0);
virtual bool isUnique() const; virtual bool isUnique() const;
bool isFooter() const{return true;} bool isFooter() const{return true;}
int bandNestingLevel(){ return 1;}
protected: protected:
QColor bandColor() const; QColor bandColor() const;
private: private:

View File

@ -168,6 +168,7 @@ public:
virtual bool isHeader() const {return false;} virtual bool isHeader() const {return false;}
virtual bool isGroupHeader() const {return false;} virtual bool isGroupHeader() const {return false;}
virtual bool isData() const {return false;} virtual bool isData() const {return false;}
virtual int bandNestingLevel(){return 0;}
bool isBand(){return true;} bool isBand(){return true;}
void setTryToKeepTogether(bool value); void setTryToKeepTogether(bool value);

View File

@ -880,7 +880,8 @@ bool ReportRender::registerBand(BandDesignIntf *band, bool registerInChildren)
} }
} }
if ( (band->columnsCount()>1) && !band->isHeader()){ if ( (band->columnsCount()>1) &&
(!band->isHeader() || (band->bandNestingLevel()>0 && band->columnsFillDirection() != BandDesignIntf::Horizontal ))){
if (m_maxHeightByColumn.size()!=band->columnsCount()){ if (m_maxHeightByColumn.size()!=band->columnsCount()){
for(int i=1;i<band->columnsCount();++i){ for(int i=1;i<band->columnsCount();++i){
@ -908,7 +909,8 @@ bool ReportRender::registerBand(BandDesignIntf *band, bool registerInChildren)
m_maxHeightByColumn[m_currentColumn]-=band->height(); m_maxHeightByColumn[m_currentColumn]-=band->height();
} }
if (band->isHeader() && band->columnsCount()>1){ if ( (band->columnsCount()>1) &&
(band->isHeader() && (band->bandNestingLevel()==0 || band->columnsFillDirection()==BandDesignIntf::Horizontal))){
qreal bandPos = m_currentStartDataPos[m_currentColumn]; qreal bandPos = m_currentStartDataPos[m_currentColumn];
m_currentStartDataPos[m_currentColumn]+=band->height(); m_currentStartDataPos[m_currentColumn]+=band->height();