/** Método que se encarga de cargar los datos en pantalla */ private void deleteRow( HttpServletRequest request, HttpServletResponse response, HttpSession session) throws ServletException, IOException { int contRegistros = Integer.parseInt(request.getParameter("contadorreg")); QuerySearchAvanced querySearchAvanced = new QuerySearchAvanced(); FieldSearchAvanced[] fieldSearchAvanced = new FieldSearchAvanced[contRegistros]; int[] idoperator = new int[contRegistros]; String[] valueWhere = new String[contRegistros]; String[] nexo = new String[contRegistros]; Map nameCampos = (Map) session.getAttribute("camposconsulta"); int ind_auxiliar = 0; for (int i = 0; i <= contRegistros; i++) { if (request.getParameter("oSelectCampo_" + i) != null) { fieldSearchAvanced[ind_auxiliar] = (FieldSearchAvanced) nameCampos.get(request.getParameter("oSelectCampo_" + i)); try { idoperator[ind_auxiliar] = Integer.parseInt(request.getParameter("oSelectOperador_" + i)); } catch (NumberFormatException e) { // idoperator[i] = 0; } valueWhere[ind_auxiliar] = request.getParameter("where_" + i); nexo[ind_auxiliar] = request.getParameter("nexo_" + i); ind_auxiliar++; } } querySearchAvanced.setFieldSearchAvanced(fieldSearchAvanced); querySearchAvanced.setIdOperator(idoperator); querySearchAvanced.setValueWhere(valueWhere); querySearchAvanced.setNexo(nexo); session.setAttribute("contRegistros", new Integer(contRegistros)); session.setAttribute("valoresConsulta", querySearchAvanced); request.getRequestDispatcher("/frmqueryadvan.jsp").forward(request, response); }
private QuerySearchAvanced saveSearchConditions(HttpSession session, HttpServletRequest request) { String listOrder = RequestUtils.parseRequestParameterAsStringWithEmpty(request, "99999"); if (StringUtils.isEmpty(listOrder)) { listOrder = XML_FLD_UPPER_TEXT + 1; } int contRegistros = Integer.parseInt(request.getParameter("contadorreg")); QuerySearchAvanced querySearchAvanced = new QuerySearchAvanced(); FieldSearchAvanced[] fieldSearchAvanced = new FieldSearchAvanced[contRegistros]; int[] idoperator = new int[contRegistros]; String[] valueWhere = new String[contRegistros]; String[] nexo = new String[contRegistros]; boolean[] hasInvalidValue = new boolean[contRegistros]; Map nameCampos = (Map) session.getAttribute("camposconsulta"); for (int i = 0; i < contRegistros; i++) { FieldSearchAvanced field = (FieldSearchAvanced) nameCampos.get(request.getParameter("oSelectCampo_" + i)); if (field != null) { field.setRowId(i); fieldSearchAvanced[i] = field; try { idoperator[i] = Integer.parseInt(request.getParameter("oSelectOperador_" + i)); } catch (NumberFormatException e) { // idoperator[i] = 0; } valueWhere[i] = request.getParameter("where_" + i); hasInvalidValue[i] = false; } nexo[i] = request.getParameter("nexo_" + i); } querySearchAvanced.setFieldSearchAvanced(fieldSearchAvanced); querySearchAvanced.setIdOperator(idoperator); querySearchAvanced.setValueWhere(valueWhere); querySearchAvanced.setNexo(nexo); querySearchAvanced.setHasInvalidValue(hasInvalidValue); querySearchAvanced.setOrder(listOrder); session.setAttribute("contRegistros", new Integer(contRegistros)); session.setAttribute("valoresConsulta", querySearchAvanced); return querySearchAvanced; }
private void doSearch( HttpServletRequest request, HttpServletResponse response, HttpSession session, UseCaseConf useCaseConf, PrintWriter writer) throws ValidationException, SessionException, BookException, AttributesException, SecurityException, ParseException, FileNotFoundException, TransformerConfigurationException, TransformerException, Exception { QuerySearchAvanced querySearchAvanced = saveSearchConditions(session, request); Document xmlDocument = null; List badCtrls = null; Integer bookID = (Integer) session.getAttribute(Keys.J_BOOK); Map rowMap = RowQuerySearchAdvanced.transformToMap(querySearchAvanced); // Validar los campos de búsqueda según el formato de cada uno badCtrls = bookUseCase.validateAdvancedQueryParams(useCaseConf, bookID, rowMap); // Si todos los campos están correctamente rellenados if (badCtrls.isEmpty()) { xmlDocument = doSearch(useCaseConf, bookID, rowMap, querySearchAvanced.getOrder()); if (xmlDocument != null) { // Almacenamos el xml con los resultados en sesión session.setAttribute("queryResults", xmlDocument); String script = "<script language=javascript>top.g_TreeFunc=true;top.Main.Workspace.EnabledTool();" + "window.open(top.g_URL + \"/vldSearchOperator.jsp?method=showResults&SessionPId=" + session.getId() + "\", \"TableData\",\"location=no\",true);</script>"; response.getWriter().write(script); } else { writer.write( "<HTML><HEAD><script type=text/javascript language=javascript src=\"./scripts/tbltext.js\"></script>"); ResponseUtils.generateJavaScriptLog( writer, RBUtil.getInstance(useCaseConf.getLocale()) .getProperty(Keys.I18N_EXCEPTION_BOOK_HAS_NO_FOLDERS)); writer.write(ACTIVATE_SEVERAL_ADVSEARCH); writer.write("</HEAD><BODY tabIndex=-1></BODY></HTML>"); } } else { FieldSearchAvanced[] fieldList = querySearchAvanced.getFieldSearchAvanced(); boolean[] invalidValues = querySearchAvanced.getHasInvalidValue(); for (int i = 0; i < fieldList.length; i++) { FieldSearchAvanced field = fieldList[i]; if (field != null) { if (badCtrls.contains(new Integer(field.getRowId()))) { invalidValues[i] = true; } else { invalidValues[i] = false; } } } // Actualizamos el valor en sesión de los campos de búsqueda para que aparezcan los no // validados session.setAttribute("valoresConsulta", querySearchAvanced); writer.write( "<HTML><HEAD><script type=text/javascript language=javascript src=\"./scripts/tbltext.js\"></script>"); ResponseUtils.generateJavaScriptLog( writer, RBUtil.getInstance(useCaseConf.getLocale()) .getProperty(Keys.I18N_ISICRESSRV_QRY_ABORT_CAUSE_INVALID_TEXT)); writer.write(ACTIVATE_SEVERAL_ADVSEARCH); writer.write("</HEAD><BODY tabIndex=-1></BODY></HTML>"); } }