public void evaluar() { itemsdetalle = new ArrayList<Detallehistorial>(); Detallehistorial det; for (Componenteformla com : metaSeleccionada.getIndicador().getComponenteformlaCollection()) { det = new Detallehistorial(); det.setIdcomponenteformula(com); itemsdetalle.add(det); } System.out.println("cargo"); try { FacesContext.getCurrentInstance() .getExternalContext() .redirect("/BSC/faces/objetivoestrategico/Evaluar.xhtml"); } catch (IOException ex) { Logger.getLogger(ObjetivoestrategicoController.class.getName()).log(Level.SEVERE, null, ex); } }
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)); } } } } }