[pyar] Reportes profesionales en python

Wuelfhis Asuaje wasuaje en hotmail.com
Vie Jun 21 12:51:17 ART 2013


> Message: 4
> Date: Thu, 20 Jun 2013 15:54:10 -0400
> From: Wuelfhis Asuaje <wasuaje en hotmail.com>
> To: Pytho Argentina <pyar en python.org.ar>
> Subject: [pyar] Reportes profesionales en python
> Message-ID: <BAY155-W124E43A32E7A39AE346510B18E0 en phx.gbl>
> Content-Type: text/plain; charset="iso-8859-1"
> 
> Saludos a todos
> Les molesto para saber en la actualidad con que herramienta estan "reporteando", estoy trabajando con python hace 4 años pero no me convence fpdf (ni nada parecido) reportlab (ni nada parecido). Me gustaria una en que abra un diseñador grafico colo mis encabezados, grupos, detalles, pie de pagina y luego de alguna manera le mande el query o la data o lo que sea y salga el reporte como lo diseñe, tomando en cuanta saltos de paginas de grupos etc.
> 
> Espero no pedir demasiado
> 
> gracias

Como decimos en Venezuela, me voy a pagar y dar el vuelto: es decir,  miren lo que consegui:
http://community.jaspersoft.com/project/ireport-designer

Se llama ireport, un diseñador grafico a todo dar, se conecta a la bbdd, le pasas el query, te muestra los campos los pones donde quieras.

El te genera un reporte.jasper

Luego descargue :
http://jasperstarter.sourceforge.net/
Jasper stater

Es capaz de mostrar el reporte en una buena cantidad de formatos

El unico prerequisito que tiene es el jdbc driver de tu bbdd, que tiene que ser copiado en una carpeta del jasperstarter

Desde la linea de comando seria:

jasperstarter/bin/jasperstarter pr -t mysql -H localhost -u root -p pass -n dbtest -f pdf -i mireporte.jasper && evince mireporte.pdf

y funciona excelente.

Ahora, en otro nivel, integrando con web2py
en un controller

def report():

    import subprocess
    ruta='/home/wasuaje/Documentos/desarrollo/web2py5/applications'
    reporter=ruta+URL('static/jasperstarter/bin','jasperstarter')
    report=ruta+URL('static/reports','reporte.jasper')
    reportpdf=URL('static/reports','reporte.pdf')
    cmd='%s pr -t mysql -H localhost -u root -p pas -n dbtest -f pdf -i %s' % (reporter,report)
    p = subprocess.Popen(cmd, shell=True, stdout=subprocess.PIPE)
    return dict(report=reportpdf)

En mi view

{{extend 'layout.html'}}

{{=A('Productos',_href=report)}}

Un simple link a mi archivo pdf generado y voilá !

Ahora, me gustaria sus comentarios al respecto !





 		 	   		  
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.python.org.ar/pipermail/pyar/attachments/20130621/a08c88a3/attachment.html>


More information about the pyar mailing list