source: mmcs/mainwindow.H @ 67c9f67

matrices
Last change on this file since 67c9f67 was 67c9f67, checked in by rboet <rboet@…>, 9 years ago

incorporacion de modelo no clasico

  • Property mode set to 100644
File size: 6.5 KB
Line 
1#ifndef MAINWINDOW_H
2#define MAINWINDOW_H
3
4#include <QtGui>
5
6#include <formloadmatrix.H>
7#include <formviewmatrix.H>
8#include <formvariablesexogenas.h>
9#include <formexportmatrix.h>
10#include <formencadenamientos.h>
11#include <ui_formcompararresultados.h>
12#include <formcompararresultados.h>
13
14#include <sstream>
15#include <stackwidget.H>
16#include <stackvariablesexogenas.h>
17#include <stackencadenamientos.h>
18
19#include <QTabWidget>
20
21#include <QMap>
22#include <QVector>
23
24
25class MainWindow : public QMainWindow
26{
27    Q_OBJECT
28
29    QMenu menuFile;
30    QMenu OpMatrices;
31    QMenu menuTools;
32    QMenu menuViews;
33    QMenu menuHelp;
34    QMenu EndoExo;
35
36    QAction actionLoadMatrix;
37    QAction actionExportMatrix;
38    QAction actionQuit;
39
40    QAction actionCH;
41    QAction actionCV;
42    QAction actionVariableExogena;
43    QAction actionCTVEndEx;
44    QAction actionLa;
45
46    QAction actionEncadenamiento;   
47    QAction actionModeloClasico;
48    QAction actionCompararResultados;
49    QAction actionModeloNoClasico;
50
51
52    QTableWidget * tableWidget;
53    QTabWidget * tabWidget;
54    QMap<QString,QStringList> diccCuentasExogenas;
55    QMap<int,QVector<QString> > diccCuentasEndogenas;
56    QMap<int,QVector<QString> > espacioCuentasExogenas;
57    QMap<QString,QStringList> diccCuentasComponentes;
58    QMap<QString,QStringList> diccCuentasEncadenamientos;
59
60    stackVariablesExogenas *stackVE;
61    stackEncadenamientos *stackEncadenamiento;
62
63
64    QString csvFilePath;
65    char csvSeparator;
66    int numAccounts;
67    int matrixSize;
68    double  matrix[100][100];
69
70    double MatrizEndogenaEndogena[200][200];
71
72    int opcionCuentaExogena;
73    int opcionVentanaExogena;
74    int opcionExportarMatriz;
75    int opcionEncadenamientos;
76    int opcionCuentaEncadenamientos;
77    int opcionMa;
78    int opcionFormCompararResultados;
79
80    QVector<double> subtotalEnd;
81    QVector<double> subtotalExog;
82
83    int cantidadEncadenamientos;
84    int cantidadEscenarios;
85    int cantidadResultados;
86
87    FormLoadMatrix * formLoadMatrix;
88    FormViewMatrix * formViewMatrix;
89    FormVariablesExogenas * formVariablesExogenas;
90    FormExportMatrix * formExportMatriz;
91    FormEncadenamientos * formEncadenamientos;
92    FormCompararResultados *formCompararResultados;
93
94    void initGUI();
95
96    void createCentralWidget();
97    void createMatrixCentralWidget();
98
99    void createMenuBar();
100    void matricesMenuBar();
101    void populateTable(QTableWidget *);
102    void CalcularTotales(QTableWidget *, int inicio);
103    void loadMatrizExogena();
104    void clonarTabla(QTableWidget *,QTableWidget *, int cantidad);
105    void noEditColZero(QTableWidget *);
106    void setAccountTitle(QTableWidget *);
107    void insertremoveRowCol(QTableWidget *, int rowcol, bool opcion);
108    void crearDiccionario(QTableWidget *, bool endogena=true);
109    QStringList obtenerCuentasEndogenas(QTableWidget *,QStringList);
110    QStringList obtenerCuentasExogenas(QTableWidget *,QStringList );
111    void spanEndogenaCell(QTableWidget *, int inicio, int celda, bool endex=true);
112    void spanExogenaCell(QTableWidget *,int celda);
113    void tableItem(QTableWidget *, int inicio, int fin, QString texto);
114
115    QList<QString> llenarLista(QList<QString>, QTableWidget *, int valor, int opcion);
116    void insertRowExogena(QList<QString>, QTableWidget *, int opcion);
117    void setEndogenaExogenaCell(QTableWidget *, int inicioExogena, int elementos,bool condicion);
118    void CalcularAn(QTableWidget *, QTableWidget *, QTableWidget *, int count, bool endogena = false);
119    QString Separador(QTableWidgetItem *,bool quitar);
120    void ItemsNoEditable(QTableWidget *, int inicio, int fin, int col=0);
121    void CellStyle(QTableWidgetItem *);
122    void CellStyleComponente(QTableWidgetItem *);
123    void CellStyleExEn(QTableWidgetItem *);
124    void EndogenaAn();
125
126    void obtenerCuentaComponentes();
127    void crearTablaVaciaEncadenamiento(int columnas, QTableWidget *, int filas=4);
128    void crearMatrizEncadenamiento(QTableWidget *, QTableWidget *);
129    void crearMatrizEncadenamientoEndogena(QTableWidget *, QTableWidget *);
130    void calcularTotalesEncadenamientos(QTableWidget *);
131    void encademientosStyle(QTableWidgetItem *);
132
133    void calcularSubtotal(QTableWidget *, int inicio, int fin, int exogena);
134    void llenarEscenario(QTableWidget *);
135    void calcularFinEscenario(QTableWidget *);
136    QVector<double> obtenerResultadoEscenario(QVector<double>);
137    QStringList obtenerNombreResultadoEscenario();
138    void crearTablaComparar(QTableWidget *, QTableWidget *);
139    void cuentacomponentesResultado(QTableWidget *, int count);
140    void validar();
141
142    void obtenerMatrizExgEnd();
143    void crearMatrizExgEnd(QTableWidget *,QTableWidget *,int elementos,int inicioExogena);
144    void calcularMatrizExgEnd(QTableWidget *);
145    void ctvMatrizExgEnd(QTableWidget *, QTableWidget *);
146    void titlespanMatrizExgEnd(QTableWidget *);
147    void estimarMb(QTableWidget *, QTableWidget *);
148
149    void crearMatrizEndogena(QTableWidget *);
150    void restarIdentidadAn(QTableWidget *);
151    void titleEndogena(QTableWidget *);
152
153    bool ComprobarCuentas();
154    int ObtenerIndice(QString );
155
156    QStringList ObtenerNombreCuenta(int contador);
157    QList<int> ObtenerLimitesCuenta(int contador,int opccion);
158    QStringList ObtenerComponentes(QTableWidget *);
159    void CrearTablaVacia(int contador,QTableWidget *);
160
161protected:
162    void closeEvent(QCloseEvent *);
163
164private slots:
165    void slotLoadMatrix();
166    void slotExportMatrix();
167    void slotFormLoadMatrixAccepted(const QString &, int, char);
168    void slotFormLoadMatrixClosed();
169
170    void AgregarCuenta();
171    void RestaurarCeldas();
172    void FinalizarCuentas();
173    void ModificarCuenta();
174    void slotCoeficienteHorizontal();
175    void slotCoeficienteVertical();
176    void slotAccChange();
177
178    void slotVariableExogena();
179    void slotCloseExogena();
180    void slotAgregarExogena();
181    void slotFinalizarExogena();
182    void slotDeshacerExogena();
183    void AnMa();
184
185    void slotMa();
186
187    void slotEncadenamientos();
188    void slotCloseEncadenamiento();
189    void slotAgregarEncadenamiento();
190    void slotVerEncadenamiento();
191
192    void slotCloseExport();
193    void slotSaveExport();
194    void slotSearchExport();
195
196    void slotModeloClasico();
197    void calcularEscenario();
198    void finalizarEscenario();
199
200    void slotModeloNoClasico();
201
202    void slotCompararResultados();
203    void slotVerResultado();
204
205public:
206    MainWindow();
207    std::vector<std::string> csv_read_row(std::string , char);
208    std::vector<std::string> csv_read_row(std::istream &, char);
209    QString numberFormat(double &);
210
211    int contarElementosMap(QMap<QString, QStringList> diccionario);
212    int retornarIndiceCuenta(QString nombre_cuenta);
213};
214
215#endif // MAINWINDOW_H
Note: See TracBrowser for help on using the repository browser.