wumu
2024-05-14 0e5bcdb2d4d2e87e3624f14e5cc58a1d03de99fc
0514
3个文件已修改
2个文件已删除
2233 ■■■■■ 已修改文件
internal_system_v1/converinfo2.cpp 127 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
internal_system_v1/converinfo2.h 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
internal_system_v1/converinfo2.ui 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
internal_system_v1/internal_system_v1.pro.user 1050 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
internal_system_v1/internal_system_v1.pro.user.25c3e1f 1050 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
internal_system_v1/converinfo2.cpp
@@ -102,6 +102,12 @@
{
    QString name = index.model()->data(index).toString();
    qDebug()<<"双击"<<index<<name;
    if(name.contains("(本级)")){
        QStringList sps = name.split("(本级)");
        name = sps.at(0);
    }else if(name.contains("(汇总)")){
        name = name.split("(汇总)").at(0);
    }
    ComInfo curCominfo = m_nameAndComInfos[name];
    // 一、单位基本情况
    ui->lineEdit_creditCode->setText(curCominfo.creditCode);
@@ -268,8 +274,8 @@
                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());
                    //QTreeWidgetItem *top1 = new QTreeWidgetItem(ui->treeWidget);
                    //top1->setText(0,name.toString());
                    strcpy(curComInfo.name,name.toString().toLocal8Bit().data());
                }else{
@@ -686,13 +692,30 @@
                // 最后存到map中
                m_nameAndComInfos[name.toString()]=curComInfo;
                // 添加树形列表节点
                //addTreeWidgetNode(upName,name);
                if(upName.isValid()){
                    if(name.isValid()){
                        m_treeNodes[upName.toString()].push_back(name.toString());
                    }
                }else{
                    if(name.isValid()){
                        m_treeNodes[name.toString()].push_back(name.toString());
                    }
                }
            }
            wbs->dynamicCall("Close()");
            excel.dynamicCall("Quit(void)");
            qDebug()<<"单位信息数量:"<<m_nameAndComInfos.size();
        }
    }
    createTreeNode(); // 构建树形节点
//    QAxObject excel("./debug/Data/附件2_内审统01表_单位及内部审计机构基本情况表-1.301版(1).xls");
@@ -1484,42 +1507,17 @@
        // 添加左边树形图相关
        // 菜单相关  当上级公司为空上级时,自己当自己的上级,并且罗列进去当 本级
        addTreeWidgetNode(upName,name);
        if(upName.isValid()) // 有效
        {
            // 判断顶层树节点是否已经存在
            QTreeWidgetItem *top = nullptr;
            for(int k=0;k<ui->treeWidget->topLevelItemCount();++k){
                QTreeWidgetItem *tmp = ui->treeWidget->topLevelItem(k);
                qDebug()<<k<<tmp->text(0)<<upName.toString();
                if(upName.toString()+"(汇总)" == tmp->text(0)){
                    top = tmp;
                    break;
                }
            }
            if(name.isValid()){
                if(top){ // 存在,则添加到孩子列表中
                    QTreeWidgetItem *top1 = new QTreeWidgetItem(top);
                    top1->setText(0,name.toString());
                }else{ // 不存在,则新建一个列表
                    QTreeWidgetItem *top1 = new QTreeWidgetItem(ui->treeWidget);
                    top1->setText(0,name.toString()+"(汇总)");
                    QTreeWidgetItem *top2 = new QTreeWidgetItem(top1);
                    top2->setText(0,name.toString()+"(本级)");
                }
            }
        }else{
            qDebug()<<"没发现上一级,只能自己当"<<name;
            if(name.isValid()){
                QTreeWidgetItem *top1 = new QTreeWidgetItem(ui->treeWidget);
                top1->setText(0,name.toString()+"(汇总)");
                QTreeWidgetItem *top2 = new QTreeWidgetItem(top1);
                top2->setText(0,name.toString()+"(本级)");
            }
        }
//        if(upName.isValid()){
//            if(name.isValid()){
//                m_treeNodes[upName.toString()].push_back(name.toString());
//            }
//        }else{
//            if(name.isValid()){
//                m_treeNodes[name.toString()].push_back(name.toString());
//            }
//        }
    }
@@ -1529,6 +1527,61 @@
    qDebug()<<"单位信息数量:"<<m_nameAndComInfos.size();
}
void ConverInfo2::createTreeNode(){
    qDebug()<<"构建树形列表"<<m_treeNodes.size();
    for(auto iter=m_treeNodes.begin();iter != m_treeNodes.end();iter++)
    {
        // 先构建一个每级的父节点
        addTreeWidgetNode(iter.key(),iter.key());
        // 再添加孩子节点
        for(QString node:iter.value()){
            qDebug()<<iter.key()<<node;
            if(iter.key() != node){
                addTreeWidgetNode(iter.key(),node);
            }
        }
    }
}
void ConverInfo2::addTreeWidgetNode(QVariant upName,QVariant name){
    // 添加左边树形图相关
    // 菜单相关  当上级公司为空上级时,自己当自己的上级,并且罗列进去当 本级
    if(upName.isValid()) // 有效
    {
        // 判断顶层树节点是否已经存在
        QTreeWidgetItem *top = nullptr;
        for(int k=0;k<ui->treeWidget->topLevelItemCount();++k){
            QTreeWidgetItem *tmp = ui->treeWidget->topLevelItem(k);
            qDebug()<<k<<tmp->text(0)<<upName.toString();
            if(upName.toString()+"(汇总)" == tmp->text(0)){
                top = tmp;
                break;
            }
        }
        if(name.isValid()){
            if(top){ // 存在,则添加到孩子列表中
                QTreeWidgetItem *top1 = new QTreeWidgetItem(top);
                top1->setText(0,name.toString());
            }else{ // 不存在,则新建一个列表
                QTreeWidgetItem *top1 = new QTreeWidgetItem(ui->treeWidget);
                top1->setText(0,name.toString()+"(汇总)");
                QTreeWidgetItem *top2 = new QTreeWidgetItem(top1);
                top2->setText(0,name.toString()+"(本级)");
            }
        }
    }else{
        qDebug()<<"没发现上一级,只能自己当"<<name;
        if(name.isValid()){
            QTreeWidgetItem *top1 = new QTreeWidgetItem(ui->treeWidget);
            top1->setText(0,name.toString()+"(汇总)");
            QTreeWidgetItem *top2 = new QTreeWidgetItem(top1);
            top2->setText(0,name.toString()+"(本级)");
        }
    }
}
void ConverInfo2::on_pushButton_laodFile_clicked()
{
    QString path = QFileDialog::getOpenFileName(this,"选择表格:单位及内部审计机构基本情况表","./","excel(*基本情况表*.xls)");
internal_system_v1/converinfo2.h
@@ -24,6 +24,9 @@
    void addMenu();
    void readExcelFromPath(QString path);
    void addTreeWidgetNode(QVariant upName, QVariant name);
    void createTreeNode();
private slots:
    void showMenu(QPoint p);
    void addInfo();
@@ -39,6 +42,7 @@
    QMenu *m_menu;
    QTreeWidgetItem *m_curItem;
    QMap<QString,ComInfo> m_nameAndComInfos; // 单位映射信息表
    QMap<QString,QVector<QString>> m_treeNodes; // 单位树形信息表
};
#endif // CONVERINFO2_H
internal_system_v1/converinfo2.ui
@@ -19,7 +19,7 @@
     <widget class="QTreeWidget" name="treeWidget">
      <property name="maximumSize">
       <size>
        <width>500</width>
        <width>400</width>
        <height>16777215</height>
       </size>
      </property>
internal_system_v1/internal_system_v1.pro.user
File was deleted
internal_system_v1/internal_system_v1.pro.user.25c3e1f
File was deleted