From 332ab3cdf6fd91e5cee4f0a773ab2b270df2ed66 Mon Sep 17 00:00:00 2001 From: wumu <mayi@mayi.com> Date: 星期三, 20 九月 2023 23:18:51 +0800 Subject: [PATCH] 0921 --- internal_system_v1/coverinfo.cpp | 474 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 files changed, 459 insertions(+), 15 deletions(-) diff --git a/internal_system_v1/coverinfo.cpp b/internal_system_v1/coverinfo.cpp index d8722ea..b1eb2ea 100644 --- a/internal_system_v1/coverinfo.cpp +++ b/internal_system_v1/coverinfo.cpp @@ -2,6 +2,11 @@ #include "ui_coverinfo.h" #include <QDebug> #include <QDirIterator> +#include <QFileDialog> +#include <QSqlQuery> +#include <QSqlRecord> + +int g_comId = 0; // 鍏ㄥ眬鍙橀噺锛屼繚瀛樺崟浣峣d CoverInfo::CoverInfo(QWidget *parent) : QMainWindow(parent), @@ -9,6 +14,8 @@ { ui->setupUi(this); readInfo(); + readDataFromSQL(); // 浠庢暟鎹簱璇诲彇鏁版嵁 + } CoverInfo::~CoverInfo() @@ -24,6 +31,17 @@ // ui->label_creditCode->setText(cc); QString dirPath = "./debug/Data"; + QString dirPathRelease = "./release/Data"; + QString dirPathData = "./Data"; + QDir dir(dirPathData); + if(dir.exists()){ + dirPath = dirPathData; // 瀛樺湪鍒欒鐩� + } + + QDir dirRe(dirPathRelease); + if(dirRe.exists()){ + dirPath = dirPathRelease; + } QStringList list; QDirIterator it(dirPath, {"*.xls","*.xlsx"}, QDir::Files | QDir::NoSymLinks | QDir::NoDotAndDotDot, QDirIterator::Subdirectories); while(it.hasNext()) @@ -80,11 +98,15 @@ QVariant name = valRows[9].toList().at(8); if(name.isValid()){ ui->label_name->setText(name.toString()); + }else{ + ui->label_name->setText(""); } // 鏈烘瀯绫诲瀷 QVariant comType = valRows[12].toList().at(3); if(comType.isValid()){ ui->label_comType->setText(comType.toString()); + }else{ + ui->label_comType->setText(""); } // 涓昏涓氬姟娲诲姩 QString business; @@ -104,11 +126,15 @@ } if(business.size() > 0){ ui->label_business->setText(business); + }else{ + ui->label_business->setText(""); } // 涓氬姟浠g爜 QVariant busCode = valRows[19].toList().at(4); if(busCode.isValid()){ ui->label_businessCode->setText(busCode.toString()); + }else{ + ui->label_businessCode->setText(""); } // 娉ㄥ唽鍦板潃 QString addr=""; @@ -127,43 +153,89 @@ if(street.isValid()) addr += street.toString(); if(Sub.isValid()) addr += Sub.toString(); if(committee.isValid()) addr += committee.toString(); - if(addr.size()>10)ui->label_addr->setText(addr); + if(addr.size()>10){ + ui->label_addr->setText(addr); + }else{ + ui->label_addr->setText(""); + } // 鍖哄煙浠g爜 QVariant areaCode = valRows[24].toList().at(2); - if(areaCode.isValid()) ui->label_areaCode->setText(areaCode.toString()); + if(areaCode.isValid()){ + ui->label_areaCode->setText(areaCode.toString()); + }else{ + ui->label_areaCode->setText(""); + } // 鍩庝埂浠g爜 QVariant townCode = valRows[24].toList().at(6); - if(townCode.isValid()) ui->label_townCode->setText(townCode.toString()); + if(townCode.isValid()) { + ui->label_townCode->setText(townCode.toString()); + }else{ + ui->label_townCode->setText(""); + } + // 鍗曚綅瑙勬ā QVariant scale = valRows[25].toList().at(3); - if(scale.isValid()) ui->label_scale->setText(scale.toString()); + if(scale.isValid()){ + ui->label_scale->setText(scale.toString()); + }else{ + ui->label_scale->setText(""); + } // 浠庝笟浜烘暟 QVariant people = valRows[26].toList().at(6); - if(people.isValid()) ui->label_people->setText(people.toString()); + if(people.isValid()) { + ui->label_people->setText(people.toString()); + }else{ + ui->label_people->setText(""); + } // 娉曚汉 QVariant representative = valRows[27].toList().at(4); - if(representative.isValid()) ui->label_representative->setText(representative.toString()); + if(representative.isValid()) { + ui->label_representative->setText(representative.toString()); + }else{ + ui->label_representative->setText(""); + } // 浼氳鏍囧噯绫诲埆 standardType QVariant standardType = valRows[27].toList().at(8); - if(standardType.isValid()) ui->label_standardType->setText(standardType.toString()); + if(standardType.isValid()){ + ui->label_standardType->setText(standardType.toString()); + }else{ + ui->label_standardType->setText(""); + } // 闀块�斿尯鍙� QVariant trunkCode = valRows[31].toList().at(2); - if(trunkCode.isValid()) ui->label_trunkCode->setText(trunkCode.toString()); + if(trunkCode.isValid()){ + ui->label_trunkCode->setText(trunkCode.toString()); + }else{ + ui->label_trunkCode->setText(""); + } // 鍥哄畾鐢佃瘽 QVariant fixedTel = valRows[32].toList().at(2); - if(fixedTel.isValid()) ui->label_fixedTel->setText(fixedTel.toString()); + if(fixedTel.isValid()) { + ui->label_fixedTel->setText(fixedTel.toString()); + }else{ + ui->label_fixedTel->setText(""); + } // 閭斂缂栫爜 QVariant postCode = valRows[33].toList().at(2); - if(postCode.isValid()) ui->label_postCode->setText(postCode.toString()); + if(postCode.isValid()){ + ui->label_postCode->setText(postCode.toString()); + }else{ + ui->label_postCode->setText(""); + } // 鐢靛瓙閭 QVariant email = valRows[30].toList().at(5); - if(email.isValid()) ui->label_email->setText(email.toString()); + if(email.isValid()) { + ui->label_email->setText(email.toString()); + }else{ + ui->label_email->setText(""); + } // 缃戝潃 QVariant webSite = valRows[32].toList().at(5); - if(webSite.isValid()) ui->label_webSite->setText(webSite.toString()); - - - + if(webSite.isValid()) { + ui->label_webSite->setText(webSite.toString()); + }else{ + ui->label_webSite->setText(""); + } } wbs->dynamicCall("Close()"); excel.dynamicCall("Quit(void)"); @@ -176,3 +248,375 @@ // excel.setProperty("DisplayAlerts",false); } + +void CoverInfo::readDataFromSQL() +{ + QSqlQuery query; + QString sql; + if(ui->label_name->text().size() > 1){ + sql = QString("select id,name from company_info where name='%1'").arg(ui->label_name->text()); + qDebug()<<"鏌ヨ鍏徃sql:"<<sql; + if(query.exec(sql)){ + qDebug()<<"OK sql"<<__FUNCTION__; + QSqlRecord res = query.record(); + qDebug()<<query.size()<<query.numRowsAffected()<<res.count(); + if(!query.next()){ + // 鎻掑叆涓�鏉″崟浣嶄俊鎭細 + sql = QString("insert into company_info (name,code,鏈烘瀯绫诲瀷,涓昏涓氬姟娲诲姩,琛屼笟浠g爜,鍗曚綅娉ㄥ唽鍦板強鍖哄煙," + "鍖哄煙浠g爜,鍩庝埂浠g爜,鍗曚綅瑙勬ā,浠庝笟鏈熸湯浜烘暟,娉曞畾浠h〃浜�,鎵ц浼氳鏍囧噯绫诲埆,闀块�斿尯鍙�,鍥哄畾鐢佃瘽,閭斂缂栫爜," + "鐢靛瓙閭,缃戝潃) values ('%1','%2','%3','%4','%5','%6','%7','%8','%9','%10','%11','%12','%13','%14','%15','%16','%17')").arg(ui->label_name->text()) + .arg(ui->label_creditCode->text()).arg(ui->label_comType->text()).arg(ui->label_business->text()).arg(ui->label_businessCode->text()).arg(ui->label_addr->text()) + .arg(ui->label_areaCode->text()).arg(ui->label_townCode->text()).arg(ui->label_scale->text()).arg(ui->label_people->text()).arg(ui->label_representative->text()) + .arg(ui->label_standardType->text()).arg(ui->label_trunkCode->text()).arg(ui->label_fixedTel->text()).arg(ui->label_postCode->text()).arg(ui->label_email->text()) + .arg(ui->label_webSite->text()); + qDebug()<<"com_insert sql:"<<sql; + if(query.exec(sql)){ + qDebug()<<"insert com ok"; + }else{ + qDebug()<<"insert com fail"; + } + + }else{ + g_comId = query.value(0).toInt(); + } + }else{ + qDebug()<<"fail sql"<<__FUNCTION__; + } + } + sql = QString("select id,name from company_info"); + if(query.exec(sql)){ + qDebug()<<"size:"<<query.size(); + while(query.next()){ + int id = query.value(0).toInt(); + QString name = query.value(1).toString(); + qDebug()<<"com select:"<<id<<name; + bool isInBox = false; + for(int i=0;i<ui->comboBox->count();++i){ + if(ui->comboBox->itemText(i) == name){ + isInBox = true; + break; + } + } + if(!isInBox){ + m_com[name] = id; + ui->comboBox->addItem(name); + emit sendComName(name); + ui->comboBox->setCurrentText(name); + } + } + } + +} + +void CoverInfo::readExcelFromPath(QString path) +{ + QAxObject excel("Excel.Application"); + excel.setProperty("Visible",false); + excel.setProperty("DisplayAlerts",false); + qDebug()<<"open:"<<path; + qDebug()<<"excel:"<<excel.className(); + QAxObject * wbs = excel.querySubObject("WorkBooks"); + QAxObject * wb = wbs->querySubObject("Open(QString&)",path); + //QAxObject* pWorkBook = excel.querySubObject("ActiveWorkBook"); + //QAxObject* pWorkSheets = pWorkBook->querySubObject("Sheets");//鑾峰彇宸ヤ綔琛� + QAxObject * shs = wb->querySubObject("Sheets"); // WorkSheets 涔熷彲浠� + int cnt = shs->property("Count").toInt(); + qDebug()<<"cnt="<<cnt; + for(int i=0;i<cnt;++i){ + QAxObject * sheet = shs->querySubObject("Item(int)", i+1); + QString sheetName = sheet->property("Name").toString(); + qDebug()<<"sh name:"<<sheetName; + QAxObject *usedRange = sheet->querySubObject("UsedRange"); + int rows = usedRange->querySubObject("Rows")->property("Count").toInt(); + int columns = usedRange->querySubObject("Columns")->property("Count").toInt(); + qDebug()<<"r--c:"<<rows<<columns; + QVariant val = usedRange->dynamicCall("Value"); // 鎷垮埌浜岀淮琛ㄦ牸 + QVariantList valRows = val.toList(); + // 缁熶竴淇$敤浠g爜 +// QVariant uniCode = valRows[9].toList().at(3); +// if(uniCode.isValid()){ +// ui->label_creditCode->setText(uniCode.toString()); +// } +// // 鍗曚綅鍚嶇О +// QVariant name = valRows[9].toList().at(8); +// if(name.isValid()){ +// ui->label_name->setText(name.toString()); +// } +// // 鏈烘瀯绫诲瀷 +// QVariant comType = valRows[12].toList().at(3); +// if(comType.isValid()){ +// ui->label_comType->setText(comType.toString()); +// } +// // 涓昏涓氬姟娲诲姩 +// QString business; +// QVariant first = valRows[18].toList().at(2); +// if(first.isValid()){ +// business.append(first.toString()); +// } +// QVariant sec = valRows[18].toList().at(5); +// if(sec.isValid()){ +// business += "銆�"; +// business.append(sec.toString()); +// } +// QVariant third = valRows[18].toList().at(8); +// if(third.isValid()){ +// business += "銆�"; +// business.append(third.toString()); +// } +// if(business.size() > 0){ +// ui->label_business->setText(business); +// } +// // 涓氬姟浠g爜 +// QVariant busCode = valRows[19].toList().at(4); +// if(busCode.isValid()){ +// ui->label_businessCode->setText(busCode.toString()); +// } +// // 娉ㄥ唽鍦板潃 +// QString addr=""; +// QVariant province = valRows[21].toList().at(1); // 鐪佷唤 +// QVariant city = valRows[21].toList().at(4); // 鍩庡競 +// QVariant district = valRows[21].toList().at(7); // 绠¤緰鍖� +// QVariant village = valRows[22].toList().at(2); // 涔¢晣 +// QVariant street = valRows[22].toList().at(4); // 琛楅亾 +// QVariant Sub = valRows[23].toList().at(2); // 琛楅亾鍔炰簨澶� +// QVariant committee = valRows[25].toList().at(3); // 灞呭浼� +// //qDebug()<<province<<city<<district<<village<<street<<Sub<<committee; +// if(province.isValid()) addr += province.toString(); +// if(city.isValid()) addr += city.toString(); +// if(district.isValid()) addr += district.toString(); +// if(village.isValid()) addr += village.toString(); +// if(street.isValid()) addr += street.toString(); +// if(Sub.isValid()) addr += Sub.toString(); +// if(committee.isValid()) addr += committee.toString(); +// if(addr.size()>10)ui->label_addr->setText(addr); +// // 鍖哄煙浠g爜 +// QVariant areaCode = valRows[24].toList().at(2); +// if(areaCode.isValid()) ui->label_areaCode->setText(areaCode.toString()); +// // 鍩庝埂浠g爜 +// QVariant townCode = valRows[24].toList().at(6); +// if(townCode.isValid()) ui->label_townCode->setText(townCode.toString()); +// // 鍗曚綅瑙勬ā +// QVariant scale = valRows[25].toList().at(3); +// if(scale.isValid()) ui->label_scale->setText(scale.toString()); +// // 浠庝笟浜烘暟 +// QVariant people = valRows[26].toList().at(6); +// if(people.isValid()) ui->label_people->setText(people.toString()); +// // 娉曚汉 +// QVariant representative = valRows[27].toList().at(4); +// if(representative.isValid()) ui->label_representative->setText(representative.toString()); +// // 浼氳鏍囧噯绫诲埆 standardType +// QVariant standardType = valRows[27].toList().at(8); +// if(standardType.isValid()) ui->label_standardType->setText(standardType.toString()); +// // 闀块�斿尯鍙� +// QVariant trunkCode = valRows[31].toList().at(2); +// if(trunkCode.isValid()) ui->label_trunkCode->setText(trunkCode.toString()); +// // 鍥哄畾鐢佃瘽 +// QVariant fixedTel = valRows[32].toList().at(2); +// if(fixedTel.isValid()) ui->label_fixedTel->setText(fixedTel.toString()); +// // 閭斂缂栫爜 +// QVariant postCode = valRows[33].toList().at(2); +// if(postCode.isValid()) ui->label_postCode->setText(postCode.toString()); +// // 鐢靛瓙閭 +// QVariant email = valRows[30].toList().at(5); +// if(email.isValid()) ui->label_email->setText(email.toString()); +// // 缃戝潃 +// QVariant webSite = valRows[32].toList().at(5); +// if(webSite.isValid()) ui->label_webSite->setText(webSite.toString()); + + // 缁熶竴淇$敤浠g爜 + QVariant uniCode = valRows[9].toList().at(3); + if(uniCode.isValid()){ + ui->label_creditCode->setText(uniCode.toString()); + } + // 鍗曚綅鍚嶇О + QVariant name = valRows[9].toList().at(8); + if(name.isValid()){ + ui->label_name->setText(name.toString()); + }else{ + ui->label_name->setText(""); + } + // 鏈烘瀯绫诲瀷 + QVariant comType = valRows[12].toList().at(3); + if(comType.isValid()){ + ui->label_comType->setText(comType.toString()); + }else{ + ui->label_comType->setText(""); + } + // 涓昏涓氬姟娲诲姩 + QString business; + QVariant first = valRows[18].toList().at(2); + if(first.isValid()){ + business.append(first.toString()); + } + QVariant sec = valRows[18].toList().at(5); + if(sec.isValid()){ + business += "銆�"; + business.append(sec.toString()); + } + QVariant third = valRows[18].toList().at(8); + if(third.isValid()){ + business += "銆�"; + business.append(third.toString()); + } + if(business.size() > 0){ + ui->label_business->setText(business); + }else{ + ui->label_business->setText(""); + } + // 涓氬姟浠g爜 + QVariant busCode = valRows[19].toList().at(4); + if(busCode.isValid()){ + ui->label_businessCode->setText(busCode.toString()); + }else{ + ui->label_businessCode->setText(""); + } + // 娉ㄥ唽鍦板潃 + QString addr=""; + QVariant province = valRows[21].toList().at(1); // 鐪佷唤 + QVariant city = valRows[21].toList().at(4); // 鍩庡競 + QVariant district = valRows[21].toList().at(7); // 绠¤緰鍖� + QVariant village = valRows[22].toList().at(2); // 涔¢晣 + QVariant street = valRows[22].toList().at(4); // 琛楅亾 + QVariant Sub = valRows[23].toList().at(2); // 琛楅亾鍔炰簨澶� + QVariant committee = valRows[25].toList().at(3); // 灞呭浼� + //qDebug()<<province<<city<<district<<village<<street<<Sub<<committee; + if(province.isValid()) addr += province.toString(); + if(city.isValid()) addr += city.toString(); + if(district.isValid()) addr += district.toString(); + if(village.isValid()) addr += village.toString(); + if(street.isValid()) addr += street.toString(); + if(Sub.isValid()) addr += Sub.toString(); + if(committee.isValid()) addr += committee.toString(); + if(addr.size()>10){ + ui->label_addr->setText(addr); + }else{ + ui->label_addr->setText(""); + } + // 鍖哄煙浠g爜 + QVariant areaCode = valRows[24].toList().at(2); + if(areaCode.isValid()){ + ui->label_areaCode->setText(areaCode.toString()); + }else{ + ui->label_areaCode->setText(""); + } + // 鍩庝埂浠g爜 + QVariant townCode = valRows[24].toList().at(6); + if(townCode.isValid()) { + ui->label_townCode->setText(townCode.toString()); + }else{ + ui->label_townCode->setText(""); + } + + // 鍗曚綅瑙勬ā + QVariant scale = valRows[25].toList().at(3); + if(scale.isValid()){ + ui->label_scale->setText(scale.toString()); + }else{ + ui->label_scale->setText(""); + } + // 浠庝笟浜烘暟 + QVariant people = valRows[26].toList().at(6); + if(people.isValid()) { + ui->label_people->setText(people.toString()); + }else{ + ui->label_people->setText(""); + } + // 娉曚汉 + QVariant representative = valRows[27].toList().at(4); + if(representative.isValid()) { + ui->label_representative->setText(representative.toString()); + }else{ + ui->label_representative->setText(""); + } + // 浼氳鏍囧噯绫诲埆 standardType + QVariant standardType = valRows[27].toList().at(8); + if(standardType.isValid()){ + ui->label_standardType->setText(standardType.toString()); + }else{ + ui->label_standardType->setText(""); + } + // 闀块�斿尯鍙� + QVariant trunkCode = valRows[31].toList().at(2); + if(trunkCode.isValid()){ + ui->label_trunkCode->setText(trunkCode.toString()); + }else{ + ui->label_trunkCode->setText(""); + } + // 鍥哄畾鐢佃瘽 + QVariant fixedTel = valRows[32].toList().at(2); + if(fixedTel.isValid()) { + ui->label_fixedTel->setText(fixedTel.toString()); + }else{ + ui->label_fixedTel->setText(""); + } + // 閭斂缂栫爜 + QVariant postCode = valRows[33].toList().at(2); + if(postCode.isValid()){ + ui->label_postCode->setText(postCode.toString()); + }else{ + ui->label_postCode->setText(""); + } + // 鐢靛瓙閭 + QVariant email = valRows[30].toList().at(5); + if(email.isValid()) { + ui->label_email->setText(email.toString()); + }else{ + ui->label_email->setText(""); + } + // 缃戝潃 + QVariant webSite = valRows[32].toList().at(5); + if(webSite.isValid()) { + ui->label_webSite->setText(webSite.toString()); + }else{ + ui->label_webSite->setText(""); + } + + // 濡傛灉鍗曚綅鏄柊澧炲姞鐨勶紝寰楀啓鍏ュ埌鏁版嵁搴撲腑淇濆瓨璧锋潵 + readDataFromSQL(); // 鍐嶆璋冪敤API 纭鏁版嵁杩涘埌琛ㄤ腑 + + } + wbs->dynamicCall("Close()"); + excel.dynamicCall("Quit(void)"); +} + +void CoverInfo::on_comboBox_currentIndexChanged(const QString &arg1) +{ + QString sql = QString("select * from company_info where name='%1'").arg(arg1); + QSqlQuery query; + if(query.exec(sql)){ + qDebug()<<"鍒囨崲鏌ヨ鎴愬姛:"<<arg1; + while (query.next()) { + qDebug()<<"鍒囨崲鏌ヨ鎴愬姛鏌ヨ鍒扮洰鏍囧崟浣�:"<<arg1; + g_comId = query.value(0).toInt(); + ui->label_name->setText(query.value(1).toString()); + ui->label_creditCode->setText(query.value(2).toString()); + ui->label_comType->setText(query.value(3).toString()); + ui->label_business->setText(query.value(4).toString()); + ui->label_businessCode->setText(query.value(5).toString()); + ui->label_addr->setText(query.value(6).toString()); + ui->label_areaCode->setText(query.value(7).toString()); + ui->label_townCode->setText(query.value(8).toString()); + ui->label_scale->setText(query.value(9).toString()); + ui->label_people->setText(query.value(10).toString()); + ui->label_representative->setText(query.value(11).toString()); + ui->label_standardType->setText(query.value(12).toString()); + ui->label_trunkCode->setText(query.value(13).toString()); + ui->label_fixedTel->setText(query.value(14).toString()); + ui->label_postCode->setText(query.value(15).toString()); + ui->label_email->setText(query.value(16).toString()); + ui->label_webSite->setText(query.value(17).toString()); + break; + } + }else{ + qDebug()<<"鍒囨崲鏌ヨ澶辫触:"<<arg1; + } +} + +void CoverInfo::on_pushButton_importExcel_clicked() +{ + QString path = QFileDialog::getOpenFileName(this,"閫夋嫨琛ㄦ牸:鍗曚綅鍙婂唴閮ㄥ璁℃満鏋勫熀鏈儏鍐佃〃","./","excel(*鍩烘湰鎯呭喌琛�*.xls)"); + qDebug()<<"path:"<<path; + if(path.size() > 1){ + readExcelFromPath(path); + } +} -- Gitblit v1.8.0