/** 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");
  }
  /**
   * Initialize the page. Set up listeners and perform other initialization activities.
   *
   * @throws Exception
   */
  public void initialize() throws Exception {
    super.initialize();

    // genera botones custom
    _grabarParteBUT3 = new HtmlSubmitButton("grabarParteBUT3", "Grabar", this);
    _grabarParteBUT3.setAccessKey("G");
    _listFormDisplayBox1.addButton(_grabarParteBUT3);

    _nuevoParteCopiarBUT1 = new HtmlSubmitButton("nuevoParteCopiarBUT1", "Copiar Parte", this);
    _nuevoParteCopiarBUT1.setAccessKey("G");
    _listFormDisplayBox1.addButton(_nuevoParteCopiarBUT1);
    _nuevoParteNuevoBUT2 = new HtmlSubmitButton("nuevoParteNuevoBUT2", "Nuevo Parte", this);
    _nuevoParteNuevoBUT2.setAccessKey("N");
    _listFormDisplayBox1.addButton(_nuevoParteNuevoBUT2);

    _eliminaParteBUT4 = new HtmlSubmitButton("eliminaParteBUT4", "Eliminar", this);
    _eliminaParteBUT4.setAccessKey("E");
    _listFormDisplayBox1.addButton(_eliminaParteBUT4);

    _refrescarBUT5 = new HtmlSubmitButton("refrescarBUT5", "Recargar", this);
    _refrescarBUT5.setAccessKey("R");
    _listFormDisplayBox1.addButton(_refrescarBUT5);

    // Agrega columna de seleccion al datasource de informes
    _dsPartes.addBucket(SELECCION_PARTE_FLAG, DataStore.DATATYPE_INT);
    _seleccionParte.setColumn(_dsPartes, SELECCION_PARTE_FLAG);
    _seleccionParte.setFalseValue(null);

    addPageListener(this);
    _nuevoBUT92.addSubmitListener(this);
    _nuevoBUT91.addSubmitListener(this);
    _menuBUT.addSubmitListener(this);
    _grabarParteBUT3.addSubmitListener(this);
    _nuevoParteCopiarBUT1.addSubmitListener(this);
    _nuevoParteNuevoBUT2.addSubmitListener(this);
    _eliminaParteBUT4.addSubmitListener(this);
    _refrescarBUT5.addSubmitListener(this);

    // Listener para validar fecha antes de ser enviada al DataStore
    _fechaTE3.addValueChangedListener(this);

    _dsPartes.setAutoValidate(true);

    // refresca la pantalla de partes
    refrescaPartes();

    // completa la poplist de categorías
    try {
      completaCategorias();
    } catch (DataStoreException e) {
      displayErrorMessage("Error cargando categorias: " + e.getMessage());
    }
  }