News Blog new

Services
    Consulting &
     Development

Products
  XFRX
    Details
    Download
    Demo
    Order
    Documentation
    Support
    Licence
    Testimonials
  PDF Library
    Download
    Demo
    Order
    Manual
    Licence
  PDM
Contact

Would you like to be notified about updates of this site?
Fill in your email:

XFRX Developer's guide

Developer's guide:Download as PDF (97 pages, 1.1 MB)
Download as XPS (1.4 MB)
View as HTML

Frequently asked questions

This is the XFRX FAQ, which contains the most frequently asked questions about the XFRX product.

Contents

1. General

2. Installation and setup

3. Licensing

4. Distribution

5. XFRX output - general

6. XFRX output - Excel specific questions

7. XFRX output - XPS specific questions

8. XFRX output - HTML specific questions

9. XFRX Previewer

10. VFP 9.0 related questions

1. General

Technical support is provided via email at: support@eqeus.com. Please contact us with any problem you have, we'd be happy to help you.
  • If you have problems with a particular report, please attach it to your email as well (if possible). Also, if your report is not too entangled with your environment and you'd be able to provide us with sample data that we could use to run your report, it would help us a lot in finding out what the problem is.
  • One more thing that can help us to find out what's wrong is generating a log file: Before calling SetParams(), please add loSession.initLog(). Then, when you run XFRX next time, _XFRX.log file will be generated in the default directory. This file logs all errors that are trapped during XFRX execution. Attaching this file to the email is a big help for us as well.

2. Installation and setup

This is an issue in the demo version of XFRX - it cannot be included into VFP projects, it makes VFP crash (this is a negative side effect of a decompilation protection). The workaround is to invoke XFRX via macro substitution:
loSession = EVALUATE[XFRX('XFRX#INIT')]
This way XFRX.APP does not get into the project and you will be able to compile without problems. The commercial version is not affected by this problem.
The xfrxlib.fll library requires three DLLs from Microsoft to be installed: gdiplus.dll, msvcr71.dll and msvcp71.dll). Alternatively, you can use a special version of XFRXLIB.FLL with some limits in functionality that does not require these libraries. Please find more information in the Developer's guide, Two versions of XFRXLIB.FLL chapter.
Please make sure you have installed the latest VFP 6 service pack. The session class is not available until SP3.

3. Licensing

We do not differentiate individual VFP versions - once you purchase XFRX, you can use it in VFP 5, 6, 7, 8 and 9 without any further costs.

4. Distribution

XFRX is able to access your built-in reports. To do this, add XFRX.FXP into your project and compile it into your exe as well. This option is not available for the XFRX evaluation version as it is distributed as XFRX.APP which can't be included in the exe.

5. XFRX output - general

Make sure you don't delete all information from the EXPR field of the first record of the page. XFRX doesn't use printer settings stored in the FRX file and uses PAPERSIZE and ORIENTATION values from the EXPR field of the first record. If they are not there, the default value is used, which can result in a wrong orientation or a wrong paper size.
XFRX for VFP 8.0 is able to print BMP and JPEG pictures stored in general fields, but ActiveX components are not supported. This restriction does not apply to XFRX for VFP 9.0, which is able to process any content of general fields, including ActiveX components.
If the variable is declared as LOCAL, XFRX for VFP 8.0 won't be able to see it (the variable is out of scope in XFRX), changing it to PRIVATE or PUBLIC fixes this problem.

6. XFRX output - Excel specific questions

This is how the XLS output works - it creates a column wherever an object starts or finishes. You may achieve better results if you try aligning the objects. Please have a look at the Excel specific features chapter in the Developer's guide for some ideas how you can make the output look better.

7. XFRX output - XPS specific questions

The XPS [XML Paper Specification] is a new document specification developed by Microsoft. You can find more information about XPS at:
  • http://www.microsoft.com/whdc/xps/default.mspx
  • http://en.wikipedia.org/wiki/XML_Paper_Specification
No. XFRX generates the document on its own from scratch so all you need is VFP and XFRX.
You need an XPS viewer. If you are running Windows Vista you already have one as it is included with .NET Framework 3.0. For Windows XP and Windows Server 2003 you can download the viewer from http://www.microsoft.com/whdc/xps/viewxps.mspx.

8. XFRX output - HTML specific questions

When printing from Internet Explorer, the browser automatically adds a line at top and bottom of each page - so the actual page is really shorter by these two lines. When generating HTML documents, XFRX makes the page height shorter, too, so that the report engine wrapped the page "early" and the output would fit to the shortened page. However, when an XFF file is converted to HTML (which happens, for example, when the report is exported from the XFRX previewer), the XFRX doesn't rearrange the document - it uses the same page layout as you see in the previewer, and this page layout is too long for the shortened HTML pages. There are two options how to deal with this:
  • When converting the output to HTML, add losession.shrinkHeight(0) before running losession.TransformReport(). This will lengthen the page and the result would look fine - but, if you try to print this from MSIE, the pages might be too long to fit on paper (depending on the footer size).
  • You can intercept the HTML export event (see and process the report again, directly to HTML. For more information about interception the export events, please see "Registering an extension handler" chapter in the developer's guide.

9. XFRX Previewer

You can setup an extension handler that can react to the Export and Print events. The extension handler can cancel the action, force exporting / printing parameters or just store the information that the action was performed. Please see more information in the Developer's guide, Registering an extension handler chapter.

10. VFP 9.0 related questions

Yes, you need to modify your code a bit if you want to start using the new features in VFP 9.0. If you do not modify how XFRX is called in your application, it will still work fine after you upgrade to VFP 9.0 and you don't need to change anything if you are satisfied with the results. If you, however, want to use the VFP 9.0 native report engine in cooperation with XFRX, you need to modify your code as described in the Developer's guide, Running XFRX chapter.
Please make sure you are calling XFRX using the new VFP 9.0 syntax: REPORT FORM xxx OBJECT loXFRXListener. The new reporting features in VFP 9.0 are not supported when using the VFP 8.0 calling syntax.
You are either using XFRX.FXP from VFP 8.0 or earlier or, if you are running the source code version, you need to modify XFRX.H, uncomment the "#DEFINE VFP9" line and recompile XFRX.