[SOLUCIONADO]Exportar Cuadro Resumido

Hola, tengo un cuadro con muchas columnas por lo que quiero resumirla, eso no es problema porque las quito de las columnas el tema que al momento de exportarlo quiero que se exporten todas las columnas no solo las visibles, no como se ve en pantalla, como es posible realizar esto?

muchas gracias.

Agustin

Hola Agustin,

creo que la mejor forma es quitando las columnas unicamente cuando lo que estas sirviendo es la pagina html hacia el cliente y en el resto de los casos no hacerlo. Para saber a que tipo de servicio estas respondiendo, podes usar este metodo.

Saludos

Hola Richard, no logro comprender bien como hacerlo, me podrias explicar un poquito mas por favor?

Saludos!

Hola Agustin,

me refiero a que en el conf del cuadro tengas un condicional con algo del estilo:


function conf__cuadro($cuadro) 
{
      if ('generar_html'  == toba::memoria()->get_servicio_solicitado()) {
                       //Quito las columnas del cuadro
      }
}

De esa forma solo afectas un solo tipo de salida y no todas.

Saludos

Si eso esta ok, pero existe algun metodo para quitar u ocultar las columnas de un cuadro?

En la documentación de la API, podés encontrar varios métodos que te pueden ser de utilidad para manipular el cuadro.
http://desarrollotoba.siu.edu.ar/toba_editor_trunk/doc/api/Componentes/Eis/toba_ei_cuadro.html#eliminar_columnas

Para eliminar columnas, está el método

$cuadro->eliminar_columnas($columnas)

Para agregarlas

$cuadro->agregar_columnas($columnas)

Donde $columnas es un array con los id de columnas que queres eliminar/agregar.

En tu caso, siguiendo la idea de Richard, supongo que en el toba_editor agregarás todas las columnas (de modo tal que cuando exportes a otro formato como xls aparezcan todas), y cuando se imprima la salida html deberás quitar aquellas que no se necesitan visualizar en la vista resumida el cuadro.

Hola Roberto, veritfique en la conf del cuadro las columnas ya la izq tiene el id, utilizo ese. El tema es que no elimina justo esas columnas.

        $columnas = array(11,12,13,14,15,16);
        $cuadro->eliminar_columnas($columnas);

y me arroja el siguiente notice: (el cuadro tiene 36 columnas)

Notice: Undefined offset: 11 in /var/www/proyectos/toba_2.5.0/php/nucleo/componentes/interface/toba_ei_cuadro.php on line 299 Notice: Undefined offset: 12 in /var/www/proyectos/toba_2.5.0/php/nucleo/componentes/interface/toba_ei_cuadro.php on line 299 Notice: Undefined offset: 13 in /var/www/proyectos/toba_2.5.0/php/nucleo/componentes/interface/toba_ei_cuadro.php on line 299 Notice: Undefined offset: 14 in /var/www/proyectos/toba_2.5.0/php/nucleo/componentes/interface/toba_ei_cuadro.php on line 299 Notice: Undefined offset: 15 in /var/www/proyectos/toba_2.5.0/php/nucleo/componentes/interface/toba_ei_cuadro.php on line 299 Notice: Undefined offset: 16 in /var/www/proyectos/toba_2.5.0/php/nucleo/componentes/interface/toba_ei_cuadro.php on line 299

alguna idea?

gracias!!

Los id de columnas serían los nombres que utilizaste para identificar cada columna del cuadro en el toba_editor.
Viste que, cuando creas un cuadro, hay una pestaña Columnas, donde el primer campo para cada columna es “Columnas()", luego le sigue “Título”, …
Los id de las columnas que tienes que ingresar son los valores que identifican a las columnas y que están en "Columnas(
)”

Por ejemplo:

$columnas = array('tipo_docum','nro_docum');
$cuadro->eliminar_columnas($columnas);

Con ese código, por ejemplo, evitaría que se muestre las columnas referidas al tipo de documento y número de documento.

En el conf del cuadro quito correctamente la columnas pero al exportar a xls se ve como esta actualmente el cuadro osea resumido y no completo.

Hola Agustin,

estas quitando las columnas para todo servicio o unicamente para el que genera el HTML?. Pasteame el metodo conf__ del cuadro por favor, para no especular en el aire y por ahi orientarte mal.

Saludos

    function conf__cuadro_trayectoria(myExport_ei_cuadro $cuadro)
    {
        toba::logger()->debug('Ejecutando servicio Trayectoria');
        //--1- Arma el mensaje
        $opciones = array('action' => 'getTrayectoriaAgente');    //En action se detalla la operacion a invocarse
        $filtro = array();
        
        $valor = "dh03.codc_uacad = ";
        if(count($this->s__filtro['uuaa']['valor']) == 1){
            $valor .= "'".$this->s__filtro['uuaa']['valor'][0]."'";
        }
        else{
                $valor .= "'".$this->s__filtro['uuaa']['valor'][0]."'";
        for ($i = 1; $i < count($this->s__filtro['uuaa']['valor']); $i++) {
            
            $valor .=" OR dh03.codc_uacad = '".$this->s__filtro['uuaa']['valor'][$i]."'";
        }   
     }
            
        //toba::notificacion()->info($valor);
        $filtro = array($valor);
        //toba::notificacion()->info(ei_arbol($filtro[0]));
        $mensaje = new toba_servicio_web_mensaje(array('parametros' => array('filtro' => $filtro )) , $opciones);
        $mensaje = new toba_servicio_web_mensaje($filtro, $opciones);
        //--2- Arma el servicio
        $opciones = array();
        $servicio = toba::servicio_web('ServicioAgentes', $opciones);

        //-- 3 - Muestra la respuesta
        try {
            $respuesta = $servicio->request($mensaje);
            //ei_arbol($respuesta->get_array());    
            $personas = $respuesta->get_array();
            $cuadro->set_datos($personas);    
        }
        catch (toba_error_servicio_web $e) {
            toba::notificacion()->info($e->get_mensaje().' (codigo "'.$e->get_codigo().'")');
        }
        //$columnas = array ('porcdedicdocente','porcdedicinvestig','porcdedicagestion','porcdedicaextens','horassemanales','duracioncontrato','descagrup','tipo_norma','tipo_emite','tipo_norma_baja','tipoemitenormabaja','motivoalta','motivobaja','tipo_incen');
        //$cuadro->eliminar_columnas($columnas);
    }

Hola Agustin,

fijate que vos ahi estas quitando las columnas siempre, para todo pedido de pagina… yo te habia recomendado que lo hicieras unicamente para los servicios que generaban html.

Te esta faltando algo asi al final del metodo, esa eliminacion la tenes que hacer unicamente bajo ciertas situaciones… no siempre.

Saludos

Genio, era eso, solucionado.
Muchas gracias!!