Generacion PDF con BULLZIP

381 views
Skip to first unread message

Desarrollos AM

unread,
Jul 6, 2018, 3:57:29 PM7/6/18
to Comunidad de Visual Foxpro en Español
HOLA GRUPO : 

Para generar un PDF con bullzip ( no puedo cambiar por otro metodo ) utilizo la rutina que esta copiada mas abajo.  
Funciona bien. Ahora me piden generar el pdf y que se guarde en dos directorios al mismo tiempo.
Como cambio facil supuse invocar la rutina dos veces indicando en cada oportunidad el directorio que corresponda.

El problema que surge que solo me emite uno de los pdfs .  Entiendo que se deben estar encimando los dos procesos , ya que generar el pdf en bullzip tarda unos segundos .
Puedo poner un retardo entre llamada y llamada pero nunca sabre con seguridad cuanto retardo poner .

Hay alguna manera de saber que un proceso termino para seguir con la ejecucion del programa ???

Desde ya , muchas gracias.


FUNCTION PdfBullzip
        LPARAMETERS cFrx,cArchivo
                * cFrx Nombre del Informe, Archivo destino
        loPdf = CREATEOBJECT('Bullzip.PDFPrinterSettings')
        IF TYPE('loPdf')='O'
                loPdf.SetValue('output', cArchivo+'.PDF')
                loPdf.SetValue('DisableOptionDialog', 'no')
                loPdf.SetValue('ConfirmOverwrite', 'no')
                loPdf.SetValue('Showsettings', 'never')
                loPdf.SetValue('ShowSaveAS', 'nofile')
                loPdf.SetValue('ShowPdf', 'no')
                loPdf.WriteSettings(.t.)
                SET CONSOLE OFF
                SET PRINTER TO NAME ("Bullzip PDF Printer")
                REPORT FORM &cFrx TO PRINTER Nodialog
              SET PRINT OFF
              SET PRINTER TO DEFAULT
              SET CONSOLE ON
        ENDIF
ENDFUNC

Rodolfo Ortiz González

unread,
Jul 6, 2018, 4:18:09 PM7/6/18
to publice...@googlegroups.com
Yo lo resolvería con un do while.

i=10000
do while i<=10000
  I=I-1
enddo

Con eso pongo un tiempo de retraso.

La otra es que al terminar de generar el primer pdf, lo copies a la ruta nueva y listo, saludos!


Antonio Meza

unread,
Jul 6, 2018, 7:11:54 PM7/6/18
to Comunidad de Visual Foxpro en Español
Uso la misma rutina que tienes y tenia el problema que se estaba generando el PDF y el sistema intentaba enviar por correo el PDF y aun no existía o guardarlo en la base de datos, este es el código que tengo, ya no recuerdo para que sirve algún comando que veas raro jajajaja pues ya tiene su rato que la escribí e investigue.

* Generar PDF - llamar Bullzip
thisform.mGenerar_PDF()

* Intentar Guardar en la Base de Datos
CLEAR TYPEAHEAD
WAIT windows "Generando PDF, espere ... (Esc Cancelar)" NOWAIT NOCLEAR
_salir = 0
DO WHILE .t.
_salir = INKEY()
IF FILE(_pdf_archivo)
_salir = 1
exit
ENDIF
IF _salir = 27   && Tecla ESC
exit
ENDIF
ENDDO

WAIT clear

IF _salir = 1
* Agregar , guardar, copiar PDF Generado
ELSE
* Se cancelo o no se pudo Generar
ENDIF


saludos
Antonio Meza

mapner

unread,
Jul 6, 2018, 10:10:04 PM7/6/18
to Comunidad de Visual Foxpro en Español
Antonio, unas pocas optimizaciones 

* Generar PDF - llamar Bullzip
thisform.mGenerar_PDF()
* Intentar Guardar en la Base de Datos
CLEAR TYPEAHEAD
WAIT windows "Generando PDF, espere ... (Esc Cancelar)" NOWAIT NOCLEAR
DO WHILE !FILE(_pdf_archivo) AND INKEY()<>27
ENDDO

WAIT clear
IF FILE(_pdf_archivo)

Antonio Meza

unread,
Jul 7, 2018, 9:40:17 AM7/7/18
to Comunidad de Visual Foxpro en Español
Excelente!!!

Esa rutina la tengo desde aprox. inicios del 2010, es decir hace unos cuantos días jajajaja

saludos

Zarlu

unread,
Jul 7, 2018, 11:19:44 AM7/7/18
to Comunidad de Visual Foxpro en Español
Buenos días!  
 
Quizá  "CREATEOBJECT('Bullzip.PDFPrinterSettings'" te devuelva un resultado de fin de rutina y ese es el que deberías evaluar para saber
si se generó el archivo.
 
Porque igual y la rutina finaliza sin éxito y te vas a enciclar esperando el archivo deseado.
 
Disculpa si complico la situación con mi comentario.
 
Suerte
zarlu
Chetumal, Quintana Roo, México
 
 
 

Desarrollos AM

unread,
Jul 9, 2018, 10:53:05 AM7/9/18
to Comunidad de Visual Foxpro en Español

Gracias a cada uno por sus comentarios y sugerencias que fueron de mucha utilidad.

 

Ya había empezado por el lado de un ciclo esperando que aparezca el archivo pero no había tenido en cuenta que nunca se generara y con sus ideas me mostraron que faltaba ese detalle. Gracias por la ayuda para poder darle un cierre al tema.

 

Abrazo a todos.

Reply all
Reply to author
Forward
0 new messages