#include "threemergeproblemlist.h" #include "ui_threemergeproblemlist.h" #include #include #include #include #include #include #include "noedititemdelegate.h" #pragma execution_character_set("utf-8") ThreeMergeProblemList::ThreeMergeProblemList(QWidget *parent) : QMainWindow(parent), ui(new Ui::ThreeMergeProblemList) { ui->setupUi(this); m_fdd = new FileDialogDelegate; //m_noEdit = new ThreeComboBox; ui->statusbar->hide(); ui->menubar->hide(); initUi(); // 初始化所有界面 // 隐藏 //ui->comboBox_company->hide(); ui->tableWidget_2->hide(); ui->pushButton_save->hide(); ui->pushButton_addRow->hide(); ui->label_5->hide(); ui->label->hide(); ui->tableWidget_3->hide(); ui->pushButton_save_2->hide(); ui->pushButton_addRow_2->hide(); ui->label_6->hide(); ui->label_2->hide(); ui->line->hide(); ui->line_2->hide(); ui->groupBox->hide(); // 首次先隐藏 // pdf文件相关 //m_pdfView = new QWebEngineView(); } ThreeMergeProblemList::~ThreeMergeProblemList() { //delete m_noEdit; delete ui; } // 拿结果集的sql int ThreeMergeProblemList::selectSQL(QString sql,QVector> &result) { int rows = -1; QSqlQuery query; if(query.exec(sql)) { qDebug()< lines; while((var = query.value(idx++)).isValid()){ lines.append(var.toString()); } result.append(lines); } rows = result.size(); }else{ qDebug()<tableWidget->item(row,0)==nullptr) { qDebug()<<"当前行首为空"<tableWidget->columnCount();++i){ if(ui->tableWidget->item(row,i) == nullptr){ qDebug()<<"发现空项:"<tableWidget->setItem(row,i,new QTableWidgetItem(" ")); } } // 取出索引号来判断一下 QString sql = QString("select id from standing_book_info where id=%1").arg(ui->tableWidget->item(row,0)->text()); qDebug()<<"id sql:"<> res; int rows = selectSQL(sql,res); if( rows > 0){ // 存在,则更新内容即可 qDebug()<<"id已存在,需更新数据即可"; sql = QString("update standing_book_info set 审计类别='%1',审计年度='%2',审计单位='%3',审计方式='%4',责任主体名称='%5'" ",审计项目='%6',审计项目名称='%7',问题类别='%8',问题定性='%9',问题描述='%10',问题定性法规依据='%11',涉及金额='%12',问题描述佐证资料='%13'" ",审计期间已整改='%14',整改金额='%15',整改情况1='%16',整改情况佐证资料1='%17',整改结果='%18',整改完成时间='%19',尚未整改到位的原因='%20',整改预计完成时间='%21'" ",整改情况2='%22',整改情况佐证资料2='%23',整改检查结果_检查时间='%24',整改检查结果_检查方式='%25',整改检查结果_检查结果='%26',已整改_纠正问题='%27',已整改_完善制度='%28',已整改_完成时间='%29'" ",正在整改_主要原因='%30',正在整改_完成时限='%31',尚未整改_主要原因='%32',尚未整改_责任部门或责任人='%33',尚未整改_完成时限='%34',制度建设_修订制度='%35',制度建设_新增制度='%36',资金收回_挽回损失='%37'" ",资金收回_其他='%38',资金收回_审减='%39' where id=%40").arg(ui->tableWidget->item(row,1)->text()).arg(ui->tableWidget->item(row,2)->text()).arg(ui->tableWidget->item(row,3)->text()).arg(ui->tableWidget->item(row,4)->text()) .arg(ui->tableWidget->item(row,5)->text()).arg(ui->tableWidget->item(row,6)->text()).arg(ui->tableWidget->item(row,7)->text()).arg(ui->tableWidget->item(row,8)->text()).arg(ui->tableWidget->item(row,9)->text()).arg(ui->tableWidget->item(row,10)->text()) .arg(ui->tableWidget->item(row,11)->text()).arg(ui->tableWidget->item(row,12)->text()).arg(ui->tableWidget->item(row,13)->text()).arg(ui->tableWidget->item(row,14)->text()).arg(ui->tableWidget->item(row,15)->text()).arg(ui->tableWidget->item(row,16)->text()) .arg(ui->tableWidget->item(row,17)->text()).arg(ui->tableWidget->item(row,18)->text()).arg(ui->tableWidget->item(row,19)->text()).arg(ui->tableWidget->item(row,20)->text()).arg(ui->tableWidget->item(row,21)->text()).arg(ui->tableWidget->item(row,22)->text()) .arg(ui->tableWidget->item(row,23)->text()).arg(ui->tableWidget->item(row,24)->text()).arg(ui->tableWidget->item(row,25)->text()).arg(ui->tableWidget->item(row,26)->text()).arg(ui->tableWidget->item(row,27)->text()).arg(ui->tableWidget->item(row,28)->text()) .arg(ui->tableWidget->item(row,29)->text()).arg(ui->tableWidget->item(row,30)->text()).arg(ui->tableWidget->item(row,31)->text()).arg(ui->tableWidget->item(row,32)->text()).arg(ui->tableWidget->item(row,33)->text()).arg(ui->tableWidget->item(row,34)->text()) .arg(ui->tableWidget->item(row,35)->text()).arg(ui->tableWidget->item(row,36)->text()).arg(ui->tableWidget->item(row,37)->text()).arg(ui->tableWidget->item(row,38)->text()).arg(ui->tableWidget->item(row,39)->text()).arg(ui->tableWidget->item(row,0)->text()); qDebug()< 0){ qDebug()<<"change ok"; }else{ qDebug()<<"change fail"; } }else{ // rows为-1 说明sql语句有问题 if(rows == -1){ qDebug()<<"sql error"; return -1; } // 不存在,则需要新增插入 qDebug()<<"不存在id,插入数据"; sql = QString("insert into standing_book_info (审计类别,审计年度,审计单位,审计方式,责任主体名称" ",审计项目,审计项目名称,问题类别,问题定性,问题描述,问题定性法规依据,涉及金额,问题描述佐证资料" ",审计期间已整改,整改金额,整改情况1,整改情况佐证资料1,整改结果,整改完成时间,尚未整改到位的原因,整改预计完成时间" ",整改情况2,整改情况佐证资料2,整改检查结果_检查时间,整改检查结果_检查方式,整改检查结果_检查结果,已整改_纠正问题,已整改_完善制度,已整改_完成时间" ",正在整改_主要原因,正在整改_完成时限,尚未整改_主要原因,尚未整改_责任部门或责任人,尚未整改_完成时限,制度建设_修订制度,制度建设_新增制度,资金收回_挽回损失" ",资金收回_其他,资金收回_审减,log_time) values ('%1','%2','%3','%4','%5','%6','%7','%8','%9','%10','%11','%12','%13','%14','%15','%16','%17','%18','%19','%20','%21','%22','%23'" ",'%24','%25','%26','%27','%28','%29','%30','%31','%32','%33','%34','%35','%36','%37','%38','%39','%40')").arg(ui->tableWidget->item(row,1)->text()).arg(ui->tableWidget->item(row,2)->text()).arg(ui->tableWidget->item(row,3)->text()).arg(ui->tableWidget->item(row,4)->text()) .arg(ui->tableWidget->item(row,5)->text()).arg(ui->tableWidget->item(row,6)->text()).arg(ui->tableWidget->item(row,7)->text()).arg(ui->tableWidget->item(row,8)->text()).arg(ui->tableWidget->item(row,9)->text()).arg(ui->tableWidget->item(row,10)->text()) .arg(ui->tableWidget->item(row,11)->text()).arg(ui->tableWidget->item(row,12)->text()).arg(ui->tableWidget->item(row,13)->text()).arg(ui->tableWidget->item(row,14)->text()).arg(ui->tableWidget->item(row,15)->text()).arg(ui->tableWidget->item(row,16)->text()) .arg(ui->tableWidget->item(row,17)->text()).arg(ui->tableWidget->item(row,18)->text()).arg(ui->tableWidget->item(row,19)->text()).arg(ui->tableWidget->item(row,20)->text()).arg(ui->tableWidget->item(row,21)->text()).arg(ui->tableWidget->item(row,22)->text()) .arg(ui->tableWidget->item(row,23)->text()).arg(ui->tableWidget->item(row,24)->text()).arg(ui->tableWidget->item(row,25)->text()).arg(ui->tableWidget->item(row,26)->text()).arg(ui->tableWidget->item(row,27)->text()).arg(ui->tableWidget->item(row,28)->text()) .arg(ui->tableWidget->item(row,29)->text()).arg(ui->tableWidget->item(row,30)->text()).arg(ui->tableWidget->item(row,31)->text()).arg(ui->tableWidget->item(row,32)->text()).arg(ui->tableWidget->item(row,33)->text()).arg(ui->tableWidget->item(row,34)->text()) .arg(ui->tableWidget->item(row,35)->text()).arg(ui->tableWidget->item(row,36)->text()).arg(ui->tableWidget->item(row,37)->text()).arg(ui->tableWidget->item(row,38)->text()).arg(ui->tableWidget->item(row,39)->text()).arg(QDateTime::currentDateTime().toString("yyyy/MM/dd HH:mm:ss")); qDebug()< 0){ qDebug()<<"insert ok"; }else{ qDebug()<<"insert fail"; } } return rows; } // path 为文件完整路径 // id为子目录名字 int ThreeMergeProblemList::saveFile(QString path, QString id,QString &absSavePath,QString proName) { // 根据id来指定子目录进行文件的拷贝和存储 // 默认保存到当前evidence目录下的id子目录中 QFile sourceFile(path); if(!sourceFile.exists()){ qDebug()<<"target file not exist:"<page()->load(QUrl::fromUserInput(fullPath)); return 0; } 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); //ui->tableWidget->setItem(1,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); // 审计发现问题金额定性 QStringList moneyLabels; moneyLabels<<"其中:绩效类问题金额"<<"合规性问题金额"<<"其中:会计核算方面"<<"违规使用资金"<<"截留、沉淀资金"<<"损失浪费"<<"挪用资金"<<"偷漏税费"<<"违规取得收入"<<"其他"; m_cbb_money = new ComboBoxDelegate(moneyLabels,this); ui->tableWidget->setItemDelegateForColumn(12,m_cbb_money); // 审计发现问题个数定性 QStringList cntLabels; cntLabels<<"其中:金额类问题个数"<<"非金额类问题个数"<<"其中:国家政策措施落实方面"<<"发展规划与战略决策方面"<<"内部控制与风险管理方面"<<"其他"; m_cbb_cnt = new ComboBoxDelegate(cntLabels,this); ui->tableWidget->setItemDelegateForColumn(13,m_cbb_cnt); // 整改结果 QStringList resLabels; resLabels<<"立行整改"<<"分阶段整改"<<"尚未整改"; m_cbb_result = new ComboBoxDelegate(resLabels,this); ui->tableWidget->setItemDelegateForColumn(20,m_cbb_result); // 处分类型 QStringList typeLabels; typeLabels<<"其中:党纪处分"<<"政务处分"<<"内部纪律处分"<<"无处分"; m_cbb_type = new ComboBoxDelegate(typeLabels,this); ui->tableWidget->setItemDelegateForColumn(26,m_cbb_type); // 检查结果 QStringList checkResLabels; checkResLabels<<"已完成"<<"未完成"; m_cbb_check_res = new ComboBoxDelegate(checkResLabels,this); ui->tableWidget->setItemDelegateForColumn(33,m_cbb_check_res); // 金额类整改成果 QStringList moneyResLabels; moneyResLabels<<"其中:调整会计账目"<<"收回资金"<<"挽回损失"<<"归还原资金渠道"<<"补缴税费"<<"其他"; m_cbb_money_res = new ComboBoxDelegate(moneyResLabels,this); ui->tableWidget->setItemDelegateForColumn(42,m_cbb_money_res); // 非金额类整改成果 QStringList noMoneyResLabels; noMoneyResLabels<<"其中:新制定制度"<<"修订完善制度"<<"优化完善业务流程"<<"其他"; m_cbb_no_money_res = new ComboBoxDelegate(noMoneyResLabels,this); ui->tableWidget->setItemDelegateForColumn(44,m_cbb_no_money_res); // 问题描述佐证资料(上传取证单) 录入或者上传 //ui->tableWidget->setItemDelegateForColumn(13,m_fdd); QStringList fwLabels; fwLabels << "录入(直接输入后回车即可)"<<"上传"; m_cbb_file_wri = new ComboBoxDelegate(fwLabels,this,true); ui->tableWidget->setItemDelegateForColumn(13+2,m_cbb_file_wri); ui->tableWidget->setItemDelegateForColumn(17+2,m_cbb_file_wri); ui->tableWidget->setItemDelegateForColumn(23+2,m_cbb_file_wri); // 处理年月日时间 m_date_ymd = new DateDelegate(this,"yyyy/MM/dd"); ui->tableWidget->setItemDelegateForColumn(19+2,m_date_ymd); ui->tableWidget->setItemDelegateForColumn(21+2,m_date_ymd); ui->tableWidget->setItemDelegateForColumn(24+2+5,m_date_ymd); ui->tableWidget->setItemDelegateForColumn(29+2+5,m_date_ymd); ui->tableWidget->setItemDelegateForColumn(31+2+5,m_date_ymd); ui->tableWidget->setItemDelegateForColumn(34+2+5,m_date_ymd); // 将标题导入第三行 for(int i=0;itableWidget->columnCount();++i){ QString label = ui->tableWidget->horizontalHeaderItem(i)->text(); QTableWidgetItem *item = new QTableWidgetItem(label); if(i < 16){ item->setBackground(QBrush(QColor("#ff00ff"))); }else if(i < 16+10){ item->setBackground(QBrush(QColor("#00aaff"))); } ui->tableWidget->setItem(2,i,item); } // 并且禁用编辑功能 //ui->tableWidget->setItemDelegateForRow(1,m_noEdit); //ui->tableWidget->setEditTriggers(QAbstractItemView::NoEditTriggers); m_noEdit = new TableItemDelegate; ui->tableWidget->setItemDelegateForRow(0,m_noEdit); ui->tableWidget->setItemDelegateForRow(1,m_noEdit); ui->tableWidget->setItemDelegateForRow(2,m_noEdit); // 合并第一行的情况,进行分类 ui->tableWidget->setItem(0,1,new QTableWidgetItem("发现问题")); ui->tableWidget->setItem(0,16,new QTableWidgetItem("整改情况")); // 处分结果(能自动统计综合审计统计表中:根据审计建议给予党纪、政务和内部纪律处分) ui->tableWidget->setItem(0,26,new QTableWidgetItem("处分结果")); // 移送信息(能自动统计综合审计统计表中:向司法机关移送或报告案件线索) ui->tableWidget->setItem(0,28,new QTableWidgetItem("移送信息")); ui->tableWidget->setItem(0,31,new QTableWidgetItem("整改检查结果")); ui->tableWidget->setItem(0,34,new QTableWidgetItem("整改类型")); ui->tableWidget->setItem(1,34,new QTableWidgetItem("已整改")); ui->tableWidget->setItem(1,37,new QTableWidgetItem("正在整改")); ui->tableWidget->setItem(1,39,new QTableWidgetItem("尚未整改")); ui->tableWidget->setItem(0,42,new QTableWidgetItem("整改成果")); ui->tableWidget->setItem(1,42,new QTableWidgetItem("问题整改(金额类)")); ui->tableWidget->setItem(1,44,new QTableWidgetItem("问题整改(非金额类)")); ui->tableWidget->setSpan(0,1,2,15); // 发现问题 ui->tableWidget->item(0,1)->setTextAlignment(Qt::AlignCenter); ui->tableWidget->setSpan(0,16,2,10); // 整改情况 ui->tableWidget->item(0,16)->setTextAlignment(Qt::AlignCenter); ui->tableWidget->setSpan(0,26,2,2); // 处分结果 ui->tableWidget->item(0,26)->setTextAlignment(Qt::AlignCenter); ui->tableWidget->setSpan(0,28,2,3); // 移送信息 ui->tableWidget->item(0,28)->setTextAlignment(Qt::AlignCenter); ui->tableWidget->setSpan(0,31,2,3); // 整改检查结果 ui->tableWidget->item(0,31)->setTextAlignment(Qt::AlignCenter); ui->tableWidget->setSpan(0,34,1,8); // 整改类型 ui->tableWidget->item(0,34)->setTextAlignment(Qt::AlignCenter); ui->tableWidget->setSpan(1,34,1,3); // 已整改 ui->tableWidget->item(1,34)->setTextAlignment(Qt::AlignCenter); ui->tableWidget->setSpan(1,37,1,2); // 正在整改 ui->tableWidget->item(1,37)->setTextAlignment(Qt::AlignCenter); ui->tableWidget->setSpan(1,39,1,3); // 尚未整改 ui->tableWidget->item(1,39)->setTextAlignment(Qt::AlignCenter); ui->tableWidget->setSpan(0,42,1,4); // 整改成果 ui->tableWidget->item(0,42)->setTextAlignment(Qt::AlignCenter); ui->tableWidget->setSpan(1,42,1,2); // 问题整改(金额类) ui->tableWidget->item(1,42)->setTextAlignment(Qt::AlignCenter); ui->tableWidget->setSpan(1,44,1,2); // 问题整改(非金额类) ui->tableWidget->item(1,44)->setTextAlignment(Qt::AlignCenter); // 隐藏列标题 ui->tableWidget->horizontalHeader()->setVisible(false); // 加载公司名 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("删除当前行"); m_menuRectBook->addAction("保存当前行"); 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())); connect(m_menuRectBook->actions().at(1),SIGNAL(triggered(bool)),this,SLOT(saveActionRectBook())); connect(m_menuRectBook->actions().at(2),SIGNAL(triggered(bool)),this,SLOT(showSaveFile())); } 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()<<"delete ok"; ui->tableWidget->removeRow(row); }else{ qDebug()<<"delete fail"; } } void ThreeMergeProblemList::saveActionRectBook() { // 单行保存,先判断id号是不是存在,存在则是更新,不存在则是插入 int row = ui->tableWidget->currentRow(); auto item = ui->tableWidget->currentItem(); if(row>=0 && item){ qDebug()<<"save ok"<< row << item->row()<column(); int rows = saveDataLine(row); if(rows>0){ // 需要将文件拷贝到id目录 QString fpath = ui->tableWidget->item(row,13+2)->text(); QString spath = ui->tableWidget->item(row,17+2)->text(); QString tpath = ui->tableWidget->item(row,23+2)->text(); QString fid = ui->tableWidget->item(row,0)->text(); QString proName = ui->tableWidget->item(row,7)->text(); // 项目名称 qDebug()<<"拷贝文件:"<tableWidget->setItem(row,13+2,new QTableWidgetItem(absSavePath1)); } int sflag2 = saveFile(spath,fid,absSavePath2,proName); // 保存第二个 if(sflag2==1){ ui->tableWidget->setItem(row,17+2,new QTableWidgetItem(absSavePath2)); } int sflag3 = saveFile(tpath,fid,absSavePath3,proName); // 保存第三个 if(sflag3==1){ ui->tableWidget->setItem(row,23+2,new QTableWidgetItem(absSavePath3)); } qDebug()<<"save falg:"<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()<comboBox_standing_book_condt->currentText(); QString sql = "select * from standing_book_info "; QString condition = ""; if(curText == "全部" || strcmp(curText.toLocal8Bit().data(),"全部")==0){ qDebug()<<"全部"; }else if(curText == "审计类别" || strcmp(curText.toLocal8Bit().data(),"审计类别")==0){ qDebug()<<"审计类别"; condition = QString(" where 审计类别='%1'").arg(ui->lineEdit_sbook_condition->text()); }else if(curText == "审计年度" || strcmp(curText.toLocal8Bit().data(),"审计年度")==0){ qDebug()<<"审计年度"; condition = QString(" where 审计年度='%1'").arg(ui->lineEdit_sbook_condition->text()); }else if(curText == "问题类别" || strcmp(curText.toLocal8Bit().data(),"问题类别")==0){ qDebug()<<"问题类别"; condition = QString(" where 问题类别='%1'").arg(ui->lineEdit_sbook_condition->text()); }else if(curText == "审计方式" || strcmp(curText.toLocal8Bit().data(),"审计方式")==0){ qDebug()<<"审计方式"; condition = QString(" where 审计方式='%1'").arg(ui->lineEdit_sbook_condition->text()); }else if(curText == "责任主体名称" || strcmp(curText.toLocal8Bit().data(),"责任主体名称")==0){ qDebug()<<"责任主体名称"; condition = QString(" where 责任主体名称='%1'").arg(ui->lineEdit_sbook_condition->text()); }else if(curText == "审计单位" || strcmp(curText.toLocal8Bit().data(),"审计单位")==0){ qDebug()<<"审计单位"; condition = QString(" where 审计单位='%1'").arg(ui->lineEdit_sbook_condition->text()); }else if(curText == "涉及金额" || strcmp(curText.toLocal8Bit().data(),"涉及金额")==0){ qDebug()<<"涉及金额"; condition = QString(" where 涉及金额 <=%1").arg(ui->lineEdit_sbook_condition->text()); }else if(curText == "整顿金额" || strcmp(curText.toLocal8Bit().data(),"整顿金额")==0){ qDebug()<<"整顿金额"; condition = QString(" where 整顿金额 <=%1").arg(ui->lineEdit_sbook_condition->text()); } sql += condition; qDebug()<> res; int rows = selectSQL(sql,res); if(rows > 0){ ui->tableWidget->setRowCount(rows); for(int i=0;itableWidget->setItem(i,j,new QTableWidgetItem(res[i][j])); } } }else{ QMessageBox::information(this,"查询失败","可能查询的内容不正确或者没有记录相应的数据"); } } void ThreeMergeProblemList::on_pushButton_save_3_clicked() { int hasContentRow=0; for(int i=0;itableWidget->rowCount();++i){ int row = saveDataLine(i); if(row > 0) { hasContentRow++; // 需要将文件拷贝到id目录 QString fpath = ui->tableWidget->item(i,13)->text(); QString spath = ui->tableWidget->item(i,17)->text(); QString tpath = ui->tableWidget->item(i,23)->text(); QString fid = ui->tableWidget->item(i,0)->text(); QString proName = ui->tableWidget->item(i,7)->text(); // 项目名称 qDebug()<<"拷贝文件:"<tableWidget->setItem(i,13+2,new QTableWidgetItem(absSavePath1)); } int sflag2 = saveFile(spath,fid,absSavePath2,proName); // 保存第二个 if(sflag2==1){ ui->tableWidget->setItem(i,17+2,new QTableWidgetItem(absSavePath2)); } int sflag3 = saveFile(tpath,fid,absSavePath3,proName); // 保存第三个 if(sflag3==1){ ui->tableWidget->setItem(i,23+2,new QTableWidgetItem(absSavePath3)); } qDebug()<<"save falg:"<tableWidget->rowCount()) .arg(hasContentRow).arg(ui->tableWidget->rowCount()-hasContentRow)); } void ThreeMergeProblemList::on_pushButton_moreSearch_clicked() { QString sql = "select * from standing_book_info "; QVector vecCon; // 保存所有条件 if(ui->checkBox_type->isChecked()){ QString condition= QString(" 审计类别='%1' ").arg(ui->comboBox_type->currentText()); vecCon.append(condition); } if(ui->checkBox_year->isChecked()){ QString condition= QString(" 审计年度='%1' ").arg(ui->dateEdit_year->text()); vecCon.append(condition); } if(ui->checkBox_com->isChecked()){ QString condition= QString(" 审计单位='%1' ").arg(ui->comboBox_com->currentText()); vecCon.append(condition); } if(ui->checkBox_way->isChecked()){ QString condition= QString(" 审计方式='%1' ").arg(ui->comboBox_way->currentText()); vecCon.append(condition); } if(ui->checkBox_mainCom->isChecked()){ QString condition= QString(" 责任主体名称='%1' ").arg(ui->comboBox_mainCom->currentText()); vecCon.append(condition); } if(ui->checkBox_pro->isChecked()){ QString condition= QString(" 审计项目='%1' ").arg(ui->comboBox_pro->currentText()); vecCon.append(condition); } if(ui->checkBox_proName->isChecked()){ QString condition= QString(" 审计项目名称='%1' ").arg(ui->comboBox_proName->currentText()); vecCon.append(condition); } if(ui->checkBox_qtype->isChecked()){ QString condition= QString(" 问题类别='%1' ").arg(ui->comboBox_qtype->currentText()); vecCon.append(condition); } if(ui->checkBox_qdx->isChecked()){ QString condition= QString(" 问题定性='%1'").arg(ui->comboBox_qdx->currentText()); vecCon.append(condition); } if(ui->checkBox_about_money->isChecked()){ QString condition= QString(" 涉及金额 >= %1 and 涉及金额 <= %2").arg(ui->comboBox_about_bgMonney->currentText()).arg(ui->comboBox_about_edMoney->currentText()); vecCon.append(condition); } if(ui->checkBox_changeMoney->isChecked()){ QString condition= QString(" 整改金额>=%1 and 整改金额<=%2").arg(ui->comboBox_change_bgMoney->currentText()).arg(ui->comboBox_change_edMoney->currentText()); vecCon.append(condition); } if(ui->checkBox_change_over_time->isChecked()){ QString condition= QString(" 整改完成时间='%1' ").arg(ui->dateEdit_change_over_time->text()); vecCon.append(condition); } if(ui->checkBox_change_expected_time->isChecked()){ QString condition= QString(" 整改预计完成时间='%1' ").arg(ui->dateEdit_change_expected_time->text()); vecCon.append(condition); } QString condition; if(vecCon.size() == 1){ condition += QString(" where %1").arg(vecCon.at(0)); }else if(vecCon.size() > 1){ condition += QString(" where %1").arg(vecCon.at(0)); for(int i=1;i> res; int rows = selectSQL(sql,res); if(rows > 0){ ui->tableWidget->setRowCount(rows); for(int i=0;itableWidget->setItem(i,j,new QTableWidgetItem(res[i][j])); } } }else{ QMessageBox::information(this,"查询失败","可能查询的内容不正确或者没有记录相应的数据"); } } void ThreeMergeProblemList::on_pushButton_multiSearch_clicked() { static int cnt=0; if(cnt%2 == 1){ ui->groupBox->hide(); ui->pushButton_multiSearch->setText("多维度数据查询👆"); }else{ ui->groupBox->show(); ui->pushButton_multiSearch->setText("多维度数据查询👇"); } cnt++; } void ThreeMergeProblemList::showSaveFile() { int row = ui->tableWidget->currentRow(); auto item = ui->tableWidget->currentItem(); if(row>=0 && item){ qDebug()<<"row"<tableWidget->item(row,13+2); auto item_17 = ui->tableWidget->item(row,17+2); auto item_23 = ui->tableWidget->item(row,23+2); if(item_13){ qDebug()<text(); QString text = item_13->text(); QStringList listPath = text.split("/"); if(listPath.size() > 2){ qDebug()<<"发现文件"<text(); } if(item_23){ qDebug()<text(); } } } void ThreeMergeProblemList::updateComboList(QMap & nameAndComInfos) { ui->comboBox_company->clear(); for(auto it = nameAndComInfos.begin();it != nameAndComInfos.end();++it){ ui->comboBox_company->addItem(it.key()); } } void ThreeMergeProblemList::on_pushButton_save_export_clicked() { qDebug()<<"三合一导出保存"; }