Crystal Web Reporting services have proven themselves to be somewhat "ok" in my Visual InterDev Solutions. My design uses an MTS package that provides data services to pass recordsets to Crystal Report objects. These objects are passed via very expensive (but required) Session-level object variables to the Viewer. (I am using Crystal's Java viewer by the way: it runs very slow on Netscape 4.x but "mysteriously" fast in IE 4.x.)
The Crystal *.RPT files must be prepared for this kind of service. These *.RPT files are made "server independent" with the use of Data Definition Files (.TTX files). Since I am working in a team environment on machines with different versions of Crystal Reports, I built a tool called the Crystal DDF Utility that can make .TTX files without running the Designer application. All this utility needs is database logon information a .TTX file to write to and SQL to generate a Recordset. You can find this utility in a self-extracting .CAB file at:
http://www.kintespace.com/kb/util/CrystDDF/CrystDDF.EXE
After the .TTX file is created, we need to prepare the .RPT file. Here is a summary of the steps involved:
-
Make sure File > Save Data with Report is disabled.
-
Verify that there are no database server references under Location in the Set Location dialog (Database > Set Location...).
-
Select Database > Convert Database Driver...
-
Select Convert Database Driver on next Refresh.
-
Select To: > pdsmon.dll [ADO, RDO, DAO]
-
When the Select Data Source dialog appears, select Data Definition.
-
Enter the .TTX file you created.
-
Answer yes to "Fix Up" the report.
-
Save and Close.
WARNING: There is a bug involved with the Select Data Source dialog. It seems to only run once per 32-bit designer session. You may have to close and open the Designer application several times to prepare several reports.