#ifndef CCSREPORTADAPTER_H #define CCSREPORTADAPTER_H #include "qlist.h" #include "qobject.h" #include "ccsreport_global.h" namespace CCS_Report { class CCSBandCover; class CCSBandDirectory; class CCSBandContent; class CCSBandHeader; class CCSBandFooter; class CCSBandAppendix; class CCSBandWater; class CoverWrapper; class DirectoryWrapper; class ContentWrapper; class HeaderWrapper; class FooterWrapper; class AppendixWrapper; class WaterWrapper; class CCSBandInterface; class TableGroup; class CCSTableGroup; class CCSTableDynamic; class TableDynamic; class CCSTableFix; class Table; class BaseItem; class CCSCell; class Cell; class CCSParagraph; class Paragraph; class CCSText; class CCSImage; class Text; class Image; class BaseBand; class Report; class CCS_COMPASSREPORT_EXPORT BaseAdapter :public QObject { Q_OBJECT public: BaseAdapter(QObject* parent = 0) :QObject(parent) {} virtual ~BaseAdapter() { //delete m_Report; } protected: //CCSReport *m_Report; }; /// /// 模板定义映射;把定义的模板对象转换成生成报告所需的模板对象 /// class CCS_COMPASSREPORT_EXPORT ReportAdapter:public BaseAdapter { public: ReportAdapter(QObject* parent = 0); ~ReportAdapter(); int MapToCCSBand(BaseBand *band,const QString& filename); /// /// 映射Report对象,并保存 /// @report Report对象 /// @filename 要保存的文件名 /// /// /// /// int MapToCCSReport(Report* report,const QString& filename); private: /// /// 保存模板 /// /// @report 模板对象 /// @filename 文件名 /// /// /// bool SaveReportTemplate(const QObject* report,const QString& filename); CCS_Report::CCSBandCover* MapCover(QObject *obj,CoverWrapper* cover); CCS_Report::CCSBandWater* MapWater(QObject *obj,WaterWrapper* water); CCS_Report::CCSBandDirectory* MapDirectory(QObject *obj,DirectoryWrapper* directory); CCS_Report::CCSBandContent* MapContent(QObject *obj,ContentWrapper* content); CCS_Report::CCSBandHeader* MapHeader(QObject *obj,HeaderWrapper* header); CCS_Report::CCSBandFooter* MapFooter(QObject *obj,FooterWrapper* footer); CCS_Report::CCSBandAppendix* MapAppendix(QObject *obj,AppendixWrapper* appendix); CCS_Report::CCSBandHeader* HandleHeader(HeaderWrapper* header,QObject * band); CCS_Report::CCSBandFooter* HandleFooter(FooterWrapper* footer,QObject * band); void HandleBaseItem(QList items,CCSBandInterface *band); CCS_Report::CCSTableGroup * MapToTableGroup(TableGroup* item); CCS_Report::CCSTableDynamic* MapToDynamicTable(TableDynamic *item); void MapToSubDynamicTable(TableDynamic* table, CCS_Report::CCSTableDynamic* ccstabledynamic); /* *从用户定义的表映射到CCSTable中 */ CCS_Report::CCSTableFix* MapToTable(Table* item); CCSCell* MapToCell(Cell * item); CCSParagraph* MapToParagraph(Paragraph* item); CCSText* MapToText(Text* item); CCSImage* MapToImage(Image* item); }; } #endif // CCSREPORTADAPTER_H