public void obtieneComponentes() { if (nuevoObjetivoestrategicoindicador.getIndicador().getFormula() != null) { if (!nuevoObjetivoestrategicoindicador.getIndicador().getFormula().equals("")) { String formula = nuevoObjetivoestrategicoindicador .getIndicador() .getFormula() .replaceAll("\\s", "") .trim(); Validacion cadena = new Validacion(formula); if (cadena.Exp_Valida()) { String Exp = formula.trim(); // Borra parentesis del inicio y fin si toda la expresion esta entre parentesis if (Exp.charAt(0) == '(' && Exp.charAt(Exp.length() - 1) == ')') { int p = 1, i = 1; while (p != 0) { if (Exp.charAt(i) == '(') { p++; } if (Exp.charAt(i) == ')') { p--; } i++; } if (i == Exp.length()) { Exp = Exp.substring(1, Exp.length() - 1); } } arbol = new Arbol(Exp); arbol.Formar_Arbol(); List term = arbol.listarTerminos(); nuevoObjetivoestrategicoindicador .getIndicador() .setComponenteformlaCollection(new ArrayList()); for (int i = 0; i < term.size(); i++) { System.out.println("term " + term.get(i)); Componenteformla c = new Componenteformla(); c.setDescripcion((String) term.get(i)); c.setIdindicador(nuevoObjetivoestrategicoindicador.getIndicador()); nuevoObjetivoestrategicoindicador.getIndicador().getComponenteformlaCollection().add(c); } } } } }
public void calculaIndicador() { boolean calucular = true; System.out.println("inicio"); for (Detallehistorial d : itemsdetalle) { System.out.println("Valor " + d.getValor()); if (d.getValor() == null) calucular = false; } System.out.println(calucular); if (calucular) { if (!metaSeleccionada.getIndicador().getFormula().equals("")) { String formula = metaSeleccionada.getIndicador().getFormula().replaceAll("\\s", "").trim(); Validacion cadena = new Validacion(formula); if (cadena.Exp_Valida()) { String Exp = formula.trim(); // Borra parentesis del inicio y fin si toda la expresion esta entre parentesis if (Exp.charAt(0) == '(' && Exp.charAt(Exp.length() - 1) == ')') { int p = 1, i = 1; while (p != 0) { if (Exp.charAt(i) == '(') { p++; } if (Exp.charAt(i) == ')') { p--; } i++; } if (i == Exp.length()) { Exp = Exp.substring(1, Exp.length() - 1); } } arbol = new Arbol(Exp); arbol.Formar_Arbol(); arbol.reemplazarValores(itemsdetalle); List term = arbol.listarTerminos(); nuevoObjetivoestrategicoindicador .getIndicador() .setComponenteformlaCollection(new ArrayList()); nuevoVolorIndocador = Double.parseDouble(arbol.Calcular()); for (int i = 0; i < term.size(); i++) { System.out.println("term " + term.get(i)); } } } } }