source: mmcs/mainwindow.H @ cfbc36f

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

incorporacion de modelo de precios homogéneos no clásico

  • Property mode set to 100644
File size: 9.1 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#include <ui_formcompararmnc.h>
14#include <formcompararmnc.h>
15#include "ui_formincidenciai.h"
16#include <formincidenciai.h>
17
18#include <sstream>
19#include <stackwidget.H>
20#include <stackvariablesexogenas.h>
21#include <stackencadenamientos.h>
22
23#include <QTabWidget>
24
25#include <QMap>
26#include <QVector>
27
28#include <Eigen>
29
30
31class MainWindow : public QMainWindow
32{
33    Q_OBJECT
34
35    QMenu menuFile;
36    QMenu OpMatrices;
37    QMenu menuTools;
38    QMenu menuViews;
39    QMenu menuHelp;
40    QMenu EndoExo;
41
42    QMenu Modelos;
43    QMenu PHClasico;
44    QMenu PHClasicoIncidencia;
45    QMenu PHNoClasico;
46    QMenu PHNoClasicoIncidencia;
47
48    QAction actionLoadMatrix;
49    QAction actionExportMatrix;
50    QAction actionQuit;
51    QAction actionNewProject;
52
53    QAction actionCH;
54    QAction actionCV;
55    QAction actionVariableExogena;
56    QAction actionCTVEndEx;
57    QAction actionLa;
58
59    QAction actionEncadenamiento;
60
61    QAction actionModeloClasico;
62    QAction actionCompararResultados;
63    QAction actionModeloNoClasico;
64    QAction actionCompararResultadosMNC;
65
66    QAction actionPHClasicoIncidencia100;
67    QAction actionPHCIncidenciaCuenta;
68    QAction actionPHCIncidenciaComponente;
69
70    QAction actionPHNoClasicoIncidencia100;
71    QAction actionPHNCIncidenciaCuenta;
72    QAction actionPHNCIncidenciaComponente;
73
74    QTableWidget * tableWidget;
75    QTabWidget * tabWidget;
76    QMap<QString,QStringList> diccCuentasExogenas;
77    QMap<int,QVector<QString> > diccCuentasEndogenas;
78    QMap<int,QVector<QString> > espacioCuentasExogenas;
79    QMap<QString,QStringList> diccCuentasComponentes;
80    QMap<QString,QStringList> diccCuentasEncadenamientos;
81    QMap<QString,double> totalCuentas;
82
83    QStringList ComponentesEndogenos;
84
85    QTableWidget *MatrizExgEnd;
86
87    stackVariablesExogenas *stackVE;
88    stackEncadenamientos *stackEncadenamiento;
89
90    Eigen::MatrixXd MatrixMa;
91    Eigen::MatrixXd MatrixMb;
92    Eigen::MatrixXd MatrizMat;
93    Eigen::MatrixXd MatrizMbt;
94
95
96    QString csvFilePath;
97    char csvSeparator;
98    int numAccounts;
99    int matrixSize;
100    int precission;
101    double  matrix[100][100];
102
103    double MatrizEndogenaEndogena[200][200];
104
105    int opcionCuentaExogena;
106    int opcionVentanaExogena;
107    int opcionExportarMatriz;
108    int opcionEncadenamientos;
109    int opcionCuentaEncadenamientos;
110    int opcionMa;
111    int opcionMb;
112    int opcionFormCompararResultados;
113    int opcionFormCompararResultadosMNC;
114    int opcionMAT;
115    int opcionMBT;
116
117    QVector<double> subtotalEnd;
118    QVector<double> subtotalExog;
119    QVector<double> subtotalExogEnd;
120    QVector<double> Vpond;
121
122    int cantidadEncadenamientos;
123    int cantidadEscenarios;
124    int cantidadResultados;
125    int cantidadMNC;//Cantidad de Modelos No Clasicos
126    int cantidadResultadosMNC;
127    int cantidadPHCindidenciaiCuenta;
128    int cantidadPHCindidenciaiComponente;
129    int cantidadPHNCindidenciaiCuenta;
130    int cantidadPHNCindidenciaiComponente;
131
132    FormLoadMatrix * formLoadMatrix;
133    FormViewMatrix * formViewMatrix;
134    FormVariablesExogenas * formVariablesExogenas;
135    FormExportMatrix * formExportMatriz;
136    FormEncadenamientos * formEncadenamientos;
137    FormCompararResultados *formCompararResultados;
138    FormCompararMNC *formCompararMNC;
139    FormIncidenciaI *FI;
140
141    void initGUI();
142
143    void createCentralWidget();
144    void createMatrixCentralWidget();
145
146    void createMenuBar();
147    void matricesMenuBar();
148    void populateTable(QTableWidget *);
149    void CalcularTotales(QTableWidget *, int inicio);
150    void loadMatrizExogena();
151    void clonarTabla(QTableWidget *,QTableWidget *, int cantidad);
152    void noEditColZero(QTableWidget *);
153    void setAccountTitle(QTableWidget *);
154    void insertremoveRowCol(QTableWidget *, int rowcol, bool opcion);
155    void crearDiccionario(QTableWidget *, bool endogena=true);
156    QStringList obtenerCuentasEndogenas(QTableWidget *,QStringList);
157    QStringList obtenerCuentasExogenas(QTableWidget *,QStringList );
158    void spanEndogenaCell(QTableWidget *, int inicio, int celda, bool endex=true);
159    void spanExogenaCell(QTableWidget *,int celda);
160    void tableItem(QTableWidget *, int inicio, int fin, QString texto);
161
162    QList<QString> llenarLista(QList<QString>, QTableWidget *, int valor, int opcion);
163    void insertRowExogena(QList<QString>, QTableWidget *, int opcion);
164    void setEndogenaExogenaCell(QTableWidget *, int inicioExogena, int elementos,bool condicion);
165    void CalcularAn(QTableWidget *, QTableWidget *, QTableWidget *, int count, bool endogena = false);
166    QString Separador(QTableWidgetItem *,bool quitar);
167    void ItemsNoEditable(QTableWidget *, int inicio, int fin, int col=0);
168    void CellStyle(QTableWidgetItem *);
169    void CellStyleComponente(QTableWidgetItem *);
170    void CellStyleExEn(QTableWidgetItem *);
171    void EndogenaAn();
172
173    void calcularTotalCuentas(QTableWidget *);
174    void estimarVectorPonderacion(QTableWidget *);
175
176    void obtenerCuentaComponentes();
177    void crearTablaVaciaEncadenamiento(int filas, QTableWidget *, int columnas=4);
178    void crearMatrizEncadenamiento(QTableWidget *, QTableWidget *);
179    void crearMatrizEncadenamientoEndogena(QTableWidget *, QTableWidget *);
180    void calcularTotalesEncadenamientos(QTableWidget *);
181    void encademientosStyle(QTableWidgetItem *);
182
183    void calcularSubtotal(QTableWidget *,int inicio, int fin,int exogena);
184    void llenarEscenario(QTableWidget *, bool clasico=true);
185    void calcularFinEscenario(QTableWidget *);
186    QVector<double> obtenerResultadoEscenario(QVector<double>);
187    QStringList obtenerNombreResultadoEscenario();
188    void crearTablaComparar(QTableWidget *, QTableWidget *);
189    void cuentacomponentesResultado(QTableWidget *, int count, bool clasico = true);
190    void validar();
191
192    void obtenerMatrizExgEnd();
193    void crearMatrizExgEnd(QTableWidget *,QTableWidget *,int elementos,int inicioExogena);
194    void calcularMatrizExgEnd(QTableWidget *);
195    void ctvMatrizExgEnd(QTableWidget *, QTableWidget *);
196    void titlespanMatrizExgEnd(QTableWidget *);
197    void estimarMb(QTableWidget *, QTableWidget *);
198    void calcularSubtotalEndExg();
199    QVector<double> obtenerResultadoEscenarioMNC(QVector<double>);
200    void calcularFinEscenarioMNC(QTableWidget *);
201    QStringList obtenerNombreResultadoEscenarioMNC();
202
203    void crearMatrizEndogena(QTableWidget *);
204    void restarIdentidadAn(QTableWidget *);
205    void titleEndogena(QTableWidget *);
206
207    void calcularMaT();
208    void calcularPHCIncidencia100(QTableWidget *);
209    void calcularPHCIncidenciaI(QTableWidget *, QMap<QString, double>);
210    void calcularPHCIncidenciaIComponente(QTableWidget *,QTableWidget *);
211
212    void calcularMbT();
213    void calcularMb();
214    void calcularPHNIncidencia100(QTableWidget *);
215
216    bool ComprobarCuentas();
217    int ObtenerIndice(QString );
218
219    QStringList ObtenerNombreCuenta(int contador);
220    QList<int> ObtenerLimitesCuenta(int contador,int opccion);
221    QStringList ObtenerComponentes(QTableWidget *);
222    void CrearTablaVacia(int contador,QTableWidget *);
223
224protected:
225    void closeEvent(QCloseEvent *);
226
227private slots:
228    void slotNuevoProyecto();
229    void slotLoadMatrix();
230    void slotExportMatrix();
231    void slotFormLoadMatrixAccepted(const QString &, int, int);
232    void slotFormLoadMatrixClosed();
233
234    void AgregarCuenta();
235    void RestaurarCeldas();
236    void FinalizarCuentas();
237    void ModificarCuenta();
238    void slotCoeficienteHorizontal();
239    void slotCoeficienteVertical();
240    void slotAccChange();
241
242    void slotVariableExogena();
243    void slotCloseExogena();
244    void slotAgregarExogena();
245    void slotFinalizarExogena();
246    void slotDeshacerExogena();
247    void AnMa();
248
249    void slotMa();
250
251    void slotEncadenamientos();
252    void slotCloseEncadenamiento();
253    void slotAgregarEncadenamiento();
254    void slotVerEncadenamiento();
255
256    void slotCloseExport();
257    void slotSaveExport();
258    void slotSearchExport();
259
260    void slotModeloClasico();
261    void calcularEscenario(bool clasico = true);
262    void finalizarEscenario();
263
264    void slotModeloNoClasico();
265    void calcularEscenarioNC();
266    void finalizarEscenarioNC();
267
268    void slotCompararResultadosMNC();
269    void slotVerResultadoMNC();
270
271    void slotPHCIncidencia100();
272    void slotPHCIncidenciaiCuenta();
273    void slotCalcularPHCIncidenciaiCuenta();
274    void slotPHCIncidenciaiComponente();
275    void slotCalcularPHCIncidenciaiComponente();
276
277    void slotCompararResultados();
278    void slotVerResultado();
279
280    void slotPHNCIncidencia100();
281    void slotPHNCIncidenciaiCuenta();
282    void slotCalcularPHNCIncidenciaiCuenta();
283    void slotPHNCIncidenciaiComponente();
284    void slotCalcularPHNCIncidenciaiComponente();
285
286public:
287    MainWindow();
288    std::vector<std::string> csv_read_row(std::string , char);
289    std::vector<std::string> csv_read_row(std::istream &, char);
290    QString numberFormat(double &);
291
292    int contarElementosMap(QMap<QString, QStringList> diccionario);
293    int retornarIndiceCuenta(QString nombre_cuenta);
294};
295
296#endif // MAINWINDOW_H
Note: See TracBrowser for help on using the repository browser.