Realizar exportacion a excel de un cuadro sin cortes de control

Hola a todos, estoy necesitando exportar a excel un cuadro que contiene cortes de control, y necesito que los cortes no aparezcan como tal sino como una nueva columna al final del cuadro. Si bien tengo entendido, extendiendo el cuadro y agregando el método set_vista_excel_sin_cortes(true) debería hacerlo.
Lo hice, incluso me aparece un nuevo ícono para exportar a excel sin cortes de control, pero al ejecutar la exportación me la hace con los cortes de control, ¿hay algún paso que deba hacer o estoy omitiendo alguno?

Estoy trabajando con la versión 2.1 de Toba.

Espero sus comentarios.

Gracias!
Alejandro.

Hola Alejandro,

en realidad no necesitas extender el cuadro para conseguir que el cuadro salga sin cortes en la exportacion excel.

Con hacer una llamada $cuadro->set_vista_excel_sin_cortes(true);, durante el metodo de configuracion del cuadro deberia alcanzarte.

Lo que podrias hacer en algun caso en esa extension, es ver si se llama el metodo aplanar_cortes_control que es el que genera la/s columna/s extras que pertenecen a los cortes.
El porque te digo esto, es porque veo que mencionas que te aparece el icono pero que cuando lo clickeas te hace la exportacion comun.

Saludos

Richard, gracias por tu respuesta.
Es raro lo que hace pq, como te decía antes, el ícono se agrega pero al realizar la exportación no la agrega como una nueva columna.
Probé agregar en la extensión del cuadro el método “aplanar_cortes_control” (en la funcion ini()), y lo que hizo fue agregar una nueva columna en el cuadro, no se cómo debería hacer sino para ver si se está llamando o no ese método.

Es raro lo que pasa, hay que tener en cuenta que este proyecto viene migrado desde la versión 1.5.6 siguiendo los pasos detallados por uds.

Saludos.
Alejandro.

Hola Alejandro,

por lo que comentas, pareciera ser que no se esta llamando la funcion aplanar_cortes_control cuando se instancia el cuadro.
Esa funcion se llama por intermedio de analizar_cortes_excel en el constructor del ei_cuadro, para saber si se llama o no podes hacer lo siguiente:


function aplanar_cortes_control()
{
     var_dump('Se deberia romper el formato excel con esto, estoy exportando sin cortes');
     parent::aplanar_cortes_control();
}

Abriendo el excel con un notepad o similar, deberias ver el mensaje al ppio de todo si es que paso por ahi.

Es raro lo que pasa, hay que tener en cuenta que este proyecto viene migrado desde la versión 1.5.6 siguiendo los pasos detallados por uds.

Si la subclase se esta tomando bien y no hay codigo extra que este interfiriendo… (como una redefinicion de algun metodo que no este llamando al parent), no deberia haber inconvenientes.

Saludos

Richard
Efectivamente, no está llamando la funcion aplanar_cortes_control, agregué el código que me diste y la exportación se sigue haciendo sin errores pero con los cortes de control, por lo tanto no pasa por ahí. Es muy raro, pq probé hacer lo mismo en otro proyecto de la misma versión y tampoco funciona, podrá ser algún problema que tengo en la instalación de la versión de TOBA? Porque además no agregué código extra en la subclase del cuadro.

Saludos.

Richard, otra cosa rara con respecto a los cuadros es que no funciona el ordenar, al hacer clic sobre el ícono que se agrega al tildar en las Propiedades Básicas del componente no hace nada ni carga nada (mirando el log queda como si no se hubiese hecho ningún clic).
Otra cosa rara es que al extender un cuadro y modificar por ejemplo las leyendas que se agregan en los cortes de control tampoco las muestra, por lo tanto debo tener un problema con las extensiones de los cuadros.
Es muy raro.

Saludos.
Alejandro.

Hola Alejandro,

puede ser que en la version que tenes vos le este faltando hacer la llamada en el constructor del cuadro, no se puntualmente en que revision estas asi que puede ser que quizas este faltando eso.

Te referis al icono que aparece sobre la izquierda en el margen superior del cuadro, dicho icono deberia mostrarte un overlay con un formulario para seleccionar las columnas y el orden por cada una, si no te esta surgiendo… quizas se deba a algun error en JS, si tenes a mano Firebug podrias verificar si hay algun error cuando se termina de cargar la pagina o cuando clickeas dicho icono?

Otra cosa rara es que al extender un cuadro y modificar por ejemplo las leyendas que se agregan en los cortes de control tampoco las muestra, por lo tanto debo tener un problema con las extensiones de los cuadros.

Tene en cuenta que en la version 2.1 hubo un cambio en la forma que el cuadro maneja la generacion del contenido, el mismo se separo en varias clases, hice todo lo posible para que el cambio fuera transparente… pero quizas me pase por alto algo. Si tenes una captura mandamela, asi veo bien a que leyendas te referis.

Saludos

puede ser que en la version que tenes vos le este faltando hacer la llamada en el constructor del cuadro, no se puntualmente en que revision estas asi que puede ser que quizas este faltando eso.

Richard, para que funcionen las exportaciones a excel sin cortes le agregué la siguiente instrucción en

final function __construct($id)
$this->analizar_cortes_excel();

ya que por lo menos en mi revisión no estaba definida.

Al intentar hacer clic en el ordenar del cuadro me lanza un error JS:

TypeError: contenedor is null
[Interrumpir en este error]

contenedor.onkeypress = function (e) {

Luego te paso unas capturas de pantallas de los cuadros donde no se muestran las leyendas en el pie de los cortes de control.

Saludos.
Alejandro.

Hola Alejandro,

el tema es que ahi te va a reventar porque el constructor no se puede extender ya que esta declarado como final.
Segun veo, el bug se corrigio en la version 2.1.2 de Toba… si te podes actualizar a dicha version no deberias tener inconvenientes, la actualizacion deberia ir sin problemas ya que en su mayoria son arreglos de bugs encontrados. Fijate, cualquier cosa seguimos a partir de ahi.

Al intentar hacer clic en el ordenar del cuadro me lanza un error JS:

TypeError: contenedor is null
[Interrumpir en este error]

contenedor.onkeypress = function (e) {

Luego te paso unas capturas de pantallas de los cuadros donde no se muestran las leyendas en el pie de los cortes de control.


Ese es un error JS, asi que seguramente tenga que ver con lo de mas arriba… quedo algo en el fuente que rompio el JS.

Saludos

Ok, me voy a actualizar a esa versión.
¿El proyecto lo debería cargar directamente en la nueva versión, pq solo hay cambios del tercer dígito no?

Gracias Richard.
Saludos.

Hola Alejandro,

no deberias tener que realizar ningun cambio en ppio, por ser un cambio de tercer digito deberia ir todo sobre ruedas.

Cualquier cosa chifla!.

Saludos