#ifndef CCSTABLEINTERFACE_H #define CCSTABLEINTERFACE_H #include #include "ccsbaseiteminterface.h" #include "ccsreport_global.h" #include "common_types.h" #include "qglobal.h" namespace CCS_Report { class CCSTableInterfacePrivate :public CCSBaseItemInterfacePrivate { public: CCSTableInterfacePrivate() : CCSBaseItemInterfacePrivate() {} CCSTableInterfacePrivate(const CCSTableInterfacePrivate& p) :CCSBaseItemInterfacePrivate(p) {} virtual ~CCSTableInterfacePrivate() {} }; class CCS_COMPASSREPORT_EXPORT CCSTableInterface :public CCSBaseItemInterface { Q_OBJECT //QList items; public: CCSTableInterface(QObject* parent = 0):CCSBaseItemInterface(new CCSTableInterfacePrivate(), parent){} ~CCSTableInterface() {} 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) {} virtual void exeFunction(ReportFunPara& arg) {} virtual int Parse(QList>& tablesinfo, CCSGroup& groupkey) = 0; QList tables() { return findChildren(QString(), Qt::FindDirectChildrenOnly); } CCSTableInterface* table() { return findChild(QString(), Qt::FindDirectChildrenOnly); } protected: Q_DECLARE_PRIVATE(CCSTableInterface) CCSTableInterface(CCSTableInterfacePrivate* dd, QObject* parent):CCSBaseItemInterface(dd,parent) {} virtual CCSBaseItemInterface* itemClone() const = 0; }; } #endif // CCSBASEITEMINTERFACE_H