Cascada con ef_oculto en nuevas lineas de form multilinea

Buenas, tengo un form multilinea que tiene que recuperar un valor via ajax para un campo C, a partir de 2 campos como cascada, uno es oculto (campo O) y otro seleccionable por el usuario (campo P).

El valor del campo oculto O lo conozco a la hora de hacer el conf del ml, y si el mismo tiene filas se lo seteo en dicho conf.

Sin embargo, la cascada tira error cuando el usuario agrega nueva fila y setea el campo P, básicamente el error es que el campo C no puede hacer la cascada por no existe estado en O.

Lo que intenté fue, al momento de procesar el valor de P, con la API js, setear el valor de O:


{$this->objeto_js}.evt__campo_p__procesar = function(es_inicial, fila)
{
    {$this->objeto_js}.ef('campo_O').ir_a_fila(fila).set_estado(valor_campo);
}

Pero en los casos de fila nueva, {$this->objeto_js}.ef('campo_O') retorna undefined.

Como se manejan estos casos en Toba?

Opciones que tengo pero me parecen innecesariamente complejas:

  • Cambiar el mecanismo de manejo del ml a PHP. Me parece que no tiene sentido. Es ir y volver al server para cada operación en el ml solo por un valor por default.
  • Pisar el método js crear_fila() para armar otro que lo reutilice, pero ademas con mi comportamiento.

¿me estoy perdiendo algo?

Hola Tomas,

el problema es el metodo que devuelve la cascada, es claro que el valor de “O” deberia ser opcional.

Las filas que envias pre-cargadas desde el conf tienen valor para el campo ‘O’… no asi una nueva fila, la cual no existia al momento de hacer el conf del formulario.

Tenes por tanto dos opciones:

  • El valor de “O” es opcional y asi queda reflejado en el metodo que responde a la cascada.
  • El campo “O” tiene un valor por defecto, el cual deberias setear en el conf para que pudiera asumirlo en caso de ser necesario.

Por otra parte, como los campos ocultos no viajan al cliente… no podes hacer una llamada en JS para setear su valor, ya que estos nunca salen del servidor.

Saludos