[SOLUCIONADO]ABM Complejo (Personas - Allegados)

Buenas Tardes! Soy nueva en Toba y estoy haciendo un ejemplo de un ABM complejo (adjunto diapositivas del curso con el ejemplo).
Mi problema surge a la hora de editar los datos de una persona. no entiendo bien de donde se obtienen esos datos seleccionados del cuadro de la primer pantalla.
Es decir, como es la relación entre los ci, cn y los los métodos de los datos (como por ejemplo el método “cargar()”)
Saludos!


01 - Curso Toba - Diapositivas.pdf (1.77 MB)

Lo mejor que puedes hacer es ir a Toba_referencia, en el ejemplo de Operaciones, das click en cada componente y al lado derecho y en la parte superior izquierda aparece el icono de PHP, lo cual te muestra el código correspondiente de cada componente; por ejemplo al dar clic en el CI y visualisar el código aparece

funcion conf_cuadro () {

}

Espero ser claro

Hola Jorozco, si, eso estuve haciendo, viendo los archivos php de los controladores y fui haciendo los métodos, cuando quiero editar una persona , me tira este error.

"Error cargando la relación, se esperaba un arreglo asociativo por ejemplo

$relacion->cargar(array(“campo”=> “valor”))

En su lugar se recibio el valor: “” "

El problema es que lo hice tal cual en el ejemplo del curso, nose porque razón espera un array , ya que supuestamente debería recibir el id del registro que quiero editar.

Hola Natalia,

hay dos temas en tus preguntas:

Por un lado, como es la relacion entre ci, cn y el resto… toda operacion con componentes (ya que en toba podes tener de otros tipos) tiene al menos un controlador de interface (ci), que es un contenedor de otros componentes (cuadro, formulario, etc) y puede tener o no un controlador de negocio (cn). Dentro del CI, se van a especificar metodos que van a actuar como listeners de eventos que se produzcan desde el cliente hacia el servidor, en esos metodos es donde se produce el intercambio de informacion y en donde ademas, podes manipular el comportamiento de los componentes.

Entonces, dentro del CI vas a definir los metodos para interactuar con el cuadro, formulario, filtro etc… y dentro de esos metodos podes invocar ya sea un CN o directamente algun componente de persistencia, eso depende de la arquitectura que se haya elegido. En tu caso, podes invocar la carga de la relacion desde el listener del evento de seleccion digamos, el cual recibe por parametro los datos que envia el cliente.


 function evt__cuadro__seleccion($datos)
 {
       $this->dep('relacion')->cargar($datos);                                                            //Accediendo directamente a la relacion enviando los datos que eligio el cliente

       //O tambien podria hacerse la llamada via un CN que accede a la relacion
      //$this->cn()->cargar_relacion($datos);
 }

Los datos a los metodos llegan via Toba, que se encarga de enmascarar la interaccion y el envio de datos entre cliente y servidor, entonces mientras el cliente solo presiona un boton que dispara un pedido de pagina, Toba en dicho pedido envia la informacion necesaria para que el servidor se entere no solo que interaccion es la que se esta llevando a cabo, sino los datos que involucra la misma. A vos lo que se te presenta en el CI, es la invocacion a un metodo especifico al cual se le pasan los datos enviados por el cliente como parametro, de forma que solo debas preocuparte del manejo de los datos y no de como se intercambia eso entre el server y el cliente.

Con respecto a la parte de la carga de la relacion en si, se espera un array porque en ocasiones es necesario pasar mas de una columna (clave compuesta) con valores de carga y multiplexar esos valores para luego separarlos es mucho menos legible y engorroso, que simplemente utilizar un array para especificar el valor de cada campo.

Te recomiendo que vayas leyendo la wiki a medida que vas probando (tambien la referencia de la API), el consejo de Jhon sobre toba_referencia es valido y bueno, le podes meter toda la mano que quieras a ese proyecto haciendo pruebas. Cualquier duda que tengas planteala aca en el foro, igualmente primero intenta buscar ya que hay un monton de hilos sobre consultas que se fueron haciendo con el tiempo… puede que tu respuesta ya haya sido dada y sino, sin verguenza nomas pregunta que te vamos a ayudar en todo lo que podamos.

Saludos

Gracias Richard por tu respuesta, recien me acabo de dar cuenta cual era el error. Lo que pasaba era que me olvide de indica la clave de las filas del cuadro en el Editor del cuadro, entonces cuando seleccionaba una fila para poder editarla me llegaba vacio, pequeño detalle :stuck_out_tongue: jajja


Sin tAtulo.png

Sin tAtulo.png

Hola Naty,

a todos nos ha pasado :slight_smile:

Saludos