/** Initialize the page. Set up listeners and perform other initialization activities. */
  public void initialize() throws Exception {
    super.initialize();

    _buscarBUT = new HtmlSubmitButton("buscarBUT", "Buscar", this);
    _buscarBUT.setAccessKey("b");
    _buscarBUT.addSubmitListener(this);
    _searchformdisplaybox1.addButton(_buscarBUT);

    _limpiarBUT = new HtmlSubmitButton("limpiarBUT", "Limpiar", this);
    _limpiarBUT.setAccessKey("b");
    _limpiarBUT.addSubmitListener(this);
    _searchformdisplaybox1.addButton(_limpiarBUT);

    // Obtiene operadores
    _operador.addOption(String.valueOf(BusquedaPorAtributo.OPERATOR_AND), "And");
    _operador.addOption(String.valueOf(BusquedaPorAtributo.OPERATOR_OR), "Or");

    // Test the import process
    _replicaFromTangoBUT =
        new HtmlSubmitButton("replicaFromTangoBUT", "Replicar desde Tango", this);
    _replicaFromTangoBUT.addSubmitListener(this);
    _searchformdisplaybox1.addButton(_replicaFromTangoBUT);

    _replicaProveedores = new HtmlSubmitButton("_replicaProveedores", "Importar proveedores", this);
    _replicaProveedores.addSubmitListener(this);
    _searchformdisplaybox1.addButton(_replicaProveedores);

    // do not retrieve disallowed items
    _dsQBE.addCriteria("anulado", QBEBuilder.CRITERIA_TYPE_NOT_EQUALS, "articulos.anulado");
    _dsQBE.setString("anulado", "V");
  }
  /**
   * Genera el query SQL segùn los datos ingresados por el usuario en los campos asociados al QBE y
   * los pares atributo/valor ingresados.
   *
   * @return La clausula WHERE a utilizar como parametro de retrieve()
   * @throws SQLException
   * @throws DataStoreException
   */
  private String armarCriterio() throws SQLException, DataStoreException {
    StringBuilder sb = new StringBuilder(500);

    // add all the selection criterias specified by the user
    String sqlFilter = _dsQBE.generateSQLFilter(_dsArticulos);
    if (sqlFilter != null) {
      sb.append(sqlFilter);
    }

    // build where clause with specified attributes if any
    String criterioAtributos =
        BusquedaPorAtributo.armarBusquedaPorAtributos(
            atributosValoresBusqueda(),
            Integer.valueOf(_operador.getValue()),
            "articulos",
            "articulo_id");
    if (criterioAtributos.length() > 0) {
      sb.append(" and articulos.articulo_id IN ( ").append(criterioAtributos).append(" )");
    }

    return sb.toString();
  }