En la consulta Gastos → Listado y consultas → Ejecución presupuestaria → Ejecución presupuestaria, al intentar exportar los datos de Septiembre del 2009 a xls, nos tira el siguiente error:
Fatal error: Allowed memory size of 536870912 bytes exhausted (tried to allocate 68 bytes) in C:\SIU\SIU-Pilaga\php\3ros\phpExcel\PHPExcel\Style.php on line 121
En el php.ini, hemos incrementado el valor del parámetro memory_limit hasta llegar a 512 y aún así no se puede generar el xls.
Esto lo debemos reportar como bug o la configuración del parámetro memory_limit debería ser mayor?
Por lo que veo, el mensaje es coherente con el valor del parámetro “memory_limit” que me comentas(ya que si dividis ese número por 1024 2 veces te da 512). Antes de asignar más memoria, te pido que te fijes si podes acortar un poco más el listado para exportarlo nuevamente (filtrando mas eficientemente).
A la hora de asignar más memoria, hay que tener en cuenta cuanta tenés disponible en el servidor para no obligar al SO a trabajar tanto con los discos. Otra de las razones para no aumentar demasiado el tamaño de memoria reservada por un script, es que en el caso de un bug o de una falla de diseño, nos podemos quedar sin memoria rápidamente.
La consulta no permite seleccionar muchos mas filtros que año, mes y totales mensuales o acumulados. Probando con las opciones de totales, sigue dando error. No hay muchas opciones para acotar la consulta.
Tenés razón, la verdad es que nunca había usado ese listado, es demasiado largo y lento. Una de las cosas que se puede hacer es paginar el cuadro para “partir” el listado en varias hojas (para usar menos memoria, aparte de que carga mas rápido). Esto lo podés hacer desde el toba editor, desde las propiedades básicas del cuadro, seleccionando la opción “Paginar”. Después vas exportando las páginas que te interesen y las pegas hasta armar la planilla que quieras. Es engorroso, pero sirve y así evitas la modificación del uso de memoria.
El único problema es que para la próxima actualización de Pilagá, este cambio se pierde. En el caso de que te sirva, lo que podés hacer es subir un ticket para pedir el cambio, fundamentando con todo esto que estamos hablando.