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

Merge branch 'master' into 1.4

This commit is contained in:
Arin Alexander 2016-07-21 00:15:04 +03:00
commit fe67575691
8 changed files with 50 additions and 12 deletions

View File

@ -62,6 +62,7 @@ class DataHeaderBand : public BandDesignIntf
Q_OBJECT Q_OBJECT
Q_PROPERTY(bool reprintOnEachPage READ reprintOnEachPage WRITE setReprintOnEachPage) Q_PROPERTY(bool reprintOnEachPage READ reprintOnEachPage WRITE setReprintOnEachPage)
Q_PROPERTY(int columnsCount READ columnsCount WRITE setColumnsCount) Q_PROPERTY(int columnsCount READ columnsCount WRITE setColumnsCount)
Q_PROPERTY(bool printAlways READ printAlways() WRITE setPrintAlways())
public: public:
DataHeaderBand(QObject* owner=0, QGraphicsItem* parent=0); DataHeaderBand(QObject* owner=0, QGraphicsItem* parent=0);
bool isUnique() const {return false;} bool isUnique() const {return false;}
@ -76,6 +77,7 @@ private:
class DataFooterBand : public BandDesignIntf class DataFooterBand : public BandDesignIntf
{ {
Q_OBJECT Q_OBJECT
Q_PROPERTY(bool printAlways READ printAlways() WRITE setPrintAlways())
public: public:
DataFooterBand(QObject* owner=0, QGraphicsItem* parent=0); DataFooterBand(QObject* owner=0, QGraphicsItem* parent=0);
bool isUnique() const {return false;} bool isUnique() const {return false;}

View File

@ -106,7 +106,7 @@ QColor SubDetailBand::bandColor() const
//SubDetailHeaderBand //SubDetailHeaderBand
SubDetailHeaderBand::SubDetailHeaderBand(QObject *owner, QGraphicsItem *parent) SubDetailHeaderBand::SubDetailHeaderBand(QObject *owner, QGraphicsItem *parent)
:BandDesignIntf(BandDesignIntf::SubDetailHeader,xmlTagHeader,owner,parent), m_printAlways(false) :BandDesignIntf(BandDesignIntf::SubDetailHeader,xmlTagHeader,owner,parent)
{ {
setBandTypeText(tr("SubDetailHeader")); setBandTypeText(tr("SubDetailHeader"));
setMarkerColor(bandColor()); setMarkerColor(bandColor());
@ -130,7 +130,7 @@ BaseDesignIntf *SubDetailHeaderBand::createSameTypeItem(QObject *owner, QGraphic
//SubDetailFooterBand //SubDetailFooterBand
SubDetailFooterBand::SubDetailFooterBand(QObject *owner, QGraphicsItem *parent) SubDetailFooterBand::SubDetailFooterBand(QObject *owner, QGraphicsItem *parent)
: BandDesignIntf(BandDesignIntf::SubDetailFooter,xmlTagFooter,owner,parent), m_printAlways(false) : BandDesignIntf(BandDesignIntf::SubDetailFooter,xmlTagFooter,owner,parent)
{ {
setMarkerColor(bandColor()); setMarkerColor(bandColor());
} }

View File

@ -59,14 +59,10 @@ class SubDetailHeaderBand : public BandDesignIntf
public: public:
SubDetailHeaderBand(QObject* owner = 0, QGraphicsItem* parent=0); SubDetailHeaderBand(QObject* owner = 0, QGraphicsItem* parent=0);
bool isUnique() const; bool isUnique() const;
void setPrintAlways(bool value){m_printAlways=value;}
bool printAlways(){return m_printAlways;}
protected: protected:
QColor bandColor() const; QColor bandColor() const;
private: private:
BaseDesignIntf* createSameTypeItem(QObject* owner=0, QGraphicsItem* parent=0); BaseDesignIntf* createSameTypeItem(QObject* owner=0, QGraphicsItem* parent=0);
private:
bool m_printAlways;
}; };
class SubDetailFooterBand : public BandDesignIntf class SubDetailFooterBand : public BandDesignIntf
@ -75,8 +71,6 @@ class SubDetailFooterBand : public BandDesignIntf
Q_PROPERTY(bool printAlways READ printAlways() WRITE setPrintAlways()) Q_PROPERTY(bool printAlways READ printAlways() WRITE setPrintAlways())
public: public:
SubDetailFooterBand(QObject* owner = 0, QGraphicsItem* parent=0); SubDetailFooterBand(QObject* owner = 0, QGraphicsItem* parent=0);
void setPrintAlways(bool value){m_printAlways=value;}
bool printAlways(){return m_printAlways;}
virtual bool isUnique() const; virtual bool isUnique() const;
bool isFooter() const{return true;} bool isFooter() const{return true;}
protected: protected:
@ -84,7 +78,6 @@ protected:
private: private:
BaseDesignIntf* createSameTypeItem(QObject* owner=0, QGraphicsItem* parent=0); BaseDesignIntf* createSameTypeItem(QObject* owner=0, QGraphicsItem* parent=0);
private: private:
bool m_printAlways;
}; };
} }

View File

@ -143,7 +143,8 @@ BandDesignIntf::BandDesignIntf(BandsType bandType, const QString &xmlTypeName, Q
m_columnsFillDirection(Horizontal), m_columnsFillDirection(Horizontal),
m_reprintOnEachPage(false), m_reprintOnEachPage(false),
m_startNewPage(false), m_startNewPage(false),
m_startFromNewPage(false) m_startFromNewPage(false),
m_printAlways(false)
{ {
setPosibleResizeDirectionFlags(ResizeBottom); setPosibleResizeDirectionFlags(ResizeBottom);
setPosibleMoveFlags(TopBotom); setPosibleMoveFlags(TopBotom);
@ -716,6 +717,16 @@ void BandDesignIntf::childBandDeleted(QObject *band)
m_childBands.removeAt(m_childBands.indexOf(reinterpret_cast<BandDesignIntf*>(band))); m_childBands.removeAt(m_childBands.indexOf(reinterpret_cast<BandDesignIntf*>(band)));
} }
bool BandDesignIntf::printAlways() const
{
return m_printAlways;
}
void BandDesignIntf::setPrintAlways(bool printAlways)
{
m_printAlways = printAlways;
}
bool BandDesignIntf::startFromNewPage() const bool BandDesignIntf::startFromNewPage() const
{ {
return m_startFromNewPage; return m_startFromNewPage;

View File

@ -83,6 +83,7 @@ private:
struct ItemSortContainer; struct ItemSortContainer;
typedef QSharedPointer< ItemSortContainer > PItemSortContainer; typedef QSharedPointer< ItemSortContainer > PItemSortContainer;
class BandDesignIntf : public BaseDesignIntf class BandDesignIntf : public BaseDesignIntf
{ {
Q_OBJECT Q_OBJECT
@ -210,6 +211,9 @@ public:
bool startFromNewPage() const; bool startFromNewPage() const;
void setStartFromNewPage(bool startFromNewPage); void setStartFromNewPage(bool startFromNewPage);
bool canContainChildren(){ return true;} bool canContainChildren(){ return true;}
bool printAlways() const;
void setPrintAlways(bool printAlways);
signals: signals:
void bandRendered(BandDesignIntf* band); void bandRendered(BandDesignIntf* band);
protected: protected:
@ -260,6 +264,7 @@ private:
bool m_reprintOnEachPage; bool m_reprintOnEachPage;
bool m_startNewPage; bool m_startNewPage;
bool m_startFromNewPage; bool m_startFromNewPage;
bool m_printAlways;
}; };
class DataBandDesignIntf : public BandDesignIntf{ class DataBandDesignIntf : public BandDesignIntf{

View File

@ -176,6 +176,12 @@ void BaseDesignIntf::setWidth(qreal width)
updateItemAlign(); updateItemAlign();
} }
QString BaseDesignIntf::setItemWidth(qreal width)
{
setWidth(width * mmFactor());
return QString();
}
qreal BaseDesignIntf::height() const qreal BaseDesignIntf::height() const
{ {
return rect().height(); return rect().height();
@ -191,6 +197,12 @@ void BaseDesignIntf::setHeight(qreal height)
setGeometry(QRectF(rect().x(), rect().y(), rect().width(), height)); setGeometry(QRectF(rect().x(), rect().y(), rect().width(), height));
} }
QString BaseDesignIntf::setItemHeight(qreal height)
{
setHeight(height * mmFactor());
return QString();
}
QFont BaseDesignIntf::transformToSceneFont(const QFont& value) const QFont BaseDesignIntf::transformToSceneFont(const QFont& value) const
{ {
QFont f = value; QFont f = value;

View File

@ -248,6 +248,9 @@ public:
virtual bool canContainChildren(){ return false;} virtual bool canContainChildren(){ return false;}
ReportSettings* reportSettings() const; ReportSettings* reportSettings() const;
void setReportSettings(ReportSettings *reportSettings); void setReportSettings(ReportSettings *reportSettings);
Q_INVOKABLE QString setItemWidth(qreal width);
Q_INVOKABLE QString setItemHeight(qreal height);
protected: protected:
//ICollectionContainer //ICollectionContainer

View File

@ -404,12 +404,18 @@ void ReportRender::renderDataBand(BandDesignIntf *dataBand)
if (dataBand && !dataBand->datasourceName().isEmpty()) if (dataBand && !dataBand->datasourceName().isEmpty())
bandDatasource = datasources()->dataSource(dataBand->datasourceName()); bandDatasource = datasources()->dataSource(dataBand->datasourceName());
BandDesignIntf* header = dataBand->bandHeader();
BandDesignIntf* footer = dataBand->bandFooter();
if (header && header->printAlways()) renderBand(header);
if(bandDatasource && !bandDatasource->eof() && !m_renderCanceled){ if(bandDatasource && !bandDatasource->eof() && !m_renderCanceled){
QString varName = QLatin1String("line_")+dataBand->objectName().toLower(); QString varName = QLatin1String("line_")+dataBand->objectName().toLower();
datasources()->setReportVariable(varName,1); datasources()->setReportVariable(varName,1);
renderBand(dataBand->bandHeader()); if (header && !header->printAlways())
renderBand(header);
if (dataBand->bandHeader() && dataBand->bandHeader()->reprintOnEachPage()) if (dataBand->bandHeader() && dataBand->bandHeader()->reprintOnEachPage())
m_reprintableBands.append(dataBand->bandHeader()); m_reprintableBands.append(dataBand->bandHeader());
@ -456,11 +462,17 @@ void ReportRender::renderDataBand(BandDesignIntf *dataBand)
renderGroupFooter(dataBand); renderGroupFooter(dataBand);
renderBand(dataBand->bandFooter(),StartNewPageAsNeeded); if (footer && !footer->printAlways())
renderBand(footer,StartNewPageAsNeeded);
datasources()->deleteVariable(varName); datasources()->deleteVariable(varName);
} else if (bandDatasource==0) { } else if (bandDatasource==0) {
renderBand(dataBand,StartNewPageAsNeeded); renderBand(dataBand,StartNewPageAsNeeded);
} }
if (footer && footer->printAlways())
renderBand(footer,StartNewPageAsNeeded);
} }
void ReportRender::renderPageHeader(PageItemDesignIntf *patternPage) void ReportRender::renderPageHeader(PageItemDesignIntf *patternPage)