source: mmcs/mainwindow.H @ 61e2bc2

Last change on this file since 61e2bc2 was 61e2bc2, checked in by rudmanmrrod <rudman22@…>, 8 years ago

Agregados cambios alas matrices Ma, Mb, An y Bn

  • Property mode set to 100755
File size: 11.2 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#include <formpreciosnohomogeneos.h>
18
19#include <sstream>
20#include <stackwidget.H>
21#include <stackvariablesexogenas.h>
22#include <stackencadenamientos.h>
23#include <stackpreciosnohomogeneos.h>
24
25#include <QTabWidget>
26
27#include <QMap>
28#include <QVector>
29
30#include <Eigen>
31
32
33class MainWindow : public QMainWindow
34{
35    Q_OBJECT
36
37    QMenu menuFile;
38    QMenu menuTools;
39    QMenu menuViews;
40    QMenu menuHelp;
41
42    QMenu CoeficientesTecnicos;
43    QMenu Encadenamientos;
44
45    QMenu Modelos;
46    QMenu PHClasico;
47    QMenu PHClasicoIncidencia;
48    QMenu PHNoClasico;
49    QMenu PHNoClasicoIncidencia;
50    QMenu PreciosNH;
51    QMenu PreciosNHIncidencia;
52
53    QAction actionLoadMatrix;
54    QAction actionExportMatrix;
55    QAction actionQuit;
56    QAction actionNewProject;
57
58    QAction actionCH;
59    QAction actionCV;
60    QAction actionVariableExogena;
61
62    QAction actionEncadenamiento;
63    QAction actionClasificarCuentas;
64
65    QAction actionModeloClasico;
66    QAction actionCompararResultados;
67    QAction actionModeloNoClasico;
68    QAction actionCompararResultadosMNC;
69
70    QAction actionPHClasicoIncidencia100;
71    QAction actionPHCIncidenciaCuenta;
72    QAction actionPHCIncidenciaComponente;
73
74    QAction actionPHNoClasicoIncidencia100;
75    QAction actionPHNCIncidenciaCuenta;
76    QAction actionPHNCIncidenciaComponente;
77
78    QAction actionPNHIncidencia100;
79    QAction actionPNHIncidenciaCuenta;
80    QAction actionPNHIncidenciaComponente;
81
82    QAction actionSeleccionarTabla;
83
84    QAction actionManual;
85    QAction actionAcercaDe;
86
87    QTableWidget * tableWidget;
88    QTabWidget * tabWidget;
89    QMap<QString,QStringList> diccCuentasExogenas;
90    QMap<int,QVector<QString> > diccCuentasEndogenas;
91    QMap<int,QVector<QString> > espacioCuentasExogenas;
92    QMap<int, QMap<QString,QStringList> > diccCuentasComponentes;
93    QMap<int, QMap<QString,QStringList> > diccCuentasEncadenamientos;
94    QMap<QString,double> totalCuentas;
95
96    QStringList ComponentesEndogenos;
97
98    QTableWidget *MatrizExgEnd;
99
100    stackVariablesExogenas *stackVE;
101    stackEncadenamientos *stackEncadenamiento;
102    StackPreciosNoHomogeneos *stackPNH;
103
104    //Matriz con la tabla principal
105    Eigen::MatrixXd PrincipalTable;
106    //Tabla de Exogenas y Endogenas
107    Eigen::MatrixXd EndogenasyExogenas;
108    //Tabla del sector B (exogena/endogena)
109    Eigen::MatrixXd ExoEndo;
110    //Matriz del Coeficiente Técnico
111    Eigen::MatrixXd An;
112    Eigen::MatrixXd MBn;
113    //Matrices de los múltiplicadores de lontief
114    Eigen::MatrixXd MatrixMa;
115    Eigen::MatrixXd MatrixMb;
116    Eigen::MatrixXd MatrizMat;
117    Eigen::MatrixXd MatrizMbt;
118
119
120    QString csvFilePath;
121    char csvSeparator;
122    int numAccounts;
123    int matrixSize;
124    int precission;
125
126    QString componentePNH;
127
128    Eigen::MatrixXd MatrizEndogenaEndogena;
129
130    int opcionCuentaExogena;
131    int opcionVentanaExogena;
132    int opcionExportarMatriz;
133    int opcionEncadenamientos;
134    int opcionCuentaEncadenamientos;
135    int opcionMa;
136    int opcionMb;
137    int opcionFormCompararResultados;
138    int opcionFormCompararResultadosMNC;
139    int opcionMAT;
140    int opcionMBT;
141    int opcionPNHT;
142    int opcionFormPNH;
143
144    QVector<double> subtotalEnd;
145    QVector<double> subtotalExog;
146    QVector<double> subtotalExogEnd;
147    QVector<double> Vpond;
148
149    int cantidadSelecciones;
150    int cantidadEncadenamientos;
151    int cantidadEscenarios;
152    int cantidadResultados;
153    int cantidadMNC;//Cantidad de Modelos No Clasicos
154    int cantidadResultadosMNC;
155    //Cantidad de resultados de incidencia en modelo de precios homogéneos clásico
156    int cantidadPHCindidenciaiCuenta;
157    int cantidadPHCindidenciaiComponente;
158    //Cantidad de resultados de incidencia en modelo de precios homogéneos no clásico
159    int cantidadPHNCindidenciaiCuenta;
160    int cantidadPHNCindidenciaiComponente;
161    //Cantidad de resultados de incidencia en modelo de precios no homogéneos
162    int cantidadPNHincidencia100;
163    int cantidadPNHincidenciaiCuenta;
164    int cantidadPNHincidenciaiComponente;
165
166    FormLoadMatrix * formLoadMatrix;
167    FormViewMatrix * formViewMatrix;
168    FormVariablesExogenas * formVariablesExogenas;
169    FormExportMatrix * formExportMatriz;
170    FormEncadenamientos * formEncadenamientos;
171    FormCompararResultados *formCompararResultados;
172    FormCompararMNC *formCompararMNC;
173    FormIncidenciaI *FI;
174    FormPreciosNoHomogeneos * formPreciosNoHomogeneos;
175
176    void initGUI();
177
178    void createCentralWidget();
179    void createMatrixCentralWidget();
180
181    void createMenuBar();
182    void matricesMenuBar();
183    void populateTable(QTableWidget *);
184
185    void CalcularTotales(QTableWidget *, int inicio, bool &);
186    void TotalPrincipalTable(QTableWidget *, Eigen::MatrixXd & , int init);
187    bool comprobarNombreCuenta(QString, int indice);
188    void clonarTabla(QTableWidget *,QTableWidget *, int cantidad);
189    void noEditColZero(QTableWidget *);
190    void setAccountTitle(QTableWidget *);
191    void insertremoveRowCol(QTableWidget *, int rowcol, bool opcion);
192    void crearDiccionario(QTableWidget *, bool endogena=true);
193    QStringList obtenerCuentasEndogenas(QTableWidget *,QStringList);
194    QStringList obtenerCuentasExogenas(QTableWidget *,QStringList );
195    void spanEndogenaCell(QTableWidget *, int inicio, int celda, bool endex=true);
196    void spanExogenaCell(QTableWidget *,int celda);
197    void tableItem(QTableWidget *, int inicio, int fin, QString texto);
198
199    void TotalEndoExoTable(int elementos, int cantidad);
200
201    QList<QString> llenarLista(QList<QString>, QTableWidget *, int valor, int opcion);
202    void insertRowExogena(QList<QString>, QTableWidget *, int opcion);
203    void setEndogenaExogenaCell(QTableWidget *, int inicioExogena, int elementos,bool condicion);
204    void CalcularAn(QTableWidget *, QTableWidget *, QTableWidget *, int count, bool endogena = false);
205    QString Separador(QTableWidgetItem *,bool quitar);
206    void ItemsNoEditable(QTableWidget *, int inicio, int fin, int col=0);
207    void CellStyle(QTableWidgetItem *);
208    void CellStyleComponente(QTableWidgetItem *);
209    void CellStyleExEn(QTableWidgetItem *);
210    void EndogenaAn();
211
212    void calcularTotalCuentas(QTableWidget *);
213    void estimarVectorPonderacion();
214
215    void obtenerCuentaComponentes();
216    void crearTablaVaciaEncadenamiento(int filas, QTableWidget *, int columnas=4);
217    void crearMatrizEncadenamiento(QTableWidget *, QTableWidget *);
218    void crearMatrizEncadenamientoEndogena(QTableWidget *, QTableWidget *);
219    void calcularTotalesEncadenamientos(QTableWidget *);
220    void encademientosStyle(QTableWidgetItem *);
221    void cuentacomponentesEncadenamiento(QTableWidget *, int count);
222    void obtenerUiUj(QTableWidget *, QVector<double> &, QVector<double> &);
223    void calcularClasificador(QTableWidget *, QVector<double>, QVector<double>, int init = 2);
224    void agregarPrimeraCelda(QTableWidget *);
225
226    void calcularSubtotal(QTableWidget *,int inicio, int fin,int exogena);
227    void llenarEscenario(QTableWidget *, bool clasico=true);
228    void calcularFinEscenario(QTableWidget *);
229    QVector<double> obtenerResultadoEscenario(QVector<double>);
230    QStringList obtenerNombreResultadoEscenario();
231    void crearTablaComparar(QTableWidget *, QTableWidget *);
232    void cuentacomponentesResultado(QTableWidget *, int count, bool clasico = true);
233
234    void obtenerMatrizExgEnd();
235    void crearMatrizExgEnd(QTableWidget *,QTableWidget *,int elementos,int inicioExogena);
236    void calcularMatrizExgEnd(QTableWidget *);
237    void ctvMatrizExgEnd(QTableWidget *, QTableWidget *);
238    void titlespanMatrizExgEnd(QTableWidget *);
239    void estimarMb(QTableWidget *, QTableWidget *);
240    void calcularSubtotalEndExg();
241    QVector<double> obtenerResultadoEscenarioMNC(QVector<double>);
242    void calcularFinEscenarioMNC(QTableWidget *);
243    QStringList obtenerNombreResultadoEscenarioMNC();
244
245    void restarIdentidadAn(QTableWidget *);
246    void titleEndogena(QTableWidget *);
247
248    void calcularMaT();
249    void calcularPHCIncidencia100(QTableWidget *);
250    void calcularPHCIncidenciaI(QTableWidget *, QMap<QString, double>);
251    void calcularPHCIncidenciaIComponente(QTableWidget *,QTableWidget *);
252
253    void calcularMbT();
254    void calcularMb();
255    void calcularPHNCIncidencia100(QTableWidget *);
256    void calcularVectorSend(QString componente, QVector<double> &);
257    void multiplicarMatricesPNH(QTableWidget *, QVector<double>);
258    void calcularPNHIncidencia100(QTableWidget *, Eigen::MatrixXd Diagonal);
259    void crearFormularioPNH();
260    QStringList obtenerCuentas();
261
262    void titleSeleccionar(QTableWidget *);
263
264    bool ComprobarCuentas();
265    int ObtenerIndice(QString );
266
267    QStringList ObtenerNombreCuenta(int contador);
268    QList<int> ObtenerLimitesCuenta(int contador,int opccion);
269    QStringList ObtenerComponentes(QTableWidget *);
270    void CrearTablaVacia(int contador,QTableWidget *);
271
272protected:
273    void closeEvent(QCloseEvent *);
274
275private slots:
276    void slotNuevoProyecto();
277    void slotLoadMatrix();
278    void slotExportMatrix();
279    void slotFormLoadMatrixAccepted(const QString &, int, int);
280    void slotFormLoadMatrixClosed();
281
282    void AgregarCuenta();
283    void RestaurarCeldas();
284    void FinalizarCuentas();
285    void ModificarCuenta();
286    void slotCoeficienteHorizontal();
287    void slotCoeficienteVertical();
288    void slotAccChange();
289
290    void slotVariableExogena();
291    void slotCloseExogena();
292    void slotAgregarExogena();
293    void slotFinalizarExogena();
294    void slotDeshacerExogena();
295
296    void slotMa();
297
298    void slotEncadenamientos();
299    void slotCloseEncadenamiento();
300    void slotAgregarEncadenamiento();
301    void slotVerEncadenamiento();
302    void slotClasificarCuentas();
303
304    void slotCloseExport();
305    void slotSaveExport();
306    void slotSearchExport();
307
308    void slotModeloClasico();
309    void calcularEscenario(bool clasico = true);
310    void finalizarEscenario();
311
312    void slotModeloNoClasico();
313    void calcularEscenarioNC();
314    void finalizarEscenarioNC();
315
316    void slotCompararResultadosMNC();
317    void slotVerResultadoMNC();
318
319    void slotPHCIncidencia100();
320    void slotPHCIncidenciaiCuenta();
321    void slotCalcularPHCIncidenciaiCuenta();
322    void slotPHCIncidenciaiComponente();
323    void slotCalcularPHCIncidenciaiComponente();
324
325    void slotCompararResultados();
326    void slotVerResultado();
327
328    void slotPHNCIncidencia100();
329    void slotPHNCIncidenciaiCuenta();
330    void slotCalcularPHNCIncidenciaiCuenta();
331    void slotPHNCIncidenciaiComponente();
332    void slotCalcularPHNCIncidenciaiComponente();
333
334    void slotPNHIncudencia100();
335    void slotCloseformPNH();
336    void slotSelectPNH();
337    void slotPNHIncidenciaiCuenta();
338    void slotPNHIncidenciaiComponente();
339    void slotSelectPNHi();
340    void slotCalcularPNHIncidenciaiCuenta();
341    void slotSelectPNHic();
342    void slotCalcularPNHIncidenciaiComponente();
343
344    void slotSeleccionarTabla();
345
346    void abrirManual();
347    void acercaDe();
348
349public:
350    MainWindow();
351    QString numberFormat(double &);
352
353    int contarElementosMap(QMap<QString, QStringList> diccionario);
354};
355
356#endif // MAINWINDOW_H
Note: See TracBrowser for help on using the repository browser.