#include "searchinfo.h" #include "ui_searchinfo.h" #include #include #include #include #include SearchInfo::SearchInfo(QWidget *parent) : QMainWindow(parent), ui(new Ui::SearchInfo) { ui->setupUi(this); // ui->label_2->hide(); // ui->label_3->hide(); // ui->dateTimeEdit->hide(); // ui->dateTimeEdit_2->hide(); 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{ m_db = QSqlDatabase::addDatabase("QSQLITE"); } m_db.setDatabaseName("sqlData.db"); if(m_db.open()){ qDebug()<<"db open ok"; createSqlite(); //m_db.close(); searchComName(); // 查询公司名 }else{ qDebug()<<"db open fail"; } // 设置表格列标签 setLabels(); } SearchInfo::~SearchInfo() { m_db.close(); delete ui; } void SearchInfo::createSqlite() { // 建表 QString sql = "create table Internal_1 (id int primary key, name varchar(30), _020100 int)"; QSqlQuery query; if(query.exec(sql)) { qDebug()<<"create Internal_1 ok..."; }else{ qDebug()<<"create Internal_1 fail..."<comboBox_company->addItem(name); } } } QVector> SearchInfo::getResult(QString &sql,int colCnt) { QVector> resultSet; QSqlQuery query; qDebug()< tmp; for(int i=0;icomboBox->currentText(); QString comName = ui->comboBox_company->currentText(); QString sql = QString("select * from %1 where com_id=%2").arg(m_itemAndTable[item]).arg(m_comInfo[comName]); qDebug()<<__FUNCTION__<setRowCount(0); int rowCnt = 0; while (query.next()) { rowCnt++; m_model->setRowCount(rowCnt); qDebug()<setItem(rowCnt-1,i,new QStandardItem(query.value(i).toString())); } } } } } void SearchInfo::on_pushButton_export_clicked() { // 每一张表拿最新的那一批数据即可,然后保存到电子表格中 int comId = m_comInfo[ui->comboBox_company->currentText()]; QString audit_project = QString("select kpi_name,code,num from %2 where com_id=%1 limit 10").arg(comId).arg("audit_project"); QString audit_workload = QString("select kpi_name,code,num from %2 where com_id=%1 limit 1").arg(comId).arg("audit_workload"); QString case_clue = QString("select kpi_name,code,unit,num from %2 where com_id=%1 limit 2").arg(comId).arg("case_clue"); QString problem_count = QString("select kpi_name,code,num,evidences from %2 where com_id=%1 limit 7").arg(comId).arg("problem_count"); QString problem_money = QString("select kpi_name,code,num,evidences from %2 where com_id=%1 limit 11").arg(comId).arg("problem_money"); QString problem_no_money = QString("select kpi_name,code,num,evidences from %2 where com_id=%1 limit 5").arg(comId).arg("problem_no_money"); QString problem_rectification = QString("select kpi_name,code,num,evidences from %2 where com_id=%1 limit 7").arg(comId).arg("problem_rectification"); QString punish = QString("select kpi_name,code,num from %2 where com_id=%1 limit 4").arg(comId).arg("punish"); QVector> audit_project_res = getResult(audit_project,3); QVector> audit_workload_res = getResult(audit_workload,3); QVector> case_clue_res = getResult(case_clue,4); QVector> problem_count_res = getResult(problem_count,4); QVector> problem_money_res = getResult(problem_money,4); QVector> problem_no_money_res = getResult(problem_no_money,4); QVector> problem_rectification_res = getResult(problem_rectification,4); QVector> punish_res = getResult(punish,3); qDebug()<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:"<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]); }