Browse Source

录入数据的开闭区间;
灰类评估数据页面显示开闭区间;
修复编辑灰类级别名称后切换到评估数据页面后仍显示旧名称的问题.

chengxr 1 year ago
parent
commit
cd584af770
2 changed files with 30 additions and 21 deletions
  1. 5 2
      QFD/widgets/EvalReportWidget.cpp
  2. 25 19
      QFD/widgets/GreyClusteringSampleTable.cpp

+ 5 - 2
QFD/widgets/EvalReportWidget.cpp

@@ -587,8 +587,11 @@ void EvalReportWidget::showEffiResult()
             for (int c = 0; c < model->columnCount(); ++c) {
                 QStandardItem *vHeader = model->verticalHeaderItem(r);
                 QStandardItem *item    = new QStandardItem();
-                QString text           = QString("%1").arg(effData[effData.keys()[i]][vHeader->text()][c]);
-                item->setText(text);
+                if (effData.keys().size() > i && effData[effData.keys()[i]][vHeader->text()].size() > c) {
+                    QString text = QString("%1").arg(effData[effData.keys()[i]][vHeader->text()][c]);
+                    item->setText(text);
+                }
+
                 item->setEditable(false);
                 model->setItem(r, c, item);
             }

+ 25 - 19
QFD/widgets/GreyClusteringSampleTable.cpp

@@ -184,11 +184,15 @@ void GreyClusteringSampleTable::refreshTableView()
 
     // 设置表头
     {
-        if (m_tableHeaderInitialized == false) {
-            m_tableHeaderInitialized = true;
+        //        if (m_tableHeaderInitialized == false) {
+        //            m_tableHeaderInitialized = true;
 
-            auto hHeader = new MultiLevelHeaderView(Qt::Horizontal, 2, colCount, this);
+        MultiLevelHeaderView *hHeader = dynamic_cast<MultiLevelHeaderView *>(horizontalHeader());
+
+        if (hHeader == nullptr) {
+            hHeader = new MultiLevelHeaderView(Qt::Horizontal, 2, colCount, this);
             hHeader->setSectionResizeMode(QHeaderView::Stretch);
+            this->setHorizontalHeader(hHeader);
 
             hHeader->setCellSpan(0, 0, 2, m_nodeDepth);       // 指标占位
             for (int n = 0; n < 2 + greyNames.size(); ++n) {  //  单位+权重+灰度级占位
@@ -201,24 +205,24 @@ void GreyClusteringSampleTable::refreshTableView()
             hHeader->setCellSpan(0, m_nodeDepth + 4 + greyNames.size(), 1, 2);  // 实现值占位
             hHeader->setCellSpan(1, m_nodeDepth + 4 + greyNames.size(), 1, 1);
             hHeader->setCellSpan(1, m_nodeDepth + 4 + greyNames.size() + 1, 1, 1);
+        }
 
-            // 一级
-            hHeader->setCellText(0, 0, QString("指标"));
-            hHeader->setCellText(0, m_nodeDepth, QString("单位"));
-            hHeader->setCellText(0, m_nodeDepth + 1, QString("权重"));
-            for (int i = 0; i < greyNames.size(); ++i) {
-                hHeader->setCellText(0, m_nodeDepth + 2 + i, greyNames.at(i));
-            }
-            hHeader->setCellText(0, m_nodeDepth + 2 + greyNames.size(), QString("延拓值"));
-            hHeader->setCellText(0, m_nodeDepth + 4 + greyNames.size(), QString("实现值"));
-            // 二级
-            hHeader->setCellText(1, m_nodeDepth + 2 + greyNames.size(), "左");
-            hHeader->setCellText(1, m_nodeDepth + 3 + greyNames.size(), "右");
-            hHeader->setCellText(1, m_nodeDepth + 4 + greyNames.size(), "建设前");
-            hHeader->setCellText(1, m_nodeDepth + 5 + greyNames.size(), "建设后");
-
-            this->setHorizontalHeader(hHeader);
+        // 一级
+        hHeader->setCellText(0, 0, QString("指标"));
+        hHeader->setCellText(0, m_nodeDepth, QString("单位"));
+        hHeader->setCellText(0, m_nodeDepth + 1, QString("权重"));
+        for (int i = 0; i < greyNames.size(); ++i) {
+            hHeader->setCellText(0, m_nodeDepth + 2 + i, greyNames.at(i));
         }
+        hHeader->setCellText(0, m_nodeDepth + 2 + greyNames.size(), QString("延拓值"));
+        hHeader->setCellText(0, m_nodeDepth + 4 + greyNames.size(), QString("实现值"));
+        // 二级
+        hHeader->setCellText(1, m_nodeDepth + 2 + greyNames.size(), "左");
+        hHeader->setCellText(1, m_nodeDepth + 3 + greyNames.size(), "右");
+        hHeader->setCellText(1, m_nodeDepth + 4 + greyNames.size(), "建设前");
+        hHeader->setCellText(1, m_nodeDepth + 5 + greyNames.size(), "建设后");
+
+        //        }
     }
 
     m_model->setColumnCount(colCount);
@@ -617,7 +621,9 @@ void GreyClusteringSampleTable::initClusteringItems()
                         //[0:0]
                         QStringList lr = valueList.at(str).mid(1, valueList.at(str).size() - 2).split(":");
                         item.value->greyRanges[str].leftValue  = lr.at(0).toDouble();
+                        item.value->greyRanges[str].leftClose  = valueList.at(str)[0] == "[";
                         item.value->greyRanges[str].rightValue = lr.at(1).toDouble();
+                        item.value->greyRanges[str].rightClose = valueList.at(str).right(1) == "]";
                     }
                 }
             }