Changeset e506dab in mmcs for mainwindow.C


Ignore:
Timestamp:
Aug 25, 2015, 2:19:23 PM (9 years ago)
Author:
rboet <rboet@…>
Branches:
master, matrices
Children:
fa3f7a3
Parents:
9d6942d
Message:

agregada funcion para exportar las matrices en csv

File:
1 edited

Legend:

Unmodified
Added
Removed
  • mainwindow.C

    r49083f1 re506dab  
    2828
    2929        QLabel *label = new QLabel;
    30         label->setText("Seleccione una de las matrices");
     30        label->setText("Exportará la siguiente matriz: ");
    3131        label->setStyleSheet("font-size:14;font-weight:bold;");
    3232        layoutLateralWidget->addWidget(label);
    3333
    34         formExportMatriz->Exportcb = new QComboBox;
    35         formExportMatriz->Exportcb->setFixedWidth(150);
     34        int indice = tabWidget->currentIndex();
     35        QString text = tabWidget->tabText(indice);
     36        formExportMatriz->MatrixName = new QLineEdit;
     37        formExportMatriz->MatrixName->setFixedWidth(150);
     38        formExportMatriz->MatrixName->setText(text);
     39        formExportMatriz->MatrixName->setReadOnly(true);
    3640        QVBoxLayout *cbLayout = new QVBoxLayout;
    37         cbLayout->addWidget(formExportMatriz->Exportcb);
     41        cbLayout->addWidget(formExportMatriz->MatrixName);
    3842        QWidget *cbWidget = new QWidget;
    3943        cbWidget->setLayout(cbLayout);
    40 
    41         QStringList list;
    42         list << "valor1" << "valor2" << "valor3";
    43         formExportMatriz->Exportcb->addItems(list);
    4444
    4545        layoutLateralWidget->addWidget(cbWidget);
     
    4848        label2->setText("Archivo");
    4949        formExportMatriz->ExportLine = new QLineEdit;
    50         //line->setObjectName("lineaCarga");
    5150        formExportMatriz->ExportLine->setReadOnly(true);
    5251        formExportMatriz->ExportLine->setFixedWidth(450);
     
    6564
    6665
    67         /***        Se crean y personalizan los bottones para agregar, finalizar, deshacer y cancelar    ***/
     66        /***        Se crean y personalizan los bottones para exportar y cancelar    ***/
    6867        QPushButton * buttonExportar = new QPushButton;
    6968        buttonExportar->setObjectName("ExportarMatriz");//Se le asigna nombre al objeto
     
    9897    else
    9998    {
     99        int indice = tabWidget->currentIndex();
     100        QString text = tabWidget->tabText(indice);
     101        formExportMatriz->MatrixName->setText(text);
    100102        formExportMatriz->show();
    101103    }
     
    680682        }
    681683
    682         QTableWidget *matrizEndogena = new QTableWidget;
    683         matrizEndogena->setObjectName("MatrizEndogenaEndogena");
    684         CrearTablaVacia(count,matrizEndogena);
    685         QTableWidgetItem *ValoraInsertar = new QTableWidgetItem("");
    686         ValoraInsertar->setFlags(ValoraInsertar->flags() ^ Qt::ItemIsEditable);
    687         matrizEndogena->setItem(0,0,ValoraInsertar);
    688 
    689 
    690         clonarTabla(tablaEE,matrizEndogena,count);
    691         CalcularTotales(matrizEndogena,2);
    692 
    693         setEndogenaExogenaCell(tablaEE,count,0,false);
    694         CalcularTotales(tablaEE,3);
     684        CalcularTotales(tablaEE,2);
     685        setEndogenaExogenaCell(tablaEE,2,count-2,false);
    695686
    696687        //Se agrega la nueva pestaña
     
    703694        formVariablesExogenas->close();
    704695
    705         /*                  Se crea la pestaña endogena-endogena            */
    706         tabWidget->addTab(new QWidget,"Endogena-Endogena");
    707         int indiceEndogeno=ObtenerIndice("Endogena-Endogena");//Se obtiene el indice de la pestaña
    708         QHBoxLayout * layoutEndogeno = new QHBoxLayout;
    709         layoutEndogeno->addWidget(matrizEndogena);
    710         QWidget *widgetEndogeno = tabWidget->widget(indiceEndogeno);
    711         widgetEndogeno->setLayout(layoutEndogeno);//Se añade el widget y layout a la pestaña creada
    712696
    713697        //Se juntan los espacios referentes a las cuentas
    714698        crearDiccionario(tablaEE);
    715699        spanEndogenaCell(tablaEE,3,1);
    716         spanEndogenaCell(matrizEndogena,2,0,false);
    717 
    718         //obtenerCuentaComponentes();//Se guardan las cuentas/componentes*/
    719700
    720701    }
     
    14601441    ValoraInsertar->setFlags(ValoraInsertar->flags() ^ Qt::ItemIsEditable);
    14611442    tw->setItem(0,0,ValoraInsertar);
    1462     /*      Titulos para las Cuentas endogenas   */
    1463     QTableWidgetItem *CuentaEndogenafila = new QTableWidgetItem("Cuentas Endógenas");
    1464     CuentaEndogenafila->setFlags(CuentaEndogenafila->flags() ^ Qt::ItemIsEditable);
    1465     CuentaEndogenafila->setTextAlignment(Qt::AlignCenter);
    1466     tw->setItem(0,1,CuentaEndogenafila);
    1467     tw->setSpan(0,1,1,inicioExogena-1);
    1468     QTableWidgetItem *CuentaEndogenaColumna = new QTableWidgetItem;
     1443    /*      Titulos para las Cuentas exogenas   */
     1444    QTableWidgetItem *CuentaExogenafila = new QTableWidgetItem("Cuentas Exógenas");
     1445    CuentaExogenafila->setFlags(CuentaExogenafila->flags() ^ Qt::ItemIsEditable);
     1446    CuentaExogenafila->setTextAlignment(Qt::AlignCenter);
     1447    tw->setItem(0,inicioExogena,CuentaExogenafila);
     1448    if(elementos>1)
     1449    {
     1450        tw->setSpan(0,inicioExogena,1,elementos);
     1451    }
     1452    QTableWidgetItem *CuentaExogenaColumna = new QTableWidgetItem;
    14691453    if(elementos<12)
    14701454    {
    1471         CuentaEndogenaColumna->setText("Cuentas \nEndógenas");
     1455        CuentaExogenaColumna->setText("Cuentas \nExógenas");
    14721456    }
    14731457    else
    14741458    {
    1475         CuentaEndogenaColumna->setText("C\nu\ne\nn\nt\na\ns\n\nE\nn\nd\nó\ng\ne\nn\na\ns");
    1476     }
    1477     CuentaEndogenaColumna->setFlags(CuentaEndogenaColumna->flags() ^ Qt::ItemIsEditable);
    1478     tw->setItem(1,0,CuentaEndogenaColumna);
    1479     if((inicioExogena-1)>1)
    1480     {
    1481         tw->setSpan(1,0,inicioExogena-1,1);
    1482     }
    1483     if(condicion)//Si tiene cuentas exogenas
    1484     {
    1485         /*      Titulos para las Cuentas exogenas   */
    1486         QTableWidgetItem *CuentaExogenafila = new QTableWidgetItem("Cuentas Exógenas");
    1487         CuentaExogenafila->setFlags(CuentaExogenafila->flags() ^ Qt::ItemIsEditable);
    1488         CuentaExogenafila->setTextAlignment(Qt::AlignCenter);
    1489         tw->setItem(0,inicioExogena,CuentaExogenafila);
    1490         if(elementos>1)
    1491         {
    1492             tw->setSpan(0,inicioExogena,1,elementos);
    1493         }
    1494         QTableWidgetItem *CuentaExogenaColumna = new QTableWidgetItem;
     1459        CuentaExogenaColumna->setText("C\nu\ne\nn\nt\na\ns\n\nE\nx\nó\ng\ne\nn\na\ns");
     1460    }
     1461    CuentaExogenaColumna->setFlags(CuentaExogenaColumna->flags() ^ Qt::ItemIsEditable);
     1462    tw->setItem(inicioExogena,0,CuentaExogenaColumna);
     1463    if(elementos>1)
     1464    {
     1465        tw->setSpan(inicioExogena,0,elementos,1);
     1466    }
     1467    int count = tw->rowCount();
     1468    ItemsNoEditable(tw,count-1,count);
     1469    tableItem(tw,inicioExogena+1,count-1,"Cuentas Exógenas");
     1470
     1471    if(condicion)//Si tiene cuentas endogenas
     1472    {
     1473        /*      Titulos para las Cuentas endogenas   */
     1474        QTableWidgetItem *CuentaEndogenafila = new QTableWidgetItem("Cuentas Endógenas");
     1475        CuentaEndogenafila->setFlags(CuentaEndogenafila->flags() ^ Qt::ItemIsEditable);
     1476        CuentaEndogenafila->setTextAlignment(Qt::AlignCenter);
     1477        tw->setItem(0,1,CuentaEndogenafila);
     1478        tw->setSpan(0,1,1,inicioExogena-1);
     1479        QTableWidgetItem *CuentaEndogenaColumna = new QTableWidgetItem;
    14951480        if(elementos<12)
    14961481        {
    1497             CuentaExogenaColumna->setText("Cuentas \nExógenas");
     1482            CuentaEndogenaColumna->setText("Cuentas \nEndógenas");
    14981483        }
    14991484        else
    15001485        {
    1501             CuentaExogenaColumna->setText("C\nu\ne\nn\nt\na\ns\n\nE\nx\nó\ng\ne\nn\na\ns");
    1502         }
    1503         CuentaExogenaColumna->setFlags(CuentaExogenaColumna->flags() ^ Qt::ItemIsEditable);
    1504         tw->setItem(inicioExogena,0,CuentaExogenaColumna);
    1505         if(elementos>1)
    1506         {
    1507             tw->setSpan(inicioExogena,0,elementos,1);
    1508         }
    1509         int count = tw->rowCount();
    1510         ItemsNoEditable(tw,count-1,count);
     1486            CuentaEndogenaColumna->setText("C\nu\ne\nn\nt\na\ns\n\nE\nn\nd\nó\ng\ne\nn\na\ns");
     1487        }
     1488        CuentaEndogenaColumna->setFlags(CuentaEndogenaColumna->flags() ^ Qt::ItemIsEditable);
     1489        tw->setItem(1,0,CuentaEndogenaColumna);
     1490        if((inicioExogena-1)>1)
     1491        {
     1492            tw->setSpan(1,0,inicioExogena-1,1);
     1493        }
     1494        tableItem(tw,2,inicioExogena,"Cuentas Endógenas");
     1495    }
     1496    else
     1497    {
     1498        ItemsNoEditable(tw,1,2);
    15111499    }
    15121500}
     
    18141802        QString filename = formExportMatriz->ExportLine->text();
    18151803        QFile archivo(filename);
    1816         archivo.open(QFile::WriteOnly | QFile::Text);
    1817         QTextStream out(&archivo);
    1818         out << "hola " << "que hace" << "? \n";
    1819         out << "otra linea de prueba";
    1820         archivo.flush();
    1821         archivo.close();
    1822         formExportMatriz->ExportLine->setText("");
    1823         formExportMatriz->close();
     1804        int actual = tabWidget->currentIndex();
     1805        if(actual!=0)
     1806        {
     1807            QTableWidget *tw = tabWidget->widget(actual)->findChild<QTableWidget *>();
     1808            int fila = tw->rowCount();
     1809            int col = tw->columnCount();
     1810            archivo.open(QFile::WriteOnly | QFile::Text);
     1811            QTextStream out(&archivo);
     1812            for(int i=0;i<fila;i++)
     1813            {
     1814                for(int j=0;j<col;j++)
     1815                {
     1816                    QString item = tw->item(i,j)->text();
     1817                    item.remove("\n");
     1818                    if(item.isEmpty())
     1819                    {
     1820                        item = "-";
     1821                    }
     1822                    out << item;
     1823                    if(j+1<col)
     1824                    {
     1825                        out << ";";
     1826                    }
     1827                }
     1828                out<<"\n";
     1829            }
     1830            archivo.flush();
     1831            archivo.close();
     1832            formExportMatriz->ExportLine->setText("");
     1833            formExportMatriz->close();
     1834        }
     1835        else
     1836        {
     1837            QMessageBox::critical(this,"Alerta","No puede exportar la pestaña\n inicio");
     1838        }
    18241839    }
    18251840}
     
    18271842void MainWindow::slotSearchExport()
    18281843{
    1829     QString format = ".txt";
     1844    QString format = ".csv";
    18301845
    18311846    QString filename = QFileDialog::getSaveFileName(this,
    1832             "Elija el nombre", QDir::homePath(),"*.txt");
     1847            "Elija el nombre", QDir::homePath(),"*.csv");
     1848
     1849    filename.remove(format);
    18331850
    18341851    filename +=format;
    18351852
    1836     formExportMatriz->Exportcb->addItem(filename);
    1837 
    18381853    formExportMatriz->ExportLine->setText(filename);
    1839     qDebug()<< formExportMatriz->ExportLine->text();
    1840 
    18411854}
    18421855
     
    24962509    tw->setItem(count,2,totalAdelante);
    24972510}
     2511
     2512void MainWindow::tableItem(QTableWidget *tw, int inicio, int fin, QString texto)
     2513{
     2514    for(int i=inicio;i<fin;i++)
     2515    {
     2516        QTableWidgetItem *itemFila = new QTableWidgetItem(texto);
     2517        itemFila->setFlags(itemFila->flags() ^ Qt::ItemIsEditable);
     2518        QTableWidgetItem *itemColumna = new QTableWidgetItem(texto);
     2519        itemColumna->setFlags(itemColumna->flags() ^ Qt::ItemIsEditable);
     2520        tw->setItem(0,i,itemFila);
     2521        tw->setItem(i,0,itemColumna);
     2522    }
     2523}
Note: See TracChangeset for help on using the changeset viewer.