|
@@ -69,6 +69,10 @@ bool ExportReportManager::exportReport()
|
|
|
insertSchemeWeightData();
|
|
|
}
|
|
|
|
|
|
+ if (m_evalType == ProjectManager::EfficiencyEval) {
|
|
|
+ insertEffiIndex();
|
|
|
+ }
|
|
|
+
|
|
|
m_word->setVisible(true);
|
|
|
QAxObject *doc = m_word->getWordApp()->querySubObject("ActiveDocument");
|
|
|
doc->dynamicCall("SaveAs(const QString&))", QDir::toNativeSeparators(m_word->getFilePath()));
|
|
@@ -193,6 +197,7 @@ void ExportReportManager::insertSchemeIndex()
|
|
|
// bmIndexTable
|
|
|
QAxObject *table = insertTable("bmIndexTable", rowCount, columnCount);
|
|
|
if (table == nullptr) {
|
|
|
+ delete mind;
|
|
|
return;
|
|
|
}
|
|
|
|
|
@@ -480,6 +485,63 @@ void ExportReportManager::insertSchemeWeightData()
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+void ExportReportManager::insertEffiIndex()
|
|
|
+{
|
|
|
+ insertText("bmProjName21", m_proj->projectName);
|
|
|
+ insertText("bmProjName22", m_proj->projectName);
|
|
|
+
|
|
|
+ QList<CNodeData> nodeList;
|
|
|
+ bool ret = CNodeDataService().QueryAllValid(nodeList, m_proj->id, 8);
|
|
|
+ if (ret == false) {
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
+ CMind *mind = new CMind();
|
|
|
+ mind->setNodeList(nodeList);
|
|
|
+
|
|
|
+ QList<CNodeData> leaveNodes = mind->leaves();
|
|
|
+ int rowCount = leaveNodes.size() + 1;
|
|
|
+ int columnCount = mind->levels();
|
|
|
+
|
|
|
+ // bmIndexTable
|
|
|
+ QAxObject *table = insertTable("bmIndexTable", rowCount, columnCount);
|
|
|
+ if (table == nullptr) {
|
|
|
+ delete mind;
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
+ for (int i = 2; i <= mind->levels(); ++i) {
|
|
|
+ if (i < mind->levels()) {
|
|
|
+ setCellString(table, 1, i - 1, QString("%1级指标\n(能力项)").arg(i - 1));
|
|
|
+ } else {
|
|
|
+ setCellString(table, 1, i - 1, QString("指标"));
|
|
|
+ setCellString(table, 1, i, QString("量纲"));
|
|
|
+ }
|
|
|
+
|
|
|
+ QList<CNodeData> nodes = mind->nodesInLevel(i);
|
|
|
+ int rowPos = 2;
|
|
|
+ for (int j = 0; j < nodes.size(); ++j) {
|
|
|
+ CNodeData node = nodes[j];
|
|
|
+ int leaves = mind->leavesCountOfNode(node);
|
|
|
+ int textPos = (rowPos + leaves / 2);
|
|
|
+ setCellString(table, textPos, i - 1, node.name);
|
|
|
+
|
|
|
+ if (leaves > 1) {
|
|
|
+ mergeCells(table, rowPos, i - 1, leaves, 1);
|
|
|
+ }
|
|
|
+
|
|
|
+ rowPos += leaves;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ for (int i = 0; i < leaveNodes.size(); ++i) {
|
|
|
+ CNodeData node = leaveNodes[i];
|
|
|
+ setCellString(table, i + 2, columnCount, node.dimension);
|
|
|
+ }
|
|
|
+
|
|
|
+ delete mind;
|
|
|
+}
|
|
|
+
|
|
|
bool ExportReportManager::insertText(const QString &bookmark, const QString &text)
|
|
|
{
|
|
|
bool ret = false;
|