<div dir="ltr">Yo tampoco soy ningun quinceañero; tengo 55 años. y mas de 35 programando ;)<div><br></div><div>En cuanto al codigo le digo que YO NO HE COMPROBADO PARA NADA EL CODIGO QUE UD ME ENVIO, ni lo que yo le recomende, asi que a Ud le dejo comprobar lo que le explico.<br><div><br></div><div>Primero que nada, al final del programa tiene:</div><div><div style="font-size:12.8px"> webbrowser.open_new(r'file://'<wbr>+ output + '.pdf')</div><div style="font-size:12.8px"> os.startfile(filename)</div><div style="font-size:12.8px"> os.system(filename)</div><div><br></div><div>Hasta donde se, cada una de esas lineas va a intentar abrir el archivo. Pruebe Ud. a ver cual es la linea que en definitiva lo esta haciendo y elimine los que redundan o son simplemente inutiles.</div><div><br></div><div>Esta es mi propuesta (Le dejo a UD probarla y demostrarla):</div><div><br></div><div><div># #######################################################</div><div>input_file = os.path.dirname(os.path.abspath(__file__)) + '/report4.jrxml'</div><div>output = os.path.dirname(os.path.abspath(__file__)) + '/reportes'</div><div>print(output)</div><div>con = {</div><div> 'driver': 'postgres',</div><div> 'username': 'postgres',</div><div> 'password': 'Administra8080',</div><div> 'host': 'localhost',</div><div> 'database': 'municipal',</div><div> 'port':'5432'</div><div>}</div><div><br></div><div>while True:</div><div> x = input("Digite codigo de empleado (ó [SALIR] para terminar): ")</div><div> if x.lower() = 'salir'.lower():</div><div> break</div><div><br></div><div> #="8"</div><div> jasper = JasperPy()</div><div> jasper.process(input_file,output_file=output,format_list=["pdf"], parameters={'idenifica': (x)},db_connection=con)</div><div> #os.remove(fname)</div><div> #subprocess.Popen([file],shell=True)</div><div><br></div><div> #webbrowser.open_new(r'file://C:\manteminiento\to\reportes.pdf')</div><div> webbrowser.open_new(r'file://'+ output + '.pdf')</div><div> os.startfile(filename)</div><div> os.system(filename)</div></div><div># #######################################################<br></div></div></div><div><br></div><div>Los cambios mas notables son las lineas 13 a la 16, pero tambien es importante que note la indentacion de las lineas 13 en adelante.</div><div><br></div><div>Con los cambios propuestos, el archivo PDF se abr mientras su programa vuelve a ejecutar el loop hasta que el usuario intencionalmente introduzca la palabra 'salir'.</div><div><br></div><div>Y por cierto, y en particular para gallos jugados como Ud y yo, la mejor forma que tengo de describir la experiencia con Python es esta:</div><div><br></div><div><img src="cid:ii_jaspnpbs0_1602370eaeca7a4e" width="416" height="472"><br><br></div><div>Un abrazo!<br></div></div><div class="gmail_extra"><br clear="all"><div><div class="gmail_signature" data-smartmail="gmail_signature"><div dir="ltr"><div><div dir="ltr"><br style="font-size:12.8px"><span style="font-size:12.8px">Dtb/Gby</span><div style="font-size:12.8px">=======<br>Mario R. Osorio<br></div><div style="font-size:12.8px">A.S. of Computer Programming and Analysis<br></div><div style="font-size:12.8px">Web page: <b><a href="http://http%3B//mario.osorio.solutions" target="_blank">http;//mario.osorio.solutions</a></b></div><div style="font-size:12.8px">Email: <a href="mailto:mario@osorio.solutions" target="_blank"><b>mario@osorio.solutions</b></a></div><div style="font-size:12.8px"><div style="font-size:12.8px"><a href="http://www.gentoogeek.org/files/choose_python.pdf" style="font-size:13px" target="_blank"><b>Just Choose Python!</b></a></div><div><br><span style="font-size:13px">“If I had asked people what they wanted, they would have said faster horses.”</span></div><div style="font-size:12.8px"><span style="font-size:13px"> ― Henry Ford</span></div><div style="font-size:12.8px"><span style="font-size:13px"><br></span></div><div style="font-size:12.8px"><img src="https://docs.google.com/uc?export=download&id=0B1jxPoiqfNkkOEkxTG9VNTl5YVk&revid=0B1jxPoiqfNkkSVJaYTYvdHdZaEcwSnpUMFFYVE9hajlTWXgwPQ" width="200" height="128" style="font-size:12.8px"><img src="https://docs.google.com/uc?id=0B1jxPoiqfNkkcEk2ZUlBc1d3Vm8&export=download" width="200" height="127" style="font-size:12.8px"></div><div style="font-size:12.8px"><span style="font-size:12.8px"><img src="http://mario.osorio.solutions/FIXEDimages/web_foundations_assoc.jpg" width="200" height="175"> </span><img src="https://docs.google.com/uc?export=download&id=0B1jxPoiqfNkkbzZ5RHNTWkxUUjQ&revid=0B1jxPoiqfNkkYXIyN0dBMmcwRk1DNGpYeFBvcnU3bExTKzg4PQ" style="font-size:12.8px"><span style="font-size:12.8px"> </span></div></div><div style="font-size:12.8px"><br></div><div style="font-size:12.8px"><span style="font-size:12.8px"> </span><span style="font-size:12.8px"> </span></div><div style="font-size:12.8px"><a href="http://goo.gl/t2Hzgo" target="_blank"><img src="https://docs.google.com/uc?export=download&id=0B1jxPoiqfNkkRDVXWHpDUjhIbmM&revid=0B1jxPoiqfNkkcVdLOFlVZ3hXYkRCRldITjlLSk11L3p4WEY4PQ" width="420" height="57"></a></div><div style="font-size:12.8px"><img src="https://www.linuxcounter.net/cert/589006.png" width="200" height="100"><span style="font-size:12.8px"> <a href="https://m.do.co/c/63e2415dab7b" target="_blank"><img src="https://docs.google.com/uc?export=download&id=0B1jxPoiqfNkkcjROSjlkOVJ0T0k&revid=0B1jxPoiqfNkkYUoxL21GRjBQSVhDQkxBMGkxYVVPYjdBNjFJPQ" width="200" height="125"></a></span></div></div></div></div></div></div>
<br><div class="gmail_quote">2017-12-04 15:48 GMT-05:00 Roberto Matarrita <span dir="ltr"><<a href="mailto:rmatarria@gmail.com" target="_blank">rmatarria@gmail.com</a>></span>:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">Buenas tardes Don Mario.<div>Primero que nada quiero agradecerle enormemente la ayuda que usted me ha brindado en este problema de los reportes. A excepción de un brasileño que me envió un poco de información, nadie, pero nadie a podido ayudarme con el tema de los reportes. Realmente y de todo corazón yo le agradezco toda la ayuda. Le comento estoy metido en una bronca grande como decimos por acá en Costa Rica. Jjajajajajaja. Estoy diseñando un sistema financiero que me contrataron y es bastante grande, lleva una buena cantidad de reportes, incluso debo hacer impresiones directas a dos impresoras sin intervención de la persona, es decir deben salir directamente a unas impresoras de producción. Bueno ya veré como hago eso en su momento. Realmente yo he estado toda mi vida en esto, ya tengo 60 años y sigo programando porque me gusta mucho. Este lenguaje es nuevo para mi, he ido aprendiendo mucho, poco a poco pero ahí voy.</div><div><br></div><div>Tengo un par de preguntas sobre lo que me escribió.</div><div><br></div><div>1. Si es cierto lo que me dice , no se ha terminado de alzar el PDF, cuando el programa se termina. Lo que no entiendo es como hacer para que el ciclo se termine, ya que usted me indica que debo de incluir dentro de un ciclo mi programa. O sea no se en que momento debo disparar la instrucción para que este se salga del ciclo.</div><div><br></div><div>2. Me comenta que estoy abriendo de tres formas diferentes mi PDF. Desconozco totalmente este tema, si me guía un poco sobre el tema yo haré lo posible por solucionar el problema.</div><div>3. Finalmente gracias por la recomendación de la clave de la base de datos, está buena la observación para futuras publicaciones. Actualmente el proyecto lo trabajo en una portátil, fuera del ambiente de producción, el cual se encuentra en otro lugar.</div><div><br></div><div>Muchas gracias.</div><span class="HOEnZb"><font color="#888888"><div><br></div><div>Roberto</div><div><br></div></font></span></div><div class="HOEnZb"><div class="h5"><div class="gmail_extra"><br><div class="gmail_quote">El 4 de diciembre de 2017, 8:22, Mario R. Osorio <span dir="ltr"><<a href="mailto:nimbiotics@gmail.com" target="_blank">nimbiotics@gmail.com</a>></span> escribió:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">Buen dia Roberto,<div><br></div><div>Claro que tiene que salirse. El llamado para abrir el archivo PDF (que por cierto, veo que lo estas abriendo de 3 maneras diferentes cuando solo necesitas una) es asíncrono (NO bloqueador), por lo cual la ejecución de tu programa NO se detiene y continua hasta el fin del archivo por lo cual se termina incluso muy seguramente antes de que el archivo PDF haya sido abierto.</div><div><br></div><div>El estilo lo eliges tu, pero tienes que poner tu codigo en un loop para que no se salga sino hasta que tu asi lo desees. (while?)</div><div><br></div><div><b><font size="6" style="background-color:rgb(255,0,0)" color="#ffff00">POR CIERTO, AL ESCRIBIR TU ULTIMO MENSAJE EXPUSISTE LA CONTRASEÑA DEL ADMINISTRADOR DE TU BASE DE DATOS, por lo que te recomiendo altamente que la cambies inmediatamente.</font></b></div><div class="gmail_extra"><br clear="all"><div><div class="m_-7381348950293284763m_-2263788100266953732gmail_signature" data-smartmail="gmail_signature"><div dir="ltr"><div><div dir="ltr"><br style="font-size:12.8px"><span style="font-size:12.8px">Dtb/Gby</span><div style="font-size:12.8px">=======<br>Mario R. Osorio<br></div><div style="font-size:12.8px">A.S. of Computer Programming and Analysis<br></div><div style="font-size:12.8px">Web page: <b><a href="http://http%3B//mario.osorio.solutions" target="_blank">http;//mario.osorio.solu<wbr>tions</a></b></div><div style="font-size:12.8px">Email: <a href="mailto:mario@osorio.solutions" target="_blank"><b>mario@osorio.solutions</b></a></div><div style="font-size:12.8px"><div style="font-size:12.8px"><a href="http://www.gentoogeek.org/files/choose_python.pdf" style="font-size:13px" target="_blank"><b>Just Choose Python!</b></a></div><div><br><span style="font-size:13px">“If I had asked people what they wanted, they would have said faster horses.”</span></div><div style="font-size:12.8px"><span style="font-size:13px"> ― Henry Ford</span></div><div style="font-size:12.8px"><span style="font-size:13px"><br></span></div><div style="font-size:12.8px"><img src="https://docs.google.com/uc?export=download&id=0B1jxPoiqfNkkOEkxTG9VNTl5YVk&revid=0B1jxPoiqfNkkSVJaYTYvdHdZaEcwSnpUMFFYVE9hajlTWXgwPQ" width="200" height="128" style="font-size:12.8px"><img src="https://docs.google.com/uc?id=0B1jxPoiqfNkkcEk2ZUlBc1d3Vm8&export=download" width="200" height="127" style="font-size:12.8px"></div><div style="font-size:12.8px"><span style="font-size:12.8px"><img src="http://mario.osorio.solutions/FIXEDimages/web_foundations_assoc.jpg" width="200" height="175"> </span><img src="https://docs.google.com/uc?export=download&id=0B1jxPoiqfNkkbzZ5RHNTWkxUUjQ&revid=0B1jxPoiqfNkkYXIyN0dBMmcwRk1DNGpYeFBvcnU3bExTKzg4PQ" style="font-size:12.8px"><span style="font-size:12.8px"> </span></div></div><div style="font-size:12.8px"><br></div><div style="font-size:12.8px"><span style="font-size:12.8px"> </span><span style="font-size:12.8px"> </span></div><div style="font-size:12.8px"><a href="http://goo.gl/t2Hzgo" target="_blank"><img src="https://docs.google.com/uc?export=download&id=0B1jxPoiqfNkkRDVXWHpDUjhIbmM&revid=0B1jxPoiqfNkkcVdLOFlVZ3hXYkRCRldITjlLSk11L3p4WEY4PQ" width="420" height="57"></a></div><div style="font-size:12.8px"><img src="https://www.linuxcounter.net/cert/589006.png" width="200" height="100"><span style="font-size:12.8px"> <a href="https://m.do.co/c/63e2415dab7b" target="_blank"><img src="https://docs.google.com/uc?export=download&id=0B1jxPoiqfNkkcjROSjlkOVJ0T0k&revid=0B1jxPoiqfNkkYUoxL21GRjBQSVhDQkxBMGkxYVVPYjdBNjFJPQ" width="200" height="125"></a></span></div></div></div></div></div></div>
<br><div class="gmail_quote">2017-12-04 1:29 GMT-05:00 Roberto Matarrita <span dir="ltr"><<a href="mailto:rmatarria@gmail.com" target="_blank">rmatarria@gmail.com</a>></span>:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div>Buenas noches Don Mario. Disculpe que le moleste, tengo un problema con respecto al código para levantar el PDF. Todo lo hace casi perfecto, pero cuando ejecuto el reporte desde la forma, me lo levanta, pero me saca de la forma y tengo que volver a cargarla y ejecutar de nuevo el reporte. Es decir me levanta el browser, pero seguidamente desconecta la forma. Alguna Idea. </div><div><br></div><div>Roberto. </div><div><br></div><div>input_file = os.path.dirname(os.path.abspat<wbr>h(__file__)) + '/report4.jrxml'</div><div> output = os.path.dirname(os.path.abspat<wbr>h(__file__)) + '/reportes'</div><div> print(output)</div><div> con = {</div><div> 'driver': 'postgres',</div><div> 'username': 'postgres',</div><div> 'password': 'Administra8080',</div><div> 'host': 'localhost',</div><div> 'database': 'municipal',</div><div> 'port':'5432'</div><div> }</div><div> x=input("Digite codigo de empleado :")</div><div> </div><div> #="8"</div><div> jasper = JasperPy()</div><div> jasper.process(input_file,outp<wbr>ut_file=output,format_list=["p<wbr>df"], parameters={'idenifica': (x)},db_connection=con)</div><div> #os.remove(fname)</div><div> #subprocess.Popen([file],shell<wbr>=True)</div><div><br></div><div> #webbrowser.open_new(r'file://<wbr>C:\manteminiento\to\reportes.p<wbr>df')</div><div> webbrowser.open_new(r'file://'<wbr>+ output + '.pdf')</div><div> os.startfile(filename)</div><div> os.system(filename)</div><div><br></div><div>Después del browser se sale de la forma.</div></div><div class="gmail_extra"><br><div class="gmail_quote">El 29 de noviembre de 2017, 18:23, Mario R. Osorio <span dir="ltr"><<a href="mailto:nimbiotics@gmail.com" target="_blank">nimbiotics@gmail.com</a>></span> escribió:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">Es para mi un placer poder ayudarte. Yo llevo varios años que no programo en Python, pero es mi lenguage favorito. La funcion popen() esta contenida en la libreria <a href="https://docs.python.org/3/library/subprocess.html" target="_blank"><b>subprocess</b></a>, asi que quizas solo te falte importar esa libreria.<div><br></div><div>Te recomiendo que pruebes las varias formas de abrir el(los) arcchivo(s) ya que algunas podrian tener (d)efectos indeseados. <b>Tengo entendido</b> que la forma mas <i>correcta</i> es utilizando popen(), Pero yo pienso que lo <i>correcto</i>, a veces, esta en contraposicion a lo <i>desado</i>.</div></div><div class="gmail_extra"><br clear="all"><div><div class="m_-7381348950293284763m_-2263788100266953732m_-4359392264139714844m_145701624698718343gmail_signature" data-smartmail="gmail_signature"><div dir="ltr"><div><div dir="ltr"><br style="font-size:12.8px"><span style="font-size:12.8px">Dtb/Gby</span><div style="font-size:12.8px">=======<br>Mario R. Osorio<br></div><div style="font-size:12.8px">A.S. of Computer Programming and Analysis<br></div><div style="font-size:12.8px">Web page: <b><a href="http://http%3B//mario.osorio.solutions" target="_blank">http;//mario.osorio.solu<wbr>tions</a></b></div><div style="font-size:12.8px">Email: <a href="mailto:mario@osorio.solutions" target="_blank"><b>mario@osorio.solutions</b></a></div><div style="font-size:12.8px"><div style="font-size:12.8px"><a href="http://www.gentoogeek.org/files/choose_python.pdf" style="font-size:13px" target="_blank"><b>Just Choose Python!</b></a></div><div><br><span style="font-size:13px">“If I had asked people what they wanted, they would have said faster horses.”</span></div><div style="font-size:12.8px"><span style="font-size:13px"> ― Henry Ford</span></div><div style="font-size:12.8px"><span style="font-size:13px"><br></span></div><div style="font-size:12.8px"><img src="https://docs.google.com/uc?export=download&id=0B1jxPoiqfNkkOEkxTG9VNTl5YVk&revid=0B1jxPoiqfNkkSVJaYTYvdHdZaEcwSnpUMFFYVE9hajlTWXgwPQ" width="200" height="128" style="font-size:12.8px"><img src="https://docs.google.com/uc?id=0B1jxPoiqfNkkcEk2ZUlBc1d3Vm8&export=download" width="200" height="127" style="font-size:12.8px"></div><div style="font-size:12.8px"><span style="font-size:12.8px"><img src="http://mario.osorio.solutions/FIXEDimages/web_foundations_assoc.jpg" width="200" height="175"> </span><img src="https://docs.google.com/uc?export=download&id=0B1jxPoiqfNkkbzZ5RHNTWkxUUjQ&revid=0B1jxPoiqfNkkYXIyN0dBMmcwRk1DNGpYeFBvcnU3bExTKzg4PQ" style="font-size:12.8px"><span style="font-size:12.8px"> </span></div></div><div style="font-size:12.8px"><br></div><div style="font-size:12.8px"><span style="font-size:12.8px"> </span><span style="font-size:12.8px"> </span></div><div style="font-size:12.8px"><a href="http://goo.gl/t2Hzgo" target="_blank"><img src="https://docs.google.com/uc?export=download&id=0B1jxPoiqfNkkRDVXWHpDUjhIbmM&revid=0B1jxPoiqfNkkcVdLOFlVZ3hXYkRCRldITjlLSk11L3p4WEY4PQ" width="420" height="57"></a></div><div style="font-size:12.8px"><img src="https://www.linuxcounter.net/cert/589006.png" width="200" height="100"><span style="font-size:12.8px"> <a href="https://m.do.co/c/63e2415dab7b" target="_blank"><img src="https://docs.google.com/uc?export=download&id=0B1jxPoiqfNkkcjROSjlkOVJ0T0k&revid=0B1jxPoiqfNkkYUoxL21GRjBQSVhDQkxBMGkxYVVPYjdBNjFJPQ" width="200" height="125"></a></span></div></div></div></div></div></div>
<br><div class="gmail_quote">2017-11-29 17:45 GMT-05:00 Roberto Matarrita <span dir="ltr"><<a href="mailto:rmatarria@gmail.com" target="_blank">rmatarria@gmail.com</a>></span>:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">Don Mario, me funcionó el proceso, pude ver el reporte en la pantalla.<div>Usted no sabe cuanto me ha costado hacer esto, llevo meses, buscando en Internet, documentación, gente que me dijera como podía hacer un reporte en python y realmente nadie me decía como hacerlos, a excepción de las herramientas que le mencioné.</div><div><br></div><div>Gracias por ayudarme a dar el último paso que necesitaba para ver reportes en pantalla de una aplicación de escritorio. Ya los puedo tirar a PDF, Word,Excell,TXT y muchos otros formatos. Ahora es cuestión de afinarlo.</div><div><br></div><div>1. Una última consulta, usted como hace los reportes en python.</div><div>2. Que hace esta instrucción que me dio error y tuve que ponerla en comentario. <span style="font-size:12.8px">subprocess.Popen([<wbr>file],shell=</span><span style="font-size:12.8px">True)</span></div><div><br></div><div><br></div><div>Roberto.</div></div><div class="gmail_extra"><br><div class="gmail_quote">El 29 de noviembre de 2017, 10:38, Mario R. Osorio <span dir="ltr"><<a href="mailto:nimbiotics@gmail.com" target="_blank">nimbiotics@gmail.com</a>></span> escribió:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">Desconozco el producto JasperReport. Sin embargo, si ya tienes el archivo PDF, solo te falta abrirlo, y hay varias formas de hacerlo; entre ellas:<div><br></div><div><ul><li><br></li><li>subprocess.Popen([file],shell=<wbr>True)<br></li><li><div class="m_-7381348950293284763m_-2263788100266953732m_-4359392264139714844m_145701624698718343m_-6476954472332335776m_-889657820366208396gmail-post-text" style="margin:0px 0px 5px;padding:0px;border:0px;font-variant-numeric:inherit;font-stretch:inherit;font-size:15px;line-height:1.3;font-family:Arial,"Helvetica Neue",Helvetica,sans-serif;vertical-align:baseline;width:660px;word-wrap:break-word;color:rgb(36,39,41)"><pre class="m_-7381348950293284763m_-2263788100266953732m_-4359392264139714844m_145701624698718343m_-6476954472332335776m_-889657820366208396gmail-lang-py m_-7381348950293284763m_-2263788100266953732m_-4359392264139714844m_145701624698718343m_-6476954472332335776m_-889657820366208396gmail-prettyprint m_-7381348950293284763m_-2263788100266953732m_-4359392264139714844m_145701624698718343m_-6476954472332335776m_-889657820366208396gmail-prettyprinted" style="margin-top:0px;margin-bottom:1em;padding:5px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;font-stretch:inherit;font-size:13px;line-height:inherit;font-family:Consolas,Menlo,Monaco,"Lucida Console","Liberation Mono","DejaVu Sans Mono","Bitstream Vera Sans Mono","Courier New",monospace,sans-serif;vertical-align:baseline;width:auto;max-height:600px;overflow:auto;background-color:rgb(239,240,241);color:rgb(57,51,24);word-wrap:normal"><code style="margin:0px;padding:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;font-stretch:inherit;line-height:inherit;font-family:Consolas,Menlo,Monaco,"Lucida Console","Liberation Mono","DejaVu Sans Mono","Bitstream Vera Sans Mono","Courier New",monospace,sans-serif;vertical-align:baseline;white-space:inherit"><span class="m_-7381348950293284763m_-2263788100266953732m_-4359392264139714844m_145701624698718343m_-6476954472332335776m_-889657820366208396gmail-kwd" style="margin:0px;padding:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;font-stretch:inherit;font-size:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;color:rgb(16,16,148)">import</span><span class="m_-7381348950293284763m_-2263788100266953732m_-4359392264139714844m_145701624698718343m_-6476954472332335776m_-889657820366208396gmail-pln" style="margin:0px;padding:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;font-stretch:inherit;font-size:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;color:rgb(48,51,54)"> webbrowser
webbrowser</span><span class="m_-7381348950293284763m_-2263788100266953732m_-4359392264139714844m_145701624698718343m_-6476954472332335776m_-889657820366208396gmail-pun" style="margin:0px;padding:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;font-stretch:inherit;font-size:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;color:rgb(48,51,54)">.</span><span class="m_-7381348950293284763m_-2263788100266953732m_-4359392264139714844m_145701624698718343m_-6476954472332335776m_-889657820366208396gmail-pln" style="margin:0px;padding:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;font-stretch:inherit;font-size:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;color:rgb(48,51,54)">open_new</span><span class="m_-7381348950293284763m_-2263788100266953732m_-4359392264139714844m_145701624698718343m_-6476954472332335776m_-889657820366208396gmail-pun" style="margin:0px;padding:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;font-stretch:inherit;font-size:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;color:rgb(48,51,54)">(</span><span class="m_-7381348950293284763m_-2263788100266953732m_-4359392264139714844m_145701624698718343m_-6476954472332335776m_-889657820366208396gmail-pln" style="margin:0px;padding:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;font-stretch:inherit;font-size:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;color:rgb(48,51,54)">r</span><span class="m_-7381348950293284763m_-2263788100266953732m_-4359392264139714844m_145701624698718343m_-6476954472332335776m_-889657820366208396gmail-str" style="margin:0px;padding:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;font-stretch:inherit;font-size:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;color:rgb(125,39,39)">'file://C<wbr>:\path\to\file.pdf'</span><span class="m_-7381348950293284763m_-2263788100266953732m_-4359392264139714844m_145701624698718343m_-6476954472332335776m_-889657820366208396gmail-pun" style="margin:0px;padding:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;font-stretch:inherit;font-size:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;color:rgb(48,51,54)">)</span></code></pre></div></li><li><div><code style="margin:0px;padding:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;font-stretch:inherit;line-height:inherit;font-family:Consolas,Menlo,Monaco,"Lucida Console","Liberation Mono","DejaVu Sans Mono","Bitstream Vera Sans Mono","Courier New",monospace,sans-serif;vertical-align:baseline;white-space:inherit"><span class="m_-7381348950293284763m_-2263788100266953732m_-4359392264139714844m_145701624698718343m_-6476954472332335776m_-889657820366208396gmail-pun" style="margin:0px;padding:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;font-stretch:inherit;font-size:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;color:rgb(48,51,54)"><div class="m_-7381348950293284763m_-2263788100266953732m_-4359392264139714844m_145701624698718343m_-6476954472332335776m_-889657820366208396gmail-post-text" style="margin:0px 0px 5px;padding:0px;border:0px;font-variant-numeric:inherit;font-stretch:inherit;font-size:15px;line-height:1.3;font-family:Arial,"Helvetica Neue",Helvetica,sans-serif;vertical-align:baseline;width:660px;word-wrap:break-word;color:rgb(36,39,41)"><pre class="m_-7381348950293284763m_-2263788100266953732m_-4359392264139714844m_145701624698718343m_-6476954472332335776m_-889657820366208396gmail-lang-py m_-7381348950293284763m_-2263788100266953732m_-4359392264139714844m_145701624698718343m_-6476954472332335776m_-889657820366208396gmail-prettyprint m_-7381348950293284763m_-2263788100266953732m_-4359392264139714844m_145701624698718343m_-6476954472332335776m_-889657820366208396gmail-prettyprinted" style="margin-top:0px;margin-bottom:1em;padding:5px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;font-stretch:inherit;font-size:13px;line-height:inherit;font-family:Consolas,Menlo,Monaco,"Lucida Console","Liberation Mono","DejaVu Sans Mono","Bitstream Vera Sans Mono","Courier New",monospace,sans-serif;vertical-align:baseline;width:auto;max-height:600px;overflow:auto;background-color:rgb(239,240,241);color:rgb(57,51,24);word-wrap:normal"><code style="margin:0px;padding:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;font-stretch:inherit;line-height:inherit;font-family:Consolas,Menlo,Monaco,"Lucida Console","Liberation Mono","DejaVu Sans Mono","Bitstream Vera Sans Mono","Courier New",monospace,sans-serif;vertical-align:baseline;white-space:inherit"><span class="m_-7381348950293284763m_-2263788100266953732m_-4359392264139714844m_145701624698718343m_-6476954472332335776m_-889657820366208396gmail-kwd" style="margin:0px;padding:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;font-stretch:inherit;font-size:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;color:rgb(16,16,148)">import</span><span class="m_-7381348950293284763m_-2263788100266953732m_-4359392264139714844m_145701624698718343m_-6476954472332335776m_-889657820366208396gmail-pln" style="margin:0px;padding:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;font-stretch:inherit;font-size:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;color:rgb(48,51,54)"> os
os</span><span class="m_-7381348950293284763m_-2263788100266953732m_-4359392264139714844m_145701624698718343m_-6476954472332335776m_-889657820366208396gmail-pun" style="margin:0px;padding:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;font-stretch:inherit;font-size:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;color:rgb(48,51,54)">.</span><span class="m_-7381348950293284763m_-2263788100266953732m_-4359392264139714844m_145701624698718343m_-6476954472332335776m_-889657820366208396gmail-pln" style="margin:0px;padding:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;font-stretch:inherit;font-size:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;color:rgb(48,51,54)">startfile</span><span class="m_-7381348950293284763m_-2263788100266953732m_-4359392264139714844m_145701624698718343m_-6476954472332335776m_-889657820366208396gmail-pun" style="margin:0px;padding:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;font-stretch:inherit;font-size:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;color:rgb(48,51,54)">(</span><span class="m_-7381348950293284763m_-2263788100266953732m_-4359392264139714844m_145701624698718343m_-6476954472332335776m_-889657820366208396gmail-pln" style="margin:0px;padding:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;font-stretch:inherit;font-size:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;color:rgb(48,51,54)">filename</span><span class="m_-7381348950293284763m_-2263788100266953732m_-4359392264139714844m_145701624698718343m_-6476954472332335776m_-889657820366208396gmail-pun" style="margin:0px;padding:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;font-stretch:inherit;font-size:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;color:rgb(48,51,54)">)</span></code></pre></div></span></code></div></li><li><pre class="m_-7381348950293284763m_-2263788100266953732m_-4359392264139714844m_145701624698718343m_-6476954472332335776m_-889657820366208396gmail-lang-py m_-7381348950293284763m_-2263788100266953732m_-4359392264139714844m_145701624698718343m_-6476954472332335776m_-889657820366208396gmail-prettyprint m_-7381348950293284763m_-2263788100266953732m_-4359392264139714844m_145701624698718343m_-6476954472332335776m_-889657820366208396gmail-prettyprinted" style="margin-top:0px;margin-bottom:1em;padding:5px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;font-stretch:inherit;font-size:13px;line-height:inherit;font-family:Consolas,Menlo,Monaco,"Lucida Console","Liberation Mono","DejaVu Sans Mono","Bitstream Vera Sans Mono","Courier New",monospace,sans-serif;vertical-align:baseline;width:auto;max-height:600px;overflow:auto;background-color:rgb(239,240,241);color:rgb(57,51,24);word-wrap:normal"><code style="margin:0px;padding:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;font-stretch:inherit;line-height:inherit;font-family:Consolas,Menlo,Monaco,"Lucida Console","Liberation Mono","DejaVu Sans Mono","Bitstream Vera Sans Mono","Courier New",monospace,sans-serif;vertical-align:baseline;white-space:inherit"><span class="m_-7381348950293284763m_-2263788100266953732m_-4359392264139714844m_145701624698718343m_-6476954472332335776m_-889657820366208396gmail-pun" style="margin:0px;padding:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;font-stretch:inherit;font-size:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;color:rgb(48,51,54)">os.system(filename)<br></span></code></pre></li><li><pre class="m_-7381348950293284763m_-2263788100266953732m_-4359392264139714844m_145701624698718343m_-6476954472332335776m_-889657820366208396gmail-lang-py m_-7381348950293284763m_-2263788100266953732m_-4359392264139714844m_145701624698718343m_-6476954472332335776m_-889657820366208396gmail-prettyprint m_-7381348950293284763m_-2263788100266953732m_-4359392264139714844m_145701624698718343m_-6476954472332335776m_-889657820366208396gmail-prettyprinted" style="margin-top:0px;margin-bottom:1em;padding:5px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;font-stretch:inherit;font-size:13px;line-height:inherit;font-family:Consolas,Menlo,Monaco,"Lucida Console","Liberation Mono","DejaVu Sans Mono","Bitstream Vera Sans Mono","Courier New",monospace,sans-serif;vertical-align:baseline;width:auto;max-height:600px;overflow:auto;background-color:rgb(239,240,241);color:rgb(57,51,24);word-wrap:normal"><code style="margin:0px;padding:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;font-stretch:inherit;line-height:inherit;font-family:Consolas,Menlo,Monaco,"Lucida Console","Liberation Mono","DejaVu Sans Mono","Bitstream Vera Sans Mono","Courier New",monospace,sans-serif;vertical-align:baseline;white-space:inherit"><span class="m_-7381348950293284763m_-2263788100266953732m_-4359392264139714844m_145701624698718343m_-6476954472332335776m_-889657820366208396gmail-pun" style="margin:0px;padding:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;font-stretch:inherit;font-size:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;color:rgb(48,51,54)"><br></span></code></pre></li></ul><div><font color="#303336" face="Consolas, Menlo, Monaco, Lucida Console, Liberation Mono, DejaVu Sans Mono, Bitstream Vera Sans Mono, Courier New, monospace, sans-serif"><br></font></div></div><div><font color="#303336" face="Consolas, Menlo, Monaco, Lucida Console, Liberation Mono, DejaVu Sans Mono, Bitstream Vera Sans Mono, Courier New, monospace, sans-serif">Tambien podrias hacer uso de varias librerias para manipulacion de archivos PDF</font></div></div><div class="gmail_extra"><br clear="all"><div><div class="m_-7381348950293284763m_-2263788100266953732m_-4359392264139714844m_145701624698718343m_-6476954472332335776m_-889657820366208396gmail_signature" data-smartmail="gmail_signature"><div dir="ltr"><div><div dir="ltr"><br style="font-size:12.8px"><span style="font-size:12.8px">Dtb/Gby</span><div style="font-size:12.8px">=======<br>Mario R. Osorio<br></div><div style="font-size:12.8px">A.S. of Computer Programming and Analysis<br></div><div style="font-size:12.8px">Web page: <b><a href="http://http%3B//mario.osorio.solutions" target="_blank">http;//mario.osorio.solu<wbr>tions</a></b></div><div style="font-size:12.8px">Email: <a href="mailto:mario@osorio.solutions" target="_blank"><b>mario@osorio.solutions</b></a></div><div style="font-size:12.8px"><div style="font-size:12.8px"><a href="http://www.gentoogeek.org/files/choose_python.pdf" style="font-size:13px" target="_blank"><b>Just Choose Python!</b></a></div><div><br><span style="font-size:13px">“If I had asked people what they wanted, they would have said faster horses.”</span></div><div style="font-size:12.8px"><span style="font-size:13px"> ― Henry Ford</span></div><div style="font-size:12.8px"><span style="font-size:13px"><br></span></div><div style="font-size:12.8px"><img src="https://docs.google.com/uc?export=download&id=0B1jxPoiqfNkkOEkxTG9VNTl5YVk&revid=0B1jxPoiqfNkkSVJaYTYvdHdZaEcwSnpUMFFYVE9hajlTWXgwPQ" width="200" height="128" style="font-size:12.8px"><img src="https://docs.google.com/uc?id=0B1jxPoiqfNkkcEk2ZUlBc1d3Vm8&export=download" width="200" height="127" style="font-size:12.8px"></div><div style="font-size:12.8px"><span style="font-size:12.8px"><img src="http://mario.osorio.solutions/FIXEDimages/web_foundations_assoc.jpg" width="200" height="175"> </span><img src="https://docs.google.com/uc?export=download&id=0B1jxPoiqfNkkbzZ5RHNTWkxUUjQ&revid=0B1jxPoiqfNkkYXIyN0dBMmcwRk1DNGpYeFBvcnU3bExTKzg4PQ" style="font-size:12.8px"><span style="font-size:12.8px"> </span></div></div><div style="font-size:12.8px"><br></div><div style="font-size:12.8px"><span style="font-size:12.8px"> </span><span style="font-size:12.8px"> </span></div><div style="font-size:12.8px"><a href="http://goo.gl/t2Hzgo" target="_blank"><img src="https://docs.google.com/uc?export=download&id=0B1jxPoiqfNkkRDVXWHpDUjhIbmM&revid=0B1jxPoiqfNkkcVdLOFlVZ3hXYkRCRldITjlLSk11L3p4WEY4PQ" width="420" height="57"></a></div><div style="font-size:12.8px"><img src="https://www.linuxcounter.net/cert/589006.png" width="200" height="100"><span style="font-size:12.8px"> <a href="https://m.do.co/c/63e2415dab7b" target="_blank"><img src="https://docs.google.com/uc?export=download&id=0B1jxPoiqfNkkcjROSjlkOVJ0T0k&revid=0B1jxPoiqfNkkYUoxL21GRjBQSVhDQkxBMGkxYVVPYjdBNjFJPQ" width="200" height="125"></a></span></div></div></div></div></div></div>
<br><div class="gmail_quote">2017-11-28 22:21 GMT-05:00 Roberto Matarrita <span dir="ltr"><<a href="mailto:rmatarria@gmail.com" target="_blank">rmatarria@gmail.com</a>></span>:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">Buenas noches. Ya llevo varios meses tratando de aprender a realizar reportes en Python. He buscado reporteadores, documentación respecto al tema, pero al parecer es bastante escasa. Vi reportlab, pandas y otros, pero todos son para confeccionar a puro código. Observé un par de reporeteadores gráficos, entre ellos JasperReport, muy bueno y completo.<div>Me enviaron el código que abajo describo, el cual logré que funcionara, se conecta a la base de datos, envía parámetros y hace el reporte.</div><div>Pero tengo el gran problema que no he podido ya que desconozco como hacerlo y la persona que me envió el código, tampoco ha podido ayudarme y es como hacer para ver el reporte en pantalla. Es decir un preview.</div><div><br></div><div>Es decir como hago para ver el reporte en la pantalla, para que el usuakrio escoja la impresora, o bien si lo va a enviar a un PDF, Word o Excel. Ya que el código lo que hace es grabar directamente el reporte al disco.</div><div>Mucho agradecería la ayuda, o bien sujerencias para los reportes ya que estoy en un proyecto muy grande y este ha sido el talón de aquiles en Python, los reportes. Si alguien conoce del tema.</div><div><br></div><div>Gracias.</div><div><br></div><div>Describo el código.</div><div><br></div><div><div>import sys</div><div>import os</div><div>import PyPDF2</div><div>import pyjasper</div><div>from platform import python_version</div><div>from pyjasper.jasperpy import JasperPy</div><div>from PyPDF2 import PdfFileMerger,PdfFileReader</div><div> <br></div><div>#def advanced_example_using_databas<wbr>e():</div><div>input_file = os.path.dirname(os.path.abspat<wbr>h(__file__)) + '/report4.jrxml'</div><div>output = os.path.dirname(os.path.abspat<wbr>h(__file__)) + '/reportes'</div><div>print(input_file)</div><div>print(output)</div><div> </div><div>con = {</div><div> 'driver': 'postgres',</div><div> 'username': 'postgres',</div><div> 'password': 'Administra8080',</div><div> 'host': 'localhost',</div><div> 'database': 'municipal',</div><div> 'port':'5432'</div><div> }</div><div>x=input("Digite codigo de empleado :")</div><div>jasper = JasperPy()</div><div>jasper.process(input_file,outp<wbr>ut_file=output,format_list=["p<wbr>df"], parameters={'idenifica': (x)},db_connection=con) #Aquí se confecciona el reporte.</div></div></div>
<br>______________________________<wbr>_________________<br>
Python-es mailing list<br>
<a href="mailto:Python-es@python.org" target="_blank">Python-es@python.org</a><br>
<a href="https://mail.python.org/mailman/listinfo/python-es" rel="noreferrer" target="_blank">https://mail.python.org/mailma<wbr>n/listinfo/python-es</a><br>
<br></blockquote></div><br></div>
<br>______________________________<wbr>_________________<br>
Python-es mailing list<br>
<a href="mailto:Python-es@python.org" target="_blank">Python-es@python.org</a><br>
<a href="https://mail.python.org/mailman/listinfo/python-es" rel="noreferrer" target="_blank">https://mail.python.org/mailma<wbr>n/listinfo/python-es</a><br>
<br></blockquote></div><br></div>
<br>______________________________<wbr>_________________<br>
Python-es mailing list<br>
<a href="mailto:Python-es@python.org" target="_blank">Python-es@python.org</a><br>
<a href="https://mail.python.org/mailman/listinfo/python-es" rel="noreferrer" target="_blank">https://mail.python.org/mailma<wbr>n/listinfo/python-es</a><br>
<br></blockquote></div><br></div>
<br>______________________________<wbr>_________________<br>
Python-es mailing list<br>
<a href="mailto:Python-es@python.org" target="_blank">Python-es@python.org</a><br>
<a href="https://mail.python.org/mailman/listinfo/python-es" rel="noreferrer" target="_blank">https://mail.python.org/mailma<wbr>n/listinfo/python-es</a><br>
<br></blockquote></div><br></div>
<br>______________________________<wbr>_________________<br>
Python-es mailing list<br>
<a href="mailto:Python-es@python.org" target="_blank">Python-es@python.org</a><br>
<a href="https://mail.python.org/mailman/listinfo/python-es" rel="noreferrer" target="_blank">https://mail.python.org/mailma<wbr>n/listinfo/python-es</a><br>
<br></blockquote></div><br></div></div>
<br>______________________________<wbr>_________________<br>
Python-es mailing list<br>
<a href="mailto:Python-es@python.org" target="_blank">Python-es@python.org</a><br>
<a href="https://mail.python.org/mailman/listinfo/python-es" rel="noreferrer" target="_blank">https://mail.python.org/mailma<wbr>n/listinfo/python-es</a><br>
<br></blockquote></div><br></div>
</div></div><br>______________________________<wbr>_________________<br>
Python-es mailing list<br>
<a href="mailto:Python-es@python.org">Python-es@python.org</a><br>
<a href="https://mail.python.org/mailman/listinfo/python-es" rel="noreferrer" target="_blank">https://mail.python.org/<wbr>mailman/listinfo/python-es</a><br>
<br></blockquote></div><br></div>