Generación PDF's con Foxypreviewer

1,317 views
Skip to first unread message

Jose Antonio Blasco

unread,
Apr 19, 2017, 12:09:35 PM4/19/17
to Comunidad de Visual Foxpro en Español
Buenas tardes a todos.

LLevo tiempo usando Foxypreviewer de forma satisfactoria, tanto para la generación de vista previa de informes como para generar PDF's, Excel, etc.

En una nueva aplicación que tengo, he tenido que implementar un proceso, que leyendo la información de un archivo de facturas, tiene que generar un pdf por cada una de ellas.  Para ello utilizo Foxypreviewer con "Report Form "miformato" Object Type 10 To File "myfile". 

Funciona correctamente pero, cuando la cantidad de facturas es elevada se produce un problema de saturación de la memoria del equipo, que he comprobado, mantenido abierto el "Administrador de Tareas - Rendimiento".  Por cada PDF generado, sube el uso de la Memoria, poco a poco hasta saturala. 

A alguien le ha pasado esto ?
Alguien sabe como solucionarlo?

Gracias anticipadas.

Un saludo.

Jose A. Blasco
Zaragoza - España
Visual FoxPro 9 SP2

Germán Fabricio Valdez

unread,
Apr 19, 2017, 1:47:19 PM4/19/17
to Comunidad de Visual Foxpro en Español
hice pruebas con el foxypreviewer.app que adjunto y no tuve incremento de memoria
FoxyPreviewer.app

Germán Fabricio Valdez

unread,
Apr 19, 2017, 2:18:05 PM4/19/17
to Comunidad de Visual Foxpro en Español
comprimido rar


El miércoles, 19 de abril de 2017, 13:09:35 (UTC-3), Jose Antonio Blasco escribió:
FoxyPreviewer.rar

elkin dario uribe torres

unread,
Apr 19, 2017, 3:18:44 PM4/19/17
to publice...@googlegroups.com
Buenas tardes

Yo utilizo el mismo método para las facturas y no he tenido problemas, utilizo el comando y la unica diferencia es utilizar el noreset

REPORT FORM factura_venta.frx OBJECT TYPE 10 NORESET TO FILE 'C:\Facturacion\generadas\'+(ALLTRIM(STR(LcNroFactura)))+'.PDF'  &&Guardo el reporte en un archivo pdf


Saludos

Elkin Uribe

Jose Antonio Blasco

unread,
Apr 20, 2017, 3:17:22 AM4/20/17
to Comunidad de Visual Foxpro en Español
Buenos días a todos y gracias por el interes.

Aunque no lo había especificado, estoy utilizando la última versión de Foxypreviewer 2.99z35

Con respecto a la generación de PDF, si solo se genera un PDF, es imperceptible el incremento.  En mi caso, es un bucle FOR ... NEXT, en el que se generan más de 200 PDF's, de otras tantas facturas, y el uso de la memoria pasa en todo el proceso, del 47% al 92%.   El equipo tiene W10 64Bytes.

Elkin, gracias por el interes, aunque no creo que la clausula NORESET influya, lo probaré.

Por como sucede, da la impresión que cada vez que se genera un PDF, "Foxypreviewer" pueda estar cargando algo en memoria, no demasiado grande, pero claro con más de 200 PDF's...     He de aclarar, que el proceso de generación termina correctamente, pero es en el siguiente proceso cuando empieza a mostrar mensajes de error.   He probado con la mitad de PDF's aproximandamente, y la memoria se queda en el 68%, y el ordenador puede seguir con los procesos siguientes.

Voy a intentar revisar los fuentes de Foxypreviewer, por si veo algo que me de una pista.

Saludos.


Jose A. Blasco
Zaragoza - España
Visual FoxPro 9 SP2


Miguel A.

unread,
Apr 20, 2017, 7:30:20 AM4/20/17
to Comunidad de Visual Foxpro en Español
Hola José Antonio,

Tengo un problema similar de sobrecarga de uso de la memoria con un programa de parecidos de marcas gráficas, que primero descarga un montón de gráficos y luego los va mostrando en pantallas sucesivas en grupos de 8. 

Por esto que sería muy interesante saber si existe algún medio de descargar la memoria, porque después de esto el equipo que utilizo se queda totalmente grogui, en ocasiones.

Si averiguas algo en este sentido publícalo, por favor. Un saludo,

Miguel A. Martínez

Fidel Charny

unread,
Apr 20, 2017, 8:06:27 AM4/20/17
to Comunidad de Visual Foxpro en Español
 Esto se publicó en este foro y funciona bárbaro:
*****************************************************************************************
* PROCEDURE....:     ReduceMemory()
* Author......:  Bernard Bout
* Date........:  05/12/2007 3:03:15 PM
* Returns.....:
* Parameters..:
* Notes.......:  reduces memory usage for vfp
*****************************************************************************************
PROCEDURE ReduceMemory()

Declare Integer SetProcessWorkingSetSize In kernel32 As SetProcessWorkingSetSize  ;
    Integer hProcess , ;
    Integer dwMinimumWorkingSetSize , ;
    Integer dwMaximumWorkingSetSize
Declare Integer GetCurrentProcess In kernel32 As GetCurrentProcess
nProc = GetCurrentProcess()
bb = SetProcessWorkingSetSize(nProc,-1,-1)
ENDPROC


elkin dario uribe torres

unread,
Apr 20, 2017, 8:43:59 AM4/20/17
to publice...@googlegroups.com
Jose no se si lo estare aplicando mal, pero la forma que yo lo utilizo para generar documentos en pdf es cargar el Foxy y cuando genera el documento lo descargo.  como te digo no se si es la mas adecuada pero revisando la memoria esta no pasa del 58% y la generacion de los documento no se demora.

Este es mas o menos el proceso

PARAMETERS LcNroFactura , LcPrefijo


SET REPORTBEHAVIOR 80 ***Pongo esta instruccion aqui porque de otra forma no se porque no la asumia y presentaba problemas

WAIT "Procesando la informacion... espere un momento" WINDOW NOWAIT

***Proceso la informacion y genero el cursor

WAIT "Procesando la informacion... espere un momento" WINDOW NOWAIT

REPORT FORM factura_venta_ipoconsumo_sql_sih.frx OBJECT TYPE 10 NORESET TO FILE 'C:\generadas\'+(ALLTRIM(STR(LcNroFactura)))+'.PDF'  &&Guardo el reporte en un archivo pdf

Retun.

Como te digo, con este genero las facturas diarias que pueden ser hasta 192, o las de un rango de fecha mas o menos 3000.  Lo que si te digo es que cuando genero cartas que ese es otro paseo combinado con el Foxbarcode, despues de generar 14000 me toca cerrar la aplicacion y volver a ingresar, porque ? no me he puesto a analizar, pero creo que es el foxbarcode no el Foxy.

Saludes

Jose Antonio Blasco

unread,
Apr 20, 2017, 9:01:53 AM4/20/17
to Comunidad de Visual Foxpro en Español
Fidel, parece buena idea, lo probaré y te cuento.  Gracias.

Elkin, bueno, yo lo aplico algo diferente, porque uso Foxypreviewer en toda la aplicación, de forma que lo cargo a la entrada del programa, y en la rutina de generación del PDF sólo hago el REPORT FORM myreport.frx OBJECT TYPE 10 TO FILE myfile.pdf.

A lo largo de la mañana he realizado pruebas en diferentes equipos, y en el mío (un WXP SP3) funciona correctamente, y lo he forzado con la generación de !!! mas de 500 PDF's !!!.

El equipo sobre el que falla resulta que tiene un W Server 2012 y no W10, así que puede que tenga que ver con la gestión de recursor de dicho servidor.

Iré informando de todo lo que pruebe.

Un saludo.



Jose A. Blasco
Zaragoza - España
Visual FoxPro 9 SP2


Miguel A.

unread,
Apr 20, 2017, 2:40:22 PM4/20/17
to Comunidad de Visual Foxpro en Español
Muchas gracias Fidel, 

Lo probaré y comentaré. Lo mejor de este foro es la "memoria colectiva": de lo que no se acuerda uno, lo hacen otros y lo cuentan; además están las memorias prodigiosas que casi siempre se acuerdan de todo...

Buen casi_finde. 

Miguel A. Martínez

Germán Fabricio Valdez

unread,
Apr 20, 2017, 2:47:14 PM4/20/17
to Comunidad de Visual Foxpro en Español
hola jose

podes probar con Visual Foxpro 10 Advanced de 32 bits

si es una falla en la memoria de windows server 2012 se lo envio a chen para que lo vea

Eric Natareno Guerra

unread,
Apr 20, 2017, 3:45:59 PM4/20/17
to publicesvfoxpro
Yo tengo un problema similar, debo generar un reporte en pdf el cual incluye solo imagenes PNG las cuales no pesan mayor cosa, pues son de 1/3 de carta en blanco y negro y un titulo para cada imagen, funciona muy bien pero cuando la cantidad de imagenes es grande se queda parado el proceso de generacion del pdf en 68%, para lo cual estuve revisando y de igual manera se dispara el uso de memoria, ya intente subir memoria a la pc sin obtener ningun resultado favorable, por lo que mi cliente debe fraccionar la informacion y asi generar uno o dos archivos. Si logran resolver el problema creo me ayudaria en el mio. Gracias por su tiempo

Jose Antonio Blasco

unread,
Apr 21, 2017, 3:29:05 AM4/21/17
to Comunidad de Visual Foxpro en Español
Buenos días a todos.


Fidel, el "ReduceMemory" funciona perfectamente, lo ejecuto tras la generación de cada PDF, y la memoria se mantiene estable pero....  sigue produciendose el mismo fallo, concretamente

0x80070008: Not enough storage is available to process this command

Según me comenta un compañero, ya tuvimos el mismo problema con otro cliente, tambien Windows Server 2012, y se solucionó aumentando la memoria del equipo.   Realmente el problema persiste, pero al haber más memoria no llega a saturarse.  

Con este nuevo cliente se ha decidido la misma solucion: ampliar la memoria.

German, he ido descargando cada actualización de Visual Foxpro Advanced, pero no he instalado ninguna, pues mi equipo con WXP SP3, no me da ninguna confianza para hacerlo.   Estoy pendiente de un cambio.  En cuando pueda lo pruebo.

Con respecto al problema que comenta Eric, yo tambien he tenido problemas con las imagenes incluidas en los report cuando genero PDF's con Foxypreviewer, sobre todo si esas imagenes son PNG's.  En todos los casos lo he tenido que solucionar, instalando en el equipo del cliente una impresora virtual, normalmente Primo PDF, que es la que consume menos recursos.

Un saludo.


Jose A. Blasco
Zaragoza - España
Visual FoxPro 9 SP2


walter matias

unread,
Apr 22, 2017, 3:52:01 AM4/22/17
to Comunidad de Visual Foxpro en Español
A mi me funciona Windows Server 2012 R2 Datacenter tipo GUI funciona correctamente.

WGWH

unread,
Apr 25, 2017, 12:36:28 PM4/25/17
to Comunidad de Visual Foxpro en Español
Hola Jose Blasco, yo utilizo el  codigo que abajo describo y no he tenido problemas, despues de generar cada archivo destruyo el objeto loReport con el .NULL. lo que supone una liberaciòn de memoria.

DO WHILE <condicion>
   ...
   ...
   ...
   loReport = CREATEOBJECT("PreviewHelper")
    WITH loReport as ReportHelper
            .AddReport("constancia_busquedas_internas.frx","NODIALOG")
            .cDestFile = lcNomArchivoPDF 
            .RunReport()
    ENDWITH

   ...
   ...
   ...
    
   
    loReport = .NULL.   
   
ENDDO

Jose Antonio Blasco

unread,
Apr 25, 2017, 1:02:20 PM4/25/17
to Comunidad de Visual Foxpro en Español
Gracias por el interés WGWH, 
Este es el modo  "completo" ¿no?. 
El creador Cesar Chalom desaconseja su uso, y en las últimas versiones creo que descontinuó este modo.
De todas formas, me has dado una idea, voy a investigar como puedo eliminar el objeto en el modo "simplificado".

Un saludo y de nuevo gracias.

 

Jose A. Blasco
Zaragoza - España
Visual FoxPro 9 SP2


HernanCano

unread,
Apr 25, 2017, 9:59:24 PM4/25/17
to Comunidad de Visual Foxpro en Español
Hay dos formas:

1. SET REPORTBEHAVIOR 80
   Justo antes de emitir el reporte

2. DO FOXYPREVIEWER WITH "RELEASE"

Ambas formas la indica César en la doc.

How can I disable FoxyPreviewer?

Jose Antonio Blasco

unread,
Apr 26, 2017, 3:12:50 AM4/26/17
to Comunidad de Visual Foxpro en Español
Muchas Gracias Hernan, lo probaré asi.

Saludos.



Jose A. Blasco
Zaragoza - España
Visual FoxPro 9 SP2


Harold Inga

unread,
Oct 25, 2018, 12:52:50 PM10/25/18
to Comunidad de Visual Foxpro en Español
Saludos WGWH, yo tambien estuve probando este codigo pero lo deje porque me mostraba todos los PDF en pantalla, es decir los abria con su respectivo programa, como puedo hacer para que no se abran luego de generarlos?

Jorge Galván Pérez

unread,
Oct 26, 2018, 7:17:13 PM10/26/18
to Comunidad de Visual Foxpro en Español

Harold cuando hagas el preview del reporte en configuracion desactiva la opcion "Abrir el visor predeterminado"


Sin título.jpg


Jose Antonio Blasco

unread,
Oct 29, 2018, 4:38:45 AM10/29/18
to Comunidad de Visual Foxpro en Español
Si lo quieres hacer programaticamente, sería:

_SCREEN.oFoxyPreviewer.lOpenViewer = .F.

Un saludo.

Jose A. Blasco
Zaragoza - España
Visual FoxPro 9 SP2


Comprobante Electronico

unread,
Aug 19, 2019, 1:15:42 PM8/19/19
to Comunidad de Visual Foxpro en Español
Estimado Jose Antonio Blasco, curiosamente llevo bastante tiempo teniendo el mismo problema y al igual que tu he descartado que sea otro factor diferente al Foxypreviewer, esta plenamente identificado que es dicho proceso el que genera ya que inicialmente pense que era un tema externo, pero deshabilite todo pero el problema persiste, encontraste alguna solucion?

Saludos.

Lulux

unread,
Aug 19, 2019, 1:19:12 PM8/19/19
to Comunidad de Visual Foxpro en Español
Me refiero al tema de memoria, la memoria asignada se incrementa a cada generacion, con el reducememory() solo se reduce la memoria en uso, pero la asignada se incrementa considerablemente.

--
Has recibido este mensaje porque estás suscrito al grupo "Comunidad de Visual Foxpro en Español" de Grupos de Google.
Para cancelar la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a publicesvfoxp...@googlegroups.com.
Para ver esta conversación en el sitio web, visita https://groups.google.com/d/msgid/publicesvfoxpro/645442f2-5f58-4e56-916c-c92ad88cbe58%40googlegroups.com.

ZeRoberto

unread,
Aug 19, 2019, 1:39:41 PM8/19/19
to publicesvfoxpro
Cuanto de memoria tienes? y cuantos pdf generas?, yo tengo 8gb he hice la prueba con unos 25 pdfs y la verdad que la memoria ni se movio, asegurate de que tienes la ultima version del FoxyPreviewer.

Saludos

Ze



Jose Antonio Blasco

unread,
Aug 20, 2019, 2:27:27 AM8/20/19
to Comunidad de Visual Foxpro en Español
Disculpa, pero como has abierto 2 hilos te había contestado al anterior, sin entender a que te refieres.
Con esto que dices, no se si por el mismo motivo de la memoria o no, yo he tenido que modificar mis procesos de generación, que están incluidos en un archivo de procedimientos, de forma que cada vez que genero un PDF, Word, Html, etc, desactivo Foxypreviewer, y lo vuelvo a activar.  En mi caso siempre he pensado que alguna propiedad o variable de Foxypreviewer quedaba en memoria con un valor incorrecto.  Desactivando y volviendo a activar, se solucionó.

Un saludo.

Jose A. Blasco
Zaragoza - España
Visual FoxPro 9 SP2


Comprobante Electronico

unread,
Aug 20, 2019, 6:14:26 PM8/20/19
to Comunidad de Visual Foxpro en Español
Al activar y desactivar el Foxypreviewer te refieres a 
y
foxypreviewer.app with "RELEASE" 

o como lo haces???


El martes, 20 de agosto de 2019, 1:27:27 (UTC-5), Jose Antonio Blasco escribió:
Disculpa, pero como has abierto 2 hilos te había contestado al anterior, sin entender a que te refieres.
Con esto que dices, no se si por el mismo motivo de la memoria o no, yo he tenido que modificar mis procesos de generación, que están incluidos en un archivo de procedimientos, de forma que cada vez que genero un PDF, Word, Html, etc, desactivo Foxypreviewer, y lo vuelvo a activar.  En mi caso siempre he pensado que alguna propiedad o variable de Foxypreviewer quedaba en memoria con un valor incorrecto.  Desactivando y volviendo a activar, se solucionó.

Un saludo.

Jose A. Blasco
Zaragoza - España
Visual FoxPro 9 SP2



El lun., 19 ago. 2019 a las 19:19, Lulux (<richard...@gmail.com>) escribió:
Me refiero al tema de memoria, la memoria asignada se incrementa a cada generacion, con el reducememory() solo se reduce la memoria en uso, pero la asignada se incrementa considerablemente.

El lun., 19 ago. 2019 a las 12:15, Comprobante Electronico (<richard...@gmail.com>) escribió:
Estimado Jose Antonio Blasco, curiosamente llevo bastante tiempo teniendo el mismo problema y al igual que tu he descartado que sea otro factor diferente al Foxypreviewer, esta plenamente identificado que es dicho proceso el que genera ya que inicialmente pense que era un tema externo, pero deshabilite todo pero el problema persiste, encontraste alguna solucion?

Saludos.

El lunes, 29 de octubre de 2018, 3:38:45 (UTC-5), Jose Antonio Blasco escribió:
Si lo quieres hacer programaticamente, sería:

_SCREEN.oFoxyPreviewer.lOpenViewer = .F.

Un saludo.

Jose A. Blasco
Zaragoza - España
Visual FoxPro 9 SP2



El sáb., 27 oct. 2018 a las 1:17, Jorge Galván Pérez (<jorgeg...@gmail.com>) escribió:

Harold cuando hagas el preview del reporte en configuracion desactiva la opcion "Abrir el visor predeterminado"


Sin título.jpg


--
Has recibido este mensaje porque estás suscrito al grupo "Comunidad de Visual Foxpro en Español" de Grupos de Google.
Para cancelar la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a publice...@googlegroups.com.

--
Has recibido este mensaje porque estás suscrito al grupo "Comunidad de Visual Foxpro en Español" de Grupos de Google.
Para cancelar la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a publice...@googlegroups.com.

HernanCano

unread,
Aug 20, 2019, 6:34:23 PM8/20/19
to Comunidad de Visual Foxpro en Español
Sí, así es.

Jose Antonio Blasco

unread,
Aug 21, 2019, 2:43:13 AM8/21/19
to Comunidad de Visual Foxpro en Español
Si, yo tambien lo hago así.

Jose A. Blasco
Zaragoza - España
Visual FoxPro 9 SP2


Para cancelar la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a publicesvfoxp...@googlegroups.com.
Para ver esta conversación en el sitio web, visita https://groups.google.com/d/msgid/publicesvfoxpro/d6839453-c609-447c-9c00-4e537eb86aad%40googlegroups.com.
Reply all
Reply to author
Forward
0 new messages