@Override
  public void pageRequested(PageEvent p) throws Exception {
    int v_parte_id = -1;
    String v_grp_parte_id = null;

    // si la página es requerida por si misma no hago nada
    if (!isReferredByCurrentPage()) {

      // verifico si tiene parametro
      v_parte_id = getIntParameter("p_parte_id");
      v_grp_parte_id = getParameter("p_grp_parte_id");

      // Viene seteado el parte. lo recupero sino no se hace nada
      if (v_parte_id > 0) {
        // resetea todos los datasource
        _dsPartes.reset();

        // recupera toda la informacion del parte
        _dsPartes.retrieve("partes_mo.parte_id = " + Integer.toString(v_parte_id));
        _dsPartes.gotoFirst();
        _fechaTE3.setFocus(true);
      }
      // Varios partes
      else if (v_grp_parte_id != null) {
        if (v_grp_parte_id.trim().length() > 0) {
          // resetea todos los datasource
          _dsPartes.reset();

          // recupera toda la informacion del parte
          _dsPartes.retrieve("partes_mo.parte_id IN (" + v_grp_parte_id + ")");
          _dsPartes.gotoFirst();
          _fechaTE3.setFocus(true);
        }
      } else {
        refrescaPartes();
      }
    }

    super.pageRequested(p);
  }
  public void refrescaPartes() throws SQLException, DataStoreException {
    // setea y recupera los partes en estado generados
    _dsPartes.reset();
    _dsPartes.retrieve("partes_mo.estado = \"0003.0001\"");

    // si no recuperó ningún parte en estado generado, inserta al menos un registro
    _dsPartes.waitForRetrieve();
    if (_dsPartes.getRowCount() == 0) {
      int row = _dsPartes.insertRow();
      java.sql.Date hoy = new java.sql.Date(System.currentTimeMillis() - (1000 * 60 * 60 * 24));
      _dsPartes.setPartesMoFecha(row, hoy);
      _fechaTE3.setFocus(row, true);
    }
  }