#include "converinfo2.h" #include "ui_converinfo2.h" #include #include #include #include #include #pragma execution_character_set("utf-8") ConverInfo2::ConverInfo2(QWidget *parent) : QMainWindow(parent), ui(new Ui::ConverInfo2) { ui->setupUi(this); m_menu = nullptr; //initUi(); readInfo(); // 加载表格 addMenu(); // 增加菜单 } ConverInfo2::~ConverInfo2() { delete ui; } void ConverInfo2::initUi() { // 查询表中所有的公司名字,放到树形菜单中 QStringList comInfo; comInfo<<"码蚁软件"<<"C++课程体系"<<"嵌入式课程体系"; QTreeWidgetItem *top = new QTreeWidgetItem(ui->treeWidget,comInfo); ui->treeWidget->addTopLevelItem(top); ui->treeWidget->expandAll(); QTreeWidgetItem *it1 = new QTreeWidgetItem(top); it1->setText(0,"开发部1"); QTreeWidgetItem *it2 = new QTreeWidgetItem(top); it2->setText(0,"开发部2"); QTreeWidgetItem *it3 = new QTreeWidgetItem(top); it3->setText(0,"开发部3"); QTreeWidgetItem *top1 = new QTreeWidgetItem(ui->treeWidget); top1->setText(0,"码蚁集团"); QTreeWidgetItem *it4 = new QTreeWidgetItem(top1); it4->setText(0,"开发部4"); top1->setCheckState(0,Qt::Checked); it4->setCheckState(0,Qt::Checked); // 复选框状态处理 connect(ui->treeWidget,QOverload::of(QTreeWidget::itemClicked),this,[=](QTreeWidgetItem* it,int index){ qDebug()<childCount();++i){ top1->child(i)->setCheckState(0,top1->checkState(0)); } } }); // 设置菜单:添加单位、删除单位 m_menu = new QMenu(this); m_menu->addAction("删除"); m_menu->addAction("增加"); ui->treeWidget->setContextMenuPolicy(Qt::CustomContextMenu); connect(ui->treeWidget,SIGNAL(customContextMenuRequested(QPoint)),this,SLOT(showMenu(QPoint))); connect(m_menu->actions().at(0),SIGNAL(triggered(bool)),this,SLOT(deleteInfo())); connect(m_menu->actions().at(1),SIGNAL(triggered(bool)),this,SLOT(addInfo())); // 单位内容修改 // 右边可编辑内容 //ui->scrollArea->setWidget(ui->frame); } void ConverInfo2::showMenu(QPoint p) { QTreeWidgetItem * item = ui->treeWidget->itemAt(p); if(item==nullptr)return; m_curItem = item; qDebug()<<"当前节点:"<text(0); m_menu->exec(QCursor::pos()); } void ConverInfo2::addInfo() { if(m_curItem==nullptr)return; qDebug()<<"添加公司信息,在节点:"<text(0); } void ConverInfo2::deleteInfo() { if(m_curItem==nullptr)return; qDebug()<<"删除公司信息,节点:"<text(0); } void ConverInfo2::on_treeWidget_doubleClicked(const QModelIndex &index) { QString name = index.model()->data(index).toString(); qDebug()<<"双击"<lineEdit_creditCode->setText(curCominfo.creditCode); ui->lineEdit_name->setText(QString::fromLocal8Bit( curCominfo.name)); qDebug()<<"name:"<comboBox_comType->setCurrentText(QString::fromLocal8Bit(curCominfo.comType)); ui->lineEdit_business->setText(QString::fromLocal8Bit(curCominfo.business)); ui->lineEdit_businessCode->setText(curCominfo.businessCode); ui->lineEdit_addr->setText(QString::fromLocal8Bit(curCominfo.addr)); ui->lineEdit_areaCode->setText(curCominfo.areaCode); ui->lineEdit_townCode->setText(curCominfo.townCode); ui->comboBox_scale->setCurrentText(QString::fromLocal8Bit(curCominfo.scale)); ui->lineEdit_people->setText(QString::number(curCominfo.people)); ui->lineEdit_representative->setText(QString::fromLocal8Bit(curCominfo.representative)); ui->comboBox_standardType->setCurrentText(QString::fromLocal8Bit(curCominfo.standardType)); ui->lineEdit_trunkCode->setText(curCominfo.trunkCode); ui->lineEdit_fixedTel->setText(curCominfo.fixedTel); ui->lineEdit_postCode->setText(curCominfo.postCode); ui->lineEdit_email->setText(curCominfo.email); ui->lineEdit_webSite->setText(curCominfo.webSite); // 二、单位组织结构情况 ui->comboBox_hasUpLegal->setCurrentText(QString::fromLocal8Bit(curCominfo.hasUpLegal)); ui->lineEdit_upCreditCode->setText(QString::fromLocal8Bit(curCominfo.upCreditCode)); ui->lineEdit_oldCreditCode->setText(curCominfo.oldCreditCode); ui->lineEdit_upName->setText(QString::fromLocal8Bit(curCominfo.upName)); // 三、总审计师与内审机构基本情况 ui->comboBox_hasChiefDesigner->setCurrentText(QString::fromLocal8Bit(curCominfo.hasChiefDesigner)); ui->comboBox_ChiefDesignerLevel->setCurrentText(QString::fromLocal8Bit(curCominfo.ChiefDesignerLevel)); ui->comboBox_employmentMode->setCurrentText(QString::fromLocal8Bit(curCominfo.employmentMode)); ui->comboBox_hasSetIntervalAudit->setCurrentText(QString::fromLocal8Bit(curCominfo.hasSetIntervalAudit)); ui->lineEdit_internalName->setText(QString::fromLocal8Bit(curCominfo.internalName)); ui->comboBox_leadingOrganization->setCurrentText(QString::fromLocal8Bit(curCominfo.leadingOrganization)); ui->comboBox_hasSetSeparateIA->setCurrentText(QString::fromLocal8Bit(curCominfo.hasSetSeparateIA)); ui->checkBox_financeDepartment->setChecked(curCominfo.financeDepartment); ui->checkBox_legalDepartment->setChecked(curCominfo.legalDepartment); ui->checkBox_internalConDepart->setChecked(curCominfo.internalConDepart); ui->checkBox_disceplineInDepart->setChecked(curCominfo.disceplineInDepart); ui->checkBox_otherDepart->setChecked(curCominfo.otherDepart); ui->comboBox_intavalAuditLeval->setCurrentText(QString::fromLocal8Bit(curCominfo.intavalAuditLeval)); // 四、内审人员配备基本情况 ui->lineEdit_organazationNum->setText(QString::number(curCominfo.organazationNum)); ui->lineEdit_realNum->setText(QString::number(curCominfo.realNum)); ui->lineEdit_professionalNum->setText(QString::number(curCominfo.professionalNum)); ui->lineEdit_CIANum->setText(QString::number(curCominfo.CIANum)); ui->lineEdit_masterNum->setText(QString::number(curCominfo.masterNum)); ui->lineEdit_undergraduatesNum->setText(QString::number(curCominfo.undergraduatesNum)); ui->lineEdit_juniorNum->setText(QString::number(curCominfo.juniorNum)); ui->lineEdit_seniorNum->setText(QString::number(curCominfo.seniorNum)); ui->lineEdit_intermediateNum->setText(QString::number(curCominfo.intermediateNum)); ui->lineEdit_primaryNum->setText(QString::number(curCominfo.primaryNum)); ui->lineEdit_noTitleNum->setText(QString::number(curCominfo.noTitleNum)); ui->lineEdit_upFiftyOldNum->setText(QString::number(curCominfo.upFiftyOldNum)); ui->lineEdit_upThirtyOldNum->setText(QString::number(curCominfo.upThirtyOldNum)); ui->lineEdit_downThirtyOldNum->setText(QString::number(curCominfo.downThirtyOldNum)); ui->lineEdit_auditNum->setText(QString::number(curCominfo.auditNum)); ui->lineEdit_accountingNum->setText(QString::number(curCominfo.accountingNum)); ui->lineEdit_economyNum->setText(QString::number(curCominfo.economyNum)); ui->lineEdit_lawNum->setText(QString::number(curCominfo.lawNum)); ui->lineEdit_managerNum->setText(QString::number(curCominfo.managerNum)); ui->lineEdit_itNum->setText(QString::number(curCominfo.itNum)); ui->lineEdit_engineeringNum->setText(QString::number(curCominfo.engineeringNum)); ui->lineEdit_otherNum->setText(QString::number(curCominfo.otherNum)); // 其他的4个信息 ui->lineEdit_statisticalConOfficer->setText(QString::fromLocal8Bit(curCominfo.statisticalConOfficer)); ui->lineEdit_personFilling->setText(QString::fromLocal8Bit(curCominfo.personFilling)); ui->lineEdit_officerTel->setText(QString::fromLocal8Bit(curCominfo.officerTel)); ui->lineEdit_fillingDateTime->setText(QString::fromLocal8Bit(curCominfo.fillingDateTime)); } void ConverInfo2::readInfo() { // QXlsx::Document doc("./debug/Data/test.xlsx"); // QString cc = doc.read("A1").toString(); // qDebug()<<"cc"<label_creditCode->setText(cc); extern QString g_dataRootPath; QString dirPath = "./debug/Data"; QString dirPathRelease = "./release/Data"; QString dirPathData = "./Data"; QDir dir(dirPathData); if(dir.exists()){ dirPath = dirPathData; // 存在则覆盖 } QDir dirRe(dirPathRelease); if(dirRe.exists()){ dirPath = dirPathRelease; } g_dataRootPath = dirPath; // 将根目录保存起来 QStringList list; QDirIterator it(dirPath, {"*.xls","*.xlsx"}, QDir::Files | QDir::NoSymLinks | QDir::NoDotAndDotDot, QDirIterator::Subdirectories); while(it.hasNext()) { it.next(); list.append(it.fileInfo().absoluteFilePath()); } foreach(QString str, list) { qDebug() << str; int index = str.indexOf("内审统01表"); qDebug()<<"index:"< 0){ QAxObject excel("Excel.Application"); excel.setProperty("Visible",false); excel.setProperty("DisplayAlerts",false); qDebug()<<"open:"<querySubObject("Open(QString&)",str); //QAxObject* pWorkBook = excel.querySubObject("ActiveWorkBook"); //QAxObject* pWorkSheets = pWorkBook->querySubObject("Sheets");//获取工作表 //QAxObject * shs = wb->querySubObject("Sheets"); // WorkSheets 也可以 QAxObject * shs = wb->querySubObject("WorkSheets"); // WorkSheets 也可以 // // 指定单元格拿 // QAxObject *cell = shs->querySubObject("Cells(int, int)",82,1); // qDebug()<<"Cells:82-0:"<querySubObject("Cells(int, int)",82,0)->dynamicCall("Value()").toString(); // qDebug()<<"Cells:82-1:"<dynamicCall("Value()").toString(); int cnt = shs->property("Count").toInt(); qDebug()<<"cnt="<querySubObject("Item(int)", i+1); QString sheetName = sheet->property("Name").toString(); qDebug()<<"sh name:"<querySubObject("UsedRange"); int rows = usedRange->querySubObject("Rows")->property("Count").toInt(); int columns = usedRange->querySubObject("Columns")->property("Count").toInt(); qDebug()<<"r--c:"<dynamicCall("Value"); // 拿到二维表格 QVariantList valRows = val.toList(); // 遍历每一项 for(int i=0;ilabel_creditCode->setText(uniCode.toString()); strcpy(curComInfo.creditCode,uniCode.toString().toLocal8Bit().data()); } // 单位名称 QVariant name = valRows[9].toList().at(8); if(name.isValid()){ ui->label_name->setText(name.toString()); QTreeWidgetItem *top1 = new QTreeWidgetItem(ui->treeWidget); top1->setText(0,name.toString()); strcpy(curComInfo.name,name.toString().toLocal8Bit().data()); }else{ ui->label_name->setText(""); } // 机构类型 QVariant comType = valRows[12].toList().at(3); if(comType.isValid()){ ui->label_comType->setText(comType.toString()); strcpy(curComInfo.comType,comType.toString().toLocal8Bit().data()); }else{ ui->label_comType->setText(""); } // 主要业务活动 QString business; QVariant first = valRows[18].toList().at(2); if(first.isValid()){ business.append(first.toString()); } QVariant sec = valRows[18].toList().at(5); if(sec.isValid()){ business += "、"; business.append(sec.toString()); } QVariant third = valRows[18].toList().at(8); if(third.isValid()){ business += "、"; business.append(third.toString()); } if(business.size() > 0){ ui->label_business->setText(business); ui->label_business->setToolTip(business); strcpy(curComInfo.business,business.toLocal8Bit().data()); }else{ ui->label_business->setText(""); } // 业务代码 QVariant busCode = valRows[19].toList().at(4); if(busCode.isValid()){ ui->label_businessCode->setText(busCode.toString()); strcpy(curComInfo.businessCode,busCode.toString().toLocal8Bit().data()); }else{ ui->label_businessCode->setText(""); } // 注册地址 QString addr=""; QVariant province = valRows[21].toList().at(1); // 省份 QVariant city = valRows[21].toList().at(4); // 城市 QVariant district = valRows[21].toList().at(7); // 管辖区 QVariant village = valRows[22].toList().at(2); // 乡镇 QVariant street = valRows[22].toList().at(4); // 街道 QVariant Sub = valRows[23].toList().at(2); // 街道办事处 QVariant committee = valRows[25].toList().at(3); // 居委会 //qDebug()<10){ ui->label_addr->setText(addr); strcpy(curComInfo.addr,addr.toLocal8Bit().data()); }else{ ui->label_addr->setText(""); } // 区域代码 QVariant areaCode = valRows[24].toList().at(2); if(areaCode.isValid()){ ui->label_areaCode->setText(areaCode.toString()); strcpy(curComInfo.areaCode,areaCode.toString().toLocal8Bit().data()); }else{ ui->label_areaCode->setText(""); } // 城乡代码 QVariant townCode = valRows[24].toList().at(6); if(townCode.isValid()) { ui->label_townCode->setText(townCode.toString()); strcpy(curComInfo.townCode,townCode.toString().toLocal8Bit().data()); }else{ ui->label_townCode->setText(""); } // 单位规模 QVariant scale = valRows[25].toList().at(3); if(scale.isValid()){ ui->label_scale->setText(scale.toString()); strcpy(curComInfo.scale,scale.toString().toLocal8Bit().data()); }else{ ui->label_scale->setText(""); } // 从业人数 QVariant people = valRows[26].toList().at(6); if(people.isValid()) { ui->label_people->setText(people.toString()); //strcpy(curComInfo.people,people.toString().toLocal8Bit().data()); curComInfo.people = people.toInt(); }else{ ui->label_people->setText(""); } // 法人 QVariant representative = valRows[27].toList().at(4); if(representative.isValid()) { ui->label_representative->setText(representative.toString()); strcpy(curComInfo.representative,representative.toString().toLocal8Bit().data()); }else{ ui->label_representative->setText(""); } // 会计标准类别 standardType QVariant standardType = valRows[27].toList().at(8); if(standardType.isValid()){ ui->label_standardType->setText(standardType.toString()); strcpy(curComInfo.standardType,standardType.toString().toLocal8Bit()); }else{ ui->label_standardType->setText(""); } // 长途区号 QVariant trunkCode = valRows[31].toList().at(2); if(trunkCode.isValid()){ ui->label_trunkCode->setText(trunkCode.toString()); strcpy(curComInfo.trunkCode,trunkCode.toString().toLocal8Bit().data()); }else{ ui->label_trunkCode->setText(""); } // 固定电话 QVariant fixedTel = valRows[32].toList().at(2); if(fixedTel.isValid()) { ui->label_fixedTel->setText(fixedTel.toString()); strcpy(curComInfo.fixedTel,fixedTel.toString().toLocal8Bit().data()); }else{ ui->label_fixedTel->setText(""); } // 邮政编码 QVariant postCode = valRows[33].toList().at(2); if(postCode.isValid()){ ui->label_postCode->setText(postCode.toString()); strcpy(curComInfo.postCode,postCode.toString().toLocal8Bit().data()); }else{ ui->label_postCode->setText(""); } // 电子邮箱 QVariant email = valRows[30].toList().at(5); if(email.isValid()) { ui->label_email->setText(email.toString()); strcpy(curComInfo.email,email.toString().toLocal8Bit().data()); }else{ ui->label_email->setText(""); } // 网址 QVariant webSite = valRows[32].toList().at(5); if(webSite.isValid()) { ui->label_webSite->setText(webSite.toString()); strcpy(curComInfo.webSite,webSite.toString().toLocal8Bit().data()); }else{ ui->label_webSite->setText(""); } // 二、单位组织结构情况 // 是否有上一级法人 QVariant hasUpLegal = valRows[35].toList().at(4); if(hasUpLegal.isValid()){ strcpy(curComInfo.hasUpLegal,hasUpLegal.toString().toLocal8Bit().data()); qDebug()<<"has up legal"<dynamicCall("Close()"); excel.dynamicCall("Quit(void)"); qDebug()<<"单位信息数量:"<addAction("删除"); m_menu->addAction("增加"); ui->treeWidget->setContextMenuPolicy(Qt::CustomContextMenu); connect(ui->treeWidget,SIGNAL(customContextMenuRequested(QPoint)),this,SLOT(showMenu(QPoint))); connect(m_menu->actions().at(0),SIGNAL(triggered(bool)),this,SLOT(deleteInfo())); connect(m_menu->actions().at(1),SIGNAL(triggered(bool)),this,SLOT(addInfo())); } void ConverInfo2::on_pushButton_commit_clicked() { // 将编辑框的数据更新到map中和数据库中,后期可以更新到文件中 // 单位基本情况 QString creditCode = ui->lineEdit_creditCode->text(); QString name = ui->lineEdit_name->text(); QString comType = ui->comboBox_comType->currentText(); QString business = ui->lineEdit_business->text(); QString businessCode = ui->lineEdit_businessCode->text(); QString addr = ui->lineEdit_addr->text(); QString areaCode = ui->lineEdit_areaCode->text(); QString townCode = ui->lineEdit_townCode->text(); QString scale = ui->comboBox_scale->currentText(); QString people = ui->lineEdit_people->text(); QString representative = ui->lineEdit_representative->text(); QString standardType = ui->comboBox_standardType->currentText(); QString trunkCode = ui->lineEdit_trunkCode->text(); QString fixedTel = ui->lineEdit_fixedTel->text(); QString postCode = ui->lineEdit_postCode->text(); QString email = ui->lineEdit_email->text(); QString webSite = ui->lineEdit_webSite->text(); // 单位组织结构情况 }