From 9ddb25babb774f773b62106fb4d1a9404af71fd9 Mon Sep 17 00:00:00 2001 From: wumu <mayi@mayi.com> Date: 星期四, 09 五月 2024 23:22:18 +0800 Subject: [PATCH] 0509 --- internal_system_v1/threemergeproblemlist.cpp | 488 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 487 insertions(+), 1 deletions(-) diff --git a/internal_system_v1/threemergeproblemlist.cpp b/internal_system_v1/threemergeproblemlist.cpp index 1a4805c..eb6c8ad 100644 --- a/internal_system_v1/threemergeproblemlist.cpp +++ b/internal_system_v1/threemergeproblemlist.cpp @@ -1,14 +1,500 @@ -#include "threemergeproblemlist.h" +锘�#include "threemergeproblemlist.h" #include "ui_threemergeproblemlist.h" +#include <QDebug> +#include <QSqlQuery> +#include <QSqlError> +#include <QMessageBox> ThreeMergeProblemList::ThreeMergeProblemList(QWidget *parent) : QMainWindow(parent), ui(new Ui::ThreeMergeProblemList) { ui->setupUi(this); + + m_fdd = new FileDialogDelegate; + + ui->statusbar->hide(); + ui->menubar->hide(); + initUi(); // 鍒濆鍖栨墍鏈夌晫闈� + + //ui->tableWidget_2->hide(); + //ui->tableWidget_3->hide(); + } ThreeMergeProblemList::~ThreeMergeProblemList() { delete ui; } + +void ThreeMergeProblemList::initUi() +{ + initProblemRectBookUi(); // 鍒濆鍖栨暣鏀瑰彴璐� + initProblemListUi(); // 鍒濆鍖栭棶棰樻竻鍗曠晫闈� + initProblemResultUi(); // 鍒濆鍖栭棶棰樺鐞嗙粨鏋滅晫闈� + + ui->tableWidget->setMinimumHeight(500); // 鏁存敼鍙拌处 + ui->tableWidget_2->setMinimumHeight(500); // 鏁存敼缁撴灉 + ui->tableWidget_3->setMinimumHeight(500); // 闂娓呭崟 + + ui->tableWidget->setItemDelegateForColumn(1,m_fdd); + + // 鑷�傚簲鎿嶄綔 + ui->tableWidget->horizontalHeader()->setSectionResizeMode(QHeaderView::ResizeToContents); + ui->tableWidget->verticalHeader()->setSectionResizeMode(QHeaderView::ResizeToContents); + + ui->tableWidget->resizeColumnsToContents(); + ui->tableWidget->resizeRowsToContents(); + + // 鎺у埗琛ㄥご棰滆壊 + // 鑷畾涔夌殑鏂瑰紡鏈夌己闄锋槸瀹规槗璁╁搴旈」閿佹 + //m_custonHV = new CustomHeaderView(Qt::Horizontal,ui->tableWidget); + //ui->tableWidget->setHorizontalHeader(m_custonHV); + + // 缁欐寚瀹氶」鏀硅儗鏅鑹� + //ui->tableWidget->horizontalHeaderItem(1)->setBackground(QBrush(Qt::red)); + //ui->tableWidget->horizontalHeaderItem(3)->setBackground(QBrush(Qt::blue)); + +// QTableWidgetItem *item_1 = new QTableWidgetItem("瀹¤绫诲埆"); +// item_1->setForeground(QBrush(QColor("#FF1493"))); +// ui->tableWidget->setHorizontalHeaderItem(1,item_1); + + for(int i=0;i<14;++i){ + QString label = ui->tableWidget->horizontalHeaderItem(i)->text(); + QTableWidgetItem *item_1 = new QTableWidgetItem(label); + item_1->setForeground(QBrush(QColor("#ff00ff"))); + ui->tableWidget->setHorizontalHeaderItem(i,item_1); + } + + for(int i=14;i<14+10;++i){ + QString label = ui->tableWidget->horizontalHeaderItem(i)->text(); + QTableWidgetItem *item_1 = new QTableWidgetItem(label); + item_1->setForeground(QBrush(QColor("#00aaff"))); + ui->tableWidget->setHorizontalHeaderItem(i,item_1); + } + + for(int i=24;i<24+3;++i){ + QString label = ui->tableWidget->horizontalHeaderItem(i)->text(); + QTableWidgetItem *item_1 = new QTableWidgetItem(label); + item_1->setForeground(QBrush(QColor("#00aa00"))); + ui->tableWidget->setHorizontalHeaderItem(i,item_1); + } + + for(int i=27;i<27+8;++i){ + QString label = ui->tableWidget->horizontalHeaderItem(i)->text(); + QTableWidgetItem *item_1 = new QTableWidgetItem(label); + item_1->setForeground(QBrush(QColor("#007a50"))); + ui->tableWidget->setHorizontalHeaderItem(i,item_1); + } + + for(int i=35;i<35+5;++i){ + QString label = ui->tableWidget->horizontalHeaderItem(i)->text(); + QTableWidgetItem *item_1 = new QTableWidgetItem(label); + item_1->setForeground(QBrush(QColor("#500a50"))); + ui->tableWidget->setHorizontalHeaderItem(i,item_1); + } + + // 澶勭悊鍏蜂綋鏌愬垪鐨勬儏鍐� + // 瀹¤绫诲埆 + QStringList nwLabels; + nwLabels << "鍐呭"<<"澶栧"; + m_cbb_nw = new ComboBoxDelegate(nwLabels,this); + ui->tableWidget->setItemDelegateForColumn(1,m_cbb_nw); + + // 瀹¤骞村害 + m_date_year = new DateDelegate(this); + ui->tableWidget->setItemDelegateForColumn(2,m_date_year); + + // 瀹¤鍗曚綅 + QStringList comLabels; + comLabels << "瀹¤灞�"<<"瀹¤鍘�"<<"瀹¤缃�"<<"鍏朵粬"; + m_cbb_company = new ComboBoxDelegate(comLabels,this); + ui->tableWidget->setItemDelegateForColumn(3,m_cbb_company); + + // 瀹¤鏂瑰紡 + QStringList wayLabels; + wayLabels << "灏卞湴瀹¤"<<"鎶ラ�佸璁�"; + m_cbb_way = new ComboBoxDelegate(wayLabels,this); + ui->tableWidget->setItemDelegateForColumn(4,m_cbb_way); + + // 瀹¤椤圭洰 + QStringList proLabels; + proLabels <<" "<< "璐交钀藉疄鍥藉閲嶅ぇ鏀跨瓥鎺柦瀹¤"<<"璐㈡斂璐㈠姟鏀舵敮瀹¤"<<"鍥哄畾璧勪骇鎶曡祫瀹¤"<<"鍐呴儴鎺у埗鍜岄闄╃鐞嗗璁�" + <<"缁忔祹璐d换瀹¤"<<"淇℃伅绯荤粺瀹¤"<<"澧冨瀹¤"<<"鍏朵粬"; + m_cbb_way = new ComboBoxDelegate(proLabels,this); + ui->tableWidget->setItemDelegateForColumn(6,m_cbb_way); + + // 闂鎻忚堪浣愯瘉璧勬枡(涓婁紶鍙栬瘉鍗�) 褰曞叆鎴栬�呬笂浼� + ui->tableWidget->setItemDelegateForColumn(13,m_fdd); + + // 鍔犺浇鍏徃鍚� + readCompanyFromSQL(); +} + +void ThreeMergeProblemList::initProblemListUi() +{ + ui->tableWidget_3->setItem(0,0,new QTableWidgetItem("闂娓呭崟")); + ui->tableWidget_3->setSpan(0,0,3,2); + ui->tableWidget_3->item(0,0)->setTextAlignment(Qt::AlignCenter); + + ui->tableWidget_3->setItem(0,2,new QTableWidgetItem("鏁存敼妫�鏌ョ粨鏋滃強瀵硅处閿�鍙锋竻鍗�")); + ui->tableWidget_3->setSpan(0,2,1,12); + ui->tableWidget_3->item(0,2)->setTextAlignment(Qt::AlignCenter); + + ui->tableWidget_3->setItem(1,2,new QTableWidgetItem("鏁存敼妫�鏌ョ粨鏋�")); + ui->tableWidget_3->setSpan(1,2,2,2); + ui->tableWidget_3->item(1,2)->setTextAlignment(Qt::AlignCenter); + + ui->tableWidget_3->setItem(1,4,new QTableWidgetItem("鏁存敼绫诲瀷")); + ui->tableWidget_3->setSpan(1,4,1,8); + ui->tableWidget_3->item(1,4)->setTextAlignment(Qt::AlignCenter); + + ui->tableWidget_3->setItem(2,4,new QTableWidgetItem("宸叉暣鏀�")); + ui->tableWidget_3->setSpan(2,4,1,3); + ui->tableWidget_3->item(2,4)->setTextAlignment(Qt::AlignCenter); + + ui->tableWidget_3->setItem(2,7,new QTableWidgetItem("姝e湪鏁存敼")); + ui->tableWidget_3->setSpan(2,7,1,2); + ui->tableWidget_3->item(2,7)->setTextAlignment(Qt::AlignCenter); + + ui->tableWidget_3->setItem(2,9,new QTableWidgetItem("灏氭湭鏁存敼")); + ui->tableWidget_3->setSpan(2,9,1,3); + ui->tableWidget_3->item(2,9)->setTextAlignment(Qt::AlignCenter); + + ui->tableWidget_3->setItem(1,12,new QTableWidgetItem("鏄惁閿�鍙�")); + ui->tableWidget_3->setSpan(1,12,3,1); + ui->tableWidget_3->item(1,12)->setTextAlignment(Qt::AlignCenter); + + ui->tableWidget_3->setItem(1,13,new QTableWidgetItem("閿�鍙锋椂闂�")); + ui->tableWidget_3->setSpan(1,13,3,1); + ui->tableWidget_3->item(1,13)->setTextAlignment(Qt::AlignCenter); + + + // 涓嬬骇鍒楁爣棰� 12涓� + ui->tableWidget_3->setItem(3,0,new QTableWidgetItem("搴忓彿")); + ui->tableWidget_3->setItem(3,1,new QTableWidgetItem("鎽樿")); + ui->tableWidget_3->setItem(3,2,new QTableWidgetItem("妫�鏌ユ椂闂�")); + ui->tableWidget_3->setItem(3,3,new QTableWidgetItem("妫�鏌ユ柟寮�")); + ui->tableWidget_3->setItem(3,4,new QTableWidgetItem("绾犳闂")); + ui->tableWidget_3->setItem(3,5,new QTableWidgetItem("瀹屽杽鍒跺害")); + ui->tableWidget_3->setItem(3,6,new QTableWidgetItem("瀹屾垚鏃堕棿")); + ui->tableWidget_3->setItem(3,7,new QTableWidgetItem("涓昏鍘熷洜")); + ui->tableWidget_3->setItem(3,8,new QTableWidgetItem("瀹屾垚鏃堕檺")); + ui->tableWidget_3->setItem(3,9,new QTableWidgetItem("涓昏鍘熷洜")); + ui->tableWidget_3->setItem(3,10,new QTableWidgetItem("璐d换閮ㄩ棬鎴栬矗浠讳汉")); + ui->tableWidget_3->setItem(3,11,new QTableWidgetItem("瀹屾垚鏃堕檺")); + + // 绂佹缂栬緫 + for(int i=0;i<4;++i){ + ui->tableWidget_3->setItemDelegateForRow(i,new TableItemDelegate()); + } + + + // 鍙抽敭鑿滃崟 + m_menu = new QMenu(this); + m_menu->addAction("鍒犻櫎褰撳墠琛�"); + ui->tableWidget_3->setContextMenuPolicy(Qt::CustomContextMenu); + connect(ui->tableWidget_3,SIGNAL(customContextMenuRequested(QPoint)),this,SLOT(showMenuSlot(QPoint))); + connect(m_menu->actions().at(0),SIGNAL(triggered(bool)),this,SLOT(deleteAction())); + + + +} + +void ThreeMergeProblemList::initProblemResultUi() +{ + ui->tableWidget_2->setSpan(0,0,1,5); + ui->tableWidget_2->setItem(0,0,new QTableWidgetItem("鏁存敼鎴愭灉")); + ui->tableWidget_2->item(0,0)->setTextAlignment(Qt::AlignCenter); + + ui->tableWidget_2->setSpan(1,0,1,2); + ui->tableWidget_2->setItem(1,0,new QTableWidgetItem("鍒跺害寤鸿")); + ui->tableWidget_2->item(1,0)->setTextAlignment(Qt::AlignCenter); + ui->tableWidget_2->setSpan(1,2,1,3); + ui->tableWidget_2->setItem(1,2,new QTableWidgetItem("璧勯噾鏀跺洖")); + ui->tableWidget_2->item(1,2)->setTextAlignment(Qt::AlignCenter); + ui->tableWidget_2->setSpan(0,5,3,1); + ui->tableWidget_2->setItem(0,5,new QTableWidgetItem("澶勭悊浜�")); + ui->tableWidget_2->setSpan(0,6,3,1); + ui->tableWidget_2->setItem(0,6,new QTableWidgetItem("瀹h疮鍩硅")); + ui->tableWidget_2->setSpan(0,7,3,1); + ui->tableWidget_2->setItem(0,7,new QTableWidgetItem("鍏朵粬")); + ui->tableWidget_2->setSpan(0,8,3,1); + ui->tableWidget_2->setItem(0,8,new QTableWidgetItem("瀹℃牳缁撴灉")); + ui->tableWidget_2->setSpan(0,9,3,1); + ui->tableWidget_2->setItem(0,9,new QTableWidgetItem("娉ㄩ攢")); + + // 涓嬬骇鏍囬 + ui->tableWidget_2->setItem(2,0,new QTableWidgetItem("淇鍒跺害")); + ui->tableWidget_2->setItem(2,1,new QTableWidgetItem("鏂板鍒跺害")); + ui->tableWidget_2->setItem(2,2,new QTableWidgetItem("鎸藉洖鎹熷け")); + ui->tableWidget_2->setItem(2,3,new QTableWidgetItem("鍓旈櫎")); + ui->tableWidget_2->setItem(2,4,new QTableWidgetItem("瀹″噺")); + + // 绂佹缂栬緫 + for(int i=0;i<3;++i){ + ui->tableWidget_2->setItemDelegateForRow(i,new TableItemDelegate()); + } + + + // 鍙抽敭鑿滃崟 + m_menuResult = new QMenu(this); + m_menuResult->addAction("鍒犻櫎褰撳墠琛�"); + ui->tableWidget_2->setContextMenuPolicy(Qt::CustomContextMenu); + connect(ui->tableWidget_2,SIGNAL(customContextMenuRequested(QPoint)),this,SLOT(showMenuSlotResult(QPoint))); + connect(m_menuResult->actions().at(0),SIGNAL(triggered(bool)),this,SLOT(deleteActionResult())); + + // 鍔犺浇涓嬫媺妗嗙殑鍏徃鍚� + //readCompanyFromSQL(); +} + +void ThreeMergeProblemList::initProblemRectBookUi() +{ + // 鍙抽敭鑿滃崟 + m_menuRectBook = new QMenu(this); + m_menuRectBook->addAction("鍒犻櫎褰撳墠琛�"); + ui->tableWidget->setContextMenuPolicy(Qt::CustomContextMenu); + connect(ui->tableWidget,SIGNAL(customContextMenuRequested(QPoint)),this,SLOT(showMenuSlotRectBook(QPoint))); + connect(m_menuRectBook->actions().at(0),SIGNAL(triggered(bool)),this,SLOT(deleteActionRectBook())); + +} + +void ThreeMergeProblemList::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 ThreeMergeProblemList::loadDataFromSQL(const QString &arg1) +{ + // 闂鍙拌处 + + + // 闂娓呭崟 + // 瑕佹竻闄や笂涓�瀹跺叕鍙哥殑鏁版嵁 + ui->tableWidget_3->setRowCount(4); + ui->tableWidget_3->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_3->setItem(row+4,i,new QTableWidgetItem(query.value(2+i).toString())); + } + row++; + ui->tableWidget_3->setRowCount(ui->tableWidget_3->rowCount()+1); // 澧炲姞涓�涓柊鐨勮 + } + qDebug()<<"row:"<<row; + + }else{ + qDebug()<<QString("select problem_list_info fail...")<<query.lastError().text(); + + } + + // 闂鏁存敼缁撴灉 + // 瑕佹竻闄や笂涓�瀹跺叕鍙哥殑鏁版嵁 + ui->tableWidget_2->setRowCount(3); + ui->tableWidget_2->setRowCount(6); + // 鍔犺浇琛ㄦ牸淇℃伅 + //qDebug()<<"current :"<<arg1; + + sql = QString("select * from rectify_result_info where name='%1'").arg(arg1); + //QString sql = QString("select * from rectify_result_info where name='%1'").arg(arg1); + //QSqlQuery query; + if(query.exec(sql)){ + qDebug()<<QString("select rectify_result_info ok"); + int row=0; + while(query.next()){ // 娣诲姞琛屾暟鎹� + for(int i=0;i<10;++i){ + ui->tableWidget_2->setItem(row+3,i,new QTableWidgetItem(query.value(2+i).toString())); + } + row++; + ui->tableWidget_2->setRowCount(ui->tableWidget_2->rowCount()+1); // 澧炲姞涓�涓柊鐨勮 + } + qDebug()<<"row:"<<row; + + }else{ + qDebug()<<QString("select rectify_result_info fail...")<<query.lastError().text(); + + } + +} + +void ThreeMergeProblemList::showMenuSlot(QPoint) +{ + m_menu->exec(QCursor::pos()); +} + +void ThreeMergeProblemList::deleteAction() +{ + int row = ui->tableWidget_3->currentRow(); + if(row>=4){ + qDebug()<<"ok"; + ui->tableWidget_3->removeRow(row); + }else{ + qDebug()<<"fail"; + } +} + +void ThreeMergeProblemList::showMenuSlotResult(QPoint) +{ + m_menuResult->exec(QCursor::pos()); +} + +void ThreeMergeProblemList::deleteActionResult() +{ + int row = ui->tableWidget_2->currentRow(); + if(row>=3){ + qDebug()<<"ok"; + ui->tableWidget_2->removeRow(row); + }else{ + qDebug()<<"fail"; + } +} + +void ThreeMergeProblemList::showMenuSlotRectBook(QPoint) +{ + m_menuRectBook->exec(QCursor::pos()); +} + +void ThreeMergeProblemList::deleteActionRectBook() +{ + int row = ui->tableWidget->currentRow(); + if(row>=0){ + qDebug()<<"ok"; + ui->tableWidget->removeRow(row); + }else{ + qDebug()<<"fail"; + } +} + +// 澧炲姞鍒扮涓�涓〃鏍肩殑琛� +void ThreeMergeProblemList::on_pushButton_addRow_3_clicked() +{ + ui->tableWidget->insertRow(ui->tableWidget->rowCount()); +} + +void ThreeMergeProblemList::on_pushButton_addRow_2_clicked() +{ + ui->tableWidget_3->insertRow(ui->tableWidget_3->rowCount()); +} + +void ThreeMergeProblemList::on_pushButton_addRow_clicked() +{ + ui->tableWidget_2->insertRow(ui->tableWidget_2->rowCount()); +} + +void ThreeMergeProblemList::on_comboBox_company_currentIndexChanged(const QString &arg1) +{ + loadDataFromSQL(arg1); +} + +void ThreeMergeProblemList::on_pushButton_save_2_clicked() +{ + // 闂娓呭崟淇濆瓨 + + QString sql = QString("insert into problem_list_info (name,搴忓彿,鎽樿,妫�鏌ユ椂闂�,妫�鏌ユ柟寮�,绾犳闂,瀹屽杽鍒跺害\ +,瀹屾垚鏃堕棿,涓昏鍘熷洜,瀹屾垚鏃堕檺,涓昏鍘熷洜1,璐d换閮ㄩ棬鎴栬矗浠讳汉,瀹屾垚鏃堕檺1,鏄惁閿�鍙�,閿�鍙锋椂闂�) values "); + QString name = ui->comboBox_company->currentText(); + + for(int i=4;i<ui->tableWidget_3->rowCount();++i){ + QStringList labels; + + for(int j=0;j<ui->tableWidget_3->columnCount();++j){ + QTableWidgetItem *item = ui->tableWidget_3->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 ThreeMergeProblemList::on_pushButton_save_clicked() +{ + // 闂鏁存敼淇濆瓨 + + QString sql = QString("insert into rectify_result_info (name,淇鍒跺害,鏂板鍒跺害,鎸藉洖鎹熷け,鍓旈櫎,瀹″噺,澶勭悊浜�,瀹h疮鍩硅,鍏朵粬,瀹℃牳缁撴灉,娉ㄩ攢) values "); + QString name = ui->comboBox_company->currentText(); + + for(int i=3;i<ui->tableWidget_2->rowCount();++i){ + QStringList labels; + + for(int j=0;j<ui->tableWidget_2->columnCount();++j){ + QTableWidgetItem *item = ui->tableWidget_2->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 rectify_result_info ok..."); + QMessageBox::information(this,"OK","娣诲姞鎴愬姛"); + }else{ + qDebug()<<QString("insert rectify_result_info fail...")<<query.lastError().text(); + QMessageBox::information(this,"娣诲姞澶辫触","鍙兘娣诲姞鐨勬暟鎹笉鍏ㄥ鑷寸殑锛屽緱纭姣忚鐨勯椤规湁鏁版嵁"); + } +} -- Gitblit v1.8.0