Python - Reporte se Muestra en Pantalla pero me saca la Aplicación.

 
Vista:
sin imagen de perfil
Val: 246
Ha disminuido 1 puesto en Python (en relación al último mes)
Gráfica de Python

Reporte se Muestra en Pantalla pero me saca la Aplicación.

Publicado por Roberto (106 intervenciones) el 04/12/2017 06:07:42
Tengo el siguiente código. Permite confeccionar un reporte en PDF, hecho en JasperReport. Todo lo hace casi perfecto, confecciona el reporte, lo levanta a la pantalla, pero cuando hace eso, me saca la aplicación que lo esta invocando. La aplicación está confeccionada en PYQT5 y el reporte se carga dando click en un botón. Desconozco el porqué saca la aplicación.

Mucho agradecería la ayuda y resolución del problema.

Gracias.
Roberto.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
input_file = os.path.dirname(os.path.abspath(__file__)) + '/report4.jrxml'
output = os.path.dirname(os.path.abspath(__file__)) + '/reportes'
print(output)
con = {
'driver': 'postgres',
'username': 'postgres',
'password': 'Administra8080',
'host': 'localhost',
'database': 'municipal',
'port':'5432'
}
x=input("Digite codigo de empleado :")
 
jasper = JasperPy()
jasper.process(input_file,output_file=output,format_list=["pdf"], parameters={'idenifica': (x)},db_connection=con)
#os.remove(fname)
#subprocess.Popen([file],shell=True)
 
webbrowser.open_new(r'file://'+ output + '.pdf')
os.startfile(filename)
os.system(filename)

Después de que levanta el browser, elimina la aplicación.
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
Imágen de perfil de algoritmo
Val: 819
Bronce
Ha mantenido su posición en Python (en relación al último mes)
Gráfica de Python

Reporte se Muestra en Pantalla pero me saca la Aplicación.

Publicado por algoritmo (245 intervenciones) el 04/12/2017 20:38:11
Hola

No conozco Jasperpy, pero en tu fila 21 finaliza el programa. No está dentro de ningún bucle, por lo que es normal que termine.

Saludos
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
sin imagen de perfil
Val: 246
Ha disminuido 1 puesto en Python (en relación al último mes)
Gráfica de Python

Reporte se Muestra en Pantalla pero me saca la Aplicación.

Publicado por Roberto (106 intervenciones) el 04/12/2017 21:48:40
Eso es lo que no entiendo. En otros lenguajes yo envió la impresión y nada más. Digito los parámetros y ejecuto ,el reporte.

Aquí si necesito una guía. Yo incluyo el programa en un bucle, pero la duda es:
1. Ingresa el programa
2. Se cargan los parámetros.
3. Se hace el reporte.
4. Se levanta el browser.
Y entonces como termino el bucle. Supongamos que el usuario esta observando el reporte en la pantalla.

Agradezco mucho la ayuda que me puedas brindar, soy nuevo en programación python.

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
Imágen de perfil de algoritmo
Val: 819
Bronce
Ha mantenido su posición en Python (en relación al último mes)
Gráfica de Python

Reporte se Muestra en Pantalla pero me saca la Aplicación.

Publicado por algoritmo (245 intervenciones) el 04/12/2017 23:50:11
Hola de nuevo.

A ver si logro entender lo que me dices.
Dices que quieres imprimir. Bien
Tu programa básicamente hace 2 cosas:
1) Genera un fichero pdf
2) Lo abre. Por cierto, lo abres de 3 formas diferentes. Puedes ahorrarte 2 de ellas. Las 3 últimas filas hacen prácticamente lo mismo que no es otra cosa que decirle al sistema operativo que abra ese fichero pdf

En ningún caso lo lanzas a impresora.

No se si lo que quieres es lanzar directamente a impresora sin abrir previamente el pdf con un visor. Si es eso, te sobran esas 3 filas (no es necesario ver el fichero con el visor) y te falta la instrucción para enviar ese fichero de forma directa a la impresora.

No se si te ayudará. Rebuscando he encontrado una instrucción que utilicé hace tiempo, pero que hacía las 2 cosas: abría el visor y lo lanzaba a impresora. Pruébala, a ver si hay suerte:

1
2
3
import os
cmd = 'start acrord32 /t %s' % filename
os.system(cmd)

Lógicamente, sólo sirve para Windows y debe encontrar el fichero acrord32.exe, que forma parte de acrobat reader

Espero te sirva. Un saludo :)
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
sin imagen de perfil
Val: 246
Ha disminuido 1 puesto en Python (en relación al último mes)
Gráfica de Python

Reporte se Muestra en Pantalla pero me saca la Aplicación.

Publicado por Roberto (106 intervenciones) el 05/12/2017 00:35:42
Gracias Algoritmo, por tu respuesta y las ganas de ayudarme.
Te comento ya solucioné el problema, más abajo tenía unas instrucciones que estaban mal escritas, cuando el programa llegaba ahí, abortaba, ese era el problema, las quité y listo.

En cuanto a que el programa abre, tres veces el pdf, es correcto, yo llevo poco tiempo en python y desconocía lo que hacían, quité dos y dejé una sola.
En cuanto a imprimir, directamente a la impresora, te comento, el proyecto que estoy realizando debe -hacer eso, se prepara la orden de producción y se tiene que imprimir en dos impresoras sin que el usuario escoja la impresora, es decir, directamente.

Lo que me escribes voy a probarlo ,ya que también debo imprimir a una impresora punto de venta.

Te agradezco la ayuda y nos estamos comunicando.

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