Dentro de un Ci estamos trabajando sobre 2 pantallas, en la primera tenemos un cuadro donde se pueden observar organismos de investigacion, y en la segunda un formulario con dos componente… un ef_editable para permitir que el usuario ingrese el nombre del nuevo organismo de investigacion, y un ef_multi_seleccion_check (se carga desde una consulta php de una tabla) que muestra en pantalla varias categorias las cuales se pueden tildar para asociarlas a un organismo de investigacion. Un organismo de investigacion puede estar asociado a varias categorias. En el proceso de Alta se deben almaccenar datos en dos tablas… organismosinvestigacion(padre) y organismosinvestigacion(hijo) vinculados por el idorganismoinvestigacion. No hay complicaciones al guardar un organismo de investigacion nuevo, ya que sincronizan bien las dos tabla. Pero… lo que no podemos lograr es que cuando se seleccione un organismo de investigacion(y el sistema pase a la pantalla edicion) se tilden en el ef_multi_seleccion_check las categorias que ese organismo de investigación tiene asociado… en vez de esto…aparecen todas las opciones destildadas. Entendemos que toba no lo hace automaticamente y que debemos hacerlo a travez del codigo, pero probamos varias opciones y aun no lo podemos lograr. Hicimos Busquedas en el foro y en la docmentacion de la API.
Estamos trabajando con la version 1.5 de toba. Adjunto el CI con el que estamos trabajando y un impresion de la pantalla del formulario. Desde ya agradecemos cualquier sugerencia y/o solucion que puedan brindarnos.
Alejandra.-
<?php
class ci_organismosinvestigacion extends toba_ci
{
protected $s__datos_formulario;
function get_relacion()
{
return $this->dep('datos');
}
//-----------------------------------------------------------------------------------
//---- Eventos ----------------------------------------------------------------------
//-----------------------------------------------------------------------------------
function evt__agregar()
{
$this->set_pantalla('edicion');
}
function evt__cancelar()
{
$this->get_relacion()->resetear();
$this->set_pantalla('seleccion');
}
function evt__eliminar()
{
if ($this->get_relacion()->esta_cargada()) {
$this->get_relacion()->eliminar_todo();
$this->get_relacion()->resetear();
$this->informar_msg('El Organismo de Investigación se Elimino exitosamente', 'info');
$this->set_pantalla('seleccion');
}
}
function evt__guardar()
{
if (!($this->get_relacion()->tabla('organismosinvestigacion')->get_columna('idorganismoinvestigacion')) > 0) {
$id = $this->get_relacion()->tabla('organismosinvestigacion')->get_max_id_organismo_investigacion() + 1;
$this->get_relacion()->tabla('organismosinvestigacion')->set_columna_valor('idorganismoinvestigacion', $id, false);
$categorias=$this->s__datos_formulario['idcategoria'];
for ($filacategoria = 0;($filacategoria <count($categorias)); $filacategoria++) {
$org_inv_categ= array ( 'idorganismoinvestigacion'=>$id,'idcategoria'=>$categorias[$filacategoria]);
$this->get_relacion()->tabla('organismosinvestigacioncategorias')->nueva_fila($org_inv_categ);
}
}
$this->get_relacion()->sincronizar();
$this->informar_msg('El Organismo de Investigación se Guardo exitosamente', 'info');
$this->get_relacion()->resetear();
$this->set_pantalla('seleccion');
}
//-----------------------------------------------------------------------------------
//---- formulario -------------------------------------------------------------------
//-----------------------------------------------------------------------------------
function conf__formulario($form)
{
if ($this->get_relacion()->esta_cargada()) {
$form->set_datos($this->get_relacion()->tabla('organismosinvestigacion')->get());
//$form->set_datos($this->get_relacion()->tabla('organismosinvestigacioncategorias')->get());
//ei_arbol($this->s__datos_cuadro);
//ei_arbol($form->ef('idcategoria')->get_dato());
//ei_arbol($form->ef('idcategoria')->set_estado());
//$form->ef('idcategoria')->set_estado('1','true');
//ei_arbol($form->ef('idcategoria')->get_lista_parametros());
}
}
function evt__formulario__modificacion($datos)
{
$this->get_relacion()->tabla('organismosinvestigacion')->set($datos);
$this->s__datos_formulario = $datos;
}
//-----------------------------------------------------------------------------------
//---- cuadro -----------------------------------------------------------------------
//-----------------------------------------------------------------------------------
function conf__cuadro(toba_ei_cuadro $cuadro)
{
$cuadro->set_datos($this->get_relacion()->tabla('organismosinvestigacion')->get_listado());
}
function evt__cuadro__seleccion($datos)
{
$this->get_relacion()->cargar($datos);
$this->set_pantalla('edicion');
}
}
?>