mirror of
https://github.com/fralx/LimeReport.git
synced 2024-12-24 16:44:39 +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);
|
||||
}
|
||||
|
||||
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)
|
||||
{
|
||||
return new DataBand(owner,parent);
|
||||
@ -96,6 +130,38 @@ DataHeaderBand::DataHeaderBand(QObject *owner, QGraphicsItem *parent)
|
||||
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)
|
||||
:BandDesignIntf(BandDesignIntf::DataFooter,xmlTagFooter,owner,parent)
|
||||
{
|
||||
@ -103,5 +169,21 @@ DataFooterBand::DataFooterBand(QObject *owner, QGraphicsItem *parent)
|
||||
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;}
|
||||
protected:
|
||||
QColor bandColor() const;
|
||||
void preparePopUpMenu(QMenu &menu);
|
||||
void processPopUpAction(QAction *action);
|
||||
private:
|
||||
BaseDesignIntf* createSameTypeItem(QObject* owner=0, QGraphicsItem* parent=0);
|
||||
};
|
||||
@ -71,6 +73,9 @@ public:
|
||||
bool isUnique() const {return false;}
|
||||
bool isHeader() const {return true;}
|
||||
QColor bandColor() const {return QColor(Qt::darkGreen);}
|
||||
protected:
|
||||
void preparePopUpMenu(QMenu &menu);
|
||||
void processPopUpAction(QAction *action);
|
||||
private:
|
||||
BaseDesignIntf* createSameTypeItem(QObject* owner=0, QGraphicsItem* parent=0){
|
||||
return new DataHeaderBand(owner,parent);
|
||||
@ -88,6 +93,9 @@ public:
|
||||
bool isUnique() const {return false;}
|
||||
bool isFooter() const {return true;}
|
||||
QColor bandColor() const{return QColor(Qt::darkGreen);}
|
||||
protected:
|
||||
void preparePopUpMenu(QMenu &menu);
|
||||
void processPopUpAction(QAction *action);
|
||||
private:
|
||||
BaseDesignIntf* createSameTypeItem(QObject* owner=0, QGraphicsItem* parent=0){
|
||||
return new DataFooterBand(owner,parent);
|
||||
|
@ -577,6 +577,7 @@ void ReportRender::renderDataBand(BandDesignIntf *dataBand)
|
||||
firstTime = false;
|
||||
}
|
||||
|
||||
if (!dataBand->keepFooterTogether())
|
||||
m_reprintableBands.removeOne(dataBand->bandHeader());
|
||||
|
||||
if (bandDatasource->prior()){
|
||||
@ -584,8 +585,11 @@ void ReportRender::renderDataBand(BandDesignIntf *dataBand)
|
||||
bandDatasource->next();
|
||||
}
|
||||
|
||||
if (footer && !footer->printAlways())
|
||||
if (footer && !footer->printAlways()){
|
||||
renderBand(footer, 0, StartNewPageAsNeeded);
|
||||
if (dataBand->keepFooterTogether())
|
||||
m_reprintableBands.removeOne(dataBand);
|
||||
}
|
||||
|
||||
datasources()->deleteVariable(varName);
|
||||
|
||||
@ -593,8 +597,11 @@ void ReportRender::renderDataBand(BandDesignIntf *dataBand)
|
||||
renderBand(dataBand, 0, StartNewPageAsNeeded);
|
||||
}
|
||||
|
||||
if (footer && footer->printAlways())
|
||||
if (footer && footer->printAlways()){
|
||||
renderBand(footer, 0, StartNewPageAsNeeded);
|
||||
if (dataBand->keepFooterTogether())
|
||||
m_reprintableBands.removeOne(dataBand);
|
||||
}
|
||||
}
|
||||
|
||||
void ReportRender::renderPageHeader(PageItemDesignIntf *patternPage)
|
||||
|
Loading…
Reference in New Issue
Block a user