#ifndef CCSBANDINTERFACE_H #define CCSBANDINTERFACE_H #include "ccsbaseiteminterface.h" #include "QFont" #include "qglobal.h" #include "ccsreport_global.h" namespace CCS_Report { class CCSBaseItemInterface; class CCSBandInterfacePrivate; class CCSTableInterface; class CCSTable; class CCS_COMPASSREPORT_EXPORT CCSBandInterface:public CCSBaseItemInterface { Q_OBJECT Q_PROPERTY(QFont font READ font WRITE setFont) Q_PROPERTY(int marginLeft READ marginLeft WRITE setMarginLeft) Q_PROPERTY(int marginTop READ marginTop WRITE setMarginTop) Q_PROPERTY(int marginRight READ marginRight WRITE setMarginRight) Q_PROPERTY(int marginBottom READ marginBottom WRITE setMarginBottom) // Q_PROPERTY(CCS_Report::Margins margins READ margins WRITE setMargins) Q_PROPERTY(int orientation READ orientation WRITE setOrientation) Q_PROPERTY(QPen showline READ showline WRITE SetShowLine) Q_PROPERTY(QString version READ version WRITE SetVersion) public: CCSBandInterface(QObject *parent=0); ~CCSBandInterface(); virtual CCSBaseItemInterface * createInstance(QObject * parent) const=0; virtual CCSBaseItemInterface * clone(bool withChildren = true, bool init = true) const=0; virtual void SetValue(const QString &text,int iPos=0) = 0; virtual void exeFunction(ReportFunPara& arg)=0; int marginLeft(); int marginTop(); int marginRight(); int marginBottom(); void setMarginLeft(int margin) ; void setMarginTop(int margin) ; void setMarginRight(int margin); void setMarginBottom(int margin); void setMargin(const int &left,const int &right,const int &top,const int &bottom); void setMargin(const QMargins& margin); QMargins margins() const; int orientation() const; void setOrientation(int& o); // CCS_Report::Margins margins() const; // void setMargins(const CCS_Report::Margins& margin); QFont font() const; void setFont(const QFont & font); QPen showline() const; void SetShowLine(const QPen& flag); QString version() const; void SetVersion(const QString& strVer); QList tableitems(); public: int ParseTableItems(); int ParseItems(QList>& listTableinfo); //add 20230815 用于标识动态表删除后,后续表的换页情况 protected: /// /// 用于标识动态表如果无数据且标识不显示且删除后,后续表的换页情况(是否新页和方向的信息) /// 用于处理未用到的表被删除后,前后表的换页问题 /// //void handleEmptyTables(QList>>& tableinfo); void handleEmptyTables(QList>& iteminfo); protected: Q_DECLARE_PRIVATE(CCSBandInterface) CCSBandInterface(CCSBandInterfacePrivate *dd, QObject * parent); virtual CCSBaseItemInterface * itemClone() const =0; private: }; class CCSBandInterfacePrivate : public CCSBaseItemInterfacePrivate { public: CCSBandInterfacePrivate() :CCSBaseItemInterfacePrivate(), m_iMarginBottom(0), m_iMarginRight(0), m_iMarginTop(0), m_iMarginLeft(0), m_iOrientation(0),m_bLine(QPen()), m_strVersion("") { // m_margins = QMargins(); m_bLine.setStyle(Qt::NoPen); } CCSBandInterfacePrivate(const CCSBandInterfacePrivate & p) :CCSBaseItemInterfacePrivate(p), m_iMarginBottom(p.m_iMarginBottom), m_iMarginRight(p.m_iMarginRight), m_iMarginTop(p.m_iMarginTop), m_iMarginLeft(p.m_iMarginLeft), m_Font(p.m_Font), m_iOrientation(p.m_iOrientation), m_bLine(p.m_bLine), m_strVersion(p.m_strVersion) {} // Margins margins; int m_iMarginLeft; int m_iMarginTop; int m_iMarginBottom; int m_iMarginRight; int m_iOrientation; QPen m_bLine; QFont m_Font; QString m_strVersion; }; } #endif // CCSBANDINTERFACE_H