#include "threemergeproblemlist.h" #include "ui_threemergeproblemlist.h" #include #include #include #include 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 <<" "<< "贯彻落实国家重大政策措施审计"<<"财政财务收支审计"<<"固定资产投资审计"<<"内部控制和风险管理审计" <<"经济责任审计"<<"信息系统审计"<<"境外审计"<<"其他"; m_cbb_way = new ComboBoxDelegate(proLabels,this); ui->tableWidget->setItemDelegateForColumn(6,m_cbb_way); // 问题描述佐证资料(上传取证单) 录入或者上传 //ui->tableWidget->setItemDelegateForColumn(13,m_fdd); QStringList fwLabels; fwLabels << "录入(直接输入后回车即可)"<<"上传"; m_cbb_file_wri = new ComboBoxDelegate(fwLabels,this,true); ui->tableWidget->setItemDelegateForColumn(13,m_cbb_file_wri); ui->tableWidget->setItemDelegateForColumn(17,m_cbb_file_wri); ui->tableWidget->setItemDelegateForColumn(23,m_cbb_file_wri); // 处理年月日时间 m_date_ymd = new DateDelegate(this,"yyyy/MM/dd"); ui->tableWidget->setItemDelegateForColumn(19,m_date_ymd); ui->tableWidget->setItemDelegateForColumn(21,m_date_ymd); ui->tableWidget->setItemDelegateForColumn(24,m_date_ymd); ui->tableWidget->setItemDelegateForColumn(29,m_date_ymd); ui->tableWidget->setItemDelegateForColumn(31,m_date_ymd); ui->tableWidget->setItemDelegateForColumn(34,m_date_ymd); // 加载公司名 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("正在整改")); 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("责任部门或责任人")); 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("宣贯培训")); 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()<comboBox_company->addItem(name); } }else{ qDebug()<tableWidget_3->setRowCount(4); ui->tableWidget_3->setRowCount(7); // 加载表格信息 qDebug()<<"current :"<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:"<tableWidget_2->setRowCount(3); ui->tableWidget_2->setRowCount(6); // 加载表格信息 //qDebug()<<"current :"<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:"<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,责任部门或责任人,完成时限1,是否销号,销号时间) values "); QString name = ui->comboBox_company->currentText(); for(int i=4;itableWidget_3->rowCount();++i){ QStringList labels; for(int j=0;jtableWidget_3->columnCount();++j){ QTableWidgetItem *item = ui->tableWidget_3->item(i,j);; qDebug() <data(Qt::EditRole).toString(); }else{ labels<<" "; } } qDebug()<comboBox_company->currentText(); for(int i=3;itableWidget_2->rowCount();++i){ QStringList labels; for(int j=0;jtableWidget_2->columnCount();++j){ QTableWidgetItem *item = ui->tableWidget_2->item(i,j);; qDebug() <data(Qt::EditRole).toString(); }else{ labels<<" "; } } qDebug()<