From d93a5a61f94ac4cf795ba4a8970d9eeba037f4c3 Mon Sep 17 00:00:00 2001 From: wumu <mayi@mayi.com> Date: 星期三, 09 十月 2024 09:06:30 +0800 Subject: [PATCH] 1008 --- internal_system_v1/converinfo2.cpp | 146 +++++++++++++++++++++++++++++++++++------------- 1 files changed, 107 insertions(+), 39 deletions(-) diff --git a/internal_system_v1/converinfo2.cpp b/internal_system_v1/converinfo2.cpp index a51a114..0ed41dc 100644 --- a/internal_system_v1/converinfo2.cpp +++ b/internal_system_v1/converinfo2.cpp @@ -15,7 +15,7 @@ ui->setupUi(this); m_menu = nullptr; //initUi(); - readInfo(); // 鍔犺浇琛ㄦ牸 + //readInfo(); // 鍔犺浇琛ㄦ牸 addMenu(); // 澧炲姞鑿滃崟 // 鑷�傚簲澶勭悊 @@ -49,7 +49,7 @@ it4->setCheckState(0,Qt::Checked); // 澶嶉�夋鐘舵�佸鐞� - connect(ui->treeWidget,QOverload<QTreeWidgetItem*,int>::of(QTreeWidget::itemClicked),this,[=](QTreeWidgetItem* it,int index){ + connect(ui->treeWidget,QOverload<QTreeWidgetItem*,int>::of(&QTreeWidget::itemClicked),this,[=](QTreeWidgetItem* it,int index){ qDebug()<<it<<index; if(it == top1){ qDebug()<<"鐐瑰嚮浜嗙爜铓侀泦鍥�"; @@ -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); @@ -203,11 +209,15 @@ it.next(); list.append(it.fileInfo().absoluteFilePath()); } + int allSize = list.size(); + float cntIdx=1.0; foreach(QString str, list) { qDebug() << str; int index = str.indexOf("鍐呭缁�01琛�"); qDebug()<<"index:"<<index; + + if(index > 0){ QAxObject excel("ket.Application"); if(!excel.setControl("ket" @@ -268,8 +278,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,14 +696,37 @@ // 鏈�鍚庡瓨鍒癿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(); } + + // 鎺у埗鏄剧ず杩涘害鐩稿叧 + emit loadProgress((cntIdx/allSize)*100); + cntIdx++; } + createTreeNode(); // 鏋勫缓鏍戝舰鑺傜偣 + + // 鍙戝皠 鍔犺浇瀹屾垚鐨勪俊鍙� + emit loadFinished(); // QAxObject excel("./debug/Data/闄勪欢2_鍐呭缁�01琛╛鍗曚綅鍙婂唴閮ㄥ璁℃満鏋勫熀鏈儏鍐佃〃-1.301鐗�(1).xls"); // excel.setProperty("Visible",true); @@ -1484,42 +1517,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 +1537,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)"); @@ -1537,3 +1600,8 @@ readExcelFromPath(path); } } + +void ConverInfo2::showExcelSlot() +{ + readInfo(); // 鍔犺浇琛ㄦ牸 +} -- Gitblit v1.8.0