#include "problemlist.h" #include "ui_problemlist.h" #include <QDebug> #include <QSqlQuery> #include <QSqlError> #include <QMessageBox> #pragma execution_character_set("utf-8") ProblemList::ProblemList(QWidget *parent) : QMainWindow(parent), ui(new Ui::ProblemList) { ui->setupUi(this); initUi(); } ProblemList::~ProblemList() { delete ui; } void ProblemList::initUi() { ui->tableWidget->setItem(0,0,new QTableWidgetItem("问题清å•")); ui->tableWidget->setSpan(0,0,3,2); ui->tableWidget->item(0,0)->setTextAlignment(Qt::AlignCenter); ui->tableWidget->setItem(0,2,new QTableWidgetItem("整改检查结果åŠå¯¹è´¦é”€å·æ¸…å•")); ui->tableWidget->setSpan(0,2,1,12); ui->tableWidget->item(0,2)->setTextAlignment(Qt::AlignCenter); ui->tableWidget->setItem(1,2,new QTableWidgetItem("整改检查结果")); ui->tableWidget->setSpan(1,2,2,2); ui->tableWidget->item(1,2)->setTextAlignment(Qt::AlignCenter); ui->tableWidget->setItem(1,4,new QTableWidgetItem("整改类型")); ui->tableWidget->setSpan(1,4,1,8); ui->tableWidget->item(1,4)->setTextAlignment(Qt::AlignCenter); ui->tableWidget->setItem(2,4,new QTableWidgetItem("已整改")); ui->tableWidget->setSpan(2,4,1,3); ui->tableWidget->item(2,4)->setTextAlignment(Qt::AlignCenter); ui->tableWidget->setItem(2,7,new QTableWidgetItem("æ£åœ¨æ•´æ”¹")); ui->tableWidget->setSpan(2,7,1,2); ui->tableWidget->item(2,7)->setTextAlignment(Qt::AlignCenter); ui->tableWidget->setItem(2,9,new QTableWidgetItem("尚未整改")); ui->tableWidget->setSpan(2,9,1,3); ui->tableWidget->item(2,9)->setTextAlignment(Qt::AlignCenter); ui->tableWidget->setItem(1,12,new QTableWidgetItem("是å¦é”€å·")); ui->tableWidget->setSpan(1,12,3,1); ui->tableWidget->item(1,12)->setTextAlignment(Qt::AlignCenter); ui->tableWidget->setItem(1,13,new QTableWidgetItem("销巿—¶é—´")); ui->tableWidget->setSpan(1,13,3,1); ui->tableWidget->item(1,13)->setTextAlignment(Qt::AlignCenter); // ä¸‹çº§åˆ—æ ‡é¢˜ 12个 ui->tableWidget->setItem(3,0,new QTableWidgetItem("åºå·")); ui->tableWidget->setItem(3,1,new QTableWidgetItem("摘è¦")); ui->tableWidget->setItem(3,2,new QTableWidgetItem("检查时间")); ui->tableWidget->setItem(3,3,new QTableWidgetItem("检查方å¼")); ui->tableWidget->setItem(3,4,new QTableWidgetItem("çº æ£é—®é¢˜")); ui->tableWidget->setItem(3,5,new QTableWidgetItem("完善制度")); ui->tableWidget->setItem(3,6,new QTableWidgetItem("å®Œæˆæ—¶é—´")); ui->tableWidget->setItem(3,7,new QTableWidgetItem("主è¦åŽŸå› ")); ui->tableWidget->setItem(3,8,new QTableWidgetItem("å®Œæˆæ—¶é™")); ui->tableWidget->setItem(3,9,new QTableWidgetItem("主è¦åŽŸå› ")); ui->tableWidget->setItem(3,10,new QTableWidgetItem("责任部门或责任人")); ui->tableWidget->setItem(3,11,new QTableWidgetItem("å®Œæˆæ—¶é™")); // ç¦æ¢ç¼–辑 for(int i=0;i<4;++i){ ui->tableWidget->setItemDelegateForRow(i,new TableItemDelegate()); } // å³é”®èœå• m_menu = new QMenu(this); m_menu->addAction("åˆ é™¤å½“å‰è¡Œ"); ui->tableWidget->setContextMenuPolicy(Qt::CustomContextMenu); connect(ui->tableWidget,SIGNAL(customContextMenuRequested(QPoint)),this,SLOT(showMenuSlot(QPoint))); connect(m_menu->actions().at(0),SIGNAL(triggered(bool)),this,SLOT(deleteAction())); // åŠ è½½å…¬å¸å readCompanyFromSQL(); } void ProblemList::readCompanyFromSQL() { ui->comboBox_company->clear(); QString sql = "select DISTINCT name from all_company_info"; QSqlQuery query; if(query.exec(sql)){ qDebug()<<QString("select DISTINCT all_company_info ok"); while(query.next()){ // æ·»åŠ å…¬å¸å QString name = query.value(0).toString(); ui->comboBox_company->addItem(name); } }else{ qDebug()<<QString("select all_company_info fail...")<<query.lastError().text(); } } void ProblemList::showMenuSlot(QPoint){ m_menu->exec(QCursor::pos()); } void ProblemList::deleteAction(){ int row = ui->tableWidget->currentRow(); if(row>=4){ qDebug()<<"ok"; ui->tableWidget->removeRow(row); }else{ qDebug()<<"fail"; } } void ProblemList::on_pushButton_addRow_clicked() { ui->tableWidget->insertRow(ui->tableWidget->rowCount()); } void ProblemList::on_pushButton_save_clicked() { QString sql = QString("insert into problem_list_info (name,åºå·,摘è¦,检查时间,检查方å¼,çº æ£é—®é¢˜,完善制度\ ,å®Œæˆæ—¶é—´,主è¦åŽŸå› ,å®Œæˆæ—¶é™,主è¦åŽŸå› 1,责任部门或责任人,å®Œæˆæ—¶é™1,是å¦é”€å·,销巿—¶é—´) values "); QString name = ui->comboBox_company->currentText(); for(int i=4;i<ui->tableWidget->rowCount();++i){ QStringList labels; for(int j=0;j<ui->tableWidget->columnCount();++j){ QTableWidgetItem *item = ui->tableWidget->item(i,j);; qDebug() <<i<<j <<item; if(item){ qDebug()<<"OK"; labels<<item->data(Qt::EditRole).toString(); }else{ labels<<" "; } } qDebug()<<labels; if(labels.at(0)==" ")continue; if(name.size()==0){ QMessageBox::information(this,"å•ä½ä¿¡æ¯ä¸ºç©º ","请输入å•ä½åç§°"); continue; } sql += QString("('%1',").arg(name); for(int k=0;k<labels.size()-1;++k){ sql += QString("'%1',").arg(labels[k]); } sql += QString("'%1'),").arg(labels.back()); } sql = sql.left(sql.size()-1); // 去掉最åŽä¸€ä¸ªé€—å· qDebug()<<"sql="<<sql; QSqlQuery query; if(query.exec(sql)) { qDebug()<<QString("insert problem_list_info ok..."); QMessageBox::information(this,"OK","æ·»åŠ æˆåŠŸ"); }else{ qDebug()<<QString("insert problem_list_info fail...")<<query.lastError().text(); QMessageBox::information(this,"æ·»åŠ å¤±è´¥","å¯èƒ½æ·»åŠ çš„æ•°æ®ä¸å…¨å¯¼è‡´çš„,得确认æ¯è¡Œçš„首项有数æ®"); } } void ProblemList::on_comboBox_company_currentIndexChanged(const QString &arg1) { // è¦æ¸…除上一家公å¸çš„æ•°æ® ui->tableWidget->setRowCount(4); ui->tableWidget->setRowCount(7); // åŠ è½½è¡¨æ ¼ä¿¡æ¯ qDebug()<<"current :"<<arg1; QString sql = QString("select * from problem_list_info where name='%1'").arg(arg1); QSqlQuery query; if(query.exec(sql)){ qDebug()<<QString("select problem_list_info ok"); int row=0; while(query.next()){ // æ·»åŠ è¡Œæ•°æ® for(int i=0;i<14;++i){ ui->tableWidget->setItem(row+4,i,new QTableWidgetItem(query.value(2+i).toString())); } row++; ui->tableWidget->setRowCount(ui->tableWidget->rowCount()+1); // å¢žåŠ ä¸€ä¸ªæ–°çš„è¡Œ } qDebug()<<"row:"<<row; }else{ qDebug()<<QString("select problem_list_info fail...")<<query.lastError().text(); } }