COMPASSi/trunk/code/3rd/CCSReport_2/include/base/ccstableinterface.h

54 lines
1.8 KiB
C++

#ifndef CCSTABLEINTERFACE_H
#define CCSTABLEINTERFACE_H
#include <QObject>
#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<CCSParagraph*> 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<QPair<CCSTableInterface*, int>>& tablesinfo, CCSGroup& groupkey) = 0;
QList<CCSTableInterface*> tables()
{
return findChildren<CCSTableInterface*>(QString(), Qt::FindDirectChildrenOnly);
}
CCSTableInterface* table()
{
return findChild<CCSTableInterface*>(QString(), Qt::FindDirectChildrenOnly);
}
protected:
Q_DECLARE_PRIVATE(CCSTableInterface)
CCSTableInterface(CCSTableInterfacePrivate* dd, QObject* parent):CCSBaseItemInterface(dd,parent) {}
virtual CCSBaseItemInterface* itemClone() const = 0;
};
}
#endif // CCSBASEITEMINTERFACE_H