From 20ffcfb5507daf34f81346ca3dfa4c031e7b2fe3 Mon Sep 17 00:00:00 2001 From: wumu <mayi@mayi.com> Date: 星期日, 27 四月 2025 22:13:53 +0800 Subject: [PATCH] 0427 --- internal_system_v1/clientmainwindow.cpp | 1250 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 1,248 insertions(+), 2 deletions(-) diff --git a/internal_system_v1/clientmainwindow.cpp b/internal_system_v1/clientmainwindow.cpp index 442b832..f3a0e77 100644 --- a/internal_system_v1/clientmainwindow.cpp +++ b/internal_system_v1/clientmainwindow.cpp @@ -1,6 +1,17 @@ -#include "clientmainwindow.h" +锘�#include "clientmainwindow.h" #include "ui_clientmainwindow.h" #include <QDebug> +#include <QFileDialog> +#include <QMessageBox> +#include <QSqlQuery> +#include <QSqlRecord> +#include <QTimer> + +#pragma execution_character_set("utf-8") + +extern int g_comId; +extern QString g_dataRootPath; +QString g_auditDate; ClientMainWindow::ClientMainWindow(QWidget *parent) : QMainWindow(parent), @@ -8,16 +19,57 @@ { 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(); + + ui->statusBar->showMessage("灏侀潰淇℃伅鍔犺浇涓�..."); } 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::delay(int msec) +{ + QTimer::singleShot(msec, this, [=]{ + qDebug()<<"寤舵椂瀹屾垚鍟�..."; + emit loadExcelSignal(); + }); + qDebug()<<"寤舵椂鏃堕暱..."<<msec; +} 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); @@ -37,6 +89,186 @@ ui->stackedWidget->addWidget(m_caseClue); ui->stackedWidget->setCurrentIndex(0); + +// 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 + ui->tabWidget->removeTab(1); // OK 鑰佷笟鍔℃儏鍐佃〃 + ui->tabWidget->removeTab(0); // 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,"鍩烘湰淇℃伅"); + ui->tabWidget->insertTab(0,m_conInfo2,"灏侀潰淇℃伅"); + connect(this,SIGNAL(loadExcelSignal()),m_conInfo2,SLOT(showExcelSlot()),Qt::QueuedConnection); + // 鎺у埗鏄剧ず鐘舵�佹爮鐨勪俊鎭� + connect(m_conInfo2,&ConverInfo2::loadFinished,this,[=]{ + ui->statusBar->showMessage("灏侀潰淇℃伅鍔犺浇瀹屾垚",10*1000); + }); + // 鎺у埗鏄剧ず鍔犺浇杩涘害鐨勪俊鎭� + connect(m_conInfo2,&ConverInfo2::loadProgress,this,[=](int val){ + ui->statusBar->showMessage(QString("灏侀潰淇℃伅鍔犺浇宸插畬鎴� %1 %").arg(val)); + }); + + m_problemList = new ProblemList(this); + //ui->tabWidget->addTab(m_problemList,"闂娓呭崟"); + + m_problemRectifResult = new ProblemRectificationResult(this); + //ui->tabWidget->addTab(m_problemRectifResult,"鏁存敼鎴愭灉"); + + m_tableItemDelegate = new TableItemDelegate(); // 浠g悊 绂佺敤缂栬緫 + m_editDelegate = new QItemDelegate(this); // 鍙紪杈� + + ui->tableWidget->setItemDelegateForColumn(0,m_tableItemDelegate); + ui->tableWidget->setItemDelegateForColumn(1,m_tableItemDelegate); + ui->tableWidget->setItemDelegateForColumn(2,m_tableItemDelegate); + + // 3鍜�1 + m_threeMPList = new ThreeMergeProblemList(this); + ui->tabWidget->addTab(m_threeMPList,"涓夊悎涓�闂澶勭悊"); + + // 榛樿璋冪敤涓�涓嬩笅鎷夋鐨勮Е鍙戞搷浣� + on_comboBox_currentIndexChanged("浼佷笟(涓嶅惈閲戣瀺浼佷笟)"); + + // 鏈�鍚庤Е鍙戝姞杞界數瀛愯〃鏍肩殑淇″彿 + //emit loadExcelSignal(); + //qDebug()<<"鍙戝皠鍔犺浇鐢靛瓙琛ㄦ牸鐨勪俊鍙�"; + delay(1000); + + // 鍏宠仈鏇存柊鍏徃鍚嶄笅鎷夋鐨勪俊鎭〃 + connect(m_conInfo2,SIGNAL(updateComboListSignal(QMap<QString,ComInfo>&)),this,SLOT(updateComboList(QMap<QString,ComInfo>&))); + connect(m_conInfo2,SIGNAL(updateComboListSignal(QMap<QString,ComInfo>&)),m_threeMPList,SLOT(updateComboList(QMap<QString,ComInfo>&))); + + + // 鎺у埗琛ㄦ牸鍙樉绀哄洓浠ュ悗鐨勫唴瀹癸紝鍓嶉潰鐨�1-3閮ㄥ垎缁欓殣钘忔帀 + for(int i=1;i<=29;++i){ + ui->tableWidget->hideRow(i); + } + ui->tableWidget->hideRow(40); +} + +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() @@ -87,7 +319,7 @@ doc.write("A1","鐮佽殎杞欢"); doc.mergeCells("A1:A4"); doc.mergeCells("B1:C1"); - if(doc.saveAs("test.xlsx")) + if(doc.saveAs("Data/test.xlsx")) { qDebug()<<"save is ok"; }else{ @@ -95,3 +327,1017 @@ } } + +void ClientMainWindow::on_pushButton_2_clicked() +{ + QXlsx::Document doc("test.xlsx"); + qDebug()<<doc.read("A1"); + qDebug()<<doc.read("B1"); + qDebug()<<doc.read("C1"); +} + +void ClientMainWindow::on_pushButton_openXlsxFile_clicked() +{ + QStringList files = QFileDialog::getOpenFileNames(this,"鎵撳紑鐢靛瓙鏂囨。","./","*.xlsx *.xls"); + qDebug()<<"files:"<<files; + for(auto f:files){ + 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))); + ui->tableWidget->setItem(5,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){ // 瀹¤椤圭洰 + // 6鍒楅兘寰楁眰鍜� + for(int k=0;k<6;++k){ + int val = 0; + for(int j = 31;j<=38;++j){ + val += ui->tableWidget->item(j,3+k)->text().toInt(); + } + ui->tableWidget->setItem(i,3+k,new QTableWidgetItem(QString::number(val))); + } + + } + + if(i==41){ // 瀹¤鍙戠幇闂閲戦 + for(int k=0;k<6;++k){ + double val = 0; + for(int j = 42;j<=43;++j){ + val += ui->tableWidget->item(j,3+k)->text().toDouble(); + } + ui->tableWidget->setItem(i,3+k,new QTableWidgetItem(QString::number(val))); + } + + } + + if(i==43){ // 鍚堣鎬ч棶棰橀噾棰� + for(int k=0;k<6;++k){ + double val = 0; + for(int j = 44;j<=51;++j){ + val += ui->tableWidget->item(j,3+k)->text().toDouble(); + } + ui->tableWidget->setItem(i,3+k,new QTableWidgetItem(QString::number(val))); + } + + } + + if(i==52){ // 瀹¤鍙戠幇闂涓暟 + for(int k=0;k<6;++k){ + int val = 0; + for(int j = 53;j<=54;++j){ + val += ui->tableWidget->item(j,3+k)->text().toInt(); + } + ui->tableWidget->setItem(i,3+k,new QTableWidgetItem(QString::number(val))); + } + + } + + if(i==54){ // 闈為噾棰濈被闂涓暟 + for(int k=0;k<6;++k){ + int val = 0; + for(int j = 55;j<=58;++j){ + val += ui->tableWidget->item(j,3+k)->text().toInt(); + } + ui->tableWidget->setItem(i,3+k,new QTableWidgetItem(QString::number(val))); + } + + } + + if(i==59){ // 瀹¤鍙戠幇闂鏁存敼(閲戦绫�) + for(int k=0;k<6;++k){ + double val = 0; + for(int j = 60;j<=65;++j){ + val += ui->tableWidget->item(j,3+k)->text().toDouble(); + } + ui->tableWidget->setItem(i,3+k,new QTableWidgetItem(QString::number(val))); + } + + } + + if(i==66){ // 瀹¤鍙戠幇闂鏁存敼(闈為噾棰濈被) + for(int k=0;k<6;++k){ + int val = 0; + for(int j = 67;j<=70;++j){ + val += ui->tableWidget->item(j,3+k)->text().toInt(); + } + ui->tableWidget->setItem(i,3+k,new QTableWidgetItem(QString::number(val))); + } + + } + + if(i==71){ // 澶勫垎 + for(int k=0;k<6;++k){ + int val = 0; + for(int j = 72;j<=74;++j){ + val += ui->tableWidget->item(j,3+k)->text().toInt(); + } + ui->tableWidget->setItem(i,3+k,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(); +} + +void ClientMainWindow::on_pushButton_save_clicked() +{ + // 淇濆瓨鏁版嵁锛岀粨鏋勬瘮杈冪壒娈婏紝闇�瑕佸琛屽鍒楀悓鏃跺啓鍏� + // 寰楄�冭檻鍒嗘鍗曡〃澶勭悊鏂瑰彲 + // 鑾峰彇鍐欏埌鏂囦欢閲岄潰锛屾瘡涓崟浣嶄竴涓枃浠� + // 鎶婂崟浣嶇被鍨嬩綔涓轰竴涓垪鍗冲彲 + qDebug()<<"淇濆瓨鏁版嵁"; + for(int i=1;i<ui->tableWidget->rowCount();++i){ + qDebug()<<"data:"<<ui->tableWidget->item(i,1)->text()<<" "<<ui->tableWidget->item(i,3)->text(); + } + // 鍏堝垽鏂叕鍙搞�佸勾浠藉湪涓嶅湪锛屼笉鍦ㄥ垯鏂板锛屽湪鍒欎慨鏀� + QString year = ui->dateEdit_year->text(); + QString name = ui->comboBox_company->currentText(); + QString sql = QString("select name from comprehensive_entry_info where name='%1' and year='%2'").arg(name).arg(year); + qDebug()<<"sql select:"<<sql; + QSqlQuery query; + bool nameExsit = false; + if(query.exec(sql)) + { + qDebug()<<QString("select comprehensive_entry_info ok..."); + while (query.next()) { + nameExsit = true; + qDebug()<<"鍏徃鍚嶅瓨鍦�:"<<ui->comboBox_company->currentText(); + break; + } + }else{ + qDebug()<<QString("select comprehensive_entry_info fail...")<<query.lastError().text(); + } + if(!nameExsit){ + qDebug()<<"鍏徃鍚嶄笉瀛樺湪:"<<ui->comboBox_company->currentText(); + // 鎻掑叆 + sql = QString("insert into comprehensive_entry_info (name,_030000,_030001,_030100,_030101,_030200,_030210,_030220,_030221,_030222,_030223,_030230,\ + _030231,\ + _030232,\ + _030233,\ + _030234,\ + _030240,\ + _030241,\ + _030242,\ + _030243,\ + _030250,\ + _030251,\ + _030252,\ + _030253,\ + _030254,\ + _030255,\ + _030256,\ + _030257,\ + _030258,\ + _030260,\ + _030300,\ + _030301,\ + _030302,\ + _030303,\ + _030304,\ + _030305,\ + _030306,\ + _030307,\ + _030308,\ + _030310,\ + _030400,\ + _030500,\ + _030510,\ + _030520,\ + _030521,\ + _030522,\ + _030523,\ + _030524,\ + _030525,\ + _030526,\ + _030527,\ + _030528,\ + _030600,\ + _030610,\ + _030620,\ + _030621,\ + _030622,\ + _030623,\ + _030624,\ + _030700,\ + _030701,\ + _030702,\ + _030703,\ + _030704,\ + _030705,\ + _030706,\ + _030800,\ + _030801,\ + _030802,\ + _030803,\ + _030804,\ + _030900,\ + _030901,\ + _030902,\ + _030903,\ + _031000,\ + _031001,\ + company_type,\ + year\ + ) values ('%1','%2','%3','%4','%5','%6','%7','%8','%9','%10','%11','%12','%13','%14','%15','%16','%17','%18','%19','%20','%21','%22','%23','%24','%25','%26'" + ",'%27','%28','%29','%30','%31','%32','%33','%34','%35','%36','%37','%38','%39','%40','%41','%42','%43','%44','%45','%46','%47','%48','%49','%50','%51'" + ",'%52','%53','%54','%55','%56','%57','%58','%59','%60','%61','%62','%63','%64','%65','%66','%67','%68','%69','%70','%71','%72','%73','%74','%75','%76'" + ",'%77','%78','%79')").arg(ui->comboBox_company->currentText()).arg(ui->tableWidget->item(1,3)->text()) + .arg(ui->tableWidget->item(2,3)->text()).arg(ui->tableWidget->item(3,3)->text()).arg(ui->tableWidget->item(4,3)->text()).arg(ui->tableWidget->item(5,3)->text()).arg(ui->tableWidget->item(6,3)->text()) + .arg(ui->tableWidget->item(7,3)->text()).arg(ui->tableWidget->item(8,3)->text()).arg(ui->tableWidget->item(9,3)->text()).arg(ui->tableWidget->item(10,3)->text()).arg(ui->tableWidget->item(11,3)->text()) + .arg(ui->tableWidget->item(12,3)->text()).arg(ui->tableWidget->item(13,3)->text()).arg(ui->tableWidget->item(14,3)->text()).arg(ui->tableWidget->item(15,3)->text()).arg(ui->tableWidget->item(16,3)->text()) + .arg(ui->tableWidget->item(17,3)->text()).arg(ui->tableWidget->item(18,3)->text()).arg(ui->tableWidget->item(19,3)->text()).arg(ui->tableWidget->item(20,3)->text()).arg(ui->tableWidget->item(21,3)->text()) + .arg(ui->tableWidget->item(22,3)->text()).arg(ui->tableWidget->item(23,3)->text()).arg(ui->tableWidget->item(24,3)->text()).arg(ui->tableWidget->item(25,3)->text()).arg(ui->tableWidget->item(26,3)->text()) + .arg(ui->tableWidget->item(27,3)->text()).arg(ui->tableWidget->item(28,3)->text()).arg(ui->tableWidget->item(29,3)->text()).arg(ui->tableWidget->item(30,3)->text()).arg(ui->tableWidget->item(31,3)->text()) + .arg(ui->tableWidget->item(32,3)->text()).arg(ui->tableWidget->item(33,3)->text()).arg(ui->tableWidget->item(34,3)->text()).arg(ui->tableWidget->item(35,3)->text()).arg(ui->tableWidget->item(36,3)->text()) + .arg(ui->tableWidget->item(37,3)->text()).arg(ui->tableWidget->item(38,3)->text()).arg(ui->tableWidget->item(39,3)->text()).arg(ui->tableWidget->item(40,3)->text()).arg(ui->tableWidget->item(41,3)->text()) + .arg(ui->tableWidget->item(42,3)->text()).arg(ui->tableWidget->item(43,3)->text()).arg(ui->tableWidget->item(44,3)->text()).arg(ui->tableWidget->item(45,3)->text()).arg(ui->tableWidget->item(46,3)->text()) + .arg(ui->tableWidget->item(47,3)->text()).arg(ui->tableWidget->item(48,3)->text()).arg(ui->tableWidget->item(49,3)->text()).arg(ui->tableWidget->item(50,3)->text()).arg(ui->tableWidget->item(51,3)->text()) + .arg(ui->tableWidget->item(52,3)->text()).arg(ui->tableWidget->item(53,3)->text()).arg(ui->tableWidget->item(54,3)->text()).arg(ui->tableWidget->item(55,3)->text()).arg(ui->tableWidget->item(56,3)->text()) + .arg(ui->tableWidget->item(57,3)->text()).arg(ui->tableWidget->item(58,3)->text()).arg(ui->tableWidget->item(59,3)->text()).arg(ui->tableWidget->item(60,3)->text()).arg(ui->tableWidget->item(61,3)->text()) + .arg(ui->tableWidget->item(62,3)->text()).arg(ui->tableWidget->item(63,3)->text()).arg(ui->tableWidget->item(64,3)->text()).arg(ui->tableWidget->item(65,3)->text()).arg(ui->tableWidget->item(66,3)->text()) + .arg(ui->tableWidget->item(67,3)->text()).arg(ui->tableWidget->item(68,3)->text()).arg(ui->tableWidget->item(69,3)->text()).arg(ui->tableWidget->item(70,3)->text()).arg(ui->tableWidget->item(71,3)->text()) + .arg(ui->tableWidget->item(72,3)->text()).arg(ui->tableWidget->item(73,3)->text()).arg(ui->tableWidget->item(74,3)->text()).arg(ui->tableWidget->item(75,3)->text()).arg(ui->tableWidget->item(76,3)->text()) + .arg(ui->comboBox->currentText()).arg(ui->dateEdit_year->text()); + + qDebug()<<"comprehensive_entry_info insert sql:"<<sql; + if(query.exec(sql)){ + qDebug()<<"comprehensive_entry_info insert sql ok"; + QMessageBox::information(this,"鏂版暟鎹綍鍏ユ垚鍔�",QString("鏂板綍鍏ュ叕鍙革細%1 淇℃伅鎴愬姛銆�").arg(ui->comboBox_company->currentText())); + }else{ + qDebug()<<"comprehensive_entry_info insert sql fail:"<<query.lastError().text(); + QMessageBox::information(this,"鏂版暟鎹綍鍏ュけ璐�",QString("鏂板綍鍏ュ叕鍙革細%1 淇℃伅澶辫触銆�").arg(ui->comboBox_company->currentText())); + } + + }else{ + // 鏇存柊 + + sql = QString("update comprehensive_entry_info set _030000='%1',_030001='%2',_030100='%3',_030101='%4',_030200='%5',_030210='%6',_030220='%7',_030221='%8',_030222='%9',_030223='%10',_030230='%11'" + ",_030231='%12',_030232='%13',_030233='%14',_030234='%15',_030240='%16',_030241='%17',_030242='%18',_030243='%19',_030250='%20',_030251='%21'" + ",_030252='%22',_030253='%23',_030254='%24',_030255='%25',_030256='%26',_030257='%27',_030258='%28',_030260='%29',_030300='%30',_030301='%31'" + ",_030302='%32',_030303='%33',_030304='%34',_030305='%35',_030306='%36',_030307='%37',_030308='%38',_030310='%39',_030400='%40',_030500='%41'" + ",_030510='%42',_030520='%43',_030521='%44',_030522='%45',_030523='%46',_030524='%47',_030525='%48',_030526='%49',_030527='%50',_030528='%51'" + ",_030600='%52',_030610='%53',_030620='%54',_030621='%55',_030622='%56',_030623='%57',_030624='%58',_030700='%59',_030701='%60',_030702='%61'" + ",_030703='%62',_030704='%63',_030705='%64',_030706='%65',_030800='%66',_030801='%67',_030802='%68',_030803='%69',_030804='%70',_030900='%71'" + ",_030901='%72',_030902='%73',_030903='%74',_031000='%75',_031001='%76',company_type='%77' where name='%78' and year='%79'").arg(ui->tableWidget->item(1,3)->text()) + .arg(ui->tableWidget->item(2,3)->text()).arg(ui->tableWidget->item(3,3)->text()).arg(ui->tableWidget->item(4,3)->text()).arg(ui->tableWidget->item(5,3)->text()).arg(ui->tableWidget->item(6,3)->text()) + .arg(ui->tableWidget->item(7,3)->text()).arg(ui->tableWidget->item(8,3)->text()).arg(ui->tableWidget->item(9,3)->text()).arg(ui->tableWidget->item(10,3)->text()).arg(ui->tableWidget->item(11,3)->text()) + .arg(ui->tableWidget->item(12,3)->text()).arg(ui->tableWidget->item(13,3)->text()).arg(ui->tableWidget->item(14,3)->text()).arg(ui->tableWidget->item(15,3)->text()).arg(ui->tableWidget->item(16,3)->text()) + .arg(ui->tableWidget->item(17,3)->text()).arg(ui->tableWidget->item(18,3)->text()).arg(ui->tableWidget->item(19,3)->text()).arg(ui->tableWidget->item(20,3)->text()).arg(ui->tableWidget->item(21,3)->text()) + .arg(ui->tableWidget->item(22,3)->text()).arg(ui->tableWidget->item(23,3)->text()).arg(ui->tableWidget->item(24,3)->text()).arg(ui->tableWidget->item(25,3)->text()).arg(ui->tableWidget->item(26,3)->text()) + .arg(ui->tableWidget->item(27,3)->text()).arg(ui->tableWidget->item(28,3)->text()).arg(ui->tableWidget->item(29,3)->text()).arg(ui->tableWidget->item(30,3)->text()).arg(ui->tableWidget->item(31,3)->text()) + .arg(ui->tableWidget->item(32,3)->text()).arg(ui->tableWidget->item(33,3)->text()).arg(ui->tableWidget->item(34,3)->text()).arg(ui->tableWidget->item(35,3)->text()).arg(ui->tableWidget->item(36,3)->text()) + .arg(ui->tableWidget->item(37,3)->text()).arg(ui->tableWidget->item(38,3)->text()).arg(ui->tableWidget->item(39,3)->text()).arg(ui->tableWidget->item(40,3)->text()).arg(ui->tableWidget->item(41,3)->text()) + .arg(ui->tableWidget->item(42,3)->text()).arg(ui->tableWidget->item(43,3)->text()).arg(ui->tableWidget->item(44,3)->text()).arg(ui->tableWidget->item(45,3)->text()).arg(ui->tableWidget->item(46,3)->text()) + .arg(ui->tableWidget->item(47,3)->text()).arg(ui->tableWidget->item(48,3)->text()).arg(ui->tableWidget->item(49,3)->text()).arg(ui->tableWidget->item(50,3)->text()).arg(ui->tableWidget->item(51,3)->text()) + .arg(ui->tableWidget->item(52,3)->text()).arg(ui->tableWidget->item(53,3)->text()).arg(ui->tableWidget->item(54,3)->text()).arg(ui->tableWidget->item(55,3)->text()).arg(ui->tableWidget->item(56,3)->text()) + .arg(ui->tableWidget->item(57,3)->text()).arg(ui->tableWidget->item(58,3)->text()).arg(ui->tableWidget->item(59,3)->text()).arg(ui->tableWidget->item(60,3)->text()).arg(ui->tableWidget->item(61,3)->text()) + .arg(ui->tableWidget->item(62,3)->text()).arg(ui->tableWidget->item(63,3)->text()).arg(ui->tableWidget->item(64,3)->text()).arg(ui->tableWidget->item(65,3)->text()).arg(ui->tableWidget->item(66,3)->text()) + .arg(ui->tableWidget->item(67,3)->text()).arg(ui->tableWidget->item(68,3)->text()).arg(ui->tableWidget->item(69,3)->text()).arg(ui->tableWidget->item(70,3)->text()).arg(ui->tableWidget->item(71,3)->text()) + .arg(ui->tableWidget->item(72,3)->text()).arg(ui->tableWidget->item(73,3)->text()).arg(ui->tableWidget->item(74,3)->text()).arg(ui->tableWidget->item(75,3)->text()).arg(ui->tableWidget->item(76,3)->text()) + .arg(ui->comboBox->currentText()).arg(ui->comboBox_company->currentText()).arg(ui->dateEdit_year->text()); + + qDebug()<<"update sql:"<<sql; + if(query.exec(sql)){ + qDebug()<<"update ok:comprehensive_entry_info"; + QMessageBox::information(this,"鏇存柊褰曞叆鎴愬姛",QString("褰曞叆鍏徃锛�%1 淇℃伅鎴愬姛銆�").arg(ui->comboBox_company->currentText())); + }else{ + qDebug()<<"update fail:comprehensive_entry_info"<<query.lastError().text(); + QMessageBox::information(this,"鏇存柊褰曞叆澶辫触",QString("鏂板綍鍏ュ叕鍙革細%1 淇℃伅澶辫触銆�").arg(ui->comboBox_company->currentText())); + } + } + + +} + +void ClientMainWindow::on_comboBox_currentIndexChanged(const QString &arg1) +{ + // 鏄惁鑷姩娓呴櫎 + if(ui->checkBox->isChecked()){ + qDebug()<<"鑷姩娓呴櫎鍊�"; + for(int i=30;i<ui->tableWidget->rowCount();++i){ + for(int j=4;j<ui->tableWidget->columnCount();++j){ + ui->tableWidget->setItem(i,j,new QTableWidgetItem("0")); + } + } + } + qDebug()<<"褰撳墠"<<arg1; + if(arg1 == "浼佷笟(涓嶅惈閲戣瀺浼佷笟)"){ + ui->tableWidget->setItemDelegateForColumn(4,m_editDelegate); + + }else { + ui->tableWidget->setItemDelegateForColumn(4,m_tableItemDelegate); + } + + if(arg1 == "閲戣瀺浼佷笟"){ + ui->tableWidget->setItemDelegateForColumn(5,m_editDelegate); + }else { + ui->tableWidget->setItemDelegateForColumn(5,m_tableItemDelegate); + } + if(arg1 == "鏈哄叧"){ + ui->tableWidget->setItemDelegateForColumn(6,m_editDelegate); + }else { + ui->tableWidget->setItemDelegateForColumn(6,m_tableItemDelegate); + } + if(arg1 == "浜嬩笟鍗曚綅"){ + ui->tableWidget->setItemDelegateForColumn(7,m_editDelegate); + }else{ + ui->tableWidget->setItemDelegateForColumn(7,m_tableItemDelegate); + } + if(arg1 == "鍏朵粬"){ + ui->tableWidget->setItemDelegateForColumn(8,m_editDelegate); + }else{ + ui->tableWidget->setItemDelegateForColumn(8,m_tableItemDelegate); + } + + // 淇敼鑳屾櫙鑹� + QColor selectColor(142,213,213); + QColor unSelectColor(255,255,255); + QMap<QString,int> index={{"浼佷笟(涓嶅惈閲戣瀺浼佷笟)",4},{"閲戣瀺浼佷笟",5},{"鏈哄叧",6},{"浜嬩笟鍗曚綅",7},{"鍏朵粬",8}}; + for(int i=4;i<9;++i){ + for(int j=0;j<ui->tableWidget->rowCount();++j){ + if(i==index[arg1]){ + ui->tableWidget->item(j,i)->setBackgroundColor(selectColor); + }else{ + ui->tableWidget->item(j,i)->setBackgroundColor(unSelectColor); + } + } + } + +} + +void ClientMainWindow::on_pushButton_reset_clicked() +{ + // 閲嶇疆鏌愪竴鍒楁暟鎹� + QString curText = ui->comboBox_2->currentText(); + int index = 4; + if(curText == "浼佷笟(涓嶅惈閲戣瀺浼佷笟)"){ + index = 4; + }else if(curText == "閲戣瀺浼佷笟"){ + index = 5; + }else if(curText == "鏈哄叧"){ + index = 6; + }else if(curText == "浜嬩笟鍗曚綅"){ + index = 7; + }else if(curText == "鍏朵粬"){ + index = 8; + } + qDebug()<<"閲嶇疆鍒楃储寮�:"<<index; + + QMessageBox::StandardButton rb = QMessageBox::question ( \ + this, "閲嶈鎻愮ず", QString("浣犵‘瀹氳閲嶇疆:%1 褰撳墠鍒楁暟鎹悧").arg(curText), \ + QMessageBox::Yes | QMessageBox::No, QMessageBox::Yes ); + + if ( rb == QMessageBox::Yes ) { + for(int i=1;i<ui->tableWidget->rowCount();++i){ + ui->tableWidget->item(i,index)->setData(Qt::EditRole,"0"); + } + qDebug()<<"閲嶇疆"; + }else{ + qDebug()<<"涓嶉噸缃�"; + } + + + +} + +void ClientMainWindow::updateComboList(QMap<QString, ComInfo> &nameAndComInfos) +{ + // 鍏堟竻闄わ紝鍐嶉噸鏂版坊鍔� + ui->comboBox_company->clear(); + + for(auto kv:nameAndComInfos.keys()){ + ui->comboBox_company->addItem(kv); + } +} + +void ClientMainWindow::on_pushButton_save_export_clicked() +{ + // 鑾峰彇褰撳墠鍏徃鍚嶅瓧銆佸強琛ㄦ牸鏁版嵁 + QString name = ui->comboBox_company->currentText(); + NeiShenZongHeInfo nszh; + nszh.name = name; // 缁欏叕鍙歌祴鍊� + qDebug()<<"淇濆瓨瀵煎嚭:"<<name; + + // 鍥� 椤圭洰瀹¤ 鍗曚綅 涓� + for(int i=0;i<5;++i){ + nszh.code_030300[i] = ui->tableWidget->item(30,4+i)->text().toInt(); + } + qDebug()<<"淇濆瓨瀵煎嚭:code_030300"; + for(int i=0;i<5;++i){ + nszh.code_030301[i] = ui->tableWidget->item(31,4+i)->text().toInt(); + } + for(int i=0;i<5;++i){ + nszh.code_030302[i] = ui->tableWidget->item(32,4+i)->text().toInt(); + } + for(int i=0;i<5;++i){ + nszh.code_030303[i] = ui->tableWidget->item(33,4+i)->text().toInt(); + } + for(int i=0;i<5;++i){ + nszh.code_030304[i] = ui->tableWidget->item(34,4+i)->text().toInt(); + } + for(int i=0;i<5;++i){ + nszh.code_030305[i] = ui->tableWidget->item(35,4+i)->text().toInt(); + } + for(int i=0;i<5;++i){ + nszh.code_030306[i] = ui->tableWidget->item(36,4+i)->text().toInt(); + } + for(int i=0;i<5;++i){ + nszh.code_030307[i] = ui->tableWidget->item(37,4+i)->text().toInt(); + } + for(int i=0;i<5;++i){ + nszh.code_030308[i] = ui->tableWidget->item(38,4+i)->text().toInt(); + } + for(int i=0;i<5;++i){ + nszh.code_030310[i] = ui->tableWidget->item(39,4+i)->text().toInt(); + } + qDebug()<<"淇濆瓨瀵煎嚭:code_030310"; + + // 鍏�佸璁″彂鐜伴棶棰橀噾棰� 鍗曚綅 鍏� + for(int i=0;i<5;++i){ + nszh.code_030500[i] = ui->tableWidget->item(41,4+i)->text().toDouble(); + } + for(int i=0;i<5;++i){ + nszh.code_030510[i] = ui->tableWidget->item(42,4+i)->text().toDouble(); + } + for(int i=0;i<5;++i){ + nszh.code_030520[i] = ui->tableWidget->item(43,4+i)->text().toDouble(); + } + for(int i=0;i<5;++i){ + nszh.code_030521[i] = ui->tableWidget->item(44,4+i)->text().toDouble(); + } + for(int i=0;i<5;++i){ + nszh.code_030522[i] = ui->tableWidget->item(45,4+i)->text().toDouble(); + } + for(int i=0;i<5;++i){ + nszh.code_030523[i] = ui->tableWidget->item(46,4+i)->text().toDouble(); + } + for(int i=0;i<5;++i){ + nszh.code_030524[i] = ui->tableWidget->item(47,4+i)->text().toDouble(); + } + for(int i=0;i<5;++i){ + nszh.code_030525[i] = ui->tableWidget->item(48,4+i)->text().toDouble(); + } + for(int i=0;i<5;++i){ + nszh.code_030526[i] = ui->tableWidget->item(49,4+i)->text().toDouble(); + } + for(int i=0;i<5;++i){ + nszh.code_030527[i] = ui->tableWidget->item(50,4+i)->text().toDouble(); + } + for(int i=0;i<5;++i){ + nszh.code_030528[i] = ui->tableWidget->item(51,4+i)->text().toDouble(); + } + qDebug()<<"淇濆瓨瀵煎嚭:code_030528"; + + // 涓冦�佸璁″彂鐜伴棶棰樹釜鏁� + for(int i=0;i<5;++i){ + nszh.code_030600[i] = ui->tableWidget->item(52,4+i)->text().toInt(); + } + for(int i=0;i<5;++i){ + nszh.code_030610[i] = ui->tableWidget->item(53,4+i)->text().toInt(); + } + for(int i=0;i<5;++i){ + nszh.code_030620[i] = ui->tableWidget->item(54,4+i)->text().toInt(); + } + for(int i=0;i<5;++i){ + nszh.code_030621[i] = ui->tableWidget->item(55,4+i)->text().toInt(); + } + for(int i=0;i<5;++i){ + nszh.code_030622[i] = ui->tableWidget->item(56,4+i)->text().toInt(); + } + for(int i=0;i<5;++i){ + nszh.code_030623[i] = ui->tableWidget->item(57,4+i)->text().toInt(); + } + for(int i=0;i<5;++i){ + nszh.code_030624[i] = ui->tableWidget->item(58,4+i)->text().toInt(); + } + qDebug()<<"淇濆瓨瀵煎嚭:code_030624"; + + // 鍏�佸璁″彂鐜伴棶棰樻暣鏀癸紙閲戦绫伙級 鍗曚綅 鍏� + for(int i=0;i<5;++i){ + nszh.code_030700[i] = ui->tableWidget->item(59,4+i)->text().toDouble(); + } + for(int i=0;i<5;++i){ + nszh.code_030701[i] = ui->tableWidget->item(60,4+i)->text().toDouble(); + } + for(int i=0;i<5;++i){ + nszh.code_030702[i] = ui->tableWidget->item(61,4+i)->text().toDouble(); + } + for(int i=0;i<5;++i){ + nszh.code_030703[i] = ui->tableWidget->item(62,4+i)->text().toDouble(); + } + for(int i=0;i<5;++i){ + nszh.code_030704[i] = ui->tableWidget->item(63,4+i)->text().toDouble(); + } + for(int i=0;i<5;++i){ + nszh.code_030705[i] = ui->tableWidget->item(64,4+i)->text().toDouble(); + } + for(int i=0;i<5;++i){ + nszh.code_030706[i] = ui->tableWidget->item(65,4+i)->text().toDouble(); + } + qDebug()<<"淇濆瓨瀵煎嚭:code_030706"; + + // 涔濄�佸璁″彂鐜伴棶棰樻暣鏀癸紙闈為噾棰濈被锛� 鍗曚綅 涓� + for(int i=0;i<5;++i){ + nszh.code_030800[i] = ui->tableWidget->item(66,4+i)->text().toInt(); + } + for(int i=0;i<5;++i){ + nszh.code_030801[i] = ui->tableWidget->item(67,4+i)->text().toInt(); + } + for(int i=0;i<5;++i){ + nszh.code_030802[i] = ui->tableWidget->item(68,4+i)->text().toInt(); + } + for(int i=0;i<5;++i){ + nszh.code_030803[i] = ui->tableWidget->item(69,4+i)->text().toInt(); + } + for(int i=0;i<5;++i){ + nszh.code_030804[i] = ui->tableWidget->item(70,4+i)->text().toInt(); + } + qDebug()<<"淇濆瓨瀵煎嚭:code_030804"; + + // 鍗併�佹牴鎹璁″缓璁粰浜堝厷绾�佹斂鍔″拰鍐呴儴绾緥澶勫垎 鍗曚綅 浜� + for(int i=0;i<5;++i){ + nszh.code_030900[i] = ui->tableWidget->item(71,4+i)->text().toInt(); + } + for(int i=0;i<5;++i){ + nszh.code_030901[i] = ui->tableWidget->item(72,4+i)->text().toInt(); + } + for(int i=0;i<5;++i){ + nszh.code_030902[i] = ui->tableWidget->item(73,4+i)->text().toInt(); + } + for(int i=0;i<5;++i){ + nszh.code_030903[i] = ui->tableWidget->item(74,4+i)->text().toInt(); + } + qDebug()<<"淇濆瓨瀵煎嚭:code_030903"; + + // 鍗佷竴銆佸悜鍙告硶鏈哄叧绉婚�佹垨鎶ュ憡妗堜欢绾跨储 + for(int i=0;i<5;++i){ + nszh.code_031000[i] = ui->tableWidget->item(75,4+i)->text().toInt(); + } + for(int i=0;i<5;++i){ + nszh.code_031001[i] = ui->tableWidget->item(76,4+i)->text().toInt(); + } + qDebug()<<"淇濆瓨瀵煎嚭:code_031001"; + + // 瀵煎嚭淇濆瓨 + ExportToFile etf(this); + etf.saveToExcelFromNeiShenZonghe(name,nszh); +} + +void ClientMainWindow::on_comboBox_company_currentTextChanged(const QString &arg1) +{ + qDebug()<<"鍏徃鍚嶅瓧鍙戠敓浜嗗彉鍖�:"<<arg1; + // 鏍规嵁鍏徃鍚嶆潵銆佸勾浠芥煡璇㈡墍鏈夌殑鏁版嵁锛屾牴鎹煡璇㈠埌鐨勪紒涓氱被鍨嬫潵缁欐寚瀹氱殑鍒楀啓鍏ユ暟鎹� + QString year = ui->dateEdit_year->text(); + QString sql = QString("select * from comprehensive_entry_info where name='%1' and year='%2'").arg(arg1).arg(year); + + QSqlQuery query; + if(query.exec(sql)) + { + qDebug()<<"鏌ヨ鍒扮患鍚堣〃淇℃伅:"<<arg1; + int row=0; + while(query.next()){ // 娣诲姞缁撴灉闆� + row++; + QString com_type = query.value(78).toString(); + int column_index = 4; + if(com_type == "浼佷笟(涓嶅惈閲戣瀺浼佷笟)"){ + column_index = 4; + }else if(com_type == "閲戣瀺浼佷笟"){ + column_index = 5; + }else if(com_type == "鏈哄叧"){ + column_index = 6; + }else if(com_type == "浜嬩笟鍗曚綅"){ + column_index = 7; + }else if(com_type == "鍏朵粬"){ + column_index = 8; + } + // 缁欐瘡椤硅祴鍊� + for(int i=31;i<78;++i){ + ui->tableWidget->setItem(i-1,column_index,new QTableWidgetItem(query.value(i).toString())); + } + } + qDebug()<<"row:"<<row; + if(row == 0){ + // 灏辫娓呯┖鐩墠鎵�鏈夌殑鍐呭锛岄兘缃负0 + for(int i=4;i<9;++i){ + for(int j=30;j<78;++j){ + ui->tableWidget->setItem(j,i,new QTableWidgetItem("0")); + } + } + } + }else{ + qDebug()<<"娌℃湁鏌ヨ鍒扮患鍚堣〃淇℃伅:"<<arg1; + } +} + +void ClientMainWindow::on_pushButton_merge_3And1_clicked() +{ + // 鎸夊勾搴﹀拰鍏徃鍚嶏紝杩涜鍏ㄩ儴鐨勫悎骞讹紝鍚堝苟鐨勬椂鍊欓渶瑕佹煡璇㈠嚭瀛楁鏉ワ紝鎸夊瓧娈靛悎骞� + // 鏌ヨ涓夊悎涓�鐨勮〃锛屽悎骞跺埌缁煎悎琛紝鍚堝苟涔嬪墠鎶婂唴瀹瑰叏閮ㄩ兘瀛樺偍涓�閬嶏紝鐒跺悗鍐嶇粺涓�鎻掑叆鎴栬�呮洿鏂拌繘琛ㄦ牸涓� + QString name = ui->comboBox_company->currentText(); + QString year = ui->dateEdit_year->text(); + + qDebug()<<"name:"<<ui->comboBox_company->currentText()<<" year:"<<ui->dateEdit_year->text(); + + QString sql = QString("select * from standing_book_info where 璐d换涓讳綋鍚嶇О='%1' and 瀹¤骞村害='%2'").arg(name).arg(year); + + qDebug()<<"sql:"<<sql; + + // 鍑嗗閿�煎锛屾潵淇濆瓨瀛楁鍚嶅拰涓夊悎涓�鐨勭粨鏋滐紝閫氳繃缁撴灉鎷垮瓧娈靛悕锛屾帴鐫�鍐嶆嬁鍑哄搴旂殑鍊兼潵缁剆ql璇彞 + QMap<QString,QString> names_map; + QMap<QString,double> infos_map; + // 鍥� 瀹¤椤圭洰 + names_map["璐交钀藉疄鍥藉閲嶅ぇ鏀跨瓥鎺柦瀹¤"] = "_030301"; + names_map["璐㈡斂璐㈠姟鏀舵敮瀹¤"] = "_030302"; + names_map["鍥哄畾璧勪骇鎶曡祫瀹¤"] = "_030303"; + names_map["鍐呴儴鎺у埗鍜岄闄╃鐞嗗璁�"] = "_030304"; + names_map["缁忔祹璐d换瀹¤"] = "_030305"; + names_map["淇℃伅璐d换瀹¤"] = "_030306"; + names_map["澧冨瀹¤"] = "_030307"; + names_map["鍏朵粬"] = "_030308"; + names_map["澶栨嫇澶栧寘椤圭洰"] = "_030310"; + + // 鍏� 瀹¤鍙戠幇闂閲戦 + names_map["鍏朵腑锛氱哗鏁堢被闂閲戦"] = "_030510"; + names_map["鍚堣鎬ч棶棰橀噾棰�"] = "_030520"; + names_map["鍏朵腑锛氫細璁℃牳绠楁柟闈�"] = "_030521"; + names_map["杩濊浣跨敤璧勯噾"] = "_030522"; + names_map["鎴暀銆佹矇娣�璧勯噾"] = "_030523"; + names_map["鎹熷け娴垂"] = "_030524"; + names_map["鎸敤璧勯噾"] = "_030525"; + names_map["閫忔紡绋庤垂"] = "_030526"; + names_map["杩濊鍙栧緱鏀跺叆"] = "_030527"; + names_map["鍏朵粬"] = "_030528"; + + // 涓� 瀹¤鍙戠幇闂涓暟 + names_map["鍏朵腑锛氶噾棰濈被闂涓暟"] = "_030610"; + names_map["闈為噾棰濈被闂涓暟"] = "_030620"; + names_map["鍏朵腑锛氬浗瀹舵斂绛栨帾鏂借惤瀹炴柟闈�"] = "_030621"; + names_map["鍙戝睍瑙勫垝涓庢垬鐣ュ喅绛栨柟闈�"] = "_030622"; + names_map["鍐呴儴鎺у埗涓庨闄╃鐞嗘柟闈�"] = "_030623"; + names_map["鍏朵粬"] = "_030624"; + + // 鍏� 瀹¤鍙戠幇闂鏁存敼(閲戦绫�) + names_map["鍏朵腑锛氳皟鏁翠細璁¤处鐩�"] = "_030701"; + names_map["鏀跺洖璧勯噾"] = "_030702"; + names_map["鎸藉洖鎹熷け"] = "_030703"; + names_map["褰掕繕鍘熻祫閲戞笭閬�"] = "_030704"; + names_map["琛ョ即绋庤垂"] = "_030705"; + names_map["鍏朵粬"] = "_030706"; + + // 涔� 瀹¤鍙戠幇闂鏁存敼(闈為噾棰濈被) + names_map["鍏朵腑锛氭柊鍒跺畾鍒跺害"] = "_030801"; + names_map["淇瀹屽杽鍒跺害"] = "_030802"; + names_map["浼樺寲瀹屽杽涓氬姟娴佺▼"] = "_030803"; + names_map["鍏朵粬"] = "_030804"; + + // 鍗� 鏍规嵁瀹¤寤鸿鍩轰簬鍏氱邯銆佹斂鍔″拰鍐呴儴绾緥澶勫垎 + names_map["鍏朵腑锛氬厷绾鍒�"] = "_030901"; + names_map["鏀垮姟澶勫垎"] = "_030902"; + names_map["鍐呴儴绾緥澶勫垎"] = "_030903"; + + // 鍗佷竴 鍚戝徃娉曟満鍏崇Щ閫佹垨鎶ュ憡妗堜欢绾跨储 + names_map["鍚戝徃娉曟満鍏崇Щ閫佹垨鎶ュ憡妗堜欢绾跨储"] = "_031000"; + names_map["娑夋浜哄憳"] = "_031001"; + + + QSqlQuery query; + if(query.exec(sql)) + { + // 鑾峰彇瀛楁淇℃伅 + int row=0; + while(query.next()){ + // 鍙栫壒瀹氬瓧娈� + for(int i=0;i<47;++i){ + qDebug()<<"i="<< i <<query.record().fieldName(i) <<"鍐呭:"<<query.value(i); + } + // 瀹¤椤圭洰 + infos_map[names_map[query.value(6).toString()]]++; + // 瀹¤鍙戠幇闂閲戦 + infos_map[names_map[query.value(12).toString()]] += query.value(14).toDouble(); + // 瀹¤鍙戠幇闂涓暟 + infos_map[names_map[query.value(13).toString()]] ++; + // 鏁存敼鎴愭灉鈥旈棶棰樻暣鏀癸紙閲戦绫伙級 + infos_map[names_map[query.value(42).toString()]] += query.value(43).toDouble(); + // 鏁存敼鎴愭灉鈥斺�旈棶棰樻暣鏀癸紙闈為噾棰濈被锛� + infos_map[names_map[query.value(44).toString()]] += query.value(45).toLongLong(); + // 绉婚�佷俊鎭�-澶勫垎缁撴灉 + infos_map[names_map[query.value(26).toString()]] += query.value(27).toLongLong(); + + // 绉婚�佷俊鎭�-娑夋浜哄憳锛堝崟浣嶏細浜猴級 + infos_map["_031001"] += query.value(30).toLongLong(); + + + row++; + + } + qDebug()<<"row:"<<row<<" infos_map size:"<<infos_map.size(); + + // 杈撳嚭璁板綍淇℃伅 + for(auto it = infos_map.begin();it != infos_map.end();++it){ + qDebug()<<it.key()<<it.value(); + } + + // 濡傛灉缁熻涓嶅埌鏁版嵁锛岀洿鎺ヨ烦杩� + if(row==0){ + qDebug()<<"鍚堝苟鏁版嵁鏃狅紝鐩存帴杩斿洖"; + return; + } + + // 鍐欏埌鏁版嵁搴撲腑 + // 鍏堣幏鍙栨満鏋勭被鍨� + QString typeSql = QString("select 鏈烘瀯绫诲瀷 from all_company_info where name='%1'").arg(name); + qDebug()<<"typeSql:"<<typeSql; + QString comType; + if(query.exec(typeSql)){ + while (query.next()) { + comType = query.value(0).toString(); + qDebug()<<"find type:"<<comType; + } + } + int typeIndex=0; + QStringList typeList = comType.split(" "); + if(typeList.size() > 1){ + if(typeList.at(0) == "30"){ + typeIndex = 2; + }else if(typeList.at(0) == "20"){ + typeIndex = 3; + }else if(typeList.at(0) == "10"){ + typeIndex = 0; + }else{ + typeIndex = 4; + } + } + ui->comboBox->setCurrentIndex(typeIndex); // 璁剧疆鍗曚綅绫诲瀷涓哄彲缂栬緫 + // 鎺ョ潃寰�琛ㄦ牸閲岄潰鍐欏叆鏁翠綋鏁版嵁 + comType = ui->comboBox->currentText(); + QString mergeSQLSearch = QString("select * from comprehensive_entry_info where name='%1' and year='%2' and company_type='%3'").arg(name).arg(year).arg(comType); + qDebug()<<"mergeSQLSearch"<<mergeSQLSearch; + if(query.exec(mergeSQLSearch)){ + int row = 0; + while (query.next()) { + row++; + } + qDebug()<<"search row:"<<row; + if(row == 0){ + //杩樻病鏈夋暟鎹紝鎻掑叆鍗冲彲 + QString mergeSQLInser = QString("insert into comprehensive_entry_info (name,\ + _030300,\ + _030301,\ + _030302,\ + _030303,\ + _030304,\ + _030305,\ + _030306,\ + _030307,\ + _030308,\ + _030310,\ + _030400,\ + _030500,\ + _030510,\ + _030520,\ + _030521,\ + _030522,\ + _030523,\ + _030524,\ + _030525,\ + _030526,\ + _030527,\ + _030528,\ + _030600,\ + _030610,\ + _030620,\ + _030621,\ + _030622,\ + _030623,\ + _030624,\ + _030700,\ + _030701,\ + _030702,\ + _030703,\ + _030704,\ + _030705,\ + _030706,\ + _030800,\ + _030801,\ + _030802,\ + _030803,\ + _030804,\ + _030900,\ + _030901,\ + _030902,\ + _030903,\ + _031000,\ + _031001,\ + company_type,\ + year\ + ) values ('%1','%2','%3','%4','%5','%6','%7','%8','%9','%10','%11','%12','%13','%14','%15','%16','%17','%18','%19','%20','%21','%22','%23','%24','%25','%26'" + ",'%27','%28','%29','%30','%31','%32','%33','%34','%35','%36','%37','%38','%39','%40','%41','%42','%43','%44','%45','%46','%47','%48','%49','%50')").arg(name).arg(QString::number(infos_map["_030300"])) + .arg(QString::number(infos_map["_030301"])).arg(QString::number(infos_map["_030302"])).arg(QString::number(infos_map["_030303"])).arg(QString::number(infos_map["_030304"])).arg(QString::number(infos_map["_030305"])) + .arg(QString::number(infos_map["_030306"])).arg(QString::number(infos_map["_030307"])).arg(QString::number(infos_map["_030308"])).arg(QString::number(infos_map["_030310"])).arg(QString::number(infos_map["_030400"])) + .arg(QString::number(infos_map["_030500"])).arg(QString::number(infos_map["_030510"])).arg(QString::number(infos_map["_030520"])).arg(QString::number(infos_map["_030521"])).arg(QString::number(infos_map["_030522"])) + .arg(QString::number(infos_map["_030523"])).arg(QString::number(infos_map["_030524"])).arg(QString::number(infos_map["_030525"])).arg(QString::number(infos_map["_030526"])).arg(QString::number(infos_map["_030527"])) + .arg(QString::number(infos_map["_030528"])).arg(QString::number(infos_map["_030600"])).arg(QString::number(infos_map["_030610"])).arg(QString::number(infos_map["_030620"])).arg(QString::number(infos_map["_030621"])) + .arg(QString::number(infos_map["_030622"])).arg(QString::number(infos_map["_030623"])).arg(QString::number(infos_map["_030624"])).arg(QString::number(infos_map["_030700"])).arg(QString::number(infos_map["_030701"])) + .arg(QString::number(infos_map["_030702"])).arg(QString::number(infos_map["_030703"])).arg(QString::number(infos_map["_030704"])).arg(QString::number(infos_map["_030705"])).arg(QString::number(infos_map["_030706"])) + .arg(QString::number(infos_map["_030800"])).arg(QString::number(infos_map["_030801"])).arg(QString::number(infos_map["_030802"])).arg(QString::number(infos_map["_030803"])).arg(QString::number(infos_map["_030804"])) + .arg(QString::number(infos_map["_030900"])).arg(QString::number(infos_map["_030901"])).arg(QString::number(infos_map["_030902"])).arg(QString::number(infos_map["_030903"])).arg(QString::number(infos_map["_031000"])) + .arg(QString::number(infos_map["_031001"])).arg(comType).arg(year); + + qDebug()<<"mergeSQLInser:"<<mergeSQLInser; + + if(query.exec(mergeSQLInser)){ + qDebug()<<"mergeSQLInser 鎴愬姛"; + // 鎴愬姛浜嗭紝璋冪敤鏌ヨ鏉ュ埛鏂拌〃鏍兼煡鐪� + on_pushButton_search_clicked(); + }else{ + qDebug()<<"mergeSQLInser 澶辫触"; + } + + }else{ + // 宸茬粡鏈夋暟鎹簡锛岄渶瑕佹洿鏂� + QString mergeSQLUpdate = QString("update comprehensive_entry_info set _030300='%1',_030301='%2'" + ",_030302='%3',_030303='%4',_030304='%5',_030305='%6',_030306='%7',_030307='%8',_030308='%9',_030310='%10',_030400='%11',_030500='%12'" + ",_030510='%13',_030520='%14',_030521='%15',_030522='%16',_030523='%17',_030524='%18',_030525='%19',_030526='%20',_030527='%21',_030528='%22'" + ",_030600='%23',_030610='%24',_030620='%25',_030621='%26',_030622='%27',_030623='%28',_030624='%29',_030700='%30',_030701='%31',_030702='%32'" + ",_030703='%33',_030704='%34',_030705='%35',_030706='%36',_030800='%37',_030801='%38',_030802='%39',_030803='%40',_030804='%41',_030900='%42'" + ",_030901='%43',_030902='%44',_030903='%45',_031000='%46',_031001='%47' where name='%48' and year='%49' and company_type='%50'").arg(QString::number(infos_map["_030300"])) + .arg(QString::number(infos_map["_030301"])).arg(QString::number(infos_map["_030302"])).arg(QString::number(infos_map["_030303"])).arg(QString::number(infos_map["_030304"])).arg(QString::number(infos_map["_030305"])) + .arg(QString::number(infos_map["_030306"])).arg(QString::number(infos_map["_030307"])).arg(QString::number(infos_map["_030308"])).arg(QString::number(infos_map["_030310"])).arg(QString::number(infos_map["_030400"])) + .arg(QString::number(infos_map["_030500"])).arg(QString::number(infos_map["_030510"])).arg(QString::number(infos_map["_030520"])).arg(QString::number(infos_map["_030521"])).arg(QString::number(infos_map["_030522"])) + .arg(QString::number(infos_map["_030523"])).arg(QString::number(infos_map["_030524"])).arg(QString::number(infos_map["_030525"])).arg(QString::number(infos_map["_030526"])).arg(QString::number(infos_map["_030527"])) + .arg(QString::number(infos_map["_030528"])).arg(QString::number(infos_map["_030600"])).arg(QString::number(infos_map["_030610"])).arg(QString::number(infos_map["_030620"])).arg(QString::number(infos_map["_030621"])) + .arg(QString::number(infos_map["_030622"])).arg(QString::number(infos_map["_030623"])).arg(QString::number(infos_map["_030624"])).arg(QString::number(infos_map["_030700"])).arg(QString::number(infos_map["_030701"])) + .arg(QString::number(infos_map["_030702"])).arg(QString::number(infos_map["_030703"])).arg(QString::number(infos_map["_030704"])).arg(QString::number(infos_map["_030705"])).arg(QString::number(infos_map["_030706"])) + .arg(QString::number(infos_map["_030800"])).arg(QString::number(infos_map["_030801"])).arg(QString::number(infos_map["_030802"])).arg(QString::number(infos_map["_030803"])).arg(QString::number(infos_map["_030804"])) + .arg(QString::number(infos_map["_030900"])).arg(QString::number(infos_map["_030901"])).arg(QString::number(infos_map["_030902"])).arg(QString::number(infos_map["_030903"])).arg(QString::number(infos_map["_031000"])) + .arg(QString::number(infos_map["_031001"])).arg(name).arg(year).arg(comType); + + qDebug()<<"mergeSQLUpdate:"<<mergeSQLUpdate; + if(query.exec(mergeSQLUpdate)){ + qDebug()<<"mergeSQLUpdate 鎴愬姛"; + // 鎴愬姛浜嗭紝璋冪敤鏌ヨ鏉ュ埛鏂拌〃鏍兼煡鐪� + on_pushButton_search_clicked(); + }else{ + qDebug()<<"mergeSQLUpdate 澶辫触"; + } + } + } + } + + +} + +void ClientMainWindow::on_pushButton_search_clicked() +{ + // 鏌ヨ缁煎悎琛紝杩涜灞曠ず 鏉′欢鏄� 鍚嶅瓧鍜屽勾浠� + // 鏍规嵁鍏徃鍚嶆潵銆佸勾浠芥煡璇㈡墍鏈夌殑鏁版嵁锛屾牴鎹煡璇㈠埌鐨勪紒涓氱被鍨嬫潵缁欐寚瀹氱殑鍒楀啓鍏ユ暟鎹� + QString name = ui->comboBox_company->currentText(); + QString year = ui->dateEdit_year->text(); + QString sql = QString("select * from comprehensive_entry_info where name='%1' and year='%2'").arg(name).arg(year); + + // 鍏堟竻绌鸿〃鏍� + for(int i=4;i<9;++i){ + for(int j=30;j<78;++j){ + ui->tableWidget->setItem(j,i,new QTableWidgetItem("0")); + } + } + + // 鍐嶆墽琛屾煡璇� + QSqlQuery query; + if(query.exec(sql)) + { + qDebug()<<"鏌ヨ鍒扮患鍚堣〃淇℃伅:"<<name; + int row=0; + while(query.next()){ // 娣诲姞缁撴灉闆� + row++; + QString com_type = query.value(78).toString(); + int column_index = 4; + if(com_type == "浼佷笟(涓嶅惈閲戣瀺浼佷笟)"){ + column_index = 4; + }else if(com_type == "閲戣瀺浼佷笟"){ + column_index = 5; + }else if(com_type == "鏈哄叧"){ + column_index = 6; + }else if(com_type == "浜嬩笟鍗曚綅"){ + column_index = 7; + }else if(com_type == "鍏朵粬"){ + column_index = 8; + } + qDebug()<<"鎵�鍦ㄥ垪:"<<column_index; + // 缁欐瘡椤硅祴鍊� + for(int i=31;i<78;++i){ + ui->tableWidget->setItem(i-1,column_index,new QTableWidgetItem(query.value(i).toString())); + } + } + qDebug()<<"row:"<<row; + if(row == 0){ + // 灏辫娓呯┖鐩墠鎵�鏈夌殑鍐呭锛岄兘缃负0 + for(int i=4;i<9;++i){ + for(int j=30;j<78;++j){ + ui->tableWidget->setItem(j,i,new QTableWidgetItem("0")); + } + } + } + }else{ + qDebug()<<"娌℃湁鏌ヨ鍒扮患鍚堣〃淇℃伅:"<<name; + } +} -- Gitblit v1.8.0