From 0e5bcdb2d4d2e87e3624f14e5cc58a1d03de99fc Mon Sep 17 00:00:00 2001
From: wumu <mayi@mayi.com>
Date: 星期二, 14 五月 2024 23:06:42 +0800
Subject: [PATCH] 0514

---
 internal_system_v1/converinfo2.cpp |  127 ++++++++++++++++++++++++++++++------------
 1 files changed, 90 insertions(+), 37 deletions(-)

diff --git a/internal_system_v1/converinfo2.cpp b/internal_system_v1/converinfo2.cpp
index a51a114..7e3f124 100644
--- a/internal_system_v1/converinfo2.cpp
+++ b/internal_system_v1/converinfo2.cpp
@@ -102,6 +102,12 @@
 {
     QString name = index.model()->data(index).toString();
     qDebug()<<"鍙屽嚮"<<index<<name;
+    if(name.contains("(鏈骇)")){
+        QStringList sps = name.split("(鏈骇)");
+        name = sps.at(0);
+    }else if(name.contains("(姹囨��)")){
+        name = name.split("(姹囨��)").at(0);
+    }
     ComInfo curCominfo = m_nameAndComInfos[name];
     // 涓�銆佸崟浣嶅熀鏈儏鍐�
     ui->lineEdit_creditCode->setText(curCominfo.creditCode);
@@ -268,8 +274,8 @@
                 QVariant name = valRows[9].toList().at(8);
                 if(name.isValid()){
                     ui->label_name->setText(name.toString());
-                    QTreeWidgetItem *top1 = new QTreeWidgetItem(ui->treeWidget);
-                    top1->setText(0,name.toString());
+                    //QTreeWidgetItem *top1 = new QTreeWidgetItem(ui->treeWidget);
+                    //top1->setText(0,name.toString());
                     strcpy(curComInfo.name,name.toString().toLocal8Bit().data());
 
                 }else{
@@ -686,13 +692,30 @@
                 // 鏈�鍚庡瓨鍒癿ap涓�
                 m_nameAndComInfos[name.toString()]=curComInfo;
 
+                // 娣诲姞鏍戝舰鍒楄〃鑺傜偣
+                //addTreeWidgetNode(upName,name);
+
+                if(upName.isValid()){
+                    if(name.isValid()){
+                        m_treeNodes[upName.toString()].push_back(name.toString());
+                    }
+                }else{
+                    if(name.isValid()){
+                        m_treeNodes[name.toString()].push_back(name.toString());
+                    }
+                }
+
             }
             wbs->dynamicCall("Close()");
             excel.dynamicCall("Quit(void)");
 
+
+
             qDebug()<<"鍗曚綅淇℃伅鏁伴噺锛�"<<m_nameAndComInfos.size();
         }
     }
+
+    createTreeNode(); // 鏋勫缓鏍戝舰鑺傜偣
 
 
 //    QAxObject excel("./debug/Data/闄勪欢2_鍐呭缁�01琛╛鍗曚綅鍙婂唴閮ㄥ璁℃満鏋勫熀鏈儏鍐佃〃-1.301鐗�(1).xls");
@@ -1484,42 +1507,17 @@
 
         // 娣诲姞宸﹁竟鏍戝舰鍥剧浉鍏�
         // 鑿滃崟鐩稿叧  褰撲笂绾у叕鍙镐负绌轰笂绾ф椂锛岃嚜宸卞綋鑷繁鐨勪笂绾э紝骞朵笖缃楀垪杩涘幓褰� 鏈骇
+        addTreeWidgetNode(upName,name);
 
-        if(upName.isValid()) // 鏈夋晥
-        {
-            // 鍒ゆ柇椤跺眰鏍戣妭鐐规槸鍚﹀凡缁忓瓨鍦�
-            QTreeWidgetItem *top = nullptr;
-            for(int k=0;k<ui->treeWidget->topLevelItemCount();++k){
-                QTreeWidgetItem *tmp = ui->treeWidget->topLevelItem(k);
-                qDebug()<<k<<tmp->text(0)<<upName.toString();
-                if(upName.toString()+"(姹囨��)" == tmp->text(0)){
-                    top = tmp;
-                    break;
-                }
-            }
-            if(name.isValid()){
-                if(top){ // 瀛樺湪锛屽垯娣诲姞鍒板瀛愬垪琛ㄤ腑
-                    QTreeWidgetItem *top1 = new QTreeWidgetItem(top);
-                    top1->setText(0,name.toString());
-                }else{ // 涓嶅瓨鍦紝鍒欐柊寤轰竴涓垪琛�
-                    QTreeWidgetItem *top1 = new QTreeWidgetItem(ui->treeWidget);
-                    top1->setText(0,name.toString()+"(姹囨��)");
-                    QTreeWidgetItem *top2 = new QTreeWidgetItem(top1);
-                    top2->setText(0,name.toString()+"(鏈骇)");
-                }
-            }
-
-
-        }else{
-            qDebug()<<"娌″彂鐜颁笂涓�绾э紝鍙兘鑷繁褰�"<<name;
-            if(name.isValid()){
-                QTreeWidgetItem *top1 = new QTreeWidgetItem(ui->treeWidget);
-                top1->setText(0,name.toString()+"(姹囨��)");
-                QTreeWidgetItem *top2 = new QTreeWidgetItem(top1);
-                top2->setText(0,name.toString()+"(鏈骇)");
-            }
-
-        }
+//        if(upName.isValid()){
+//            if(name.isValid()){
+//                m_treeNodes[upName.toString()].push_back(name.toString());
+//            }
+//        }else{
+//            if(name.isValid()){
+//                m_treeNodes[name.toString()].push_back(name.toString());
+//            }
+//        }
 
 
     }
@@ -1529,6 +1527,61 @@
     qDebug()<<"鍗曚綅淇℃伅鏁伴噺锛�"<<m_nameAndComInfos.size();
 }
 
+void ConverInfo2::createTreeNode(){
+    qDebug()<<"鏋勫缓鏍戝舰鍒楄〃"<<m_treeNodes.size();
+    for(auto iter=m_treeNodes.begin();iter != m_treeNodes.end();iter++)
+    {
+        // 鍏堟瀯寤轰竴涓瘡绾х殑鐖惰妭鐐�
+        addTreeWidgetNode(iter.key(),iter.key());
+        // 鍐嶆坊鍔犲瀛愯妭鐐�
+        for(QString node:iter.value()){
+            qDebug()<<iter.key()<<node;
+            if(iter.key() != node){
+                addTreeWidgetNode(iter.key(),node);
+            }
+        }
+    }
+}
+void ConverInfo2::addTreeWidgetNode(QVariant upName,QVariant name){
+    // 娣诲姞宸﹁竟鏍戝舰鍥剧浉鍏�
+    // 鑿滃崟鐩稿叧  褰撲笂绾у叕鍙镐负绌轰笂绾ф椂锛岃嚜宸卞綋鑷繁鐨勪笂绾э紝骞朵笖缃楀垪杩涘幓褰� 鏈骇
+
+    if(upName.isValid()) // 鏈夋晥
+    {
+        // 鍒ゆ柇椤跺眰鏍戣妭鐐规槸鍚﹀凡缁忓瓨鍦�
+        QTreeWidgetItem *top = nullptr;
+        for(int k=0;k<ui->treeWidget->topLevelItemCount();++k){
+            QTreeWidgetItem *tmp = ui->treeWidget->topLevelItem(k);
+            qDebug()<<k<<tmp->text(0)<<upName.toString();
+            if(upName.toString()+"(姹囨��)" == tmp->text(0)){
+                top = tmp;
+                break;
+            }
+        }
+        if(name.isValid()){
+            if(top){ // 瀛樺湪锛屽垯娣诲姞鍒板瀛愬垪琛ㄤ腑
+                QTreeWidgetItem *top1 = new QTreeWidgetItem(top);
+                top1->setText(0,name.toString());
+            }else{ // 涓嶅瓨鍦紝鍒欐柊寤轰竴涓垪琛�
+                QTreeWidgetItem *top1 = new QTreeWidgetItem(ui->treeWidget);
+                top1->setText(0,name.toString()+"(姹囨��)");
+                QTreeWidgetItem *top2 = new QTreeWidgetItem(top1);
+                top2->setText(0,name.toString()+"(鏈骇)");
+            }
+        }
+
+
+    }else{
+        qDebug()<<"娌″彂鐜颁笂涓�绾э紝鍙兘鑷繁褰�"<<name;
+        if(name.isValid()){
+            QTreeWidgetItem *top1 = new QTreeWidgetItem(ui->treeWidget);
+            top1->setText(0,name.toString()+"(姹囨��)");
+            QTreeWidgetItem *top2 = new QTreeWidgetItem(top1);
+            top2->setText(0,name.toString()+"(鏈骇)");
+        }
+
+    }
+}
 void ConverInfo2::on_pushButton_laodFile_clicked()
 {
     QString path = QFileDialog::getOpenFileName(this,"閫夋嫨琛ㄦ牸:鍗曚綅鍙婂唴閮ㄥ璁℃満鏋勫熀鏈儏鍐佃〃","./","excel(*鍩烘湰鎯呭喌琛�*.xls)");

--
Gitblit v1.8.0