Estimados.
Estoy haciendo una operacion con 2 CI anidados, que usa un Datos Relación compuesto por 3 Datos Tabla.
pedidos (1)→(m) pedidos_detalles (1)→(m) pedidos_desglose
Es donde pedidos es un padre que puede tener varios hijos (pedidos_detalles), pero a su vez pedidos_detalles es el padre de pedidos_desglose.
En el primer CI manejo un formulario (pedidos) y un formulario ml (pedidos_detalles).
Y en el 2do. CI manejo un ml para pedidos_desglose
Cargo los DT con los formularios correspondientes, pero al intentar sincronizar el DR, arroja un error de sincronización. Pero al guardar los datos me arroja un error de inconsistenacia, Se intenta crear o actualizar una fila y su fila padre aún no existe.
Desde toba están las relaciones indicadas (adjunto capturas).
te hago una consulta, cuando cargas el desglose… como sabes sobre que detalle estas actuando?.. Lo seleccionas en la pantalla del segundo CI?.
El DR necesita que el DT del detalle tenga un cursor fijado al momento de cargar el desglose, es por eso que te esta tirando el error… no debe saber a que detalle pegarle los registros.
Lo que tengo entendido que una vez que cargo el DR (el que cargo en el 1er CI), y se cargan todas las tablas que componen el DR. Entonces en el evento evt__cuadro_detalle__entregar, estuve haciendo pruebas para cargar la tabla “farm_pedidos_detalle” pero sin resultados.
Como tendria que hacer para detectar el cursor en el que estoy trabajando?
Bien, lo que te faltaria en este caso.. es indicar que detalle estas editando?.. la tabla tiene todos los registros pero no sabe cual estas usando puntualmente.
Otro tema es como lo seteas, si haces un get_filas() te va a traer todos los detalles que tiene ese pedido.. no podes agarrar el primero y fijarlo, tenes que hacer que coincidan.
y al form_desglose_ml lo cargo a mano de la siguiente forma.
Bien.. pero tene en cuenta lo siguiente (esto es de la documentacion del metodo):
Agrega un registro nuevo a la matriz de datos
La diferencia entre este método y agregar una fila vacía en el set_datos es que en este último
los registros en el próximo pedido de página serán analizados como 'modificados' ya que no sabe diferenciarlos
de los datos que ya existen en el medio de almacenamiento.
Para cumplir con su objetivo este metodo tiene que se invocado en la etapa de configuración [b]cuando
ya se ha cargado al componente con datos, de lo contrario se perdera su efecto.[/b]</blockquote>
Vos unicamente estas agregando los registros nuevos, despues no hay nada mas.
Lo que tengo entendido que una vez que cargo el DR (el que cargo en el 1er CI), y se cargan todas las tablas que componen el DR. Entonces en el evento evt__cuadro_detalle__entregar, estuve haciendo pruebas para cargar la tabla "farm_pedidos_detalle" pero sin resultados.
Como tendria que hacer para detectar el cursor en el que estoy trabajando?
No tenes que volver a cargar la tabla “farm_pedidos_detalle”, simplemente le tenes que decir que registro estas usando.
Eso lo podes hacer recuperando el id interno via este metodo y luego fijando el cursor con " $this->get_relacion()->tabla(‘farm_pedidos_detalle’)->set_cursor($p);".