Quiero hacer un filtro entre dos fechas (fecha desde y fecha hasta) y en fecha hasta pongo la fecha del día y dejo el ef como solo lectura, pero cuando hago clic en el botón filtrar me da error de ef nulo en fecha hasta.
Adjunto captura de pantalla:
apex_ef_no_seteado suele utilizarse con los ef_combo, ef_popup, etc.. en este caso para una fecha o tenes valor.. o no lo tenes. Por ende el primer condicional no esta chequeando realmente nada.
la funcion fecha() internamente hace validacion de estado y de valor, si alguno de ambos chequeos falla… retorna null, que entiendo debe ser lo que te esta complicando.
Por otra parte, tene en cuenta que estas necesitando validar el estado para hacer la validacion… lo cual hace que sea un poco complicado por no decir recursivo. Yo haria algo asi
function extender_objeto_js()
{
echo "
//---- Validacion de EFs -----------------------------------
{$this->objeto_js}.evt__fecven_hasta__procesar= function(es_inicial)
{
if (! es_inicial) { //Se ejecuta ante un cambio por parte del usuario
var desde = this.ef('fecven_desde').fecha();
var hasta = this.ef('fecven_hasta').fecha();
var necesita_chequeo = (null !== desde && null !== hasta);
if(necesita_chequeo && desde > hasta) {
this.ef('fecven_desde').set_error('Debe ingresar una fecha menor');
}
}
}
";
}
Variables mas variables menos, eso deberia realizar algo equivalente a lo que buscabas estimo.