|
@@ -1,5 +1,7 @@
|
|
|
#include "DataTableWidget.h"
|
|
|
|
|
|
+#include "DataTableItemDelegate.h"
|
|
|
+
|
|
|
#include "ProjectManager.h"
|
|
|
#include <dbService/CNodeDataService.h>
|
|
|
#include <dbService/ClassSet.h>
|
|
@@ -26,6 +28,8 @@ DataTableWidget::DataTableWidget(SchemePlanManager::SchemeProcessInfo process, Q
|
|
|
initWidget();
|
|
|
initLayout();
|
|
|
connectSignalsAndSlots();
|
|
|
+
|
|
|
+ m_comboDelegate = new DataTableComboDelegate(this);
|
|
|
}
|
|
|
|
|
|
SchemePlanManager::SchemeProcessInfo DataTableWidget::process() const
|
|
@@ -118,11 +122,11 @@ void DataTableWidget::updateCurrentTable()
|
|
|
QStandardItemModel *model = (QStandardItemModel *)table->model();
|
|
|
|
|
|
/// 设置顶部水平方向标题
|
|
|
- int hIndex = 0;
|
|
|
+ int hIndex = -1;
|
|
|
// 导入评估数据时, 增加一列指标权重
|
|
|
if (m_process.type == SchemePlanManager::ImportEvalData) {
|
|
|
QStandardItem *item = new QStandardItem("指标权重");
|
|
|
- model->setHorizontalHeaderItem(hIndex++, item);
|
|
|
+ model->setHorizontalHeaderItem(++hIndex, item);
|
|
|
}
|
|
|
// 指标
|
|
|
CNodeData n = m_mind1->nodesInLevel(m_currentPage)[c];
|
|
@@ -134,20 +138,25 @@ void DataTableWidget::updateCurrentTable()
|
|
|
for (CNodeData node : hList) {
|
|
|
QStandardItem *item = new QStandardItem(node.name);
|
|
|
item->setToolTip(node.remark);
|
|
|
- model->setHorizontalHeaderItem(hIndex++, item);
|
|
|
+ model->setHorizontalHeaderItem(++hIndex, item);
|
|
|
}
|
|
|
}
|
|
|
// 导入方案优选评估或效能评估的评估数据时, 需要显示量纲
|
|
|
+ int dimensionIndex = -1;
|
|
|
if (m_process.type == SchemePlanManager::ImportEvalData
|
|
|
&& (m_process.indexType == ProjectManager::OptimalIndex
|
|
|
|| m_process.indexType == ProjectManager::EfficiencyIndex)) {
|
|
|
QStandardItem *item = new QStandardItem("指标量纲");
|
|
|
- model->setHorizontalHeaderItem(hIndex++, item);
|
|
|
+ model->setHorizontalHeaderItem(++hIndex, item);
|
|
|
+ dimensionIndex = hIndex;
|
|
|
}
|
|
|
// 导入方案优选评估的评估数据时, 需要显示指标类型
|
|
|
+
|
|
|
+ int typeIndex = -1;
|
|
|
if (m_process.type == SchemePlanManager::ImportEvalData && m_process.indexType == ProjectManager::OptimalIndex) {
|
|
|
QStandardItem *item = new QStandardItem("指标类型");
|
|
|
- model->setHorizontalHeaderItem(hIndex++, item);
|
|
|
+ model->setHorizontalHeaderItem(++hIndex, item);
|
|
|
+ typeIndex = hIndex;
|
|
|
}
|
|
|
|
|
|
/// 设置左侧垂直方向标题
|
|
@@ -172,25 +181,37 @@ void DataTableWidget::updateCurrentTable()
|
|
|
table->setRowHeight(i, 35);
|
|
|
}
|
|
|
|
|
|
- return;
|
|
|
-
|
|
|
/// 填充单元格
|
|
|
for (int i = 0; i < vList.count(); i++) {
|
|
|
- for (int j = 0; j < hList.count(); j++) {
|
|
|
- QStandardItem *item = new QStandardItem();
|
|
|
- item->setEditable(false);
|
|
|
- if (m_mind2->nodeList().count() <= 0) {
|
|
|
- if (i == j) {
|
|
|
- item->setText("1"); // 对角线
|
|
|
- }
|
|
|
- if (i >= j) {
|
|
|
- item->setBackground(QBrush(QColor("lightgray"))); // 左下方
|
|
|
- }
|
|
|
- }
|
|
|
- item->setData(Qt::AlignCenter, Qt::TextAlignmentRole); // 单元格文字居中
|
|
|
- model->setItem(i, j, item);
|
|
|
+ CNodeData node = vList[i];
|
|
|
+ QStandardItem *d = new QStandardItem();
|
|
|
+ d->setEditable(false);
|
|
|
+ d->setData(Qt::AlignCenter, Qt::TextAlignmentRole); // 单元格文字居中
|
|
|
+ if (dimensionIndex >= 0) {
|
|
|
+ d->setText(node.dimension);
|
|
|
+ model->setItem(i, dimensionIndex, d);
|
|
|
}
|
|
|
|
|
|
+ if (typeIndex >= 0) {
|
|
|
+ model->setItem(i, typeIndex, d);
|
|
|
+ table->setItemDelegateForColumn(typeIndex, m_comboDelegate);
|
|
|
+ }
|
|
|
+
|
|
|
+ // for (int j = 0; j < hList.count(); j++) {
|
|
|
+ // QStandardItem *item = new QStandardItem();
|
|
|
+ // item->setEditable(false);
|
|
|
+ // if (m_mind2->nodeList().count() <= 0) {
|
|
|
+ // if (i == j) {
|
|
|
+ // item->setText("1"); // 对角线
|
|
|
+ // }
|
|
|
+ // if (i >= j) {
|
|
|
+ // item->setBackground(QBrush(QColor("lightgray"))); // 左下方
|
|
|
+ // }
|
|
|
+ // }
|
|
|
+ // item->setData(Qt::AlignCenter, Qt::TextAlignmentRole); // 单元格文字居中
|
|
|
+ // model->setItem(i, j, item);
|
|
|
+ // }
|
|
|
+
|
|
|
table->setRowHeight(i, 35);
|
|
|
}
|
|
|
}
|