#ifndef CCSREPORTCORE_H #define CCSREPORTCORE_H #include #include //#include "ccsbanddetail.h" #include "common_types.h" #include "ccsreport_global.h" //#include "ccsreport.h" //#include "ccstablefix.h" //#include "ccscell.h" //#include "ccsparagraph.h" //#include "ccstext.h" //#include "ccsimage.h" //#include "ccscolumn.h" namespace CCS_Report { class CCSReport; class CCSTableFix; class CCSTableDynamic; class CCSTableGroup; class CCSSubTable; class CCSCell; class CCSParagraph; class CCSText; class CCSImage; class CCSColumnHeader; class CCSColumnContent; class CCSColumnBottom; class CCSBandContent; class CCSBandDirectory; class CCSBandAppendix; class CCSBandCover; class CCSBandHeader; class CCSBandFooter; class CCSTemplate; class CCSBandWater; class CCS_COMPASSREPORT_EXPORT CCSReportCore:public QObject { Q_OBJECT public: CCSReportCore(QObject *parent = 0); ~CCSReportCore(); void Init(); /// /// 报告模板文件加载 /// /// /// bool loadReport(const QString& reportURL); /// /// 多个报告Band模板加载,同时进行合并; /// 1、报告各个Band可单独定义; /// 2、正文中的内容也可以单独定义 /// 3、加载时给出一组文件,实现模板的合并,生成一个Report模板文件 /// /// /// bool loadReportFromFiles(const QList listURLs); /// /// 加载数据对象;【本期数据对象必须是CCSModelDataSet类型对象】 /// /// /// bool LoadData(QHash> datasets); /// /// 输出报告 /// /// 要输出的路径+文件名 /// 输出报告文件类型:缺省是PDF void Export(QString url, CCSExportType::ExportTypeFlag exporttype = CCSExportType::PDF); CCS_Report::CCSBandContent * createContentObject(const QString & moduleName, QObject *report = 0); CCS_Report::CCSBandDirectory * createDirectoryObject(const QString & moduleName, QObject *report = 0); CCS_Report::CCSBandAppendix * createAppendixObject(const QString & moduleName, QObject *report = 0); CCS_Report::CCSBandCover * createCoverObject(const QString & moduleName, QObject *report = 0); CCS_Report::CCSBandHeader * createHeaderObject(const QString & moduleName, QObject *report = 0); CCS_Report::CCSBandFooter * createFooterObject(const QString & moduleName, QObject *report = 0); CCS_Report::CCSBandWater * createWaterObject(const QString & moduleName, QObject *report = 0); CCS_Report::CCSTemplate * createTemplateObject(const QString & moduleName, QObject *report=0); CCS_Report::CCSParagraph * createParaObject(const QString & moduleName, QObject * parent = 0); CCS_Report::CCSText * createTextObject(const QString & moduleName, QObject * parent = 0); CCS_Report::CCSCell * createCellObject(const QString & moduleName, QObject * parent = 0); CCS_Report::CCSColumnHeader * createColumnHeaderObject(const QString & moduleName, QObject * parent = 0); //CCS_Report::CCSColunmBottom * createColumnBottomObject(const QString & moduleName, CCS_Report::CCSReport *report = 0, QObject * parent = 0); CCS_Report::CCSTableFix * createTableObject(const QString & moduleName, QObject * parent = 0); CCS_Report::CCSTableDynamic * createDynamicTableObject(const QString & moduleName, QObject * parent = 0); CCS_Report::CCSSubTable * createSubTableObject(const QString & moduleName, QObject * parent = 0); CCS_Report::CCSColumnContent * createColContentObject(const QString & moduleName, QObject * parent = 0); CCS_Report::CCSColumnBottom * createBottomObject(const QString & moduleName, QObject * parent = 0); CCS_Report::CCSImage * createImageObject(const QString & moduleName, QObject * parent = 0); CCS_Report::CCSTableGroup * createTablegroupObject(const QString & moduleName, QObject * parent = 0); bool saveReport(const QString & urlString, CCSReport * report, QString * errorText = 0); QByteArray serialize(CCSReport * object, bool *ok = 0, QString * error = 0, const QString & moduleName = QString()); QObject * deserialize(const QByteArray &data); private: CCSReport* m_pReport; }; } #endif // CCSREPORTCORE_H