wumu
2023-09-13 6ea2769d53615984e57b26b63b8d56b49c472e26
internal_system_v1/searchinfo.cpp
@@ -1,6 +1,8 @@
#include "searchinfo.h"
#include "ui_searchinfo.h"
#include <QAxObject>
#include <QDebug>
#include <QDir>
#include <QSqlError>
#include <QSqlQuery>
@@ -17,7 +19,10 @@
    m_model = new QStandardItemModel(this);
    ui->tableView->setModel(m_model);
    ui->tableView->verticalHeader()->setVisible(false); // 隐藏行头
    m_model->setColumnCount(5);
    QStringList labels;
    labels<<"ID"<<"指标名称"<<"代码"<<"数量"<<"公司编号";
    m_model->setHorizontalHeaderLabels(labels);
    if(QSqlDatabase::contains("qt_sql_default_connection")){
        m_db = QSqlDatabase::addDatabase("qt_sql_default_connection");
    }else{
@@ -32,7 +37,8 @@
    }else{
        qDebug()<<"db open fail";
    }
    // 设置表格列标签
    setLabels();
}
@@ -216,6 +222,22 @@
    return resultSet;
}
void SearchInfo::setLabels()
{
    QStringList labels,labels2,labels3;
    labels<<"ID"<<"指标名称"<<"代码"<<"数量"<<"公司编号"<<" ";
    labels2<<"ID"<<"指标名称"<<"代码"<<"单位"<<"数量"<<"公司编号";
    labels3<<"ID"<<"指标名称"<<"代码"<<"数量"<<"佐证"<<"公司编号";
    m_labels["审计项目"] = labels;
    m_labels["内审工作量"] = labels;
    m_labels["问题金额"] = labels3;
    m_labels["问题个数"] = labels3;
    m_labels["问题整改"] = labels3;
    m_labels["问题整改--非金额"] = labels3;
    m_labels["处分"] = labels;
    m_labels["案件线索"] = labels2;
}
void SearchInfo::on_pushButton_search_clicked()
{
    // 获取信息,然后查询
@@ -232,11 +254,12 @@
            rowCnt++;
            m_model->setRowCount(rowCnt);
            qDebug()<<query.value(0).toInt();
            m_model->setItem(rowCnt-1,0,new QStandardItem(query.value(0).toString()));
            m_model->setItem(rowCnt-1,1,new QStandardItem(query.value(1).toString()));
            m_model->setItem(rowCnt-1,2,new QStandardItem(query.value(2).toString()));
            m_model->setItem(rowCnt-1,3,new QStandardItem(query.value(3).toString()));
            m_model->setItem(rowCnt-1,4,new QStandardItem(query.value(4).toString()));
            for(int i=0;i<6;++i){
                if(query.value(i).isValid()){
                    m_model->setItem(rowCnt-1,i,new QStandardItem(query.value(i).toString()));
                }
            }
        }
    }
@@ -265,4 +288,30 @@
    QVector<QVector<QString>> punish_res = getResult(punish,3);
    qDebug()<<audit_project_res.size()<<punish_res.size();
    // 操作excel
    QAxObject* excel = new QAxObject("Excel.Application");  // 创建Excel对象
    excel->setProperty("Visible", false);  // 设置Excel不可见
    QAxObject* workbooks = excel->querySubObject("Workbooks");  // 获取所有工作簿
    QAxObject* workbook = workbooks->querySubObject("Add");  // 添加新工作簿
    QAxObject* worksheets = workbook->querySubObject("Worksheets");  // 获取所有工作表
    QAxObject* worksheet = worksheets->querySubObject("Item(int)", 1);  // 获取第一个工作表
    for (int i = 1; i <= 5; i++) {
        for (int j = 1; j <= 5; j++) {
            QString cellValue = "Value";  // 设置要写入的单元格值
            worksheet->querySubObject("Cells(int, int)", i, j)->dynamicCall("SetValue(const QVariant&)", cellValue);  // 写入单元格值
        }
    }
    QString path = QDir::currentPath();
    qDebug()<<"path:"<<path;
    path += "/debug/Data/save2.xls";
    qDebug()<<"path:"<<path;
    workbook->dynamicCall("SaveAs(const QString&)", path);  // 保存工作簿
    workbook->dynamicCall("Close()");  // 关闭工作簿
    excel->dynamicCall("Quit()");  // 退出Excel应用程序
}
void SearchInfo::on_comboBox_currentIndexChanged(const QString &arg1)
{
    m_model->setHorizontalHeaderLabels(m_labels[arg1]);
}