[AYUDA] Problemas al pre cargar un formulario. (tabla->get)

Buenas!

Tengo un problema que ya me está cansando, es una boludés pero, no puedo hacer que funcione.

Estoy haciendo un muy simple formulario y no puedo lograr pre cargar el formulario.

Tengo un cuadro con el listado de productos.

  • descripción
  • precio

El cuadro tiene configurado la clave columna con id_producto

A su vez, tiene configurado el evento editar a nivel fila.

Mi problema…
En el método evt__cuadro_producto_editar($datos) $datos viene cargado con el siguiente array array(“id_producto”, 8) (por ejemplo)

Luego cargo la dependencia o tabla. (probé de las dos maneras)
$this->dep(‘datos_public’)->cargar($datos)
ó
$this->dep(‘datos_public’)->tabla(‘productos’)->cargar($datos)

Luego en el método conf__formu_producto(inicial_ei_formulario $form)
reviso si la dependencia o tabla está cargada: (probé de las dos maneras)
$this->dep(‘datos_public’)->esta_cargada()
ó
$this->dep(‘datos_public’)->tabla(‘productos’)->esta_cargada()

Y efectivamente está cargada porque devuelve un TRUE y entra al IF correspondiente.

Luego al ejecutar lo siguiente: (probé de las dos maneras)
$this->dep(‘datos_public’)->get()
ó
$this->dep(‘datos_public’)->tabla(‘productos’)->get()

toba me devuelve el siguiente error:
No hay posicionado un cursor en la tabla, no es posible determinar la fila actual

Seguramente tiene que ser algo muy sencillo que me estará faltando o estoy haciendo mal. Me parece muy raro que no esté funcionando ya que, he visto por ahí, que lo tienen de la misma manera y les funciona sin problema.

Sin más,
un saludo!

Un primer error que detecto es que lo que tienes con $this->dep(‘datos_public’)->tabla(‘productos’)->esta_cargada($datos)
NO debe llevar parametros y es $this->dep(‘datos_public’)->tabla(‘productos’)->esta_cargada()

Comienza por ese lado

Perdón, fue un mal copy paste acá en el thread.
En mi código fuente lo tengo sin parámetros
$this->dep(‘datos_public’)->tabla(‘productos’)->esta_cargada()

ya actualicé el post.

Gracias por el detalle! =)

Hola Emmanuel,

fijate en la definicion del datos relacion, que la tabla padre de la misma tenga seteado como minimo y maximo de filas uno ‘1’. De esa forma, te setea el cursor automaticamente al cargar la relacion, de lo contrario va a asumir que tiene multiples filas cargadas, en cuyo caso tenes dos opciones:

  • Usas el metodo get_filas();
  • Usas el metodo get_id_fila_condicion() para recuperar el id de la fila que tiene como id_producto 8 y luego haces un get(id);

Saludos