Reportes En Vfp

  • Uploaded by: Carlos Mendez
  • 0
  • 0
  • February 2021
  • PDF

This document was uploaded by user and they confirmed that they have the permission to share it. If you are author or own the copyright of this book, please report to us by using this DMCA report form. Report DMCA


Overview

Download & View Reportes En Vfp as PDF for free.

More details

  • Words: 46,633
  • Pages: 288
Loading documents preview...
Introducción XFRX es una herramienta para transformar informes de Visual FoxPro a formatos electrónicos. Se puede incorporar a las aplicaciones de Visual FoxPro para proporcionar la siguiente funcionalidad:  





Informes de vista previa en una herramienta de vista previa de informes localizable avanzada con capacidades de hipervínculo, desglose y búsqueda Convertir informes de salida en varios formatos de salida (los formatos de salida admitidos actualmente son: PDF, DOC, DOCX, RTF, XLS, XLSX, HTML, MHT, ZIP, TXT, ODT (OpenOffice Writer), ODS, XML, XFF (DBF), BMP , PNG, JPEG, GIF y TIFF multipágina). Almacene los informes generados en un formato de archivo de entrada-salida interno con una opción para modificar el contenido generado: agregue gráficos, formas, páginas nuevas, genere objetos gráficos personalizados (por ejemplo, gráficos, marcas de agua) y muchos más. El formato de archivo interno se puede convertir a cualquiera de los formatos de salida sin necesidad de volver a procesar el informe. Alternativamente, puede omitir el motor de creación de informes, crear cualquiera de los formatos de salida admitidos por XFRX desde cero, directamente para su código de Visual FoxPro.

XFRX es un producto libre de regalías. Se puede agregar a las aplicaciones de Visual FoxPro sin ningún costo adicional. Lea el capítulo Licencia para obtener más detalles.

XFRX está disponible para Visual FoxPro 5.0, 6.0, 7.0, 8.0 y 9.0. XFRX contiene su propio motor de informes que se utiliza en VFP 8.0 y versiones anteriores. En VFP 9.0, XFRX se conecta a la nueva arquitectura de informes del motor de informes nativo. Las diferencias entre XFRX para VFP 5.0, 6.0, 7.0 y 8.0 y XFRX para VFP 9.0 se describen en detalle en este documento. Tenga en cuenta: para que el texto sea más fácil de leer, estas diferencias se describen como diferencias entre VFP 8.0 y VFP 9.0. Si VFP 8.0 se menciona más adelante en el texto, también se aplica a VFP 5.0, 6.0 y 7.0.

Informe de FoxPro: definición del informe de FoxPro, almacenado en archivos .FRX, .FRT Motor de informes: el motor de informes que procesa la definición del informe. XFRX para VFP 8.0 y anteriores contiene su propio motor de informes. En VFP 9.0, XFRX se conecta a la nueva arquitectura de informes y se utiliza el motor de informes nativo. Scripts : métodos o fragmentos de código escritos en VFP. Los scripts llaman a los métodos de la clase XFRX # DRAW para "dibujar" en el documento generado. Puede encontrar más información sobre el uso de scripts en Dibujar objetos personalizados con el capítulo XFRX # DRAW en la página 48. Scripts de objetos personalizados : scripts vinculados a un objeto rectangular en un informe. Cuando se procesa el rectángulo, se invoca el guión en lugar de representar el rectángulo real. Los scripts de objetos personalizados pueden alternativamente convertirse en imágenes. Cuando estos scripts se procesan, la tabla de control del informe está disponible, por lo que estos scripts son ideales para generar gráficos u otros objetos gráficos basados en datos. Scripts enlazados a la página : scripts invocados en cada página, dibujando "arriba" de "debajo" del contenido de la página. Estos scripts son adecuados para marcas de agua. Scripts personalizados : también puede modificar los informes generados. Puede agregar texto, gráficos, páginas nuevas, hipervínculos, marcadores, etc. Incluso puede crear documentos nuevos desde cero, evitando por completo el motor de informes. Archivo XFF : un archivo interno que almacena los informes generados. Estos archivos se pueden modificar, almacenar en el disco, previsualizar en la pantalla, imprimir o convertir a cualquiera de los formatos de destino. Puede encontrar más información sobre los archivos XFF en el capítulo Uso de archivos XFF . XFRX # SORTEO clase - la clase que envuelve archivos XFF. Previsualizador de XFRX: los archivos XFF se pueden previsualizar en una vista previa de informe avanzada que viene con XFRX. La vista previa se puede localizar y permite buscar en el documento y admite hipervínculos y marcadores. Puede encontrar más información sobre el uso de la previsualización en el capítulo de previsualización de XFRX . Impresora : XFRX también puede imprimir los archivos XFF. Encontrará más información sobre cómo imprimir en el capítulo Impresión de archivos XFF .

Versión de evaluación sugerencia rápida Para obtener una vista previa rápida de las capacidades de XFRX, descomprima todo el archivo zip en un directorio vacío y ejecute DEMO.SCX en VFP 6.0 a VFP 8.0 o DEMO9.SCX en VFP 9.0. XFRX consta de las siguientes partes: 

XFRX.APP, XFRX.FXP o XFRX.PRG Esta es la aplicación principal. La versión de demostración contiene XFRX.APP, la versión comercial se distribuye como XFRX.FXP para una compilación más sencilla en las aplicaciones de destino (consulte Distribución de XFRX con otras aplicaciones a continuación). Las opciones del código fuente se distribuyen como XFRX.PRG.



XFRXLIB.FLL, HNDLIB.DLL, ZLIB.DLL , MD5.FLL MD5.fll es necesario para XFRX 16.0. Bibliotecas de soporte. ZLIB.DLL es una utilidad de compresión de software gratuito, consulte http://www.zlib.org para obtener más información.

 

  

FOXTOOLS.FLL Esta biblioteca necesita XFRX compilada bajo VFP 5, VFP 6 o XFRX empaquetada para VFP6 y 7. Directorio XFRXLIB Este directorio contiene la biblioteca de clases del componente XFRX previewer y sus archivos de recursos. xfrx.sign.net.exe Este archivo muestra el archivo pdf de salida. xfrxt.exe Este archivo convierte xml a html plain. XLSXTemplate.zip Archivo de plantilla para el procedimiento XFRX_CopyToXLSX ().

La instalación es simple: desempaquete el archivo zip y asegúrese de que los archivos sean accesibles desde VFP (pueden colocarse en un directorio local o la ruta se puede configurar a través del comando SET PATH).   

Cómo XFRX maneja diferentes versiones de Visual FoxPro Distribuir XFRX con otras aplicaciones Dependencias de XFRXLIB.FLL

Configuración de la clase UtilityReportListener en VFP 9.0 Desde la versión 12.4, la clase XFRXListener (que se usa al ejecutar informes en VFP 9.0 en el modo asistido por objetos (detector de informes)) se deriva de la clase UtilityReportListener, que no se incluye dentro de XFRX.PRG (XFRX.FXP) y debe ser provisto para que XFRX funcione correctamente. UtilityReportListener es una clase FFC que se ocupa, a través de su predecesor FXListener, de las nuevas funciones de informes dinámicos presentadas en VFP 9.0 SP2. Se implementa en la biblioteca de clases ReportListener.vcx, que está almacenada por defecto en el subdirectorio FFC del directorio de inicio de VFP. En el entorno de desarrollo, lo hace disponible ejecutando el siguiente comando: SET CLASSLIB TO (HOME () + "ffc \ _reportlistener")

Para distribuir UtilityReportListener con su aplicación, debe incluir los siguientes archivos FFC (todos disponibles en el directorio FFC):        

_reportlistener.vcx reportlisteners.h reportlisteners_locs.h foxpro_reporting.h _frxcursor.vcx _frxcursor.h _gdiplus.vcx gdiplus.h

Un inconveniente de incluir las clases de FFC en su proyecto es que agregan casi 1 MB al tamaño del archivo ejecutable final, por lo que alternativamente, si no utiliza las funciones dinámicas en el SP2 y desea reducir el tamaño del archivo ejecutable final, puede usar un Implementación de UtilityReportListener que viene con el paquete XFRX en UtilityReportListener.zip. Esta implementación corresponde a la clase FFC anterior al SP2 y solo tiene unos 30 KB. Para utilizar la implementación alternativa, agregue los siguientes archivos a su proyecto (todos disponibles en el archivo UtilityReportListener.zip):    

reportlisteners.h reportlisteners_locs.h foxpro_reporting.h utilityReportListener.prg

y hacer visible la implementación ejecutando el siguiente comando antes de ejecutar XFRX: CONFIGURAR EL PROCEDIMIENTO PARA utilityReportListener.prg ADDITIVE

Cómo XFRX maneja diferentes versiones de Visual FoxPro XFRX para VFP 8 contiene su propio motor de informes que imita el comportamiento del motor de informes nativo de Visual FoxPro. XFRX para VFP 9 se implementa como una clase XFRXListener, un descendiente de la clase UtilityReportListener (consulte _REPORTLISTENER.VCX en FFC para obtener más información acerca de las clases básicas de escucha de informes proporcionadas por FFC). La clase XFRXListener cumple con los estándares de informes asistidos por objetos presentados en VFP 9 y se ajusta perfectamente a la nueva arquitectura abierta. Puede usarlo solo o en combinación con otros oyentes de informes proporcionados con el producto o por terceros. Alrededor del 95% de XFRX está escrito en Visual FoxPro y, para que la implementación sea lo más fácil posible, todo su código fuente (sin las clases visuales para el contenedor de previsualización del informe) está en un archivo PRG, tanto para VFP 8.0 como VFP 9.0: XFRX.PRG. Este archivo PRG es el mismo para todas las versiones de VFP. Si compra XFRX sin códigos fuente, podrá descargar XFRX.FXP compilado en la versión de VFP que esté utilizando.

Si compra el código fuente, antes de agregar XFRX.PRG en su proyecto y compilarlo, debe habilitar (descomentar) uno de los comandos #DEFINE al comienzo de XFRX.H, que determina la versión de VFP que está utilizando. Ejemplo : si se usa XFRX en VFP 8.0, el comienzo de XFRX.H se vería así: XFRX.H 1 *#DEFINE VFP5 2 *#DEFINE VFP6 3 *#DEFINE VFP7 4 #DEFINE VFP8 5 *#DEFINE VFP9

Diferencias entre XFRX para VFP 8.0 y XFRX para VFP 9.0 Como está escrito en el párrafo anterior, XFRX para VFP 9.0 usa el motor de informes nativo, que tiene las siguientes ventajas: 1. El diseño de los documentos producidos por XFRX para VFP 9.0 generalmente debería ser más exacto, ya que el mismo motor se usa tanto para imprimir como para generar documentos. 2. XFRX para VFP 9.0 es aproximadamente dos veces más rápido que XFRX para VFP 8.0. 3. Las variables declaradas como LOCAL no son visibles en XFRX para VFP 8.0. 4. XFRX para VFP 8.0 tiene algunas restricciones en el manejo del entorno de datos. Es capaz de configurar el entorno de datos, abrir tablas, establecer relaciones y activar los métodos de entorno de datos, pero la instancia del entorno de datos en sí no está disponible. Esta restricción no se aplica a VFP 9.0. 5. XFRX para VFP 9.0 puede mostrar cualquier contenido de campos generales, incluidos los componentes ActiveX. XFRX para VFP 8.0 puede extraer solo imágenes BMP y JPEG de los campos generales. 6. XFRX para VFP 8.0 no es compatible con el diseño de múltiples columnas donde los registros se colocan de izquierda a derecha (en lugar de ir de arriba a abajo). Esta limitación no se aplica a VFP 9.0.

Distribuir XFRX con otras aplicaciones La mejor forma de distribuir XFRX es incluir XFRX.FXP (o XFRX.PRG, si compró la opción de código fuente) en el exe de la aplicación de destino (agréguelo a su proyecto, a la sección donde están sus PRG). De esta forma, no tendrá que distribuir este archivo y, lo que es más importante, XFRX podrá acceder a los informes y otros archivos de recursos (imágenes, tablas, etc.) incorporados en el archivo ejecutable. Si está usando la vista previa de XFRX, agregue los archivos apropiados del directorio XFRXLIB a su proyecto también. Las bibliotecas de soporte (XFRXLIB.FLL, HNDLIB.DLL, MD5.FLL y ZLIB.DLL) no se pueden incluir en el exe y deben distribuirse junto con la aplicación. Deben ubicarse en el mismo directorio donde está el EXE principal o en un directorio definido en el comando SET PATH.

Dependencias de XFRXLIB.FLL XFRXLIB.FLL requiere que se instalen otras tres bibliotecas DLL de Microsoft en los equipos de destino: gdiplus.dll, msvcr71.dll y msvcp71.dll. Si intenta utilizar XFRX con XFRXLIB.FLL sin estas DLL instaladas, el método SetParams () devolverá -6, "xfrxlib.fll no se puede cargar (falta o no es válido)". Todas estas bibliotecas dll pueden descargarse del sitio web de Eqeus o Microsoft:   

msvcr71.dll: biblioteca de tiempo de ejecución de Microsoft Visual C ++ 7.1. Si no está instalado en su PC, puede descargarlo desde http://www.eqeus.com/files/msvcr71.zip msvcp71.dll: biblioteca de tiempo de ejecución de Microsoft Visual C ++ 7.1. Puede descargarlo desde: http://www.eqeus.com/files/msvcp71.zip gdiplus.dll: esta DLL está incluida con Windows XP y, si no está disponible en su PC, puede descargarla desde http://www.microsoft.com/msdownload/platformsdk/sdkupdate/psdkredist.htm

  

Funciones extendidas Formatos de imagen admitidos Características experimentales

XFRX actualmente es compatible con los siguientes tipos de salida: Tipo de Documen to

Valor del tipo de objetivo

Compat ible desde laversió n XFRX

Fec ha

Dise ño

Notas

Document o PDF

PDF

6.5

caja

Document o PDF

DOC2PDF

15.0

201 40511

caja

Una salida alternativa a través de la función MS Word PDF Export . MS Word (versión 2007 o superior) debe estar instalado

Document o PDF

FDOC2PDF

15.0

201 40511

caja

Una salida alternativa a través de la función MS Word PDF Export. MS Word (versión 2007 o superior) debe estar instalado

Document o XPS

XPS

12.3

200 70821

caja

Document o de Word con diseño absoluto

DOC

6.5

Document o de Word con diseño de flujo

FDOC

9.8

Document o de Word con diseño absoluto, nativo

NATIVE_D OCX

14.7

caja

MS Word (versión 2000 o superior) debe estar instalado

200 40902

fluir

MS Word (versión 2000 o superior) debe estar instalado

201 31130

caja

MS Word no necesita ser instalado

Document o de Word con diseño absoluto, nativo

DOCX

14.6

201 31104

caja

MS Word (versión 2007 o superior) debe estar instalado

Document o de Word con diseño de flujo, nativo

NATIVE_FD OCX

14.7

201 31130

fluir

MS Word no necesita ser instalado

Document o de Word con diseño de flujo, nativo

FDOCX

14.6

201 31104

fluir

MS Word (versión 2007 o superior) debe estar instalado .

Document o RTF con diseño absoluto

RTF

9.0

200 40103

caja

"RTF" y "FRTF" no requieren que se instale ningún producto de terceros y se pueden abrir en MS Word 97 y versiones posteriores.

Document o RTF con diseño de flujo

FRTF

10.0

200 50420

fluir

El documento "FRTF" también se puede abrir con ciertas limitaciones en Open Office ( http://www.openoffice.org ) y PC Suite ( http://www.software602.co m/products/pcs ). Open Office no admite gráficos en RTF, por lo que las líneas, los rectángulos y las imágenes no se mostrarán. PC Suite no muestra líneas y rectángulos correctamente, sin embargo, las imágenes se muestran correctamente.





Document o de OpenOffic e Writer con diseño absoluto

ODT

11.2

200 512-6

caja

Document o de OpenOffic e Writer con diseño de flujo

calzado

11.2

200 5126

fluir

Hoja de cálculo de OpenOffic e Calc con diseño absoluto

SAO

12.0

200 60817

caja

Hoja de cálculo de OpenOffic e Calc con diseño de flujo

PIE

12.0

200 60817

celd a

Hoja de cálculo de OpenOffic e Calc: diseño plano

PFODS

15.0

201 40511

celd a

Document o de Excel

XLS

7.0

200 30825

celd a

MS Excel (versión 2000 o superior) debe estar instalado

Document o de Excel - diseño simple

XLSPLAIN

14.4

201 20911

celd a

MS Excel (versión 2000 o superior) debe estar instalado.Vea más en características específicas de Excel / Salida simple (XLSPLAIN)

Document o de Excel, nativo

NATIVE_FX LSX

15.1

201 40805

celd a

MS Excel no necesita ser instalado

Document o de Excel: diseño plano, nativo

NATIVE_PF XLSX

15.1

201 40805

celd a

MS Excel no necesita ser instalado

Document o de texto plano

LLANURA

9.7

200 40721

fluir

Document o de texto simple: diseño simple

CPLAIN

17.2

201 70817

fluir

Document o HTML

HTML

6.5

Document o HTML diseño simple

HTMLPLAI N

15.0

Document o HTML con gráficos incluidos

MHT

6.5

Document o XML

XML

9.0

Document o XFF (document o binario interno)

XFF

6.5

-

Previsuali zador de XFRX

CNT

6.5

-

Imágenes

TIFF, TIF (15.5) , BMP, GIF, JPEG, JPG (15.5) , PNG

9.5

200 40401

EMF

15.3

201 5-

caja 201 40511

fluir

Ver más en características específicas de HTML / Salida simple

caja

200 40103

-

caja

Los documentos "XML" y "XFF" pueden cargarse y previsualizarse o transformarse en otros tipos de salida

O puede usar el método SavePicture ()

0121 Impresión

10.2

200 50520

caja

Método PrintDocument ()

Ejecutando XFRX Usuario desconocido (mst) Última modificación el 16 de junio de 2017 por martinajindrova

Cuando se ejecuta XFRX, devuelve una instancia de una de tres clases, dependiendo de un parámetro pasado. Los parámetros disponibles son: 1. "XFRX # INIT" Al ejecutar XFRX con este parámetro, se devolverá la instancia de la clase XFRXSession, que es la clase principal que controla el comportamiento de XFRX en VFP 5, 6, 7 y 8. 2. "XFRX # LISTENER" Esta opción solo está disponible en Visual FoxPro 9 y devuelve una instancia de la clase XFRXListener. 3. "XFRX # DRAW" Esta opción devuelve una instancia de la clase XFRX # DRAW. Esta clase se usa para trabajar con archivos XFF. Consulte Inicializar el capítulo de instancia de la clase XFRX # DRAW en la estructura 44 para obtener más información. Nota importante La versión de evaluación de XFRX no se puede incluir en proyectos de VFP, hace que VFP falle. Para evitar esto, invoque XFRX a través de la sustitución de macros: 1 LOCAL m.loSession 2 m.loSession = EVALUATE("xfrx('XFRX#INIT')") De esta forma XFRX.APP no entra en el proyecto y podrá compilar su aplicación sin problemas.    

Ejecutando XFRX en VFP 9.0 Usando THISFORM y THIS references Algoritmo de envoltura de palabras compatible con GDI + Recorte de salida de texto

         

Mostrando la barra de progreso en VFP 8.0 Mostrando barra de progreso en VFP 9.0 Cancelando la generación de informes en progreso Imprimir rangos de página Tamaño de página definido por el usuario Comprimir los archivos generados Viejo comportamiento multilínea XFRX # INIT y soporte multibanda XFRX # LISTENER y PREVIEW (XFRX 15.3) Ejecutando XFRX en MTDLL

Ejecución de XFRX en VFP 5.0, 6.0, 7.0 y 8.0 tenga en cuenta Para que el texto sea más fácil de leer, las diferencias entre XFRX para VFP 5.0, 6.0, 7.0, 8.0 y XFRX para VFP 9.0 están más allá en el texto descrito como diferencias entre VFP 8.0 y VFP 9.0. Si se menciona VFP 8.0, la característica descrita también se aplica a VFP 5.0, 6.0 y 7.0. 1. Llame a XFRX con "XFRX # INIT" como parámetro para obtener el objeto XFRXSession: 1 LOCAL m.loSession 2 m.loSession=XFRX("XFRX#INIT") 2. Llame al método SetParams para establecer los parámetros de generación de documentos. (Consulte la página 80 para obtener más información y una lista de parámetros completa). 3. Si SetParams devuelve 0 (cero), llame al método ProcessReport para que cada informe lo procese. (Consulte la página 91 para obtener detalles y una lista de parámetros completa). 4. Una vez procesados todos los informes, llame al método Finalizar para finalizar el proceso de generación de documentos. 5. También puede llamar al método ResetPageNo () si necesita restablecer el número de página entre informes. Ejemplo 1 Este código combina dos informes, informe1 e informe2, en un único documento PDF, output.pdf 1 USE demoreps\invoices ORDER customer 2 LOCAL m.loSession, m.lnRetval 3 m.loSession= xfrx("XFRX#INIT") 4 m.lnRetVal = m.loSession.SetParams("output.pdf",,,,,,"PDF") 5 IF m.lnRetVal = 0 6

m.loSession.ProcessReport("report1")

7

m.loSession.ProcessReport("report2")

8

m.loSession.finalize()



9 ELSE 10

? m.lnRetVal

11 ENDIF

Ejecutando XFRX en VFP 9.0 En VFP 9.0, el modo estándar asistido por objetos se usa para ejecutar XFRX: 1. Llame a XFRX.APP con "XFRX # INIT" como parámetro para obtener el objeto XFRXListener: loListener=XFRX("XFRX#LISTENER") 2. Ahora hay dos opciones entre las que puede elegir: a. Llame al método SetParams de loListener que tiene exactamente los mismos parámetros y valores de retorno que el de la clase XFRXSession. (Consulte la página 80 para obtener más información y una lista de parámetros completa). b. O bien, puede completar las propiedades individuales de loListener y ejecutar el método SetParams sin ningún parámetro para asegurarse de que puede continuar con el siguiente paso. (Consulte la página 90 para ver la lista completa de propiedades disponibles). 3. Llame al comando nativo INFORMAR FORMATO con la nueva cláusula OBJETO para procesar cada informe. Si se combinan más informes, incluya la cláusula NOPAGEEJECT con cada llamada al formulario de informe, pero la última. 4. Alternativamente, también puede dejar la cláusula NOPAGEEJECT en el último comando FORMATO DE INFORME (que puede ser útil en algunos escenarios) y llamar a loListener.finalize () para finalizar la generación del documento.

Nota Incluso en VFP 9.0, puede inicializar la clase XFRXSession a través del parámetro "XFRX # INIT" y usar el propio motor del XFRX, en lugar del nativo. Los siguientes ejemplos hacen exactamente lo mismo (y también hacen exactamente lo mismo que en el ejemplo 1 anterior), que muestran varias formas de llamar a XFRX en VFP 9.0: Ejemplo 2 1 USE demoreps\invoices ORDER customer 2 LOCAL m.loSession, m.lnRetval 3 m.loSession = XFRX("XFRX#LISTENER") 4 m.lnRetval = loSession.SetParams("output.pdf",,,,,,"PDF")

5 IF m.lnRetval = 0 6

REPORT FORM report1 OBJECT m.loSession NOPAGEEJECT

7

REPORT FORM report2 OBJECT m.loSession

8 ELSE 9

? m.lnRetval

10 ENDIF Ejemplo 3 1 USE demoreps\invoices ORDER customer 2 LOCAL m.loSession, m.lnRetval 3 m.loSession = XFRX("XFRX#LISTENER") 4 m.lnRetval = m.loSession.SetParams("output.pdf",,,,,,"PDF") 5 IF m.lnRetval = 0 6

REPORT FORM report1 OBJECT m.loSession NOPAGEEJECT

7

REPORT FORM report2 OBJECT m.loSession NOPAGEEJECT

8

m.loSession.finalize()

9 ELSE 10

? m.lnRetval

11 ENDIF Ejemplo 4 1 USE demoreps\invoices ORDER customer 2 LOCAL m.loSession, m.lnRetval 3 m.loSession = XFRX("XFRX#LISTENER") 4 m.loSession.targetType = "PDF" 5 m.loSession.targetFileName = "output.pdf" 6 m.lnRetval = m.loSession.SetParams() 7 IF m.lnRetval = 0 8

REPORT FORM report1 OBJECT m.loSession NOPAGEEJECT

9

REPORT FORM report2 OBJECT m.loSession

10 ELSE 11

? m.lnRetval

12 ENDIF

Usando THISFORM y THIS references Nota Este párrafo se aplica solo a VFP 8.0. THISFORM y THIS references son manejados correctamente por el motor de informes nativo en VFP 9.0. XFRX es compatible con THISFORM y THIS en las expresiones del campo del informe. Sin embargo, al ser una aplicación VFP normal, XFRX no puede acceder a THISFORM y THIS objetos directamente. En cambio, el objeto THISFORM debe enviarse explícitamente a XFRX a través del método setThisform (), ESTO debe enviarse mediante el método setThis (). Si tiene THISFORM en su informe, llame a xfrxSession.setThisform (THISFORM) antes de llamar a ProcessReport (). Si está utilizando ESTO, llame a xfrxSession.setThis (THIS).

Algoritmo de envoltura de palabras compatible con GDI + Desde la introducción de VFP 9.0 estamos experimentando problemas de compatibilidad de diseño entre el antiguo motor de informes (antes de VFP 9.0) y el nuevo motor de informes (VFP 9.0). Consulte el tema de ayuda de la Guía de mejoras de informes de VFP 9.0 para obtener más información. Con XFRX estamos experimentando un problema similar: mientras que el motor de informes pre-VFP 9.0 dentro de XFRX está utilizando GDI para el cálculo del diseño y del envío de palabras, el informe de VFP 9.0 que se usa en XFRX para VFP 9.0 usa GDI +. Además, XFRX usa GDI + para imprimir, generar imágenes y previsualizar. La principal diferencia entre usar GDI y GDI + es el ancho del texto. Cada elemento de texto es ligeramente más ancho con GDI +, lo que puede hacer que se corte el contenido del elemento, envolviendo más temprano los campos estirados. Aquí hay un resumen:

XFRX ver. 12.3 y anterior VFP 9.0

VFP 8.0 y versiones anteriores

GDI

GDI

Motor de informes

GDI +

GDI

Vista previa del informe

GDI +

GDI +

Impresión fuera de XFRX

GDI +

GDI +

Salida a PDF y otros formatos de salida

Aunque convertir todo en GDI + facilitaría la complejidad, traería otro problema: es posible que haya que modificar los informes "antiguos", consulte el tema de ayuda Cambios en la funcionalidad del tema de versión actual de VFP 9.0 para obtener más información. Por lo tanto, en su lugar, la última versión de XFRX ahora contiene algoritmos de engastado de palabras GDI y GDI + y puede elegir cuál se va a usar. De manera predeterminada, GDI + se utiliza en VFP 9.0 en el modo de escucha y GDI se usa en VFP 8.0 anteriormente. Probablemente no haya ninguna razón para cambiar a GDI en VFP 9.0, pero a veces puede ser útil cambiar a GDI + ya que la impresión y la vista previa aún están en GDI +:

XFRX ver. 12.4 con el envío de palabras establecido en GDI + VFP 9.0

VFP 8.0 y versiones anteriores

Salida a PDF y otros formatos de salida

GDI +

GDI +

Motor de informes

GDI +

GDI +

Vista previa del informe

GDI +

GDI +

Impresión fuera de XFRX

GDI +

GDI +

XFRX ver. 12.4 con el envío de palabras establecido en GDI VFP 9.0

VFP 8.0 y versiones anteriores

GDI

GDI

Motor de informes

GDI +

GDI

Vista previa del informe

GDI +

GDI +

Impresión fuera de XFRX

GDI +

GDI +

Salida a PDF y otros formatos de salida

Para configurar manualmente el algoritmo de engastado de palabras, antes de ejecutar sus informes, cree una variable pública o privada _xfrx_WordWrapAlgorithm y configúrela en 1 para el modo GDI y 2 para el modo GDI +.

Recorte de salida de texto En VFP 9.0, el modo de recorte se controla mediante el ajuste " Modo de ajuste para expresiones de caracteres " en la pestaña "Formato" en el formulario "Propiedades de campo". En la versión anterior a VFP 9.0, el recorte está controlado por una cadena especial en el comentario de campo: #UR TRIM =, seguido del código del modo de recorte:

Código

Descripción

0

Recorte predeterminado en versiones anteriores a VFP 9.0: recorte a la palabra más cercana

1

Recortar al personaje más cercano

2

Recortar a la palabra más cercana

3

Recorte al personaje más cercano, añada puntos suspensivos

4

Recorte a la palabra más cercana, añada puntos suspensivos

5

Mostrar el camino interno como puntos suspensivos

Ejemplo: #UR TRIM = 3 se ajusta al carácter más cercano y agrega puntos suspensivos

Mostrando la barra de progreso en VFP 8.0 XFRX proporciona un enlace simple para que cualquier herramienta de barra de progreso se pueda usar para mostrar el progreso durante el proceso de generación de documentos. Todo lo que tiene que hacer es crear un objeto que contenga el método updateProgress () y pasarlo a XFRX. Durante el proceso de generación, XFRX llama al método updateProgress () después de cada página o después de que se procesa cada registro. Este es un ejemplo simple de mostrar el progreso de la generación en una ventana de espera: 1 LOCAL m.loSession, m.loProgress, m.lnRetVal 2 m.loSession=xfrx("XFRX#Init") 3 m.loProgress = CREATEOBJECT("progress") 4 m.lnRetVal = m.loSession.SetParams("document",,,,,,"PDF") 5 IF m.lnRetVal = 0 6

m.loSession.setProgressObj(loProgress,2)

7

m.loSession.ProcessReport("myReport")

8

m.loSession.finalize()

9 ENDIF 10 11 DEFINE CLASS progress AS CUSTOM 12 13

PROCEDURE updateProgress LPARAM m.ta, m.tb, m.tc

14 15

WAIT WINDOW NOWAIT "Page #: "+allt(str(m.tb))+" Report #: "+allt(str(m.ta))+" ("+ ENDPROC

16 ENDDEF El objeto de progreso se adjunta a XFRX con el método setProgressObj (). Este método toma dos parámetros: el primero es el objeto de progreso, el segundo define la información que obtendrá el progreso de actualización (). Puede contener dos valores: 1: solo se proporcionará el número de página y el número de informe en el método updateProgress (), o se proporcionará un número de 2 páginas, un número de informe y un progreso porcentual dentro del informe actual. El uso del porcentaje de información de progreso es más preciso y más adecuado para la visualización de la barra de progreso, pero para ello, XFRX debe calcular el número de registros en la tabla procesada, lo que, en ocasiones, puede exigir mucho tiempo. En estos casos, 1 puede usarse para no calcular la cantidad de registros. El método updateProgress toma tres parámetros: número de informe actual, número de página actual y progreso porcentual real dentro del informe actual.

Mostrando barra de progreso en VFP 9.0 En VFP 9.0, el objeto XFRXListener se puede encadenar junto con otro oyente que se ocuparía de la visualización de la barra de progreso. Una de las formas posibles de hacerlo es utilizar la clase UpdateListener, que se envía con VFP 9.0, en FFC. Ejemplo: Este código de ejemplo crea una instancia de la clase UpdateListener y la encadena con XFRXListener: 1 LOCAL m.loSession, m.loUpdate 2 m.loSession = XFRX("XFRX#LISTENER") 3 SET CLASSLIB TO (HOME()+"FFC\_reportlistener.vcx") 4 m.loUpdate = CREATEOBJECT("updatelistener") 5 m.loUpdate.thermFormCaption = "Report in progress ..." 6 m.loSession.successor = m.loUpdate 7 m.lnRetval = m.loSession.setparams("output.pdf",,,,,,"PDF") 8 IF lnRetval == 0 9 10

REPORT FORM (m.lcReportName) OBJECT loSession NOPAGEEJECT m.loSession.finalize()

11 ELSE

12

? m.lnRetval

13 ENDIF

Cancelando la generación de informes en progreso Nota Este párrafo se aplica tanto a VFP 9.0 como a VFP 8.0 El proceso de generación de informes en curso se puede cancelar estableciendo la variable global gnStopXFRX en 1. Por ejemplo, puede, por ejemplo, usarlo de esta manera: ON KEY LABEL Ctrl+C gnStopXFRX = 1

Imprimir rangos de página Nota: Este párrafo se aplica solo a VFP 8. En VFP 9.0, utilice la cláusula RANGE del comando FORM INFORMAR para lograr lo mismo.



Para definir el rango de páginas, llame al método setPageRange () antes de llamar a ProcessReport (). Hay dos formas posibles de llamar al método setPageRange (): setPageRange (tnFrom, tnTo) tnFrom y tnPara definir el rango desde-hasta. Si tnTo está vacío, se usa el número total de páginas Ejemplo: m.loSession.setPageRange(5,10)



setPageRange (tcRange) tcRange es una cadena, que puede contener números de página y rangos de página delimitados por comas, el rango de página se define como "de-a". Ejemplo:

m.loSession.setPageRange("1,4,10-20,25")

Tamaño de página definido por el usuario Nota Este párrafo se aplica tanto a VFP 80. como a VFP 9.0 Puede definir el tamaño de página del documento generado. El tamaño de página definido por el usuario anulará el tamaño de página almacenado en el informe. Para definir el tamaño de página definido por el usuario, llame al método setPaperSize () con el ancho del papel y la altura del papel como parámetros:

setPaperSize(nUDPaperWidth, nUDPaperHeight) La unidad es Inch * 10000. Consulte también: Ajuste del tamaño de página HTML en la página 34.

Comprimir los archivos generados Nota Este párrafo se aplica tanto a VFP 8.0 como a VFP 9.0 El archivo generado se puede comprimir automáticamente. Esta característica está controlada por los últimos tres parámetros del método SetParams () de las clases XFRXSession y XFRXListener (vea la referencia na stránce 80) o, con un comportamiento equivalente, por los tres parámetros del método ZipDocument () de la clase XFRXListener (referencia na stránce 90). Ejemplo: Con los siguientes parámetros de SetParams, XFRX primero crea "facturas.pdf", luego crea "archivo.zip" (si no existe) y agrega "facturas.pdf" en el archivo. Luego, se eliminará el original "facturas.pdf": m.loSession.SetParams("invoices.pdf",,.T.,,,,"PDF","archive.zip", .t., .t.)

Viejo comportamiento multilínea XFRX 15.0.3 corrige un error con un cálculo incorrecto de la altura de varias líneas: la altura del objeto no es igual a la altura del objeto en la vista previa nativa de VFP. si necesita el cálculo de altura de línea múltiple anterior, establezca la propiedad lOldMultiLineBehavior en verdadero. m.loSession.lOldMultiLineBehavior = .T.

XFRX # INIT y soporte multibanda Si tiene un informe con múltiples bandas de detalles y necesita ejecutarlo en la sintaxis de llamadas previa a VFP9 (por ej., Necesita exportar un informe en su aplicación dll), establezca la propiedad lMultiDetailBehavior. Esta característica es experimental. Esta propiedad está obsoleta desde XFRX 17.0. XFRX 17.0 admite múltiples bandas de detalles.

m.loSession.MultiDetailBehavior = .T.

XFRX # LISTENER y PREVIEW (XFRX 15.3) Admite la cláusula PREVIEW para XFRX # LISTENER en el comando INFORMAR. Sencillamente:

1 LOCAL m.loSession, m.lnRetVal 2 SET CLASSLIB TO (HOME()+"ffc\_reportlistener") ADDITIVE 3 SET CLASSLIB TO xfrxlib\xfrxlib ADDITIVE 4 5 m.loSession=EVALUATE([XFRX("XFRX#LISTENER")]) 6 m.lnRetVal = m.loSession.SetParams(,,

,,,,"PREVIEWFRM")

7 IF m.lnRetVal = 0 8

REPORT FORM (lcPath+"_reports\test") OBJECT m.loSession PREVIEW

9 ELSE 10

?m.loSession.ErrorMessage(m.lnRetVal)



11 ENDIF

Crea vista previa de forma: 1 LOCAL m.loSession, m.lnRetVal 2 SET CLASSLIB TO (HOME()+"ffc\_reportlistener") ADDITIVE 3 SET CLASSLIB TO xfrxlib\xfrxlib ADDITIVE 4 5 m.loSession=EVALUATE([XFRX("XFRX#LISTENER")]) 6 7 m.lnRetVal = m.loSession.SetParams(,,

,,,,"PREVIEWFRM")

8 IF m.lnRetVal = 0 9

m.loSession.oPreviewFRM = CREATEOBJECT("frmMPPreviewer")

10

m.loSession.oPreviewFRM.WindowType=0 && or another settings

11 12

REPORT FORM (lcPath+"_reports\test") object m.loSession PREVIEW

13 ELSE 14

?m.loSession.ErrorMessage(m.lnRetVal)



15 ENDIF

Ejecutando XFRX en MTDLL Por favor, lea la información sobre la clave PROGCACHE en la Ayuda de Visual FoxPro "Términos especiales para los archivos de configuración". 

Sin etiquetas

Notificaciones de banderas Documentación XFRX / Páginas / Guía del desarrollador

Funciones interactivas Usuario desconocido (mst) Modificado por última vez sep 26, 2017 por martinajindrova

Los documentos generados pueden incluir hipervínculos para una navegación más rápida, los documentos PDF también pueden incluir marcadores. Los hipervínculos y marcadores se controlan mediante el campo Comentario de etiquetas y campos. En la versión beta de VFP 9 hay un error que hace que sea imposible almacenar algo en el comentario de los campos. Debido a que XFRX usa el campo de comentario para definir

hipervínculos y marcadores, el campo "Datos de usuario" ahora se usa para este propósito. En la versión final, XFRX para VFP 9 funcionará tanto con los comentarios como con el campo de datos del usuario.    

Hipervínculos Creando campos fuente Creando campos objetivo Marcadores

Hipervínculos Este párrafo se aplica tanto a VFP 9 como a VFP 8. Los hipervínculos se controlan mediante el campo Comentario de las etiquetas o campos de informe. Para crear un enlace, necesita un campo de origen (el texto subrayado que va a navegar) y un campo de destino (el lugar donde se obtiene al hacer clic en un hipervínculo). Creando campos fuente Ingrese el siguiente texto en el comentario del campo fuente: #UR A HREF = <nombre de destino> El nombre de destino es una expresión, que se evalúa en el momento de la generación del informe. Puede navegar a otros campos en el mismo documento o a cualquier URL. Los nombres de destino de otros campos en el mismo documento deben estar precedidos por #. Ejemplos: #UR A HREF="#top" Navega hasta el comienzo del documento. "arriba" es una palabra reservada. No nombrar los campos de destino son "superiores". #UR A HREF="#custlist" Navega al campo cuyo nombre de destino es "custlist". #UR A HREF="#"+customer.id Se desplaza al campo cuyo nombre de destino es eval ( customer.id ) #UR A HREF="http://www.eqeus.com" Navega a la página principal de Eqeus.com Creating target fields To add a destination name to a (target) field, add the following text into the comment:

#UR A NAME=<destination name> Example: #UR A NAME=customer.id This field will be a target field for source fields with HREF="#"+customer.id

Bookmarks This paragraph applies both to VFP 9 and VFP 8. Bookmarks are currently supported in PDF, HTML documents and XFRX previewer. Bookmarks (document outline) serves as a "visual table of contents" to display the document structure. Users use this to interactively navigate in the document. To add a report field into the document outline simply put the following into the field's comment: #UR OUTLINE=

#UR OUTLINESTYLE= && 0 - normal, 1 - italic, 2 - bold, 3 - italic+b The outline_name is an expression, which is evaluated at the time of report generation and the result is used as the bookmark item. If users click the bookmark, they will navigate to the corresponding report field. Example: In a report with a list of invoices grouped by customers, bookmarks containing the list of customer can be created by adding #UR OUTLINE=invoices.customerName

#UR OUTLINESTYLE=IIF(ATC("a",invoices.customerName)>0,1,0)+IIF(ATC("t",invoices.customerN into the comment of a customer name field (or any other field you want to navigate to, e.g. the first field on a page with the customer).

To enable bookmarks in the HTML output, call 1 m.loSession.SetOtherParams("PRINT_BOOKMARKS",.T.)

2 m.loSession.SetOtherParams("PRINT_BOOKMARKS",.T.,1) && Only bookmarks from report<

3 m.loSession.SetOtherParams("PRINT_BOOKMARKS",.T.,2) && Only bookmarks to pages
XFRX 16.1 Methods SetOutline() and SetOutlineTypes() are deprecated since XFRX 16.1. Member oDocument of XFRX Session object is deprecated too. You can use member oDocumentWriter. XFRX 17.3 Member oDocument of XFRX Session object is removed. Methods SetOutline() and SetOutlineTypes() are removed too. 

Sin etiquetas

Notificaciones de banderas Documentación XFRX / Páginas / Guía del desarrollador

Propiedades del documento martinajindrova Modificado por última vez mar 22, 2017

Este párrafo se aplica tanto a VFP 9 como a VFP 8. Los métodos set ... se implementan en las clases XFRXListener y XFRXSession. Se pueden llamar los siguientes métodos para establecer varias propiedades del documento. Al generar un documento de Word, todas las propiedades del documento deben establecerse antes de que se procese el primer informe. Al exportar a PDF, las propiedades deben establecerse antes de llamar al método Finalize ().

Ejemplo 1 LOCAL m.loSession 2 m.loSession = EVALUATE([XFRX("XFRX#INIT")]) 3 m.lnRetVal = m.loSession.SetParams("pdf.docx",,,,,,"NATIVE_FDOCX")

4 IF m.lnRetVal = 0 5

m.loSession.setAuthor("author")

6

m.loSession.setTitle("title")

7

m.loSession.setSubject("subject")

8

m.loSession.setKeywords("keywords")

9

m.loSession.setCreator("creator")

10

m.loSession.setProducer("producer")

11

m.loSession.setCreationDate(CTOT("^1900-01-01 01:01:01"))

12

m.loSession.setComments("comments")

13

m.loSession.setCategory("category")

14

m.loSession.setManager("manager")

15

m.loSession.setCompany("company")

16 ENDIF

Salida

Autor

Título

Tema

Palabras clave

Creador

Productor

Fecha de creación

setAuthor

setTitle ()

setSubject

setKeywords ()

setCreator ()

setProducer ()

setCreationDate ()

()

()

PDF













sí (16.0)

DOC2PDF









-

-

-

FDOC2PDF









-

-

-

XPS

sí (16.0)

sí (16.0)

sí (16.0)

sí (16.0)

-

-

sí (16.0)

DOC









-

-

sí (16.0)

FDOC

sí (16.0)

sí (16.0)

sí (16.0)

sí (16.0)

-

-

sí (16.0)

Salida

Autor

Título

Tema

Palabras clave

Creador

Productor

Fecha de creación

NATIVE_DOCX









-

-

sí (16.0)

NATIVE_FDOCX









-

-

sí (16.0)

RTF

sí (16.0)

sí(16.0)

sí (16.0)

sí (16.0)

-

-



FRTF

sí (16.0)

sí (16.0)

sí (16.0)

sí (16.0)

-

-

sí (16.0)

ODT









-

-

sí (16.0)

calzado









-

-

sí (16.0)

SAO









-

-

sí (16.0)

PIE









-

-

sí (16.0)

PFODS









-

-

sí (16.0)

XLS

sí (16.0)

sí (16.0)

sí (16.0)

sí (16.0)

-

-

sí (16.0)

XLSPLAIN

sí (16.0)

sí (16.0)

sí (16.0)

sí (16.0)

-

-

sí (16.0)

NATIVE_FXLSX









-

-

sí (16.0)

NATIVE_PFXLSX









-

-

sí (16.0)

LLANURA

-

-

-

-

-

-

-

HTML









-

-

sí (16.0)

HTMLPLAIN

no

no

no

no

-

-

no

MHT









-

-

sí (16.0)

(16.0)

Salida

Autor

Título

Tema

Palabras clave

Creador

Productor

Fecha de creación

CNT / previewer

-

-

-

-

-

-

-

BMP

-

-

-

-

-

-

-

GIF

-

-

-

-

-

-

-

EMF

-

-

-

-

-

-

-

PELEA

sí (16.0)

sí (16.0)

sí (16.0)

sí (16.0)

-

-

sí (16.0)

JPEG

sí (16.0)

sí (16.0)

sí (16.0)

sí (16.0)

-

-

sí (16.0)

PNG

-

-

-

-

-

-

-

XFF

-

-

-

-

-

-

-

XML

-

-

-

-

-

-

-

Impresión

-

-

-

-

-

-

-



Notificaciones de banderas Documentación XFRX / Páginas / Guía del desarrollador

Sin etiquetas

Funciones específicas de PDF Usuario desconocido (mst) Modificado por última vez sep 26, 2017 por martinajindrova

XFRX 16.1 Miembro oDocument del objeto de sesión XFRX está en desuso. Puede usar miembro oDocumentWriter. XFRX 17.3 Miembro oDocument del objeto de sesión XFRX eliminado.

Anexar salida generada a documentos PDF existentes Este párrafo se aplica tanto a VFP 9 como a VFP 8. A partir de la versión 10.1, XFRX puede agregar el informe generado a un documento PDF existente. Es posible adjuntar el informe al final del documento o en una posición arbitraria dentro del documento: con insertar las páginas nuevas o reemplazar las páginas en el documento PDF existente. En XFRX para VFP 8, esta característica está controlada por un nuevo parámetro del método SetParams (...): tuAppend. Consulte la referencia del método SetParams para obtener más información sobre cómo configurar este parámetro. En XFRX para VFP 9 puede usar indistintamente el nuevo parámetro del método SetParams (...) o la propiedad AppendToFile de la clase XFRXListener. Notas 1. No se garantiza que XFRX pueda agregarse a ningún documento PDF. Funciona bien con documentos PDF generados por XFRX y también hemos probado con éxito PDF de otras fuentes, pero la especificación PDF permite algunas estructuras internas que XFRX no podría decodificar. (Para ser precisos: XFRX no admite documentos PDF linealizados ni documentos que usen estructuras de árbol de páginas). 2. Debido a la forma en que se construye el archivo PDF, el tamaño del documento PDF nunca se reduce, incluso si el número de páginas en el documento PDF resultante es más pequeño que en el original. Ejemplo: El informe TEST.FRX se agregará al documento TEST.PDF existente. Si el archivo TEST.PDF no existe, se creará. 1 LOCAL m.loXFRX, m.lnRetVal 2 m.loXFRX = XFRX("XFRX#LISTENER") 3 m.lnRetVal = m.loXFRX.SetParams("test.pdf",,,,,,"PDF",,,,.T.) 4 IF m.lnRetVal = 0 5

REPORT FORM test OBJECT m.loXFRX

6 ENDIF                          

Anexar salida generada a documentos PDF existentes Encriptación PDF Incrustación de fuente PDF Soporte de código de barras (#UR SYMBOLFONT) Parámetro de soporte UNICODE Firmas digitales en PDF Cómo invocar la firma digital Manifestación Campo de firma vacío Soporte PDF / A Invocando PDF / A Soporte CMYK Soporte de imagen negativo Soporte MASK - imagen transparente Formato de imagen predeterminado Modo de depuración Parámetro DONOTPUTDOCUMENTID Parámetros DEVELOP y DEVELOPFOLDER Parámetro DONOTZIPTEXTSTREAM Diseño de página, modo de página y preferencias del visor Versión PDF Tamaño de TAB Archivos adjuntos Agregar archivo adjunto - pdf Agregar un ejemplo de archivo adjunto - xml (ZUGFeRD - http://www.ferd-net.de/) Agregar un ejemplo de archivo adjunto - isdoc (ISDOC http://www.isdoc.org/index.php?l=2)

Encriptación PDF Este párrafo se aplica tanto a VFP 9 como a VFP 8. El método setPasswords se implementa tanto en las clases XFRXListener como XFRXSession. Los documentos PDF se pueden encriptar. Para configurar el cifrado, llame al método setPasswords: m.loSession.setPasswords(m.tcOwnerPassword, m.tcUserPassword) La contraseña del usuario puede estar vacía. Si la contraseña del propietario está vacía, se generará una cadena aleatoria como contraseña. Modo de agregar Method setPasswords() must be calls before method SetParams() for appending or replacing page in exsting file. The owner can do anything with the document. The user permissions can be set using the setPermission method: m.loSession.setPermissions(m.tlPrintDocument, m.tlModifyDocument, ;

m.tlCopyTextAndGraphics, m.tlAddOrModifyAnnotations,;
m.tlFillFormFields, m.tlExtractTextAndGraphics, ; m.tlAssembleDocument, m.tlPrintDocumentInLow) The default values of the permissions is .F. (false). Parameters tlFillFormFields, tlExtractTextAndGraphics, tlAssembleDocument, tlPrintDocumentInLow are since XFRX 16.1.

PDF Font Embedding This paragraph applies both to VFP 9 and VFP 8. The method is implemented both in XFRXListener and XFRXSession classes. XFRX supports both whole font and font subset embedding. To embed all characters of all used fonts, call: m.loSession.setEmbeddingType(2) before running the report. To embed only the characters used, call: m.loSession.setEmbeddingType(3) Embedding only subset of fonts (characters used in the document) significantly reduces the size of the generated file. To select which font to embed (e.g. when you need just to embed the barcode font, or font that is not installed on the pc the document will be sent to), add “#UR INCLUDEFONT” (without the quotation marks) to the comments of a field that uses the font (in the report). Add “#UR INCLUDEFONT SUBSET” comment to include the font subset. Special code pages XFRX set font embedding subset for special code pages (1250, 1251, 1257, 1254, 1253, 1255) and selected font (Arial, Arial CE, Arial Narrow, Arial Black, Courier New, Courier New CE, Times New Roman, Times New Roman CE) if detect national characters. XFRX set font embedding subset allways for Symbols or if you enable PDF/A support.

If you want change the default behavior (special code page) you can use parameter CHECKFONTFORSPECIALCODEPAGE (for disable or enable) or ADDFONTFORSPECIALCODEPAGE (for add font to list) - since XFRX 17.1 loSession.SetOtherParams("CHECKFONTFORSPECIALCODEPAGE",.F.) && Disable the behavior loSession.SetOtherParams("ADDFONTFORSPECIALCODEPAGE","Tahoma") && Add font to list

Barcode support (#UR SYMBOLFONT) (Obsolete since XFRX 15.7) Put "#UR SYMBOLFONT" into the comment of the report field that contains the barcode. This will instruct the engine not to do any codepage conversions and flag the font as a symbol font in the PDF document.

Parameter UNICODE support You can set UNICODE output for document. To select which font to embed as UNICODE (e.g. when you need just to embed the barcode font, or font that is not installed on the pc the document will be sent to), add “#UR INCLUDEFONT UNICODE” (without the quotation marks) to the comments of a field that uses the font - in the report (since XFRX 16.0). m.loSession.SetOtherParams("UNICODE",.T.)

Digital signatures in PDF The digital signature can be used to validate the document content and the identity of the signer. (You can find more at http://en.wikipedia.org/wiki/Digital_signature). XFRX implements the "MDP (modification detection and prevention) signature" based on the PDF specification version 1.7, published in November 2006. The signing algorithm in XFRX computes the encrypted document digest and places it, together with the user certificate, into the PDF document. When the PDF document is opened, the Adobe Acrobat (Reader) validates the digest to make sure the document has not been changed since it was signed. It also checks to see if the certificate is a trusted one and complains if it is not. The signature dictionary inside PDF can also contain additional information and user rights - see below. At this moment XFRX supports invisible signatures only (Acrobat will show the signature information, but there is no visual element on the document itself linking to the digital signature). We will support visible signatures in future versions. In the current version, XFRX is using the CMS/PKCS #7 detached messages signature algorithm in the .net framework to calculate the digest - which means the .NET framework 2.0 or newer is required. The actual process is run via an external exe - "xfrx.sign.net.exe", that is executed during the report conversion process. In future, we can alternatively use the OpenSSL library instead.

How to invoke the digital signing The syntax is the same for VFP 9.0 and pre-VFP 9.0 calling methods To generate a signed PDF document, call the DigitalSignature method before calling SetParams. The DigitalSignature method has 7 parameter: cSignatureFile The .pfx file. pfx, the "Personal Information Exchange File". This file contains the public certificate and (password protected) private key. You get this file from a certificate authority or you can generate your own for testing, which for example, OpenSSL

(http://www.slproweb.com/products/Win32OpenSSL.html). XFRX comes with a sample pfx that you can use for testing. cPassword The password protecting the private key stored in the .pfx file nAccessPermissions per PDF specification: 1 - No changes to the document are permitted; any change to the document invalidates the signature. 2 - Permitted changes are filling in forms, instantiating page templates, and signing; other changes invalidate the signature. (this is the default value) 3 - Permitted changes are the same as for 2, as well as annotation creation, deletion and modification; other changes invalidate the signature. cSignatureName per PDF specification: The name of the person or authority signing the document. This value should be used only when it is not possible to extract the name from the signature; for example, from the certificate of the signer. cSignatureContactInfo per PDF specification: Information provided by the signer to enable a recipient to contact the signer to verify the signature; for example, a phone number. cSignatureLocation per PDF specification: The CPU host name or physical location of the signing. cSignatureReason per PDF specification: The reason for the signing, such as ( I agree ... ).

Demo The demo application that is bundled with the package (demo.scx/demo9.scx) contains a testing self-signed certificate file (TestEqeus.pfx) and a sample that creates a signed PDF using the pfx. Please note Acrobat will confirm the file has not changed since it was signed, but it will complaing the certificate is not trusted - you would either need to add the certificate as a trusted one or you would need to use a real certificate from a certification authority (such as VeriSign).

Empty signature field Put #UR EMPTYSIGNATURE=expr into the comment of the report shape fro creating empty field for signature. Example: #UR EMPTYSIGNATURE="My Signature" This feature is since XFRX 17.1

PDF/A support PDF/A is an ISO standard for the digital preservation of electronic documents. PDF/A document is a PDF document with specific restrictions that ensure that the document will always display and print exactly the same way, no matter which platform or document viewer is used:

       

Platform independent No hidden or transparent content All information needed to display the document is embedded (including fonts) Document metadata stored as XML No encryption, no password protection No javascript or other executable parts No LZW compression Displayed and printed content must match (all annotations must be printed) There are currently two PDF/A specifications:

  

PDF/A-1 from 2005 PDF/A-2 from 2011 PDF/A-3 from 2014 XFRX currently supports specification:

Nivel PDFA

apoyo

no firmado

firmado

1a

yes

valid

valid

1b

yes

valid

valid

2a

yes

(XFRX 16.0)

valid

nonvalid

2b

yes

(XFRX 16.0)

valid

nonvalid

2u

yes

(XFRX 16.0)

valid

nonvalid

3a

yes

(XFRX 16.0)

valid

nonvalid

3b

yes (XFRX 16.0)

valid

nonvalid

3u

yes (XFRX 16.0)

valid

nonvalid

Please note the PDF/A-enabled document files can be significantly larger than regular PDF documents because the used fonts must always be included.

Invoking PDF/A To generate a PDF/A document, call SetPDFA(.T.,[lcLevel]) method on the session object before processing. This method is available in VFP8 and VFP9 session objects, as well as the XFRX#DRAW object. Example:

LOCAL m.loXFRX, m.lnRetVal m.loXFRX = EVALUATE([XFRX("XFRX#LISTENER")]) m.loXFRX.setpdfa(.T.) && 1b *m.loXFRX.setpdfa(.T.,"1a") && 1a *m.loXFRX.setpdfa(.T.,"1b") && 1b *m.loXFRX.setpdfa(.T.,"2a") && 2a *m.loXFRX.setpdfa(.T.,"2b") && 2b *m.loXFRX.setpdfa(.T.,"2u") && 2u *m.loXFRX.setpdfa(.T.,"3a") && 3a *m.loXFRX.setpdfa(.T.,"3b") && 3b *m.loXFRX.setpdfa(.T.,"3u") && 3u



m.lnRetVal = m.loXFRX.SetParams("pdfa9.pdf",,,1250,,,"PDF") IF m.lnRetVal = 0 REPORT FORM demoreps\invoices OBJECT m.loXFRX ENDIF

CMYK support Put #UR COLOR "CMYK" into the comment of the report images in CMYK.

Negative image support Put #UR COLOR "NEG" into the comment of the report images in negative colors.

MASK support - transparent image Put #UR MASK "[255 255 255 255 255 255]" for images with transparent colors. See to "Color Key Masking" in pdf reference. You can set general color for images with transaparent background (since XFRX 16.1) Default color is white - RGB(255,255,255) m.loSession.SetOtherParams("TRANSPARENTCOLOR",RGB(192,192,192))

Default picture format (since XFRX 16.2.0) PDF output knows only jpeg and bitmap pictures. Other format pictures converts to bitmap (default choice). You can change to jpeg.

m.loSession.SetOtherParams("DEFAULTPICTUREFORMAT",'jpeg')

Debug mode Parameter DONOTPUTDOCUMENTID On french OS you can have problem with searching in Adobe Reader. In this case you can set parameter DONOPUTDOCUMENTID, if you do not use passwords or digital signature. m.loSession.SetOtherParams("DONOTPUTDOCUMENTID,.T.)

Parameters DEVELOP and DEVELOPFOLDER If you set these parameters, xfrx copy temporary files into specified folder. m.loSession.setOtherParams("DEVELOP",.T.) m.loSession.setOtherParams("DEVELOPFOLDER",lcPath+"_out\"+lcOut)

Parameter DONOTZIPTEXTSTREAM If you set the parameter, output stream inside PDF will not be compressed. m.loSession.SetOtherParams("DONOTZIPTEXTSTREAM",.T.)

Page layout, Page mode and Viewer Preferences (since XFRX 16.0)

Paramete r

Value

PageLayo ut

specifying the page layout to be used when the document is opened

Description

"SinglePage"

Display one page at a time

"OneColumn"

Display the pages in one column

"TwoColumnLeft"

Display the pages in two columns, with oddnumbered pages on the left

"TwoColumnRight"

Display the pages in two columns, with oddnumbered pages on the right

PageMod e

"TwoPageLeft"

Display the pages two at a time, with oddnumbered pages on the left

"TwoPageRight"

Display the pages two at a time, with oddnumbered pages on the right

specifying how the document should be displayed when opened

"UseNone"

Neither document outline nor thumbnail images visible

"UseOutlines"

Document outline visible

"UseThumbs"

Thumbnail images visible

"FullScreen"

Full-screen mode, with no menu bar, window controls, or any other window visible

"UseOC"

Optional content group panel visible

"UseAttachments"

Attachments panel visible

Parameter

ViewerPreferences

Value

HideToolbar

.T.

PDF Versio n

Descriptio n

A flag specifying whether to hide the viewer application ’s tool bars when the document is active. Default

value: .F.. ViewerPreferences

HideMenubar

.T.

A flag specifying whether to hide the viewer application ’s menu bar when the document is active. Default value: .F..

ViewerPreferences

HideWindowUI

.T.

A flag specifying whether to hide user interface elements in the document’ s window (such as scroll bars and navigation controls), leaving only the document’ s contents displayed. Default value: .F..

ViewerPreferences

FitWindow

.T.

A flag specifying whether to resize the document’

s window to fit the size of the first displayed page. Default value: .F.. ViewerPreferences

CenterWindow

.T.

ViewerPreferences

DisplayDocTitle

.T.

A flag specifying whether to position the document’ s window in the center of the screen. Default value: .F.. 1.4

A flag specifying whether the window’s title bar should display the document title taken from the Title entry of the document informatio n dictionary (see Section 10.2.1, “Documen

t Informatio n Dictionary” ). If false, the title bar should instead display the name of the PDF file containing the document. Default value: .F..

ViewerPreferences

The document’ s page mode, specifying how to display the document on exiting full-screen mode.

NonFullScreenPageMode

"UseNone"

Neither document outline nor thumbnail images visible.

"UseOutlines"

Document outline visible.

ViewerPreferences

ViewerPreferences

"UseThumbs"

Thumbnail images visible.

"UseOC"

Optional content group panel visible.

Direction

1.3

The predomina nt reading order for text.

"L2R"

Left to right.

"R2L"

Right to left .

PrintScaling

1.6

"None"

The page scaling option to be selected when a print dialog is displayed for this document Indicates that the print

dialog should reflect no page scaling. Indicates that application s should use the current print scaling.

"AppDefault"

ViewerPreferences

Duplex

1.7

The paper handling option to use when printing the file from the print dialog.

"Simplex"

Print singlesided.

"DuplexFlipShort Edge"

Duplex and flip on the short edge of the sheet .

"DuplexFlipLong Edge"

Duplex and flip on the long edge of the

sheet.

ViewerPreferences

PickTrayByPDFSize

.T.

1.7

A flag specifying whether the PDF page size is used to select the input paper tray

ViewerPreferences

PrintPageRange

"0 1"

1.7

The page numbers used to initialize the print dialog box when the file is printed.

ViewerPreferences

NumCopies

2

1.7

The number of copies to be printed when the print dialog is opened for this file

1 LOCAL m.loSession, m.lnRetVal 2 m.loSession=EVALUATE([xfrx("XFRX#INIT")]) 3 m.lnRetVal = m.loSession.SetParams("some.pdf",,,,,,"PDF") 4 IF m.lnRetVal = 0

5

m.loSession.setOtherParams("PAGELAYOUT","SinglePage") && SinglePage, OneColumn, TwoC

6

m.loSession.setOtherParams("PAGEMODE","UseOutlines") && UseNone, UseOutlines, UseThu

7

m.loSession.setOtherParams("VIEWERPREFERENCES","HIDETOOLBAR",.F.)

8

m.loSession.setOtherParams("VIEWERPREFERENCES","HIDEMENUBAR",.F.)

9

m.loSession.setOtherParams("VIEWERPREFERENCES","HIDEWINDOWUI",.F.)

10

m.loSession.setOtherParams("VIEWERPREFERENCES","FITWINDOW",.F.)

11

m.loSession.setOtherParams("VIEWERPREFERENCES","CENTERWINDOW",.T.)

12

m.loSession.setOtherParams("VIEWERPREFERENCES","DISPLAYDOCTITLE",.T.)

13

m.loSession.setOtherParams("VIEWERPREFERENCES","NONFULLSCREENPAGEMODE","UseOC") && U

14

m.loSession.setOtherParams("VIEWERPREFERENCES","DIRECTION","L2R") && L2R,R2L
15

m.loSession.setOtherParams("VIEWERPREFERENCES","PRINTSCALING","AppDefault") && AppDe

16

m.loSession.setOtherParams("VIEWERPREFERENCES","DUPLEX","Simplex") && Simplex, Duple

17

m.loSession.setOtherParams("VIEWERPREFERENCES","PICKTRAYBYPDFSIZE",.T.)
18

m.loSession.setOtherParams("VIEWERPREFERENCES","PRINTPAGERANGE","0 0 1 1") && 0 1 (1

19

m.loSession.setOtherParams("VIEWERPREFERENCES","NUMCOPIES",2)

20 ENDIF

PDF version (since XFRX 16.1) You can set PDF version. Default version is 1.6 for XFRX 16.0, 1.7 for XFRX 16.1. Change PDF version must be first after calls setParams() method. m.loSession.setOtherParams("VERSION","1.5")

TAB size (since XFRX 17.0.0) Specifies the width, in characters, of a tab. Default value is 4. m.loSession.setOtherParams("TABSIZE",3)

Attachments (since XFRX 17.3) PDF 1.3 supports attachments. PDF/A-1 doesn't support attachments. PDF/A-2 does support attachments - only PDF file (PDF/A). PDF/A-3 does support attachments - any file. For add atttchment calls method addAttachment.

Add attachment example - pdf LOCAL m.loSession, m.lnRetVal m.loSession=EVALUATE([xfrx("XFRX#INIT")]) m.lnRetVal = m.loSession.SetParams("some.pdf",,,,,,"PDF") IF m.lnRetVal = 0

loSession.addAttachment("some.pdf",.T.,"","appliaction/pdf","Alternative")
Add attachment example - xml (ZUGFeRD - http://www.ferd-net.de/) LOCAL m.loSession, m.lnRetVal m.loSession=EVALUATE([xfrx("XFRX#INIT")])

m.lnRetVal = m.loSession.SetParams("some.pdf",,,,,,"PDF")m.loSession.setpdfa(.T., "3B")IF

loFile=loSession.addAttachment("ZUGFeRD-invoice.xml",.T.,"Rechnungsdaten im ZUGFeRD-XM loFile.CreateZUGFeRDMetadata("BASIC","INVOICE","1.0") && if you use PDFA ENDIF

Add attachment example - isdoc (ISDOC http://www.isdoc.org/index.php?l=2) LOCAL m.loSession, m.lnRetVal m.loSession=EVALUATE([xfrx("XFRX#INIT")])

m.lnRetVal = loSession.SetParams("some.pdf",,,,,,"PDF")m.loSession.setpdfa(.T., "3B")IF m

loFile=loSession.addAttachment("Faktura.isdoc",.T.,"ISDOC - formát elektronické faktur loFile.CreateISDOCMetadata("INVOICE","5.2") && if you use PDFA ENDIF



Sin etiquetas

Notificaciones de banderas Documentación XFRX / Páginas / Guía del desarrollador

Funciones específicas de Word Usuario desconocido (mst) Modificado por última vez sep 26, 2017 por martinajindrova

XFRX 16.1 Miembro oDocument del objeto de sesión XFRX está en desuso. Puede usar miembro oDocumentWriter. XFRX 17.3 Miembro oDocument del objeto de sesión XFRX eliminado.

Protección de contraseña Este párrafo se aplica tanto a VFP 9 como a VFP 8. El método setPasswords se implementa tanto en las clases XFRXListener como XFRXSession.         

Protección de contraseña División de documentos de Word Formato de documento de Word Salidas DOCX y FDOCX Generación de salida nativa Visión de conjunto Uso Carpeta del desarrollador para NATIVE_DOCX / NATIVE_FDOCX / DOC / FDOC Incrustación de fuente

Para agregar contraseñas a documentos de Word, llame al método SetPasswords () antes de llamar a ProcessReport ():

loSession.setPasswords(tcReadPassword, tcWritePassword, tlRequirePassword) Puede omitir tcReadPassword o tcWritePassword. tlRequirePassword es opcional (el valor predeterminado es .F.). Si se establece en .T., Word pedirá la contraseña incluso cuando el documento se abra por primera vez después de la generación (si el parámetro tlNotOpenViewer del método SetParams está establecido en .F.).

División de documentos de Word Este párrafo se aplica solo a VFP 8. Cuando los documentos generados son muy largos, la aplicación de Word tiene un problema con la conversión; lleva mucho tiempo convertirla. Para evitar este problema, XFRX puede dividir el documento generado en documentos más pequeños. Para configurar esto, llame al método SplitDocument () antes de llamar a ProcessReport (): m.loSession.SplitDocument(tnPages) tnPagesp es el número de páginas que tendrían cada uno de los documentos resultantes.

Formato de documento de Word Exportar al formato DOC utilizando Word 2010 o 2013 guardará el documento como documento DOCX. Desafortunadamente, esta fue la única forma de resolver el congelamiento intermitente de Word 2010, causado por cambios en el soporte de salida HTML en estas versiones. Puede cambiar este comportamiento llamando al método SetOtherParams () con "ALLWAYS_DOC". Ejemplo: m.loSession.setOtherParams("ALLWAYS_DOC",.T.)

Salidas DOCX y FDOCX Los nuevos tipos de salida ejecutan la conversión estándar (DOCX) o el diseño de flujo (FDOCX) y generan documentos de Word con la extensión DOCX (el formato OpenXML). Este tipo de salida requiere que Word 2007 o posterior se instale en la computadora. Using setPassword() method cause save output to Word97-2003 format. It's MS Word's behavior.

Native output generation Since version 14.7, XFRX can natively generate DOCX (OpenXML) documents. The Word application is not required and does not need to be installed to generate the

documents both in the absolute and flow layout. The generated documents are equivalent to the standard word documents generated by XFRX and can be opened in Word versions 2003 (with a plugin), 2007 and newer. The output type codes are "NATIVE_DOCX" (standard) and "NATIVE_FDOCX" (flow layout).

Overview Código de tipo de salida

Diseño estándar

Diseño de flujo

Formato de salida

Versión de Word necesaria para generar

La versión de Word es necesaria para ver

DOC

yes

no

DOC

2000+

2000+

FDOC

no

yes

DOC

2000+

2000+

NATIVE_DOCX

yes

no

DOCX

none

2003+

NATIVE_FDOCX

no

yes

DOCX

none

2003+

Usage All you need to do is to specify NATIVE_DOCX or NATIVE_FDOCX. This is a pure VFP implementation so no other setup is needed, except MD5.FLL library MD5.FLL, which is a free library implementing the MD5 algorithm. MD5.FLL was written by Duke Lotherington, Visual Records Consulting, 3944 Murphy Canyon Rd, San Diego CA 92123, [email protected] (http://www.leafe.com/dls/vfp) MD5.fll is unnecessary since XFRX 16.1.0.

Pre-VFP 9.0 mode 1 LOCAL m.loSession, m.lnRetVal 2 m.loSession= xfrx("XFRX#INIT") 3 m.lnRetVal = m.loSession.SetParams("output.docx",,,,,,"NATIVE_FDOCX") 4 IF m.lnRetVal = 0 5

m.loSession.ProcessReport("report1")

6

m.loSession.finalize()

7 ENDIF VFP 9.0 mode 1 LOCAL m.loXFRX, m.lnRetVal 2 m.loXFRX = XFRX("XFRX#LISTENER") 3 m.lnRetval = m.loXFRX.SetParams("output.docx",,,,,,"NATIVE_FDOCX") 4 IF m.lnRetval = 0 5

REPORT FORM report1 OBJECT m.loXFRX

6 ENDIF

Developer Folder for NATIVE_DOCX/NATIVE_FDOCX/DOC/FDOC Call SetOtherParams method with "DEVELOP" or "DEVELOPFOLDER" to define output folder for source files and folders of OpenXML. Example: m.loSession.setOtherParams("DEVELOP",.T.) m.loSession.setOtherParams("DEVELOPFOLDER","[FOLDER\]DEVELOPFOLDER")

Font Embedding You can call method setEmbeddingType() to embed font into the word document.



Notificaciones de banderas Documentación XFRX / Páginas / Guía del desarrollador

Sin etiquetas

Funciones específicas de RTF martinajindrova 30 de junio de 2017

Compatibilidad con LibreOffice Puede activar la compatibilidad de Libre Office para convertir wmf / emf a png. (XFRF 17.1.3) m.loSession.SetOtherParams("LO_COMPATIBILITY",.T.)



Sin etiquetas

Notificaciones de banderas Documentación XFRX / Páginas / Guía del desarrollador metadata.attachments

Opción de documento de diseño de flujo Usuario desconocido (mst) Modificado por última vez ene 08, 2017 por martinajindrova

Este capítulo enlaza con varios documentos de muestra en nuestro sitio web. Si está leyendo una versión electrónica de este documento, simplemente haga clic en los hipervínculos para descargarlos. Si está leyendo una versión impresa, aquí están las direcciones:

http://www.eqeus.com/xfrxmanual/example1.doc http://www.eqeus.com/xfrxmanual/example2.doc http://www.eqeus.com/xfrxmanual/example3.doc http://www.eqeus.com/xfrxmanual/example4.doc      

Ejecutando la conversión Cómo funciona Ejemplo 1 Ejemplo 2 Encabezados y pies de página Deficiencias Los documentos de Word, RTF, OpenOffice Writer y OpenOffice Calc tienen dos opciones de salida: "Diseño de posición absoluta" y "Diseño de flujo". Los documentos generados a menudo se ven iguales, pero los algoritmos detrás de estas opciones son completamente diferentes. El diseño de posición absoluta siempre se parece al informe original, pero es difícil de editar y de mayor tamaño. El diseño de flujo no siempre se ve exactamente igual, pero es un documento de Word 'real' - fácilmente editable, con estilos, encabezados y pies de página, párrafos y tabulaciones, que también es más corto en tamaño y más rápido de abrir. Cada una de las opciones de salida tiene su propio código del parámetro que se envía en el 7 º parámetro (targetType) del método setParams:

Tipo de Documento

tipo de objetivo parámetro

Documento de Word con diseño absoluto

DOC

Documento de Word con diseño de flujo

FDOC

Documento RTF con diseño absoluto

RTF

Documento RTF con diseño de flujo

FRTF

Documento de OpenOffice Writer con diseño absoluto

ODT

Documento de OpenOffice Writer con diseño de flujo

calzado

Hoja de cálculo de OpenOffice Calc con diseño absoluto

SAO

Hoja de cálculo de OpenOffice Calc con diseño de flujo

PIE

Este capítulo describe la opción de salida de diseño de flujo: cómo funciona y cómo difiere del diseño de posición absoluta.

Ejecutando la conversión La opción Palabra de diseño de flujo se implementa como un nuevo tipo de destino, así que simplemente envíe "FDOC" como el parámetro tcTarget del método SetParams ().

Cómo funciona La lógica es similar a la forma en que funciona la opción de texto sin formato. Durante el proceso de generación, XFRX toma cada sección, una por una, e intenta dividirla en líneas individuales. Luego, cada línea se agrega a la salida, respetando la posición vertical de la línea en el papel y las posiciones horizontales de los objetos individuales. Los objetos verticalmente desalineados se mueven hacia abajo a la línea de base más cercana.

Ejemplo 1 La definición de este informe:

se dividirá en tres líneas y el documento resultante se verá así:

(download example1.doc)

As you can see all objects are aligned to the same baseline and the horizontal position is set by a tab stop (left, right or center, depending on the field’s alignment). If you add any graphics or pictures, these are added to the document and linked to the paragraph it starts at, so if you add contents above the graphics, it will move down along with the corresponding paragraph.

If XFRX cannot create distinct lines or if the text objects overlap one another, the overlapping text object is placed at the exact position as a textbox.

Example 2

>> convert s to >>

(download example2.doc)

Page headers and footers Page headers and footers defined in the report are converted to page headers and footers in the Word document, so for example, if you add a line in the middle of a page, the page footer will not move to the next page header, but stay in place.

Deficiencies Even though most reports are converted without problems, there are certain scenarios when the output wouldn’t look as expected. As stated above, all fields in one line are aligned to the same baseline. In some reports, this can cause a problem, for example:

>> converts to >> (download example3.doc)

No solo está el texto "dos" abajo, también está impreso sobre el "tres" uno ("tres" está colocado demasiado alto para estar en una línea separada, por lo que se convierte como un cuadro de texto). En este caso, es posible que desee decirle al motor que los objetos "dos" y "tres" siempre deben tratarse como cuadros de texto de posición absoluta. Para ello, agregue "#UR POSITIONABSOLUTE" como comentario de estos campos:

Y el documento de Word resultante se generaría como:



Sin etiquetas

Notificaciones de banderas Documentación XFRX / Páginas / Guía del desarrollador

Generando documentos XPS Usuario desconocido (mst) Modificado por última vez dic 27, 2014 por martinajindrova

Para generar un documento XPS, use "XPS" como el parámetro targetType del método SetParams. El XPS [XML Paper Specification] es una nueva especificación de documento desarrollada por Microsoft. Puede encontrar más información sobre XPS en:  

http://www.microsoft.com/whdc/xps/default.mspx http://en.wikipedia.org/wiki/XML_Paper_Specification

Como el formato XPS solo admite fuentes TTF, todas las fuentes que no sean TTF serán reemplazadas por la fuente Arial.

No hay requisitos especiales con respecto a la configuración de la plataforma, especialmente .NET Framework no es necesario. XFRX genera el documento por sí mismo desde cero, por lo que todo lo que necesita es VFP y XFRX. Para poder obtener una vista previa del documento XPS, necesita un visor de documentos XPS. Si está ejecutando Windows Vista, ya tiene uno, ya que está incluido con .NET Framework 3.0. Para Windows XP y Windows Server 2003 puede descargar el visor desde http://www.microsoft.com/whdc/xps/viewxps.mspx .



Sin etiquetas

Notificaciones de banderas Documentación XFRX / Páginas / Guía del desarrollador

Generando documentos de OpenOffice (ODF) Usuario desconocido (mst) Modificado por última vez mar 22, 2017 por martinajindrova

El formato de documento de OpenOffice Writer es compatible desde XFRX versión 11.2. Desde 12.0, las salidas Writer y Calc son compatibles, y ambas pueden generarse utilizando formatos de diseño absolutos o de flujo (consulte el capítulo Opción de documento de diseño de flujo en la página 28 para obtener más información sobre las opciones de diseño de flujo).

OpenOffice utiliza el formato de documento abierto (ODF) OASIS para aplicaciones de Office, que también es compatible con una variedad de otras aplicaciones de oficina, incluidas StarOffice, KOffice e IBM Workplace. XFRX genera los formatos de archivo de forma nativa, por lo que OpenOffice no tiene que instalarse en la computadora donde se genera el documento. Puede encontrar más información sobre el Formato de documento abierto de OASIS en http://www.oasis-open.org/committees/tc_home.php?wg_abbrev=office. Se puede encontrar más información sobre OpenOffice en http://www.openoffice.org . Para generar el documento OpenOffice, utilizar los siguientes códigos como el 7 º parámetro (targetType) del método setParams:

Tipo de Documento

tipo de objetivo valor

     

Documento de OpenOffice Writer con diseño absoluto

ODT

Documento de OpenOffice Writer con diseño de flujo

calzado

Hoja de cálculo de OpenOffice Calc con diseño absoluto

SAO

Hoja de cálculo de OpenOffice Calc con diseño de flujo

PIE

Hoja de cálculo de OpenOffice Calc con diseño de flujo - Normal

PFODS

Cómo invocar la salida ODT / ODS Carpeta del desarrollador Campos de información Idioma / Especificación del país ODS / FODS / PFODS otros parámetros ODT / FODT otros parámetros

Cómo invocar la salida ODT / ODS Es más o menos lo mismo que con los otros objetivos: 1 LOCAL m.loSession, m.lnRetval 2 m.loSession= xfrx("XFRX#INIT") 3 m.loSession.initLog() 4 m.lnRetVal = m.loSession.SetParams("output.odt",,,,,,"ODT") 5 IF m.lnRetVal = 0 6

m.loSession.ProcessReport("report1")

7

m.loSession.finalize()

8 ENDIF

Carpeta del desarrollador Llame al método SetOtherParams con "DEVELOP" o "DEVELOPFOLDER" para definir la carpeta de salida para los archivos fuente y las carpetas de ODF. Ejemplo: m.loSession.setOtherParams("DEVELOP",.T.) m.loSession.setOtherParams("DEVELOPFOLDER","[FOLDER\]DEVELOPFOLDER")

Campos de información You can put one to four custom fields into ODF file. The keywords are INFO1, INFO1_NAME, INFO2, INFO2_NAME, INFO3, INFO3_NAME, INFO4, INFO4_NAME. Call SetOtherParams method with "INFO1" and "INFO1_NAME" to define INFO1 value and name. Example: m.loSession.setOtherParams("INFO1", "AnyValue") m.loSession.setOtherParams("INFO1_NAME","Field 1")

Language/Country specification XFRX get Language/Country specification from OS locale informations, but you can call SetOtherParams method with "FO_LANGUAGE" and "FO_COUNTRY" to define own values. Example: m.loSession.setOtherParams("FO:LANGUAGE", "CS") m.loSession.setOtherParams("FO:COUNTRY", "CZ")

ODS/FODS/PFODS other parameters The parameters DISPLAY_GRID_LINES, SHEET_PER_PAGE, NEXT_SHEET_NAME, NEXT_SHEET_NAME_EXPR, LEAVE_FULL_FIELD_CONTENT, ADDPAGENUMBERTOSHEETDISPLAYNAME, SHEETPAGEBREAK are same such as for XLS/XLSPLAIN.

ODT/FODT other parameters The parameters NEXT_PAGE_NAME, NEXT_PAGE_NAME_EXPR are euqal to NEXT_SHEET_NAME, NEXT_SHEET_NAME_EXPR. 

Sin etiquetas

Notificaciones de banderas Documentación XFRX / Páginas / Guía del desarrollador

Funciones específicas de HTML Usuario desconocido (mst) Modificado por última vez sep 26, 2017 por martinajindrova

XFRX 16.1 Miembro oDocument del objeto de sesión XFRX está en desuso. Puede usar miembro oDocumentWriter. XFRX 17.3 Miembro oDocument del objeto de sesión XFRX eliminado.

Ajuste de tamaño de página HTML Este párrafo se aplica tanto a VFP 9 como a VFP 8. El método ShrinkHeight se implementa tanto en XFRXListener como en la clase XFRXSession. Al generar documentos HTML, XFRX hace que la página sea un poco más corta por defecto (en 1,65 pulgadas). Esto es para suprimir la parte inferior de una página para ajustar a una nueva página cuando se imprime desde Internet Explorer. Se agregan dos líneas a la página impresa, en la parte superior e inferior de la página, como encabezado y pie de página. Al llamar al método ShrinkHeight (), puede suprimir este comportamiento llamando al: ShrinkHeight(0) o establezca su propio valor por el cual se reducirá la página. La unidad es Inch * 10000, por lo que para hacer que la página sea más corta por 2 pulgadas, llame ShrinkHeight(20000) El valor enviado por el método ShrinkHeight () se aplica a todos los tipos de salida, no solo a HTML. Ver también: tamaño de página definido por el usuario

Salida simple Este tipo de salida actualmente no admite imágenes Esta función requiere .NET framework 3.5. El HTML es producido por una aplicación de consola .NET que lee los archivos XML generados por XFRX y los oculta. Esta aplicación de consola (xfrxt.exe) debe distribuirse junto con la aplicación.

Este tipo de salida funciona de manera similar al tipo de salida simple de Excel: los objetos en la página se alinean en una cuadrícula, cada objeto va a una celda separada, y luego la salida se presenta como una tabla. Las líneas y rectángulos se muestran como bordes de celda de tabla. Las fuentes, colores y tamaños se definen a través de CSS. Esta solución produce una salida HTML limpia, rápida y compatible con varios navegadores, adecuada para páginas web o correos electrónicos. (Haga clic aquí para ver un documento de muestra: Sample1 ) El resultado se invoca mediante el parámetro de tipo de salida "HTMLPLAIN": 1 LOCAL m.loSession, m.lnRetVal 2 m.loSession = xfrx("XFRX#INIT") 3 m.lnRetVal = m.loSession.SetParams("output.html",,,,,,"HTMLPLAIN") 4 IF m.lnRetVal = 0 5

m.loSession.ProcessReport("report1")

6

m.loSession.finalize()

7 ENDIF

By default, the output is a complete self-contained HTML file. You can also use the HTML_NOSTYLES option to process just the inner HTML, without CSS styles, head or body tags:

1 LOCAL m.loSession, m.lnRetVal 2 m.loSession = xfrx("XFRX#INIT") 3 m.lnRetVal = m.loSession.SetParams("output.html",,,,,,"HTMLPLAIN") 4 IF m.lnRetVal = 0 5

m.loSession.SetOtherParams("HTML_NOSTYLES", .T.)

6

m.loSession.ProcessReport("report1")

7

m.loSession.finalize()

8 ENDIF

Autoconvert EMF/TIFF to PNG Because some html previewer doesn't support EMF or TIFF image, you can enable feature for converting EMF/TIFF to PNG. (XFRX 15.5)

m.loSession.SetOtherParams("CONVERTEMF_TIFFTOPNG",.T.)

Inline images Images data are in html output file since XFRX 16.0. If you want attain prior behavior, you can call method SetOtherParams(). m.loSession.SetOtherParams("INLINEIMAGES",.F.)

Gmail compatibility Because HTML viewer in Gmail is very simply than can not show complex which generate XFRX. You can turn on Gmail compatibility. (XFRF 17.0.0) m.loSession.SetOtherParams("GMAILCompatibility",.T.)



Notificaciones de banderas Documentación XFRX / Páginas / Guía del desarrollador metadata.attachments

Funciones específicas de Excel

Sin etiquetas

Usuario desconocido (mst) Modificado por última vez feb 17, 2018 por martinajindrova

Notas generales La salida al formato de Excel es similar a los formatos de diseño de flujo. Los otros formatos usan cuadros de texto posicionados para cada etiqueta de informe o cuadro de texto, que contiene el resultado de texto generado. La salida XLS, por otro lado, coloca el texto generado directamente en las celdas de la hoja de Excel y establece la altura de las filas y el ancho de las columnas para lograr el diseño deseado. Las líneas y rectángulos también se agregan como bordes de celdas, en lugar de gráficos sobre la hoja. Hay muchas ventajas en este enfoque: los documentos generados son más pequeños y mucho más fáciles de modificar: todos los campos numéricos se pueden usar en los cálculos, no hay problema para agregar filas o columnas, cambiar los atributos de las celdas, etc. Sin embargo, también hay desventajas: los campos no se pueden superponer, así que algo como esto:

en el informe no se convertirá correctamente y, como cada celda de Excel tiene un margen interno que no se puede suprimir, es posible que algunos campos tengan que ampliarse un poco para dar cabida a todo el contenido. Con XFRX, los informes probablemente necesiten algunos ajustes, especialmente los complicados, pero el resultado será un documento normal de Excel, como si alguien lo hubiera creado manualmente.                

Notas generales Cómo funciona Manejo de saltos de página Generando hoja por página Generación de hojas por grupo de inicio-cada-grupo-en-una-nueva-página Agregar salto de página en la hoja Definición de nombres de hojas Ocultar la cuadrícula de Excel Dejar el contenido de los campos en celdas de Excel Cómo invocar la salida XLS Ajuste de células XLS Cómo lograr los mejores resultados Formato de imagen de campo numérico en Excel Salida simple (XLSPLAIN) Salida de MS Excel 2007 (NATIVE_FXLSX / NATIVE_PFXLSX) Carpeta del desarrollador para NATIVE_FXLSX / NATIVE_FXLSX

Cómo funciona XFRX hace uso de la posibilidad de combinar más celdas de Excel juntas. Dondequiera que una etiqueta o cuadro de texto debe comenzar o terminar, XFRX crea una fila y una columna. Para lograr los mejores resultados, es bueno alinear las etiquetas y los cuadros de texto tanto vertical como horizontalmente, lo que da como resultado un documento más claro con menos filas y columnas. (Por favor, vea más sobre esto a continuación, en ¿Cómo lograr los mejores resultados? Párrafo).

Manejo de saltos de página De forma predeterminada, XFRX no divide las páginas en la salida XLS de la misma manera que en otros formatos de salida: se ejecuta en modo plano, lo que significa que la salida es una hoja, el tiempo que necesita, con un encabezado de página en la parte superior y un pie de página en la parte inferior. XFRX 17.0 Este comportamiento cambia desde XFRX 17.0. El encabezado / pie de página de generación de XLS de salida se encuentra en la "página" de informe en la hoja. La salida XLSPLAIN genera un encabezado de página en la parte superior y un pie de página en la parte inferior. Si necesita un comportamiento antiguo para XLS, puede establecer las propiedades "internas" directamente después de llamar al método SetParams (): 

XFRX # INIT loXFRX.odocumentWriter.cDisplayHeader = "1" && 1 - 1st page, "N" no/never, "Y" - yes/always loXFRX.odocumentWriter.cDisplayFooter = "1" && 1 - last page page, "N" - no/never, "Y" - yes/always



XFRX # LISTENER loXFRX.oxfSession.odocumentWriter.cDisplayHeader = "1" && 1 - 1st page, "N" - no/never, "Y" - yes/always loXFRX.oxfSession.odocumentWriter.cDisplayFooter = "1" && 1 - last page page, "N" - no/never, "Y" - yes/always

Si se procesan más informes, cada informe crea una hoja en el documento de salida. Hay dos opciones que puede usar para modificar la forma en que se manejan los saltos de página:

Generando hoja por página Para habilitar esta opción, llame al método SetOtherParams para establecer el parámetro "SHEET_PER_PAGE" en .T .: m.loSession.SetOtherParams("SHEET_PER_PAGE",.T.)

Esto desactivará el modo "simple" y los saltos de página se corresponderán con otras opciones de salida. Cada página se generará como una hoja nueva en el documento de Excel. Consulte más información sobre el método SetOtherParams en Métodos comunes en XFRXListener y referencia de clases XFRXSession

Generación de hojas por grupo de inicio-cada-grupo-en-una-nueva-página Para habilitar esta opción, llame al método SetOtherParams para establecer el parámetro "SHEET_PER_NP_GROUP" en .T .: m.loSession.SetOtherParams("SHEET_PER_NP_GROUP",.T.) Esta opción combina el modo simple y el modo hoja por página. El informe se ejecuta en modo simple, pero se genera una nueva hoja para cada grupo de informes con el indicador "Iniciar cada grupo en una nueva página" configurado en .T. El parámetro SHEET_PER_NP_GROUP funciona para XFRX # INIT con salida directa solamente.

Agregar salto de página en la hoja Estas opciones agregan saltos de página en hojas por páginas en el informe para XFRX # INIT + TransformReport () y XFRX # LISTENER (desde XFRX 15.7). m.loSession.SetOtherParams("SHEETPAGEBREAK",.T.)

Definición de nombres de hojas Hay dos formas de definir los nombres de las hojas. Puede definir un texto estático mediante el parámetro NEXT_SHEET_NAME, o puede usar el parámetro NEXT_SHEET_NAME_EXPR para definir una expresión, que se evaluará en la parte inferior de cada hoja y el resultado se usará como el nuevo nombre de la hoja. La última opción es útil si se generan más hojas durante la ejecución de un informe. El parámetro ADDPAGENUMBERTOSHEETDISPLAYNAME (desde XFRX 15.6) puede suprimir el número de página en el nombre de la hoja. Consulte más información sobre el método SetOtherParams en Métodos comunes en XFRXListener y referencia de clases XFRXSession

Ocultar la cuadrícula de Excel La grilla de fondo es visible por defecto. Para ocultarlo, establezca el parámetro DISPLAY_GRID_LINES en falso: m.loSession.SetOtherParams("DISPLAY_GRID_LINES",.F.)

Dejar el contenido de los campos en celdas de Excel Por defecto, el contenido de los campos no estirables se corta de acuerdo con el tamaño del campo, pero opcionalmente puede dejar el contenido completo del campo en la celda de Excel. Para habilitar esta opción, configure el parámetro LEAVE_FULL_FIELD_CONTENT como .T .: m.loSession.SetOtherParams("LEAVE_FULL_FIELD_CONTENT",.T.)

Cómo invocar la salida XLS Es más o menos lo mismo que con los otros objetivos: 1 LOCAL m.loSession, m.lnRetval 2 m.loSession= xfrx("XFRX#INIT") 3 m.loSession.initLog() 4 m.lnRetVal = m.loSession.SetParams("output.xls",,,,,,"XLS") 5 IF m.lnRetVal = 0 6

m.loSession.SetOtherParams("NEXT_SHEET_NAME","first") && the name of the sheet, opti

7

m.loSession.ProcessReport("report1")

8

m.loSession.SetOtherParams("NEXT_SHEET_NAME","second")

9

m.loSession.ProcessReport("report2")

10

m.loSession.finalize()

11 ENDIF Este ejemplo crea un documento de dos hojas. Como puede ver, el método SetOtherParams () se puede usar para definir los nombres de las hojas. Si no se llama, los nombres predeterminados son "hoja1", "hoja2", etc. _ADJUSTMENT",1000) && default value = 180

Ajuste de células XLS Cuando se genera el documento XLS, se ajustan las coordenadas verticales y horizontales de los objetos; si la diferencia entre dos coordenadas es menor que un cierto valor, las coordenadas están "alineadas". Este enfoque reduce significativamente la cantidad de filas y columnas en el documento generado. Es posible definir esta diferencia mínima. Cuanto mayor sea el número, menor será el número de filas / columnas generadas, pero si el número es demasiado grande, los campos podrían superponerse y podrían omitirse. Llame al método SetOtherParams con "HORIZONAL_ADJUSTMENT" o "VERTICAL_ADJUSTMENT" para definir la mínima diferencia horizontal y / o vertical.

Ejemplo: m.loSession.SetOtherParams("HORIZONTAL_ADJUSTMENT",1000) && default value = 76
Cómo lograr los mejores resultados 1. Alinea los campos. Eche un vistazo al siguiente documento: ( http://www.eqeus.com/xls1.xls ) Las columnas B y C son casi invisibles (si las amplía, puede ver que los nombres de los clientes comienzan en la columna B, "Cliente La lista "comienza en la columna C y" Cliente "comienza en la columna D, que es algo que no observamos en el informe normal pero que tiene un mejor resultado en la salida XLS si los campos están alineados), la fila 4 es muy estrecha y entre cada cliente, se agrega una fila muy delgada, también. "Arreglar" esto es muy simple: alineamos las etiquetas "Cliente", "Lista de clientes" y el cuadro de texto del cliente, movimos la línea debajo del encabezado un poco más arriba para que caiga en las celdas debajo del "Cliente" y "Total" subtítulos El documento resultante se ve mucho mejor: ( http://www.eqeus.com/xls2.xls ) 2. Problema con el ancho de la etiqueta El tamaño de una etiqueta no se puede modificar en el diseñador del informe; siempre toma el tamaño del texto ingresado. Sin embargo, como mencionamos anteriormente, las celdas de Excel tienen pocos márgenes adentro, así que si creamos una celda tan ancha como la etiqueta y ponemos el texto en ella, el texto completo no cabría, ¡el último o los dos últimos desaparecen! XFRX se encarga de esto y amplía un poco la celda, pero esto puede traer otro problema: si hay otra etiqueta o un campo de texto cerca del borde derecho de la etiqueta, aumentar el ancho puede resultar en la superposición de la otra etiqueta o el texto campo, resultado de lo cual sería que una de las dos etiquetas desaparece (puede haber una sola cosa dentro de la celda). Por lo tanto, tenga cuidado con esto y asegúrese de que haya espacio suficiente entre las etiquetas. 3. Anchos de etiquetas variables Como el ancho de la etiqueta depende de su contenido, no podemos alinear los bordes derecho e izquierdo de más etiquetas y, en ocasiones, es mejor reemplazar las etiquetas con cuadros de texto. Por ejemplo, si hay muchas etiquetas en una columna, todas se alinean así: Al crear el documento de Excel, XFRX creará una columna para el borde derecho de cada etiqueta: Sin embargo, si las etiquetas se convierten a cuadros de texto, podemos alinear ellos: Y el resultado podría verse mejor: en realidad es bastante fácil convertir todas las etiquetas en cuadros de texto, simplemente abra el informe en FoxPro y reemplace el tipo de objeto:

USE report.frx REPLACE objtype WITH 8 ALL FOR objtype = 5 USE 4. XFRX 17.3.1 5. XFRX 17.3.1 tiene mejor soporte para objetos superpuestos. El resultado es muy bonito, pero la generación es lenta que en XFRX 17.3.0. Es posible que apague el soporte para objetos superpuestos en XFRX 18.0. loSession.SetOtherParams("OVERLLAPED_OBJECTS",.F.) 6.

Formato de imagen de campo numérico en Excel La definición de formato de celdas numéricas en Excel es diferente de la sintaxis de formato utilizada en Foxpro. XFRX ahora puede convertir las definiciones de formato simple y

permite definiciones de formato de tipo Excel implícitas y / o explícitas definidas por el usuario. En Visual Foxpro, el campo numérico se convierte a su representación de texto en función de una definición de formato explícito (campo de formato en la definición de expresión del informe) o los lugares decimales del campo y la configuración SET DECIMAL. No olvide establecer el valor de la propiedad CallEvaluateContents en 2 si desea exportar números como números al usar XFRX # LISTENER: m.loSession.CallEvaluateContents = 2

Cuando un campo numérico se transforma en una celda de Excel, se utiliza el siguiente algoritmo: 1. Si hay un formato XLS explícito definido, úselo. Para definir un formato XLS explícito para un campo numérico, agregue: #UR XLSF = (expresión) al comentario del campo. Ejemplo 1: #UR XLSF = "General" El formateo "General" - sin formato especial, el número de decimales está determinado por el valor del campo Ejemplo 2: #UR XLSF = "Estándar" El formateo "Estándar" - dos lugares decimales, separadores de miles y decimales se usarán de acuerdo con los valores predeterminados de Excel Ejemplo 3: #UR XLSF = "# 0.00" Dos decimales, sin ceros a la izquierda Ejemplo 4: #UR XLSF = "# 0.00; [rojo] # 0.00" Dos decimales, muestran números negativos en rojo 2. Si el campo contiene una definición de formato, intente buscar el formato en una tabla de conversión. Una tabla de conversión se puede llenar mediante programación cuando se ejecuta XFRX, de modo que los formatos que se usan a menudo y que XFRX no puede convertir automáticamente no requerirían una definición explícita en cada campo del informe. Para agregar una entrada a la tabla de conversión, use el método addXLSFormatConversion de la clase XFRXSession.

Ejemplo 5: m.loSession.addXLSFormatConversion("@L 999999.99","000000.00") 3. Si el campo contiene una definición de formato y no aparece en la tabla de conversión, intente convertirlo. XFRX puede convertir definiciones de formato simples que contienen los siguientes caracteres: '9', '#', ',', '.' y ''. Por ejemplo, 999,999.99 se convierte en ###, ###. 00. Si el formato no se puede convertir, utilice el formato numérico XLS implícito, si está disponible. Para definir el formato numérico XLS implícito, llame al método setDefaultXLSFormat del objeto XFRXSession con el formato implícito como parámetro. Examen plo 6: m.loSession.setDefaultXLSFormat("General") 4. Si el formato numérico XLS implícito no está definido, XFRX crea una definición de formato para mostrar el mismo número de decimales que en la salida del informe de VFP. Si desea especificar que un determinado campo numérico debe convertirse como una celda de texto en la hoja de Excel, defina "TEXTO" como su formato numérico XLS explícito: #UR XLSF = 'TEXTO' Para obtener un ejemplo en vivo del formato de las celdas de Excel, consulte el informe "Ejemplo de celdas numéricas formateadas con XLS" en la aplicación de demostración.

Salida simple (XLSPLAIN)



  

El formato de salida simple de Excel es una salida alternativa a Excel que tiene como objetivo proporcionar documentos de Excel más limpios y más pequeños. Las siguientes son las diferencias clave de la salida estándar de Excel: Cada informe se genera como una sola hoja con un encabezado de página única en la parte superior del documento y un pie de página único en la parte inferior. Las secciones de encabezado / pie de página no se insertan dentro del informe donde las páginas se romperían normalmente. El proceso elimina columnas y filas vacías siempre que sea posible. El diseño del informe se ajusta automáticamente para eliminar filas y columnas estrechas. HORIZONTAL_ADJUSTMENT y VERTICAL_ADJUSTMENT ya no son necesarios. El sistema analiza el diseño del informe sobre la marcha e identifica los lugares donde los objetos se pueden alinear sin afectar el resultado final. Para invocar el formato simple de Excel, envíe la cadena "XLSPLAIN" como parámetro de tipo de salida. Ejemplo (VFP 9.0): 1 LOCAL m.loObj, m.lnRetVal

2 m.loObj = EVALUATE([XFRX("XFRX#LISTENER")]) 3 m.lnRetVal = m.loObj.SetParams("test.xls",,,,,,"XLSPLAIN") 4 IF m.lnRetVal = 0 5

REPORT FORM demoreps\invoices OBJECT m.loObj



6 ENDIF

Salida de MS Excel 2007 (NATIVE_FXLSX / NATIVE_PFXLSX) Para invocar el formato de Excel 2007, envíe cadena "NATIVE_FXLSX" o "NATIVE_PFXLSX" como parámetro de tipo de salida. Ejemplo (VFP 9.0): 1 LOCAL m.loObj, m.lnRetVal 2 m.loObj = EVALUATE([XFRX("XFRX#LISTENER")]) 3 m.lnRetVal = m.loObj.SetParams("test.xlsx",,,,,,"NATIVE_FXLSX") 4 IF m.lnRetVal = 0 5

REPORT FORM demoreps\invoices OBJECT m.loObj

6 ENDIF

Carpeta del desarrollador para NATIVE_FXLSX / NATIVE_FXLSX Llame al método SetOtherParams con "DEVELOP" o "DEVELOPFOLDER" para definir la carpeta de salida para los archivos fuente y las carpetas de OpenXML. Ejemplo: m.loSession.setOtherParams("DEVELOP",.T.) m.loSession.setOtherParams("DEVELOPFOLDER","[FOLDER\]DEVELOPFOLDER") 

Notificaciones de banderas Documentación XFRX / Páginas / Guía del desarrollador

Sin etiquetas

metadata.attachments

Conversión de informes a texto sin formato Usuario desconocido (mst) Última modificación hace 07 días , 2017 por martinajindrova

Limitaciones Las limitaciones se definen por la naturaleza del resultado de texto sin formato:   

 

     

El tamaño de fuente y el estilo no se convierten (se admite la alineación de texto) Los gráficos en el informe se ignoran Los rectángulos y líneas verticales se ignoran, las líneas horizontales se pueden convertir opcionalmente como una serie de guiones, para obtener más información, consulte la sección de Líneas horizontales a continuación Los objetos superpuestos se eliminan de la salida XFRX debe poder dividir los objetos en líneas distintas; de lo contrario, algunos objetos se eliminarían de la salida Limitaciones Cómo funciona Lineas horizontales Configuración de personajes por pulgada Caracteres de control Texto plano compacto

Cómo funciona Durante el proceso de generación, XFRX toma cada sección, una por una, e intenta dividirse en líneas individuales. Luego, cada línea se agrega a la salida, respetando la posición vertical de la línea en el papel y las posiciones horizontales de los objetos individuales. Los objetos verticalmente desalineados se mueven hacia abajo a la línea de base más cercana, por ejemplo: La definición de este informe:

Se dividirá en tres líneas:

Y el resultado se vería así: One two three four five six Si XFRX no podrá crear líneas distintas o si los objetos se superpondrán entre sí, XFRX intentará eliminar algunos de los objetos. Por ejemplo:

se convertirá como: One two Four six

Lineas horizontales Las líneas horizontales se pueden convertir opcionalmente en una serie de guiones. Por defecto, esta opción está activada. Para suprimir líneas horizontales, llame al método setOtherParams del objeto XFRXSession con dos parámetros: "PLAIN_SHOW_LINES" y .F., Antes de llamar al método processReport (). Ejemplo: 1 LOCAL m.loSession, m.lnRetval 2 m.loSession= xfrx("XFRX#INIT") 3 m.lnRetVal = m.loSession.SetParams("output.txt",,,,,,"PLAIN") 4 IF m.lnRetVal = 0 5

m.loSession.SetOtherParams("PLAIN_SHOW_LINES", .F.) && do not print horizontal lines<

6

m.loSession.ProcessReport("report.frx")

7

m.loSession.finalize()

8 ENDIF

Configuración de personajes por pulgada Para convertir las posiciones absolutas del objeto a posiciones de caracteres, XFRX calcula el número de caracteres por línea y el número de líneas por página utilizando valores de carácter por pulgada horizontal y vertical. De forma predeterminada, estos valores son 10 caracteres por pulgada horizontal y 5.2 caracteres por pulgada vertical, lo que resulta en aproximadamente 80 caracteres x 55 líneas en un papel de tamaño carta. Es posible que desee cambiar la densidad del carácter (por ejemplo, al usar una fuente condensada en una impresora de matriz de puntos). Para hacer esto, envíe PLAIN_CPI_HORIZONTAL o PLAIN_CPI_VERTICAL como el primer parámetro del método SetOtherParams () y el valor real como el segundo parámetro. Ejemplo: 1 LOCAL m.loSession, m.lnRetval 2 m.loSession= xfrx("XFRX#INIT") 3 m.lnRetVal = m.loSession.SetParams("output.txt",,,,,,"PLAIN") 4 IF m.lnRetVal = 0 5

* changing the character density to 12x6 per sq. inch

6

m.loSession.SetOtherParams("PLAIN_CPI_HORIZONTAL",12)

7

m.loSession.SetOtherParams("PLAIN_CPI_VERTICAL",8)

8

m.loSession.ProcessReport("report.frx")

9

m.loSession.finalize()

10 ENDIF

Caracteres de control XFRX 17.2 genera control char FF (alimentación de formulario) después de cada página, excepto la última página. Puedes desactivar esta función: 1 LOCAL m.loSession, m.lnRetval 2 m.loSession= xfrx("XFRX#INIT") 3 m.lnRetVal = m.loSession.SetParams("output.txt",,,,,,"PLAIN") 4 IF m.lnRetVal = 0 5

* don't add control chars

6

m.loSession.SetOtherParams("DONTADDCONTROLCHARS",.F.)

7

m.loSession.ProcessReport("report.frx")

8

m.loSession.finalize()

9 ENDIF

Texto plano compacto El texto plano compacto es texto de salida con modo simple - igual a XLSPLAIN. 1 LOCAL m.loSession, m.lnRetval 2 m.loSession= xfrx("XFRX#INIT") 3 m.lnRetVal = m.loSession.SetParams("output.txt",,,,,,"CPLAIN") 4 IF m.lnRetVal = 0 5

m.loSession.ProcessReport("report.frx")

6

m.loSession.finalize()

7 ENDIF 

Sin etiquetas

Notificaciones de banderas Documentación XFRX / Páginas / Guía del desarrollador

Usando archivos XFF Usuario desconocido (mst) Modificado por última vez mar 22, 2017 por martinajindrova

XFRX puede guardar el informe generado en un archivo binario (archivo XFF). Este archivo puede usarse en cualquier momento más tarde para:

  

Transforme la salida del informe almacenado a cualquiera de los formatos de destino admitidos por XFRX (PDF, Word, HTML, Excel, TXT, etc.) Imprimir la salida del informe almacenado Obtenga una vista previa de la salida del informe almacenado en el previsualizador XFRX También puede modificar el contenido de los archivos XFF existentes o crear nuevos archivos XFF desde cero, evitando por completo el motor de informes.

        

Conversión de informes a archivos XFF Inicializando la instancia de la clase XFRX # DRAW Creando archivos temporales XFF Conversión de archivos XFF a otros formatos de salida Imprimir archivos XFF Mostrar el diálogo de propiedades de la impresora Usar configuraciones de impresora personalizadas al imprimir Cambiar la configuración de la impresora personalizada Vista previa de archivos XFF

Conversión de informes a archivos XFF Para crear un archivo XFF, envíe "XFF" como el parámetro de destino y el nombre del archivo como el parámetro de nombre de salida de SetParams (). Ejemplo: crear un archivo XFF Enfoque VFP 8.0 1 LOCAL m.loSession 2 m.loSession= xfrx("XFRX#INIT") 3 IF m.loSession.SetParams("output.xff",,,,,,"XFF") = 0 4

m.loSession.ProcessReport("report")

5

m.loSession.finalize()

6 ENDIF VFP 9.0 enfoque 1 LOCAL m.loObj 2 m.loObj = xfrx("XFRX#LISTENER") 3 iF m.loObj.SetParams("output.xff",,,,,,"XFF") = 0 4

REPORT FORM myreport OBJECT m.loObj

5 ENDIF De forma predeterminada, la extensión .XFF (archivo XFrx) se agrega al archivo de salida. El archivo XFF se almacena internamente como un archivo DBF normal, y debido a que los

campos Memo se utilizan para algunas de sus columnas, se crea otro archivo con el mismo nombre y la extensión .FPT.

Inicializando la instancia de la clase XFRX # DRAW (Consulte la referencia de clase XFRX # DRAW ). Los métodos XFRX no funcionan directamente con el archivo XFF, pero siempre a través de la clase XFRX # DRAW, que representa un contenedor alrededor del archivo XFF. Para crear una instancia de esta clase, llame a XFRX con el parámetro "XFRX # DRAW". Luego llame a openDocument (tcXFFFileName) para adjuntar el objeto XFRX # DRAW a un archivo XFF existente: 1 LOCAL m.loXFF 2 m.loXFF = xfrx("XFRX#DRAW") 3 IF m.loXFF.openDocument("output.xff") 4



5 ELSE 6

? "XFF file cannot be open"

7 ENDIF También puede crear un archivo XFF vacío llamando al método CreateDocument (tcXFFFileName) .

Creando archivos temporales XFF A veces puede querer crear el archivo XFF solo en la memoria, usarlo en su aplicación (por ejemplo, para obtener una vista previa del informe e imprimir) y soltarlo después. Para hacer esto, deje el nombre del archivo XFF vacío. En este caso, se creará un archivo XFF temporal y podrá acceder a su instancia de clase XFRX # DRAW. La forma de acceder a la instancia difiere en VFP 8.0 y VFP 9.0. Enfoque VFP 8.0 En VFP 8.0, la instancia es devuelta por el método Finalize () de la clase XFRXSession: 1 LOCAL m.loSession, m.loXFF 2 m.loSession= xfrx("XFRX#INIT") 3 IF m.loSession.SetParams(,,,,,,"XFF") = 0 4

m.loSession.ProcessReport("report")

5

m.loXFF = m.loSession.finalize()

6 ENDIF 7 * 8 * now the loXFF instance can be used as if the XFF file was opened 9 * with the openDocument method call 10 * VFP 9.0 enfoque En VFP 9.0, la instancia se almacena en la propiedad oxfDocument de la clase XFRXListener: 1 LOCAL m.loObj, m.loXFF 2 m.loObj = xfrx("XFRX#LISTENER") 3 4 m.loObj.targetType = "XFF" 5 m.loObj.targetFileName = "" && output to a temporary file 6 7 REPORT FORM report OBJECT m.loObj 8 9 m.loXFF = m.loObj.oxfDocument

Conversión de archivos XFF a otros formatos de salida Para procesar el informe almacenado, debe inicializar un objeto XFRX # DRAW, vincularlo al archivo almacenado y enviarlo como un parámetro del método TransformReport de la clase XFRXListener (en VFP 9.0) o de la clase XFRXSession (en VFP 8.0). Ejemplo : Transformar un archivo XFF almacenado en un documento PDF. Enfoque VFP 8: 1 LOCAL m.loSession, m.loXFF, m.lnRetVal 2 m.loSession= xfrx("XFRX#INIT") 3 m.loXFF = xfrx("XFRX#DRAW") 4 IF m.loXFF.openDocument("output.xff") 5

m.lnRetVal = m.loSession.SetParams("output.pdf",,,,,,"PDF")

6

IF m.lnRetVal = 0

7 8

m.loSession.TransformReport(m.loXFF) ENDIF

9 ENDIF Enfoque VFP 9: 1 LOCAL m.loSession, m.loXFF, m.lnRetVal 2 m.loObj = xfrx("XFRX#LISTENER") 3 m.loXFF = xfrx("XFRX#DRAW") 4 IF m.loXFF.openDocument("output.xff") 5

m.lnRetVal = m.loObj.SetParams("output.pdf",,,,,,"PDF")

6

IF m.lnRetVal = 0

7 8

m.loObj.transformReport(m.loXFF) ENDIF

9 ENDIF

Imprimir archivos XFF Para enviar el contenido de un archivo XFF a una impresora, llame al método printDocument de la instancia de clase XFRX # DRAW. El nombre de la impresora, el nombre del trabajo y el rango de página pueden enviarse como parámetros. Consulte la lista de parámetros completa y más detalles en la referencia de clase XFRX # DRAW . Ejemplo: Imprimir un archivo XFF m.loXFF.printDocument(getprinter(),"xfrx – invoice", "1,2,4-10")

Mostrar el diálogo de propiedades de la impresora Se puede invocar un cuadro de diálogo de propiedades de impresora para una impresora dada a través de la función _xfPrinterProperties , devolviendo la estructura de propiedades de la impresora como una cadena. Esta cadena se puede guardar como preferencia de usuario y enviarse a XFRX como el 5to parámetro del método PrintDocument al imprimir. Esta funcionalidad es similar a SYS (1037) introducida en VFP 9.0, con dos diferencias / mejoras: 

Se omiten los cuadros de diálogo Configuración de página y Selección de impresora, lo que ahorra dos clics a los usuarios y evita confusiones en caso de que la impresora ya haya sido



seleccionada. (Muy a menudo, hay un cuadro de selección de impresora en el formulario "principal" y un botón para invocar las propiedades de la impresora). Esta implementación también funciona en versiones anteriores de Visual FoxPro (desde VFP 5.0) El método _xfPrinterProperties toma 3 parámetros: tcPrinterName : el nombre de la impresora tcTag2 : la estructura DEVMODE que se utilizará de forma predeterminada (si no se especifica, se usará la configuración predeterminada de la impresora) tlShowProperties : si se establece en .T., aparecerá el cuadro de diálogo de propiedades de la impresora. Si se hace clic en el botón Aceptar, se devolverá la estructura DEVMODE con la configuración de impresora seleccionada. Si se hace clic en el botón Cancelar, se devolverá una cadena vacía. Si este parámetro se establece en .F., El cuadro de diálogo no se mostrará y se devolverá la configuración predeterminada de la impresora. por ref tnRetVal - El valor indica una problém (desde XFRX 15.7)

  

-3 El nombre de la impresora no es válido -2 No se puede obtener el tamaño DEVMODE para una impresora específica -1 No se puede obtener DEVMODE para la impresora especificada

Ejemplo: 1 SET PROCEDURE TO xfrx ADDITIVE && this is required as the function is implemented insid 2 LOCAL m.lnRetVal, m.lcPrinter, m.lcTag2 3 m.lcPrinter = GETPRINTER() && select a printer

4 m.lcTag2 = _xfPrinterProperties(m.lcPrinter, "", .F.) && do not show the dialog, return

5 m.lcTag2 = _xfPrinterProperties(m.lcPrinter, m.lcTag2, .T.) && show the dialog box now<

6 m.lcTag2 = _xfPrinterProperties(m.lcPrinter, m.lcTag2, .T.,,@m.lnRetVal) && show the di 7 8 DO CASE 9

CASE EMPTY(m.lcTag2) AND m.lnRetVal=0

10

&& CANCEL button was clicked

11 12 13 14

CASE EMPTY(m.lcTag2) AND m.lnRetVal<0 && Some error OTHERWISE

15

&& OK button was clicked

16 ENDCASE

Usar configuraciones de impresora personalizadas al imprimir La estructura de configuración de la impresora se puede enviar al método PrintDocument como el quinto parámetro. Si este parámetro está vacío, se usa la configuración predeterminada de la impresora. La estructura de configuración de la impresora se puede recuperar mediante el procedimiento _xfPrinterProperties (consulte el capítulo anterior) o, si la configuración de la impresora se guarda con el informe, se almacena en el campo Etiqueta2 en el primer registro del archivo FRX. Ejemplo : m.loXFF.printDocument(lcPrinter, "job name", 1, 3, lcTag2)

Cambiar la configuración de la impresora personalizada Desde XFRX 17.0 puede usar la clase _XFRX_DEVMODE_WRITER para cambiar algunas propiedades de la impresora. Ejemplo : 1 LOCAL m.loDEVMODE, m.lcTAG2, m.lcPrinter 2 m.lcPrinter=SET("PRINTER",2) 3 m.lcTAG2 = _xfPrinterProperties(m.lcPrinter, "", .F.) && do not show the dialog, return

4 m.loDEVMODE=CREATEOBJECT("_XFRX_DEVMODE_WRITER",m.lcTAG2) && read DEVMODE structure
5 m.loDEVMODE.SetField("DM_ORIENTATION",2) && set some field - orientation landscape 6 =m.loDEVMODE.Write() && recreate DEVMODE structure 7 m.lcTAG2 =m.loDEVMODE.cDEVMODE 8 m.loXFF.printDocument(m.lcPrinter, "job name", 1, 3, m.lcTAG2)

Vista previa de archivos XFF Consulte el capítulo Vista previa de los archivos XFF en el capítulo siguiente (capítulo de previsualización XFRX ) para obtener más información sobre la vista previa de los archivos XFF en la vista previa del informe avanzado que viene con XFRX. 

Sin etiquetas

Notificaciones de banderas Documentación XFRX / Páginas / Guía del desarrollador metadata.attachments

Dibujar objetos personalizados con XFRX # DRAW Usuario desconocido (mst) Modificado por última vez mar 22, 2017 por martinajindrova

La clase XFRX # DRAW descrita en el capítulo anterior también puede modificar el contenido de los archivos XFF: para agregar gráficos personalizados, texto, páginas nuevas, hipervínculos y marcadores, tanto durante el proceso de generación de informes como después de generar el informe.

            

Dibujar objetos personalizados a archivos XFF existentes Dibujar objetos personalizados durante el proceso de generación de informes Scripts enlazados a la página Guiones de rectángulo Scripts nombrados Scripts escritos en el campo de comentario de rectángulo Conversión de objetos encuadernados en rectángulo a imágenes Envío de parámetros a scripts nombrados XFRX # DRAW funciones Navegación de documentos XFF Agregar páginas Unidades de coordenadas Información sobre herramientas, hipervínculos y marcadores

Dibujar objetos personalizados a archivos XFF existentes Para agregar objetos de gráficos personalizados a los archivos XFF, cree una instancia del objeto XFRX # DRAW como se describe en el capítulo anterior y use las propiedades y métodos descritos en el capítulo 17.3 Funciones de XFRX # DRAW a continuación. Todos los cambios se escriben inmediatamente en el archivo XFF y una vez que se libera la referencia de clase XFRX # DRAW, los cambios se escriben en el disco (u otros medios en los que se almacena el archivo XFF).

Dibujar objetos personalizados durante el proceso de generación de informes Alternativamente, puede crear scripts, que pueden invocarse sobre la marcha, durante el proceso de generación de informes. Estos scripts se pueden implementar como métodos de una clase o, en el caso de scripts enlazados a un rectángulo, se pueden ingresar en un campo de comentario de un objeto rectángulo en el informe. En XFRX para VFP 9.0, el archivo XFF siempre se usa internamente cuando se procesa un informe. Sin embargo, en XFRX para VFP 8.0, puede generar los documentos de destino "directamente", en cuyo caso, sin embargo, no se evaluarán los scripts XFF.

Scripts enlazados a la página Los scripts de página se implementan como métodos de una clase arbitraria: puede usar una clase personalizada que se crea una instancia antes de ejecutar XFRX, implementar los scripts como métodos del formulario actual o cualquier otra cosa que sea conveniente en su entorno de aplicación. Cada método de script acepta un parámetro: la referencia de objeto XFRX # DRAW. Esta referencia se vincula al documento que se está generando. Ejemplo: 1 DEFINE CLASS myXFRXScripts AS CUSTOM 2 3

PROCEDURE drawBlueRectangle

4

LPARAMETERS m.oXFD

5

m.oXFD.setColor(0,0,255,-1,-1,-1)

6

m.oXFD.drawRectangle(100,200,50,50)

7

ENDPROC

8 9 ENDDEFINE Antes de llamar a XFRX, los scripts se registran con RegisterScript () en la instancia de clase de sesión XFRX para que XFRX sea nuevo sobre estos scripts y los invoque según sea necesario. Puede ejecutar los scripts en cada página, páginas impares o parciales o páginas

arbitrarias. Consulte los Métodos comunes en XFRXListener y el capítulo de clases de XFRXSession para obtener una descripción detallada de este método y sus parámetros. Ejemplo: * *Draw blue rectangle on each page * m.loScripts = createobject("myXFRXScripts") m.loXFRXSession.registerScript(loScripts,"drawBlueRectangle",0,"ALL",0)

Guiones de rectángulo Los scripts vinculados a un rectángulo están vinculados a un rectángulo específico en el informe y se ejecutan en lugar de dibujar este rectángulo en la salida. Hay dos formas de implementar los scripts: los scripts con nombre, que se implementan como un método de una clase, o los scripts escritos directamente en el campo de comentario del rectángulo en la definición del informe. Scripts nombrados Si el script se implementa como un método de una clase, debe registrarse de forma similar a los scripts de página, pero solo se requieren los dos primeros parámetros: la referencia del objeto y el nombre del script: m.loScripts = createobject("myXFRXScripts") m.loXFRXSession.registerScript(loScripts,"drawBlueRectangle") Para vincular el script con un rectángulo, agregue "#UR SCRIPT NAME <script name>" (sin las comillas) como un comentario del rectángulo. Scripts escritos en el campo de comentario de rectángulo Alternativamente, la secuencia de comandos se puede ingresar en el campo de comentario del rectángulo. Esta técnica está disponible para VFP 8.0 y superior, pero su uso está limitado para VFP 8.0 porque el campo de comentarios es pequeño y solo se puede ingresar una cantidad limitada de texto. El script se ingresa entre las líneas #UR SCRIPT BEGIN y #UR SCRIPT END. Estos scripts no tienen nombre ni están registrados. Se supone que el contenido entre estas líneas acepta el parámetro de referencia del objeto XFRX # DRAW y se evalúa a través de la función EXECSCRIPT (). Ejemplo:

Cuando se encuentra dentro del script vinculado al rectángulo, el origen de las coordenadas se desplaza: 0,0 representa la esquina superior izquierda del rectángulo. La posición y el tamaño del rectángulo delimitador se pueden recuperar con el método GetBoundingRectangle () . Conversión de objetos encuadernados en rectángulo a imágenes El contenido de los scripts enlazados a un rectángulo se puede representar alternativamente como una imagen, que luego se coloca en la salida. Para ello, agregue la cláusula PICTURE a la línea #UR SCRIPT BEGIN o #UR SCRIPT NAME <script name> en el campo de comentario. La IMAGEN puede ser seguida opcionalmente por un valor DPI, que representa el DPI (puntos por pulgada) de la imagen creada. El DPI predeterminado es 96, que es adecuado para la vista previa en pantalla, pero es posible que desee aumentar el valor de DPI para aumentar la calidad de la imagen. También puede especificar el tipo de imagen agregando la cláusula TYPE seguida de uno de los siguientes valores: BMP, JPEG (JPG), PNG, TIFF (TIF) y EMF. El tipo de imagen predeterminado es JPG. Las siguientes palabras clave son:   

BPP - bits por píxel; el valor predeterminado es 24; los valores son 1,4,8,16,24,32; XFRX 15.5 JPEGQ - calidad jepg; el valor predeterminado es 96; XFRX 15.5 TRANSPARENTE: modo de fondo transparente para TIFF, PNG y EMF; el predeterminado es opaco; XFRX 15.5 Envío de parámetros a scripts nombrados Los scripts nombrados pueden opcionalmente aceptar más parámetros. Los parámetros se especifican mediante la cláusula PARAMETERS seguida de los parámetros, que se evalúan en el momento del procesamiento del informe. Ejemplo:

1 DEFINE CLASS myXFRXScripts as Custom 2

PROCEDURE fancyRectangle

3

LPARAM m.oXFD, m.boxwidth, m.boxheight

4

*

5

* This script draws little boxes around the bounding rectangle.

6

* The height and width of the rectangles can be sent as parameters.

7

* The default width and height is 5 points. (1 point = 1/72 inch).

8

*

9

IF EMPTY(m.boxwidth)

10

m.boxwidth = 5

11

ENDIF

12

IF EMPTY(m.boxheight)

13 14

m.boxheight = m.boxwidth ENDIF

15 16

m.oXFD.setUnit("pt")

17

m.loBox = m.oXFD.getBoundingRectangle()

18

m.oXFD.setColor(0,0,0)

19

20

LOCAL m.i

21

FOR m.i = 0 TO INT(m.loBox.nwidth/m.BOXWIDTH)-1

22

m.oXFD.setColor(0,0,0,INT(RAND()*256),INT(RAND()*256),INT(RAND()*256))<

23

m.oXFD.drawRectangle(m.i*m.BOXWIDTH, 0, m.BOXWIDTH, m.boxheight,1,1)
24

m.oXFD.setColor(0,0,0,INT(RAND()*256),INT(RAND()*256),INT(RAND()*256))<

25

m.oXFD.drawRectangle(m.i*m.BOXWIDTH, ;

26 27

INT(m.loBox.nheight/m.boxheight-1)*m.boxheight, m.BOXWIDT ENDFOR

28 29

FOR m.i = 1 TO INT(m.loBox.nHeight/m.boxheight)-2

30

m.oXFD.setColor(0,0,0,INT(RAND()*256),INT(RAND()*256),INT(RAND()*256))<

31

m.oXFD.drawRectangle(0, m.i*m.boxheight, m.BOXWIDTH, m.boxheight,1,1)
32

m.oXFD.setColor(0,0,0,INT(RAND()*256),INT(RAND()*256),INT(RAND()*256))<

33

m.oXFD.drawRectangle(int(m.loBox.nwidth/m.BOXWIDTH-1)*m.BOXWIDTH, ;
34

m.i*m.boxheight, m.BOXWIDTH, m.boxheight,1,1)
35 36

ENDFOR ENDPROC

37 ENDDEFINE

XFRX # DRAW funciones Este capítulo proporciona una breve lista de propiedades y métodos implementados en la clase XFRX # DRAW. Para una descripción detallada de las propiedades, los métodos y sus parámetros, consulte la referencia de clase XFRX # DRAW en la página 92).

Navegación de documentos XFF Cada vez que dibuja algo en un documento XFF, el dibujo siempre se agrega en la parte superior de la "página actual". La página actual se almacena en una propiedad de solo lectura CurrentPage . El número total de páginas se almacena en la propiedad PageCount . Para navegar por las páginas, use los métodos GoTop (), GoBottom () y GoToPage (nPageNo) .

Agregar páginas El método AddPage () crea una nueva página al final del documento. Puede especificar el tamaño de la nueva página o usar el mismo tamaño que la página actual.

Unidades de coordenadas La unidad predeterminada es Point (1/72 pulgadas). Puede usar el método setUnit (cUnit) para cambiar a una unidad diferente. Las unidades disponibles son: centímetros (cm), pulgadas (in), puntos (pt) y píxeles (px). 17.3.4 Funciones de dibujo Use el método SetColor () para establecer los colores para las siguientes llamadas al método de dibujo, los colores predeterminados son negro para el lápiz y blanco para el fondo. Texto de dibujo Use el método setFont () para establecer el nombre, el tamaño y los atributos de la fuente. DrawText () dibuja un texto en una posición dada, en una posición definida por el método SetPos () o al final de una salida de la llamada al método anterior DrawText () "posición actual". Después de cada llamada al método DrawText () , la "posición actual" avanza según la altura y el ancho del texto. GetXPos () y GetYPos () devuelven la posición actual. DrawTextBox () dibuja un texto en un rectángulo delimitador dado: la palabra envuelve las líneas largas y opcionalmente expande la altura del cuadro delimitador para acomodar todo el texto. Para mantener la compatibilidad con la biblioteca PDF, OutText () es sinónimo de DrawText () . Dibujando formas básicas drawLine () dibuja una línea punto a punto , drawRectangle () dibuja un rectángulo, un rectángulo redondeado o una elipse. Dibujando imágenes El método DrawPicture () dibuja una imagen dentro de un rectángulo delimitador dado.

Información sobre herramientas, hipervínculos y marcadores Cada texto dibujado por DrawText () o DrawTextBox () puede tener un tooltip, puede servir como un objetivo para un marcador y puede ser un hipervínculo o un destino o un hipervínculo. Consulte los parámetros tcLinkName, tcLinkRef, tcBookmark y tcTooltip de los métodos DrawText () y DrawTextBox () en la referencia de clase XFRX # DRAW en la página 92. 

Notificaciones de banderas

Sin etiquetas

Documentación XFRX / Páginas / Guía del desarrollador metadata.attachments

Previsualizador de XFRX Usuario desconocido (mst) Modificado por última vez nov 12, 2017 por martinajindrova

      

XFRX se envía con su propio visualizador de informes. El previsualizador permite: Dirigir la generación del informe al previsualizador o previsualizar un archivo XFF existente Buscando el documento Exportación del documento a cualquiera de los formatos de salida de soporte Imprimir el documento Navegación a través de hipervínculos y marcadores Invocar código de FoxBase en clic de hipervínculo (eventos personalizados) La vista previa se implementa como un objeto contenedor, por lo que se puede agregar fácilmente dentro de cualquier formulario de VFP. Los archivos XFF no tienen que almacenarse como archivos físicos. También puede crear archivos temporales XFF que se liberarán automáticamente cuando cierre la vista previa. (Consulte Creación de archivos temporales XFF en la página 45 para obtener más información).

     

Configurando el previsualizador de XFRX Imprimir desde el previsualizador Exportar informes de la vista previa Soporte de correo electrónico en el previsualizador XFRX Localización del previsualizador Registro de errores 

Notificaciones de banderas Documentación XFRX / ... /

Sin etiquetas

Previsualizador de XFRX

Configurando el previsualizador de XFRX martinajindrova Modificado por última vez dic 01, 2017

Esta sección se ha agregado para reflejar los cambios en XFRX ver. 11.3. Si está utilizando versiones anteriores de XFRX, consulte el apartado Uso de la clase XFCont a continuación en este capítulo. Hay varias formas de configurar la previsualización de XFRX. Puede usar el componente de vista previa independiente ya preparado o comenzar con las clases básicas del componente de vista previa para agregar las capacidades de vista previa a sus propios formularios. Los siguientes subcapítulos describen el uso de tres clases implementadas en XFRXLIB.VCX, que puede utilizar como punto de partida para implementar el previsor de XFRX en su aplicación:

 



frmMPPreviewer

cntXFRXMultiPage

XFCont

Implementado como una forma (la configuración más fácil)



No

No

Implementado como contenedor (se puede incrustar en formularios existentes)

No





admite la interfaz de múltiples pestañas





No

admite la barra de herramientas integrada





No

XFCont es la clase de vista previa XFRX básica. Se implementa como un objeto contenedor y admite búsquedas, hipervínculos, marcadores, impresión y exportación. La clase cntXFRXMultiPage amplía la funcionalidad de la clase XFCont con la interfaz de varias pestañas: puede mostrar varias pestañas de vista previa en una clase de marco de página. También es compatible con una barra de herramientas incrustada (falsa), que es un control similar a una barra de herramientas en la parte superior del contenedor, que es muy útil si el formulario del previsualizador no está dentro de la pantalla principal de VFP. frmMPPreviewer es una clase de formulario que implementa cntXFRXMultiPage y sirve como un "proxy" para las características de la clase cntXFRXMultiPage. Si todo lo que

necesita es una vista previa del informe de pantalla completa, esta es la más fácil de configurar.

Configuración por defecto Se ha agregado una nueva propiedad de tipo de objeto a las clases XFCont, cntXFRXMultipage y frmMPPreviewer:

Nombre

Descripción Versión XFRX

cImageFolder

Carpeta con imágenes para la vista previa de XFRX. La subcarpeta 32x32 contiene iconos de 32x32 px.

16.1.4

Nombre

Descripción Versión XFRX

La subcarpeta 48x48 contiene iconos de 48x48 px. La subcarpeta 96x96 contiene iconos de 96x96 px. oDisplayDefaults

Mostrar opciones predeterminadas.

o PrinterOptions

Imprimir opciones predeterminadas

17.0.0

oExportOptions

Opciones predeterminadas de exportación .

17.0.0

oEmailOptions

Opciones predeterminadas de correo electrónico

17.0.0

lVFP8

Cambie la compatibilidad de backware con versiones anteriores de VFP en VFP 9.0. El valor predeterminado es .F.

17.3.1

Object oDisplayDefaults tiene las siguientes propiedades:

Nombre

Tipo

Descripción

StartingPage

entero

La primera página para mostrar en el reproductor. El valor predeterminado es 1.

DefaultOutputFileName

cuerda

El nombre de archivo de salida predeterminado al exportar desde el vista previa.

PagesPerSheet

cuerda

Páginas codificadas por valor de diseño de hoja. Valor predeterminado: 1x1. Valores permitidos: 1x1, 2x1, 2x2, 3x1, 3x2, 4x2.

ZoomFactor

entero

el factor de zoom. valor predeterminado = 100. -1 = ajustar al ancho, -2 = página de ajuste.

Versión XFRX

Nombre

Tipo

Descripción

Versión XFRX

El factor de zoom se usará solo de PagesPerSheet es 1x1, de lo contrario, tiene el valor predeterminado de -2. entero

FindColor

color de fondo del texto buscado

17.0.0

Ejemplo: 1 m.loPreview = CREATEOBJECT("frmMPPreviewer") 2 m.loPreview.oDisplayDefaults.StartingPage = 2 3 m.loPreview.oDisplayDefaults.DefaultOutputFileName = "invoice15_09" 4 m.loPreview.oDisplayDefaults.ZoomFactor = -1 5 m.loPreview.oDisplayDefaults.PagesPerSheet = "1x1" 6 m.loPreview.lVFP8=.T. && don't use XFRX#LISTENER 7 m.loPreview.PreviewXFF(loXFF) 8 m.loPreview.show(1)

Métodos y propiedades comunes Aunque puede usar diferentes clases para proporcionar las capacidades de vista previa en su aplicación, todas las clases comparten la mayoría de las propiedades y métodos que puede usar para controlarlos y personalizarlos. Control de las funciones de vista previa de varias pestañas Las propiedades y métodos descritos en este párrafo se implementan en las clases cntXFRXMultiPage y frmMPPreviewer. Las características de múltiples pestañas no están implementadas en la clase XFCont.

Propiedad / Método

Uso

lShowTabForOneReport

Valores posibles:

(propiedad)





.F. (predeterminado): la pestaña con títulos de página está oculta si solo se muestra una vista previa de un informe. Se volverá automáticamente visible cuando se obtenga una vista previa del segundo informe. .T. - la pestaña con títulos de página siempre está visible.

Vista previaXFF

Sintaxis:

(método)

PreviewXFF (toXFF, tcCaption, tnPageNo) Llame a este método para obtener una vista previa del archivo XFF en la vista previa. Puede llamar a este método varias veces, lo que agregará nuevos informes como páginas nuevas o reemplazará las páginas existentes, según los parámetros. Parámetros: toXFF La referencia de un archivo XFF que se va a previsualizar tcCaption (opcional) El título de la página con este informe si la vista previa de varios informes. tnPáginaNo (opcional) La página en la que se va a ver el archivo XFF. Si este parámetro está vacío o es mayor que el número de páginas existentes, se agrega una página nueva. Si ya existe una página con este número, será reemplazada.

Eliminar página

Sintaxis:

(método)

RemovePage (tnPageNo) Elimina una página del previsualizador. Parámetros: tnPáginaNo (opcional) El número de la página para eliminar. Si el parámetro está vacío o el número es mayor que el número de páginas existentes, se elimina el último.

Registrar un manejador de extensión El controlador de extensión permite ampliar la funcionalidad de las clases básicas sin necesidad de crear subclases. Todo lo que necesita es crear una clase personalizada, que implemente ciertos métodos. La clase personalizada se registra con la clase de vista previa de XFRX (usando el método SetExtensionHandler) y la persona que realiza la vista previa llama a los métodos de extensión en los eventos apropiados. Los métodos de eventos soportados actualmente son:

Método

Uso

Comentario

Método

Uso

KeyPress

Este método se llama desde KeyPress () método od clase xfcont.

Comentario

Parámetros: toXFF: el controlador del archivo XFF que se está visualizando nKeyCode - Contiene un número que identifica la tecla presionada nShiftAltCtrl - Establece un bit particular si se mantiene presionada una tecla modificadora mientras se presiona la tecla especificada por nKeyCode Ejemplo 1: Definir la lista de opciones de salida de exportación, interceptando la exportación XLS 1 USE invoices ORDER customer 2 LOCAL m.loSession, m.lnRetval, m.loXFF, m.loPreview, m.loScripts 3 m.loSession=EVALUATE([xfrx("XFRX#LISTENER")])

4 m.lnRetVal = m.loSession.SetParams("",,,,,,"XFF") && no name = just in memory 6

REPORT FORM invoices OBJECT m.loSession

7

m.loXFF = m.loSession.oxfDocument

8

*

9

* initialize the previewer

10

*

11

SET CLASSLIB TO xfrxlib ADDITIVE

12

m.loPreview = CREATEOBJECT("frmMPPreviewer")

13

m.loPreview.setExtensionHandler(CREATEOBJECT("MyExtensionHandler"))

14

m.loPreview.windowType = 0

15

m.loPreview.iBook = 0

16

m.loPreview.PreviewXFF(loXFF)

17

m.loPreview.show(1)

18 ENDIF 19 20 21 DEFINE CLASS MyExtensionHandler AS Custom 22 23

PROCEDURE Export

24

LPARAMETERS m.toXFF

25

IF USED("_xfExportTypes")

26

USE IN _xfExportTypes

27

ENDIF

28

*

29

* define my export options list

30

*

31

CREATE CURSOR _xfExportTypes (name C(50), extension C(4), targetCode C(10))

32

INSERT INTO _xfExportTypes VALUES ("HTML",

"html",

"HTML")

33

INSERT INTO _xfExportTypes VALUES ("PDF",

"pdf",

"PDF")

34

INSERT INTO _xfExportTypes VALUES ("Excel", "xls",

"XLS")

35

ENDPROC

36 37

PROCEDURE ExportOptions

38

LPARAMETERS m.toXFF, m.toOptions

39

IF m.toOptions.cTarget = "XLS"

40

*

41

* my own code to handle output to Excel

42

*

43

=MESSAGEBOX("exporting to "+m.toOptions.cOutputFile)

44

RETURN .F.

&& suppress the default behavior

45

ELSE

46

RETURN .T.

47

&& continue with the default behavior

ENDIF

48 49

ENDPROC

50 51 ENDDEFINE Ejemplo 2 1 SET PATH TO xfrxlib 2 SET CLASSLIB TO xfrxlib 3 4 LOCAL m.loPreview, m.loSession, m.loExtensionHandler 5 6 m.loExtensionHandler = CREATEOBJECT("myExtensionHandler") 7 8 m.loPreview = CREATEOBJECT("frmMPPreviewer") 9 m.loSession=EVALUATE([xfrx("XFRX#LISTENER")]) 10 11 * 12 * create a memory XFF file 13 * 14 m.lnRetVal = m.loSession.SetParams(,,,,,,"XFF") 15 IF m.lnRetVal = 0 16

SELECT * ;

17

FROM customers INNER JOIN orders ON customers.customerid = orders.customerid ;
18

INNER JOIN orderdetails ON orders.orderid = orderdetails.orderid ;<

19

ORDER BY customers.companyname, customers.customerID, orders.orderID ;

20

INTO CURSOR custlist

21 22

REPORT FORM custlist OBJECT loSession

23 ENDIF 24 25 * 26 * assign the extension handler 27 * 28 m.loPreview.setExtensionHandler(loExtensionHandler) 29 * 30 * preview the report 31 * 32 m.loPreview.previewXFF(m.loSession.oxfdocument) 33 m.loPreview.show(1) 34 35 DEFINE CLASS myExtensionHandler AS CUSTOM 36

PROCEDURE Print

37

LPARAMETERS m.toXFF

38

RETURN .t. && continue with the default behavior

39

ENDPROC

40 41

PROCEDURE Export

42

LPARAMETERS m.toXFF

43

*

44

* now you can process the XFF file

45

*

46

RETURN .F. && override the default behavior

47

ENDPROC

48 ENDDEFINE

Ejemplo de BeforeExport y AfterExport 1 USE demoreps\invoices ORDER customer 2 LOCAL m.loSession, m.lnRetval, m.loXFF, m.loPreview, m.loScripts 3 m.loSession=EVALUATE([xfrx("XFRX#LISTENER")])

4 m.lnRetVal = m.loSession.SetParams(,,,,,,"XFF") && no name = just in memory
6

REPORT FORM demoreps\invoices object m.loSession

7

*

8

* the XFRX#DRAW object reference is stored in oxfDocument property

9

*

10

m.loXFF = m.loSession.oxfDocument

11

*

12

* initialize the previewer

13

*

14

SET PATH TO xfrxlib

15

SET CLASSLIB TO xfrxlib ADDITIVE

16

m.loPreview = CREATEOBJECT("frmMPPreviewer")

17

*

18

* setup the extension handler

19

*

20

m.loPreview.oExtensionHandler = CREATEOBJECT("SampleExtensionHandler")

21

m.loPreview.windowtype = 1

22

m.loPreview.iTool = 2 && embedded toolbar

23

m.loPreview.PreviewXFF(m.loXFF)

24

m.loPreview.show(1)

25 ENDIF 26 27 DEFINE CLASS SampleExtensionHandler as Custom

28 29 30

PROCEDURE BeforeExport LPARAMETERS m.toSession, m.toExportParameters

31 32

m.toSession.setAuthor("Martin") && set the document author property

33

IF m.toExportParameters.cTarget = "XLS" && (XLS or XLSPLAIN)

34 35 36

m.toSession.SetOtherParams("DISPLAY_GRID_LINES",.F.) && do not display gridlin ENDIF ENDPROC

37 38

PROCEDURE AfterExport

39

LPARAMETERS m.toSession, m.toOptions

40

IF m.toOptions.cTarget = "XLS"

41 42 43

*COPY FILE (m.toOptions.coutputfile) TO ([anybackupfolder]\[anyfile.xls]) ENDPROC

44 45 ENDDEFINE Ejemplo de KeyPress 1 USE demoreps\invoices ORDER customer 2 LOCAL m.loSession, m.lnRetval, m.loXFF, m.loPreview, m.loScripts 3 m.loSession=EVALUATE([xfrx("XFRX#LISTENER")])

4 m.lnRetVal = m.loSession.SetParams(,,,,,,"XFF") && no name = just in memory
6

REPORT FORM demoreps\invoices OBJECT m.loSession

7

*

8

* the XFRX#DRAW object reference is stored in oxfDocument property

9

*

10

m.loXFF = m.loSession.oxfDocument

11

*

12

* initialize the previewer

13

*

14

SET PATH TO xfrxlib

15

SET CLASSLIB TO xfrxlib ADDITIVE

16

m.loPreview = CREATEOBJECT("frmMPPreviewer")

17

*

18

* setup the extension handler

19

*

20

m.loPreview.oExtensionHandler = CREATEOBJECT("SampleExtensionHandler")

21

m.loPreview.windowtype = 1

22

m.loPreview.iTool = 2 && embedded toolbar

23

m.loPreview.PreviewXFF(loXFF)

24

m.loPreview.show(1)

25 ENDIF 26 27 DEFINE CLASS SampleExtensionHandler AS CUSTOM 28 29

PROCEDURE KeyPress(m.loXFCont, m.nKeyCode, m.nShiftAltCtrl)

30

* hotkey for print P (112-p, 80-P)

31

IF INLIST(m.nKeyCode, 112, 80)

32 33 34

m.loXFCont.Print() ENDIF ENDPROC

35 ENDDEFINE

Mostrar / ocultar marcadores El comportamiento del panel de marcadores está controlado por la propiedad iBook:

Propiedad

Uso

yo reservo

Controla si el marcador debe mostrarse en la vista previa. Los valores permitidos son:    

-1 = Inhabilitar marcadores 0 = Habilitar marcadores pero ocultarlos (los usuarios deben hacer clic en el botón de marcador para verlos) 1 = Habilitar marcadores, mostrándolos siempre (predeterminado) 2 = Habilitar los marcadores, pero mostrarlos u ocultarlos automáticamente en función de si hay marcadores definidos en el informe para previsualizar (predeterminado)

Mostrando u ocultando barras de herramientas de vista previa Hay dos barras de herramientas en el control del previsualizador: una se coloca en la parte inferior del control, la otra está disponible como un panel flotante de la barra de herramientas, que por defecto se acopla en la parte superior de la ventana principal o, alternativamente, como un "incrustado" barra de herramientas". Las tres clases implementan las propiedades iTool y ShowStatus que controlan la visibilidad de las barras de herramientas:

Propiedad

Uso

classMainToolbar

El nombre de clase de la barra de herramientas. El valor predeterminado es "xfrxToo crear un elemento secundario de la clase xfrxToolbar predeterminada (definida en xfr usar esta propiedad para indicarle al usuario que use la clase en lugar de la predeterm

Esta propiedad funciona para la barra de herramientas "real" - si la propiedad iTool e iTool se establece en 2, la clase de contenedor cmdEmbeddedToolbar se utiliza como herramientas "incrustada". La clase xfrxToolbar32 es para iconos de 32x32 px. La clase xfrxToolbar48 es para iconos de 48x48 px. La clase xfrxToolbar96 es para iconos de 96x96 px. ClassMainStatusBar

El nombre de clase de la barra de estado o barra de herramientas embebida. El valor predeterminado es "cntembeddedtoolbar". Puede crear un elemento secundario de la predeterminada cntembeddedtoolbarr (definida en xfrxlib.vcx) y usar esta propiedad al usuario que utilice su clase en lugar de la predeterminada. Class cntembeddedtoolbar32 es para iconos de 32x32 px. La clase cntembeddedtoolbar48 es para iconos de 48x48 px. La clase cntembeddedtoolbar96 es para iconos de 96x96 px.

iTool

Controla la visibilidad de la barra de herramientas en la parte superior. Los valores pe son:    

mostrar el estado

-1 = Deshabilitar la barra de herramientas 0 = La barra de herramientas estará habilitada pero oculta. Se puede invocar a través del me directo con el botón derecho 1 = La barra de herramientas estará habilitada y visible. (defecto) 2 = La barra de herramientas se mostrará como incrustada en el formulario (disponible solo cntXFRXMultiPage y frmMPPreviewer.

Controla la visibilidad de la barra de herramientas en la barra de estado del contenedo previa. Los valores permitidos son:  

.T. = mostrar la barra de herramientas (predeterminado) .F. = esconder la barra de herramientas

Mostrando barra de progreso

Propiedad

Uso

oprogress

La instancia de objeto de la barra de progreso de XFRX

1 USE demoreps\invoices ORDER customer 2 LOCAL m.loSession, m.lnRetval, m.loXFF, m.loPreview, 3 m.loScripts 4 m.loSession=EVALUATE([xfrx("XFRX#LISTENER")]) 5 m.lnRetVal = m.loSession.SetParams(,,,,,,"XFF") && no name = just in memory 6 IF m.lnRetVal = 0 7 REPORT FORM demoreps\invoices OBJECT m.loSession 8 * 9 * the XFRX#DRAW object reference is stored in oxfDocument 10 property 11

*

12

m.loXFF = m.loSession.oxfDocument

13

*

14

* initialize the previewer

15

*

16

SET PATH TO xfrxlib

17

SET CLASSLIB TO xfrxlib ADDITIVE

18

m.loPreview = CREATEOBJECT("frmMPPreviewer")

19

*

20

* setup the extension handler

21

*

22 23 24 25 26 27 28 29 30 31

m.loPreview.oExtensionHandler = CREATEOBJECT("SampleExtensionHandler") m.loPreview.oprogress=createobject("progress") m.loPreview.PreviewXFF(loXFF) m.loPreview.show(1) ENDIF DEFINE CLASS progress AS CUSTOM PROCEURE updateProgress LPARAM m.ta,m.tb, m.tc

WAIT WINDOW NOWAIT "Page #: "+ALLT(STR(m.tb))+" Report #: 32 "+ALLT(STR(m.ta))+" ("+ALLT(STR(m.tc))+"%)" ENDPROC ENDDEF

Usando la clase frmMPPreviewer Esta clase sirve como una ventana de vista previa independiente (pantalla completa). Todo lo que necesita hacer para que funcione es pasarle una referencia al archivo XFF para obtener una vista previa, utilizando el método previewXFF, como se describe en el párrafo anterior sobre Controlling multi-tab preview . (Si no está seguro de cómo crear una

referencia de archivo XFF, lea los capítulos 17.0: Inicialización de la instancia de clase XFRX # DRAW y 16.3: Creación de archivos XFF temporales ). Aquí hay un ejemplo muy simple de "Hola mundo": 1 LOCAL m.loPreview 2 SET CLASSLIB TO XFRXLIB.VCX ADDITIVE

3 m.loPreview = CREATEOBJECT("frmMPPreviewer") && create the previewer object 4 m.loPreview.previewXFF(m.loXFF)

&& loXFF is XFF file reference

5 m.loPreview.show(1)

&& show the form as modal

Asegúrese de establecer todas las propiedades (como iTool, ShowStatus, etc.) antes de llamar a PreviewXFF (...) de lo contrario no se usarán.

Usando la clase cntXFRXMultiPage 1. Agregue una instancia de la clase cntXFRXMultiPage (de XFRXLIB.VCX) en su formulario. Ajuste el tamaño del contenedor de objetos de clase cntXFRXMultiPage que necesite. La vista previa, incluida la barra de estado, los iconos y las barras de desplazamiento se mostrarán en el contenedor. Si cambia el tamaño del contenedor en tiempo de ejecución, su contenido se ajusta automáticamente. 2. Cuando el formulario está a punto de ser lanzado, la instancia de la clase cntXFRXMultiPage necesita realizar algunas tareas de limpieza. Para habilitarlo, llame al método clearLink () de la instancia de la clase desde el método de destrucción del formulario: 1 PROCEDURE Destroy 2

Thisform.cntXFRX.clearLink()

3 ENDPROC 3. Al ejecutar el formulario, asegúrese de que la biblioteca de la clase XFRXLIB.VCX esté referenciada en el comando SET CLASSLIB: SET CLASSLIB TO XFRXLIB.VCX ADDITIVE 4. Llame al método PreviewXFF para obtener una vista previa de un archivo XFF, tal como se describe en el párrafo anterior sobre Controlling multi-tab preview . 5. De forma predeterminada, cntXFRXMultiPage está utilizando una instancia de la clase XFCont para cada página. Si desea hacer que use una clase diferente (por ejemplo, una subclase de XFCont) ponga el nombre de la clase en la propiedad ClassPreviewPage de la instancia cntXFRXMultiPage.

Usando la clase XFCont 1. Agregue una instancia de clase XFCONT (de XFRXLIB.VCX) en su formulario. Ajuste el tamaño del contenedor de la clase XFCONT según lo necesite. La vista previa, incluida la barra de estado, los iconos y las barras de desplazamiento se mostrarán en el

contenedor. Si cambia el tamaño del contenedor en tiempo de ejecución, su contenido se ajusta automáticamente. 2. Cuando el formulario está a punto de ser lanzado, la instancia de la clase XFCONT necesita hacer algo de limpieza. Para habilitarlo, llame al método clearLink () de la instancia de la clase XFCont desde el método de destrucción del formulario: PROCEDIMIENTO 1 PROCEDURE Destroy Thisform.cntXFRX.clearLink() ENDPROC 3. Al ejecutar el formulario, asegúrese de que la biblioteca de la clase XFRXLIB.VCX esté referenciada en el comando SET CLASSLIB: SET CLASSLIB TO XFRXLIB.VCX ADDITIVE Enfoque VFP 8.0 En VFP 8.0, hay dos opciones para obtener una vista previa del informe en la vista previa. Las opciones difieren en el mecanismo de llamada, aunque internamente ambos funcionan exactamente igual. Generando el tipo de salida "CNT"

1. 2. 3. 4.

El enfoque utiliza la sintaxis estándar de llamar a XFRX, sin usar explícitamente la clase XFRX # DRAW (aunque se usa en segundo plano). No puede abrir un archivo XFF existente con este enfoque: siempre debe ejecutar un informe que se previsualizará. No envíe nada como el nombre del archivo de salida Use "CNT" como parámetro de tipo de salida en la llamada al método SetParams Método de restablecimiento de llamada de la clase de contenedor de vista previa Llame al método SetOtherParams de la instancia de la clase XFRXSession con la referencia de la instancia de XFCont como parámetro

Ejemplo: LOCAL m.loSession, m.lnRetval loSession= xfrx("XFRX#INIT") m.lnRetVal = m.loSession.SetP 1 thisform.cntXFRX * Thisform.cntXFRX.reset() m.loSession.setotherparams(Thisform.cntXFRX) Usando la clase XFRX # DRAW La ventaja de este método es que puede previsualizar un archivo XFF existente: el archivo XFF se abre y se "convierte" a tipo de salida "CNT" a través del método TransformReport:

Ejemplo: LOCAL m.loSession m.loSession= xfrx("XFRX#INIT") Thisform.oReport = xfrx("XFRX#DRAW") IF 1 m.loSession.SetParams(,,,,,,"CNT") IF m.lnRetVal = 0 m.loSession.setOtherParams(Thisform VFP 9.0 Enfoque En VFP 9.0 la lógica es la misma, solo la sintaxis es un poco diferente: la referencia al objeto XFCont se copia a la propiedad XFRXPreviewer de la instancia de la clase XFRXListener y luego al método previewReport con la referencia XFRX # DRAW como parámetro se llama: 1 LOCAL m.loSession

2 m.loSession= xfrx("XFRX#LISTENER") 3 Thisform.oReport = xfrx("XFRX#DRAW") 4 IF Thisform.oReport.openDocument("file.xff") 5

Thisform.cntXFRX.reset()

6

m.loSession.XFRXPreviewer = Thisform.cntXFRX

7

m.loSession.previewReport(Thisform.oReport)

8 ENDIF

Decoración de hipervínculo Se ha agregado una nueva propiedad a las clases XFCont, cntXFRXMultipage y frmMPPreviewer: UnderlineHyperlinksOnPrint. Puede usar los siguientes valores: 0 - sin decoración para hipervínculos 1 - muestra hipervínculos "normales" en azul, pero no decodifica hipervínculos de eventos personalizados (verde) 2 - (valor predeterminado) decorar hipervínculos azules y verdes Para apoyar esto en el imprimir salida, el método PrintDocument de la clase XFRX # DRAW tiene un nuevo parámetro, tnUnderlineHyperlinksOnPrint, con los mismos valores y la misma lógica.

Botones personalizados Esta característica se implementa utilizando el mecanismo del controlador de extensión: ahora se admite un nuevo método: ToolbarOnInit, que se invoca en el momento en que se inicializa la barra de herramientas. En este método, el controlador de extensión puede agregar nuevos botones al previsualizador y sus eventos de clic pueden vincularse con otros métodos en el controlador de extensión. También se admite una nueva propiedad: oPreviewContainer. Si está disponible, la vista previa lo rellenará automáticamente con la referencia del objeto XFCont para un acceso más fácil a las propiedades del previsualizador en los botones personalizados, haga clic en los métodos de evento. Ejemplo: 1 USE demoreps\sales 2 LOCAL m.loSession, m.lnRetval, m.loXFF, m.loPreview, m.loScripts 3 m.loSession=EVALUATE([xfrx("XFRX#LISTENER")])

4 m.lnRetVal = m.loSession.SetParams(,,,,,,"XFF") && no name = just in memory
6

REPORT FORM demoreps\sales OBJECT m.loSession

7

*

8

* the XFRX#DRAW object reference is stored in oxfDocument property

9

*

10

m.loXFF = m.loSession.oxfDocument

11

*

12

* initialize the previewer

13

*

14

SET PATH TO xfrxlib

15

SET CLASSLIB TO xfrxlib ADDITIVE

16

m.loPreview = CREATEOBJECT("frmMPPreviewer")

17

*

18

* setup the extension handler

19

*

20

m.loPreview.oExtensionHandler = CREATEOBJECT("SampleExtensionHandler")

21

m.loPreview.windowtype = 1

22

m.loPreview.iTool = 2 && embedded toolbar

23

*m.loPreview.iTool = 1 && standard toolbar

24

m.loPreview.PreviewXFF(m.loXFF)

25

m.loPreview.show(1)

26 ENDIF 27 28 DEFINE CLASS SampleExtensionHandler AS CUSTOM 29 30

oPreviewContainer = .NULL.

31 32

PROCEDURE ToolbarOnInit

33

LPARAMETERS m.toToolbar

34

LOCAL m.button

35

IF m.toToolbar.AddObject("mybutton", "commandbutton")

36

BINDEVENT(m.toToolbar.mybutton, "click" , This, "ButtonClicked")

37

m.toToolbar.mybutton.tabindex = 1

38

m.toToolbar.mybutton.Visible = .t.

39

IF UPPER(m.totoolbar.BaseClass)!="TOOLBAR"

40

m.toToolbar.mybutton.left = m.toToolbar.cmdQuit.left

41

m.toToolbar.cmdQuit.left = m.toToolbar.mybutton.left + m.toToolbar.mybutton

42 43 44

ENDIF



ENDIF ENDPROC

45 46

PROCEDURE ButtonClicked

47

LOCAL m.lcString

48

m.lcString = "This.oPreviewContainer.Name: "+This.oPreviewContainer.Name+CHR(13)<

49

m.lcString = m.lcString + "current page: "+TRANSFORM(This.oPreviewContainer.nPage

50

m.lcString = m.lcString + "XFRX#DRAW Object: "+This.oPreviewContainer.oXFRXWriter

51

m.lcString = m.lcString + "Page count: "+TRANSFORM(This.oPreviewContainer.oXFRXWr

52

WAIT WINDOW m.lcString

53



54

*This.oPreviewContainer.oXFRXWriter.PrintDocument(...)

55

*This.oPreviewContainer.oXFRXWriter.SavePicture(...)

56

ENDPROC

57 58 ENDDEFINE 

Notificaciones de banderas Documentación XFRX

Sin etiquetas

/ ... / Previsualizador de XFRX

Imprimir desde el previsualizador martinajindrova 12 de noviembre de 2017

De forma predeterminada, cuando los usuarios hacen clic en el botón "Imprimir" en la barra de herramientas del previsualizador ( ), se llama al método de impresión de la clase XFCont. Este método muestra un cuadro de diálogo con una selección de impresora y permite ingresar un rango de página:

Cuando se realiza una vista previa de un archivo XFF, se puede acceder a la referencia XFRX # DRAW correspondiente a través de la propiedad oXFRXWriter de la instancia de la clase de vista previa. Si desea cambiar la forma en que el previsualizador reacciona ante el evento de impresión, puede configurar un controlador de extensión (consulte Registrar un controlador de extensión en este capítulo para obtener más información). Hay tres eventos que el controlador de extensión puede implementar:

Nombre

Descripción

Impresión

Se llama a este método cuando se hace clic en el botón Imprimir en la barra de herramientas.

Versión XFRX

Parámetros: toXFF: el controlador del archivo XFF que se está visualizando BeforePrintOptions

Se llama a este método antes de que se abra el cuadro de diálogo Opciones de impresora.

16.1

Parámetros: toXFF: el controlador del archivo XFF que se está previsualizando en Parámetros: el objeto que contiene las opciones de impresión.

PrintOptions

Este método se invoca después de que se cierra el cuadro de diálogo Opciones de impresora, antes de la impresión real. Parámetros: toXFF: el controlador del archivo XFF que se está previsualizando en Parámetros: el objeto que contiene las opciones de impresión.

El objeto de parámetro de impresión tiene los siguientes métodos: Nombre

Desccription Versión XFRX

Nombre

Desccription Versión XFRX

ReadDEVMODE

Lea los datos DEVMODE para la impresora seleccionada por la propiedad PrinterName.

17.0.0

SetField

Establezca el campo de datos DEVMODE para la impresora seleccionada por propiedad PrinterName. Parámetros: tcField - Nombre del campo, como "DM_COLOR", "DM_PRINTQUALITY", etc. tuValue - Valor de los campos

17.0.0

El objeto de parámetro de impresión tiene las siguientes propiedades: Nombre

Tipo

Desccription

AllOddEven

número

Incluye todas las páginas, impar o par solamente. Los valores permitidos son:

Versión XFRX

1 ... todas las páginas (valor predeterminado) 2 ... páginas impares 3 ... incluso páginas Copias

número

La cantidad de copias

Enfocar

número

El número de páginas por hoja.

lShowDialog

booleano

Especifica si un XFRX llama al cuadro de diálogo "Opciones de impresión".

PrinterName

cuerda

El nombre de la impresora a la que se enviará el documento.

17.0.0

Versión XFRX

Nombre

Tipo

Desccription

Rango de páginas

cuerda

Ingrese los números de página y / o los intervalos de página separados por comas (por ejemplo, 3,4,5-9 o CURRENT (página)).

cDevmode

cuerda

Estructura DEVMODE.

lImprimir

booleano

Especifica si un XFRX llama al método PrintDocument ().

17.0.0

cOutputFile

cuerda

Nombre de archivo de salida para XPS Microsoft Document Writer u otro controlador virtual de PDF.

17.0.0

aFindString

formación

Una matriz contiene cadenas para resaltar.La matriz puede tener una columna: el color de fondo será el mismo para todas las cadenas. O la cabina tiene dos columnas, mientras que la segunda columna contiene el color de fondo para la cadena.

17.0.0

El nombre del trabajo de la impresora generado por el método de impresión se almacena en la propiedad cJobName de la clase XFCont y se puede cambiar tanto en tiempo de diseño como en tiempo de ejecución. (El valor predeterminado es "XFRX"). Consulte también: Impresión del capítulo de archivos XFF en la página 46 para obtener más información sobre cómo imprimir el contenido de los archivos XFF.



Notificaciones de banderas Documentación XFRX / ... /

Sin etiquetas

Previsualizador de XFRX

Exportar informes de la vista previa martinajindrova Modificado por última vez ene 17, 2018

De manera similar a la impresión, cuando los usuarios hacen clic en el botón "Exportar" en la barra de herramientas del previsualizador ( ), se llama al método de exportación de la clase XFCont. Este método muestra un cuadro de diálogo con el tipo de salida y una selección de nombre de archivo y convierte el archivo XFF que se está previsualizando en el documento de salida:

Si desea crear su propia solución de exportación personalizada, puede configurar un controlador de extensión (consulte Cómo registrar un párrafo del controlador de extensión en este capítulo para obtener más información) o puede crear un elemento secundario de la clase XFCont y anular el método de exportación. . Hay cinco eventos que el controlador de extensión puede implementar:

Nombre

Descripción Versión XFRX

BeforeSetParams

El método se ejecuta justo antes de llamar al método SetParams () y se puede usar para parametrizar el objeto de sesión xfrx antes de exportar.

17.3.1

Nombre

Descripción Versión XFRX Parámetros: toXFF: el controlador del archivo XFF que se está previsualizando en Parámetros: el objeto que contiene las opciones de exportación

Antes de exportar

El método se ejecuta justo antes de exportar el informe al formato de salida y se puede usar para parametrizar el objeto de sesión xfrx antes de exportarlo. Parámetros: toXFF: el controlador del archivo XFF que se está previsualizando en Parámetros: el objeto que contiene las opciones de exportación

AfterExport

El método se ejecuta justo después de exportar el informe al formato de salida y se puede usar para copiar el archivo de salida a otra carpeta. Parámetros: toXFF: el controlador del archivo XFF que se está previsualizando en Parámetros: el objeto que contiene las opciones de exportación

Exportar

Se llama a este método cuando se hace clic en el botón Exportar en la barra de herramientas. Parámetros: toXFF: el controlador del archivo XFF que se está visualizando

BeforeExportOptions

Se llama a este método antes de que se abra el cuadro de diálogo Opciones de exportación. Parámetros: toXFF: el controlador del archivo XFF que se está previsualizando en Parámetros: el objeto que contiene las opciones de exportación

ExportOptions

Se llama a este método después de que se cierra el cuadro de diálogo Opciones de exportación, antes de que se ejecute la

16.1

Nombre

Descripción Versión XFRX exportación real Parámetros: toXFF: el controlador del archivo XFF que se está previsualizando en Parámetros: el objeto que contiene las opciones de exportación

El objeto de parámetro de exportación tiene las siguientes propiedades:

Nombre

Tipo

Descripción

Grupo

cTarget

cuerda

Tipo de salida XFRX.

General

cPageScope

cuerda

Ingrese los números de página y / o los intervalos de página separados por comas (por ejemplo, 3,4,5-9).

General

cOutputFile

cuerda

Archivo de salida.

General

lNotOpenFile

booleano

Especifica si un archivo abierto XFRX después de la creación.

General

16.1.0

lShowDialog

booleano

Especifica si un XFRX llama al cuadro de diálogo "Opciones de impresión".

General

17.0.0

lExport

booleano

Especifica si una XFRX se exporta a la salida.

General

17.0.0

AllOddEven

número

Incluye todas las páginas, impar o par solamente. Los valores permitidos son:

Imagen

1 ... todas las páginas (valor predeterminado) 2 ... páginas impares 3 ... incluso páginas Copias

número

La cantidad de copias

Imagen

Enfocar

número

El número de páginas por hoja.

Imagen

VersiónXFRX

ImageDPI

número

Imagen DPI.

Imagen

aFindString

formación

Una matriz contiene cadenas para resaltar. La matriz puede tener una columna: el color de fondo será el mismo para todas las cadenas. O la cabina tiene dos columnas, mientras que la segunda columna contiene el color de fondo para la cadena.

Imagen

17.0.0

nAppendMode

número

Añada el modo para PDF, RTF, FRTF y PLAIN. Los valores permitidos son: 1 ... Añadir al final 2 ... Insertar al principio 3 ... Reemplazar (documento) 4 ... Insertar de la página 5 ... Reemplazar página (s) de:

Modo de agregar

16.1.0

nAMFromPage

número

Para nAppendMode 4: el informe generado se insertará en el documento existente en el número de página especificado.

Modo de agregar

16.1.0

Para nAppendMode 5: primera página para reemplazar en el documento original. nAMToPage

número

Para nAppendMode 5: última página para reemplazar en el documento original.

Modo de agregar

16.1.0

Archivar

cuerda

Archivo (zip) nombre de archivo.

Archivo

16.1.0

lArchiveAdditive

booleano

Agregar a archivo.

Archivo

16.1.0

lArchiveDeleteFileAfter

booleano

Eliminar archivo (s)

Archivo

16.1.0

después de crear archivo. 

Sin etiquetas

Notificaciones de banderas Documentación XFRX / ... / Previsualizador de XFRX

Soporte de correo electrónico en el previsualizador XFRX martinajindrova Modificado por última vez nov 12, 2017

Se ha agregado un icono de correo electrónico a la barra de herramientas de vista previa de XFRX. Está deshabilitado por defecto para compatibilidad con versiones anteriores y puede habilitarse configurando la propiedad iEmail de la clase de vista previa [xfCont, cntXFRXMultiPage o frmMPPreviewer] en 1. Si hace clic en el icono de correo electrónico, ejecuta el método de correo electrónico de la clase xfCont. De forma predeterminada, muestra un cuadro de diálogo simple que solicita la dirección de correo electrónico, el asunto, el cuerpo, etc. y utiliza la biblioteca VFPWinsock para enviar el correo electrónico.

VFPWinsock es una biblioteca de envío de SMTP gratuita escrita por un VFP MVP Francis Faure. No se distribuye junto con XFRX y se puede descargar de http://www.xfrx.net/vfpWinsock/index_e.asp . Es un paquete pequeño y agradable escrito en VFP distribuido como un solo .prg. El comportamiento predeterminado puede ser interceptado o anulado por un controlador de extensión [ Obtenga más información sobre los manejadores de extensión en 18.1.2.2 Registrar un manejador de extensión] - y, como el diálogo predeterminado no solicita toda la información VFPWinsock necesita (por ejemplo, no lo hace) pregunte por el host SMTP) realmente necesita crear un controlador de extensión para que funcione en su entorno. Hay tres eventos que el controlador de extensión puede implementar:

Nombre

Descripción

BeforeEmailOptions

El evento se dispara antes de que se muestre el cuadro de diálogo y el usuario hace clic en "Enviar". El objeto de opciones y referencia de archivo XFF se envía como parámetro. De vuelta .F. suprimirá el correo electrónico que se enviará. Parámetros: toXFF: el controlador del archivo XFF que se envía por correo electrónico a Parámetros: el objeto que contiene las opciones de correo electrónico.

EmailOptions

El evento se activa después de que se muestra el cuadro de diálogo y el usuario hace clic en "Enviar". El objeto de opciones y referencia de archivo XFF se envía como parámetro. De vuelta .F. suprimirá el correo electrónico que se enviará. Parámetros: toXFF: el controlador del archivo XFF que se envía por correo electrónico a Parámetros: el objeto que contiene las opciones de correo electrónico.

Email

El evento se dispara cuando se hace clic en el icono, antes de que se muestre el cuadro de diálogo. La referencia de archivo XFF, el objeto de opciones y el objeto de progreso se

Versión XFRX

Nombre

Descripción

Versión XFRX

envían como parámetro. Si el objeto controlador de extensión no tiene Evento de correo electrónico, entonces XFRX intente ejecutar vfpWinsock automáticamente. Parámetros: toXFF: el controlador del archivo XFF que se envía por correo electrónico a Parámetros: el objeto que contiene las opciones de correo electrónico. toProgress: objetos de progreso de XFRX. Email_BeforeTransportReport

El evento se dispara antes de llamar al método TransformReport (). Parámetros: toSession: el controlador del objeto XFRX # SESSION. toParameters: el objeto que contiene las opciones de correo electrónico.

17.0.0

Email_AfterTransportReport

El evento se desencadena después del método de llamada TransformReport (). Parámetros: toSession: el controlador del objeto XFRX # SESSION. toParameters: el objeto que contiene las opciones de correo electrónico.

17.0.0

El objeto de parámetro de correo electrónico tiene las siguientes propiedades:

Nombre

Tipo

Descripción

Versión XFRX

cSMTP_HOST

cuerda

Host SMTP

nSMTP_PORT

entero

Puerto SMTP, el valor predeterminado es 25.

17.0.0

cAUTH_Login

cuerda

Inicio de sesión ESMTP.

17.0.0

Nombre

Tipo

Descripción

Versión XFRX

cAUTH_Password

cuerda

Contraseña de ESMPT

cFrom

cuerda

De la dirección de correo electrónico.

cFROM_Name

cuerda

Del nombre del correo electrónico

cTo

cuerda

Para la dirección de correo electrónico.

cTO_Name

cuerda

Para el nombre del correo electrónico

cCC

cuerda

Dirección de correo electrónico de copia de carbono.

cCC_Name

cuerda

Nombre de correo electrónico de copia de carbono.

cBCC

cuerda

Dirección de correo electrónico copia ciega.

ccuerpo

cuerda

Mensaje como texto

cBodyHTML

cuerda

Mensaje como HTML

17.0.0

cDATA_MHTML

cuerda

Nombre de archivo con datos MTH.

17.0.0

cSubject

cuerda

Tema.

17.0.0

17.0.0

17.0.0

17.0.0

Nombre

Tipo

Descripción

cCodePage

cuerda

Página de códigos para asunto, nombre, mensaje, etc. El valor predeterminado es "iso-88591". Pero puede configurar "windows1250" o "windows1252".

lEnviar

booleano

Especifica si un evento de llamada XFRX Correo electrónico o vfpWinsock.

lShowDialog

booleano

Especifica si un XFRX llama al cuadro de diálogo "Opciones de correo electrónico".

Versión XFRX 17.0.0

17.0.0

Los siguientes son ejemplos de los dos escenarios más comunes: Suprime el comportamiento predeterminado y maneja el evento de correo electrónico por tu cuenta 1 LOCAL m.loPreview 2 m.loPreview = CREATEOBJECT("frmMPPreviewer") 3 m.loPreview.iEmail = 1 && show the email icon 4 m.loPreview.oExtensionHandler = CREATEOBJECT("SampleExtensionHandler") 5 m.loPreview.PreviewXFF(LOCAL m.loXFF) && preview the document 6 m.loPreview.show(1) 7 8 DEFINE CLASS SampleExtensionHandler AS CUSTOM 9

10 PROCEDURE Email 11 LPARAMETERS m.loXFF[, [m.opt[, m.oProgress]] 12 * loXFF - XFF file reference 13 * m.opt - email options (since XFRX 17.0.0) 14 * m.oProgress - XFRX progress object (since XFRX 17.0.0) 15 LOCAL m.loSession, m.lcFileName 16 m.loSession=EVALUATE([xfrx("XFRX#INIT")]) 17 m.lcFileName = Addbs(Sys(2023))+"test.pdf" && temporary file name 18 IF m.loSession.SetParams(m.lcFileName,,.T.,,,,"PDF") = 0 && the 3rd parameter say 19 m.loSession.TransformReport(m.loXFF) 20 21 LOCAL m.sm 22 SET PROCEDURE TO vfpwinsock ADDITIVE 23 m.sm = Createobject("vfp_winsock_send_mail") 24 m.sm.smtp_host = "your.smtp.server.here" &&&<<<<<<<<<<<<<<<<<<<< put your smtp 25 m.sm.From = "[email protected]" 26 m.sm.To = "[email protected]" 27 m.sm.subject = "Email test" 28 m.sm.silence = .T. 29 m.sm.attaCHMENT = m.lcFileName 30 IF !m.sm.Send() 31 =MESSAGEBOX(m.sm.erreur,16,"xfrx test") 32 ELSE 33 =MESSAGEBOX("Message was sent",0,"xfrx test") 34 ERASE (m.lcFileName) 35 ENDIF 36 ENDIF 37 RETURN .F. 38 ENDPROC 39 40 ENDDEFINE Utilice el cuadro de diálogo predeterminado, utilice un controlador de extensión para proporcionar los parámetros del servidor de correo y permita que XFRX envíe el correo electrónico. 1 DEFINE CLASS SampleExtensionHandler AS CUSTOM 2 3 PROCEDURE EmailOptions 4 LPARAMETERS m.loXFF, m.loOptions 5 m.loOptions.cSMTP_HOST = "mail.your_domain.com" 6 m.loOptions.cFrom = "[email protected]" 7 ENDPROC 8 9 ENDDEFINE



Sin etiquetas

Notificaciones de banderas Documentación XFRX / ... / Previsualizador de XFRX

Localización del previsualizador martinajindrova 12 de noviembre de 2017

Cada localización se almacena en dos archivos:  

XFRXLIB_ .dbf - traducción de cadenas XFRXLIB_ .vcx - localización de los diálogos de selección de página y búsqueda La localización predeterminada es inglés. Otra localización es CSY - Czech, SK - Slovak, FR French, DE - Germany, TR - Turkey. Para crear una nueva localización, siga estos pasos:

1. Elija un código para su localización (por ejemplo, DE para alemán) 2. Cree una copia del DFB de localización predeterminado (localización \ default \ XFRXLIB_XXX.DBF (+ CDX, + FPT)). Cambie el sufijo de acuerdo con su código de localización. El DBF de localización predeterminado contiene cadenas en inglés que deben traducirse. 3. Cree la biblioteca de clase visual XFRXLIB_ .vcx usando localization \ default \ locClass.prg. Envíe el código de localización como un parámetro. Ejemplo: copie locClass en el directorio XFRXLIB y llame a: do locClass with "DE" que creará la biblioteca de clases XFRXLIB_DE. Traduzca las dos clases de diálogo en la biblioteca de clases. 1. Copie los archivos de localización al directorio XFRXLIB. Para activar la localización en su código, llame al método setLanguage de la clase XFCont. Envíe el código de localización como un parámetro. Ejemplo:

This.cntXFRX.setLanguage("DE")



Sin etiquetas



Sin etiquetas

Notificaciones de banderas Documentación XFRX / ... / Previsualizador de XFRX

Registro de errores martinajindrova Modificado por última vez nov 12, 2017

Puede usar el método setLogFile () para crear el registro (desde XFRX 15.5).

=m.loPreview.setLogFile() Parámetros: tcLogFile el nombre del archivo de registro para crear.

Notificaciones de banderas Documentación XFRX / Páginas / Guía del desarrollador metadata.attachments

Implementación de hipervínculos de eventos personalizados (desglose) en el previsualizador de XFRX Usuario desconocido (mst) Modificado por última vez mar 22, 2017 por martinajindrova

XFRX reconoce dos tipos de hipervínculos: 



Hipervínculos "normales" (impresos en azul ), que navegan a otros lugares en el informe o a una dirección web externa (usando hipervínculos se describe en detalle en el capítulo " Funciones interactivas / hipervínculos " en la página 19) y Hipervínculos de "eventos personalizados" (impresos en verde ), donde XFRX permite asignar un código de VFP personalizado que se llamará cuando los usuarios hagan clic en el hipervínculo. Esta función de hipervínculo de "evento personalizado" se puede utilizar para invocar acciones específicas de la aplicación (formularios de información, procesos personalizados, etc.) o para implementar la funcionalidad de desglose. La invocación de un informe detallado donde el usuario de campo hizo clic se toma como parámetro para el informe (por ejemplo, al hacer clic en el nombre de un cliente en el informe que enumera todos los clientes, se puede ejecutar un informe con información detallada sobre este cliente específico). El nuevo informe se puede dirigir a una nueva página de una vista previa de varias páginas, que podría proporcionar un entorno cómodo para "profundizar" en información específica, con la capacidad de volver al informe original sin cerrar la comparación de informes actual, lado a lado. , exportando / imprimiendo informes seleccionados, etc.

  

Configuración de hipervínculos de eventos personalizados Acceder a la vista previa de llamadas Ejemplo de solución de profundización

Configuración de hipervínculos de eventos personalizados Los hipervínculos de eventos personalizados se definen de la misma manera que los hipervínculos normales: agrega #UR A HREF = a la etiqueta o comentario de campo, seguido de "vfpev" como un "protocolo", seguido de una expresión de FoxPro para evaluar. Ejemplo: Hello world #UR A HREF = "vfpev: \\ messagebox ('Hello world')" Si agrega esto a un campo de su informe, aparecerá un cuadro de mensaje de "Hola mundo" cada vez que haga clic en ese campo.

Tenga en cuenta que el texto siguiente después de HREF = se evalúa durante la ejecución del informe, en el momento en que el campo está por renderizarse. El resultado se almacena con ese campo en particular y se evalúa nuevamente cuando los usuarios hacen clic en el campo. Por ejemplo, si necesita llamar a su función con un ID de cliente como parámetro (por ejemplo, almacenado en customers.cusID como un valor entero), use algo como esto: #UR A HREF = "vfpev: \\ myfunction (" + trans (customers.cusID) + ")"

Durante la generación del informe, la expresión customers.cusID se evalúa y los resultados (por ejemplo, myfunction (1), myfunction (2), etc.) se almacenan con los campos individuales. La función Myfunction con el parámetro almacenado se llama cuando los usuarios hacen clic en el campo.

Acceder a la vista previa de llamadas En el caso de que el evento personalizado dé como resultado la ejecución de un nuevo informe, la rutina que procesa el nuevo informe puede querer previsualizar el resultado resultante en la vista previa original, en la que se produjo el evento de clic. En ese caso, puede usar esta variable del visualizador como la referencia del previsualizador. Por ejemplo, la siguiente definición de hipervínculo estaría enviando la referencia del previsualizador como el segundo parámetro del método runreport: #UR A HREF = "vfpev: \\ runreport ('" + allt (customerid_a) + "', thisviewer)"

Ejemplo de solución de profundización (El siguiente ejemplo está disponible en el subdirectorio DrilldownSample de la evaluación, así como en el paquete comercial). La solución de muestra consiste en tres informes: 

Una página de índice de clientes seguida de una breve lista de clientes. Para cada cliente hay una lista de los últimos tres pedidos, el número total de pedidos y la facturación total:



Cuando hace clic en el nombre del cliente, se genera un nuevo informe con los detalles del cliente, que enumera todos los pedidos del cliente:



Al hacer clic en un número de orden, se genera un informe de detalles de la orden:

Cada vez que se genera un nuevo informe, se agrega como una nueva página al contenedor de vista previa:

Aquí está el código fuente completo: 1 LPARAMS m.tnReportType, m.tuPar1, m.toViewer 2 SET PATH TO src; xfrxlib; libs; drilldownsample 3 4 LOCAL m.loSession, m.lnRetval, m.lcPageCaption, m.loPreview 5 6 IF EMPTY(m.tnReportType) 7

*

8

* no report type was sent - we need to initialize the previewer

9

* and run the 1st report

10

*

11

SET CLASSLIB TO xfrxlib

12

m.loPreview = CREATEOBJECT("frmMPPreviewer")

13

m.tnReportType = 1

14

m.toViewer = m.loPreview

15 ENDIF 16 17 * 18 * initialize the XFRX listener 19 * 20 m.loSession=EVALUATE([xfrx("XFRX#LISTENER")]) 21 m.lnRetval = loSession.SetParams(,,,,,,"XFF") 22 IF m.lnRetval = 0 23

*

24

* now let’s see which report we want to run, select the data

25

* and run the report

26

*

27

DO CASE

28

CASE m.tnReportType = 1

29

SELECT companyname ;

30

FROM customers ;

31

ORDER BY companyname INTO CURSOR custindex

32 33

REPORT FORM custindex OBJECT m.loSession Nopageeject

34 35

SELECT * ;

36

FROM customers INNER JOIN orders ON customers.customerid = orders.customeri

37

INNER JOIN orderdetails ON orders.orderid = orderdetails.ord

38

ORDER BY customers.companyname, customers.customerid, orderDate Desc, order

39

INTO CURSOR custlist

40 41

REPORT FORM custlist OBJECT m.loSession

42

m.lcPageCaption = "Customers list"

43 44 45

CASE m.tnReportType = 2 SELECT * ;

46

FROM customers INNER JOIN orders ON customers.customerid = orders.customeri

47

INNER JOIN orderdetails ON orders.orderid = orderdetails.ord

48

ORDER BY customers.companyname, customers.customerid, orders.orderid ;
49

WHERE customers.customerid = m.tuPar1 ;

50

INTO CURSOR custlist

51 52

REPORT FORM custDet OBJECT m.loSession

53

m.lcPageCaption = "Customers detail ("+ALLTR(m.tuPar1)+")"

54 55 56

CASE m.tnReportType = 3 SELECT * ;

57

FROM customers INNER JOIN orders ON customers.customerid = orders.customeri

58

INNER JOIN orderdetails ON orders.orderid = orderdetails.ord

59

INNER JOIN products ON products.productid = orderdetails.pro

60

ORDER BY customers.companyname, customers.customerid, orders.orderid ;
61

WHERE orders.orderid = m.tuPar1 ;

62

INTO CURSOR custlist

63 64

REPORT FORM OrdDet OBJECT m.loSession

65

m.lcPageCaption = "Order detail ("+ALLTR(STR(m.tuPar1))+")"

66

ENDCASE

67 ENDIF 68 69 *

70 * now preview the report 71 * 72 m.toViewer.previewXFF(m.loSession.oxfdocument, m.lcPageCaption) 73 * 74 * show the preview if not yet visible 75 * 76 IF NOT loPreview.Visible 77

*

78

* preview in modal Windows

79

*

80

m.loPreview.Show(1)

81 EENDIF Como puede ver, el código se llama primero sin parámetros, que ejecuta automáticamente el primer informe (lista de clientes). A continuación, se llama al mismo código (recursivamente, cuando el previsualizador está en modo modal) desde la vista previa cuando los usuarios hacen clic en el evento personalizado con parámetros que controlan qué informe se debe ejecutar, qué parámetros se deben usar para la instrucción de selección y qué se debe el título de la página correspondiente en el reproductor. Los comentarios de los campos del informe se definen de la siguiente manera:

Informe

Campo

Comentario

Lista de clientes

Nombre del cliente

#UR A HREF = "vfpev: \\ runreport (2, '" + allt (customerid_a) + "', thisviewer)"

Detalle del cliente

Número de orden

#UR A HREF = "vfpev: \\ runreport (3," + allt (str (orderid_a)) + ", thisviewer)" 

Notificaciones de banderas Documentación XFRX / Páginas / Guía del desarrollador

Sin etiquetas

Conversión de informes a imágenes Usuario desconocido (mst) Modificado por última vez mar 22, 2017 por martinajindrova

XFRX puede exportar páginas de informes individuales como imágenes BMP, PNG, GIF, JPEG (JPG) y EMF, múltiples páginas se pueden exportar a formato de imagen TIFF (TIF). El proceso de generación de imágenes se divide en dos pasos: 1. el informe se genera como cursor XFF 2. Se llama al método savePicture de la clase XFRX # DRAW para generar la imagen (consulte la referencia de clase XFRX # DRAW para obtener detalles y una lista completa de parámetros) La ventaja de este enfoque es que una vez que se genera el archivo XFF, es muy fácil obtener el recuento de páginas, generar imágenes individuales en un ciclo, etc. Si esto suena complicado, eche un vistazo al ejemplo, en realidad es bastante simple: 1 LOCAL m.loSession, m.lnRetVal 2 m.loSession= xfrx("XFRX#INIT") 3 * 4 * nothing is sent as the file name, so only a memory cursor is created 5 * 6 m.lnRetVal =m.loSession.SetParams(,,,,,,"XFF") 7 IF m.lnRetVal = 0 8 m.loSession.ProcessReport("invoices") 9 local m.loXFF, m.lnI, m.lnJpegQuality 10 * 11 * the finalize method returns a XFRX#DRAW object reference, 12 * which will be used to save the pictures 13 * 14 m.loXFF = loSession.finalize() 15 m.lnJpegQuality = 80 16 * 17 * loXFF.pagecount contains the number of pages of the 18 * report that 19 * was just generated 20 * 21 * we are now going to save all pages one by one as 22 * separate jpeg pictures 23 * 24 FOR m.lnI = 1 TO m.loXFF.pagecount 25 m.loXFF.savePicture("page"+ALLTRIM(STR(m.lnI))+".jpg", ; 26 "jpg",m.lnI,m.lnI,24,m.lnJpegQuality) 27 ENDFOR

28 =MESSAGEBOX("Pictures saved.") 29 ENDIF

Puede generar los siguientes formatos de imagen: TIFF (TIF), BMP, GIF, JPEG (JPG), PNG, EMF. El TIFF admite varias páginas, por lo que todo el informe se convierte en un único archivo. Para otros formatos de salida, se crea un archivo por página: el nombre del archivo se toma del parámetro tcFilename con _% PAGENO%. La siguiente tabla muestra la asignación entre los parámetros ampliados y los parámetros del método SavePicture ().

SetOtherParams ()

Guardar foto()

DE

tnDe

A

tnTo

BPP

tnBpp

CALIDAD JPEG

tnJPEGQuality

ANCHO DE MINIATURAS

tnTumbnailWidth

THUMBNAILHEIGHT

tnThumbnailHeight

PAGESPERSHEET

tnPagesPerSheet

ALLEVENODD

tnAllEvenOdd

FINDSTRING

laFindString

TRANSPARENTE (booleano)

liBacgroundMode (número) 

Notificaciones de banderas Documentación XFRX / Páginas / Guía del desarrollador

Encadenando oyentes en VFP 9.0 Usuario desconocido (mst) Modificado por última vez mar 22, 2017 por martinajindrova

Sin etiquetas

Las instancias de la clase XFRXListener se pueden encadenar juntas, así como con otros oyentes de informes, de modo que se puedan generar múltiples formatos de salida mediante un solo comando INFORMAR. El siguiente ejemplo crea objetos XFRXListener para documentos HTML y PDF y los encadena junto con UpdateListener de FFC para mostrar una barra de progreso durante la ejecución del informe. Este enfoque asegura que los documentos HTML y PDF contendrán exactamente el mismo resultado (si hubiera dos ejecuciones sucesivas de informes, los datos podrían haberse modificado). 1 LOCAL m.loObj, m.loObj2, m.loObj3 2 m.loObj = xfrx("XFRX#INIT") 3 m.loObj.targetType = "HTML" 4 m.loObj.targetFileName = "invoices.htm" 5 6 m.loObj2 = xfrx("XFRX#INIT") 7 m.loObj2.targetType = "PDF" 8 m.loObj2.targetFileName = "invoices.pdf" 9 m.loObj.successor = m.loObj2 10 11 m.loObj3 = NEWOBJECT("updatelistener", "_reportlistener.vcx") 12 m.loObj3.thermFormCaption = "Report in progress ..." 13 m.loObj2.successor = m.loObj3 14 15 REPORT FORM myReport OBJECT m.loObj 

Notificaciones de banderas Documentación XFRX / Páginas / Guía del desarrollador

Exportación de datos a XLSX y ODS Martin Haluza Modificado por última vez feb 03, 2018 por martinajindrova

Sin etiquetas

Esta característica permite exportar datos de tabla / cursor a Excel u hojas de cálculo de OpenOffice, de manera similar al comando COPY TO ... TYPE XL5, con las siguientes mejoras:   

La cantidad de registros no está limitada a 65K. El límite de Excel actual es de 1.048.576 filas por hoja. Si el número de filas exportadas es mayor, la salida se envía a varias hojas. El archivo generado puede tener hasta 2GB de tamaño Opciones de formato, incluido el formateo dinámico (condicional), ancho de columna, nombres y estilos de encabezado y recorte de texto

Nota de rendimiento Excel: en una gran exportación de datos con 60 columnas en total, la velocidad promedia 2.500 registros por segundo. Al formatear la función de devolución de llamada está activada, la velocidad puede ser más lenta, dependiendo del número de columnas y las opciones de formato. OpenOffice: exportar a OpenOffice es actualmente más lento que exportar a Excel.

Distribución con su aplicación XLSXTemplate.zip archivo, que ahora es parte del paquete de descarga XFRX, debe

distribuirse con su aplicación para que la exportación de datos funcione correctamente.

Ejecutando la exportación Ejecute el procedimiento XFRX_CopyToXLSX o XFRX_CopyToODS dentro de XFRX.PRG / FXP con los siguientes parámetros:   

 

  

lcAlias - Fuente ALIAS (requerido) lcFile - Nombre del archivo de salida (requerido) lcFCCallBack - Nombre de la función de devolución de llamada - consulte las opciones de formato a continuación (opcional). La exportación con la función de devolución de llamada es significativamente más lenta. Por favor, mira la nota de rendimiento anterior. lcSheetName - Nombre de la hoja de Excel (opcional) llAddHeader - Exportar nombres de columna como encabezado (opcional) .F. - No agregue el encabezado .T. - Agregar encabezado con filtro automático 0 - No agregar encabezado (desde XFRX 18.0) 1 - Agregar encabezado (desde XFRX 18.0) 3 - Agregar encabezado con filtro automático (desde XFRX 18.0) llShowGrid - Mostrar / ocultar grilla (opcional), el valor predeterminado es .T. loProgress - objeto barra de progreso XFRX (opcional) lcSheetGroupExpression: expresión para dividir datos en más hojas (XFRX 15.3)

Ejemplo

1 OPEN DATABASE "C:\Program Files (x86)\Microsoft Visual FoxPro 9\Samples\Northwind\Northw 2 USE "Invoices" 3 SET PROCEDURE TO xfrx.prg 4 m.liErr=XFRX_CopyToXLSX("Invoices", "test.xlsx", , "Invoices") 5 IF m.liErr<>0 6

?"ERROR",m.liErr

7 ENDIF

Barra de progreso El último parámetro (loProgress) es una referencia de objeto de barra de progreso XFRX opcional. Si se especifica, el proceso de exportación llamará al método UpdateProgress () en este objeto con información de progreso de exportación. Vea más en Running XFRX # Mostrando la barra de progreso en VFP 8.0 .

Cancelando la exportación en progreso El proceso de exportación comprueba el valor de la variable pública m.gnStopXFRX. Obtenga más información en Running XFRX # Cancelación de generación de informes en curso .

Opciones de formateo El proceso de exportación de datos usa la siguiente configuración para formatear la salida de datos: 

Valores de fecha

   

ESTABLECE LA FECHA SET CENTURY FIJAR MARCA A

        

Valores de fecha y hora ESTABLECE LA FECHA SET CENTURY FIJAR MARCA A SET SECONDS FIJAR HORAS PARA Números ESTABLECER DECIMALES A SET POINT TO

El formateo adicional se puede lograr mediante una función de devolución de llamada, cuyo nombre especifique como el 4º parámetro de los métodos XFRX_CopyToXLSX / XFRX_CopyToODS. Cuando se especifica la función de devolución de llamada, se llama durante la exportación, con una matriz de todas las columnas con sus propiedades como parámetro. El parámetro es una matriz: un elemento por columna. Cada elemento es nuevamente una matriz con 12 elementos, que contiene atributos para cada columna.

igualmente

Contenido

1

Nombre del campo

2

Tipo de campo

3

Ancho del campo

4

Decimales de campo

5

Indicador NULL

6

Indicador NOCPTRANS

7

Título del encabezado

8

Formato XLS

9

Ancho de columna en px

10

Formato de celda del encabezado - Objeto con atributos

11

Modo de recorte 0 - ninguno, 1 - LTRIM, 2 - RTRIM, 3 - ALLTRIM

12

Formato de celda de datos: objeto con atributos

Ejemplo 1 #DEFINE XFRX_FORMATCOL_FNAME

1 && Field name

2 #DEFINE XFRX_FORMATCOL_FTYPE

2 && Field type

3 #DEFINE XFRX_FORMATCOL_FWIDTH

3 && Field width

4 #DEFINE XFRX_FORMATCOL_FDEC

4 && Field decimals

5 #DEFINE XFRX_FORMATCOL_FNULL

5 && NULL indicator

6 #DEFINE XFRX_FORMATCOL_FNOCPT

6 && NOCPTRANS indicator

7 #DEFINE XFRX_FORMATCOL_CAPTION

7 && Header caption

8 #DEFINE XFRX_FORMATCOL_XLSFORMAT

8 && XLS format

9 #DEFINE XFRX_FORMATCOL_WIDTH

9 && Column Width in px

10 #DEFINE XFRX_FORMATCOL_HCELLF

10 && Header cell format - Object with attributes
11 #DEFINE XFRX_FORMATCOL_TMODE

11 && Trim Mode 0 - none, 1 - LTRIM, 2 - RTRIM, 3 - AL

12 #DEFINE XFRX_FORMATCOL_DCELLF

12 && Data cell format - Object with attributes<

13 14 #DEFINE _TOXLSX_ERROR_OK

0 && OK

15 #DEFINE _TOXLSX_ERROR_OpenTemplateFailed

-1 && Cannot open template file
16 #DEFINE _TOXLSX_ERROR_PrepareFilesFailed

-2 && Cannot create files

17 #DEFINE _TOXLSX_ERROR_SaveToXLSXFailed

-3 && Cannot create xlsx file (zlib.dll)

18 #DEFINE _TOXLSX_ERROR_SaveToXLSX_ODSFailed

-200 && Cannot create xlsx/ods file (zlib.

19 20 21 ...

22 m.liErr=XFRX_CopyToXLSX("test", "test.xlsx", "copytoxlsxfccallback", "test") 24 25 PROCEDURE copytoxlsxfccallback(m.laFields) 26 27 LOCAL ARRAY m.laColor(3) 28 29 FOR m.lii=1 TO ALEN(m.laFields,1) 30

m.laFields(m.lii,XFRX_FORMATCOL_CAPTION)="Description "+;

31

LTRIM(STR(m.lii,11))+" "+;

32

m.laFields(m.lii,XFRX_FORMATCOL_FNAME) &&

33

* Header cell format

34

WITH m.laFields(m.lii,XFRX_FORMATCOL_HCELLF)

35

.align="center" && horizontal align

36

.font="Tahoma"

37

.fontsize=12

38

.bold=.T.

39

.ital=.T.

40

.underline=.T.

41

.lstriked=.T. && StrikeThru

42

__C2RGB(RGB(255,255,255),@m.laColor) && BackColor

43

.fillred=m.laColor(1)

44

.fillgreen=m.laColor(2)

45

.fillblue=m.laColor(3)

46

__C2RGB(RGB(192,192,192),@m.laColor) && ForeColor

47

.penred=m.laColor(1)

48

.pengreen=m.laColor(2)

49

.penblue=m.laColor(3)

50





ENDWITH

51 52

* Data cell format

53

WITH m.laFields(m.lii,XFRX_FORMATCOL_DCELLF)

54

.lstriked=.T.

55

.font="Courier New"

56

.DynamicFontBold=[IIF(UNITPRICE>50,.T.,.F.)]

57

.DynamicForeColor=[IIF(UNITPRICE>50,RGB(255,0,0),0)]

58

.DynamicFontItalic=[IIF(UNITPRICE>50,.T.,.F.)]

59

.DynamicFontUnderline=[IIF(UNITPRICE>50,.T.,.F.)]

60

.DynamicFontName=[IIF(UNITPRICE>50,'Courier New','Arial')]



61

.DynamicFontSize=[IIF(UNITPRICE>50,12,10)]

62

.DynamicAlignment=[IIF(UNITPRICE>50,'center','')]

63

.DynamicBackColor=[IIF(UNITPRICE>50,RGB(192,192,192),RGB(255,255,255))]
64

.DynamicFontStrikeThru=[IIF(UNITPRICE>50,.T.,.F.)]

65

ENDWITH

66

*m.laFields(m.lii,XFRX_FORMATCOL_XLSFORMAT)="" && XLS cell

67

m.laFields(m.lii,XFRX_FORMATCOL_WIDTH)=100 && Width in pixels

68

m.laFields(m.lii,XFRX_FORMATCOL_TMODE)=3 && Trim Mode 0 - none, 1 - LTRIM, 2 - RTRI

format

69 NEXT

Expresión del grupo de hojas Si desea dividir datos en más lits, puede usar el parámetro lcSheetGroupExpression: 1 * lcAlias - Source ALIAS (required) 2 * lcFile - Output file name (required)

3 * lcFCCallBack - Callback function name - please see Formatting options below (optional 4*

Exporting with the callback function is significantly slower.
5*

Please see the performance note above.

6 * lcSheetName - Excel sheet name (optional); if contains %XFRX_SGV% thne will be replac 7 * llAddHeader - Export column names as header

(optional)

8 * llShowGrid - Show/hide grid (optional), default is .T. 9 * loProgress - XFRX progress bar object (optional)

10 (new) lcSheetGroupExpression - Expression for splitting data to more sheets

12 OPEN DATABASE "C:\Program Files (x86)\Microsoft Visual FoxPro 9\Samples\Northwind\North 13 USE "Invoices" 14 INDEX ON ORDERDATE TAG "I01" && data must be indexed 15

16 SET PROCEDURE TO xfrx.prg

17 m.liErr=XFRX_CopyToXLSX("Invoices", "test.xlsx", , "Year %XFRX_SGV%", .T.,.T.,,'YEAR(OR 18 IF m.liErr<>0 19

?"ERROR",m.liErr

20 ENDIF



Sin etiquetas

Notificaciones de banderas Documentación XFRX / Páginas / Guía del desarrollador

Ejecución de XFRX en un entorno basado en web Usuario desconocido (mst) Modificado por última vez may 11, 2014 por Martin Haluza

XFRX se puede incorporar fácilmente en aplicaciones compiladas como DLL COM para proporcionar funciones de informes en el entorno basado en web. Hemos preparado una aplicación de muestra de esta técnica. Está disponible en línea en http://www.eqeus.net/x.net . Si está interesado en el código fuente de esta demostración, envíenos un correo electrónico a [email protected] y se lo enviaremos. A Pavel Horak le gusta esto 

Notificaciones de banderas

Sin etiquetas

Documentación XFRX / Páginas / Guía del desarrollador metadata.attachments

Formato de texto martinajindrova Modificado por última vez jun 28, 2017

Formatos admitidos Actualmente, se admiten dos formatos: pseudo HTML y código BB. RTF apoya está en desarrollo.

Formatos admitidos Nombr e

Palabr a clave

pseudo HTML



Compatible con de FoxyPreviewer

17.1

TF-UNI.pdf, tfuni_flow.rtf, TFUNI.png , TF-UNI09.pdf ,TF-UNI11.pdf ,TF-UNI28.pdf

Código BB



Ver ahttp://www.bbcode.org/reference.php

17.1

BB-UNI.pdf ,bbuni_flow.rtf, BB -UNI.png



Consultehttps://www.microsoft.com/en -us/download/details.aspx?id=10725

17.2.0

RTF

Descripción

Versió n XFRX

Ejemplos

Configuración predeterminada: general Nombre de Parametr

Descripción

Valor Versión XFRX

TF_DEFAULTTABSIZE

Tamaño predeterminado del tabelator.

"1 en"

TF_LINE_HEIGHT

Altura de línea predeterminada.

"20pt"

Configuración predeterminada - cita Nombre de Parametr

Descripción

Valor

TF_QUOTE_MARGIN

Margen para cita.

"10px"

TF_QUOTE_BACKCOLOR

Color de fondo para la cita.

"RGB (192,192,192)"

TF_QUOTE_POSTFIX

Postfix del autor para la cita.

"escribió:"

Configuración predeterminada - lista Nombre de Parametr

Descripción

Valor

TF_LIST_MARGIN

Margen para la lista.

"10px"

TF_LIST_TABSIZE

Tabelator predeterminado para la lista.

"15px"

17.1.1

Nombre de Parametr

Descripción

Valor

TF_LIST_ITEM_CHAR

Char para la lista desordenada.

CHR (168)

TF_LIST_ITEM_FONTNAME

Nombre de la fuente para la lista desordenada.

"Símbolo"

TF_LIST_ITEM_OL_FORMAT

Formato de artículo pedido

"bajo romano"

Configuración predeterminada - Tabla Nombre de Parametr

Descripción

Valor

TF_TABLE_MARGIN

Margen para la mesa

"10px"

TF_TABLE_PADDING

Relleno de la celda.

"2px"

TF_TABLE_BORDERSTYLE

Estilo de borde.

"sólido"

TF_TABLE_BORDERCOLOR

Color del borde.

"RGB (0,0,0)"

TF_TABLE_BORDERWIDTH

Ancho del borde de la tabla

"1px"

TF_TABLE_BACKGROUNDCOLOR

Color de fondo de la tabla.

"RGB (192,192,192)"

TF_TABLE_THBACKGROUNDCOLOR

Cabeza de tabla color del bacgroud

"rgb (255,255,192)"

Nombre de Parametr

Descripción

Valor

TF_TABLE_ALIGN

Tabla / columna alinear.

"izquierda"

TF_TABLE_TRBACKGROUNDCOLOR_EVEN

Incluso el color de fondo de la fila.

"RGB (0,255,255)"

TF_TABLE_TRBACKGROUNDCOLOR_ODD

Color de fondo de fila impar.

"RGB (128,255,191)"

1 m.loSession.setOtherParams( "TF_DEFAULTTABSIZE", "1in") 2 m.loSession.setOtherParams( "TF_QUOTE_MARGIN", "10px") 3 m.loSession.setOtherParams( "TF_QUOTE_BACKCOLOR", "RGB(192,192,192)") 4 m.loSession.setOtherParams( "TF_QUOTE_POSTFIX", " wrote: ") 5 6

7 m.loSession.setOtherParams( "TF_LIST_MARGIN", "10px",0) && default value for all levels

8 m.loSession.setOtherParams( "TF_LIST_MARGIN", "10px",3) && value for third level< 9 m.loSession.setOtherParams( "TF_LIST_TABSIZE", "15px") 10 m.loSession.setOtherParams( "TF_LIST_ITEM_CHAR", "CHR(168)") 11 m.loSession.setOtherParams( "TF_LIST_ITEM_FONTNAME", "1in")

12 m.loSession.setOtherParams( "TF_LIST_ITEM_OL_FORMAT", "lower roman") && se to list-styl 13

14 m.loSession.setOtherParams( "TF_TABLE_MARGIN", "2px") && default value for all levels
16 m.loSession.setOtherParams( "TF_TABLE_BORDERSTYLE", "solid") 17 m.loSession.setOtherParams( "TF_TABLE_BORDERCOLOR", "rgb(0,0,0)") 18 m.loSession.setOtherParams( "TF_TABLE_BORDERWIDTH", "1px")

19 m.loSession.setOtherParams( "TF_TABLE_BACKGROUNDCOLOR", "rgb(205,205,205)")

20 m.loSession.setOtherParams( "TF_TABLE_BACKGROUNDCOLOR", "rgb(205,205,205)",0,3) && defa

21 m.loSession.setOtherParams( "TF_TABLE_THBACKGROUNDCOLOR", "rgb(255,255,192)")
22 m.loSession.setOtherParams( "TF_TABLE_ALIGN", "left") && default value for all levels


24 m.loSession.setOtherParams( "TF_TABLE_ALIGN", "right",0,3) && default value for all lev

25 m.loSession.setOtherParams( "TF_TABLE_TRBACKGROUNDCOLOR_EVEN", "RGB(0,255,255)") && def

26 m.loSession.setOtherParams( "TF_TABLE_TRBACKGROUNDCOLOR_ODD", "RGB(128,255,191)") && de 27 28 29 30 m.loSession.setOtherParams( "TF_TABLE_PADDING", "3px",2)

&& default value for second l

31 m.loSession.setOtherParams( "TF_TABLE_BACKGROUNDCOLOR", "rgb(215,215,215)",0) && defaul

Cómo usar el formato de texto con XFRX # LISTENER VFP 9.0 SP0 / SP1 En VFP 9.0 o VFP 9.0 con SP1, "Stretch with overflow" no es compatible. El texto enriquecido se puede representar en cuadros de texto con una altura estática solamente.

VFP 9.0 SP2 En VFP 9.0 con SP2, el texto enriquecido se puede representar en el cuadro de texto con altura dinámica o altura estática. Para que el cuadro de texto con altura dinámica funcione correctamente, la propiedad CallEvaluateContents debe establecerse en 2: loSession=EVALUATE([XFRX("XFRX#LISTENER")]) loSession.CallEvaluateContents=2

Textformat a la pantalla La salida del formato de texto también puede dibujarse en la pantalla. Puede descargar el paquete Textformat2Screen.zip con ejemplos para y . DO tf2screen.prg WITH "","tf-001.txt"

DO tf2screen.prg WITH "","bb-001.txt" * template examples USE "_data\tf" IN 0 USE "_data\tf-child" IN 0 ORDER "I01" ALIAS tf_child SELECT tf SET RELATION TO XX010 INTO "tf_child" DO "tf2screen.prg" with "","TF-009.txt" && TR template USE "_data\tf" IN 0 USE "_data\tf-child" IN 0 ORDER "I01" ALIAS tf_child SELECT tf SET RELATION TO XX010 INTO "tf_child" SKIP 1 DO "tf2screen.prg" with "","TF-010.txt" && LI template USE "_data\tf" IN 0 USE "_data\tf-child" IN 0 ORDER "I01" ALIAS tf_child SELECT tf





SET RELATION TO XX010 INTO "tf_child"



SKIP 2 DO "tf2screen.prg" with "","TF-011.txt" && P template * template examples

USE "_data\bb" IN 0 USE "_data\bb-child" IN 0 ORDER "I01" ALIAS bb_child SELECT bb SET RELATION TO XX010 INTO "bb_child" DO "tf2screen.prg" with "","BB-003.txt" && TR template USE "_data\bb" IN 0



USE "_data\bb-child" IN 0 ORDER "I01" ALIAS bb_child



SELECT bb SET RELATION TO XX010 INTO "bb_child" SKIP 1 DO "tf2screen.prg" with "","BB-004.txt" && LI template USE "_data\bb" IN 0



USE "_data\bb-child" IN 0 ORDER "I01" ALIAS bb_child SELECT bb





SET RELATION TO XX010 INTO "bb_child" SKIP 1 DO "tf2screen.prg" with "","BB-005.txt" && LEFT template    

Formato de texto - HTML Formato de texto - Código BB Formato de texto - RTF Tabla de colores

     

Formatos admitidos Configuración predeterminada: general Configuración predeterminada - cita Configuración predeterminada - lista Configuración predeterminada - Tabla Cómo usar el formato de texto con XFRX # LISTENER

  

VFP 9.0 SP0 / SP1 VFP 9.0 SP2 Textformat a la pantalla 

Sin etiquetas

Notificaciones de banderas Documentación XFRX / ... / Formato de texto - HTML

Formato de texto - HTML martinajindrova Modificado por última vez dic 24, 2017

La palabra clave es .

Etiquetas compatibles de FoxyPreviewer Etiqueta de inicio

Etiqueta final

Negrit a





Itálico





Subray ar





Strike Thru

<s>



Color









darse cuenta





Color de







fondo





< higlight= RGB

(255,0,0)> < = HSL (0,100,50)> < =CMYK (0,1,1,0)> higlight higlight

Nombr e de la fuente









Tamañ o de fuente









Estilo de fuente s CRLF














Etiquetas extendidas por XFRX Etiqueta de inicio

Etiquet a final

darse cuenta

Negr ita

<strong>



Desde XFRX 17.3.1

Itálic o

<em>



Desde XFRX 17.3.1

Sobr escri to

<sup>



Subí ndic e

<sub>



Párra fo







Atributos de CSS

texto alineado; margen; relleno; ancho del

borde; estilo de borde; color de fondo; tab-stops; curvatura; guion de texto; dirección; juego de caracteres; tamaño de la pestaña; color; nombre de la fuente; tamaño de fuente; Estilo de fuente; fontweight; textodecoració n; altura de la línea; Laps o

<span>



<span style="">

color de fondo; juego de caracteres; color; nombre de la fuente; tamaño de fuente; Estilo de fuente; fontweight; textodecoració n;

Rect





flotador;

ngle>

ángu lo

style="">


margen; anchura; altura; ancho del borde; estilo de borde; color de fondo; curvatura; color; izquierda; derecho; wrapimage; envolvent e;

field field

flotador; margen; anchura; altura; tramo; posición; izquierda; derecho; wrapimage; envolvent e;

Imag en





Line a horiz ontal










flotador; margen; ancho del borde; estilo de borde; anchura; posición; izquierda; derecho; wrapimage; envolvent e;

Line a verti cal







flotador; margen; ancho del borde;

estilo de borde; altura; posición; izquierda; derecho; wrapimage; envolvent e; Citar





Códi go







texto alineado; margen; relleno; ancho del borde;estil o de borde;colo r de fondo; tab stops; curv atura; guion de texto;direc ción; juego de caracteres; tamaño de la pestaña; color; nombre de la fuente; tamaño de fuente; Estilo de fuente; fontweight; textodecoració n;altura de la línea; texto alineado; margen; relleno;

ancho del borde; esti lo de borde; col or de fondo; tab stops; curv atura; guion de texto; dire cción; juego de caracteres; tamaño de la pestaña; color; nombre de la fuente; tamaño de fuente; Estilo de fuente; fontweight; textodecoració n; altura de la línea; Text o prefo rmad o

<pre>



texto alineado; margen; relleno; ancho del borde; esti lo de borde; col or de fondo; tab stops; curv atura; guion de texto; dire cción;

juego de caracteres; tamaño de la pestaña; color; nombre de la fuente; tamaño de fuente; Estilo de fuente; fontweight; textodecoració n; altura de la línea; Lista orde nada





  1. First
  2. Second


list-styletype; texto alineado; margen; relleno; ancho del borde; estilo de borde; col or de fondo; tab -stops; curvatura; guion de texto; dirección; juego de caracteres; tamaño de la pestaña; color; nombre de la fuente; tamaño de fuente;

Estilo de fuente; fontweight; textodecoració n; Lista deso rden ada





  • First
  • Second


list-styleimage; texto alineado; margen; relleno; ancho del borde; estilo de borde; col or de fondo; tab -stops; curvatura; guion de texto; dirección; juego de caracteres; tamaño de la pestaña; color; nombre de la fuente; fontt-size; Estilo de fuente; fontweight; textodecoració n;

<list>



<list style="">
  • First
  • Second


  • list-styleimage; texto alineado; margen; relleno; ancho del

    borde; estilo de borde; col or de fondo; tab -stops; curvatura; guion de texto; dirección; juego de caracteres; tamaño de la pestaña; color; font-name font-size; Estilo de fuente; fontweight; textodecoració n; Lista de artic ulos







  • list-styleimage; texto alineado; margen; relleno; ancho del borde; estilo de borde; col or de fondo; tab -stops; curvatura; guion de texto; dirección; juego de caracteres; tamaño de la pestaña;

    color; nombre de la fuente; tamaño de fuente; Estilo de fuente; fontweight; textodecoració n; Expr esión de VFP





    DTOC(DATE())+" "+TIME()

    Expr esión de VFP con form ato de conv ersió n






    Hipe renla ce













    Tabe lator





    Pági na de códi



    pictureformat="99.99" xlsf ="#0.00">10





    X count of tabelators





    go Bloq ue de opci ones





    TF_LIST_ITEM_CHA R=CHR(168)

    Mes a







    Amp liar fila por alias fuent e

    template="ali as_expression"

    Expression
    • Expression

    Expression< /p>

    Atributos de CSS Nombre

    Valores

    darse cuenta

    izquierda

    tamaño | por ciento

    10pt o 12px o 1cm 10%

    parte superior

    tamaño | por ciento

    10pt o 12px o 1cm 10%

    anchura

    tamaño | por ciento

    10pt o 12px o 1cm 10%

    altura

    tamaño | por ciento

    10pt o 12px o 1cm 10%

    derecho

    tamaño | por ciento

    10pt o 12px o 1cm 10%

    posición

    estático | relativo | absoluto | párrafo relativo

    tramo

    clip | isométrico | tramo

    curvatura

    número

    sin unidades

    flotador

    izquierda | derecho | centro | texto arriba-abajo | textorectángulo

    Para los valores que quedan | derecho puede ser posición solo estática. Para valores text-top-bottom | textorectángulo puede ser solo posición absoluta | párrafo relativo. Centro de valores agregado en XFRX 17.2.0. Valores text-top-bottom | textorectángulo están en desuso desde XFRX 17.2.0.

    wrap-image

    texto arriba-abajo | textorectángulo

    Atributo agregado en XFRX 17.2.0.

    envolvente

    ambos | izquierda | derecho

    Atributo agregado en XFRX 17.2.0.

    list-styletype

    decimal | decimal con corchete | romano superior | romano superior con soporte | latín superior | latín superior con soporte | bajo latino | bajo latín con soporte | romano superior | romano superior con soporte

    list-styleimage

    url ('')

    url ('filename.png') 'expresión'

    juego de caracteres

    windows-1250 | windows1252 | windows-1251

    que sabe que VFP windows-42 es para fuente de símbolos

    dirección

    ltr | RTL

    nombre de la fuente

    "Arial" | "Símbolos", etc.

    tamaño de fuente

    tamaño

    10pt o 12px o 1cm

    tamaño de la pestaña

    tamaño

    10pt o 12px o 1cm

    tab-stops

    Tamaño del centro izquierda tamaño correcto

    izquierda 1 en el centro 1 a la derecha 1 pulgada;

    texto alineado

    izquierda | centro | derecho | bloque | justificar

    guion de texto

    tamaño

    Estilo de fuente

    normal | cursiva heredar

    fuente-peso

    normal | negrita | heredar

    textodecoración

    normal | subrayar | línea de salida | heredar

    color de fondo

    R, G, B | #HEX | "Nombre de color WEB" | rgb (r, g, b) | hsl (h, s, l) | cmyk (c, m, y, k)

    color

    R, G, B | #HEX | "Nombre de color WEB" | rgb (r, g, b) | hsl (h, s, l) | cmyk (c, m, y, k)

    altura de la línea

    tamaño | número | por ciento

    10pt o 12px o 1cm 2.5 es coficiente para el tamaño de letra del párrafo 250% es coficiente para el tamaño de letra del párrafo

    margen

    A B A BC A B CD

    arriba-derecha-abajo-izquierda arriba-abajo, derecha-izquierda arriba, derecha-izquierda, abajo arriba, derecha, abajo izquierda

    margen superior

    tamaño

    margenderecho

    tamaño | por ciento

    10pt o 12px o 1cm

    margen inferior

    tamaño

    margen izquierdo

    tamaño | por ciento

    relleno

    A AB A BC A B CD

    acolchado superior

    tamaño

    rellenoderecho

    tamaño | por ciento

    fondo acolchado

    tamaño

    relleno izquierdo

    tamaño | por ciento

    ancho del borde

    tamaño

    estilo de borde

    ninguno | punteado | discontinua | dashdot |dashdotdot | sólido

    unidades

    px | pt | en | cm | mm | pc | % | rem | em | ex | vw | vh |vmin | vmax | tw

    arriba-derecha-abajo-izquierda arriba-abajo, derecha-izquierda arriba, derecha-izquierda, abajo arriba, derecha, abajo izquierda

    % (solo para ancho, alto, izquierda, arriba, derecha, margen, relleno, tamaño de fuente, altura de línea) La unidad vh es significativa para la altura fija del cuadro de texto en el informe. Las unidades vw, vh, vmin, vmax se agregaron en XFRX 17.1.1 La unidad tw se agregó en XFRX 17.1.3 

    Notificaciones de banderas

    Sin etiquetas

    Documentación XFRX / ... / Formato de texto

    Formato de texto - Código BB martinajindrova Modificado por última vez abr 23, 2017

    La palabra clave es .

    Etiquetas compatibles de bbcode.org Etiqueta de inicio

    Etiqueta final

    Negrita

    [b]

    [/b]

    Itálico

    [i]

    [/i]

    Subrayar

    [u]

    [/u]

    StrikeTh ru

    [s]

    [/s]

    [color=]

    [/color]

    Color

    darse cuenta

    [color=255,0,0][/color] [color=255][/color] [color=#FF0000][/color] [color="red"][/color] [color=RGB(255,0,0)][/color] [color=HSL(0,100,50)][/color] [color=CMYK(0,1,1,0)][/color]

    Tamaño de fuente Estilo de fuentes

    [size=]

    [style]

    [/size]

    [/style]

    [style color=#FF0000 size="10px"] [/style]

    Hiperenl ace

    [url]

    [/url]

    [url="expression"][/url] [url="expression"]text[/url]

    Imagen

    [img]

    [/img]

    [img]image.png[/img] [img width= height=]image.png[/img] [img =widthxheight]image.png[/img]

    [img]"expression"[/img] [quote]

    [/quote]

    [code]

    [code]

    Texto preforma do

    [pre]

    [/pre]

    Texto de alineació n a la izquierda

    [left]

    [/left]

    Citar Código

    Alinear el texto a la derecha

    [right]

    [/right]

    Centrar el texto en el centro

    [center]

    [/center ]

    [quote][/quote] [quote=name][/quote]

    Lista ordenada

    [ol]

    [/ol]

    [ol] [li]First[/li] [li]Second[/li] [/ol]

    Lista desorden ada

    [ul]

    [/ul]

    [ul] [li]First[/li] [li]Second[/li] [/ul]

    [list]

    [/list]

    [list] [li]First[/li] [li]Second[/li] [/list]

    [table]

    [/table]

    [table] [tr][th][/th][th][/th][/tr] [tr][td][/td][td][/td][/tr] [/table]

    Mesa

    Etiquetas extendidas y atributos por XFRX

    Bloque ar alinear

    Etiqueta de inicio

    Etiquet a final

    darse cuenta

    [block]

    [/bloc k]

    Justificar la alineación

    texto Tabelat or

    [tab/]

    Sobres crito

    [sup]

    [/sup]

    Subíndi ce

    [sub]

    [/sub ]

    Expresi ón de VFP

    [vfpev]

    [/vfpe v]

    Expresi ón de VFP con format o de convers ión

    [vfpev pictureformat= "" xlsf=""]

    [/vfp ev]

    [vfpev

    [/opt ions]

    [options]TF_LIST_ITEM_CHAR=CHR(168)[ /options]

    Bloque de opcion es

    [options]

    Backgr oundco lor para tablas, filas y celdas

    bgcolor=

    Amplia r fila por alias fuente

    template="ali as_expression"

    [tab/] [tab=X/]

    [vfpev]DTOC(DATE())+" "+TIME()[/vfpev]

    pictureformat="99.99" xlsf="#0.00"]1 0[/vfpev]

    [table bgcolor=rbg(192,192,192)][tr bgcolor =rbg(135,153,237)][th][/th][th][/th] [/tr] [tr][td bgcolor=rbg(183,244,131)][/t d][td][/td][/tr] [/table] [table] [tr][th][/th][th][/th][/tr] [tr template="alias_expression"][td][vfp ev]FIELD[/vfpev][/td][/tr] [/table] [ul] [li template="alias_expression"][vfpev]F IELD[/vfpev][/li] [/ul] [left template="alias_expression"][vfpev]F IELD[/vfpev][/left]

    [ plantilla derecha

    =

    "alias_expression"][vfpev]FIELD[ /vfpev][/right]

    [ plantilla del centro = "alias_expression"][vfpev]FIELD[ /vfpev][/center]

    [block template = "alias_expression"][vfpev]FIELD[ /vfpev][/block]



    Sin etiquetas

    Notificaciones de banderas Documentación XFRX / ... / Formato de texto

    Formato de texto - RTF martinajindrova Modificado por última vez oct 13, 2017

    La palabra clave es .

    Tokens compatibles por RTF Simbólico

    darse cuenta

    Ve rsi ón

    Propiedades del papel Anchu ra

    \paperw

    Ancho de papel en twips

    17. 3

    Altura

    \paperh

    Altura del papel en twips

    17. 3

    Marge

    \margl

    Margen a la izquierda en twips

    17.

    n dejado

    3

    Marge n derech o

    \margr

    Margen a la derecha en twips

    17. 3

    Marge n superio r

    \margt

    Margen superior en twips

    17. 3

    Marge n inferior

    \margb

    Margen abajo en twips

    17. 3

    Propiedades del texto \b

    Activar negrita

    \b0

    Desactivar negrita

    \i

    Activar cursiva

    \i0

    Desactivar cursiva

    \ul

    Activar subrayado

    \ul0

    Desactivar subrayado

    \strike

    Activar strikethru

    \strike0

    Desactivar strikethru

    Sobres crito

    \super

    Activar superíndice

    Subínd ice

    \sub

    Activar subíndice

    Negrita

    Itálico

    Subray ar StrikeT hru

    \ nosupersub

    Activar superíndice y subíndice

    Color

    \cfN

    \cf1

    - índice en la tabla de colores

    Color de fondo

    \cbN

    \cb1

    - índice en la tabla de colores

    \chcbpatN

    \chcbpat1

    - índice en la tabla de

    colores Nombr e de la

    \fN

    \f0

    - índice en la tabla de fuentes

    17. 3

    fuente Tamañ o de fuente

    \fsN

    \fs40

    Página de código

    \ansicpgN

    \ansicpg1252

    - tamaño de letra * 2

    Propiedades de párrafo Marge n superio r

    \sbN

    \sb420

    Marge n inferior

    \saN

    \sa420

    Marge n dejado

    \liN

    \li420

    Marge n derech o

    \riN

    \ri420

    Altura de la línea

    \slN

    \sl1500

    \slmultN

    \slmult0- Altura de lne\slmult1 - Hilo de

    - espacio antes del párrafo en twips

    - espacio tras párrafo en

    twips - espacio desde el párrafo de la izquierda en twips - espacio del párrafo correcto en twips

    - párrafo de altura de línea en twips / múltiple línea

    múltiple Alinea ción del texto

    Tab detiene

    \ql

    Alineación izquierda

    \qr

    Alineación correcta

    \qc

    Alineación del centro

    \qj

    Bloquear / justificar la alineación

    \txN

    \tx2000

    \tqr

    \tqr\tx2000

    \tqc

    \tqc\tx2000

    - Tope de tabulación izquierdo en twips - parada de tabulación derecha en twips - parada de

    tabulación central en twips Color de fondo

    \cbpatN

    Guion de texto

    \fiN

    \fi420

    Tamañ o de la pestaña

    \deftabN

    \deftab

    Fronter a

    \brdrcfN

    \brdrcf1

    \cbpat1

    - índice en la tabla de

    colores - sangría de primera línea en twips - tamaño de tabulación predeterminado en twips

    - índice en la tabla de

    colores \brspN

    \brsp200

    \brdrwN

    \brdrw20

    - espacio entre boder y texto en twips - ancho del borde en

    twips \brdrnone

    Ninguno borde

    \brdrdot

    Borde de puntos

    \brdrdash

    Borde del tablero

    \brdrdashd

    Borde del punto de la rociada

    \brdrdashdot

    Borde del punto de la rociada

    \brdrdashdd

    Dash dot dot border

    \brdrs

    Borde sólido Tokens de control

    Tabelat or

    \tab

    CRLF

    \line

    Párrafo

    \par

    \pard

    Restablecer propiedades de párrafo

    \plain

    Restablecer propiedades de texto

    Salto de página

    \page

    17. 3

    Secció n

    \sect

    17. 3 Objetos

    Líneas, formas, imágen es

    \shp

    17. 3

    \pict

    Tokens extendidos por XFRX

    Expr esión de VFP

    Simbólico

    darse cuenta

    \*\vfpev

    {\vfpev {DTOC(DATE())+" "+TIME()}}

    {\vfpev {\pictureformat99.99} { \xlsf#0.00} {10}}

    Expr esión de VFP con form ato de conv ersió n Expa ndir por alias fuent e

    \*\template

    {\template {alias_expression}}

    Sobre scrito

    \*\super0

    Desactivar superíndice

    Subín dice

    \*\sub0

    Desactivar subíndice

    Atributos de CSS

    Citar





    Códi go



    texto alineado; marg en; relleno; anc ho del borde; estilo de borde; color de fondo; tabstops; curvatur a; guion de texto; dirección ; juego de caracteres; tam año de la pestaña; color; nombre de la fuente; tamaño de fuente; Estilo de fuente; fontweight; textodecoración; alt ura de la línea;

    Texto prefo rmad

    <pre>

    texto alineado; marg en; relleno; anc

    texto alineado; marg en; relleno; anc ho del borde; estilo de borde; color de fondo; tabstops; curvatur a; guion de texto; dirección ; juego de caracteres; tam año de la pestaña; color; nombre de la fuente; tamaño de fuente; Estilo de fuente; fontweight; textodecoración; alt ura de la línea;

    o

    ho del borde; estilo de borde; color de fondo; tabstops; curvatur a; guion de texto; dirección ; juego de caracteres; tam año de la pestaña; color; nombre de la fuente; tamaño de fuente; Estilo de fuente; fontweight; textodecoración; alt ura de la línea;

    Lista orden ada



      1. First
      2. Second


      list-styletype; texto alineado; marg en; relleno; anc ho del borde; estilo de borde; color de fondo; tabstops; curvatur a; guion de texto; dirección ; juego de caracteres; tam año de la pestaña; color; nombre de la fuente; tamaño de fuente; Estilo de fuente; fontweight; textodecoración;

      Lista desor dena da



        • First
        • Second


        list-styleimage; texto alineado; marg en; relleno; anc ho del borde; estilo de

        borde; color de fondo; tabstops; curvatur a; guion de texto; dirección ; juego de caracteres; tam año de la pestaña; color; nombre de la fuente; fonttsize; Estilo de fuente; fontweight; textodecoración; <list>

        Lista de articu los



      • <list style="">
      • First
      • Second




      • list-styleimage; texto alineado; marg en; relleno; anc ho del borde; estilo de borde; color de fondo; tabstops; curvatur a; guion de texto; dirección ; juego de caracteres; tam año de la pestaña; color; font-name fontsize; Estilo de fuente; fontweight; textodecoración; list-styleimage; texto alineado; marg en; relleno; anc ho del borde; estilo de borde; color de fondo; tabstops; curvatur a; guion de texto; dirección

        ; juego de caracteres; tam año de la pestaña; color; nombre de la fuente; tamaño de fuente; Estilo de fuente; fontweight; textodecoración; Hiper enlac e









        Bloq ue de opcio nes



        TF_LIST_ITEM_CHAR=CHR( 168)

        Mesa



        < /tr>


        Ampl iar fila por alias fuent e

        template="ali as_expression"

        < /tr> Expression
        • Expression

        Expression



        Notificaciones de banderas Documentación XFRX / ...

        Sin etiquetas

        / Formato de texto

        Tabla de colores martinajindrova Modificado por última vez mar 26, 2017

        #FF0000

        Red

        #BDEDFF

        Robin Egg Blue

        #00FFFF

        Cyan

        #CFECEC

        Pale Blue Lily

        #0000FF

        Azul

        #E0FFFF

        Cian claro

        #0000A0

        Azul oscuro

        #EBF4FA

        Agua

        #ADD8E6

        Azul claro

        #F0F8FF

        Alice azul

        #800080

        Púrpura

        #F0FFFF

        Azur

        #FFFF00

        Amarillo

        #CCFFFF

        Light Slate

        #00FF00

        Lima

        #93FFE8

        Luz aguamarina

        #FF00FF

        Magenta

        #9AFEFF

        Azul eléctrico

        #FFFFFF

        Blanco

        #7FFFD4

        Aguamarina

        #C0C0C0

        Plata

        #00FFFF

        Cyan o Aqua

        #808080

        gris

        #7DFDFE

        Tron azul

        #808080

        Gris

        #57FEFF

        Zircon azul

        #000000

        Negro

        #8EEBEC

        Laguna Azul

        #FFA500

        naranja

        #50EBEC

        Celeste

        #A52A2A

        marrón

        #4EE2EC

        Diamante azul

        #800000

        Granate

        #81D8D0

        Tiffany Blue

        #008000

        Verde

        #92C7C7

        Cyan Opaque

        #808000

        Aceituna

        #77BFC7

        Hosta azul

        #000000

        Negro

        #78C7C7

        Aurora boreal

        azul #0C090A

        Noche

        #48CCCD

        Turquesa Medio

        #2C3539

        Gunmetal

        #43C6DB

        Turquesa

        #2B1B17

        Medianoche

        #46C7C7

        Medusa

        #34282C

        Carbón

        #43BFC7

        Guacamayo azul verde

        #25383C

        Gris pizarra oscuro

        #3EA99F

        Luz Mar Verde

        #3B3131

        Petróleo

        #3B9C9C

        Turquesa oscuro

        #413839

        Gato negro

        #438D80

        Sea Turtle Green

        #3D3C3A

        Iridium

        #348781

        Medio aguamarina

        #463E3F

        Anguila negra

        #307D7E

        Azul verdoso

        #4C4646

        Vaca negra

        #5E7D7E

        Gris turquesa

        #504A4B

        Lobo gris

        #4C787E

        Beetle Green

        #565051

        Vampire Grey

        #008080

        Teal

        #5C5858

        Grey Dolphin

        #4E8975

        Mar verde

        #625D5D

        Gris carbón

        #78866B

        C amouflage verde

        #666362

        Gris ceniza

        #848b79

        Sage Green

        #6D6968

        Gris nublado

        #617C58

        Hazel Green

        #726E6D

        Smokey Gray

        #728C00

        Venom Green

        #736F6E

        gris

        #667C26

        Fern Green

        #837E7C

        Granito

        #254117

        Dark Forrest Green

        #848482

        Acorazado gris

        #306754

        Medium Sea Green

        #B6B6B4

        Nube gris

        #347235

        Verde medio del bosque

        #D1D0CE

        Ganso gris

        #437C17

        Verde de algas marinas

        #E5E4E2

        Platino

        #387C44

        Pino verde

        #BCC6CC

        Plata metálica

        #347C2C

        Jungle Green

        #98AFC7

        Gris azulado

        #347C17

        Shamrock Green

        #6D7B8D

        Gris pizarra claro

        #348017

        Medium Spring Green

        #657383

        Gris pizarra

        #4E9258

        Bosque verde

        #616D7E

        Jet Grey

        #6AA121

        Cebolla verde

        #646D7E

        Mist Blue

        #4AA02C

        Primavera verde

        #566D7E

        Marble Blue

        #41A317

        Verde lima

        #737CA1

        Azul pizarra

        #3EA055

        Clover Green

        #4863A0

        Azul acero

        #6CBB3C

        Serpiente verde

        #2B547E

        Arrendajo azul

        #6CC417

        Alien Green

        #2B3856

        Dark Slate Blue

        #4CC417

        Manzana verde

        #151B54

        Azul de medianoche

        #52D017

        Amarillo verde

        #000080

        Azul marino

        #4CC552

        Kelly verde

        #342D7E

        Ballena azul

        #54C571

        Zombie Green

        #15317E

        Lapis Blue

        #99C68E

        Rana verde

        #151B8D

        Azul Aciano

        #89C35C

        Guisantes verdes

        #0000A0

        Tierra Azul

        #85BB65

        Dollar Bill Green

        #0020C2

        Azul cobalto

        #8BB381

        Dark Sea Green

        #0041C2

        Blueberry Blue

        #9CB071

        Iguana Green

        #2554C7

        Azul zafiro

        #B2C248

        Aguacate Verde

        #1569C7

        Ojos azules

        #9DC209

        Pistacho Verde

        #2B60DE

        Azul real

        #A1C935

        Ensalada verde

        #1F45FC

        Orquídea azul

        #7FE817

        Colibrí verde

        #6960EC

        Loto azul

        #59E817

        Nebula Green

        #736AFF

        Light Slate Blue

        #57E964

        Semáforo Go Green

        #357EC7

        Azul pizarra

        #64E986

        Algas verdes

        #368BC1

        Glacial Blue Ice

        #5EFB6E

        Jade verde

        #488AC7

        Azul seda

        #00FF00

        Verde

        #3090C7

        Blue Ivy

        #5FFB17

        Verde esmeralda

        #659EC7

        Blue Koi

        #87F717

        Lawn Green

        #87AFC7

        Columbia Blue

        #8AFB17

        chartreuse

        #95B9C7

        Bebe azul

        #6AFB92

        Dragon Green

        #728FCE

        Luz acero azul

        #98FF98

        Menta verde

        #2B65EC

        Océano azul

        #B5EAAA

        Pulgar verde

        #306EFF

        Cinta azul

        #C3FDB8

        Luz Jade

        #157DEC

        Vestido azul

        #CCFB5D

        Té verde

        #1589FF

        Dodger Blue

        #B1FB17

        Verde amarillo

        #6495ED

        Azul Aciano

        #BCE954

        Slime Green

        #6698FF

        Cielo azul

        #EDDA74

        Vara de oro

        #38ACEC

        Mariposa azul

        #EDE275

        Harvest Gold

        #56A5EC

        Iceberg

        #FFE87C

        Sun Yellow

        #5CB3FF

        Azul cristal

        #FFFF00

        Amarillo

        #3BB9FF

        Deep Sky Blue

        #FFF380

        Maíz amarillo

        #79BAEC

        Denim Blue

        #FFFFC2

        Pergamino

        #82CAFA

        Luz azul cielo

        #FFFFCC

        Crema

        #82CAFF

        Día azul cielo

        #FFF8C6

        Chifón de limón

        #A0CFEC

        Jeans Blue

        #FFF8DC

        Seda de maiz

        #B7CEEC

        Angel Azul

        #F5F5DC

        Beige

        #B4CFEC

        Azul pastel

        #FBF6D9

        Rubia

        #C2DFFF

        Azul marino

        #FAEBD7

        Blanco antiguo

        #C6DEFF

        Azul pálido

        #F7E7CE

        champán

        #AFDCEC

        Coral Blue

        #FFEBCD

        BlanchedAlmond

        #ADDFFF

        Azul claro

        #F3E5AB

        Vainilla

        #ECE5B6

        Tan Brown

        #E66C2C

        Naranja de Halloween

        #FFE5B4

        melocotón

        #F87217

        Calabaza naranja

        #FFDB58

        Mostaza

        #F87431

        Construcción Cono Naranja

        #FFD801

        Caucho Ducky Amarillo

        #E67451

        Sunrise Naranja

        #FDD017

        Oro brillante

        #FF8040

        Mango Naranja

        #EAC117

        marrón dorado

        #F88017

        Naranja oscuro

        #F2BB66

        Macarrones con queso

        #FF7F50

        Coral

        #FBB917

        Azafrán

        #F88158

        Basket Ball Orange

        #FBB117

        Cerveza

        #F9966B

        Salmón claro

        #FFA62F

        Cantalupo

        #E78A61

        Mandarina

        #E9AB17

        Abeja amarilla

        #E18B6B

        Salmón oscuro

        #E2A76F

        Azúcar morena

        #E77471

        Coral claro

        #DEB887

        BurlyWood

        #F75D59

        Frijol rojo

        #FFCBA4

        Deep Peach

        #E55451

        Valentine Red

        #C9BE62

        Ginger Brown

        #E55B3C

        Impactante

        naranja #E8A317

        Autobús escolar amarillo

        #FF0000

        Red

        #EE9A4D

        Sandy Brown

        #FF2400

        Escarlata

        #C8B560

        Caída hoja marrón

        #F62217

        Rojo rubí

        #D4A017

        Orange Gold

        #F70D1A

        Ferrari Red

        #C2B280

        Arena

        #F62817

        Fire Engine Red

        #C7A317

        Cookie Brown

        #E42217

        Lava Red

        #C68E17

        Caramelo

        #E41B17

        Amo el rojo

        #B5A642

        Latón

        #DC381F

        Pomelo

        #ADA96E

        Caqui

        #C34A2C

        Castaño Rojo

        #C19A6B

        Camel marrón

        #C24641

        Rojo cereza

        #CD7F32

        B ronze

        #C04000

        Caoba

        #C88141

        Tiger Orange

        #C11B17

        Pimiento picante

        #C58917

        Canela

        #9F000F

        Arándano

        #AF9B60

        Casquillo de bala

        #990012

        Vino tinto

        #AF7817

        Vara de oro oscuro

        #8C001A

        borgoña

        #B87333

        Cobre

        #954535

        castaña

        #966F33

        Madera

        #7E3517

        Sangre roja

        #806517

        Marrón roble

        #8A4117

        Tierra de siena

        #827839

        Mocasín

        #7E3817

        derramamiento de sangre

        #827B60

        Ejército marrón

        #800517

        Ladrillo refractario

        #786D5F

        Arenisca

        #810541

        Granate

        #493D26

        Moca

        #7D0541

        Pastel de ciruela

        #483C32

        Gris pardo

        #7E354D

        Velvet Maroon

        #6F4E37

        café

        #7D0552

        Plum Velvet

        #835C3B

        Oso café

        #7F4E52

        Rosy Finch

        #7F5217

        Red Dirt

        #7F5A58

        chip

        #7F462C

        Sepia

        #7F525D

        Opaco morado

        #C47451

        Salmón naranja

        #B38481

        Rosy Brown

        #C36241

        Moho

        #C5908E

        Khaki Rose

        #C35817

        Zorro rojo

        #C48189

        Arco Rosa

        #C85A17

        Chocolate

        #C48793

        Lápiz labial rosa

        #CC6600

        Sedona

        #E8ADAA

        Rosa

        #EDC9AF

        Arena del desierto

        #E56717

        Papaya Naranja

        #FDD7E4

        Cerdo Rosa

        #E66C2C

        Naranja de Halloween

        #FCDFFF

        Algodón de azúcar

        #8E35EF

        Púrpura

        #893BFF

        Aztech Purple

        #FFDFDD

        Bubblegum rosado #FBBBB9

        Misty Rose

        #8467D7

        Medium Purple

        #FAAFBE

        Rosado

        #A23BEC

        Jazmín Púrpura

        #FAAFBA

        Rosa claro

        #B041FF

        Narciso morado

        #F9A7B0

        Flamingo Pink

        #C45AEC

        Tyrian Purple

        #E7A1B0

        Rosa rosada

        #9172EC

        Crocus Purple

        #E799A3

        Margarita Rosa

        #9E7BFF

        Mimosa púrpura

        #E38AAE

        Cadillac Pink

        #D462FF

        Heliotropo Púrpura

        #F778A1

        Carnation Pink

        #E238EC

        carmesí

        #E56E94

        Blush Red

        #C38EC7

        Dragón Púrpura

        #F660AB

        Rosa caliente

        #C8A2C8

        Lila

        #FC6C85

        Sandía rosa

        #E6A9EC

        Blush Pink

        #F6358A

        Violet Red

        #E0B0FF

        malva

        #F52887

        Rosa profundo

        #C6AEC7

        Glicina púrpura

        #E45E9D

        Cupcake rosa

        #F9B7FF

        Blossom Pink

        #E4287C

        Limonada rosa

        #D2B9D3

        Cardo

        #F535AA

        Rosa neón

        #E9CFEC

        Bígaro

        #FF00FF

        Magenta

        #EBDDE2

        Lavanda Pinocho

        #E3319D

        Dimorphotheca Magenta

        #E3E4FA

        Azul lavanda

        #F433FF

        Bright Neon Pink

        #FDEEF4

        Perla

        #D16587

        Pale Violet Red

        #FFF5EE

        SeaShell

        #C25A7C

        Tulip Pink

        #FEFCFF

        Leche blanca

        #CA226B

        Rojo Violeta Medio

        #FFFFFF

        Blanco

        #C12869

        Rogue Pink

        #8E35EF

        Púrpura

        #C12267

        Rosa quemado

        #893BFF

        Aztech Purple

        #C25283

        Bashful Pink

        #8467D7

        Medium Purple

        #C12283

        Carnation Pink

        #A23BEC

        Jazmín Púrpura

        #B93B8F

        ciruela

        #7E587E

        Viola Purple

        #571B7E

        Iris púrpura

        #583759

        Ciruela púrpura

        #4B0082

        Índigo

        #461B7E

        Monstruo morado

        #4E387E

        Purple Haze

        #614051

        Berenjena

        #5E5A80

        Uva

        #6A287E

        Purple Jam

        #7D1B7E

        Orquídea oscura

        #A74AC7

        Flor Purpura

        #B048B5

        Orquídea mediana

        #6C2DC7

        Amatista morada

        #842DCE

        Violeta oscuro

        #8D38C9

        Violeta

        #7A5DC7

        Purple Sage Bush 

        Notificaciones de banderas Documentación XFRX / Páginas / Guía del desarrollador metadata.attachments

        Referencia Usuario desconocido (mst) Modificado por última vez nov 04, 2015 por martinajindrova

        Sin etiquetas

                

        Propiedades y métodos comunes en las clases XFRXListener y XFRXSession Clase XFRXListener Clase XFRXSession XFRX # DRAW Class Clase XFCont Clase de INL de PDFL # Clase eqZip Clase de LECTOR DE PDF # Clase XFRX # XML 

        Sin etiquetas

        Notificaciones de banderas Documentación XFRX / ... / Propiedades y métodos comunes en las clases XFRXListener y XFRXSession metadata.attachments

        Propiedades y métodos comunes en las clases XFRXListener y XFRXSession martinajindrova Modificado por última vez sep 16, 2017

        Propiedades PictureDPI Resolución DPI (puntos por pulgada) a la que se vuelven a calcular todas las imágenes. Puede usar esta propiedad para reducir el tamaño del documento de salida. Esta propiedad debe enviarse antes de llamar al método SetParams para XFRX # INIT. Valor predeterminado: 0 (no recalcular, mantener las imágenes como están)

        Versión XFRX

        DefaultPictureFormat Formato de imagen de los componentes de activeX convertidos en imágenes. Valores permitidos: "bmp", "jpg", "png", "tif", "gif" Valor predeterminado: "jpg" Calidad JPEG Calidad JPEG para convertir a formato JPEG. Valor predeterminado: 80

        15.1.0

        lMultiLineLineBehavior Active el antiguo algoritmo para la altura de los calcs del texto de varias líneas

        15.0.3

        nFlowLayoutMode Modo para salidas de diseño de flujo: FDOC, FRTF, FODT, NATIVE_FDOCX 1 - encabezado, detalle, pie de página se genera como encabezado de página, detalle y pie de página (valor predeterminado) 2 - encabezado, detalle, pie de página se generan como detalle

        15.5.0

        cTextToImage Modo para convertir texto en imágenes "AUTO": el texto que tiene #UR TEXTTOIMAGE = <expresión> y el resultado será .T. luego se convierte en imagen (valor predeterminado) "TODOS" - Todos los textos se convertirán a la imagen "NINGUNO" - Ninguno de los textos se convertirá en imagen           

        Propiedades PictureDPI DefaultPictureFormat Calidad JPEG lMultiLineLineBehavior nFlowLayoutMode cTextToImage Métodos principales Mensaje de error() Setparams () SetOtherParams (...)

        17.3.

                                  

        Finalizar() initLog () setLogFile () Métodos para registrar secuencias XFF enlazadas a la página RegisterScript () UnregisterAllScripts () Métodos de ajuste de tamaño de página setPaperSize () ShrinkHeight () Métodos para definir el cifrado de documentos setPasswords () setPermissions () Métodos para establecer las propiedades del documento setAuthor () setCategory () setComments () setCompany () setCreator () setKeywords () setManager () setProducer () setSubject () setTitle () setCreationDate () Métodos de archivos adjuntos AddAttachment () ClearAttachments ()

        Métodos principales Mensaje de error() Sintaxis: lnRetVal = loXFRXobj.ErrorMessage(lnErrorNo)

        Este método devuelve un mensaje de error correspondiente al valor devuelto por el método SetParam Setparams () Llame a este método para establecer los parámetros de generación de documentos. Sintaxis:

        lnRetVal = loXFRXobj.SetParams(, , , , , , , , )

        Valores devueltos:

        0 ... todo estuvo bien, puede comenzar a procesar informes -1 ... no puede cargar la aplicación Word o Excel -2 ... la versión de la aplicación Word o Excel debe ser 2000 o superior -3 ... no puede crear o abrir el archivo de salida -4 ... destino desconocido -5 ... hndlib.dll no se puede cargar (falta o se usa una versión anterior) -6 ... xfrxlib.fll no se puede cargar (falta o no es válido). Por favor vea las preguntas más frecuentes si -7 ... zlib.dll no se puede cargar -8 ... Se usa un viejo xfrxlib.fll -9 ... Lo sentimos, se requiere Word 2007 o superior para el formato docx. -10 ... El documento existente está dañado o en un formato no compatible -11 ... Archivo de firma no encontrado -12 ... No se puede usar el archivo de firma -13 ... La carpeta de salida no existe o no tiene acceso de escritura -14 ... El documento existente usa transmisión de reflujo rápido - es no es posible agregar datos. (desde cargar la aplicación de Excel. (desde XFRX 17.0) -16 ... La versión de la aplicación Excel debe ser 200 ... PDFpassword no es válido. (desde XFRX 17.1) -18 ... No es posible añadir nuevos datos con contras XFRX 17.1)

        Puede recuperar el mensaje en inglés para el código devuelto con el método ErrorMessage () .

        Parámetros: tcOutputName el nombre del documento para crear. Directorio tcTempDirectory donde se crearán los archivos temporales. Si está en blanco, los archivos temporal de Visual FoxPro [opcional] tlNotOpenViewer si se establece en .T., los documentos no se abrirán después de la generación [opcional] tcCodePage es una página de códigos del documento generado [opcional]. Si no especifica este parámetro, se usa

        tlSilent si se establece en .T., no se imprimirán mensajes [opcional]. Esta opción es útil si su aplicación no est mensaje Procesando ... y los mensajes de error en su código. tlNewSession

        de forma predeterminada, el documento de Word estará abierto en la sesión de Word actual, si existe. .T., El documento siempre estará abierto en una nueva sesión de Word. Esta opción no se usa para obje

        tcTarget El tipo de salida que se generará. Uno de los valores enumerados en Tipos de objetivos de salida XFR

        tcArchive El nombre del archivo zip que se creará. Si no está vacío, el archivo generado se agregará al archivo d tlAdditive Si se establece en .T. y el archivo ya existe, el archivo será agregado. (Opcional)

        Tenga en cuenta: puede agregar varios archivos al archivo, pero los archivos existentes con el mismo n archivos nuevos siempre se agregarán.

        tlDeleteFileAfter Si se establece en .T., el archivo generado se eliminará una vez que se haya copiado en el archivo. (O

        tuAppend Especifica si el documento generado se anexará a un archivo existente. Este parámetro puede ser lógic siguiente significado: Tipo

        Valor

        Sentido

        Lógico

        .F.

        Se sobrescribirá un documento existente Salida

        .T.

        Versión XFRX

        PDF

        10.1

        RTF

        16.1

        FRTF

        16.1

        LLANURA

        16.1

        El informe generado se adjuntará al final del documento existen Salida

        Versión XFRX

        PDF

        10.1

        RTF

        16.1

        FRTF

        16.1

        LLANURA

        Numérico

        0

        Se sobrescribirá un documento existente Salida



        "R "

        10.1

        RTF

        16.1

        FRTF

        16.1

        LLANURA

        16.1

        El informe generado se insertará en el documento existente en el Versión XFRX

        PDF

        10.1

        RTF

        16.1

        FRTF

        16.1

        LLANURA

        17.0

        Solo para el valor 1.

        La página se reemplazará con el informe generado. Salida

        "R : "

        Versión XFRX

        PDF

        Salida

        Cuerda

        16.1

        Versión XFRX

        PDF

        10.1

        RTF

        16.1

        FRTF

        16.1

        El rango de página se reemplazará con el informe generado.

        Salida

        Versión XFRX

        PDF

        10.1

        RTF

        16.1

        FRTF

        16.1

        Ejemplos: Parámetro

        Sentido

        .T.

        El informe generado se agregará al final del documento existente.

        1

        El informe generado se insertará al comienzo del documento existente.

        5

        El informe generado se insertará en el documento existente, entre las páginas 4 y 5.

        "R5"

        El informe generado se insertará entre las páginas 4 y 6, reemplazando a la página 5.

        "R4: 8"

        El informe generado se insertará entre las páginas 3 y 9, reemplazando las páginas 4,5

        .F. o 0

        El documento existente será sobrescrito.

        SetOtherParams (...)

        Este método se usa para agregar varios parámetros específicos del tipo de salida. El primer parámetro e el parámetro que se establecerá, el segundo parámetro es los valores que se establecerán. Ejemplo: Para establecer el siguiente nombre de la hoja en el documento XLS en "Cliente 1", llame a: .SetOtherParams ("NEXT_SHEET_NAME", "Cliente 1")

        Parámetros específicos de HTML Nombre

        Tipo

        Nota

        PRINT_BOOKMARKS

        Lógico, Numérico

        Puede enviar dos parámetros con esta opción. El pri lógico y controla si el marcador debe mostrarse (.T.) predeterminado).

        El segundo parámetro especifica qué tipo de marcad mostrar:   

        Enviar 0 mostrará los marcadores de los números de pág informe (predeterminado) El envío 1 mostrará solo los marcadores definidos en el i Enviar 2 mostrará solo los marcadores de número de pá

        CONVERTIMIENTO_TIFFTOPNG

        Lógico

        El valor predeterminado es .F. Si este parámetro se establece en .T., Las imágenes convertirán a PNG.

        Las imágenes en línea

        Lógico

        El valor predeterminado es .F. Si este parámetro se establece en .T., Las imágenes esta de salida.

        Parámetros específicos de texto plano Nombre

        Tipo

        Nota

        PLAIN_CPI_HORIZONTAL

        Numérico

        Caracteres horizontales por valor de pulgada

        PLAIN_CPI_VERTICAL

        Numérico

        Caracteres verticales por valor de pulgada

        PLAIN_SHOW_LINES

        Lógico

        Valor predeterminado = .T.

        Este parámetro permite suprimir líneas horizontales del

        Encontrará más información sobre el parámetro de texto sin formato en Convertir informes en el capít 41.

        Parámetros específicos de XLS, XLSPLAIN, NATIVE_FXLS, NATIVE_PFXLSX, ODS, FODS, Nombre

        Tipo

        Nota

        DISPLAY_GRID_LINES

        Lógico

        Valor predeterminado = .T.

        Si este parámetro se establece en .F., Las líne no serán visibles. LEAVE_FULL_FIELD_CONTENT

        Lógico

        Valor predeterminado = .F.

        Por defecto, el contenido de los campos no es

        tamaño del campo. Esta opción permite dejar en la celda de Excel. NEXT_SHEET_NAME

        Cuerda

        El nombre de la siguiente hoja que se insertar ejecutará.

        NEXT_SHEET_NAME_EXPR

        Cuerda

        Esta expresión, si está definida, se evalúa en resultado se utiliza como el nombre de la hoja

        Este parámetro tiene prioridad sobre el parám ADDPAGENUMBERTOSHEETDISPLAYNAME

        Lógico

        Valor predeterminado = .T.

        Si este parámetro se establece en .F. luego, X el nombre de la hoja. (Desde XFRX 15.6) SHEET_PER_PAGE

        Lógico

        Valor predeterminado = .F.

        De forma predeterminada, el documento XLS genera una hoja larga, con el encabezado de p de página en la parte inferior.

        Si este parámetro se establece en .T., Cada pá una hoja nueva. SHEET_PER_NP_GROUP

        Lógico

        Valor predeterminado = .F.

        Esta opción combina el modo simple y el mo

        Si este parámetro está establecido en .T. (y SH genera una nueva hoja para cada grupo de inf cada grupo en una nueva página" configurado SHEETPAGEBREAK

        Lógico

        Valor predeterminado = .F.

        Esta opción agrega saltos de página en la hoja po

        (Desde XFRX 15.7) HORIZONTAL_ADJUSTMENT VERTICAL_ADJUSTMENT

        Numérico

        La diferencia de coordenadas máxima consid

        Consulte el capítulo de ajuste de células XL información.

        Finalizar()

        Este método finaliza la generación de documentos y muestra el documento generado (a menos que la v explícitamente suprimida).

        La Finalizar () método no tiene que ser llamado en VFP 9.0, si el último comando FORM de informe NOPAGEEJECT.

        initLog () Este método crea un archivo de registro con el nombre "_XFRX.log". Sintaxis = loXFRXobj.initLog()

        Parámetros: tlSilent no escribe el encabezado en el archivo de registro [opcional]

        setLogFile () Este método crea un archivo de registro con el nombre < tcLogFile >. Sintaxis = loXFRXobj.setLogFile(, )

        Parámetros: tcLogFile el nombre del archivo de registro para crear. tlSilent no escribe el encabezado en el archivo de registro [opcional]

        Métodos para registrar secuencias XFF enlazadas a la página RegisterScript () Sintaxis:

        RegisterScript(toScriptObject, tcScriptMethod, tnZOrder, tcPageScope, tnNumberingTyp

        Parámetros: toScriptObject Referencia del objeto PDFLScripts tcMethodName El nombre del método que contiene la secuencia de comandos tnZIndex 0 ... imprima a continuación (antes) la página de informe 1 ... imprima arriba (después) la página de informe

        tcScope Define qué páginas invocar los scripts. Puede contener "ALL", "ODD", "EVEN" y números delimitad con comas. Los guiones se pueden usar para definir el alcance de entrada. Ejemplos: "ODD", "1,5-19", "ODD, 4,8" tnPageNumberingType

        Define cómo XFRX determina el número de página: 0 ... absolute - el número de página en el documento, 1 ... relativo - el número de página en el informe actual, 2 ... el valor de _PAGENO UnregisterAllScripts () Sintaxis: UnregisterAllScripts()

        Si se combinan varios informes y desea aplicar scripts en un determinado informe, pero no en los sigui llame a este método para eliminar todos los registros de scripts. Este método no necesita ser llamado al final del procesamiento de informes.

        Métodos de ajuste de tamaño de página setPaperSize () Use este método para definir un tamaño de página definido por el usuario. Sintaxis: setPaperSize(nUDPaperWidth, nUDPaperHeight[,nUDPaperOrientation] )

        Consulte el párrafo de tamaño de página definido por el usuario en la página 18 (nad) para obtener más información. nUDPaperWidth Ancho del papel nUDPaperHeight Altura del papel Orientación del papel nUDPaperOrientation (XFRX 15.5)

        ShrinkHeight ()

        Use este método para acortar el tamaño de la página. Consulte el ajuste del tamaño de página HTML en la estructura 34 para obtener más información.

        Métodos para definir el cifrado de documentos setPasswords () Establece contraseñas para la protección de documentos PDF y Word. Sintaxis de PDF: setPasswords(tcOwnerPassword, tcUserPassword)

        Parámetros:

        La contraseña del usuario (tcUserPassword) puede estar vacía. Si la contraseña de propietario (tcOwne vacía, se generará una cadena aleatoria como contraseña. El propietario puede hacer cualquier cosa con el documento. Los permisos de usuario se pueden estable métodos setPermissions (). Sintaxis de Word: setPasswords(tcReadPassword, tcWritePassword, tlRequirePassword)

        Puede omitir tcReadPassword o tcWritePassword. tlRequirePassword es opcional (el valor predetermin establece en .T., Word solicitará la contraseña incluso cuando el documento se abra por primera vez de generación (si la propiedad DoNotOpenViewer está configurada en .F.). setPermissions ()

        Establece los permisos de usuario en el documento PDF. Sintaxis:

        setPermissions(tlPrintDocument, tlModifyDocument, tlCopyTextAndGraphics, tlAddOrModi

        Métodos para establecer las propiedades del documento setAuthor () Establece la propiedad del autor del documento. Sintaxis: setAuthor(tcvalue)

        Parámetros: tcValue (char) es un valor que se usará en las propiedades del documento. setCategory () Establece la propiedad del documento "Categoría". Sintaxis: setCategory(tcvalue)

        Parámetros: tcValue (char) es un valor que se usará en las propiedades del documento. setComments () Establece el documento propiedad "Comentarios". Sintaxis:

        setComments(tcvalue)

        Parámetros: tcValue (char) es un valor que se usará en las propiedades del documento. setCompany () Establece la propiedad del documento "Empresa". Sintaxis: setCompany(tcValue)

        Parámetros: tcValue (char) es un valor que se usará en las propiedades del documento. setCreator () Establece la propiedad de "creador" del documento. Sintaxis: setCreator( tcValue )

        Parámetros: tcValue (char) es un valor que se usará en las propiedades del documento. setKeywords () Establece la propiedad de "palabras clave" del documento. Sintaxis: setKeywords(tcValue)

        Parámetros: tcValue (char) es un valor que se usará en las propiedades del documento. setManager () Establece la propiedad del documento "Administrador". Sintaxis: setManager(tcValue)

        Parámetros: tcValue (char) es un valor que se usará en las propiedades del documento. setProducer () Establece la propiedad del documento "productor". Sintaxis:

        setProducer(tcValue)

        Parámetros: tcValue (char) es un valor que se usará en las propiedades del documento. setSubject () Establece el documento propiedad "Asunto" Sintaxis: setSubject(tcValue)

        Parámetros: tcValue (char) es un valor que se usará en las propiedades del documento. setTitle () Establece la propiedad del título del documento. Sintaxis: setTitle(tcValue)

        Parámetros: tcValue (char) es un valor que se usará en las propiedades del documento. setCreationDate ()

        Establece la propiedad de fecha de creación del documento (desde XFRX 16.0). Sintaxis: setCreationDate(tdValue)

        Parámetros: tdValue (date / datetime) es un valor que se usará en las propiedades del documento.

        Métodos de archivos adjuntos AddAttachment () Versió n XFR X Agregar archivo adjunto a la lista

        17.3

        Sintaxis:

        AddAttachment(m.lcFileName, m.llEmbedded, m.lcDescription, m.lcFileType, m.lcRelatio

        Consulte el párrafo de tamaño de página definido por el usuario en la página 18 (nad) para obtener más información.

        m.lcFileName Nombre de archivo m.ll Embedded Embedded flag (debe ser verdadero) m.lcDescription

        Descripción del archivo

        m.lcFileType tipo MIME m.lcRelationship

        debe ser "alternativa"

        ClearAttachments () 17.3

        Borrar la lista de archivos adjuntos.



        Sin etiquetas

        Notificaciones de banderas Documentación XFRX / ... / Referencia metadata.attachments

        Clase XFRXListener martinajindrova Modificado por última vez mar 22, 2017

        Propiedades : AppendToFile Especifica si el documento generado se agregará a un archivo existente. Este parámetro puede ser lógico, numérico o una cadena, con el siguiente significado: Tipo

        Valor

        Sentido

        Lógico

        .F.

        Se sobrescribirá un documento existente

        Numérico

        Cuerda

        .T.

        El informe generado se adjuntará al final del documento existente

        0

        Se sobrescribirá un documento existente



        El informe generado se insertará en el documento existente en el número de página especificado.

        "R "

        La página se reemplazará con el informe generado.

        "R : "

        El rango de página se reemplazará con el informe generado.

        Ejemplos: Parámetro

        Sentido

        .T.

        El informe generado se agregará al final del documento existente.

        1

        El informe generado se insertará al comienzo del documento existente.

        5

        El informe generado se insertará en el documento existente, entre las páginas 4 y 5.

        "R5"

        El informe generado se insertará entre las páginas 4 y 6, reemplazando a la página 5.

        "R4: 8"

        El informe generado se insertará entre las páginas 3 y 9, reemplazando las páginas 4,5,6,7 y 8.

        .F. o 0

        El documento existente será sobrescrito.

        Esta propiedad solo se aplica a documentos PDF. Página de código

        La página de códigos del documento de salida.

        DoNotOpenViewer

        Si se establece en .T., Los documentos no se abrirán después de la generación. Valor predeterminado = .F.

        lAllwaysWholePage Por compatibilidad con versiones anteriores XFRX. Si se establece en .T., XFRX no cambia la posición izquierda y superior de algunos objetos. Valor predeterminado = .F. NewViewerSession

        De forma predeterminada, los documentos de Word y HTML estarán abiertos en la instancia actual de la aplicación, si existe. Si este parámetro se establece en .T., El documento siempre estará abierto en una nueva instancia de Word / navegador web. Valor predeterminado = .F.

        Modo silencioso

        Esta es una propiedad de la clase ReportListener. Si se establece en .T., No se imprimirá ningún mensaje durante el proceso de generación de informes.

        targetFileName

        El nombre del archivo que se generará.

        tipo de objetivo

        El tipo de salida que se generará. Uno de los valores enumerados en Tipos de objetivos de salida XFRX (arriba) .

        TMPFolder Carpeta donde se crearán los archivos temporales. Si está en blanco, los archivos temporales se crearán en la ruta temporal de Visual FoxPro

        Métodos : Los métodos comunes se describen en Propiedades y métodos comunes en las clases XFRXListener y XFRXSession (arriba).

        zipDocument ()

        Especifica que el documento generado se debe agregar a un archivo zip. Sintaxis: zipDocument(ArchiveName, AddToArchive, DeleteSourceDocument)

        Valores devueltos: ninguno Parámetros: ArchiveName (char) es el nombre de archivo del archivo zip AddToArchive (lógico) especifica si el archivo se debe agregar al archivo existente (.T.) O si se debe crear un archivo nuevo (.F). DeleteSourceDocument (logical) si se establece en .T., El documento fuente se eliminará después de agregarlo al archivo. Puede enviar estos tres parámetros a XFRX ya sea por este método o como los últimos tres parámetros del método SetParams. Este método está disponible para su conveniencia de que prefiera completar las propiedades de XFRXListener y llamar a SetParams sin parámetros.            

        Propiedades: AppendToFile Página de código DoNotOpenViewer lAllwaysWholePage NewViewerSession Modo silencioso targetFileName tipo de objetivo TMPFolder Métodos: zipDocument () 

        Notificaciones de banderas Documentación XFRX /

        Sin etiquetas

        ... / Referencia metadata.attachments

        Clase XFRXSession martinajindrova Modificado por última vez may 24, 2017

        Los métodos comunes se describen en Propiedades y métodos comunes en las clases XFRXListener y XFRXSession (arriba).

        lMultiDetailBehavior Active múltiples detalles de soporte para XFRX # INIT (funcionalidad experimental). Esta propiedad se eliminó en XFRX 17.0. lHidePictureOutsideBand .T. - Ocultar imagen si la línea inferior está fuera de banda (valor predeterminado) .F. - Muestre la imagen si la línea de fondo está fuera de banda

        lAbsoluteHackAllowed .T. - XFRX detecta objetos para la posición absoluta (valor predeterminado para la compilación con VFP 9.0) .F. - XFRX no detecta objetos para la posición absoluta

        ProcessReport ()

        Procesa el informe. Sintaxis:

        ProcessReport(, , , ,
        Parámetros: tcReportName el nombre del archivo de informe tcForClause

        la cláusula FOR [opcional]

        tlSummary El interruptor de cláusula de resumen. Si se establece en .T., El informe se procesa como si se utilizar en el comando FORM INFORMAR [opcional]

        tcScopeClause La cadena correspondiente a la cláusula de alcance del informe (como NEXT 4, REST, ALL, RECOR predeterminado es "TODO" [opcional] tcWhileClause La cláusula while [opcional]

        tlPlain interruptor de formato normal. Enviar .T. como este parámetro para cambiar la salida HTML a format simple no genera ningún salto de página en el documento; se generará una página larga. El valor prede



        Notificaciones de banderas Documentación XFRX / ... / Referencia metadata.attachments

        XFRX # DRAW Class martinajindrova Modificado por última vez nov 12, 2017

        Propiedades: PageCount El número total de páginas en el documento XFF ( numérico)

        Sin etiquetas

        Métodos: AddPage () Agrega una nueva página al final del documento. Sintaxis: XFRXDraw::AddPage([tcPageSize])

        O XFRXDraw::AddPage(tnPageWidth, tnPageHeight)

        Parámetros: tcPageSize El tamaño de página de la página nueva. Valores disponibles: "A4", "carta" tnPageWidth, tnPageHeight El ancho y el alto de la nueva página. La unidad se puede definir mediante el método SetUnit (). La unidad por defecto apunta (1/72 en). Si no se especifica el tamaño de página, se utiliza el tamaño de página actual. CreateDocument () Crea un nuevo archivo XFF. Sintaxis: XFRXDraw::CreateDocument([tcFileName])

        Valores devueltos .T. ... el archivo se creó con éxito .F. ... archivo no pudo haber sido creado ()

        Se sobrescribe un archivo existente. Parámetros: tcFileName El nombre del archivo si el documento se creará. Si este parámetro está vacío, el archivo XFF se crea en la memoria. Dibujar linea() Dibuja una línea en la página actual. Sintaxis:

        XFRXDraw::DrawLine(tnXPos, tnYPos, tnXToPos, tnYToPos [, tnLineWidth[, tnPenPattern]])

        Parámetros: tnXPos, tnYPos Las coordenadas X, Y del punto de inicio de la línea. tnXToPos, tnYPPos Las coordenadas X, Y del punto final de la línea. tnLineWidth El ancho de línea en puntos. 0 representa la línea del cabello. Opcional, valor predeterminado = 1. tnPenPattern El patrón de línea del borde: 0 ... sin borde 1 ... con puntos 2 ... con puntos 3 ... con puntos y rayas 4 ... punto con punto y coma 8 ... línea sólida Opcional, valor predeterminado = 8. Dibujar la imagen() Dibuja una imagen en la página actual en un rectángulo delimitador dado. Sintaxis: XFRXDraw::DrawPicture(tnXPos, tnYPos, tnWidth, tnHeight, tcFilename[, tnAdjType [, llCentralHorizontaly[, tnRotate[, tnRotationPoint[, tcLinkName[, tcLinkRef]]]]]])

        Parámetros: tnXPos, tnYPos Las coordenadas X, Y de la esquina superior izquierda del rectángulo delimitador. tnWidth El ancho del rectángulo tnHigh La altura del rectángulo tcFileName El nombre del archivo de imagen tnAdjType

        0 ... imagen de clip 1 ... estira la imagen, conserva la forma 2 ... estira la imagen, llena el cuadro llCentralHorizontaly Center horizontaly en el marco (desde XFRX 15.7). tnRotate El ángulo de rotación del texto en grados. La etiqueta se girará en el sentido contrario a las agujas del reloj. Valor predeterminado opcional = 0 (desde XFRX 15.7). tnRotationPoint

        El punto dentro del rectángulo alrededor del cual se rota el texto. Los valores permitidos son 0..8, opcional, valor predeterminado = 0 (izquierda, arriba). Consulte la imagen de la derecha para las posiciones de los puntos (desde XFRX 15.7). tcLinkName Si se completa este parámetro, el texto será un objetivo designado de un hipervínculo. ( Consulte elparámetro tcLinkRef ) (desde XFRX 15.7). tcLinkRef Si se completa este parámetro, el texto será un hipervínculo. Navegará a un destino con el nombre tcLinkRef (desde XFRX 15.7). DrawGeneralField () Dibuja una imagen en la página actual en un rectángulo delimitador dado. (desde XFRX 16.1) Sintaxis: XFRXDraw::DrawGeneralField(tnXPos, tnYPos, tnWidth, tnHeight, tcFieldName[, tnAdjType [, llCentralHorizontaly[, tnRotate [, tnRotationPoint[, tcLinkName [, tcLinkRef]]]]]])

        Parámetros: tnXPos, tnYPos

        Las coordenadas X, Y de la esquina superior izquierda del rectángulo delimitador. tnWidth El ancho del rectángulo tnHigh La altura del rectángulo tcFieldName El nombre general del campo tnAdjType 0 ... clip Imagen 1 ... estira la imagen, conserva la forma 2 ... estira la imagen, llena el cuadro llCentralHorizontaly Center horizontaly en el marco. tnRotate El ángulo de rotación del texto en grados. La etiqueta se girará en el sentido contrario a las agujas del reloj. Opcional, valor predeterminado = 0. tnRotationPoint

        El punto dentro del rectángulo alrededor del cual se rota el texto. Los valores permitidos son 0..8, opcional, valor predeterminado = 0 (izquierda, arriba). Por favor, mira la imagen a la derecha para las posiciones de los puntos. tcLinkName Si se completa este parámetro, el texto será un objetivo designado de un hipervínculo. (ver parámetro tcLinkRef ). tcLinkRef Si se completa este parámetro, el texto será un hipervínculo. Navegará a un destino con el nombre tcLinkRef . DrawRectangle () Dibuja un rectángulo en la página actual. Sintaxis: XFRXDraw::DrawRectangle(tnXPos, tnYPos, tnWidth, tnHeight [, tnLineWidth

        [, tnFillPattern [, tnPenPattern[, tnRoundFactor [, tnMode [,tnRotate [,tnRotationPoint]]]]]]]])

        Parámetros: tnXPos, tnYPos Las coordenadas X, Y de la esquina superior izquierda. tnWidth El ancho del rectángulo tnHigh La altura del rectángulo tnLineWidth El ancho de línea en puntos. 0 representa la línea del cabello. Opcional, valor predeterminado = 1. tnFillPattern El patrón de relleno: 0 ... Sin relleno 1 ... Relleno (color) 2 ... Línea horizontal 3 ... Línea vertical 4 ... Diagonal ascendente 5 ... Diagonal descendente 6 ... Cruz 7 ... Cruz Diagonal Opcional, valor predeterminado = 0. tnPenPattern El patrón de línea del borde: 0 ... sin borde 1 ... con puntos 2 ... con puntos 3 ... con puntos y rayas 4 ... punto con punto y coma 8 ... línea sólida Opcional, valor predeterminado = 8. tnRoundFactor El radio de la curvatura de los bordes del rectángulo. 0 hace que el rectángulo esté en ángulo recto (sin redondeo), 99 crea una elipse. Opcional, valor predeterminado = 0. tnMode El modo opaque / transparent (desde XFRX 16.0): 0 ... Opaco 1 ... Transparente

        Opcional, valor predeterminado = 0. tnRotate (desde XFRX 17.3) El ángulo de rotación del texto en grados. La etiqueta se girará en el sentido contrario a las agujas del reloj. Opcional, valor predeterminado = 0. tnRotationPoint (desde XFRX 17.3)

        El punto dentro del rectángulo alrededor del cual se rota el texto. Los valores permitidos son 0..8, opcional, valor predeterminado = 0 (izquierda, arriba). Por favor, mira la imagen a la derecha para las posiciones de los puntos. El borde y el color de relleno deben definirse mediante el método SetColor () antes de llamar al método DrawRectangle () . DrawText () Dibuja un texto, usando una fuente definida por el método SetFont . Sintaxis: XFRXDraw::DrawText(tnLeft, tnTop, tcText [, tnRotate[, tcLinkName[, tcLinkRef[, tcBookmark [, tcTooltip[, tnmode[, liCP]]]]]]])

        O XFRXDraw::DrawText(tcText[, tnRotate[, tcLinkName[, tcLinkRef[, tcBookmark[, tcTooltip[, tnmode[, liCP]]]]]]])

        Parámetros: tnLeft, tnTop Las coordenadas donde se dibujará el texto. Si se usa la segunda sintaxis (sin las coordenadas), el texto se dibujará en la posición actual: que es una posición definida por el método SetPos () o un final de una salida si la llamada anterior al método DrawText () .

        tcText El texto a dibujar tnRotate El ángulo de rotación del texto en grados. La etiqueta se girará en el sentido contrario a las agujas del reloj. Opcional, valor predeterminado = 0. tcLinkName Si se completa este parámetro, el texto será un objetivo designado de un hipervínculo. (ver parámetro tcLinkRef ). tcLinkRef Si se completa este parámetro, el texto será un hipervínculo. Navegará a un destino en el documento local con el nombre tcLinkRef . Para navegar a una URL http, incluya "http: //" al comienzo del parámetro. tcBookmark No está vacío, el parámetro contiene el nombre de un marcador que se creará y navegará hasta este texto. tcTooltip La información sobre herramientas que se muestra al pasar el mouse sobre este texto. tnMode Modo opaco / transparente (desde XFRX 15.7). 0 ... "opaco 1 ..." transparente " Página de texto del código de liCP (desde XFRX 15.7) DrawTextBox () Word ajusta el texto de entrega e imprime en un rectángulo delimitador determinado. Si la altura del rectángulo es cero, entonces el rectángulo se estira para ajustarse al texto completo y se devuelve la altura del rectángulo. Sintaxis: XFRXDraw::DrawTextBox(tnLeft, tnTop, tnWidth, tnHeight, tcText[, tnAlign[, tnVAlign [, tnRotate[,tnRotationPoint[, tcLinkName[, tcLinkRef[, tcBookmark [, tcTooltip[, tnmode[, liCP]]]]]]]]]])

        Valor de retorno: se devuelve la altura del rectángulo delimitador. Parámetros:

        tnLeft, tnTop Las coordenadas X e Y de la esquina superior izquierda del rectángulo delimitador. tnWidth, tnHeight El ancho y la altura del rectángulo delimitador. Si tnHeight es 0, el rectángulo se estira para ajustarse al texto completo y se devuelve la altura del rectángulo. tnAlign La alineación horizontal del texto dentro del rectángulo. Los valores permitidos son: 0 ... "izquierda" 1 ... "centro" 2 ... "derecha" 3 ... "bloque" (justificación completa) Opcional, el valor predeterminado es 0 (izquierda). tnVAlign La alineación vertical del texto dentro del rectángulo. Los valores permitidos son: 0 ... "arriba" 1 ... "centro" 2 ... "abajo". Opcional, el valor predeterminado es 0 (arriba). tnRotate El ángulo de rotación del texto en grados. La etiqueta se girará en el sentido contrario a las agujas del reloj. Opcional, valor predeterminado = 0. tnRotationPoint

        El punto dentro del rectángulo alrededor del cual se rota el texto. Los valores permitidos son 0..8, opcional, valor predeterminado = 0 (izquierda, arriba). Por favor, mira la imagen a la derecha para las posiciones de los puntos. tcLinkName Si se completa este parámetro, el texto será un objetivo designado de un hipervínculo. (ver parámetro tcLinkRef ). tcLinkRef Si se completa este parámetro, el texto será un hipervínculo. Navegará a un destino con el nombre tcLinkRef .

        tcBookmark No está vacío, el parámetro contiene el nombre de un marcador que se creará y navegará hasta este texto. tcTooltip La información sobre herramientas que se muestra al pasar el mouse sobre este texto. modo tnMode Opaque / transparent (desde XFRX 15.4). 0 ... "opaco 1 ..." transparente " Página de texto del código de liCP (desde XFRX 15.7)

        GetBoundingRectangle () Devuelve las coordenadas del rectángulo delimitador en el script vinculado a un rectángulo. Sintaxis: XFRXDraw::GetBoundingRectangle()

        Valor de retorno: NULL : el rectángulo delimitador no está disponible Object - un objeto con las siguientes propiedades: nLeft, nTop - las coordenadas de la esquina superior izquierda del rectángulo nWidth, nHeight - el ancho y alto del rectángulo

        La unidad de coordenadas se puede configurar mediante el método SetUnit () . La unidad predeterminada es Point (1/72 in). GetPageWidth () Devuelve el ancho de la página. GetPageHeight () Devuelve la altura de la página. GetXPos () Devuelve la coordenada horizontal de la posición actual. Sintaxis:

        XFRXDraw::GetXPos()

        GetYPos () Devuelve la coordenada vertical de la posición actual. Sintaxis: XFRXDraw::GetYPos()

        OpenDocument () Abre un archivo XFF existente. Sintaxis: XFRXDraw::OpenDocument(tcFileName)

        Valores devueltos .T. ... el archivo se abrió con éxito .F. ... el archivo no se pudo haber abierto (el archivo no existe o está bloqueado)

        Imprimir documento() Imprime el archivo XFF en la impresora especificada. Sintaxis: XFRXDraw::PrintDocument(tcPrinterName, tcJobname, tnFrom [, tnTo [, tcDEVMODE [, tnPagesPerSheet, [ tnAllEvenOdd, [ tnCopies, [tnUnderlineHyperlinksOnPrint, [laFindString, [lcOutput]]]]]]]])

        Valores devueltos -100 ... no se puede inicializar el dispositivo de la impresora -101 ... no se puede inicializar el controlador de la impresora -102 ... no se puede inicializar la estructura DEVMODE 0 ... sin errores

        Parámetros: tcPrinterName Luego, nombre de la impresora a la que se enviará el documento tcJobName

        El nombre del trabajo de la impresora tnDe Si es numérico, la primera página que se imprimirá. tnTo La última página que se imprimirá. tcDEVMODE DEVMODE estructura. tnPagesPerSheet El número de páginas por hoja. tnAllEvenOdd Incluye todas las páginas, impar o par solamente. Los valores permitidos son: 1 ... todas las páginas (valor predeterminado) 2 ... páginas impares 3 ... incluso páginas tn Copias El número de copias. tnUnderlineHyperlinksOnPrint Imprimir hipervínculo ... 0 - No imprimir hipervínculo 1 - Imprimir hipervínculo en color azul 2 - Imprimir hipervínculo en color verde laFindString (XFRX 15.4) Una matriz contiene cadenas para resaltar (color de fondo yelow). lcOutput (XFRX 15.5) Un nombre de archivo de salida para impresoras virtuales como Microsoft XPS Document Writer, PDFCreator.

        Alternativamente, tnFrom puede contener un valor de cadena, que contiene los números de páginas separados por comas y rangos separados por guiones, por ejemplo: “1,2,5-6,8,20-30”

        Guardar foto() El método SavePicture guarda las páginas del informe como una imagen. Sintaxis: XFRXDraw::SavePicture(tcFilename, tcType, tnFrom [, tnTo [, tnBpp [, tnJPEGQuality [,

        tnThumbnailWidth [, tnThumbnailHeight [, tnPagesPerSheet, [ tnAllEvenOdd [, m.tnCopies, [ laFindString, [liBackgroundMode] ]]]]]]]]]),

        Valores devueltos 0 ... no se encontraron errores -1 ... formato de imagen desconocido -2 ... página fuera de rango

        Parámetros: tcFilename El nombre del archivo que se generará. tcType El formato de la imagen que se guardará. Las opciones admitidas actualmente son: BMP, GIF, JPEG (JPG), PNG, TIFF (TIF), EMF. tnDe El número de página que se guardará. Si se guarda el formato TIFF, el parámetro especifica la primera página que se guardará. tnTo Si se guarda el formato TIFF, el parámetro especifica la última página que se guardará. Ignorado de lo contrario. tnBpp Bits por píxel. Los valores admitidos actualmente son 2, 16 o 24. tnJPEGQuality Especifica la calidad de compresión JPEG. El rango es de 1 - la calidad más baja a 100 - la mejor calidad. El valor predeterminado es 0 - calidad predeterminada. Ignorado para otros tipos de salida. tnTumbnailWidth El ancho de la imagen de salida en píxeles. tnThumbnailHeight La altura de la imagen de salida en píxeles. tnPagesPerSheet El número de páginas por hoja. tnAllEvenOdd Incluye todas las páginas, impar o par solamente. Los valores permitidos son: 1 ... todas las páginas (valor predeterminado) 2 ... páginas impares 3 ... incluso páginas

        tn Copias Número de copias. Este parámetro es ignorado. laFindString (XFRX 15.4) Una matriz contiene cadenas para resaltar (color de fondo yelow). liBackGroundMode (XFRX 15.5) Modo de fondo de la imagen de salida para formato TIFF, EMF y PNG

        0 ... Opaco (el color predeterminado es blanco) 1 ... Transparente (utilice 32bppARGB siempre)

        Si se omiten tanto tnThumbnailWidth como tnThumbnailHeight, se utiliza el tamaño de página original. Si solo se envía uno de los valores, el otro se calcula en consecuencia.

        SetColor () Establece los colores de dibujo en primer plano y en segundo plano. Sintaxis: XFRXDraw::SetColor(tfr, tfg, tfb[, tbr, tbg, tbb])

        Parámetros: tfr, tfg, tfb Componentes rojos, verdes y azules del color de primer plano tbr, tbg, tbb Componentes rojos, verdes y azules del color de fondo (opcional)

        SetFont () Establece el nombre y los atributos de la fuente para las siguientes llamadas a DrawText () o DrawTextBox (). Sintaxis: XFRXDraw::SetFont(tcFontName, tnSize[, tlBold[, tlItalic[, tlUnderline[, tlStrikeThrough]]]])

        Parámetros: tcFontName El nombre de la fuente tnSize

        El tamaño de fuente en puntos tlBold, tlItalics, tlUnderline, tlStrikeThrough Los atributos de la fuente. Estos parámetros son opcionales, el valor predeterminado es .F. El parámetro tlStrikeThrough es desde XFRX 15.7

        SetPos () Establece la posición donde el texto será dibujado por la llamada al método DrawText () posterior . Sintaxis: XFRXDraw::SetPos(tnXPos, tnYPos)

        Parámetros: tnXPos, tnYPos Las coordenadas X e Y (horizontal y vertical) de la posición. La unidad de coordenadas se define mediante el método SetUnit () , la unidad predeterminada es Point (pt).

        SetUnit () Establece las unidades de dibujo. Sintaxis: XFRXDraw::SetUnit(tcUnit)

        Parámetros: tcUnit El código de unidad. Los valores permitidos son: "in" - pulgadas, "cm" centímetros, "pt" - puntos y "px" - píxeles. La unidad predeterminada es punto.            

        Propiedades: PageCount Métodos: AddPage () CreateDocument () Dibujar linea() Dibujar la imagen() DrawGeneralField () DrawRectangle () DrawText () DrawTextBox () GetBoundingRectangle ()

                  

        GetPageWidth () GetPageHeight () GetXPos () GetYPos () OpenDocument () Imprimir documento() Guardar foto() SetColor () SetFont () SetPos () SetUnit () 

        Sin etiquetas

        Notificaciones de banderas Documentación XFRX / ... / Referencia metadata.attachments

        Clase XFCont martinajindrova Modificado por última vez mar 11, 2017

        Clase de contenedor de vista previa de XFRX. Esta sección describe las propiedades que puede modificar en su implementación personalizada de la vista previa.

        yo reservo Controla si el marcador debe mostrarse en la vista previa. Los valores permitidos son:    

        -1 = Inhabilitar marcadores 0 = Habilitar marcadores pero ocultarlos (los usuarios deben hacer clic en el botón de marcador para verlos) 1 = Habilitar marcadores, mostrándolos siempre 2 = Habilitar los marcadores, pero mostrarlos u ocultarlos automáticamente en función de si hay marcadores definidos en el informe para previsualizar (predeterminado)

        iTool

        Controla la visibilidad de la barra de herramientas en la parte superior. Los valores permitidos son:  

        -1 = Deshabilitar la barra de herramientas 0 = La barra de herramientas estará habilitada pero oculta. Se puede invocar a través del menú de acceso directo con el botón derecho 1 = La barra de herramientas estará habilitada y visible. (defecto)



        mostrar el estado Controla la visibilidad de la barra de herramientas en la barra de estado del contenedor de vista previa. Los valores permitidos son:  

        .T. = mostrar la barra de herramientas (predeterminado) .F. = esconder la barra de herramientas DisplayMessage () XFCont está utilizando este método para mostrar mensajes a través de WAIT WINDOW. Si desea cambiar esto, puede anular este método en una subclase. Sintaxis: XFCont::DisplayMessage(tcMessage)

        Parámetros: tcMessage El mensaje para mostrar 

        Notificaciones de banderas Documentación XFRX / ... / Referencia metadata.attachments

        Clase de INL de PDFL #

        Sin etiquetas

        martinajindrova Modificado por última vez sep 09, 2017

        Propiedades: PictureDPI Resolución DPI (puntos por pulgada) a la que se vuelven a calcular todas las imágenes. Puede usar esta propiedad para reducir el tamaño del documento de salida. Esta propiedad debe enviarse antes de llamar al método SetParams. Valor predeterminado: 0 (no recalcular, mantener las imágenes como están) DefaultPictureFormat Formato de imagen de los componentes de activeX convertidos en imágenes. Valores permitidos: "bmp", "jpg", "png", "tif", "gif" Valor predeterminado: "jpg" Calidad JPEG Calidad JPEG para convertir a formato JPEG. Valor predeterminado: 80

        Métodos: Documento de control attachToPDFDocument () Adjunte el objeto XFRX # INIT con salida PDF. Sintaxis: PDFL::AttachtoPDFDocument(toSession)

        Parámetros: toSession Instance del objeto XFRX # INIT. EndPage () Cerrar la página actual. Sintaxis:

        XFRX 15.1.0

        PDFL::EndPage()

        CreateDocument () Crea un nuevo archivo XFF. Sintaxis: PDFL::CreateDocument( m.tcName, m.tlAdd, m.tcOwner, m.tcUser)

        Valores devueltos 0 ... el archivo se creó correctamente -1 ... el archivo no pudo haberse creado ()

        Se sobrescribe un archivo existente. Parámetros: tcName El nombre del archivo si el documento se creará. Si este parámetro está vacío, el archivo XFF se crea memoria. tlAñadir si .T. y existe el archivo, la salida se agregará al archivo existente. m.tcOwner La contraseña del propietario. m.tcUser La contraseña de usuario

        FinishDocument () Cerrar página actual. Termina la creación del documento. Sintaxis: PDFL::FinishDocument()

        NewPage() Agrega una nueva página al final del documento. Sintaxis: PDFL::NewPage(tnPageWidth, tnPageHeight)

        Parámetros: tnPageWidth, tnPageHeight

        El ancho y el alto de la nueva página.

        SetOtherParams ()

        Este método se usa para agregar varios parámetros específicos del tipo de salida. El primer parámetro e valor de cadena que representa el parámetro que se establecerá, el segundo parámetro es los valores qu establecerán. Ver para SetOtherParams (...) Sintaxis: PDFL::SetOtherParams(..)

        ShowDocument () Mostrar archivo PDF a través de shell API. Sintaxis: PDFL::ShowDocument()

        Propiedades del documento setVersion () Establecer la versión del archivo PDF. Ver el parámetro PDF VERSIÓN . setEmbeddingType () Establecer incrustación de fuente. Consulte la incrustación de fuentes en PDF .

        setPDFA () Establecer la versión PDF \ A. Ver para PDF / A soporte

        setOutline () Establecer la bandera de marcadores. PDFL::SetOutline(m.tlShow)

        setSubject () Establecer sujeto para el archivo de salida. Ver para setSubject () .

        setKeywords () Establecer palabras clave para el archivo de salida. Ver para setKeywords ().

        setCreator () Establecer creador para el archivo de salida. Ver para establecer el Creador ().

        setProducer () Establecer productor para el archivo de salida. Ver para setProducer ().

        setCreationDate () Establecer la fecha de creaciones para el archivo de salida. Ver para setCreationDate (). setComments () Establecer comentarios para el archivo de salida. Ver para establecer los comentarios ().

        setCategory () Establecer la categoría para el archivo de salida. Ver para establecercategoría ().

        setManager () Establecer el administrador para el archivo de salida. Ver para setManager ().

        setCompany () Establecer compañía para el archivo de salida. Ver para establecer compañía ().

        setAuthor () Establecer autor para el archivo de salida. Ver para establecerAutor ().

        setTitle () Establecer el título para el archivo de salida. Ver para setTitle ()

        setPermissions () Establezca los permisos de usuario en el documento PDF. Ver para establecer Permissions ().

        setPasswords () Establecer contraseña para el archivo de salida. Ver para establecer contraseñas ().

        DigitalSignature() Establecer la firma digital para el archivo de salida. Consulte las características específicas de PDF #Señas digitales en PDF .

        Métodos de dibujo AddBox () Dibuja un rectángulo en la página actual. Sintaxis: PDFL::AddBox(m.x0, m.y0, m.nwidth, m.nheight, m.nsize,

        m.nfill, m.tnpenpat, m.noffset, m.tnMode, m.tnRotate, m.lnRotationPoint

        Parámetros: X0, Y0 Las coordenadas X, Y de la esquina superior izquierda. nWidth El ancho del rectángulo nAlto La altura del rectángulo nSize El ancho de línea en puntos. 0 representa la línea del cabello. Opcional, valor predeterminado = 1. tnRellene el patrón de relleno: 0 ... Sin relleno 1 ... Relleno (color) 2 ... Línea horizontal 3 ... Línea vertical 4 ... Diagonal ascendente 5 ... Diagonal descendente 6 ... Cruz 7 ... Cruz Diagonal Opcional, valor predeterminado = 0. tnPenPat El patrón de línea de borde: 0 ... sin borde 1 ... con puntos 2 ... con puntos 3 ... punto y con puntos 4 ... punto-con-puntos 8 ... línea sólida Opcional, valor predeterminado = 8.

        nOffset El radio de la curvatura de los bordes del rectángulo. 0 hace que el rectángulo esté en ángulo recto (si redondeo), 99 crea una elipse. Opcional, valor predeterminado = 0. tnMode El modo opaque / transparent (desde XFRX 16.0): 0 ... Opaco 1 ... Transparente Opcional, valor predeterminado = 0.

        tnRotate (desde XFRX 17.3) El ángulo de rotación del texto en grados. La etiqueta se girará en el se contrario a las agujas del reloj. Opcional, valor predeterminado = 0. tnRotationPoint (desde XFRX 17.3)

        El punto dentro del rectángulo alrededor del cual se rota el texto. Los valores permitidos son 0..8, opc valor predeterminado = 0 (izquierda, arriba). Por favor, mira la imagen a la derecha para las posiciones los puntos.

        El borde y el color de relleno deben definirse mediante el método SetColor () antes de llamar al método AddBox () . Añadir línea() Dibuja una línea en la página actual. Sintaxis: PDFL::AddLine(m.x0, m.y0, m.x1, m.y1, m.lnWidth [, m.lnPattern[, m.tnRotation]])

        Parámetros: X0, Y0 Las coordenadas X, Y del punto de inicio de la línea. X1, Y1 Las coordenadas X, Y del punto final de la línea. lnWidth El ancho de línea en puntos. 0 representa la línea del cabello. Opcional, valor predeterminado = 1. lPenPattern El patrón de línea de borde: 0 ... sin borde 1 ... con puntos 2 ... con puntos 3 ... punto y con puntos 4 ... punto-con-puntos

        8 ... línea sólida Opcional, valor predeterminado = 8.

        tnRotación Ángulo de rotación. Opcional, valor predeterminado = 0. El color del borde debe definirse mediante el método SetForeColor () antes de llamar al método Add () . AppendLine () Agregue una línea desde la posición actual en la página actual. Sintaxis: PDFL::AppendLine(m.tnx, m.tny)

        Parámetros: tnX, tnY Las coordenadas X, Y del punto final de la línea.

        AppendBezier () Adjunte una línea bezier desde la posición actual en la página actual. Sintaxis: PDFL::AppendBezier(m.tnx, m.tny, m.tnx1, m.tny1, m.tnx2, m.tny2)

        Parámetros: tnX, tnY Las coordenadas X, Y de la esquina superior izquierda del rectángulo delimitador. tnX1, tnY1 Las coordenadas X, Y del punto final de la línea. tnX1, tnY1 A puntos de control de Bézier. Añade una foto() Dibuja una imagen en la página actual en un rectángulo delimitador dado. Sintaxis: PDFL::AddPicture(m.tcPic, m.tnLeft, m.tnTop, m.tnWidth, m.tnHeight, m.tnAdjType, m.tnRotate, m.tnRotationPoint [, m.lcLinkName[, m.lcLinkHref [, m.lcmyk[, m.lneg[, m.tcMask]]]]])

        Parámetros:

        tcPic El nombre del archivo de imagen tnLeft, tnTop Las coordenadas X, Y de la esquina superior izquierda del rectángulo delimitador. tnWidth El ancho del rectángulo tnHigh La altura del rectángulo tnAdjType 0 ... imagen de clip 1 ... estira la imagen, conserva la forma 2 ... estira la imagen, llena el cuadro tnRotate El ángulo de rotación del texto en grados. La etiqueta se girará en el sentido contrario a las agujas del reloj. Opcional, valor predeterminado = 0. tnRotationPoint

        El punto dentro del rectángulo alrededor del cual se rota el texto. Los valores permitidos son 0..8, opc valor predeterminado = 0 (izquierda, arriba). Por favor, mira la imagen a la derecha para las posiciones los puntos. lcLinkName Si se completa este parámetro, el texto será un objetivo designado de un hipervínculo. (ver el parámetro l cLinkRef ). lcLinkRef Si se completa este parámetro, el texto será un hipervínculo. Navegará a un destino con el nombre l cLinkRef . lcmyk .T. o .F. si la imagen de JEG usa CMYK ... lNeg .T. o .F. si la imagen usa colores negativos. tcMask Color de máscara transparente para ver la imagen transparente .

        AddGenPicture () Dibuja un campo general en la página actual en un rectángulo delimitador dado. Sintaxis:

        PDFL::AddGenPicture(m.tcField, m.tnLeft, m.tnTop, m.tnWidth, m.tnHeight,

        [, m.lcLinkName[, m.lcLinkHref [, m.lcmyk[, m.lneg[, m.tcMask]]]]])

        Parámetros: tcField El nombre general del campo tnLeft, tnTop Las coordenadas X, Y de la esquina superior izquierda del rectángulo delimitador. tnWidth El ancho del rectángulo tnHigh La altura del rectángulo tnAdjType 0 ... imagen de clip 1 ... estira la imagen, conserva la forma 2 ... estira la imagen, llena el cuadro tnRotate El ángulo de rotación del texto en grados. La etiqueta se girará en el sentido contrario a las agujas del reloj. Opcional, valor predeterminado = 0. tnRotationPoint

        El punto dentro del rectángulo alrededor del cual se rota el texto. Los valores permitidos son 0..8, opc valor predeterminado = 0 (izquierda, arriba). Por favor, mira la imagen a la derecha para las posiciones los puntos. lcLinkName Si se completa este parámetro, el texto será un objetivo designado de un hipervínculo. (ver el parámetro l cLinkRef ). lcLinkRef Si se completa este parámetro, el texto será un hipervínculo. Navegará a un destino con el nombre l cLinkRef . lcmyk .T. o .F. si la imagen de JEG usa CMYK ... lNeg .T. o .F. si la imagen usa colores negativos. tcMask Color de máscara transparente para ver la imagen transparente .

        nueva línea() Cambiar posición para nueva línea.

        Sintaxis: PDFL::NewLine()

        outText () Poner texto en la posición actual. Sintaxis: PDFL::OutText(m.tcText, m.tnRotation, m.lnRotationPoint, m.llAddBackColor, m.lcLinkName, m.lcLinkHref)

        Parámetros: tc Texto de salida de texto.

        tnRotación El ángulo de rotación del texto en grados. La etiqueta se girará en el sentido contrario a las agujas del reloj. Valor predeterminado opcional = 0.

        lnRotationPoint Punto dentro del rectángulo alrededor del cual se gira el texto. Los valores permitidos son 0..8, opcio valor predeterminado = 0 (izquierda, arriba). Por favor, mira la imagen a la derecha para las posiciones los puntos. llAddBackColor Agrega color de fondo debajo del texto. lcLinkName Si se completa este parámetro, el texto será un objetivo designado de un hipervínculo. (ver el parámetro l cLinkRef ). lcLinkHref Si se completa este parámetro, el texto será un hipervínculo. Navegará a un destino con el nombre l cLinkRef . SetBackColor () Establece los colores del dibujo de fondo. Sintaxis: PDFL::SetColor(tbr, tbg, tbb)

        Parámetros: tbr, tbg, tbb Componentes rojos, verdes y azules del color de fondo (opcional)

        SetColor () Establece los colores de dibujo en primer plano y en segundo plano. Sintaxis: PDFL::SetColor(tfr, tfg, tfb, tbr, tbg, tbb)

        Parámetros: tfr, tfg, tfb Componentes rojos, verdes y azules del color de primer plano tbr, tbg, tbb Componentes rojos, verdes y azules del color de fondo (opcional)

        SetFont ()

        Establece el nombre y los atributos de la fuente para las siguientes llamadas a DrawText () o DrawText (). Sintaxis: PDFL::SetFont(tcFontName, tnSize[, tlBold[, tlItalic[, tlUnderline [, tnEmbed[, lnCodePage ]]]]])

        Parámetros: tcFontName El nombre de la fuente tnSize El tamaño de fuente en puntos tlBold, tlItalics, tlUnderline Los atributos de la fuente. Estos parámetros son opcionales, el valor predeterminado es .F. tnEmbed Insertar fuente 0 - la fuente no se incrustará. 1 - la fuente se incluirá como subconjunto 2 - la fuente se incluirá como todos los caracteres 3 - la fuente se incluirá como subíndice UNICODE en la página Código de página de códigos.

        SetForeColor () Establece los colores de dibujo en primer plano. Sintaxis: PDFL::SetColor(tfr, tfg, tfb)

        Parámetros: tfr, tfg, tfb Componentes rojos, verdes y azules del color de primer plano

        SetPos () Establece la posición donde el texto será dibujado por la llamada al método DrawText () posterior . Sintaxis: PDFL::SetPos(tnXPos, tnYPos)

        Parámetros:

        tnXPos, tnYPos Las coordenadas X e Y (horizontal y vertical) de la posición. La unidad de coordenadas se define me el método SetUnit () , la unidad predeterminada es Point (pt).

                            

        Propiedades: PictureDPI DefaultPictureFormat Calidad JPEG Métodos: Documento de control attachToPDFDocument () EndPage () CreateDocument () FinishDocument () NewPage() SetOtherParams () ShowDocument () Propiedades del documento setVersion () setEmbeddingType () setPDFA () setOutline () setSubject () setKeywords () setCreator ()

                                

        setProducer () setCreationDate () setComments () setCategory () setManager () setCompany () setAuthor () setTitle () setPermissions () setPasswords () DigitalSignature() Métodos de dibujo AddBox () Añadir línea() AppendLine () AppendBezier () Añade una foto() AddGenPicture () nueva línea() outText () SetBackColor () SetColor () SetFont () SetForeColor () SetPos () 

        Notificaciones de banderas Documentación XFRX / ... / Referencia metadata.attachments

        Clase eqZip martinajindrova

        Sin etiquetas

        Modificado por última vez may 10, 2017

        Esta sección describe métodos para crear archivo ZIP.

        Archivo abierto() Abrir archivo de archivo ZIP. Sintaxis: eqZIP::OpenArchive(m.tcZipName, m.tnAppend)

        Parámetros: m.tcZipName El archivo de archivo ZIP.

        m.tnAppen Un indicador de agregar.

        Valores devueltos .T. - Archivar crear / abrir con éxito. .F. - Archivo no crear / abrir con éxito.

        CloseArchive () Cerrar archivo de archivo ZIP. Sintaxis: eqZIP::CloseArchive(m.tcComment)

        Parámetros: m.tcComment Comentario de archivo ZIP.

        OpenNewFile () Abra el manejador de archivo. Sintaxis:

        eqZIP::OpenNewFile(m.tcFileName, m.ttCreated, m.llIWontUTF8, m.lcPassword, m.liCRC32

        Parámetros: m.tcFileName Nombre de archivo en archivo ZIP.

        m.ttCreated Fecha y hora creada.

        m.llIWontUTF8

        Un deseo usa UTF-8 para codificar el nombre del archivo. Para la codificación UTF-8 o la contraseña es needy zlib.dll versión 1.25 o superior . m.lcPassword Contraseña de archivo

        m.liCRC32

        Archivo de suma de comprobación CRC32. es obligatorio para m.lcPassword . Checksum es para todos los dato

        Valores devueltos 0 - Archivo anexado al archivo ZIP. -102 - ZIP_PARAMERROR -103 - ZIP_BADZIPFILE -104 - ZIP_INTERNALERROR AppendFile () Agregue un archivo al archivo ZIP. Sintaxis: eqZIP::AppendFile(m.tcFilename, m.tcNameInArchive, m.llIWontUTF8, m.lcPassword)

        Parámetros: m.tcFileName El nombre del archivo de origen.

        m.tcNameInArchive Nombre de archivo en archivo ZIP.

        m.llIWontUTF8 Un deseo usa UTF-8 para codificar el nombre del archivo. Para la codificación UTF-8 o la contraseña es needy zlib.dll versión 1.25 o superior . m.lcPassword Contraseña de archivo

        Valores devueltos -1 - El archivo fuente no existe -2 - El archivo fuente no puede abrir 0 - Archivo anexar al archivo ZIP -102 - ZIP_PARAMERROR -103 - ZIP_BADZIPFILE -104 - ZIP_INTERNALERROR WriteData () Escribir datos en el manejador de archivo abierto. Sintaxis:

        eqZIP::WriteData(m.tcData)

        Parámetros: m.tcData Datos que se escribirán en el identificador del archivo. Valores de retorno -102 - ZIP_PARAMERROR -103 - ZIP_BADZIPFILE -104 - ZIP_INTERNALERROR Cerrar el archivo() Cierre el identificador del archivo. Sintaxis: eqZIP::CloseFile()

        SYS2007 () Calcule la suma de comprobación CRC32 para los datos. Sintaxis: eqZIP::SYS2007(m.lcData)

        Parámetros: m.lcData Datos que calculan la suma de comprobación CRC32.

              

        Archivo abierto() CloseArchive () OpenNewFile () AppendFile () WriteData () Cerrar el archivo() SYS2007 () 

        Notificaciones de banderas Documentación XFRX / ...

        Sin etiquetas

        / Referencia metadata.attachments

        Clase de LECTOR DE PDF # martinajindrova Modificado por última vez may 10, 2017

        Desde XFRX 17.1

        Propiedades: lReadObjectData Habilitado / deshabilitado los datos del objeto de lectura. Valor de defecto: .F. cCursorName Nombre del cursor para objetos PDF.

        Métodos: openDocument () Abrir archivo PDF Sintaxis: pdfReader::OpenDocument(m.tcFile)

        Parámetros: m.tcFile El archivo PDF.

        Valores devueltos .T. - Archivo PDF abierto con éxito. .F. - El archivo PDF no se abre con éxito.

        ReadDocument () Lea el archivo pdf de contenido. Sintaxis: pdfReader::ReadDocument()

        Valores devueltos 0 - OK -10 - El documento existente está dañado o en un formato no compatible -17 - PDFpassword no es válido. CloseDocument () Cerrar archivo PDF Sintaxis: pdfReader::CloseDocument()

        SetPasswords () Establece contraseñas para la protección de documentos PDF. pdfReader::SetPasswords(m.tcOwner, m.tcUser)

        Parámetros: m.tcOwner La contraseña del propietario m.tcUser La contraseña del usuario. Ejemplo m.pdfReader = EVALUATE([xfrx("PDF#READER")]) m.pdfReader.lReadObjectData=.T. *m.pdfReader.SetPasswords("owner","user") && set password for pdf file lcfile="BASE-UNI.pdf" IF m.pdfReader.openDocument(lcFile) < 0 RETURN

        ENDIF m.pdfReader.ReadDocument() SELE (m.pdfreader.cCursorName) BROWSE NORMAL m.pdfReader.closeDocument()        

        Propiedades: lReadObjectData cCursorName Métodos: openDocument () ReadDocument () CloseDocument () SetPasswords () 

        Notificaciones de banderas Documentación XFRX / ... / Referencia metadata.attachments

        Clase XFRX # XML martinajindrova Modificado por última vez nov 12, 2017

        Propiedades: PageCount El número total de páginas en el documento XFF

        Sin etiquetas

        ( numérico)

        Métodos: AddPage () Agrega una nueva página al final del documento. Sintaxis: XFRXDraw::AddPage([tcPageSize])

        O XFRXDraw::AddPage(tnPageWidth, tnPageHeight)

        Parámetros: tcPageSize El tamaño de página de la página nueva. Valores disponibles: "A4", "carta" tnPageWidth, tnPageHeight El ancho y el alto de la nueva página. La unidad se puede definir mediante el método SetUnit (). La unidad por defecto apunta (1/72 en). Si no se especifica el tamaño de página, se utiliza el tamaño de página actual. CreateDocument () Crea un nuevo archivo XFF. Sintaxis: XFRXDraw::CreateDocument([tcFileName])

        Valores devueltos .T. ... el archivo se creó con éxito .F. ... archivo no pudo haber sido creado ()

        Se sobrescribe un archivo existente. Parámetros: tcFileName El nombre del archivo si el documento se creará. Si este parámetro está vacío, el archivo XFF se crea en la memoria.

        Dibujar linea() Dibuja una línea en la página actual. Sintaxis: XFRXDraw::DrawLine(tnXPos, tnYPos, tnXToPos, tnYToPos [, tnLineWidth[, tnPenPattern]])

        Parámetros: tnXPos, tnYPos Las coordenadas X, Y del punto de inicio de la línea. tnXToPos, tnYPPos Las coordenadas X, Y del punto final de la línea. tnLineWidth El ancho de línea en puntos. 0 representa la línea del cabello. Opcional, valor predeterminado = 1. tnPenPattern El patrón de línea del borde: 0 ... sin borde 1 ... con puntos 2 ... con puntos 3 ... con puntos y rayas 4 ... punto con punto y coma 8 ... línea sólida Opcional, valor predeterminado = 8. Dibujar la imagen() Dibuja una imagen en la página actual en un rectángulo delimitador dado. Sintaxis: XFRXDraw::DrawPicture(tnXPos, tnYPos, tnWidth, tnHeight, tcFilename[, tnAdjType [, llCentralHorizontaly[, tnRotate[, tnRotationPoint[, tcLinkName[, tcLinkRef]]]]]])

        Parámetros: tnXPos, tnYPos Las coordenadas X, Y de la esquina superior izquierda del rectángulo delimitador. tnWidth El ancho del rectángulo tnHigh

        La altura del rectángulo tcFileName El nombre del archivo de imagen tnAdjType 0 ... imagen de clip 1 ... estira la imagen, conserva la forma 2 ... estira la imagen, llena el cuadro llCentralHorizontaly Center horizontaly en el marco (desde XFRX 15.7). tnRotate El ángulo de rotación del texto en grados. La etiqueta se girará en el sentido contrario a las agujas del reloj. Valor predeterminado opcional = 0 (desde XFRX 15.7). tnRotationPoint

        El punto dentro del rectángulo alrededor del cual se rota el texto. Los valores permitidos son 0..8, opcional, valor predeterminado = 0 (izquierda, arriba). Consulte la imagen de la derecha para las posiciones de los puntos (desde XFRX 15.7). tcLinkName Si se completa este parámetro, el texto será un objetivo designado de un hipervínculo. ( Consulte el parámetro tcLinkRef ) (desde XFRX 15.7). tcLinkRef Si se completa este parámetro, el texto será un hipervínculo. Navegará a un destino con el nombre tcLinkRef (desde XFRX 15.7). DrawGeneralField () Dibuja una imagen en la página actual en un rectángulo delimitador dado. (desde XFRX 16.1) Sintaxis: XFRXDraw::DrawGeneralField(tnXPos, tnYPos, tnWidth, tnHeight, tcFieldName[, tnAdjType [, llCentralHorizontaly[, tnRotate [, tnRotationPoint[, tcLinkName [, tcLinkRef]]]]]])

        Parámetros: tnXPos, tnYPos Las coordenadas X, Y de la esquina superior izquierda del rectángulo delimitador. tnWidth El ancho del rectángulo tnHigh La altura del rectángulo tcFieldName El nombre general del campo tnAdjType 0 ... clip Imagen 1 ... estira la imagen, conserva la forma 2 ... estira la imagen, llena el cuadro llCentralHorizontaly Center horizontaly en el marco. tnRotate El ángulo de rotación del texto en grados. La etiqueta se girará en el sentido contrario a las agujas del reloj. Opcional, valor predeterminado = 0. tnRotationPoint

        El punto dentro del rectángulo alrededor del cual se rota el texto. Los valores permitidos son 0..8, opcional, valor predeterminado = 0 (izquierda, arriba). Por favor, mira la imagen a la derecha para las posiciones de los puntos. tcLinkName Si se completa este parámetro, el texto será un objetivo designado de un hipervínculo. (ver parámetro tcLinkRef ). tcLinkRef Si se completa este parámetro, el texto será un hipervínculo. Navegará a un destino con el nombre tcLinkRef . DrawRectangle () Dibuja un rectángulo en la página actual. Sintaxis:

        XFRXDraw::DrawRectangle(tnXPos, tnYPos, tnWidth, tnHeight [, tnLineWidth [, tnFillPattern [, tnPenPattern[, tnRoundFactor [, tnMode [,tnRotate [,tnRotationPoint]]]]]]]])

        Parámetros: tnXPos, tnYPos Las coordenadas X, Y de la esquina superior izquierda. tnWidth El ancho del rectángulo tnHigh La altura del rectángulo tnLineWidth El ancho de línea en puntos. 0 representa la línea del cabello. Opcional, valor predeterminado = 1. tnFillPattern El patrón de relleno: 0 ... Sin relleno 1 ... Relleno (color) 2 ... Línea horizontal 3 ... Línea vertical 4 ... Diagonal ascendente 5 ... Diagonal descendente 6 ... Cruz 7 ... Cruz Diagonal Opcional, valor predeterminado = 0. tnPenPattern El patrón de línea del borde: 0 ... sin borde 1 ... con puntos 2 ... con puntos 3 ... con puntos y rayas 4 ... punto con punto y coma 8 ... línea sólida Opcional, valor predeterminado = 8. tnRoundFactor El radio de la curvatura de los bordes del rectángulo. 0 hace que el rectángulo esté en ángulo recto (sin redondeo), 99 crea una elipse. Opcional, valor predeterminado = 0. tnMode

        El modo opaque / transparent (desde XFRX 16.0): 0 ... Opaco 1 ... Transparente Opcional, valor predeterminado = 0. tnRotate (desde XFRX 17.3) El ángulo de rotación del texto en grados. La etiqueta se girará en el sentido contrario a las agujas del reloj. Opcional, valor predeterminado = 0. tnRotationPoint (desde XFRX 17.3)

        El punto dentro del rectángulo alrededor del cual se rota el texto. Los valores permitidos son 0..8, opcional, valor predeterminado = 0 (izquierda, arriba). Por favor, mira la imagen a la derecha para las posiciones de los puntos. El borde y el color de relleno deben definirse mediante el método SetColor () antes de llamar al método DrawRectangle () . DrawText () Dibuja un texto, usando una fuente definida por el método SetFont . Sintaxis: XFRXDraw::DrawText(tnLeft, tnTop, tcText [, tnRotate[, tcLinkName[, tcLinkRef[, tcBookmark [, tcTooltip[, tnmode[, liCP]]]]]]])

        O XFRXDraw::DrawText(tcText[, tnRotate[, tcLinkName[, tcLinkRef[, tcBookmark[, tcTooltip[, tnmode[, liCP]]]]]]])

        Parámetros: tnLeft, tnTop Las coordenadas donde se dibujará el texto. Si se usa la segunda sintaxis (sin las coordenadas), el texto se dibujará en la posición actual: que es una posición definida por

        el método SetPos () o un final de una salida si la llamada anterior al método DrawText () . tcText El texto a dibujar tnRotate El ángulo de rotación del texto en grados. La etiqueta se girará en el sentido contrario a las agujas del reloj. Opcional, valor predeterminado = 0. tcLinkName Si se completa este parámetro, el texto será un objetivo designado de un hipervínculo. (ver parámetro tcLinkRef ). tcLinkRef Si se completa este parámetro, el texto será un hipervínculo. Navegará a un destino en el documento local con el nombre tcLinkRef . Para navegar a una URL http, incluya "http: //" al comienzo del parámetro. tcBookmark No está vacío, el parámetro contiene el nombre de un marcador que se creará y navegará hasta este texto. tcTooltip La información sobre herramientas que se muestra al pasar el mouse sobre este texto. tnMode Modo opaco / transparente (desde XFRX 15.7). 0 ... "opaco 1 ..." transparente " Página de texto del código de liCP (desde XFRX 15.7) DrawTextBox () Word ajusta el texto de entrega e imprime en un rectángulo delimitador determinado. Si la altura del rectángulo es cero, entonces el rectángulo se estira para ajustarse al texto completo y se devuelve la altura del rectángulo. Sintaxis: XFRXDraw::DrawTextBox(tnLeft, tnTop, tnWidth, tnHeight, tcText[, tnAlign[, tnVAlign [, tnRotate[,tnRotationPoint[, tcLinkName[, tcLinkRef[, tcBookmark [, tcTooltip[, tnmode[, liCP]]]]]]]]]])

        Valor de retorno: se devuelve la altura del rectángulo delimitador. Parámetros:

        tnLeft, tnTop Las coordenadas X e Y de la esquina superior izquierda del rectángulo delimitador. tnWidth, tnHeight El ancho y la altura del rectángulo delimitador. Si tnHeight es 0, el rectángulo se estira para ajustarse al texto completo y se devuelve la altura del rectángulo. tnAlign La alineación horizontal del texto dentro del rectángulo. Los valores permitidos son: 0 ... "izquierda" 1 ... "centro" 2 ... "derecha" 3 ... "bloque" (justificación completa) Opcional, el valor predeterminado es 0 (izquierda). tnVAlign La alineación vertical del texto dentro del rectángulo. Los valores permitidos son: 0 ... "arriba" 1 ... "centro" 2 ... "abajo". Opcional, el valor predeterminado es 0 (arriba). tnRotate El ángulo de rotación del texto en grados. La etiqueta se girará en el sentido contrario a las agujas del reloj. Opcional, valor predeterminado = 0. tnRotationPoint

        El punto dentro del rectángulo alrededor del cual se rota el texto. Los valores permitidos son 0..8, opcional, valor predeterminado = 0 (izquierda, arriba). Por favor, mira la imagen a la derecha para las posiciones de los puntos. tcLinkName Si se completa este parámetro, el texto será un objetivo designado de un hipervínculo. (ver parámetro tcLinkRef ). tcLinkRef Si se completa este parámetro, el texto será un hipervínculo. Navegará a un destino con el nombre tcLinkRef . tcBookmark No está vacío, el parámetro contiene el nombre de un marcador que se creará y navegará

        hasta este texto. tcTooltip La información sobre herramientas que se muestra al pasar el mouse sobre este texto. modo tnMode Opaque / transparent (desde XFRX 15.4). 0 ... "opaco 1 ..." transparente " Página de texto del código de liCP (desde XFRX 15.7)

        GetBoundingRectangle () Devuelve las coordenadas del rectángulo delimitador en el script vinculado a un rectángulo. Sintaxis: XFRXDraw::GetBoundingRectangle()

        Valor de retorno: NULL : el rectángulo delimitador no está disponible Object - un objeto con las siguientes propiedades: nLeft, nTop - las coordenadas de la esquina superior izquierda del rectángulo nWidth, nHeight - el ancho y alto del rectángulo

        La unidad de coordenadas se puede configurar mediante el método SetUnit () . La unidad predeterminada es Point (1/72 in). GetPageWidth () Devuelve el ancho de la página. GetPageHeight () Devuelve la altura de la página.

        GetXPos () Devuelve la coordenada horizontal de la posición actual. Sintaxis: XFRXDraw::GetXPos()

        GetYPos () Devuelve la coordenada vertical de la posición actual. Sintaxis: XFRXDraw::GetYPos()

        OpenDocument () Abre un archivo XFF existente. Sintaxis: XFRXDraw::OpenDocument(tcFileName)

        Valores devueltos .T. ... el archivo se abrió con éxito .F. ... el archivo no se pudo haber abierto (el archivo no existe o está bloqueado)

        SetColor () Establece los colores de dibujo en primer plano y en segundo plano. Sintaxis: XFRXDraw::SetColor(tfr, tfg, tfb[, tbr, tbg, tbb])

        Parámetros: tfr, tfg, tfb Componentes rojos, verdes y azules del color de primer plano tbr, tbg, tbb Componentes rojos, verdes y azules del color de fondo (opcional)

        SetFont () Establece el nombre y los atributos de la fuente para las siguientes llamadas a DrawText () o DrawTextBox (). Sintaxis: XFRXDraw::SetFont(tcFontName, tnSize[, tlBold[, tlItalic[, tlUnderline[, tlStrikeThrough]]]])

        Parámetros: tcFontName

        El nombre de la fuente tnSize El tamaño de fuente en puntos tlBold, tlItalics, tlUnderline, tlStrikeThrough Los atributos de la fuente. Estos parámetros son opcionales, el valor predeterminado es .F. El parámetro tlStrikeThrough es desde XFRX 15.7

        SetPos () Establece la posición donde el texto será dibujado por la llamada al método DrawText ()posterior . Sintaxis: XFRXDraw::SetPos(tnXPos, tnYPos)

        Parámetros: tnXPos, tnYPos Las coordenadas X e Y (horizontal y vertical) de la posición. La unidad de coordenadas se define mediante el método SetUnit () , la unidad predeterminada es Point (pt).

        SetUnit () Establece las unidades de dibujo. Sintaxis: XFRXDraw::SetUnit(tcUnit)

        Parámetros: tcUnit El código de unidad. Los valores permitidos son: "in" - pulgadas, "cm" - centímetros, "pt" puntos y "px" - píxeles. La unidad predeterminada es punto.          

        Propiedades: PageCount Métodos: AddPage () CreateDocument () Dibujar linea() Dibujar la imagen() DrawGeneralField () DrawRectangle () DrawText ()

                  

        DrawTextBox () GetBoundingRectangle () GetPageWidth () GetPageHeight () GetXPos () GetYPos () OpenDocument () SetColor () SetFont () SetPos () SetUnit () 

        Notificaciones de banderas Documentación XFRX / Páginas / Guía del desarrollador

        Lista de compatibilidad DLL / FLL martinajindrova Modificado por última vez mar 01, 2018

        XFRX

        XFRXLIB.fll

        HNDLIB.dll

        18.0

        134

        128

        17.3.1

        134

        128

        17.3

        134

        128

        darse cuenta xfrxlib.fll - _xfTrim () - error de escala DPI fijo

        xfrxlib.fll - _xfbmp () - error BPP corregido - _xf_convertImage () - imagen nueva respecto a bpp de la imagen original - nueva función _xfGetLTI ()

        Sin etiquetas

        XFRX

        XFRXLIB.fll

        HNDLIB.dll

        darse cuenta hndlib.dll - nueva función zipFile () - nuevos parámetros en dobmp ()

        17.2.1

        133

        127

        17.2

        133

        127

        17.1

        133

        127

        xfrxlib.fll - _xfbmp () - soporte rotar para rectángulos, mejores rectángulos pinturas

        xfrxlib.fll - _xfTrim - error reparado _xfCropImage - nueva función hndlib.dll - error reparado con caracteres chinos - error pequeño reparado en HEXFile ()

        17.0

        132

        127

        hndlib.dll - (pdf) Añadir soporte para BMP 16bpp RGB555 / RGB565 / RGB, BMP 2bpp, BMP 4bppRLE, BMP 8bppRLE, BMP OS / 2, BMP con formato JPEG / PNG -_ww () - palabra que falta para la alineación a la derecha xfrxlib.fll - _xfbmp () - mejor soporte para el rectángulo con curvas -_xfWordWrap () palabra faltante para la alineación correcta, error Cx00000005. -_xfWMF2Image -

        XFRX

        XFRXLIB.fll

        HNDLIB.dll

        darse cuenta nueva función

        16.1.X

        132

        126

        hndlib.dll - nuevas funciones MDString (), MD5File ()

        16.0

        132

        125

        xfrxlib.fll - _xfConvertImage () Solución de error con GIF87a - _xfGetDPIScale () Solución de error con DPI - _xfBmp2 () compatible con las propiedades del documento

        15.7

        131

        125

        hndlib.dll - error reparado con alguna fuente de Symbol error reparado para fuentes monoespaciado con ancho de caracteres (como Courier New) - error reparado para caracteres inexistentes en la fuente

        15.6

        131

        124

        15.5

        131

        124

        15.4

        131

        124

        xfrxlibfll - corrigió errores en _xfBmp2 () para la fuente PostScript xfrxlibfll - error reparado en _xfImageGetDPI () - error reparado

        XFRX

        XFRXLIB.fll

        HNDLIB.dll

        darse cuenta en _xfBmp2 () - nueva función agregada _xfAddProperty () - changed _xfSaveImage ()

        15.3

        130

        124

        xfrxlib.fll: admite la fuente PostScript hndlib.dll - compatible con cadenas UTF-8

        15.2

        130

        124

        15.1.1

        130

        124

        xfrxlib.fll - nueva función _xfImageGetDPI

        15.1

        130

        124

        xfrxlib.fll - soluciona algunos errores al guardar en la imagen hndlib.dll - corrige algunos errores para la salida PDF

        15.0

        129

        123

        xfrxlib.fll - soporte dúplex hndlib.dll - corrigió algunos errores

        14.7

        129

        123

        14.6

        129

        123

        14.5

        129

        123

        14.4

        129

        123

        14.3

        129

        123

        14.2

        129

        123

        14.0

        129

        123

        12.9

        129

        123

        12.8

        127

        123

        xfrxlib.fll - nueva función _xf_ImageBpp



        XFRX

        XFRXLIB.fll

        HNDLIB.dll

        12.7

        127

        123

        12.6

        124

        123

        12.5

        124

        123

        12.4

        124

        123

        12.3

        123

        123

        12.2

        122

        120

        12.1

        122

        120

        12.0

        121

        120

        11.3

        113

        113

        11.2

        111

        98

        11.1

        111

        98

        11.0

        102

        98

        10.2

        102

        98

        10.1

        _

        98

        10.0

        _

        98

        9.8

        _

        98

        9.7

        _

        96

        9.6

        _

        96

        9.5

        _

        95

        9.0

        _

        95

        8.3

        _

        81

        darse cuenta

        dll / fllcomplist

        Notificaciones de banderas Documentación XFRX / Páginas /

        Guía del desarrollador

        Utiliza API de DLL externo martinajindrova Modificado por última vez feb 14, 2018

        WIN32API DECLARE INTEGER GetClassName EN win32api AS XFRX_GetClassName entero, cadena @, INTEGER DECLARE INTEGER FindWindow EN WIN32API AS XFRX_FindWindow CADENA cnull, CADENA cwinname DECLARE INTEGER GetCurrentProcessId EN WIN32API AS XFRX_GetCurrentProcessId DECLARE INTEGER GetActiveWindow EN win32api AS XFRX_GetActiveWindow DECLARE INTEGER GetDC EN WIN32API AS XFRX_GetDC INTEGER iHWND DECLARE INTEGER ReleaseDC EN WIN32API COMO XFRX_ReleaseDC INTEGER ihwnd, INTEGER iHDC DECLARE INTEGER GetDeviceCaps EN WIN32API COMO XFRX_GetDeviceCaps INTEGER iHDC, INTEGER iIndex DECLARE ScreenToClient EN WIN32API COMO XFRX_ScreenToClient INTEGER hWnd, STRING @ lpPoint DECLARE INTEGER GetSystemMetrics EN WIN32API COMO XFRX_GetSystemMetrics INTEGER kernel32.dll DECLARE INTEGER GetLocaleInfo IN kernel32.dll AS XFRX_GetLocaleInfo INTEGER, INTEGER, STRING @, INTEGER DECLARE INTEGER GetEnvironmentVariable IN kernel32.dll AS XFRX_GetEnvironmentVariable STRING lpName, STRING @ lpBuffer, INTEGER nSize DECLARE INTEGER CloseHandle IN kernel32 AS XFRX_CloseHandle INTEGER lhProcess DECLARE INTEGER WideCharToMultiByte IN kernel32. dll AS XFRX_WideCharToMultiByte INTEGER, INTEGER, STRING @, INTEGER, STRING @, INTEGER, STRING @, STRING @ DECLARE INTEGER MultiByteToWideChar IN kernel32.dll AS XFRX_MultiByteToWideChar INTEGER, INTEGER, STRING @, INTEGER, STRING @, INTEGER DECLARE INTEGER GetTimeZoneInformation EN kernel32. dll AS XFRX_GetTimeZoneInformation STRING @ DECLARE INTEGER OpenProcess EN kernel32 AS XFRX_OpenProcess INTEGER dwDesiredAccessas, INTEGER bInheritHandle, INTEGER dwProcId DECLARE INTEGER SetFileTime EN kernel32 AS XFRX_SetFileTime entero, cadena @, CADENA @, CADENA @ DECLARE INTEGER SystemTimeToFileTime EN kernel32 AS

        WIN32API XFRX_SystemTimeToFileTime CADENA @ LPSYSTEMTIME, CADENA @ lpFileTime DECLARE INTEGER CreateFile EN kernel32.dll AS XFRX_CreateFile STRING @, INTEGER, INTEGER, INTEGER, INTEGER, INTEGER, INTEGER DECLARE INTEGER CloseHandle IN kernel32.dll AS XFRX_CloseHandle INTEGER DECLARE INTEGER TzSpecificLocalTimeToSystemTime EN KERNEL32.dll AS XFRX_TzSpecificLocalTimeToSystemTime STRING @lpTimeZone, STRING @lpLocalTime, STRING @lpUniversalTime DECLARE INTEGER LocalFileTimeToFileTime IN kernel32 AS XFRX_LocalFileTimeToFileTime STRING @ lpLocalTime, STRING @ lpFileTime DECLARE INTEGER SetProcessWorkingSetSize IN kernel32 AS XFRX_SetProcessWorkingSetSize INTEGER hProcess, INTEGER dwMinimumWorkingSetSize, INTEGER dwMaximumWorkingSetSize zlib.dll DECLARE INTEGER compress2 IN zlib AS XFRX_cxx STRING @, STRING @, STRING @, INTEGER liSOURCELEN, INTEGER liLEVEL DECLARE INTEGER compress IN zlib.dll AS XFRX_compresione STRING @, INTEGER @, STRING @, INTEGER DECLARE INTEGER descomprima IN ZLIB.DLL AS XFRX_uncompress STRING @, INTEGER @, STRING @, INTEGER gdi32.dll DECLARE INTEGER TranslateCharsetInfo IN gdi32 AS XFRX_TranslateCharsetInfo INTEGER, STRING @, INTEGER DECLARE LONG CreateDC IN gdi32 AS XFRX_CreateDC STRING lpszDriver, STRING lpszDevice, LONG lpszOutput, LONG lpInitData DECLARE LONG DeleteDC IN gdi32 AS XFRX_DeleteDC LARGO hDC DECLARE LONG DeleteEnhMetaFile EN gdi32.dll AS XFRX_DeleteEnhMetaFile INTEGER DECLARE LONG SetWinMetaFileBits EN gdi32.dll AS XFRX_SetWinMetaFileBits INTEGER, STRING @, INTEGER, STRING @ DECLARE LONG CopyEnhMetaFile EN gdi32.dll AS XFRX_CopyEnhMetaFile INTEGER, STRING @ OLE32.DLL DECLARE INTEGER CLSIDFromString IN ole32 AS XFRX_CLSIDFromString STRING, STRING @ DECLARE INTEGER CoCreateGuid EN OLE32.DLL COMO XFRX_CoCreateGuid STRING @lcBuffer DECLARE INTEGER StringFromGUID2 IN Ole32.dll AS XFRX_StringFromGUID2 STRING cGUIDStruc, STRING @cGUID, LONG nSize psapi

        WIN32API DECLARE INTEGER GetModuleFileNameEx IN psapi AS XFRX_GetModuleFileNameEx INTEGER hProcess, INTEGER hModule, STRING ModuleName, INTEGER nSize DECLARE INTEGER EnumProcessModules IN psapi AS XFRX_EnumProcessModules INTEGER hProcess, STRING @lphModule, INTEGER cb, INTEGER @lpcbNeeded shell32.Dll DECLARE INTEGER ShellExecute IN shell32.Dll AS XFRX_ShellExecute INTEGER nWinHandle, STRING cOperation, STRING cFilename, STRING cParameters, STRING cDirectory, INTEGER nShowWindow ADVAPI32.DLL DECLARE INTEGER RegQueryValueEx EN ADVAPI32.DLL AS XFRX_RegQueryValueEx INTEGER, STRING @, INTEGER, INTEGER @, STRING @, INTEGER @ DECLARE INTEGER RegOpenKeyEx EN ADVAPI32.DLL AS XFRX_RegOpenKeyEx INTEGER, STRING @, INTEGER, INTEGER, INTEGER @ nKeyHandle DECLARE INTEGER RegCloseKey EN ADVAPI32 .DLL COMO XFRX_RegCloseKey INTEGER winspool.drv DECLARE LONG DeviceCapabilities IN winspool.drv AS XFRX_DeviceCapabilities STRING @pDevice, STRING @pPort, LONG fwCapability, STRING @pOutput, STRING @pDevMode 

        Notificaciones de banderas Documentación XFRX / Páginas / Guía del desarrollador

        Licencia XFRX Usuario desconocido (mst) Modificado por última vez may 11, 2014 por Martin Haluza

        Sin etiquetas

        Renuncia: El software y la información provista por Eqeus.com se proporcionan "tal cual", sin garantía alguna. Usted utiliza el software bajo su propio riesgo. Eqeus.com renuncia a todas las garantías y condiciones, ya sean expresas o implícitas, incluidas, entre otras, las garantías de comerciabilidad e idoneidad para un fin determinado. En ningún caso Eqeus.com será responsable de ningún daño, incluidos, entre otros, daños directos, indirectos, especiales, incidentales o consecuentes de ningún tipo, incluso si Eqeus.com ha sido advertido de la posibilidad de dichos daños. Usted acepta no obtener o usar el software en ningún estado o país que no permita la exclusión o limitación de responsabilidad por daños incidentales o consecuentes. La licencia de software permite distribuir XFRX y / o PDF Library con aplicaciones de software a los usuarios finales para proporcionar una opción para transferir informes a los formatos de salida de destino compatibles con XFRX. La compra de la licencia le da derecho a recibir todas las versiones nuevas de XFRX y / o la Biblioteca PDF de forma gratuita durante un año a partir de la fecha de compra. El permiso está sujeto a las siguientes restricciones: 1. Los códigos fuente de la biblioteca XFRX y PDF NO se deben distribuir. 2. XFRX y PDF Library o cualquier parte del mismo NO debe distribuirse como herramienta de software o como parte de una herramienta de software proporcionada a desarrolladores de aplicaciones para ser incorporada en sus productos, incluidos, entre otros, marcos de software y herramientas de generación de informes. 

        Sin etiquetas

        Notificaciones de banderas Documentación XFRX / Páginas / Guía del desarrollador

        Tao de XFRX martinajindrova Modificado por última vez jul 25, 2015

         

        Cómo exportar datos a XLSX con filas máximas - 65535 para MS Excel 2003 Cómo establecer un nombre de hoja personalizado para XLS, XLSPLAIN, ODS, FODS, PFODS, NATIVE_FDOCX y NATIVE_PFDOCX

           

        Cómo configurar el área de impresión, ajustar al ancho en la configuración de página y el índice de tamaño de papel para NATIVE_FXLSX y NATIVE_PFXLSX Cómo exportar texto como imagen a PDF o cambia otro atributo de fuente Cómo agregar estilo personalizado en el documento MS Word 2007 XFRX # INIT e imágenes / documentos en el campo General



        Sin etiquetas

        Notificaciones de banderas Documentación XFRX / ... / Tao de XFRX

        Cómo exportar datos a XLSX con filas máximas - 65535 para MS Excel 2003 martinajindrova Modificado por última vez ago 15, 2015

        Los parámetros del método CopyToXLSX () son los mismos en Exportación de datos a XLSX y ODS . SET PROCEDURE TO xfrx.fxp m.loXLSX=CREATEOBJECT("_TOXLSX") m.loXLSX.nMaxRow=65535 && 1048576, 65535 liErr=m.loXLSX.CopyToXLSX(m.lcAlias, m.lcFile, m.lcFCCallBack, m.lcSheetName, ;


        Notificaciones de banderas Documentación XFRX / ...

        Sin etiquetas

        / Tao de XFRX

        Cómo establecer un nombre de hoja personalizado para XLS, XLSPLAIN, ODS, FODS, PFODS, NATIVE_FDOCX y NATIVE_PFDOCX martinajindrova Modificado por última vez ago 15, 2015

        XFRX # INIT y salida directa loSession=EVALUATE([xfrx("XFRX#INIT")]) && if each report has only one page, you can suppress page number in sheet name


        loSession.setOtherParams("ADDPAGENUMBERTOSHEETDISPLAYNAME",.F.) && since XFRX 15.6< loSession.setOtherParams("NEXT_SHEET_NAME","First Report") loSession.ProcessReport(lcPath+"_reports\basetext") loSession.setOtherParams("NEXT_SHEET_NAME","Second Report") loSession.ProcessReport(lcPath+"_reports\baseshapes")...

        XFRX # INIT, salida directa a XFF y transformación a XFRX # LISTENER ... XFRX # INIT loXFF=EVALUATE([xfrx("XFRX#DRAW")]) loXFF.OpenDocument("out.xff") loSession=EVALUATE([xfrx("XFRX#INIT")])

        loSession.setOtherParams("ADDPAGENUMBERTOSHEETDISPLAYNAME",.F.) && since XFRX 15.6

        loHACK=CREATEOBJECT("_XFRXHACK",loSession) loSession.TransformReport(loXFF) RELE loHACK

        XFRX # LISTENER loSession=EVALUATE([XFRX("XFRX#LISTENER")]) lnRetVal = loSession.SetParams("temp.xls",,,,,,"XLS") IF lnRetVal = 0 loSession.setOtherParams("ADDPAGENUMBERTOSHEETDISPLAYNAME",.F.) loHACK=CREATEOBJECT("_XFRXHACK",loSession) REPORT FORM (lcPath+"_reports\firstreport") NOPAGEEJECT object loSession

        REPORT FORM (lcPath+"_reports\secondreport") NOPAGEEJECT NORESET object loSession
        REPORT FORM (lcPath+"_reports\thirdreport") NOPAGEEJECT NORESET object loSession REPORT FORM (lcPath+"_reports\fourthreport") NORESET object loSession RELE loHACK ENDIF

        Clase HACK DEFINE CLASS _XFRXHACK AS CUSTOM oEWriter=.NULL. oEDoc=.NULL. nPageno=0 nReportno=0 cTarget="" nVersion=0 lXLS=.F. PROCEDURE GetReportName(m.tnReportNo)

        RETURN IIF(This.nReportNo=1,"First Report",IIF(This.nReportNo=2,"Second Report",;
        ENDPROC ROCEDURE Init(m.loSession)

        m.loSession=IIF(TYPE("m.loSession.oxfSession")="O",m.loSession.oxfSession,m.loSessi This.nVersion=VAL(CHRTRAN(m.loSession.GetVersion(),;

        CHRTRAN(m.loSession.GetVersion(),"0123456789",""),"")) This.lXLS=This.cTarget=="XLS" OR This.cTarget=="XLSPLAIN" =BINDEVENT(m.loSession.oDocumentWriter,"NewPage",This,"NewPage",0) =BINDEVENT(m.loSession.oDocumentWriter,"NewReport",; This,"NewReport",; IIF(This.cTarget=="XLS" OR This.cTarget=="XLSPLAIN",0,1)) This.oEWriter=m.loSession.oDocumentWriter This.oEDoc=m.loSession.oDocument ENDPROC PROCEDURE newReport(m.tnReportNo, m.tcCodePage, m.toReport) This.nPageno=0 This.nReportno=m.tnReportNo IF This.lXLS This.oEWriter.cNextSheetName=This.GetReportName(This.nReportNo) ELSE This.oEDoc.cNextSheetName=This.GetReportName(This.nReportNo) IF This.nVersion<1560000 IF TYPE("This.oEWriter.oOXML")="O" This.oEWriter.oOXML.lAddPageNumberToSheetDisplyName=.F.

        ELSE IF TYPE("This.oEWriter.oOO")="O" This.oEWriter.oOO.lAddPageNumberToSheetDisplyName=.F. ENDIF ENDIF ENDIF ENDIF ENDPROC PROCEDURE newPage(m.tnHeight, m.tnWidth, m.tnPageNo, m.tnOri) This.nPageno=This.nPageno+1 IF This.lXLS This.oEWriter.cNextSheetName=This.GetReportName(This.nReportNo)+ ;

        IIF(This.nPageno=1,""," "+LTRIM(STR(This.nPageno)) ELSE This.oEDoc.cNextSheetName=This.GetReportName(This.nReportNo)+ ;

        IIF(This.nPageno=1,""," "+LTRIM(STR(This.nPageno)))< ENDIF ENDPROC ENDDEFINE

        Usar NEXT_SHEET_NAME_EXPR Soporte completo para XLS / XLSPLAIN y XFRX # INIT + TranformReport () o XFRX # LISTENER desde XFRX 15.6 loSession=EVALUATE([XFRX("XFRX#LISTENER")])

        lnRetVal = loSession.SetParams(laOuts(lii,2),,NOT llOpen,"1250",,,laOuts(lii,3)) loSession.setOtherParams("NEXT_SHEET_NAME_EXPR","_HACKSHEETNAME(this)")

        REPORT FORM (lcPath+"_reports\firstreport") NOPAGEEJECT object loSession

        REPORT FORM (lcPath+"_reports\secondreport") NOPAGEEJECT NORESET object loSession
        REPORT FORM (lcPath+"_reports\thirdreport") NOPAGEEJECT NORESET object loSession ENDIF PROCEDURE _HACKSHEETNAME(m.loReport) RETURN IIF(m.loReport.tnReportNumber=1,"First Report",; IIF(m.loReport.tnReportNumber=2,"Second Report",;

        IIF(m.loReport.tnReportNumber=3,"Third Report","Fourth Report")))+;
        LTRIM(STR(m.loReport.nCurrentReportPageNo))) ENDPROC

             

        XFRX # INIT y salida directa XFRX # INIT, salida directa a XFF y transformación a XFRX # LISTENER ... XFRX # INIT XFRX # LISTENER Clase HACK Usar NEXT_SHEET_NAME_EXPR 

        Notificaciones de banderas Documentación XFRX / ... / Tao de XFRX

        Sin etiquetas

        Cómo configurar el área de impresión, ajustar al ancho en la configuración de página y el índice de tamaño de papel para NATIVE_FXLSX y NATIVE_PFXLSX martinajindrova Modificado por última vez ago 15, 2015

        (para XFRX temprano 15.6)

        XFRX # INIT y salida directa m.loSession=EVALUATE([xfrx("XFRX#INIT")]) m.lnRetVal = m.loSession.SetParams("test.xlsx",,,,,,"NATIVE_FXLSX") IF m.lnRetVal=0 m.loHACK=CREATEOBJECT("_XFRXHACK",m.loSession) m.loSession.ProcessReport("_reports\basetext") m.loSession.Finalize() RELE m.loHACK END IF

        XFRX # INIT, salida directa a XFF y transformación a m.loXFF=EVALUATE([xfrx("XFRX#DRAW")]) m.loXFF.OpenDocument("out.xff") m.loSession=EVALUATE([xfrx("XFRX#INIT")]) m.lnRetVal = m.loSession.SetParams("test.xlsx",,,,,,"NATIVE_FXLSX") IF m.lnRetVal=0 m.loHACK=CREATEOBJECT("_XFRXHACK",m.loSession)

        m.loSession.TransformReport(m.loXFF) RELE m.loHACK END IF

        XFRX # LISTENER m.loSession=EVALUATE([xfrx("XFRX#LISTENER")])



        m.lnRetVal = m.loSession.SetParams("test.xlsx",,,,,,"NATIVE_FXLSX") IF m.lnRetVal=0 m.loHACK=CREATEOBJECT("_XFRXHACK",m.loSession) REPORT FORM ("_reports\firstreport") OBJECT m.loSession RELE m.loHACK END IF

        Clase HACK DEFINE CLASS _XFRXHACK AS CUSTOM oEWriter=.NULL. cTarget="" nVersion=0 DIMENSION aps(256,3) PROCEDURE Init(m.loSession)

        m.loSession=IIF(TYPE("m.loSession.oxfSession")="O",m.loSession.oxfSession,m.loSessi This.nVersion=VAL(CHRTRAN(m.loSession.GetVersion();

        ,CHRTRAN(m.loSession.GetVersion(),"0123456789",""),"")) DO CASE CASE This.cTarget=="NATIVE_FXLSX" OR This.cTarget=="NATIVE_PFXLSX"

        =BINDEVENT(m.loSession.oDocumentWriter,"RenderPage",This,"RenderPageBefore"

        =BINDEVENT(m.loSession.oDocumentWriter,"RenderPage",This,"RenderPageAfter", ENDCASE This.oEWriter=m.loSession.oDocumentWriter This.InitPaperSize()



        ENDPROC PROCEDURE RenderPageAfter(m.tnHeight, m.tnWidth, m.tnPageNo) LOCAL m.liSele m.liSele=SELECT() WITH This.oEWriter.oOXML SELECT (.Alias) SET KEY TO "header" SET FILTER TO XX003=.nPageNo GO TOP IF NOT EOF() REPLACE XX001 WITH STRTRAN(XX001,[],;

        '<sheetPr><pageSetUpPr fitToPage="1"/>'+CHR(13)+CHR(10)+;
        []) SET KEY TO SET FILTER TO m.lcPom=[

        <definedName name="_xlnm.Print_Area" localSheetId="]+LTRIM(STR(.nPageNo-

        [">']+StrTranHTMLStringOO(STRTRAN(.cPageDisplayName,"'","''"))+;
        ['!$A$1:$]+.CIToC(.nColNo)+[$]+LTRIM(STR(.nRowNo,11))+[ ]
        ENDWITH

        SELECT (m.liSele) ENDPROC PROCEDURE RenderPageBefore(m.tnHeight, m.tnWidth, m.tnPageNo) LOCAL m.liSele, m.lnYY, loEWriter m.liSele=SELECT() m.loEWriter=This.oEWriter WITH m.loEWriter.oOXML SELECT (loEWriter.rpivotsalias) GO BOTTOM m.lnYY=YY SELECT (.Alias) SET FILTER TO XX003=.nPageNo SET KEY TO "footer" GO TOP IF NOT EOF() REPLACE XX001 WITH STRTRAN(XX001,[paperSize="9"],;

        [fitToHeight="]+LTRIM(STR(MAX(INT(m.lnYY/(m.loEWriter.nPageHeight-m.loEWr

        [" paperSize="]+LTRIM(STR(This.GetPaperSize(m.loEWriter.nPageWidth, m.loE ENDIF SET KEY TO SET FILTER TO ENDWITH SELECT (m.liSele) ENDPROC PROCEDURE GetPaperSize(m.tnWidth, m.tnHeight)



        LOCAL m.lnPaperSize FOR m.lnPaperSize=1 TO ALEN(This.aps,1)

        IF This.aps(m.lnPaperSize,2)=m.tnWidth AND This.aps(m.lnPaperSize,3)=m.tnHeight EXIT ENDIF NEXT RETURN m.lnPaperSize ENDPROC PROCEDURE InitPaperSize() STORE 0 TO This.aps This.aps(1,2) =

        85000

        This.aps(1,3) = 110000 This.aps(2,2) =

        85000

        This.aps(2,3) = 110000 This.aps(3,2) = 110000 This.aps(3,3) = 170000 This.aps(4,2) = 170000 This.aps(4,3) = 110000 This.aps(5,2) =

        85000

        This.aps(5,3) = 140000



        This.aps(6,2) =

        55000

        This.aps(6,3) =

        85000

        This.aps(7,2) =

        72500

        This.aps(7,3) =

        10500

        This.aps(8,2) = 116929 This.aps(8,3) = 165354 This.aps(9,2) =

        82677

        This.aps(9,3) = 116929 This.aps(10,2) =

        82677

        This.aps(10,3) = 116929 This.aps(11,2) =

        58268

        This.aps(11,3) =

        82677

        This.aps(12,2) =

        98425

        This.aps(12,3) = 139370 This.aps(13,2) =

        71654

        This.aps(13,3) = 101181 This.aps(14,2) =

        85000

        This.aps(14,3) = 130000 This.aps(15,2) =

        84646

        This.aps(15,3) = 108268 This.aps(16,2) = 100000 This.aps(16,3) = 140000 This.aps(17,2) = 110000 This.aps(17,3) = 170000 This.aps(18,2) =

        85000

        This.aps(18,3) = 110000 This.aps(19,2) =

        38750

        This.aps(19,3) =

        88750

        This.aps(20,2) =

        41250

        This.aps(20,3) =

        85000

        This.aps(21,2) =

        45000

        This.aps(21,3) = 103750 This.aps(22,2) =

        45000

        This.aps(22,3) = 110000 This.aps(23,2) =

        50000

        This.aps(23,3) = 115000 This.aps(24,2) =

        45000

        This.aps(24,3) = 103750 This.aps(25,2) =

        47500

        This.aps(25,3) = 110000 This.aps(26,2) =

        50000

        This.aps(26,3) = 115000 This.aps(27,2) =

        43307

        This.aps(27,3) =

        86614

        This.aps(28,2) =

        63779

        This.aps(28,3) =

        90157

        This.aps(29,2) = 127559 This.aps(29,3) = 180315 This.aps(30,2) =

        90157

        This.aps(30,3) = 127559 This.aps(31,2) =

        44881

        This.aps(31,3) = 63779 This.aps(32,2) =

        44881

        This.aps(32,3) =

        90157

        This.aps(33,2) =

        98425

        This.aps(33,3) = 138976 This.aps(34,2) =

        69291

        This.aps(34,3) =

        98425

        This.aps(35,2) =

        69291

        This.aps(35,3) =

        49212

        This.aps(36,2) =

        43307

        This.aps(36,3) =

        90551

        This.aps(37,2) =

        38750

        This.aps(37,3) =

        75000

        This.aps(38,2) =

        36250

        This.aps(38,3) =

        65000

        This.aps(39,2) = 148750 This.aps(39,3) = 110000 This.aps(40,2) =

        85000

        This.aps(40,3) = 120000 This.aps(41,2) =

        85000

        This.aps(41,3) = 130000 This.aps(256, 2) = 104330 && 265 &&270 mm This.aps(256, 3) = 149606 && 380 &&385 mm ENDPROC ENDDEFINE 

        Sin etiquetas

        Notificaciones de banderas Documentación XFRX / ... / Tao de XFRX

        Cómo exportar texto como imagen a PDF o cambia otro atributo de fuente martinajindrova Modificado por última vez sep 18, 2015

        XFRX puede exportar texto como imagen si la fuente no existe, para XFRX 15.6. Pero puedes cambiar un indicador para una fuente específica.

        m.loSession=EVALUATE([xfrx("XFRX#INIT")]) m.lnRetVal = m.loSession.SetParams("test.pdf",,,,,,"PDF") IF m.lnRetVal=0 m.loHACK=CREATEOBJECT("_XFRXHACK",m.loSession) m.loSession.ProcessReport("_reports\basetext") m.loSession.Finalize() RELE m.loHACK END IF DEFINE CLASS _XFRXHACK AS CUSTOM oEDoc=.NULL. cTarget="" nVersion=0 PROCEDURE Init(m.loSession) m.loSession=IIF(TYPE("m.loSession.oxfSession")="O",m.loSession.oxfSession,m.loSessi This.nVersion=VAL(CHRTRAN(m.loSession.GetVersion(),CHRTRAN(m.loSession.GetVersion() This.cTarget=m.loSession.cTarget IF This.cTarget=="PDF" IF This.nVersion<1570000 =BINDEVENT(m.loSession.oDocument,"addFont",This,"addFont156",1) ELSE =BINDEVENT(m.loSession.oDocument,"addFont",This,"addFont",1) ENDIF This.oEDoc=m.loSession.oDocument ENDIF ENDPROC PROCEDURE addFont156(m.tcFontName, m.llBold, m.llItal, m.lnEmbed, m.lnSymbol, m.lnCode WITH This.oEDoc IF .aFonts(.nFont,7) AND ATC("+MDD-ISO-15223-1",.aFonts(.nFont,1))>0 && font is sym .aFonts(.nFont,11)=.F. && .F. - Font not exist, .T. - Font exist *.aFonts(.nFont,9)=1252 && Code page from 42 to 1252 ELSE .aFonts(.nFont,10)=.F. && .F. - Do not covert to UNICODE, .T. - Convert to UNICO ENDIF ENDWITH ENDPROC PROCEDURE addFont(m.tcFontName, m.llBold, m.llItal, m.lnEmbed, m.lnCodePage) IF .aFonts(.nFont,7) AND ATC("+MDD-ISO-15223-1",.aFonts(.nFont,1))>0 && font is sym

        .aFonts(.nFont,11)=.F. && .F. - Font not exist, .T. - Font exist *.aFonts(.nFont,9)=1252 && Code page from 42 to 1252 ELSE .aFonts(.nFont,10)=.F. && .F. - Do not covert to UNICODE, .T. - Convert to UNICO ENDIF ENDWITH ENDPROC ENDDEFINE



        Sin etiquetas

        Notificaciones de banderas Documentación XFRX / ... / Tao de XFRX

        Cómo agregar estilo personalizado en el documento MS Word 2007 martinajindrova Modificado por última vez sep 23, 2015

          

        Para VFP 8/9 Para VFP 5/6/7

        Para VFP 8/9 m.loSession=EVALUATE([xfrx("XFRX#INIT")]) m.lnRetVal = m.loSession.SetParams("test.docx",,,,,,"NATIVE_FDOCX")

        IF m.lnRetVal=0 m.loHACK=CREATEOBJECT("_XFRXHACK",m.loSession) m.loSession.ProcessReport("_reports\basetext") m.loSession.Finalize() RELE m.loHACK END IF DEFINE CLASS _XFRXHACK AS CUSTOM oEWriter=.NULL. cTarget="" nVersion=0 PROCEDURE Init(m.loSession)

        m.loSession=IIF(TYPE("m.loSession.oxfSession")="O",m.loSession.oxfSession,m.loSessi This.nVersion=VAL(CHRTRAN(m.loSession.GetVersion();

        ,CHRTRAN(m.loSession.GetVersion(),"0123456789",""),"")) DO CASE CASE This.cTarget=="NATIVE_FDOCX" OR This.cTarget=="NATIVE_DOCX"

        =BINDEVENT(m.loSession.oDocumentWriter,"Finalize",This,"Finalize",0)< ENDCASE This.oEWriter=m.loSession.oDocumentWriter ENDPROC PROCEDURE Finalize(m.tnHeight, m.tnWidth, m.tnPageNo) LOCAL m.liSele, m.loEWriter, m.lcPom m.liSele=SELECT()

        m.loEWriter=This.oEWriter WITH m.loEWriter.oOXML * Attention, all text data must be in UTF-8

        *m.lcBaseStyle, m.lcBaseName, m.lcHeight (line height in twips), m.lcBefore (before .addParagraphStyle("Normal","YourStyle",.ToTWIP(100),"0","","",.F.) SELECT (.Alias) m.lcPom=; [ <w:rPr>]+CHR(13)+CHR(10)+;

        [ <w:rFonts w:hAnsi="Courier New" w:ascii="Courier New"/>]+CHR(13)+CHR(10)+; [ <w:lang w:eastAsia="en-US"/>]+CHR(13)+CHR(10)+;

        [ <w:color w:val="]+.C2RGB(0, 120, 0,1)+["/>]+CHR(13)+CHR(10)+; && Fore color - RGB [ <w:sz w:val="]+LTRIM(STR(10*2,11))+["/>]+CHR(13)+CHR(10)+; && Fontsize*2

        [ <w:sz-cs w:val="]+LTRIM(STR(10*2,11))+["/>]+CHR(13)+CHR(10)+; && Fontsize*2 ]+CHR(13)+CHR(10)+; && m.llStriked [ <w:b/>]+CHR(13)+CHR(10)+; && m.llBold [ <w:i/>]+CHR(13)+CHR(10)+; && m.llItalics [ <w:u w:val="single"/>]+CHR(13)+CHR(10)+; && m.llUnderline [ ]+CHR(13)+CHR(10)

        REPLACE XX001 WITH STRTRAN(XX001,"",""+CHR(13)+CHR(10)+m.lcPom)
        * Change default font for document LOCAL m.liStart, m.liEnd, m.lcPom2, m.lihFile, m.lcPom m.lihFile=.GetFileHandle("word\styles.xml") m.lcPom=""

        =FSEEK(m.lihFile,0) DO WHILE NOT FEOF(m.lihFile) m.lcPom=m.lcPom+FREAD(m.lihFile,65000) ENDDO ** Font name m.liStart=ATC("<w:rFonts",m.lcPom)+10 m.lcPom2=SUBSTR(m.lcPom,m.liStart) m.liEnd=m.liStart+ATC("/>",m.lcPom2)-1

        m.lcPom=STUFF(m.lcPom,m.liStart,m.liEnd-m.liStart,[w:cs="Courier New" w:hAnsi="Cour ** Font Color, strike, bold, italic, underline m.liStart=ATC("<w:sz ",m.lcPom)

        m.lcPom2=[ <w:color w:val="]+.C2RGB(0, 0, 255,1)+["/>]+CHR(13)+CHR(10)+;]+CHR(13)+CHR(10)+; && m.llStriked [ <w:b/>]+CHR(13)+CHR(10)+; && m.llBold [ <w:i/>]+CHR(13)+CHR(10)+; && m.llItalics [ <w:u w:val="single"/>]+CHR(13)+CHR(10) && m.llUnderline m.lcPom=STUFF(m.lcPom,m.liStart,0,m.lcPom2) ** Font size m.liStart=ATC([<w:sz w:val="],m.lcPom)+13 m.lcPom2=SUBSTR(m.lcPom,m.liStart) m.liEnd=m.liStart+ATC(["],m.lcPom2)-1

        m.lcPom=STUFF(m.lcPom,m.liStart,m.liEnd-m.liStart,LTRIM(STR(20*2,11))) && Fontsize* m.liStart=ATC([<w:szCs w:val="],m.lcPom)+15 m.lcPom2=SUBSTR(m.lcPom,m.liStart)

        m.liEnd=m.liStart+ATC(["],m.lcPom2)-1

        m.lcPom=STUFF(m.lcPom,m.liStart,m.liEnd-m.liStart,LTRIM(STR(20*2,11))) && Fontsize* =FSEEK(m.lihFile,0) DO WHILE LEN(m.lcPom)>0 =FWRITE(m.lihFile,LEFT(m.lcPom,65000)) m.lcPom=SUBSTR(m.lcPom,65001) ENDDO ENDWITH SELECT (m.liSele) ENDPROC ENDDEFINE

        Para VFP 5/6/7 m.loSession=EVALUATE([xfrx("XFRX#INIT")]) m.lnRetVal = m.loSession.SetParams("test.docx",,,,,,"NATIVE_FDOCX") IF m.lnRetVal=0 m.loSession.setOtherParams("NEXT_PAGE_NAME_EXPR","_HACKPAGENAME(this)") m.loSession.ProcessReport("_reports\basetext") m.loSession.Finalize() END IF PROCEDURE _HACKPAGENAME(m.loReport) LOCAL m.lcPage, m.liSele, m.lcPom m.liSele=SELECT() WITH loreport.odocumentwriter.ooxml

        m.lcPage= "Page "+LTRIM(STR(.npageno,11)) IF .npageno=1 * Attention, all text data must be in UTF-8 .cEntityStyle="w:styles"

        *m.lcBaseStyle, m.lcBaseName, m.lcHeight (line height in twips), m.lcBefore (before .addParagraphStyle("Normal","YourStyle",.ToTWIP(100),"0","","",.F.) SELECT (.Alias) m.lcPom=; [ <w:rPr>]+CHR(13)+CHR(10)+;

        [ <w:rFonts w:hAnsi="Courier New" w:ascii="Courier New"/>]+CHR(13)+CHR(10)+; [ <w:lang w:eastAsia="en-US"/>]+CHR(13)+CHR(10)+;

        [ <w:color w:val="]+.C2RGB(0, 120, 0,1)+["/>]+CHR(13)+CHR(10)+; && Fore color - RGB [ <w:sz w:val="]+LTRIM(STR(10*2,11))+["/>]+CHR(13)+CHR(10)+; && Fontsize*2

        [ <w:sz-cs w:val="]+LTRIM(STR(10*2,11))+["/>]+CHR(13)+CHR(10)+; && Fontsize*2 ]+CHR(13)+CHR(10)+; && m.llStriked [ <w:b/>]+CHR(13)+CHR(10)+; && m.llBold [ <w:i/>]+CHR(13)+CHR(10)+; && m.llItalics [ <w:u w:val="single"/>]+CHR(13)+CHR(10)+; && m.llUnderline [ ]+CHR(13)+CHR(10)

        REPLACE XX001 WITH STRTRAN(XX001,"",""+CHR(13)+CHR(10)+m.lcPom)
        * Change default font for document



        LOCAL m.liStart, m.liEnd, m.lcPom2, m.lihFile, m.lcPom m.lihFile=.GetFileHandle("word\styles.xml") m.lcPom="" =FSEEK(m.lihFile,0) DO WHILE NOT FEOF(m.lihFile) m.lcPom=m.lcPom+FREAD(m.lihFile,65000) ENDDO ** Font name m.liStart=ATC("<w:rFonts",m.lcPom)+10 m.lcPom2=SUBSTR(m.lcPom,m.liStart) m.liEnd=m.liStart+ATC("/>",m.lcPom2)-1

        m.lcPom=STUFF(m.lcPom,m.liStart,m.liEnd-m.liStart,[w:cs="Courier New" w:hAnsi="Cour ** Font Color, strike, bold, italic, underline m.liStart=ATC("<w:sz ",m.lcPom)

        m.lcPom2=[ <w:color w:val="]+.C2RGB(0, 0, 255,1)+["/>]+CHR(13)+CHR(10)+;]+CHR(13)+CHR(10)+; && m.llStriked [ <w:b/>]+CHR(13)+CHR(10)+; && m.llBold [ <w:i/>]+CHR(13)+CHR(10)+; && m.llItalics [ <w:u w:val="single"/>]+CHR(13)+CHR(10) && m.llUnderline m.lcPom=STUFF(m.lcPom,m.liStart,0,m.lcPom2) ** Font size m.liStart=ATC([<w:sz w:val="],m.lcPom)+13 m.lcPom2=SUBSTR(m.lcPom,m.liStart) m.liEnd=m.liStart+ATC(["],m.lcPom2)-1

        m.lcPom=STUFF(m.lcPom,m.liStart,m.liEnd-m.liStart,LTRIM(STR(20*2,11))) && Fontsize*

        m.liStart=ATC([<w:szCs w:val="],m.lcPom)+15 m.lcPom2=SUBSTR(m.lcPom,m.liStart) m.liEnd=m.liStart+ATC(["],m.lcPom2)-1

        m.lcPom=STUFF(m.lcPom,m.liStart,m.liEnd-m.liStart,LTRIM(STR(20*2,11))) && Fontsize* =FSEEK(m.lihFile,0)



        DO WHILE LEN(m.lcPom)>0



        =FWRITE(m.lihFile,LEFT(m.lcPom,65000)) m.lcPom=SUBSTR(m.lcPom,65001)





        ENDDO ENDIF ENDWITH SELECT (m.liSele) RETURN lcPage ENDPROC

        Notificaciones de banderas Documentación XFRX / ... / Tao de XFRX metadata.attachments

        Sin etiquetas

        XFRX # INIT e imágenes / documentos en el campo General martinajindrova Modificado por última vez feb 20, 2018

        El soporte completo para campos generales y XFRX # INIT es desde XFRX 16.0.2 / XFRX 16.1. Pero para XFRX 15.7 y XFRX 16.0 es el paquete extendido. Usar es muy simple.

          

        File extractfromgf.FXP copia en la misma carpeta con XFRX o en cualquier otro lugar (pero no olvides utilizar SET PROCEDURE TO ... ADDITIVE) Copia de archivo xfrxlib.fll a la misma carpeta con XFRX Establezca la fuente de control para control consolidado de imagen / ole: VFP 6.0 VFP 9.0



        Como la salida PDF no admite imágenes con fondo transparente, agregue las siguientes dos filas en su programa (antes de llamar a XFRX) PUBLIC m.tnTC m.tnTC=RGB(255,255,255)

        XFRX

        Enlazar

        XFRX 15.7

        ExtensionPackageXFRX157.zip

        XFRX 16.0

        ExtensionPackageXFRX160.zip

        XFRX 18.0

        ExtensionPackageXFRX180.zip 

        Notificaciones de banderas Documentación XFRX / Páginas /

        Sin etiquetas

        Obsoleto

        Funciones experimentales - Textformat (HTML) martinajindrova Feb 03, 2017

        Formato de texto XFRX 15.3 PDF

        no

        DOC2PDF



        FDOC2PDF



        XPS

        no

        DOC



        FDOC



        NATIVE_DOCX

        no

        NATIVE_FDOCX

        no

        RTF



        FRTF



        ODT

        no

        Formato de texto calzado

        no

        SAO

        no

        PIE

        no

        PFODS

        no

        XLS



        XLSPLAIN



        NATIVE_FXLSX

        no

        NATIVE_PFXLSX

        no

        LLANURA

        -

        HTML



        HTMLPLAIN

        no

        MHT



        CNT / previewer

        no

        TIFF, BMP, GIF, JPEG, PNG, EMF

        no

        XFF



        XML



        Impresión

        no

        1) Página de códigos en el método SetParams () debe ser 'UTF-8' o 65001

        Formato de texto (HTML) Etiquetas compatibles Etiqueta de inicio

        Etiqueta final

        Negrita





        Itálico





        Subrayar





        StrikeThr u

        <s>







        Color





        darse cuenta



        Color de fondo

        Nombre de la fuente










        Tamaño de fuente

        Sobrescri to

        >












        <sup>



        >



        Subíndic e CRLF

        <sub>




        Apo yo

        XFRX # INIT

        si 1)

        XFRX # LIST ENE R

        si 1)

        XFF

        sí 2)

        XML

        sí 2)

        HTM L



        HTM LPLA IN

        no

        MHT



        Neg rita

        Itáli co

        Subr ayar

        Strik eThr u

        C o l o r

        C ol o r d e f o n d o

        N o m br e de la fu en te

        Ta m añ o d e fu e nt e

        So br esc rit o

        Su bí nd ic e

        C R L F













































        DOC

























        RTD

























        DOC X

























        DOC 2PD F

























        PDF

        no

        XLS













        no 3)











        XLSP LAIN













        no 3)











        RTF

























        FDO C

























        FDO CX

























        FDO C2P DF

























        FRTF

























        LLAN URA

        no 4)

        ODT

        no

        calza do

        no

        SAO

        no

        PIE

        no

        PFO DS

        no

        XPS

        no

        NATI VE_ DOC X

        no

        NATI VE_F DOC X

        no

        NATI VE_F XLSX

        no

        NATI VE_P FXLS X

        no

        Imág enes

        no

        1) Detecta el formato de texto 2) Guardar información 3) Excel no admite color de fondo para cada palabra 4) Eliminar solo el código de formato



        Notificaciones de banderas

        Sin etiquetas

    Related Documents

    Reportes En Vfp
    February 2021 1
    Massalik En
    January 2021 1
    524221 En
    January 2021 0
    En 10130
    February 2021 2
    En 61373
    January 2021 2

    More Documents from ""