123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211 |
- #ifndef EXPORTREPORTMANAGER_H
- # define EXPORTREPORTMANAGER_H
- # include <QObject>
- class ProjectInfo;
- class QWord;
- class QAxObject;
- class ExportReportManager : public QObject
- {
- Q_OBJECT
- public:
- explicit ExportReportManager(QObject *parent = nullptr);
- ~ExportReportManager();
- ProjectInfo *proj() const;
- void setProj(ProjectInfo *proj);
- int evalType() const;
- void setEvalType(int type);
- bool exportReport();
- private:
- // 初始化 word
- bool createWord();
- // 插入不同评估类型下共同的信息
- void insertProjectInfo();
- // 需求分析算法
- void insertDemandAlg();
- // 需求分析指标体系
- void insertDemandIndex();
- // 需求分析技术指标
- void insertDemandTechIndex();
- // 需求分析权重
- void insertDemandWeight();
- // 需求分析技术重要度
- void insertDemandEval();
- // 填充方案评估方案设计信息
- void insertSchemeDesignInfo();
- // 填充方案评估指标信息
- void insertSchemeIndex();
- // 填充方案数据
- void insertSchemeData();
- // 填充方案优选算法信息
- void insertSchemeAlgInfo();
- // 填充方案评估权重数据
- void insertSchemeWeightData();
- // 插入效能评估指标体系
- void insertEffiIndex();
- // 填充方案算法信息
- void insertEffiAlgInfo();
- // 插入效能评估配置数据
- void insertEffiConfigData();
- // 插入效能评估采集数据
- void insertEffiSchemeData();
- // 填充效能评估权重数据
- void insertEffiWeightData();
- // 填充效能评估结果
- void insertEffiResult();
- // 在一个书签位置插入文字
- bool insertText(const QString &bookmark, const QString &text);
- // 在一个标签位置插入表格
- QAxObject *insertTable(QString bookmark, int row, int column);
- void setCellString(QAxObject *table, int row, int column, const QString &text);
- void mergeCells(QAxObject *table, int row, int column, int rowSpan, int columnSpan);
- QString saveImage(const QString &name, const QPixmap &pixmap);
- signals:
- private:
- ProjectInfo *m_proj = nullptr; // 项目
- int m_evalType = 0; // 报告评估类型
- int m_schemeType = 0; // 0:方案评估, 1:物元分析, 2:灰色聚类
- QWord *m_word = nullptr;
- };
- #endif // EXPORTREPORTMANAGER_H
- /**
- * 需求分析评估报告标签名称
- *
- * 封面
- * 项目名称:bmProjName,单位:bmProjUnit,时间:bmProjDate
- *
- * 评估目的
- * 评估目的:bmEvalPurpose
- *
- * 评估指标管理
- * 描述项目名称:bmProjName21
- * 表格项目名称:bmProjName22
- * 表格:bmIndexTable
- * 图片:bmIndexPic
- *
- * 技术措施梳理
- * 描述项目名称:bmProjName21
- * 表格项目名称:bmProjName32
- * 表格:bmTechTable
- * 图片:bmTechPic
- *
- * 计算
- * 权重算法:bmWeightAlg,指标权重表:bmWeightTable,指标权重图:bmWeightPic
- * 评估算法:bmEvalAlg,评估结果表:bmEvalTable,评估结果图:bmEvalPic
- * 权重算法描述:bmWeightAlgDscpt,评估算法描述:bmEvalAlgDscpt
- *
- * 主要评估结论
- * bmVITech1, bmVITech2
- *
- * 评估结论:bmSchemeConclusion
- *
- *
- * 2023-12-15 by chengxr
- */
- /**
- * 方案优选评估报告标签名称
- *
- * 封面
- * 项目名称:bmProjName,单位:bmProjUnit,时间:bmProjDate
- *
- * 评估目的
- * 评估目的:bmEvalPurpose
- *
- * 方案设计
- * 方案描述:bmSchemes
- *
- * 评估指标管理
- * 描述项目名称:bmProjName31
- * 表格项目名称:bmProjName32
- * 表格:bmIndexTable
- *
- * 方案数据设置
- * 表格项目名称:bmProjName41
- * 表格:bmSchemeDataTable
- *
- * 计算
- * 权重算法:bmWeightAlg,指标权重表:bmWeightTable,指标权重图:bmWeightPic
- * 评估算法:bmEvalAlg,评估结果表:bmEvalTable,评估结果图:bmEvalPic
- *
- * 评估结论:bmSchemeConclusion
- *
- * 2023-12-13 by chengxr
- */
- /**
- * 效能评估报告标签名称
- *
- * 封面
- * 项目名称:bmProjName,单位:bmProjUnit,时间:bmProjDate
- *
- * 评估目的
- * 评估目的:bmEvalPurpose
- *
- * 指标体系
- * 描述项目名称:bmProjName21
- * 表格项目名称:bmProjName22
- * 表格:bmIndexTable
- *
- * 评估矩阵设置
- * 描述项目名称:bmProjName31
- * 表格项目名称:bmProjName32
- * 表格:bmConfigTable
- * 图片:bmEvalPic
- *
- * 评估数据采集
- * 表格:bmEffiDataTable
- *
- * 计算
- * 权重算法:bmWeightAlg,指标权重表:bmWeightTable,指标权重图:bmWeightPic
- * 评估算法:bmEvalAlg,评估结果表:bmEvalTable,评估结果图:bmEvalPic
- *
- * 评估结论:bmEffiConclusion
- *
- * 2023-12-14 by chengxr
- */
- /**
- 【中文字号】 【英文字号】 【毫米】 【像素】
- 1英寸 72pt 25.30mm 95.6px
- 大特号 63pt 22.14mm 83.7px
- 特号 54pt 18.97mm 71.7px
- 初号 42pt 14.82mm 56px
- 小初 36pt 12.70mm 48px
- 一号 26pt 9.17mm 34.7px
- 小一 24pt 8.47mm 32px
- 二号 22pt 7.76mm 29.3px
- 小二 18pt 6.35mm 24px
- 三号 16pt 5.64mm 21.3px
- 小三 15pt 5.29mm 20px
- 四号 14pt 4.94mm 18.7px
- 小四 12pt 4.23mm 16px
- 五号 10.5pt 3.70mm 14px
- 小五 9pt 3.18mm 12px
- 六号 7.5pt 2.56mm 10px
- 小六 6.5pt 2.29mm 8.7px
- 七号 5.5pt 1.94mm 7.3px
- 八号 5pt 1.76mm 6.7px
- * 2023-12-12 by chengxr
- */
|