[SOLUCIONADO]formulario y cuadro dinamico

Hola, estoy queriendo hacer un cuadro y un formulario dinámico, (generarlos al “vuelo” según datos definidos en unas tablas) y me surgen 2 problemitas, a ver si me pueden orientar:

  • Con el formulario me esta pasando que lo campos que agrego via form->agregar_ef() no me los envía (tengo seteado el evento del formulario con “maneja datos”), este formulario tiene un campo inicial seteado desde el toba_editor el cual si lo envía. La función de agregar_ef() esta en el conf del formulario, intuyo que este no es el mejor lugar para agregar estos campos y tal vez le erré ahí.

  • Con el cuadro me pasa algo parecido, los columnas que agrego en ejecución con cuadro->agregar_columnas() , no las exporta, me genera un archivo vacio, me falta alguna marca quizas?

Acá los códigos:

    
function conf__formulario(reporteador_ei_formulario $form)
    {
        //esto es lo que viene de la otra ventana
        $clave_get = toba::memoria()->get_parametro('fila_safe');
        $a_clave = toba_ei_cuadro::recuperar_clave_fila('3375', $clave_get);
        if (empty($a_clave)){
            $a_clave['id'] = $this->s__id_consulta;
        }
        // ---------------------------------------------------       
        
        $efs_param = $this->dep('consultas')->get_ef_parametros($a_clave['id']);
        $extra_ef = array(
            'obligatorio' => 0,
            'colapsado' => 0,
            'desactivado' => 0,
            'descripcion' => '',
            /*'carga_lista' => $datos_ef['parametros'],*/
            'orden' => 1,
            'oculto_relaja_obligatorio' => 0,
            'carga_permite_no_seteado' => 0
        );        
        foreach ($efs_param as $ef) {
            $identificador = $ef['valor1'];
            $etiqueta = str_replace(array('_p_', '_' ), array('', ' '), $ef['valor1']);
            $clase_ef = $ef['ef'];
            $columna = $ef['valor1'];
            $form->agregar_ef($identificador, $clase_ef, $etiqueta, $columna, $extra_ef);
        }
        
        $datos['id'] = $a_clave['id'];
        $form->set_datos($datos);
                            
    }


    function conf__cuadro_resultado(reporteador_ei_cuadro $cuadro)
    {
        echo $this->s__sql_ejec;
        if (!empty($this->s__sql_ejec)) {
            $datos = toba::db('informix')->consultar($this->s__sql_ejec);
            foreach ($datos[0] as $k => $v) {
                $columnas[] = array('clave' => $k, 'titulo' => $k);
            }
            $cuadro->limpiar_columnas();
            $cuadro->agregar_columnas($columnas);
            $cuadro->set_datos($datos);
        }        
    }

desde ya gracias por la ayuda!

Hola Alfredo,

creo que le problema es que estas llegando tarde a hacer los cambios a la estructura de los componentes. Para cuando llegas a los metodos conf, el componente y su estructura ya fueron definidos.

Creo que si haces esos pasos en el metodo ini() podes tener mas suerte, sino tendrias que redefinir la inicializacion de dependencias del ci .

Saludos

Lo sospeche desde un principio!
Gracias!

Hola Alfredo,

no contaba con tu nobleza… era eso al final?

Richard, me pasó lo mismo que a Alfredo, y efectivamente era lo que mencionabas. Al agregar “$this->dep(‘mi_formulario’)->agregar_ef(…)” en el ini() del CI, si funciona.
Abrazo.