#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 <<" "<< "贯彻落实国家重大政策措施审计"<<"财政财务收支审计"<<"固定资产投资审计"<<"内部控制和风险管理审计"
|
<<"经济责任审计"<<"信息系统审计"<<"境外审计"<<"其他";
|
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("正在整改"));
|
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()<<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,责任部门或责任人,完成时限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,修订制度,新增制度,挽回损失,剔除,审减,处理人,宣贯培训,其他,审核结果,注销) 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,"添加失败","可能添加的数据不全导致的,得确认每行的首项有数据");
|
}
|
}
|