From e55e2ed1ceb92334c4f839642b3e68d8f4dceba6 Mon Sep 17 00:00:00 2001 From: wumu <mayi@mayi.com> Date: 星期二, 19 九月 2023 00:16:13 +0800 Subject: [PATCH] 0919 --- internal_system_v1/clientmainwindow.cpp | 149 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 149 insertions(+), 0 deletions(-) diff --git a/internal_system_v1/clientmainwindow.cpp b/internal_system_v1/clientmainwindow.cpp index 5a4c0e5..122a61c 100644 --- a/internal_system_v1/clientmainwindow.cpp +++ b/internal_system_v1/clientmainwindow.cpp @@ -2,6 +2,11 @@ #include "ui_clientmainwindow.h" #include <QDebug> #include <QFileDialog> +#include <QMessageBox> +#include <QSqlQuery> +#include <QSqlRecord> + +extern int g_comId; ClientMainWindow::ClientMainWindow(QWidget *parent) : QMainWindow(parent), @@ -54,8 +59,118 @@ // 闅愯棌鎺夋煇涓�夐」 ui->tabWidget->removeTab(3); // OK + // 鍏宠仈鍚勪釜鍔熻兘妲� + connect(m_coverInfo,SIGNAL(sendComName(QString)),m_searchInfo,SLOT(addComName(QString))); + + connect(this,SIGNAL(sendDataToAuditProject(QVariantList)),m_auditPro,SLOT(showData(QVariantList))); + connect(this,SIGNAL(sendDataToAuditWorkLoad(QVariantList)),m_auditworkload,SLOT(showData(QVariantList))); + connect(this,SIGNAL(sendDataToProblemMoney(QVariantList)),m_problemMon,SLOT(showData(QVariantList))); + connect(this,SIGNAL(sendDataToProblemCount(QVariantList)),m_problemCnt,SLOT(showData(QVariantList))); + connect(this,SIGNAL(sendDataToProblemRectification(QVariantList)),m_probleRect,SLOT(showData(QVariantList))); + connect(this,SIGNAL(sendDataToProblemNoMoney(QVariantList)),m_problemNotMon,SLOT(showData(QVariantList))); + connect(this,SIGNAL(sendDataToPunish(QVariantList)),m_punish,SLOT(showData(QVariantList))); + connect(this,SIGNAL(sendDataToCaseClue(QVariantList)),m_caseClue,SLOT(showData(QVariantList))); +} + +void ClientMainWindow::readDataFromExcel(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[5].toList().at(1); + QVariant comName = valRows[6].toList().at(1); + if(comName.isValid()){ + if(!readDataFromSQL(comName.toString())){ + QMessageBox::information(this,"瀵煎叆涓柇","璇风‘璁ゅ叕鍙稿熀鏈俊鎭凡缁忓瓨鍦�"); + return; + } + qDebug()<<comName<<g_comId; + } + + // 瀹¤椤圭洰 + QVariantList audit_project; + for(int i=10;i<20;++i){ + audit_project.append(valRows[i].toList().at(4)); + } + qDebug()<<audit_project; + + // 瀹¤宸ヤ綔閲� + QVariantList audit_workload; + for(int i=20;i<21;++i){ + audit_workload.append(valRows[i].toList().at(4)); + } + + // 闂閲戦 + QVariantList problem_money; + for(int i=21;i<32;++i){ + problem_money.append(valRows[i].toList().at(4)); + } + + // 闂涓暟 + QVariantList problem_count; + for(int i=32;i<39;++i){ + problem_count.append(valRows[i].toList().at(4)); + } + + // 闂鏁存敼(閲戦绫�) + QVariantList problem_rectification; + for(int i=39;i<46;++i){ + problem_rectification.append(valRows[i].toList().at(4)); + } + + // 闂鏁存敼(闈為噾棰濈被) + QVariantList problem_nomoney; + for(int i=46;i<51;++i){ + problem_nomoney.append(valRows[i].toList().at(4)); + } + + // 澶勫垎 + QVariantList punish; + for(int i=51;i<55;++i){ + punish.append(valRows[i].toList().at(4)); + } + + // 妗堜欢绾跨储 + QVariantList case_clue; + for(int i=55;i<57;++i){ + case_clue.append(valRows[i].toList().at(4)); + } + qDebug()<<case_clue; + + emit sendDataToAuditProject(audit_project); + emit sendDataToAuditWorkLoad(audit_workload); + emit sendDataToProblemMoney(problem_money); + emit sendDataToProblemCount(problem_count); + emit sendDataToProblemRectification(problem_rectification); + emit sendDataToProblemNoMoney(problem_nomoney); + emit sendDataToPunish(punish); + emit sendDataToCaseClue(case_clue); + + } + wbs->dynamicCall("Close()"); + excel.dynamicCall("Quit(void)"); } void ClientMainWindow::on_pushButton_auditPro_clicked() @@ -131,3 +246,37 @@ ui->listWidget->addItem(f); } } + +void ClientMainWindow::on_pushButton_importExcel_clicked() +{ + QString path = QFileDialog::getOpenFileName(this,"閫夋嫨琛ㄦ牸:鍗曚綅鍐呴儴瀹¤涓氬姟鎯呭喌琛�","./","excel(*涓氬姟鎯呭喌琛�*.xls)"); + qDebug()<<"path:"<<path; + if(path.size() > 1){ + readDataFromExcel(path); + } +} + +bool ClientMainWindow::readDataFromSQL(QString name) +{ + QSqlQuery query; + QString sql; + if(name.size() > 1){ + sql = QString("select id,name from company_info where name='%1'").arg(name); + 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()){ + QMessageBox::information(this,"瀵煎叆澶辫触","鍏徃鍚嶄笉瀛樺湪搴撲腑锛岃鍏堝鍏ュ熀鏈俊鎭〃"); + }else{ + g_comId = query.value(0).toInt(); + return true; + } + }else{ + qDebug()<<"fail sql"<<__FUNCTION__; + } + } + return false; + +} -- Gitblit v1.8.0