wumu
2024-04-26 b518e24870d6438915398935b665b180a68c1686
internal_system_v1/threemergeproblemlist.cpp
@@ -1,14 +1,215 @@
#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);
    ui->statusbar->hide();
    ui->menubar->hide();
    initUi(); // 初始化所有界面
}
ThreeMergeProblemList::~ThreeMergeProblemList()
{
    delete ui;
}
void ThreeMergeProblemList::initUi()
{
    initProblemListUi(); // 初始化问题清单界面
    initProblemResultUi(); // 初始化问题处理结果界面
    // 加载公司名
    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::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::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::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());
}