From 12cba7f5737b02992f783164d902c2a52e9b1aab Mon Sep 17 00:00:00 2001 From: wumu <mayi@mayi.com> Date: 星期四, 28 十二月 2023 23:45:50 +0800 Subject: [PATCH] 1228 --- internal_system_v1/clientmainwindow.cpp | 337 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 334 insertions(+), 3 deletions(-) diff --git a/internal_system_v1/clientmainwindow.cpp b/internal_system_v1/clientmainwindow.cpp index 085795b..ab58567 100644 --- a/internal_system_v1/clientmainwindow.cpp +++ b/internal_system_v1/clientmainwindow.cpp @@ -1,7 +1,14 @@ -#include "clientmainwindow.h" +锘�#include "clientmainwindow.h" #include "ui_clientmainwindow.h" #include <QDebug> #include <QFileDialog> +#include <QMessageBox> +#include <QSqlQuery> +#include <QSqlRecord> + +extern int g_comId; +extern QString g_dataRootPath; +QString g_auditDate; ClientMainWindow::ClientMainWindow(QWidget *parent) : QMainWindow(parent), @@ -9,16 +16,46 @@ { ui->setupUi(this); + ui->dateEdit->setDate(QDate::currentDate()); + g_auditDate = QDate::currentDate().toString("yyyy-MM-dd"); + ui->tableWidget->setColumnWidth(0,200); + ui->tableWidget->setColumnWidth(1,80); + ui->tableWidget->setColumnWidth(2,80); + ui->tableWidget->setColumnWidth(4,ui->tableWidget->columnWidth(4)+15); initUi(); + searchComName(); } ClientMainWindow::~ClientMainWindow() { delete ui; } +void ClientMainWindow::searchComName() +{ + QSqlQuery query; + QString sql = QString("select id,name,code from company_info"); + if(query.exec(sql)){ + qDebug()<<"size:"<<query.numRowsAffected(); + while(query.next()){ + int id = query.value(0).toInt(); + QString name = query.value(1).toString(); + QString code = query.value(2).toString(); + qDebug()<<"com select:"<<id<<name; + m_comInfo[name] = id; + //m_comCode[name] = code; + ui->comboBox_company->addItem(name); + } + } +} void ClientMainWindow::initUi() { + m_searchInfo = new SearchInfo(this); + ui->tabWidget->addTab(m_searchInfo,"淇℃伅鏌ヨ"); + + m_coverInfo = new CoverInfo(this); + m_coverInfo->setParent(ui->tab); + m_auditPro = new AuditProject(this); m_auditworkload = new AuditWorkload(this); m_problemMon = new ProblemMoney(this); @@ -39,8 +76,136 @@ ui->stackedWidget->setCurrentIndex(0); - m_coverInfo = new CoverInfo(this); - m_coverInfo->setParent(ui->tab); +// m_searchInfo = new SearchInfo(this); +// ui->tabWidget->addTab(m_searchInfo,"淇℃伅鏌ヨ"); + +// m_coverInfo = new CoverInfo(this); +// m_coverInfo->setParent(ui->tab); + + // 闅愯棌鎺夋煇涓�夐」 + ui->tabWidget->removeTab(3); // OK + + // 闂鏁存敼鍙拌处 + m_proRecStandingBook = new ProblemRectStandingBook(this); + ui->tabWidget->addTab(m_proRecStandingBook,"闂鏁存敼鍙拌处"); + + // 鍏宠仈鍚勪釜鍔熻兘妲� + 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))); + + // 鏂扮増鏈� + m_conInfo2 = new ConverInfo2(this); + ui->tabWidget->addTab(m_conInfo2,"鍩烘湰淇℃伅"); + + +} + +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,"瀵煎叆涓柇","璇风‘璁ゅ叕鍙稿熀鏈俊鎭凡缁忓瓨鍦�"); + break; + //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() @@ -116,3 +281,169 @@ 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; + +} + +void ClientMainWindow::calc() +{ + for(int i=1;i<ui->tableWidget->rowCount();++i){ + int sum = 0; + for(int j=4;j<ui->tableWidget->columnCount();++j){ + sum += ui->tableWidget->item(i,j)->text().toInt(); + } + ui->tableWidget->setItem(i,3,new QTableWidgetItem(QString::number(sum))); + + if(i==7){ // 瀛﹀巻 + int val = 0; + for(int j = 8;j<=10;++j){ + val += ui->tableWidget->item(j,3)->text().toInt(); + } + ui->tableWidget->setItem(i,3,new QTableWidgetItem(QString::number(val))); + } + + if(i==11){ // 鑱岀О + int val = 0; + for(int j = 12;j<=15;++j){ + val += ui->tableWidget->item(j,3)->text().toInt(); + } + ui->tableWidget->setItem(i,3,new QTableWidgetItem(QString::number(val))); + } + + if(i==20){ // 鐭ヨ瘑缁撴瀯 + int val = 0; + for(int j = 21;j<=28;++j){ + val += ui->tableWidget->item(j,3)->text().toInt(); + } + ui->tableWidget->setItem(i,3,new QTableWidgetItem(QString::number(val))); + } + + if(i==30){ // 瀹¤椤圭洰 + int val = 0; + for(int j = 31;j<=38;++j){ + val += ui->tableWidget->item(j,3)->text().toInt(); + } + ui->tableWidget->setItem(i,3,new QTableWidgetItem(QString::number(val))); + } + + if(i==41){ // 瀹¤鍙戠幇闂閲戦 + int val = 0; + for(int j = 42;j<=43;++j){ + val += ui->tableWidget->item(j,3)->text().toInt(); + } + ui->tableWidget->setItem(i,3,new QTableWidgetItem(QString::number(val))); + } + + if(i==43){ // 鍚堣鎬ч棶棰橀噾棰� + int val = 0; + for(int j = 44;j<=51;++j){ + val += ui->tableWidget->item(j,3)->text().toInt(); + } + ui->tableWidget->setItem(i,3,new QTableWidgetItem(QString::number(val))); + } + + if(i==52){ // 瀹¤鍙戠幇闂涓暟 + int val = 0; + for(int j = 53;j<=54;++j){ + val += ui->tableWidget->item(j,3)->text().toInt(); + } + ui->tableWidget->setItem(i,3,new QTableWidgetItem(QString::number(val))); + } + + if(i==54){ // 闈為噾棰濈被闂涓暟 + int val = 0; + for(int j = 55;j<=58;++j){ + val += ui->tableWidget->item(j,3)->text().toInt(); + } + ui->tableWidget->setItem(i,3,new QTableWidgetItem(QString::number(val))); + } + + if(i==59){ // 瀹¤鍙戠幇闂鏁存敼(閲戦绫�) + int val = 0; + for(int j = 60;j<=65;++j){ + val += ui->tableWidget->item(j,3)->text().toInt(); + } + ui->tableWidget->setItem(i,3,new QTableWidgetItem(QString::number(val))); + } + + if(i==66){ // 瀹¤鍙戠幇闂鏁存敼(闈為噾棰濈被) + int val = 0; + for(int j = 67;j<=70;++j){ + val += ui->tableWidget->item(j,3)->text().toInt(); + } + ui->tableWidget->setItem(i,3,new QTableWidgetItem(QString::number(val))); + } + + if(i==71){ // 澶勫垎 + int val = 0; + for(int j = 72;j<=74;++j){ + val += ui->tableWidget->item(j,3)->text().toInt(); + } + ui->tableWidget->setItem(i,3,new QTableWidgetItem(QString::number(val))); + } + } +} + +void ClientMainWindow::on_dateEdit_dateChanged(const QDate &date) +{ + g_auditDate = date.toString("yyyy-MM-dd"); + qDebug()<<g_auditDate; +} + +void ClientMainWindow::on_tableWidget_activated(const QModelIndex &index) +{ + qDebug()<<__FUNCTION__<<index; +} + +void ClientMainWindow::on_tableWidget_clicked(const QModelIndex &index) +{ + qDebug()<<__FUNCTION__<<index; +} + +void ClientMainWindow::on_tableWidget_itemEntered(QTableWidgetItem *item) +{ + qDebug()<<__FUNCTION__<<item; +} + +void ClientMainWindow::on_tableWidget_cellEntered(int row, int column) +{ + qDebug()<<__FUNCTION__<<row<<column; + calc(); +} + +void ClientMainWindow::on_tableWidget_cellClicked(int row, int column) +{ + qDebug()<<__FUNCTION__<<row<<column; + calc(); +} -- Gitblit v1.8.0