source: mmcs/mainwindow.H @ 3e5fe28

Last change on this file since 3e5fe28 was 3e5fe28, checked in by rboet <rudmanmrrod@…>, 8 years ago

Agregada nueva funcionabilidad para cargar matrices desde csv

  • Property mode set to 100755
File size: 10.8 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    Eigen::MatrixXd MatrixMa;
105    Eigen::MatrixXd MatrixMb;
106    Eigen::MatrixXd MatrizMat;
107    Eigen::MatrixXd MatrizMbt;
108
109
110    QString csvFilePath;
111    char csvSeparator;
112    int numAccounts;
113    int matrixSize;
114    int precission;
115
116    QString componentePNH;
117
118    double MatrizEndogenaEndogena[200][200];
119
120    int opcionCuentaExogena;
121    int opcionVentanaExogena;
122    int opcionExportarMatriz;
123    int opcionEncadenamientos;
124    int opcionCuentaEncadenamientos;
125    int opcionMa;
126    int opcionMb;
127    int opcionFormCompararResultados;
128    int opcionFormCompararResultadosMNC;
129    int opcionMAT;
130    int opcionMBT;
131    int opcionPNHT;
132    int opcionFormPNH;
133
134    QVector<double> subtotalEnd;
135    QVector<double> subtotalExog;
136    QVector<double> subtotalExogEnd;
137    QVector<double> Vpond;
138
139    int cantidadSelecciones;
140    int cantidadEncadenamientos;
141    int cantidadEscenarios;
142    int cantidadResultados;
143    int cantidadMNC;//Cantidad de Modelos No Clasicos
144    int cantidadResultadosMNC;
145    //Cantidad de resultados de incidencia en modelo de precios homogéneos clásico
146    int cantidadPHCindidenciaiCuenta;
147    int cantidadPHCindidenciaiComponente;
148    //Cantidad de resultados de incidencia en modelo de precios homogéneos no clásico
149    int cantidadPHNCindidenciaiCuenta;
150    int cantidadPHNCindidenciaiComponente;
151    //Cantidad de resultados de incidencia en modelo de precios no homogéneos
152    int cantidadPNHincidencia100;
153    int cantidadPNHincidenciaiCuenta;
154    int cantidadPNHincidenciaiComponente;
155
156    FormLoadMatrix * formLoadMatrix;
157    FormViewMatrix * formViewMatrix;
158    FormVariablesExogenas * formVariablesExogenas;
159    FormExportMatrix * formExportMatriz;
160    FormEncadenamientos * formEncadenamientos;
161    FormCompararResultados *formCompararResultados;
162    FormCompararMNC *formCompararMNC;
163    FormIncidenciaI *FI;
164    FormPreciosNoHomogeneos * formPreciosNoHomogeneos;
165
166    void initGUI();
167
168    void createCentralWidget();
169    void createMatrixCentralWidget();
170
171    void createMenuBar();
172    void matricesMenuBar();
173    void populateTable(QTableWidget *);
174
175    void CalcularTotales(QTableWidget *, int inicio, bool &);
176    bool comprobarNombreCuenta(QString, int indice);
177    void loadMatrizExogena();
178    void clonarTabla(QTableWidget *,QTableWidget *, int cantidad);
179    void noEditColZero(QTableWidget *);
180    void setAccountTitle(QTableWidget *);
181    void insertremoveRowCol(QTableWidget *, int rowcol, bool opcion);
182    void crearDiccionario(QTableWidget *, bool endogena=true);
183    QStringList obtenerCuentasEndogenas(QTableWidget *,QStringList);
184    QStringList obtenerCuentasExogenas(QTableWidget *,QStringList );
185    void spanEndogenaCell(QTableWidget *, int inicio, int celda, bool endex=true);
186    void spanExogenaCell(QTableWidget *,int celda);
187    void tableItem(QTableWidget *, int inicio, int fin, QString texto);
188
189    QList<QString> llenarLista(QList<QString>, QTableWidget *, int valor, int opcion);
190    void insertRowExogena(QList<QString>, QTableWidget *, int opcion);
191    void setEndogenaExogenaCell(QTableWidget *, int inicioExogena, int elementos,bool condicion);
192    void CalcularAn(QTableWidget *, QTableWidget *, QTableWidget *, int count, bool endogena = false);
193    QString Separador(QTableWidgetItem *,bool quitar);
194    void ItemsNoEditable(QTableWidget *, int inicio, int fin, int col=0);
195    void CellStyle(QTableWidgetItem *);
196    void CellStyleComponente(QTableWidgetItem *);
197    void CellStyleExEn(QTableWidgetItem *);
198    void EndogenaAn();
199
200    void calcularTotalCuentas(QTableWidget *);
201    void estimarVectorPonderacion();
202
203    void obtenerCuentaComponentes();
204    void crearTablaVaciaEncadenamiento(int filas, QTableWidget *, int columnas=4);
205    void crearMatrizEncadenamiento(QTableWidget *, QTableWidget *);
206    void crearMatrizEncadenamientoEndogena(QTableWidget *, QTableWidget *);
207    void calcularTotalesEncadenamientos(QTableWidget *);
208    void encademientosStyle(QTableWidgetItem *);
209    void cuentacomponentesEncadenamiento(QTableWidget *, int count);
210    void obtenerUiUj(QTableWidget *, QVector<double> &, QVector<double> &);
211    void calcularClasificador(QTableWidget *, QVector<double>, QVector<double>, int init = 2);
212    void agregarPrimeraCelda(QTableWidget *);
213
214    void calcularSubtotal(QTableWidget *,int inicio, int fin,int exogena);
215    void llenarEscenario(QTableWidget *, bool clasico=true);
216    void calcularFinEscenario(QTableWidget *);
217    QVector<double> obtenerResultadoEscenario(QVector<double>);
218    QStringList obtenerNombreResultadoEscenario();
219    void crearTablaComparar(QTableWidget *, QTableWidget *);
220    void cuentacomponentesResultado(QTableWidget *, int count, bool clasico = true);
221
222    void obtenerMatrizExgEnd();
223    void crearMatrizExgEnd(QTableWidget *,QTableWidget *,int elementos,int inicioExogena);
224    void calcularMatrizExgEnd(QTableWidget *);
225    void ctvMatrizExgEnd(QTableWidget *, QTableWidget *);
226    void titlespanMatrizExgEnd(QTableWidget *);
227    void estimarMb(QTableWidget *, QTableWidget *);
228    void calcularSubtotalEndExg();
229    QVector<double> obtenerResultadoEscenarioMNC(QVector<double>);
230    void calcularFinEscenarioMNC(QTableWidget *);
231    QStringList obtenerNombreResultadoEscenarioMNC();
232
233    void crearMatrizEndogena(QTableWidget *);
234    void restarIdentidadAn(QTableWidget *);
235    void titleEndogena(QTableWidget *);
236
237    void calcularMaT();
238    void calcularPHCIncidencia100(QTableWidget *);
239    void calcularPHCIncidenciaI(QTableWidget *, QMap<QString, double>);
240    void calcularPHCIncidenciaIComponente(QTableWidget *,QTableWidget *);
241
242    void calcularMbT();
243    void calcularMb();
244    void calcularPHNCIncidencia100(QTableWidget *);
245    void calcularVectorSend(QString componente, QVector<double> &);
246    void multiplicarMatricesPNH(QTableWidget *, QVector<double>);
247    void calcularPNHIncidencia100(QTableWidget *, Eigen::MatrixXd Diagonal);
248    void crearFormularioPNH();
249    QStringList obtenerCuentas();
250
251    void titleSeleccionar(QTableWidget *);
252
253    bool ComprobarCuentas();
254    int ObtenerIndice(QString );
255
256    QStringList ObtenerNombreCuenta(int contador);
257    QList<int> ObtenerLimitesCuenta(int contador,int opccion);
258    QStringList ObtenerComponentes(QTableWidget *);
259    void CrearTablaVacia(int contador,QTableWidget *);
260
261protected:
262    void closeEvent(QCloseEvent *);
263
264private slots:
265    void slotNuevoProyecto();
266    void slotLoadMatrix();
267    void slotExportMatrix();
268    void slotFormLoadMatrixAccepted(const QString &, int, int);
269    void slotFormLoadMatrixClosed();
270
271    void AgregarCuenta();
272    void RestaurarCeldas();
273    void FinalizarCuentas();
274    void ModificarCuenta();
275    void slotCoeficienteHorizontal();
276    void slotCoeficienteVertical();
277    void slotAccChange();
278
279    void slotVariableExogena();
280    void slotCloseExogena();
281    void slotAgregarExogena();
282    void slotFinalizarExogena();
283    void slotDeshacerExogena();
284
285    void slotMa();
286
287    void slotEncadenamientos();
288    void slotCloseEncadenamiento();
289    void slotAgregarEncadenamiento();
290    void slotVerEncadenamiento();
291    void slotClasificarCuentas();
292
293    void slotCloseExport();
294    void slotSaveExport();
295    void slotSearchExport();
296
297    void slotModeloClasico();
298    void calcularEscenario(bool clasico = true);
299    void finalizarEscenario();
300
301    void slotModeloNoClasico();
302    void calcularEscenarioNC();
303    void finalizarEscenarioNC();
304
305    void slotCompararResultadosMNC();
306    void slotVerResultadoMNC();
307
308    void slotPHCIncidencia100();
309    void slotPHCIncidenciaiCuenta();
310    void slotCalcularPHCIncidenciaiCuenta();
311    void slotPHCIncidenciaiComponente();
312    void slotCalcularPHCIncidenciaiComponente();
313
314    void slotCompararResultados();
315    void slotVerResultado();
316
317    void slotPHNCIncidencia100();
318    void slotPHNCIncidenciaiCuenta();
319    void slotCalcularPHNCIncidenciaiCuenta();
320    void slotPHNCIncidenciaiComponente();
321    void slotCalcularPHNCIncidenciaiComponente();
322
323    void slotPNHIncudencia100();
324    void slotCloseformPNH();
325    void slotSelectPNH();
326    void slotPNHIncidenciaiCuenta();
327    void slotPNHIncidenciaiComponente();
328    void slotSelectPNHi();
329    void slotCalcularPNHIncidenciaiCuenta();
330    void slotSelectPNHic();
331    void slotCalcularPNHIncidenciaiComponente();
332
333    void slotSeleccionarTabla();
334
335    void abrirManual();
336    void acercaDe();
337
338public:
339    MainWindow();
340    QString numberFormat(double &);
341
342    int contarElementosMap(QMap<QString, QStringList> diccionario);
343};
344
345#endif // MAINWINDOW_H
Note: See TracBrowser for help on using the repository browser.