#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), ui(new Ui::ClientMainWindow) { 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); m_problemCnt = new ProblemCount(this); m_probleRect = new ProblemRectification(this); m_problemNotMon = new ProblemNotMoney(this); m_punish = new Punish(this); m_caseClue = new CaseClue(this); ui->stackedWidget->addWidget(m_auditPro); ui->stackedWidget->addWidget(m_auditworkload); ui->stackedWidget->addWidget(m_problemMon); ui->stackedWidget->addWidget(m_problemCnt); ui->stackedWidget->addWidget(m_probleRect); ui->stackedWidget->addWidget(m_problemNotMon); ui->stackedWidget->addWidget(m_punish); 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 // 问题整改å°è´¦ 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(); // å…¬å¸åã€ç»Ÿä¸€ä¿¡ç”¨ä»£ç 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() { ui->stackedWidget->setCurrentIndex(0); } void ClientMainWindow::on_pushButton_auditWorkload_clicked() { ui->stackedWidget->setCurrentIndex(1); } void ClientMainWindow::on_pushButton_problemMoney_clicked() { ui->stackedWidget->setCurrentIndex(2); } void ClientMainWindow::on_pushButton_problemCount_clicked() { ui->stackedWidget->setCurrentIndex(3); } void ClientMainWindow::on_pushButton_problemRectification_clicked() { ui->stackedWidget->setCurrentIndex(4); } void ClientMainWindow::on_pushButton_problemNotMoney_clicked() { ui->stackedWidget->setCurrentIndex(5); } void ClientMainWindow::on_pushButton_punish_clicked() { ui->stackedWidget->setCurrentIndex(6); } void ClientMainWindow::on_pushButton_caseClue_clicked() { ui->stackedWidget->setCurrentIndex(7); } void ClientMainWindow::on_pushButton_clicked() { QXlsx::Document doc; doc.write(1,2,"mayibase"); doc.write(2,2,"is good"); doc.write("A1","ç èšè½¯ä»¶"); doc.mergeCells("A1:A4"); doc.mergeCells("B1:C1"); if(doc.saveAs("Data/test.xlsx")) { qDebug()<<"save is ok"; }else{ qDebug()<<"save is fail"; } } 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))); } 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(); }