Se Pida Cuenta de Oficio Que IndicaDescripción completa
Descripción completa
NovelaDescripción completa
Descripción: interesante
Descripción completa
Descripción completa
Descripción completa
,,,Descripción completa
Descripción completa
Descripción completa
Aspectos que le recomiendo a mi alumnado que tenga en cuenta para obtener una expresión correcta en cada ejercicio de producción escrita que le propongo.Descripción completa
Descripción completa
Guía elaborada por maestros de infantil y primaria, que sugiere libros adecuados a cada edad.Descripción completa
Tomando en Cuenta El Diseño de PlantasDescripción completa
A song from Christine D'ClarioDescripción completa
Descripción: Ensayo acerca del documental de Leonardo DiCrapio "Antes que sea tarde"
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 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 informes que se utiliza en en VFP 8.0 y versiones anteriores. 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. para que el texto sea más fácil fácil de leer, estas diferencias se describen 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.
Tenga en cuenta:
Informe de FoxPro: definición del informe de FoxPro, almacenado en archivos .FRX, .FRT
informes que procesa la definición definición del informe. XFRX para Motor de informes: el motor de informes VFP 8.0 y anteriores contiene su propio motor de d e informes. En VFP 9.0, XFRX se conecta a la nueva arquitectura de informes y se utiliza el motor de informes nativo. VFP. Los scripts llaman a los Scripts : métodos o fragmentos de código escritos en VFP. 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. rectangular en un Scripts de objetos personalizados : scripts vinculados a un objeto rectangular 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. de Scripts enlazados a la página : scripts invocados en cada página, dibujando "arriba" de "debajo" del contenido de la página. p ágina. Estos scripts son adecuados para marcas de agua. los informes generados. Puede agregar agregar Scripts personalizados : también puede modificar los texto, gráficos, páginas nuevas, hipervínculos, marcadores, etc. Incluso puede crear documentos nuevos desde cero, evitando por completo el motor de informes. almacena los informes generados. generados. Estos archivos se Archivo XFF : un archivo interno que almacena 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 envuelve archivos XFF.
pueden previsualizar en una vista previa de Previsualizador de XFRX: los archivos XFF se pueden informe avanzada que viene con XFRX. La vista previa se puede localizar y permite buscar en el documento y admite hipervínculos hi pervínculos y marcadores. Puede encontrar más información sobre el uso de la previsualización previsualización en el capítulo de previsualización de XFRX . también puede imprimir los archivos XFF. Impresora : XFRX también Encontrará más información 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 que XFRX funcione correctamente. UtilityReportListener 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, 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):
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 usar un Implementación de de UtilityReportListener que que viene con el 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 agregue los siguientes archivos a su proyecto (todos disponibles en el archivo UtilityReportListener.zip):
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 clase XFRXListener XFRXListener cumple con los estándares de informes asistidos por 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 contenedor de previsualización previsualización del informe) está 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 d escargar XFRX.FXP compilado en la versión de VFP que esté utilizando. uti lizando.
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í:
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
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
14.7
Document NATIVE_D o de Word OCX con diseño absoluto, nativo
caja
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 NATIVE_FD o de Word OCX con diseño de flujo, nativo
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)
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
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 cl ases 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(,,
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 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 = 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= 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+
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.customer
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
before calling loSession.ProcessReport() With bookmarks enabled, XFRX will generate three HTML pages (three files): the main page defining the page frames, the bookmark page and the page with the report output.
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 ().
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
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, ;
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
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 quot ation 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:
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.
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.)
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")I loFile=loSession.addAttachment("ZUGFeRD-invoice.xml",.T.,"Rechnungsdaten im ZUGFeRD-X 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 loFile=loSession.addAttachment("Faktura.isdoc",.T.,"ISDOC - formát elektronické faktu 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 Modificad o por última vez sep vez sep 26, 2017 por por martinajindrova 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 XFRXListener como XFRXSession 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 ():
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 t iempo 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
Diseño
Diseño
Formato
Versión de
La versión de
de salida
estándar
de flujo
de salida
Word
Word es
necesaria
necesaria
para generar
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 D uke Lotherington, Visual Records Consulting, 3944 Murphy Canyon Rd, San Diego CA 92123, [email protected] (http://www.leafe.com/dls/vfp http://www.leafe.com/dls/vfp)) MD5.fll is unnecessary since XFRX 16.1.0.
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.)
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 ( 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 Modificad o por última vez ene vez ene 08, 2017 por por martinajindrova martinajindrova
Este capítulo enlaza con varios documentos de muestra en nuestro nu estro 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:
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 c ertain 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:
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()
8ENDIF
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.)
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 valu e and name. Example: m.loSession.setOtherParams("INFO1", "AnyValue")
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 ():
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, opt
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
m.loSession.SetOtherParams("VERTICAL_ADJUSTMENT",1000) && default value = 180
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.
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 c elda 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): 1LOCAL m.loObj, m.lnRetVal
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.)
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
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
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
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
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 c omo 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 insi
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, retur 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 d 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 :
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 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 nu evas, 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).
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
Sí
No
No
No
Sí
Sí
admite la interfaz de múltiples pestañas
Sí
Sí
No
admite la barra de herramientas integrada
Sí
Sí
No
Implementado como una forma (la configuración más fácil) Implementado como contenedor (se puede incrustar en formularios existentes)
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 co n versiones
17.3.1
anteriores de VFP en VFP 9.0. El valor pr edeterminado es .F.
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.
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
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
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 gridli 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
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 xf usar esta propiedad para indicarle al usuario que use la clase en lugar de la predeter 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 com 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 p son: -1 = Deshabilitar la barra de herramientas 0 = La barra de herramientas estará habilitada pero oculta. Se puede invocar a través del m 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.
mostrar el estado
Controla la visibilidad de la barra de herramientas en la barra de estado del contened 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
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
&& 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 c lase 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 1PROCEDURE 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.Set 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") I 1 m.loSession.SetParams(,,,,,,"CNT") IF m.lnRetVal = 0 m.loSession.setOtherParams(Thisfor 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: 1LOCAL m.loSession
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
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
Versión XFRX
Se llama a este método cuando se hace clic en el botón Imprimir en la barra de herramientas. 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
17.0.0
impresora seleccionada por la propiedad PrinterName.
SetField
Establezca el campo de datos DEVMODE
17.0.0
para la impresora seleccionada por propiedad PrinterName. Parámetros: tcField - Nombre del campo, como "DM_COLOR", "DM_PRINTQUALITY", etc. tuValue - Valor de los campos
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
Versión XFRX
solamente. Los valores permitidos son:
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
cuerda
Ingrese los números de página y / o los intervalos de página separados por
páginas
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
17.0.0
PrintDocument ().
cOutputFile
cuerda
Nombre de archivo de salida para XPS
17.0.0
Microsoft Document Writer u otro controlador virtual de PDF.
aFindString
formación
Una matriz contiene cadenas para
17.0.0
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.
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
17.0.0
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
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 sa 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 smt 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.
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
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\North 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 - A
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
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 (optiona 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 repla 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\Nort 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(O 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
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
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
color de fondo; juego de caracteres; color; nombre de la fuente; tamaño de fuente; Estilo de fuente; fontweight; textodecoració n;
Rect
flotador;
ángu lo
ngle>
style="">
margen; anchura; altura; ancho del borde; estilo de borde; color de fondo; curvatura; color; izquierda; derecho; wrapimage; envolvent e;
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
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
First
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;
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
% (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
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
Margen a la izquierda en twips
17.
Marge
\margl
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
Negrita
\b
Activar negrita
\b0
Desactivar negrita
\i
Activar cursiva
\i0
Desactivar cursiva
Subray ar
\ul
Activar subrayado
\ul0
Desactivar subrayado
StrikeT hru
\strike
Activar strikethru
\strike0
Desactivar strikethru
Sobres crito
\super
Activar superíndice
Subínd ice
\sub
Activar subíndice
Itálico
\ 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
Nombr e de la
colores \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
Marge n inferior
\saN
Marge n dejado
\liN
Marge n derech o
\riN
Altura de la línea
\slN
\sl1500
\slmultN
\slmult0- Altura de lne\slmult1 - Hilo de línea
\sb420 - espacio antes del párrafo
en twips
\sa420 - espacio tras párrafo en
twips \li420 - espacio desde el
párrafo
de la izquierda en twips \ri420 - espacio del párrafo
correcto en twips
- párrafo de altura de línea en twips / múltiple
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 - Tope de tabulación
izquierdo en twips \tqr
\tqr\tx2000 -
parada de tabulación derecha en twips
\tqc
\tqc\tx2000 -
parada de
tabulación central en twips Color de fondo
\cbpatN
Guion de texto
\fiN
\cbpat1 - índice en la tabla
de
colores \fi420 - sangría de primera línea
en twips
Tamañ o de la pestaña
\deftabN
Fronter a
\brdrcfN
\deftab - tamaño de tabulación
predeterminado en twips
\brdrcf1 - índice en la tabla de
colores \brspN
\brsp200 -
espacio entre boder y texto en twips
\brdrwN
\brdrw20 - 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
\plain
Restablecer propiedades de párrafo Restablecer propiedades de texto
Salto de página
\page
17. 3
Secció n
\sect
17. 3 Objetos
Líneas, formas, imágen es
17. 3
\shp \pict
Tokens extendidos por XFRX
Expr esión de VFP
Simbólico
darse cuenta
\*\vfpev
{\vfpev {DTOC(DATE())+" "+TIME()}}
Expr esión de VFP con form ato de conv ersió n Expa ndir por alias fuent e
{\vfpev {\pictureformat99.99} { \xlsf#0.00} {10}}
\*\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; color; nombre de la fuente; tamaño de fuente; Estilo de fuente; fontweight; textodecoración; decoración; alt ura de la línea;
Texto prefo rmad
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; color; nombre de la fuente; tamaño de fuente; Estilo de fuente; fontweight; textodecoración; decoració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; color; nombre de la fuente; tamaño de fuente; Estilo de fuente; fontweight; textodecoración; decoración; alt ura de la línea;
Lista orden ada
First
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; 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; color; nombre de la fuente; fonttsize; Estilo de fuente; fontweight; textodecoración;
Lista de articu los
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; 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; 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
#8EEBEC
Laguna Azul
#000000
Negro
#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
#78C7C7
Aurora boreal
#000000
Negro
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
#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 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 de de Halloween
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 Vino tinto
#AF9B60
Casquillo de bala
#990012
#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
#FCDFFF
Algodón de azúcar
#8E35EF
Púrpura
#893BFF
Aztech Purple
#FFDFDD
Bubblegum rosado
Naranja de de Halloween
#FBBBB9
Misty Rose
#8467D7
Medium Purple
#FAAFBE
Rosado
#A23BEC
Jazmín Púrpura
#FAAFBA
Rosa claro
#B041FF
Narciso morado 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:
15.1.0
80
lMultiLineLineBehavior Active el antiguo algoritmo para la altura de los calcs del texto de
15.0.3
varias líneas
nFlowLayoutMode Modo para salidas de diseño de flujo: FDOC, FRTF, FODT,
15.5.0
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
cTextToImage
Modo para convertir texto en imágenes "AUTO": el texto que tiene #UR TEXTTOIMAGE = 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 (...)
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 s -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. (desd cargar la aplicación de Excel. (desde XFRX 17.0) -16 ... La versión de la aplicación Excel debe ser 20 ... PDFpassword no es válido. (desde XFRX 17.1) -18 ... No es posible añadir nuevos datos con contra 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 es 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 obj tcTarget
El tipo de salida que se generará. Uno de los valores enumerados en Tipos de objetivos de salida XF tcArchive
El nombre del archivo zip que se creará. Si no está vacío, el archivo generado se agregará al archivo 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 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ógi 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 e 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,
.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 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 marca mostrar: Enviar 0 mostrará los marcadores de los números de pá informe (predeterminado) El envío 1 mostrará solo los marcadores definidos en el 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 est 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 de
Encontrará más información sobre el parámetro de texto sin formato en Convertir informes en el capí 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ín no serán visibles.
LEAVE_FULL_FIELD_CONTENT
Lógico
Valor predeterminado = .F. Por defecto, el contenido de los campos no e
tamaño del campo. Esta opción permite deja en la celda de Excel. NEXT_SHEET_NAME
Cuerda
El nombre de la siguiente hoja que se inserta ejecutará.
NEXT_SHEET_NAME_EXPR
Cuerda
Esta expresión, si está definida, se evalúa en resultado se utiliza como el nombre de la hoj Este parámetro tiene prioridad sobre el pará
ADDPAGENUMBERTOSHEETDISPLAYNAME
Lógico
Valor predeterminado = .T. Si este parámetro se establece en .F. luego, el nombre de la hoja. (Desde XFRX 15.6)
SHEET_PER_PAGE
Lógico
Valor predeterminado = .F. De forma predeterminada, el documento XL genera una hoja larga, con el encabezado de 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 S genera una nueva hoja para cada grupo de in cada grupo en una nueva página" configurad
SHEETPAGEBREAK
Lógico
Valor predeterminado = .F. Esta opción agrega saltos de página en la hoja p
La diferencia de coordenadas máxima consi Consulte el capítulo de ajuste de células X información.
Finalizar()
Este método finaliza la generación de documentos y muestra el documento generado (a menos que la 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 ()
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 delimita 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 establ métodos setPermissions (). Sintaxis de Word: setPasswords(tcReadPassword, tcWritePassword, tlRequirePassword)
Puede omitir tcReadPassword o tcWritePassword. tlRequirePassword es opcional (el valor predetermi establece en .T., Word solicitará la contraseña incluso cuando el documento se abra por primera vez d 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, tlAddOrMod
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
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 m.ll
Nombre de archivo
Embedded Embedded flag (debe ser verdadero)
m.lcDescription m.lcFileType
Descripción del archivo
tipo MIME
m.lcRelationship
debe ser "alternativa"
ClearAttachments ()
Borrar la lista de archivos adjuntos.
17.3
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 XF RX (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)
especifica si el archivo se debe agregar al archivo existente (.T.) O si se debe crear un archivo nuevo (.F).
AddToArchive (lógico)
si se establece en .T., El documento fuente se eliminará después de agregarlo al archivo.
DeleteSourceDocument (logical)
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 utiliza en el comando FORM INFORMAR [opcional] tcScopeClause
La cadena correspondiente a la cláusula de alcance del informe (como NEXT 4, REST, ALL, RECO 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 forma 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()
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
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. (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. tnRotate
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 [,
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.
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
XFRX 15.1.0
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:
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 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.lnRotationPoin
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 (s 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. (desde XFRX 17.3) El ángulo de rotación del texto en grados. La etiqueta se girará en el s contrario a las agujas del reloj. Opcional, valor predeterminado = 0. tnRotate
tnRotationPoint (desde XFRX 17.3)
El punto dentro del rectángulo alrededor del cual se rota el texto. Los valores permitidos son 0..8, op valor predeterminado = 0 (izquierda, arriba). Por favor, mira la imagen a la derecha para las posicione 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. Á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 () . tnRotación
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, op valor predeterminado = 0 (izquierda, arriba). Por favor, mira la imagen a la derecha para las posicione 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,
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, op valor predeterminado = 0 (izquierda, arriba). Por favor, mira la imagen a la derecha para las posicione 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 de reloj. Valor predeterminado opcional = 0. lnRotationPoint
Punto dentro del rectángulo alrededor del cual se gira el texto. Los valores permitidos son 0..8, opci valor predeterminado = 0 (izquierda, arriba). Por favor, mira la imagen a la derecha para las posicione 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 DrawTex (). 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).
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.liCRC3
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 dat
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
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()
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:
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. (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. tnRotate
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.
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 -
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
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.loSess
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,[],; ''+CHR(13)+CHR(10)+; [])
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.loEW [" paperSize="]+LTRIM(STR(This.GetPaperSize(m.loEWriter.nPageWidth, m.lo
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.tnHeigh
EXIT ENDIF NEXT RETURN m.lnPaperSize ENDPROC PROCEDURE InitPaperSize() STORE 0 TO This.aps This.aps(1,2) =
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.loSess 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.lnCod WITH This.oEDoc IF .aFonts(.nFont,7) AND ATC("+MDD-ISO-15223-1",.aFonts(.nFont,1))>0 && font is sy .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 UNIC 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 sy
.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 UNIC 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.loSess
This.cTarget=m.loSession.cTarget DO CASE CASE This.cTarget=="NATIVE_FDOCX" OR This.cTarget=="NATIVE_DOCX" =BINDEVENT(m.loSession.oDocumentWriter,"Finalize",This,"Finalize",0)
=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 (befor
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 /