Python - Auxilio. Ayuda para hacer Reportes en Python.

   
Vista:

Auxilio. Ayuda para hacer Reportes en Python.

Publicado por Roberto Matarrita rmatarria@gmail.com (102 intervenciones) el 02/11/2017 17:23:34
Por Dios necesito ayuda urgentemente.
Es que nadie en todas las comunidades hacen reportes en Python. En internet no se dan ejemplos como muy específicos. Tantos años de existir Python y no tiene un reporteador gráfico.

He visto Reportlab, Pandas, Gerarldo y ahora QtRPT. En su mayoría todo hay que hacerlo programado, los pocos gráficos que he visto , no encuentro ejemplos de como pegarlo en Python.


Cómo hacer la impresión de los estados financieros de una empresa, ordenes de compra, transferencias. Por Dios necesito que alguien me oriente, ya que estoy haciendo un proyecto muy importante en todo a lo que se refiere a la parte financiera contable, lo estoy haciendo en Python, con Postgresql y Pyqt5, es de tipo escritorio.

Necesito aprender como imprimir una factura, en formato de hoja normal y como imprimir una factura en un punto de venta, papel pequeño. He aprendido mucho de Python, me he gastado horas de madrugada en el día, investigando, resolviendo errores, estoy contento con el.

Pero por favor alguien que se tome un momento en ver este correo, que me oriente con un buen consejo que me ayude y me diga que camino seguir, donde puedo conseguir un ejemplo concreto de lo que necesito.

Creo que hacer reportes, como cuando comencé a programar, allá por los años 70, que todo era a pie, como que no verdad, donde hacíamos cortes de control, agrupamientos, sumatorios, subtotales y todo eso a pie o programado.

Mucho agradecería la ayuda que me puedan brindar.


Roberto
Costa Rica.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Auxilio. Ayuda para hacer Reportes en Python.

Publicado por numael garay (5 intervenciones) el 18/11/2017 18:29:31
Hola Roberto,
ya probastes PyQtRpt que hace el vinculo con QtRpt atravez de PySide,
https://sourceforge.net/projects/pyqtrpt/
tiene la ventaja de que puedes editar los reportes con su propia herramienta "QtRptDesigner" al estilo cristalreport, en formato xml.
el QtRptDesigner lo descargas de https://sourceforge.net/projects/qtrpt/?source=directory. Elegí el binario de qtrptproject.

necesitas tener instalado python y pyside para que funcione PyQtRpt,
actualmente PyQtRpt funciona para Python 3.4 32bit y PySide 1.2.4 :
https://sourceforge.net/projects/pyqtrpt/files/PyQtRPT_155_package_win32_python34_pyside124.zip/download

pronto subiré soporte para Python 3.5

espero haberte ayudado

Numael
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Auxilio. Ayuda para hacer Reportes en Python.

Publicado por Roberto Matarrita rmatarria@gmail.com (102 intervenciones) el 20/11/2017 02:40:07
Buenas noches Numael, por tu respuesta.
Vieras que si, ya lo tengo instalado en mi máquina y lo estuve utilizando, se ve sencillo. Mis aplicaciones actualmente son tipo escritorio.
He visto ya muchos reporteadores y el problema que tengo es que no me dan un ejemplo de como puedo pegarlo o ejecutarlo desde Python.

Yo uso Pyton 3.5., PYQT5 para hacer las formas. Lo que quiero y me ha costado bastante es un ejemplo, como llamar el reporte desde una aplicación con Phyton. No se si me explico.

Voy a revisar los enlaces que usted me envía y si tiene un ejemplo de lo comentado, sinceramente me va ayudar mucho, ya que debe hacer una gran cantidad de reportes, incluso debo imprimir a una punto de venta y actualmente no se como se hace.

Gracias.
Roberto
Costa Rica.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Auxilio. Ayuda para hacer Reportes en Python.

Publicado por Numael Garay (5 intervenciones) el 20/11/2017 05:57:47
Hola Roberto:

Hay ejemplos sencillos dentro del paquete. Te aconsejo uses el "QtRptDesigner.exe" para diseñar o editar las plantillas o reportes que están en formato xml, encontraras unas de ejemplo en la carpeta "examples_report". Podras elegir el tamaño de Papel o personalizarlo.

por ahora solo tengo paquetes para win32 y linux 64:

si vas a usar PyQtRPT con Python 3.5 en windows necesitaras PySide 1.2.4 compilado con MSVC 2015. no existe un instalador oficial, pero hay uno no-oficial aqui: https://github.com/krrr/PySide/releases/download/1.2.4-1/PySide-1.2.4-cp35-cp35m-win32.whl

recien subi a sf.net el paquete win32 PyQtRPT para Python 3.5:
https://sourceforge.net/projects/pyqtrpt/files/PyQtRPT_155_package_win32_python35_pyside124_msvc2015.zip/download

Suerte!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Auxilio. Ayuda para hacer Reportes en Python.

Publicado por Roberto Matarrita rmatarria@gmail.com (102 intervenciones) el 21/11/2017 04:49:03
Una consulta Numael.. Vi algunos de los ejemplos que me dices en el correo y me parecen muy completos. Pero mis dudas son las siguientes.

Yo puedo pegar el PyQTRP con python, eso es lo que me interesa. Si tuviera un ejemplo de como se hace, sería excelente, es lo que estoy buscando como pegar un reporteador de estos a Python.
Como se hace en ORACLE o VisualFox

Roberto
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Auxilio. Ayuda para hacer Reportes en Python.

Publicado por Numael Garay (5 intervenciones) el 21/11/2017 12:19:37
Cuando dices Pegar a que te refieres?
instalar dentro del directorio "site packages" de Python/lib/
o que lo uses independiente de python creando un ejecutable.?

Pienso que simplemente puedes pegar la carpeta en tu directorio de trabajo, cambiale de nombre en vez de "PyQtRPT_155_package_win32_python35_pyside124_msvc2015" ponle simplemente pyqtrptDIR
y dentro de tu programa invocarias:
from pyqtrptDIR import PyQtRPT

y en otra carpeta organizarias las plantillas o reportes xml ej: reportesDIR

entonces:

from pyqtrptDIR import PyQtRPT
report= PyQtRPT.QtRPT()

report.loadReport("reportesDIR/report1.xml")


Hay que tener encuenta invovar a PySide como muestra el ejemplo y tambien llamar una pequeña aplicacion:
a = QApplication(sys.argv)
form = QDialog()

QtRPT depende mucho del QtGUI

podrias crear un modulo aparte que se encargue de imprimir usando PySide y PyQtRPT, para evitar cruzarte con PyQt5 y PySide


saludos.

Numael
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Auxilio. Ayuda para hacer Reportes en Python.

Publicado por Roberto Matarrita rmatarria@gmail.com (102 intervenciones) el 21/11/2017 18:36:10
Gracias Numael por la respuesta.

Te explico cual es mi problema.
Actualmente estoy desarrollando para un cliente un proyecto financiero, de hecho es mi primer proyecto en Python, las herramientas en que desarrollaba antes tienen su propio reporteador, con lo que no tuve problemas.

Como te comenté el proyecto incluye, cuentas por cobrar y pagar, compras, inventarios, facturación, contabilidad. Como verás debo imprimir una gran cantidad de reportes, unos planos, otros con corte de control y los estados financieros. Ya he ido aprendiendo python en estos meses y actualmente tengo Python 3.5, PYQT5 donde confecciono las formas y postgresql como base de datos.

Que es la idea, tener una forma por ejemplo, con fecha desde, fecha hasta, enviar estos datos como parámetro y que el sistema cargue jasper con el respectivo reporte y me lo muestre en pantalla para que el usuario lo vea. Al igual con la factura, el usuario escoge la factura, el sistema le envía el número de factura al reporteador, se muestra la factura en pantalla y la cajera imprime esta factura, eso es a lo que me refiero con pegar. Quizás debí decir conectar Jasper con Python. Me brindaron un ejemplo, pero me corre el reporte, pero solo me imprime los encabezados y no me imprime la información del cliente, desconozco que es el problema.

Ahora bien, tengo el otro reto, una vez terminada la aplicación nunca he puesto a correr un sistema en Python, por lo tanto no se si se hace el ejecutable y se pone en producción, o bien se puede poner a funcionar el proyecto sin ejecutable.

Espero me entiendas cual es mi idea. En resumen.

1. Hago la forma en PYQT5.
2. Le envío los parámetros desde python.
3. Que se ejecute el reporte en jasper desde python, mostrándose en pantalla.

Finalmente te agradezco mucho tu ayuda, llevo como dos meses buscando quien me ayude, y parece que nadie hace reportes en python, así que no se como son los proyectos. Tu interés ha sido muy valioso para mi persona. Voy a ver la información que me enviaste para ver si logro mi objetivo.

Roberto
Costa Rica.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Auxilio. Ayuda para hacer Reportes en Python.

Publicado por Roberto Matarrita rmatarria@gmail.com (102 intervenciones) el 22/11/2017 03:34:24
Me dio error aquí.
from pyqtrptDIR import PyQtRPT


Roberto
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Auxilio. Ayuda para hacer Reportes en Python.

Publicado por Numael Garay (5 intervenciones) el 22/11/2017 04:48:42
no sabia lo de jasper, primera vez que lo escucho.
parece que necesitaras un server de jasper para poder invocarlo desde python como un cliente.

Si aun quieres indagar en QtRPT
fijate en los ejemplos de como envias los parametros y/o los datos al "reporte maqueta xml".
para que comprendas lo del reporte xml tienes que abrirlo con el QtRPTDesigner. de esa forma podras diseñar y ver las variables.

con QtRPT tienes dos opciones al momento de generar un reporte,
creando un preview: report.printExec(True)
o
creando un archivo PDF : report.printPDF("archivo.pdf",False), que igual, una vez generado lo puedes llamar y terminas visualizando con el acrobat reader

Suerte
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Auxilio. Ayuda para hacer Reportes en Python.

Publicado por Roberto Matarrita rmatarria@gmail.com (102 intervenciones) el 23/11/2017 04:14:57
Buenas Numael. Gracias por la respuesta.
Se ve que has usado QtRPT

Yo he visto los ejemplos que dices, los he listado y tratar de comprender la lógica, todo eso está bien. Pero aquí está el problema.

Si yo tengo una forma en Python, hecha en PYQT5, con fecha desde y fecha hasta, como parámetros. Como haría para:
1. Invocar el reporte y se viera por pantalla.
2. Como envío los parámetros.

Estos son mis inconvenientes.

No se si me explico.

Y agradezco mucho tu ayuda.
Roberto.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Auxilio. Ayuda para hacer Reportes en Python.

Publicado por Numael Garay (5 intervenciones) el 27/11/2017 03:17:55
Hola,

Si tienes la forma o el form creado ¿con el QtDesigner?...¿un archivo .ui?, ¿ya convertistes el archivo .ui a .py?...

Suponiendo que tengas un boton para generar el evento de ver el reporte, y suponiendo que has enlazado o conectado el evento "clicked" de este boton con una funcion, seria un ejemplo este codigo:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
def __init__(self, parent=None):
 
    ...
 
    reporteButton = QPushButton("Ver Reporte1")
    reporteButton.clicked.connect(self.verReporte1)
 
    ...
 
def verReporte1(self):
 
    from PySide.QtGui import *
    import PyQtRPT
 
    report= PyQtRPT.QtRPT()
 
    report.loadReport("dirReportes/example1.xml")
 
    report.setActivedSignal(False)
 
    table=[
        {"NN":1, "Goods":"g0", "Quantity":10, "Price":100, "Sum":1000},
        {"NN":2, "Goods":"g1", "Quantity":20, "Price":200, "Sum":4000},
        {"NN":3, "Goods":"g2", "Quantity":30, "Price":300, "Sum":9000}
    ]
    mapOne={
            "customer":"jean",
            "date":"30/12/15",
            "image":""
        }
 
    report.setTableMap([table], mapOne)
    report.recordCount =[len(table)]
 
    report.printExec(True)

los datos de la variable table los llenarías vos dependiendo de tus datos extraídos de la base de datos según tus fechas y dependiendo de como diseñaste el xml en QtRPTDesigner.

Suerte
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Auxilio. Ayuda para hacer Reportes en Python.

Publicado por Roberto Matarrita rmatarria@gmail.com (102 intervenciones) el 27/11/2017 05:46:28
Buenas noches Numael, gracias por la respuesta.
Voy a probar el código que me envías. Creo que cargar la tabla está sobrando, ya que el reporte es el que se encarga de generar la información y presentarla. Haré unas pruebas y te estaré escribiendo como me fue. solo que en ese ejemplo no se como llamar el reporte y enviarle parámetros.

Y como siempre muchas gracias por tu ayuda.

Roberto
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Auxilio. Ayuda para hacer Reportes en Python.

Publicado por Roberto Matarrita rmatarria@gmail.com (102 intervenciones) el 22/11/2017 05:42:10
Te comento amigo, que también estaba utilizando jasperreport, pero no había forma. Ya logré conectar python y jasper.
Ahora tengo que ver como le hago para enviarle parámetros y se ejecute el reporte y también que lo pueda ver primero en pantalla, ya que lo graba directamente a la carpeta de destino.


Roberto
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar