XFRX version 12.2

Release date: 5 December 2006

 

Important installation notes for 12.x versions

  • The XFRX previewer component requires FOXTOOLS.FLL library if used in VFP 6.0.
  • XFRXLIB.FLL now also requires MSVCP71.DLL library to be installed (the previous version required GDIPLUS.DLL and MSVCR71.DLL libraries), all three libraries are required now

 

New features / Updates

  • XFRX Advanced Previewer
    • Printer selection dialog enhanced
      The dialog contains new controls allowing for the following options:
      • The number of copies to print
      • Include odd / even or all pages
      • Zoom - printing multiple pages per sheet
    • Export dialog enhanced
      The dialog allows for the following new features:
      • Specify the export output targets that would be available for selection
      • When exporting to "Image" output formats, the following new options are available:
        • The number of copies to print
        • Include odd / even or all pages
        • Zoom - printing multiple pages per sheet
        • The DPI of the image created
    • Previewer extension handler
      The extension handler now supports two new events (PrintOptions and ExportOptions) - print and export events after the options dialog is selected and the user clicks [Ok]. The events receive two parameters - the XFF object reference and an object containing the parameters user selected.

      Example: Defining the export output options list, intercepting the XLS export
      
      
      USE invoices ORDER customer
      LOCAL loSession, lnRetval, loXFF, loPreview, loScripts
      loSession=EVALUATE([xfrx("XFRX#LISTENER")])
      lnRetVal = loSession.SetParams("",,,,,,"XFF") && no name = just in memory
      IF lnRetVal = 0
         REPORT FORM invoices OBJECT loSession		
         loXFF = loSession.oxfDocument
         *
         * initialize the previewer 
         *
         SET CLASSLIB TO xfrxlib ADDITIVE 
         loPreview = CREATEOBJECT("frmMPPreviewer")
         loPreview.setExtensionHandler(CREATEOBJECT("MyExtensionHandler"))
         loPreview.windowType = 0
         loPreview.iBook = 0
         loPreview.PreviewXFF(loXFF)
         loPreview.show(1)
      ENDIF
      
      
      DEFINE CLASS MyExtensionHandler AS Custom
      
         PROCEDURE Export
            LPARAMETERS toXFF
            IF USED("_xfExportTypes")
               USE IN _xfExportTypes
            ENDIF
            *
            * define my export options list
            *
            CREATE CURSOR _xfExportTypes (name C(50), extension C(4), targetCode C(10))
            INSERT INTO _xfExportTypes VALUES ("HTML",	"html",	"HTML")
            INSERT INTO _xfExportTypes VALUES ("PDF",	"pdf",	"PDF")
            INSERT INTO _xfExportTypes VALUES ("Excel",	"xls",	"XLS")
         ENDPROC
       
         PROCEDURE ExportOptions
            LPARAMETERS toXFF, toOptions
            IF toOptions.cTarget = "XLS"
               *
               * my own code to handle output to Excel
               *
               =MESSAGEBOX("exporting to "+toOptions.cOutputFile)
               RETURN .F.   && suppress the default behavior
            ELSE
               RETURN .T.   && continue with the default behavior
            ENDIF
      
         ENDPROC
      ENDDEFINE
      

       

        
  • Printing and exporting to pictures
    The SavePicture and PrintDocument methods now have new parameters for controlling whether to include all pages, odd or even only, the number of copies and the number of pages per sheet.

Bugs fixed

  • frmMPPreviewer class was missing the iBook property
  • Private data session reports were causing crashes in previewer (VFP 9)
  • Opaque colored backgrounds were not printing properly
  • The report previewer wasn't sending the XFF file reference parameter to the extension hander events
  • Displaying multiple pages at once in the previewer was not working correctly (old pages being left on the screen) if there were not enough pages remaining in the document
  • XFRX was producing corrupted PDFs when fonts were included in the document (error 135)
  • Appending to PDF was improved (more PDF document "subformats" are now supported)
  • Wrapped lines were dropped in the previewer (in some scenarios)
  • OpenOffice - the absolute layout output was not working correctly (blank textboxes) with the latest OpenOffice version
  • The word wrapping algorithm was not respecting the current code page - Cyrillic texts having lines too wide
  • VFP 8 engine - vertical lines are now properly wrapped to a new page when stretched bands wrap
  • If the page range is not specified for SavePicture and PrintDocument method, the whole document is exported/printed