Foxypreviewer y PDF

969 views
Skip to first unread message

Zarlu

unread,
Nov 23, 2015, 2:08:08 PM11/23/15
to Mundo Visual FoxPro
Saludos a todos
Buenas tardes!
 
Para generar reportes a PDF estoy intentanto usar foxypreviewer con VFP9 sin el SP2, la documentación dice que es posible usando

las versiones más recientes de ReportOutput.App y ReportPreview.App.

 

Sin embargo me da error porque no encuentra el archivo del reporte

 

Este es el código que estoy usando

 

   *nombre del archivo pdf a crear
   mNomPDF=mDirPdf+"Isabi-"+ALLTRIM(mCuaD)+".pdf"
   
   *ejecuta reporte
   SET PROCEDURE TO LOCFILE("FoxyPreviewer.App") ADDITIVE
   LOCAL loReport as "PreviewHelper" OF "FoxyPreviewer.App"
   loReport = CREATEOBJECT("PreviewHelper")
   WITH loReport as ReportHelper
   .AddReport(mEjeRep, "NODIALOG","declist")
     .cDestFile = mNomPDF
     .RunReport()
   ENDWITH
   loReport = NULL
   RUN /N Explorer.Exe &mNomPDF

(la variable mEjeRep contiene toda la ruta completa y nombre del archivo del informe)

 

Cuando corro el ejecutable en la maquina de trabajo de los proyectos de vfp no hay problema porque va a la ruta indicada en "mEjeRep", pero si instalo en otro equipo al no estar los informes en ese equipo pues me da problemas

 

Me llama la atención esta línea del código que viene en la documentación:

.AddReport(_Samples + "\Solution\Reports\percent.frx", "NODIALOG")

ya que indica precisamente la ruta donde están los informes, pero estos no se encuentran ni se instalan en los demás equipos,

 

Espero haberme explicado y si alguien me puede ayudar le agradezco de antemano.

 

zarlu

Chetumal, Quintana Roo, México

HernanCano

unread,
Nov 23, 2015, 8:47:18 PM11/23/15
to Mundo Visual FoxPro
Hola.
Estás utilizando lo que en FoxyPreviewer se conoce cono el "modo Completo", que ya no es práctico.

Te recomiendo sambiar al "modo Simplificado" (en un momento te doy código), pero éso no debiera cambiar tu problema (por lo que muestras en el código de tu mensaje.

Si el mensaje es "el archivo no existe", seguramente estás armando mal la "ruta del reporte".

Intenta lo sgte:

*******************************
  *nombre del archivo pdf a crear
   mNomPDF=mDirPdf+"Isabi-"+ALLTRIM(mCuaD)+".pdf"

   MessageBox("El reporte a imprimir es "+mEjeRep)
** no veo que la vble esté definida en el código que muestras;
** me parece que la estás definiendo local en otra procedure/función
** de estar correctamente definida, debes observar lo que se muestra con este MessageBox
  
   *habilita FoxyPreviewer
   do LOCFILE("FoxyPreviewer.App")

   *defiendo datos para el reporte
   WITH _Screen.FoxyPreviewer
     .cDestFile = mNomPDF
   ENDWITH
   select declist

   *ejecuta reporte
   report form (mEjeRep) object type 20

*******************************


Zarlu

unread,
Nov 24, 2015, 11:14:00 AM11/24/15
to Mundo Visual FoxPro
Buenos días!
 
Gracias Hernan por responder.
Mi problema persiste.
Respondo a tu publicación y hago unas precisiones adicionales.
-Efectivamente la variable mEjeRep se encuentra definida líneas anteriores al código que mostré.
-No ejecuto DO LOCFILE("Foxypreviewer.app") porque no quiero visualizar mis reporte a través de
foxypreviewer, esta rutina que estoy armando es para enviar directo a pdf sin vista previa.
 
..ahora bien, comento la situación actual.
Del código de mi publicación inicial reemplazar estás lineas:
 
SET PROCEDURE TO LOCFILE("FoxyPreviewer.App") ADDITIVE
LOCAL loReport as "PreviewHelper" OF "FoxyPreviewer.App"
loReport = CREATEOBJECT("PreviewHelper")
 
Por estas:

SET PROCEDURE TO FoxyPreviewerCaller.prg ADDITIVE

LOCAL loReport as "FoxyPreviewerCaller" OF "FoxyPreviewerCaller.Prg"

loReport=CREATEOBJECT("FoxyPreviewerCaller")

Con esto ya pude hacerlo funcionar en otros equipos, ya me encuentra los reportes, PEROOO tuve que quitarles las
imagenes a los reportes porque no los encuentra y falla la ejecución. Ahora estoy trabajando para solucionar esta situación,
Cualquier comentario o sugerencia es bienvenido.
 

Gracias. Espero alguien pueda ayudarme

Zarlu

unread,
Nov 26, 2015, 8:24:39 PM11/26/15
to Mundo Visual FoxPro
Buenas noches!
Comparto lo siguiente...
 
Lo pude realizar con dos códigos diferentes
Las variables incluidas fueron declaradas en líneas previas
mEjeRep=nombre del informe y ruta completa donde se encuentra en el administrador de proyectos de VFP
mNomPDF=nombre y ruta completa del archivo de salida a crear
mCuad=Titulo de la ventana del informe
--------
*crea PDF
* A este le llaman modo completo
*con este código es necesario incluir los archivos de imágenes que contengan
*los informes en el equipo donde se ejecute el programa y tambien incluirlos
*en el path.
*incluir en el proyecto "FoxyPreviewerCaller.Prg"

SET PROCEDURE TO FoxyPreviewerCaller.prg ADDITIVE
LOCAL loReport as "FoxyPreviewerCaller" OF "FoxyPreviewerCaller.Prg"
loReport = CREATEOBJECT("FoxyPreviewerCaller")
WITH loReport as ReportHelper
.AddReport(mEjeRep, "NODIALOG","tabladelinforme")
.cDestFile = mNomPDF
.RunReport()
ENDWITH
loReport = NULL
RUN /N Explorer.Exe &mNomPDF
---------------------------
*' Make PDF
*a este le llaman modo simplificado
*con este código no es necesario hacer ningun ajuste con las imágenes que
*contienen los informes.
*incluir en el proyecto "FoxyPreviewerCaller.Prg" y "FOXYGETIMAGE.PRG"
DO LOCFILE("FoxyPreviewer.App")
_Screen.oFoxyPreviewer.cLanguage = "SPANISH"
_Screen.oFoxyPreviewer.cTitle="Isabi-"+ALLTRIM(mCuaD)
REPORT FORM (mEjeRep) ;
OBJECT TYPE 10 ; &&' OBJTYPE 10 = PDF , 11 = PDF AS IMAGE , 12 = RTF , 13 = XLS , 14 = HTML
TO FILE &mNomPDF ;
PREVIEW && visualiza el archivo creado
DO FOXYPREVIEWER.APP WITH "Release"
-----------------
 
Opte por la segunda opción subrayando lo siguiente:
Vfp9 (SIN SP2)
Activo y desactivo foxypreviewer para que no afecte mis otras rutinas de informes.
No abro la venta preview.

No inlcuí "PREVIEW" sino   "RUN /N Explorer.Exe &mNomPDF" para poder manejar

el error en caso de que no se encuentre la aplicación que abre el archivo creado.

Hay que tener cuidado de que el directorio de salida tenga permisos de escritura y en

su caso considerar rutina de manejo de errores.

 

Espero le sea de utilidad.

Harold Inga

unread,
Nov 27, 2015, 8:29:02 AM11/27/15
to Mundo Visual FoxPro
Saludos

Un pequeño tip.

El archivo libhpdf.dll debe estar en la misma carpeta donde esta instalado foxypreviewer.app, esto esta determinado al momento de ejecutar DO LOCFILE(cRuta+"FoxyPreviewer.App")

La libreria libhpdf.dll es la que permite poder migrar a pdf.

Espero te sirva.

Harold Gerardo Inga Bruz
(E) Informática - Proyecto Catastro - GDUAAT
Municipalidad Prov. Mariscal Nieto - Moquegua
953522915 Movistar, 953721757 RPC, *0097178 RPM

--
_______________________________________________________________
Has recibido este mensaje porque estás suscrito al Grupo "Mundo Visual
FoxPro" de Grupos de Google.
 
Para anular la suscripción a este grupo, envía un mensaje a:
mundovisualfox...@googlegroups.com
---
Has recibido este mensaje porque estás suscrito al grupo "Mundo Visual FoxPro" de Grupos de Google.
Para anular la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a mundovisualfox...@googlegroups.com.
Para acceder a más opciones, visita https://groups.google.com/d/optout.

HernanCano

unread,
Nov 29, 2015, 9:14:49 PM11/29/15
to Mundo Visual FoxPro
Zarlu:
Deberías probar lo que te dije:
Con
 report form (mEjeRep) object type 20

envías directo a generar el PDF sin que aparezca lo que en tu mente llamas "vista previa".

Zarlu

unread,
Nov 30, 2015, 9:52:06 AM11/30/15
to Mundo Visual FoxPro
Buenos días!
Gracias Hernan
 
Mi última publicación menciona que ya lo pude implementar y pongo a consideración dos códigos para hacerlo.
Teniendo en consideración que mi problema final ya no era generar el informe en pdf  sin vista previa (preview=vista anticipada=vista previa) sino que al convertir a pdf no aparecían las imagenes del informe.
Al fin de cuentas el segundo código cae en lo que mencionaste, pero con "object type 10". Y complemento los códigos mencionando que archivos debí de incluir para lograrlo (aparte del foxypreviewer).
 
Probaré con "object type 20" par notar los cambios.
 
Gracias de nuevo.
Reply all
Reply to author
Forward
0 new messages