From 3742570d134bf007c454413fc834e15b4f8843e8 Mon Sep 17 00:00:00 2001
From: wumu <mayi@mayi.com>
Date: 星期五, 15 十一月 2024 23:17:24 +0800
Subject: [PATCH] 1115

---
 internal_system_v1/converinfo2.cpp |  189 +++++++++++++++++++++++++++++++++++++++++------
 1 files changed, 165 insertions(+), 24 deletions(-)

diff --git a/internal_system_v1/converinfo2.cpp b/internal_system_v1/converinfo2.cpp
index b9930c3..c19c391 100644
--- a/internal_system_v1/converinfo2.cpp
+++ b/internal_system_v1/converinfo2.cpp
@@ -17,6 +17,7 @@
     //initUi();
     //readInfo(); // 鍔犺浇琛ㄦ牸
     addMenu(); // 澧炲姞鑿滃崟
+    disableWheelEvent(); // 绂佺敤涓嬫媺妗嗙殑婊氳疆浜嬩欢
 
     // 鑷�傚簲澶勭悊
     ui->treeWidget->header()->setSectionResizeMode(QHeaderView::ResizeToContents);
@@ -63,12 +64,14 @@
     m_menu = new QMenu(this);
     m_menu->addAction("鍒犻櫎");
     m_menu->addAction("澧炲姞");
+    m_menu->addAction("淇濆瓨瀵煎嚭");
 
     ui->treeWidget->setContextMenuPolicy(Qt::CustomContextMenu);
     connect(ui->treeWidget,SIGNAL(customContextMenuRequested(QPoint)),this,SLOT(showMenu(QPoint)));
 
     connect(m_menu->actions().at(0),SIGNAL(triggered(bool)),this,SLOT(deleteInfo()));
     connect(m_menu->actions().at(1),SIGNAL(triggered(bool)),this,SLOT(addInfo()));
+    connect(m_menu->actions().at(2),SIGNAL(triggered(bool)),this,SLOT(saveInfo()));
             // 鍗曚綅鍐呭淇敼
 
     // 鍙宠竟鍙紪杈戝唴瀹�
@@ -102,17 +105,80 @@
     qDebug()<<"鍒犻櫎鏁伴噺:"<<resList.size();
 }
 
+void ConverInfo2::saveInfo()
+{
+    if(m_curItem==nullptr)return;
+    qDebug()<<"淇濆瓨鍏徃淇℃伅,鑺傜偣锛�"<<m_curItem->text(0);
+    QString name = m_curItem->text(0);
+    if(name.contains("(鏈骇)")){
+        name = name.split("(鏈骇)").at(0);
+    }else if(name.contains("(姹囨��)")){
+        name = name.split("(姹囨��)").at(0);
+        name = name + "(姹囨��)";
+    }
+    qDebug()<<"淇濆瓨鍏徃鍚�:"<<name;
+    ComInfo cif = m_nameAndComInfos[name];
+    ExportToFile etf(this);
+    etf.saveToExcelFromComInfo(cif);
+
+}
+
 void ConverInfo2::on_treeWidget_doubleClicked(const QModelIndex &index)
 {
     QString name = index.model()->data(index).toString();
     qDebug()<<"鍙屽嚮"<<index<<name;
+
+    ComInfo curCominfo; // 涓嶈鐩存帴缁欏�硷紝鍙兘浼氬鑷村娣诲姞鏂扮殑鍚嶅瓧杩涙潵
     if(name.contains("(鏈骇)")){
         QStringList sps = name.split("(鏈骇)");
         name = sps.at(0);
+        curCominfo = m_nameAndComInfos[name];
     }else if(name.contains("(姹囨��)")){
         name = name.split("(姹囨��)").at(0);
+        qDebug()<<"姹囨�诲鐞�:";
+        // 鍋氫竴涓眹鎬荤殑澶勭悊锛屾妸鎵�鏈変笅绾х殑閮界疮鍔犺捣鏉�
+        ComInfo allCominfo = m_nameAndComInfos[name];
+        for(QString cur:m_treeNodes[name]){
+            if(name != cur){
+                ComInfo &tmp = m_nameAndComInfos[cur];
+                allCominfo.organazationNum += tmp.organazationNum;
+                allCominfo.realNum += tmp.realNum;
+                allCominfo.professionalNum += tmp.professionalNum;
+                allCominfo.CIANum += tmp.CIANum;
+                allCominfo.masterNum += tmp.masterNum;
+                allCominfo.undergraduatesNum += tmp.undergraduatesNum;
+                allCominfo.juniorNum += tmp.juniorNum;
+                allCominfo.seniorNum += tmp.seniorNum;
+                allCominfo.intermediateNum += tmp.intermediateNum;
+                allCominfo.primaryNum += tmp.primaryNum;
+                allCominfo.noTitleNum += tmp.noTitleNum;
+                allCominfo.upFiftyOldNum += tmp.upFiftyOldNum;
+                allCominfo.upThirtyOldNum += tmp.upThirtyOldNum;
+                allCominfo.downThirtyOldNum += tmp.downThirtyOldNum;
+                allCominfo.auditNum += tmp.auditNum;
+                allCominfo.accountingNum += tmp.accountingNum;
+                allCominfo.economyNum += tmp.economyNum;
+                allCominfo.lawNum += tmp.lawNum;
+                allCominfo.managerNum += tmp.managerNum;
+                allCominfo.itNum += tmp.itNum;
+                allCominfo.engineeringNum += tmp.engineeringNum;
+                allCominfo.otherNum += tmp.otherNum;
+            }
+
+        }
+        curCominfo = allCominfo;
+        // 澶勭悊瀹屼簡涔嬪悗锛岃繕闇�瑕佸崟鐙捣涓�涓眹鎬荤殑鍚嶅瓧
+        name = name + "(姹囨��)";
+        strcpy(curCominfo.name,name.toLocal8Bit().data());
+        m_nameAndComInfos[name] = curCominfo;
+
+        // 鍒锋柊缁勫悎涓嬫媺妗嗙殑鍒楄〃
+        emit updateComboListSignal(m_nameAndComInfos);
+
+    }else{
+        curCominfo = m_nameAndComInfos[name];
     }
-    ComInfo curCominfo = m_nameAndComInfos[name];
+    //ComInfo curCominfo = m_nameAndComInfos[name];
     // 涓�銆佸崟浣嶅熀鏈儏鍐�
     ui->lineEdit_creditCode->setText(curCominfo.creditCode);
     ui->lineEdit_name->setText(QString::fromLocal8Bit( curCominfo.name));
@@ -534,136 +600,137 @@
 
                 // 鍥涖�佸唴瀹′汉鍛橀厤澶囧熀鏈儏鍐�
                 // 缂栧埗鏁�
-                QVariant organazationNum = valRows[56].toList().at(4);
+                //QVariant organazationNum = valRows[56].toList().at(4);
+                QVariant organazationNum = valRows[60].toList().at(4);
                 if(organazationNum.isValid()){
                     curComInfo.organazationNum = organazationNum.toInt();
                     qDebug()<<"organazationNum"<<organazationNum;
                 }
                 // 瀹炴湁浜哄憳鏁�
-                QVariant realNum = valRows[56].toList().at(4);
+                QVariant realNum = valRows[60].toList().at(6);
                 if(realNum.isValid()){
                     curComInfo.realNum = realNum.toInt();
                     qDebug()<<"realNum"<<realNum;
                 }
                 // 涓撹亴浜哄憳鏁�
-                QVariant professionalNum = valRows[56].toList().at(4);
+                QVariant professionalNum = valRows[60].toList().at(8);
                 if(professionalNum.isValid()){
                     curComInfo.professionalNum = professionalNum.toInt();
                     qDebug()<<"professionalNum"<<professionalNum;
                 }
                 // 鎷ユ湁CIA浜哄憳鏁�
-                QVariant CIANum = valRows[56].toList().at(4);
+                QVariant CIANum = valRows[61].toList().at(6);
                 if(CIANum.isValid()){
                     curComInfo.CIANum = CIANum.toInt();
                     qDebug()<<"CIANum"<<CIANum;
                 }
                 // 瀛﹀巻锛氱澹強浠ヤ笂 浜哄憳鏁�
-                QVariant masterNum = valRows[56].toList().at(4);
+                QVariant masterNum = valRows[62].toList().at(6);
                 if(masterNum.isValid()){
                     curComInfo.masterNum = masterNum.toInt();
                     qDebug()<<"masterNum"<<masterNum;
                 }
                 // 澶у鏈
-                QVariant undergraduatesNum = valRows[56].toList().at(4);
+                QVariant undergraduatesNum = valRows[63].toList().at(6);
                 if(undergraduatesNum.isValid()){
                     curComInfo.undergraduatesNum = undergraduatesNum.toInt();
                     qDebug()<<"undergraduatesNum"<<undergraduatesNum;
                 }
                 // 涓撶鍙婁互涓�
-                QVariant juniorNum = valRows[56].toList().at(4);
+                QVariant juniorNum = valRows[64].toList().at(6);
                 if(juniorNum.isValid()){
                     curComInfo.juniorNum = juniorNum.toInt();
                     qDebug()<<"juniorNum"<<juniorNum;
                 }
 
                 // 鑱岀О 楂樼骇鑱岀О
-                QVariant seniorNum = valRows[56].toList().at(4);
+                QVariant seniorNum = valRows[65].toList().at(6);
                 if(seniorNum.isValid()){
                     curComInfo.seniorNum = seniorNum.toInt();
                     qDebug()<<"seniorNum"<<seniorNum;
                 }
                 // 涓骇鑱岀О
-                QVariant intermediateNum = valRows[56].toList().at(4);
+                QVariant intermediateNum = valRows[66].toList().at(6);
                 if(intermediateNum.isValid()){
                     curComInfo.intermediateNum = intermediateNum.toInt();
                     qDebug()<<"intermediateNum"<<intermediateNum;
                 }
                 // 鍒濈骇鑱岀О
-                QVariant primaryNum = valRows[56].toList().at(4);
+                QVariant primaryNum = valRows[67].toList().at(6);
                 if(primaryNum.isValid()){
                     curComInfo.primaryNum = primaryNum.toInt();
                     qDebug()<<"primaryNum"<<primaryNum;
                 }
                 // 鏃犺亴绉�
-                QVariant noTitleNum = valRows[56].toList().at(4);
+                QVariant noTitleNum = valRows[68].toList().at(6);
                 if(noTitleNum.isValid()){
                     curComInfo.noTitleNum = noTitleNum.toInt();
                     qDebug()<<"noTitleNum"<<noTitleNum;
                 }
 
                 // 骞撮緞缁撴瀯 50宀佷互涓�
-                QVariant upFiftyOldNum = valRows[56].toList().at(4);
+                QVariant upFiftyOldNum = valRows[69].toList().at(6);
                 if(upFiftyOldNum.isValid()){
                     curComInfo.upFiftyOldNum = upFiftyOldNum.toInt();
                     qDebug()<<"upFiftyOldNum"<<upFiftyOldNum;
                 }
                 // 30-50宀�
-                QVariant upThirtyOldNum = valRows[56].toList().at(4);
+                QVariant upThirtyOldNum = valRows[70].toList().at(6);
                 if(upThirtyOldNum.isValid()){
                     curComInfo.upThirtyOldNum = upThirtyOldNum.toInt();
                     qDebug()<<"upThirtyOldNum"<<upThirtyOldNum;
                 }
                 // 30宀佷互涓�
-                QVariant downThirtyOldNum = valRows[56].toList().at(4);
+                QVariant downThirtyOldNum = valRows[71].toList().at(6);
                 if(downThirtyOldNum.isValid()){
                     curComInfo.downThirtyOldNum = downThirtyOldNum.toInt();
                     qDebug()<<"downThirtyOldNum"<<downThirtyOldNum;
                 }
 
                 // 鐭ヨ瘑缁撴瀯 瀹¤
-                QVariant auditNum = valRows[56].toList().at(4);
+                QVariant auditNum = valRows[72].toList().at(6);
                 if(auditNum.isValid()){
                     curComInfo.auditNum = auditNum.toInt();
                     qDebug()<<"auditNum"<<auditNum;
                 }
                 // 浼氳
-                QVariant accountingNum = valRows[56].toList().at(4);
+                QVariant accountingNum = valRows[73].toList().at(6);
                 if(accountingNum.isValid()){
                     curComInfo.accountingNum = accountingNum.toInt();
                     qDebug()<<"accountingNum"<<accountingNum;
                 }
                 // 缁忔祹
-                QVariant economyNum = valRows[56].toList().at(4);
+                QVariant economyNum = valRows[74].toList().at(6);
                 if(economyNum.isValid()){
                     curComInfo.economyNum = economyNum.toInt();
                     qDebug()<<"economyNum"<<economyNum;
                 }
                 // 娉曞緥
-                QVariant lawNum = valRows[56].toList().at(4);
+                QVariant lawNum = valRows[75].toList().at(6);
                 if(lawNum.isValid()){
                     curComInfo.lawNum = lawNum.toInt();
                     qDebug()<<"lawNum"<<lawNum;
                 }
                 // 绠$悊
-                QVariant managerNum = valRows[56].toList().at(4);
+                QVariant managerNum = valRows[76].toList().at(6);
                 if(managerNum.isValid()){
                     curComInfo.managerNum = managerNum.toInt();
                     qDebug()<<"managerNum"<<managerNum;
                 }
                 // 淇℃伅鎶�鏈�
-                QVariant itNum = valRows[56].toList().at(4);
+                QVariant itNum = valRows[77].toList().at(6);
                 if(itNum.isValid()){
                     curComInfo.itNum = itNum.toInt();
                     qDebug()<<"itNum"<<itNum;
                 }
                 // 宸ョ▼
-                QVariant engineeringNum = valRows[56].toList().at(4);
+                QVariant engineeringNum = valRows[78].toList().at(6);
                 if(engineeringNum.isValid()){
                     curComInfo.engineeringNum = engineeringNum.toInt();
                     qDebug()<<"engineeringNum"<<engineeringNum;
                 }
                 // 鍏朵粬
-                QVariant otherNum = valRows[56].toList().at(4);
+                QVariant otherNum = valRows[79].toList().at(6);
                 if(otherNum.isValid()){
                     curComInfo.otherNum = otherNum.toInt();
                     qDebug()<<"otherNum"<<otherNum;
@@ -732,6 +799,9 @@
     // 鍙戝皠 鍔犺浇瀹屾垚鐨勪俊鍙�
     emit loadFinished();
 
+    // 鏇存柊鍏朵粬鐣岄潰鐨勫叕鍙镐俊鎭笅鎷夋
+    emit updateComboListSignal(m_nameAndComInfos);
+
 //    QAxObject excel("./debug/Data/闄勪欢2_鍐呭缁�01琛╛鍗曚綅鍙婂唴閮ㄥ璁℃満鏋勫熀鏈儏鍐佃〃-1.301鐗�(1).xls");
 //    excel.setProperty("Visible",true);
 //    excel.setProperty("DisplayAlerts",false);
@@ -748,12 +818,14 @@
 
     m_menu->addAction("鍒犻櫎");
     m_menu->addAction("澧炲姞");
+    m_menu->addAction("淇濆瓨瀵煎嚭");
 
     ui->treeWidget->setContextMenuPolicy(Qt::CustomContextMenu);
     connect(ui->treeWidget,SIGNAL(customContextMenuRequested(QPoint)),this,SLOT(showMenu(QPoint)));
 
     connect(m_menu->actions().at(0),SIGNAL(triggered(bool)),this,SLOT(deleteInfo()));
     connect(m_menu->actions().at(1),SIGNAL(triggered(bool)),this,SLOT(addInfo()));
+    connect(m_menu->actions().at(2),SIGNAL(triggered(bool)),this,SLOT(saveInfo()));
 }
 
 void ConverInfo2::on_pushButton_commit_clicked()
@@ -1050,7 +1122,7 @@
     qDebug()<<"excel:"<<excel.className();
     QAxObject * wbs = excel.querySubObject("WorkBooks");
     qDebug()<<"wbs:"<<wbs->className();
-    QAxObject * wb = wbs->querySubObject("Open(QString&)",path);
+    QAxObject * wb = wbs->querySubObject("Open(QString&)",path); // 鍝釜瀵硅薄鏄疧pen鐨勮繑鍥炲�硷紝鍝釜灏卞彲浠ヤ繚瀛�
     //QAxObject* pWorkBook = excel.querySubObject("ActiveWorkBook");
     //QAxObject* pWorkSheets = pWorkBook->querySubObject("Sheets");//鑾峰彇宸ヤ綔琛�
     //QAxObject * shs = wb->querySubObject("Sheets"); // WorkSheets 涔熷彲浠�
@@ -1342,6 +1414,30 @@
             qDebug()<<"financeDepartment"<<financeDepartment;
         }
         // 娉曞姟閮ㄩ棬銆佸唴閮ㄦ帶鍒堕儴闂ㄣ�佺邯妫�閮ㄩ棬銆佸叾浠栭儴闂�
+        // 闇�瑕佺壒娈婅幏鍙�
+        QAxObject *checkBox = sheet->querySubObject("CheckBoxes(const QString&)", QString::fromLocal8Bit("璐㈠姟閮ㄩ棬"));
+        if(checkBox){
+            qDebug()<<"鍙栧埌璐㈠姟閮ㄩ棬"<<checkBox->property("Value2").toInt()<<checkBox->property("Value").toInt()<<checkBox->property("Value2").toBool();
+            if(checkBox->property("Value").toBool()){
+                qDebug()<<"璐㈠姟閮ㄩ棬鍕鹃��";
+            }else{
+                qDebug()<<"璐㈠姟閮ㄩ棬鏈嬀閫�";
+            }
+        }else{
+            qDebug()<<"鏈彇鍒拌储鍔¢儴闂�";
+        }
+
+        QAxObject *checkBox1 = sheet->querySubObject("CheckBoxes(const QString&)", QString::fromLocal8Bit("娉曞姟閮ㄩ棬"));
+        if(checkBox1){
+            qDebug()<<"鍙栧埌娉曞姟閮ㄩ棬"<<checkBox1->property("Value").toInt();
+            if(checkBox1->property("Value").toBool()){
+                qDebug()<<"娉曞姟閮ㄩ棬鍕鹃��";
+            }else{
+                qDebug()<<"娉曞姟閮ㄩ棬鏈嬀閫�";
+            }
+        }else{
+            qDebug()<<"鏈彇鍒版硶鍔¢儴闂�";
+        }
 
         // 鍐呭鏈烘瀯灞傜骇
         QVariant intavalAuditLeval = valRows[56].toList().at(4);
@@ -1539,6 +1635,7 @@
     excel.dynamicCall("Quit(void)");
 
     qDebug()<<"鍗曚綅淇℃伅鏁伴噺锛�"<<m_nameAndComInfos.size();
+    emit updateComboListSignal(m_nameAndComInfos); // 鏇存柊缁勫悎涓嬫媺妗嗙殑鍗曚綅淇℃伅
 }
 
 void ConverInfo2::createTreeNode(){
@@ -1555,6 +1652,38 @@
             }
         }
     }
+}
+
+void ConverInfo2::disableWheelEvent()
+{
+    ui->comboBox_ChiefDesignerLevel->installEventFilter(this);
+    ui->comboBox_comType->installEventFilter(this);
+    ui->comboBox_employmentMode->installEventFilter(this);
+    ui->comboBox_hasChiefDesigner->installEventFilter(this);
+    ui->comboBox_hasSetIntervalAudit->installEventFilter(this);
+    ui->comboBox_hasSetSeparateIA->installEventFilter(this);
+    ui->comboBox_hasUpLegal->installEventFilter(this);
+    ui->comboBox_intavalAuditLeval->installEventFilter(this);
+    ui->comboBox_leadingOrganization->installEventFilter(this);
+    ui->comboBox_scale->installEventFilter(this);
+    ui->comboBox_standardType->installEventFilter(this);
+}
+
+bool ConverInfo2::eventFilter(QObject *watched, QEvent *event)
+{
+    QString cls = watched->metaObject()->className();
+    if(cls == "QComboBox"){
+        //qDebug()<<"鍙戠幇涓嬫媺妗�";
+        if(event->type() == QEvent::Wheel){
+            //qDebug()<<"浣跨敤浜嗘粴杞�";
+            return true;  // 杩斿洖鐪熻〃绀虹鐢紝杩斿洖鍋囧垯鑳界敤
+        }
+    }else{
+        qDebug()<<"鍏朵粬绫诲瀷:"<<cls;
+    }
+
+    return QMainWindow::eventFilter(watched,event);
+
 }
 void ConverInfo2::addTreeWidgetNode(QVariant upName,QVariant name){
     // 娣诲姞宸﹁竟鏍戝舰鍥剧浉鍏�
@@ -1613,3 +1742,15 @@
 {
     readInfo(); // 鍔犺浇琛ㄦ牸
 }
+
+void ConverInfo2::on_pushButton_save_to_file_clicked()
+{
+    QString name = ui->lineEdit_name->text();
+    if(name.size()== 0){
+        QMessageBox::information(this,"鍗曚綅鍚嶇О涓虹┖,璇峰厛閫変腑涓�瀹跺崟浣�","璇峰厛閫変腑涓�瀹跺崟浣�");
+        return;
+    }
+    ExportToFile etf(this);
+    ComInfo cif = m_nameAndComInfos[name];
+    etf.saveToExcelFromComInfo(cif);
+}

--
Gitblit v1.8.0