0
0
mirror of https://github.com/fralx/LimeReport.git synced 2024-12-23 16:22:58 +03:00

notPrintIfEmpty has been added to page item

This commit is contained in:
Arin Alexander 2020-10-01 02:13:28 +03:00
parent 22ab25d6c6
commit 4bbc85b79e
3 changed files with 34 additions and 6 deletions

View File

@ -52,7 +52,8 @@ PageItemDesignIntf::PageItemDesignIntf(QObject *owner, QGraphicsItem *parent) :
m_fullPage(false), m_oldPrintMode(false), m_resetPageNumber(false), m_fullPage(false), m_oldPrintMode(false), m_resetPageNumber(false),
m_isExtendedInDesignMode(false), m_extendedHeight(1000), m_isTOC(false), m_isExtendedInDesignMode(false), m_extendedHeight(1000), m_isTOC(false),
m_setPageSizeToPrinter(false), m_endlessHeight(false), m_printable(true), m_setPageSizeToPrinter(false), m_endlessHeight(false), m_printable(true),
m_pageFooter(0), m_printBehavior(Split), m_dropPrinterMargins(false) m_pageFooter(0), m_printBehavior(Split), m_dropPrinterMargins(false),
m_notPrintIfEmpty(false)
{ {
setFixedPos(true); setFixedPos(true);
setPossibleResizeDirectionFlags(Fixed); setPossibleResizeDirectionFlags(Fixed);
@ -67,7 +68,8 @@ PageItemDesignIntf::PageItemDesignIntf(const PageSize pageSize, const QRectF &re
m_fullPage(false), m_oldPrintMode(false), m_resetPageNumber(false), m_fullPage(false), m_oldPrintMode(false), m_resetPageNumber(false),
m_isExtendedInDesignMode(false), m_extendedHeight(1000), m_isTOC(false), m_isExtendedInDesignMode(false), m_extendedHeight(1000), m_isTOC(false),
m_setPageSizeToPrinter(false), m_endlessHeight(false), m_printable(true), m_setPageSizeToPrinter(false), m_endlessHeight(false), m_printable(true),
m_pageFooter(0), m_printBehavior(Split), m_dropPrinterMargins(false) m_pageFooter(0), m_printBehavior(Split), m_dropPrinterMargins(false),
m_notPrintIfEmpty(false)
{ {
setFixedPos(true); setFixedPos(true);
setPossibleResizeDirectionFlags(Fixed); setPossibleResizeDirectionFlags(Fixed);
@ -348,6 +350,16 @@ void PageItemDesignIntf::initColumnsPos(QVector<qreal> &posByColumns, qreal pos,
} }
} }
bool PageItemDesignIntf::notPrintIfEmpty() const
{
return m_notPrintIfEmpty;
}
void PageItemDesignIntf::setNotPrintIfEmpty(bool notPrintIfEmpty)
{
m_notPrintIfEmpty = notPrintIfEmpty;
}
bool PageItemDesignIntf::dropPrinterMargins() const bool PageItemDesignIntf::dropPrinterMargins() const
{ {
return m_dropPrinterMargins; return m_dropPrinterMargins;
@ -358,6 +370,11 @@ void PageItemDesignIntf::setDropPrinterMargins(bool dropPrinterMargins)
m_dropPrinterMargins = dropPrinterMargins; m_dropPrinterMargins = dropPrinterMargins;
} }
bool PageItemDesignIntf::isEmpty() const
{
return childBaseItems().isEmpty();
}
void PageItemDesignIntf::setPrintBehavior(const PrintBehavior &printBehavior) void PageItemDesignIntf::setPrintBehavior(const PrintBehavior &printBehavior)
{ {
m_printBehavior = printBehavior; m_printBehavior = printBehavior;

View File

@ -62,6 +62,7 @@ class PageItemDesignIntf : public ItemsContainerDesignInft
Q_PROPERTY(UnitType units READ unitType WRITE setUnitTypeProperty) Q_PROPERTY(UnitType units READ unitType WRITE setUnitTypeProperty)
Q_PROPERTY(PrintBehavior printBehavior READ printBehavior WRITE setPrintBehavior) Q_PROPERTY(PrintBehavior printBehavior READ printBehavior WRITE setPrintBehavior)
Q_PROPERTY(bool dropPrinterMargins READ dropPrinterMargins WRITE setDropPrinterMargins) Q_PROPERTY(bool dropPrinterMargins READ dropPrinterMargins WRITE setDropPrinterMargins)
Q_PROPERTY(bool notPrintIfEmpty READ notPrintIfEmpty WRITE setNotPrintIfEmpty)
friend class ReportRender; friend class ReportRender;
public: public:
enum Orientation { Portrait = QPrinter::Portrait, Landscape = QPrinter::Landscape }; enum Orientation { Portrait = QPrinter::Portrait, Landscape = QPrinter::Landscape };
@ -182,6 +183,11 @@ public:
bool dropPrinterMargins() const; bool dropPrinterMargins() const;
void setDropPrinterMargins(bool dropPrinterMargins); void setDropPrinterMargins(bool dropPrinterMargins);
bool isEmpty() const;
bool notPrintIfEmpty() const;
void setNotPrintIfEmpty(bool notPrintIfEmpty);
signals: signals:
void beforeFirstPageRendered(); void beforeFirstPageRendered();
void afterLastPageRendered(); void afterLastPageRendered();
@ -226,6 +232,7 @@ private:
BandDesignIntf* m_pageFooter; BandDesignIntf* m_pageFooter;
PrintBehavior m_printBehavior; PrintBehavior m_printBehavior;
bool m_dropPrinterMargins; bool m_dropPrinterMargins;
bool m_notPrintIfEmpty;
}; };

View File

@ -1483,15 +1483,19 @@ BandDesignIntf* ReportRender::findEnclosingGroup()
void ReportRender::savePage(bool isLast) void ReportRender::savePage(bool isLast)
{ {
if (m_renderPageItem->isTOC())
m_pagesRanges.addTOCPage();
else
m_pagesRanges.addPage();
m_datasources->setReportVariable("#IS_LAST_PAGEFOOTER",isLast); m_datasources->setReportVariable("#IS_LAST_PAGEFOOTER",isLast);
m_datasources->setReportVariable("#IS_FIRST_PAGEFOOTER",m_datasources->variable("#PAGE").toInt()==1); m_datasources->setReportVariable("#IS_FIRST_PAGEFOOTER",m_datasources->variable("#PAGE").toInt()==1);
renderPageItems(m_patternPageItem); renderPageItems(m_patternPageItem);
if (m_renderPageItem->isEmpty() and m_renderPageItem->notPrintIfEmpty()) return;
if (m_renderPageItem->isTOC())
m_pagesRanges.addTOCPage();
else
m_pagesRanges.addPage();
checkFooterGroup(m_lastDataBand); checkFooterGroup(m_lastDataBand);
cutGroups(); cutGroups();
rearrangeColumnsItems(); rearrangeColumnsItems();