Documentation 'link' | Xfrx
Mastering XFRX Documentation: The Ultimate Guide to Reporting and Output Generation
2.2 The XFRX Class
The primary interface for developers is the XFRX class. This class serves as the controller for the export process. It manages:
- Target Format Selection: Specifying whether the output should be PDF, HTML, RTF, or others.
- Resource Management: Handling fonts, images (BMP, JPG, GIF, PNG), and external links.
- Document Properties: Injecting metadata such as Author, Title, and Subject into the final document.
3.3 Working with Images and BLOB Fields
A notorious pain point: embedding images from a memo field (.BMP or .JPG). The documentation explains using the SetImageConverter() method and the correct syntax for dynamic image paths in the FRX’s picture property. xfrx documentation
Core Workflow: The Session Object
Modern XFRX usage relies on a "Session Object" approach. This prevents variable scoping issues and allows for multiple simultaneous export jobs. live migrations with minimal downtime
Step 4: Check Output (Documentation’s Debugging Checklist)
- Is the file created? (
FILE(lcOutput)) - Is the logo embedded? Check
SetImageConverter()if missing. - Are fonts correct? If not, embed them using
loXFRX.SetFontEmbedding(.T.)
This exact pattern appears in the official XFRX documentation chapter "Your First PDF Report". embed them using loXFRX.SetFontEmbedding(.T.)
Chapter 8 — Community Recipes
The community contributed recipes: incremental backups to cold storage, live migrations with minimal downtime, and cross-cloud replication. Each recipe was a step-by-step playbook with parameters to tune. One popular recipe showed how to replicate a production bucket to an analytics cluster while masking PII on the fly via a transform hook.
Pitfall 1: “File not found” or “Listener not instantiated”
Doc Section: Installation & Registration
Cause: xfrx.prg and xfrx.fll not in VFP’s search path, or license file missing.
Solution: The documentation provides a diagnostic script:
SET PATH TO “C:\XFRX” ADDITIVE
DO xfrx
? xfrxVersion() && Should return “16.0.x”
