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”