|
@@ -4,6 +4,7 @@
|
|
|
|
|
|
#include <dbService/ClassSet.h>
|
|
#include <dbService/ClassSet.h>
|
|
#include <dbService/SchemeInfoService.h>
|
|
#include <dbService/SchemeInfoService.h>
|
|
|
|
+#include <dbService/CNodeDataService.h>
|
|
|
|
|
|
#include <QWord/QWord.h>
|
|
#include <QWord/QWord.h>
|
|
#include <QWord/QWordDemo.h>
|
|
#include <QWord/QWordDemo.h>
|
|
@@ -167,18 +168,55 @@ void ExportReportManager::insertSchemeIndex()
|
|
insertText("bmProjName31", m_proj->projectName);
|
|
insertText("bmProjName31", m_proj->projectName);
|
|
insertText("bmProjName32", m_proj->projectName);
|
|
insertText("bmProjName32", m_proj->projectName);
|
|
|
|
|
|
|
|
+ QList<CNodeData> nodeList;
|
|
|
|
+ bool ret = CNodeDataService().QueryAllValid(nodeList, m_proj->id, 4);
|
|
|
|
+ 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
|
|
// bmIndexTable
|
|
- QAxObject *table = insertTable("bmIndexTable", 15, 5);
|
|
|
|
|
|
+ QAxObject *table = insertTable("bmIndexTable", rowCount, columnCount);
|
|
if (table == nullptr) {
|
|
if (table == nullptr) {
|
|
return;
|
|
return;
|
|
}
|
|
}
|
|
|
|
|
|
- m_word->setFontName(QString::fromLocal8Bit("仿宋_GB2312"));
|
|
|
|
- m_word->setFontSize(9);
|
|
|
|
- m_word->setParagraphAlignment(0);
|
|
|
|
- setCellString(table, 1, 1, "index");
|
|
|
|
- mergeCells(table, 1, 1, 2, 2);
|
|
|
|
- setCellString(table, 3, 1, "index2");
|
|
|
|
|
|
+ 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;
|
|
}
|
|
}
|
|
|
|
|
|
void ExportReportManager::insertSchemeData()
|
|
void ExportReportManager::insertSchemeData()
|