121 lines
3.9 KiB
C++
121 lines
3.9 KiB
C++
#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<CCSTableInterface*> tableitems();
|
|
public:
|
|
int ParseTableItems();
|
|
int ParseItems(QList<QPair<CCSTableInterface*, int>>& listTableinfo); //add 20230815 用于标识动态表删除后,后续表的换页情况
|
|
|
|
protected:
|
|
/// <summary>
|
|
/// 用于标识动态表如果无数据且标识不显示且删除后,后续表的换页情况(是否新页和方向的信息)
|
|
/// 用于处理未用到的表被删除后,前后表的换页问题
|
|
/// </summary>
|
|
//void handleEmptyTables(QList<QPair<CCSTable*, QList<int>>>& tableinfo);
|
|
void handleEmptyTables(QList<QPair<CCSTableInterface*, int>>& 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
|