#include "problemrectification.h" #include "ui_problemrectification.h" #include <QFileDialog> #include <QPushButton> #include <QSqlQuery> #include <QDebug> #include <QProcess> extern int g_comId; extern QString g_auditDate; extern QString g_dataRootPath; ProblemRectification::ProblemRectification(QWidget *parent) : QMainWindow(parent), ui(new Ui::ProblemRectification) { ui->setupUi(this); ui->tableWidget->setColumnWidth(0,300); m_comId = g_comId; for(int i=0;i<ui->tableWidget->rowCount();++i){ QPushButton *btn = new QPushButton("ä¸Šä¼ ",this); ui->tableWidget->setCellWidget(i,3,btn); connect(btn,&QPushButton::clicked,this,[=]{ QStringList files = QFileDialog::getOpenFileNames(); QString str; for(auto f:files){ copyFile(f); QString targetPath = g_dataRootPath + QString("/%1/%2").arg(g_comId).arg(f.split("/").back()); str += targetPath + " "; } ui->tableWidget->setItem(i,4,new QTableWidgetItem(str)); }); // 查看ä½è¯ QPushButton *lookBtn = new QPushButton("查看",this); ui->tableWidget->setCellWidget(i,5,lookBtn); connect(lookBtn,&QPushButton::clicked,this,[=]{ QStringList files = ui->tableWidget->item(i,4)->text().split(" "); if(files.size() > 0 ){ QString f = files.at(0); qDebug()<<"f:"<<f; if(f.size() > 10){ f.replace("/", "\\"); //win32ä¸‹æ›¿æ¢æ–œæ QProcess process; process.startDetached("explorer", QStringList() << QString("/select,") << QString("%1").arg(f)); } } }); } } ProblemRectification::~ProblemRectification() { delete ui; } void ProblemRectification::copyFile(QString path) { QStringList paths = path.split("/"); QString comPath = g_dataRootPath + QString("/%1").arg(g_comId); QDir comDir(comPath); if(!comDir.exists()){ // 创建路径 if(QDir().mkdir(comPath)){ qDebug()<<"创建目录æˆåŠŸ:"<<comPath; } } QString targetPath = g_dataRootPath + QString("/%1/%2").arg(g_comId).arg(paths.back()); qDebug()<<"targetPath"<<targetPath; if(QFile::copy(path,targetPath)){ qDebug()<<"æˆåŠŸæ‹·è´:"<<path; }else{ qDebug()<<"æ‹·è´å¤±è´¥"<<path; } } void ProblemRectification::on_tableWidget_clicked(const QModelIndex &index) { double allCnt = 0; for(int i=1;i<ui->tableWidget->rowCount();++i){ allCnt += ui->tableWidget->item(i,2)->text().toDouble(); } ui->tableWidget->setItem(0,2,new QTableWidgetItem(QString::number(allCnt))); } void ProblemRectification::on_pushButton_clicked() { // å†ç»Ÿè®¡ä¸€æŠŠ on_tableWidget_clicked(QModelIndex()); QString values = ""; for(int i=0;i<ui->tableWidget->rowCount();++i){ values += QString("('%1','%2',%3,'%4',%5,'%6'),").arg(ui->tableWidget->item(i,0)->text()) .arg(ui->tableWidget->item(i,1)->text()).arg(ui->tableWidget->item(i,2)->text().toInt()) .arg(ui->tableWidget->item(i,4)->text()) .arg(g_comId).arg(g_auditDate); } values = values.left(values.length()-1); QString sql = QString("insert into problem_rectification (kpi_name,code,num,evidences,com_id,time) values %1").arg(values); qDebug()<<sql; QSqlQuery query; if(query.exec(sql)){ qDebug()<<"OK sql"<<__FUNCTION__; }else{ qDebug()<<"fail sql"<<__FUNCTION__; } static int cnt=1; ui->pushButton->setText(QString("æäº¤--问题整改_%1次").arg(cnt++)); } void ProblemRectification::showData(QVariantList vlist) { for(int i=0;i<vlist.size();++i){ if(vlist.at(i).isValid()){ ui->tableWidget->setItem(i,2,new QTableWidgetItem(vlist.at(i).toString())); } } // å†ç»Ÿè®¡ä¸€æŠŠ on_tableWidget_clicked(QModelIndex()); }