CrystalVFE 2.0.1 Update – 17 July 2006

 

Welcome to the CrystalVFE 2.0.1 update!  This update contains updated CCRYSTAL.VCX/VCT library files needed to correct some bugs discovered in version 2.0.  CrystalVFE 2.0.1 supports Crystal Reports (CR) 8.5, 9 , 10  and 11 (XI) Developer (Dev) Editions.  However, it should be noted that CR 11 will not run under Win 95, 98 or ME. 

 

Note:  This update assumes that you already have installed the CrystalVFE 2.0 on your computer.  CrystalVFE 2.0 is available for registered users in the F1 Technologies Customer Service Center (it is listed as CrystalVFE 2.0 Beta).   

 

CrystalVFE 2.0.1 Requirements

 

CR Dev Edition, version 8.5, 9, 10 or 11

Visual FoxPro 8 SP1, Visual FoxPro 9 SP1 or higher

Visual FoxExpress (VFE) 2005 or higher

VFPCOM.DLL (http://www.microsoft.com/downloads/details.aspx?FamilyID=1529819c-2ce8-4e89-895e-15209fcf4b2a&DisplayLang=en) (version date of 5/24/2005)

 

Crystal Reports Developer Edition Requirements for CrystalVFE 2.0.1

 

CR Dev Edition Version Requirements

Version

Stand-Alone Installation

Side-by-Side Installation *

CR 8.5

D

-

CR 9

D plus RCAPI  License

D

CR 10

A

D

CR 11

D

-

 

Legend:  Developer Edition – D, Report Creation API - RCAPI, Advanced Developer Edition – A

 

* A second version of CR Dev Edition that is installed on the same computer as CR 8.5 Dev Edition.  For example, if you wish to run CrystalVFE 2.0.1 with CR 10, you must either 1) purchase the CR 10 Advanced Developers Edition (which used to retail for $1,500) and run it stand-alone on your machine, or 2) purchase the CR 10 Developer Edition and run it side-by-side with CR 8.5 Developer Edition on the same machine.  However in the second scenario, you would be required to have a copy of CR 8.5 Developer Edition on your machine because CR 10 Developer Edition does not contain the RCAPI licensing needed to create the required CR 10 objects – but CR 8.5 DOES.  J  In essence, you will be creating the report under CR 8.5 (at design time) and running it with CR 10 (at run time).

 

Additional copy of CR 8.5 Dev Edition not required

 

What’s New in 2.0.1

VFPCOM vs. OLEDBFOX

Problems were reported when running OLEDBFOX.DLL with VFP 9 and CrystalVFE 2.0.  The latest version of VFPCOM.DLL (http://www.microsoft.com/downloads/details.aspx?FamilyID=1529819c-2ce8-4e89-895e-15209fcf4b2a&DisplayLang=en) resolves the issues with OLEDBFOX and runs faster than OLEDBFOX.DLL.  I believe that Chuck Werner also uses VFPCOM.DLL running under Win 95, 98 and Me with significant speed increases as compared to the CADOUTILS class methods(see GetADORecordset method code listed in installation section below).  It is now recommended that you use and deploy VFPCOM.DLL (version dated 5/24/2005) with your CrystalVFE 2.0.1 applications.

Bug Fixes

The following bugs were reported and fixed in version 2.0.1:

·        cCRReportTypes.cmdPickFile.Click() – Fixed problem with method never changed the extension when another file type was selected.  Also, the file type displayed in the PUTFILE() dialog was not in synch with the default extension.

·        cCRPrintReportWizard.cExtensionsChanged to “PDF;DOC;HTML;RTF;TXT;XLS;XML” because previous version used “HTM” when outputting to HTML format, which triggered an error.

·        cCrystalOutputObject.ExportReport() – Fixed problem when exporting to HTML format that generated an error (CVFEPROBLEMEXPORTINGREPORTMSG) condition. 

·        cCrystalOutputObject.SetExportOptions() – Fixed syntax bug for exporting to Word format.  Fixed missing #DEFINE.  Also, now sets the HTMLHasPageNavigator property as well as the HTMLEnableSeparatedPages property when exporting to HTML format.

Installation

 

1.  BACKUP your existing CCRYSTAL.VCX/VCT files that are located in your [VFE2005 DIR]\VFEFRAME\LIBS directory.    Extract the contents of CCRYSTAL201.ZIP to your [VFE2005 DIR]\VFEFRAME\LIBS directory and overwrite the existings files. 

2.  Replace the GetRecordset method in the iCursor class of iData.VCX with the following:

 

*==============================================================================
* Method:             GetRecordset of icursor class in idata.vcx
* Purpose:           Returns an ADO record set that holds the contents of the cursor.
* Author:              F1 Technologies
* Parameters:    
* Returns:            loRS, Object, Reference to the ADO record set.
* Notes:               If this method is called by your application the user
*                            must have ADO support installed on their machine. 
*                            See: http://www.microsoft.com/data/ado/default.htm. 
*                            The user must also have the VFPCOM utility installed. 
*                            VFPCOM is a self-registering utility. With a normal Visual 
*                            FoxPro installation it is located in the VFPCOM directory 
*                            beneath Visual FoxPro. (HOME() + "VFPCOM")
* Modifications:   
* 07/18/2002     Made changes to use the VFPCOM Utility to create the
*                            recordset. This eliminates the need to execute a second
*                            query to retrieve the data and ensures that the ADO 
*                            record set exactly matches the cursor's contents.
* 02/17/2004     Now uses factory to determine the ADO Recordset Maker 
*                            class to instantiate.
* 07/23/2004     Now uses 'Win9X ADO Recordset Maker' class when running
*                            Win95, Win98 or WinME (CADOUTILS) and 'ADO Recordset Maker'
*                            when running Windows 2000 or higher (VFPCOM.DLL).
*==============================================================================
LOCAL ;
   loRS AS ADODB.RecordSet, ;
   loComUtil, ;
   lcClass as String
   
loRS = CREATEOBJECT("ADODB.RecordSet")
 
*- Use the apropriate class depending on what OS we are running.
IF VAL(OS(3)) < 5
               *- Running Windows 95, 98 or ME.   
               lcClass = This.oApplication.GetClass("Win9X ADO Recordset Maker")
ELSE
               *- Running Windows 2000 or higher.
               lcClass = This.oApplication.GetClass("ADO Recordset Maker")
ENDIF
 
IF !EMPTY(lcClass)
               loComUtil = CREATEOBJECT(lcClass)
ENDIF
 
IF VARTYPE(loRS) = T_OBJECT AND VARTYPE(loComUtil) = T_OBJECT
               loComUtil.CursorToRS(loRS,This.Alias)              
ENDIF
 
RETURN loRS
 

 

3.  Add factory support.

 

Ensure that the following entries are made in the ICLASSES factory table. 

 

ICLASSES.DBF:   ADO Recordset Maker Fields Fields

CDESCRIPT

CCLASS

Win9X ADO Recordset Maker 

CADOUTILS 

ADO Recordset Maker 

VFPCOM.COMUTIL                                   

 

   

ICLASSES.DBF – Crystal Reports Fields

Version

**Crystal RDC Class

**Crystal Preview DLL

**Crystal Preview Form

CR 8.5

*CrystalRuntime.Application.8.5

*CR85Preview.RBLCRPreview

*CCRYSTALREPORTFORM  

CR 9

*CrystalRuntime.Application.9

*CR9Preview.RBLCRPreview

*CCRYSTAL9REPORTFORM  

CR 10

*CrystalRuntime.Application.10

*CR10Preview.RBLCRPreview

*CCRYSTAL10REPORTFORM  

CR 11

*CrystalRuntime.Application.11

*CR11Preview.RBLCRPreview

*CCRYSTAL11REPORTFORM

* - CCLASS field         ** - CDESCRIPT field

Use the version of CR in the table above that you intend to distribute with your application to determine the field values to add to the ICLASSES table.  The Crystal RDC Class record in factory determines which version of CR is used by CrystalVFE at runtime.

Preview Control (CRXXPreview.DLL) Distribution

If your applications ulitizes the dll – based CR viewer to preview reports, then you will need to distribute the appropriate version of the CR Preview control (CRXXPreview.DLL – where XX stands for the version of CR you are distributing with your application), located in the CrystalVFE directory (<VFEDIR>/CrystalVFE).  This DLL needs to be registered on each client machine that runs your application using REGSVR32.EXE.  Using the CR Preview control for previewing reports created using CrystalVFE is the recommended method, because it is much faster than the corresponding VFP form – based method.  Setting the lUsePrintPreviewDLL property of the Crystal Reports Output Object to True invokes the CR Preview control for previewing Crystal Reports in CrystalVFE.

Design Time CR Wizard Configuration

CrystalVFE utilizes the CR Standard Report Wizard Component (CRYSTALWIZARD.DLL) during design time to create a Crystal Report.  Due to licensing changes made in version 9 of CR related to use of RCAPI method calls, the use of this component from within COM code was disabled/locked out and required the purchase and installation of a RCAPI license on the developer machine before the component could be used to create reports.  However, if a machine was running a side-by-side configuration in version 9 with version 8.5 Dev Edition, then the 8.5 version of CRYSTALWIZARD.DLL could be used to create the CR at design time.  The resulting report, created with the version 8.5 component, runs fine under the newer version (9, 10 or 11) RDC runtimes for the end user.

If you are running CR 9, CR 10 or CR 11 side-by-side with CR 8.5 Dev Edition, then you can use the value of RBLCrystalWizard.CRADOWizard in the RBLCRYSTALWIZARDCLASS property to utilize the CR 8.5 Runtime Wizard Component during design time.  If you are running CR 9 or CR 10 stand-alone, then you will need to purchase a Runtime Creation API (RCAPI) license for CR 9 or have the Advanced Developers Edition of Crystal Reports for version 10 and use the appropriate version values from the table below. 

 CRWIZUTILS Class of <VFEDIR>/WIZARDS/LIBS/WIZCRYSTAL.VCX

Version

RBLCRYSTALWIZARDCLASS property

CR 8.5

RBLCrystalWizard.CRADOWizard

CR 9

RBLCrystal9Wizard.CRADOWizard

CR 10

RBLCrystal10Wizard.CRADOWizard

CR 11

RBLCrystal11Wizard.CRADOWizard

 

Welcome Changes in CR 11 Dev Edition

The restrictions on use of RCAPI method calls that are in versions 9 and 10 have been removed in CR 11 Dev Edition.  Business Objects has opened up the use of RCAPI method calls in COM code for CR 11 Dev Edition.  This means that you can CR 11 Dev Edition stand-alone without the extra expense of an additional RCAPI license ($199) or be required to purchase an Advanced Developer Edition like version 10 ($1,500).  CrystalVFE 2.0 installs and registers a versions of CRYSTALWIZARD.DLL and RBLCrystal11Wizard.DLL that are compatible with CR 11 Dev Edition.

See Crystal Reports XI Feature Comparison by Version and Edition on Business Object’s site for more information features found in CR 11.

Documentation

CrystalVFE help file ([VFE DIR]\CRYSTALVFE\CRYSTALVFE.CHM) has not been updated since version 1.1.  It still shows screen shots from CR 8.5.  Starting with CR 9, the IDE for Crystal Reports has changed a bit with each subsequent version.  There are currently no plans to update the CrystalVFE help file with screen shots from CR 11, which is the latest version to date. 

Support

 

Support for CrystalVFE 2.0.1 is handled through the Customer Service Center on the F1 Technologies web site.  ONLY users that have a registered their copy of CrsytalVFE in the CSC are eligible for If necessary, you can contact me by e-mail at:  RandyMac@RBLData.com.