En el “ci_detallescontrato”, estando en la pantalla inicial, donde esta el “cuadro_detalle”. Cuando quiero pasar a la pantalla de edición para modificar un detalle, me muestra un error. Adjunto la captura de pantalla.
Esto ocurre cuando llamo a la función cargar, que se encuentra en la extensión del cn
function evt__cuadro_detalle__edicion($seleccion)
{
$this->cn()->cargar($seleccion);
$this->cn()->set_cursor_detalle($seleccion);
$this->set_pantalla('pant_edicion');
}
function cargar($seleccion)
{
ei_arbol($seleccion);
$this->dep('dr_contratos')->cargar($seleccion);
}
aparentemente el problema es que la columna id_servicio no existe en la tabla dt_contratos, al menos es lo que devuelve el motor.
Fijate que estas cargando la relación directamente con lo que te llega del cuadro, si ahi tenes cargada una clave compuesta, la tabla padre debe tener una clave compuesta.
Otra opcion es que te falte completar alguna letra en el nombre de la columna y por eso no la haya encontrado.
Volviendo al tema. Pense que el problema surgía al tener claves compuestas y modifique el modelo para tener una clave única en la tabla. Sigue el mismo problema
Error cargando la tabla contratos, a continuación el mensaje de la base:
ERROR: no existe la columna dt_contratos.id_detalle_contrato
LINE 10: dt_contratos.id_detalle_contrato = "13" -- toba_log: 87950
Acá me llamo la atención. Contratos es la tabla padre y detalle_contrato es la tabla hija. La tabla contratos no tiene la columna id_detalle_contrato, pero la tabla detalle_contrato tiene la columna id_contrato, que seria lo correcto. Ademas, quiero cargar la tabla detalles_contrato.
function cargar_detalle($seleccion)
{
$this->dep('dr_contratos')->tabla('dt_detalles_contrato')->cargar($seleccion);
}
Si hago la carga de esta forma, me devuelve que la tabla no ha sido cargada en este pedido de página
Adjunto una captura de como están asociadas ambas tablas. Cabe mencionar que estoy usando dos cuadros (con distintos nombres) en la misma operación, pero en ci distintos
Vuelvo a lo que te planteaba en el mensaje anterior, el tema es saber que le esta llegando en la variable $seleccion, que es lo que envia el cuadro para efectuar la carga, si alli se recibe un arreglo que tiene una componente nombrada ‘id_detalle_contrato’, va a intentar usarlo para filtrar la SQL. Si solo recibe la clave de la tabla contratos, entonces el despiole viene por otro lado, de todas maneras la relacion parece estar armada correctamente.
```
function cargar_detalle($seleccion)
{
$this->dep(‘dr_contratos’)->tabla(‘dt_detalles_contrato’)->cargar($seleccion);
}
Si hago la carga de esta forma, me devuelve que la tabla no ha sido cargada en este pedido de página</blockquote>
Con respecto a esto, por que estas intentando cargar la tabla de detalles directamente?.. se supone que cuando cargas el contrato, la relacion te carga todos los detalles automaticamente. Esto puede ser parte del problema si en [b] $seleccion [/b] viene algo que no deberia.
<blockquote>Adjunto una captura de como están asociadas ambas tablas. Cabe mencionar que estoy usando dos cuadros (con distintos nombres) en la misma operación, pero en ci distintos</blockquote>
Las tablas estan bien asociadas.. por otro lado, cargas la relacion desde los 2 cuadros? en que se diferencian o con que funcion los estarias usando?
Saludos