mirror of
https://github.com/python-LimeReport/LimeReport.git
synced 2024-12-25 13:04:38 +03:00
keepFooterTogether with reprintOnEachPage fixed
This commit is contained in:
parent
5a199a2e82
commit
b43dfdd1aa
@ -84,6 +84,40 @@ QColor DataBand::bandColor() const
|
|||||||
return QColor(Qt::darkGreen);
|
return QColor(Qt::darkGreen);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void DataBand::preparePopUpMenu(QMenu &menu)
|
||||||
|
{
|
||||||
|
BandDesignIntf::preparePopUpMenu(menu);
|
||||||
|
QAction* currAction = menu.addAction(tr("Keep footer together"));
|
||||||
|
currAction->setCheckable(true);
|
||||||
|
currAction->setChecked(keepFooterTogether());
|
||||||
|
|
||||||
|
currAction = menu.addAction(tr("Keep subdetail together"));
|
||||||
|
currAction->setCheckable(true);
|
||||||
|
currAction->setChecked(tryToKeepTogether());
|
||||||
|
|
||||||
|
currAction = menu.addAction(tr("Slice last row"));
|
||||||
|
currAction->setCheckable(true);
|
||||||
|
currAction->setChecked(sliceLastRow());
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
void DataBand::processPopUpAction(QAction *action)
|
||||||
|
{
|
||||||
|
BandDesignIntf::processPopUpAction(action);
|
||||||
|
if (action->text().compare(tr("Keep footer together")) == 0){
|
||||||
|
setProperty("keepFooterTogether",action->isChecked());
|
||||||
|
}
|
||||||
|
|
||||||
|
if (action->text().compare(tr("Keep subdetail together")) == 0){
|
||||||
|
setProperty("keepSubdetailTogether",action->isChecked());
|
||||||
|
}
|
||||||
|
|
||||||
|
if (action->text().compare(tr("Slice last row")) == 0){
|
||||||
|
setProperty("sliceLastRow",action->isChecked());
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
BaseDesignIntf *DataBand::createSameTypeItem(QObject *owner, QGraphicsItem *parent)
|
BaseDesignIntf *DataBand::createSameTypeItem(QObject *owner, QGraphicsItem *parent)
|
||||||
{
|
{
|
||||||
return new DataBand(owner,parent);
|
return new DataBand(owner,parent);
|
||||||
@ -96,6 +130,38 @@ DataHeaderBand::DataHeaderBand(QObject *owner, QGraphicsItem *parent)
|
|||||||
setMarkerColor(bandColor());
|
setMarkerColor(bandColor());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void DataHeaderBand::preparePopUpMenu(QMenu &menu)
|
||||||
|
{
|
||||||
|
BandDesignIntf::preparePopUpMenu(menu);
|
||||||
|
QAction* currAction = menu.addAction(tr("Reprint on each page"));
|
||||||
|
currAction->setCheckable(true);
|
||||||
|
currAction->setChecked(reprintOnEachPage());
|
||||||
|
|
||||||
|
currAction = menu.addAction(tr("Repeat on each row"));
|
||||||
|
currAction->setCheckable(true);
|
||||||
|
currAction->setChecked(repeatOnEachRow());
|
||||||
|
|
||||||
|
currAction = menu.addAction(tr("Print always"));
|
||||||
|
currAction->setCheckable(true);
|
||||||
|
currAction->setChecked(printAlways());
|
||||||
|
}
|
||||||
|
|
||||||
|
void DataHeaderBand::processPopUpAction(QAction *action)
|
||||||
|
{
|
||||||
|
BandDesignIntf::processPopUpAction(action);
|
||||||
|
if (action->text().compare(tr("Reprint on each page")) == 0){
|
||||||
|
setProperty("repeatOnEachPage",action->isChecked());
|
||||||
|
}
|
||||||
|
|
||||||
|
if (action->text().compare(tr("Repeat on each row")) == 0){
|
||||||
|
setProperty("repeatOnEachRow",action->isChecked());
|
||||||
|
}
|
||||||
|
|
||||||
|
if (action->text().compare(tr("Print always")) == 0){
|
||||||
|
setProperty("printAlways",action->isChecked());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
DataFooterBand::DataFooterBand(QObject *owner, QGraphicsItem *parent)
|
DataFooterBand::DataFooterBand(QObject *owner, QGraphicsItem *parent)
|
||||||
:BandDesignIntf(BandDesignIntf::DataFooter,xmlTagFooter,owner,parent)
|
:BandDesignIntf(BandDesignIntf::DataFooter,xmlTagFooter,owner,parent)
|
||||||
{
|
{
|
||||||
@ -103,5 +169,21 @@ DataFooterBand::DataFooterBand(QObject *owner, QGraphicsItem *parent)
|
|||||||
setMarkerColor(bandColor());
|
setMarkerColor(bandColor());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void DataFooterBand::preparePopUpMenu(QMenu &menu)
|
||||||
|
{
|
||||||
|
BandDesignIntf::preparePopUpMenu(menu);
|
||||||
|
QAction* currAction = menu.addAction(tr("Print always"));
|
||||||
|
currAction->setCheckable(true);
|
||||||
|
currAction->setChecked(printAlways());
|
||||||
|
}
|
||||||
|
|
||||||
|
void DataFooterBand::processPopUpAction(QAction *action)
|
||||||
|
{
|
||||||
|
BandDesignIntf::processPopUpAction(action);
|
||||||
|
if (action->text().compare(tr("Print always")) == 0){
|
||||||
|
setProperty("printAlways",action->isChecked());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -54,6 +54,8 @@ public:
|
|||||||
bool isData() const {return true;}
|
bool isData() const {return true;}
|
||||||
protected:
|
protected:
|
||||||
QColor bandColor() const;
|
QColor bandColor() const;
|
||||||
|
void preparePopUpMenu(QMenu &menu);
|
||||||
|
void processPopUpAction(QAction *action);
|
||||||
private:
|
private:
|
||||||
BaseDesignIntf* createSameTypeItem(QObject* owner=0, QGraphicsItem* parent=0);
|
BaseDesignIntf* createSameTypeItem(QObject* owner=0, QGraphicsItem* parent=0);
|
||||||
};
|
};
|
||||||
@ -71,6 +73,9 @@ public:
|
|||||||
bool isUnique() const {return false;}
|
bool isUnique() const {return false;}
|
||||||
bool isHeader() const {return true;}
|
bool isHeader() const {return true;}
|
||||||
QColor bandColor() const {return QColor(Qt::darkGreen);}
|
QColor bandColor() const {return QColor(Qt::darkGreen);}
|
||||||
|
protected:
|
||||||
|
void preparePopUpMenu(QMenu &menu);
|
||||||
|
void processPopUpAction(QAction *action);
|
||||||
private:
|
private:
|
||||||
BaseDesignIntf* createSameTypeItem(QObject* owner=0, QGraphicsItem* parent=0){
|
BaseDesignIntf* createSameTypeItem(QObject* owner=0, QGraphicsItem* parent=0){
|
||||||
return new DataHeaderBand(owner,parent);
|
return new DataHeaderBand(owner,parent);
|
||||||
@ -88,6 +93,9 @@ public:
|
|||||||
bool isUnique() const {return false;}
|
bool isUnique() const {return false;}
|
||||||
bool isFooter() const {return true;}
|
bool isFooter() const {return true;}
|
||||||
QColor bandColor() const{return QColor(Qt::darkGreen);}
|
QColor bandColor() const{return QColor(Qt::darkGreen);}
|
||||||
|
protected:
|
||||||
|
void preparePopUpMenu(QMenu &menu);
|
||||||
|
void processPopUpAction(QAction *action);
|
||||||
private:
|
private:
|
||||||
BaseDesignIntf* createSameTypeItem(QObject* owner=0, QGraphicsItem* parent=0){
|
BaseDesignIntf* createSameTypeItem(QObject* owner=0, QGraphicsItem* parent=0){
|
||||||
return new DataFooterBand(owner,parent);
|
return new DataFooterBand(owner,parent);
|
||||||
|
@ -577,6 +577,7 @@ void ReportRender::renderDataBand(BandDesignIntf *dataBand)
|
|||||||
firstTime = false;
|
firstTime = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (!dataBand->keepFooterTogether())
|
||||||
m_reprintableBands.removeOne(dataBand->bandHeader());
|
m_reprintableBands.removeOne(dataBand->bandHeader());
|
||||||
|
|
||||||
if (bandDatasource->prior()){
|
if (bandDatasource->prior()){
|
||||||
@ -584,8 +585,11 @@ void ReportRender::renderDataBand(BandDesignIntf *dataBand)
|
|||||||
bandDatasource->next();
|
bandDatasource->next();
|
||||||
}
|
}
|
||||||
|
|
||||||
if (footer && !footer->printAlways())
|
if (footer && !footer->printAlways()){
|
||||||
renderBand(footer, 0, StartNewPageAsNeeded);
|
renderBand(footer, 0, StartNewPageAsNeeded);
|
||||||
|
if (dataBand->keepFooterTogether())
|
||||||
|
m_reprintableBands.removeOne(dataBand);
|
||||||
|
}
|
||||||
|
|
||||||
datasources()->deleteVariable(varName);
|
datasources()->deleteVariable(varName);
|
||||||
|
|
||||||
@ -593,8 +597,11 @@ void ReportRender::renderDataBand(BandDesignIntf *dataBand)
|
|||||||
renderBand(dataBand, 0, StartNewPageAsNeeded);
|
renderBand(dataBand, 0, StartNewPageAsNeeded);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (footer && footer->printAlways())
|
if (footer && footer->printAlways()){
|
||||||
renderBand(footer, 0, StartNewPageAsNeeded);
|
renderBand(footer, 0, StartNewPageAsNeeded);
|
||||||
|
if (dataBand->keepFooterTogether())
|
||||||
|
m_reprintableBands.removeOne(dataBand);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void ReportRender::renderPageHeader(PageItemDesignIntf *patternPage)
|
void ReportRender::renderPageHeader(PageItemDesignIntf *patternPage)
|
||||||
|
Loading…
Reference in New Issue
Block a user