Hola a todos, estoy sin poder resolver la siguiente cuestión:
Tengo un cuadro con la opción de exportar a excel seteada desde las propiedades básicas (se permite la exportación a excel plana y común). Según el servicio solicitado, es el manejador de salidas que utilizo, ya que tengo que formatear los datos a exportar, para esto utilizo este método
set_manejador_salida
Hasta ahí todo bien para ambas exportaciones (plana y común).
El problema se me presenta al momento de agregar un corte de control al cuadro e intentar hacer la exportación común, el excel se rompe, arrojando errores varios.
¿Qué tengo que hacer para que el corte de control sea agregado como una nueva fila en excel?
1 - La subclase tiene como padre a toba_ei_cuadro_salida_excel.
2 - El corte de control es agregado vía editor.
Explico un poco más el funcionamiento de la operación: el reporte tiene la opción de ser exportado a excel, para lo cual se utiliza otro manejador de salida, lo hago de la siguiente manera:
, para hacer una serie de cálculos. Si dejo a la función excel_cuadro tal como está originalmente la exportación con los cortes de control funciona correctamente pero obviamente sin los cálculos que yo necesito.
En conclusión: la exportación se rompe con los cambios que agrego en la función
excel_cuadro
Si te parece te puedo adjuntar el php de la clase.
la variable $totales, quedo por compatibilidad con las versiones anteriores y se usa unicamente cuando no hay cortes y se totalizan columnas segun definicion. En ese caso el total se puede incluir dentro de la misma tabla o en una hoja aparte al finalizar el excel.
Por otra parte, supongo que las sumas que haces son lo suficientemente complicadas como para que no te alcance con el esquema de sumarizacion de usuario (Creo que no esta en la wiki… pero en el ejemplo del proyecto toba_referencia sobre cortes, esta seguro), ademas si estuviste mirando la clase toba_ei_cuadro seguro ya viste el metodo inspeccionar_sumarizaciones_usuario.
En ese caso, la idea es que en $nodo ya tenes la suma para ese conjunto de filas de acuerdo a las funciones que definiste en la subclase de ei_cuadro y que te servirian para todas las salidas.
Te iba a pedir que me subieras el codigo de ese metodo, asi que si lo tenes a mano mejor… de esa forma te puedo orientar con mas precision.
me parece que en la subclase del ei_cuadro podrias definir una funcion sumarizar__XX donde realizarias los calculos que estas metiendo dentro de excel_cuadro, te conviene eso.
Esta funcion (excel_cuadro) cuando existen cortes de control, solamente recibe un subgrupo de las filas, vos necesitas trabajar sobre todas, asi que ese lugar no te sirve. Ademas, puesto asi terminas recalculando el total 1 vez por cada corte de control, lo que te lo haria muy ineficiente.
Esta un poco confuso el tema de los totales, fijate que hay una funcion excel_cuadro_totales_columnas que se llama en 2 momentos especificos y que trabaja con la funcion get_fila_totales, en tu caso estarias sacando un total por hoja?.
Por ahi te estas complicando de gusto, esa clase se intento hacer bastante granular como para que tuvieras que redefinir lo menos posible. La idea es que los calculos y manipulacion de datos se haga en toba_ei_cuadro y subclases… y las toba_ei_cuadro_salida_xx solo hagan la presentacion de lo calculado antes.