Tag Archives: Crystal Reports

Crystal Reports 8.5 Free Download

Welcome to Crystal Reports 8.5, the world standard in high-performance reporting. Deliver rich, interactive content from virtually any data source with Crystal Reports. With Developer and Professional Editions, and the addition of powerful design and formatting capabilities with interactive analysis tools, you can create reports that meet your exact needs. Rapidly deploy your reporting solution to the Web with our powerful new web-publishing system for easy information sharing. Crystal Reports makes it easy to deliver information in the ways you need—from the PC to the enterprise and to the Web—in a variety of different formats, including XML.


Minimum System Requirements

Developer Edition
  • Microsoft Windows XP, or higher
  • 32 MB RAM minimum (64 MB for Windows NT), 254 MB RAM recommended
  • 60 MB hard drive space minimum; 235 MB maximum for English, and up to 470 MB for other languages
  • Pentium or higher processor required
  • CD-ROM

Professional Edition

  • Microsoft Windows XP, or higher
  • 32 MB RAM minimum (64 MB for Windows NT), 254 MB RAM recommended
  • 60 MB hard drive space minimum; 174 MB maximum for English, and up to 350 MB for other languages
  • Pentium or higher processor required
  • CD-ROM

Standard Edition

  • Microsoft Windows XP or higher
  • 32 MB RAM minimum (64 MB for Windows NT), 254 MB RAM recommended
  • 60 MB hard drive space minimum; 155 MB hard drive space maximum
  • Pentium or higher processor required
  • CD-ROM


  • The printed version of the Crystal Reports 8.5 User’s Guide incorrectly identifies the database drivers which are thread-safe. Please see the section “Using thread-safe database drivers” in this document for the correct listing.
  • The printed version of the Crystal Reports 8.5 User’s Guide does NOT list the up-to-date system requirements in the “Installing Crystal Reports” chapter. Please refer to the ‘Installation’ section of this document for the correct system requirements.
  • Users who use a Netscape browser to view the online help will find that the text inside the Contents area does not automatically refresh to fill the frame’s dimension when the window is resized. To refresh the text in the Contents area, users must click the Contents button.
  • Users who have received Crystal Enterprise 8 as an addition to their Crystal Reports 8.5 product are supplied with only the Administrator’s guide in printed format. Printable versions of the Quick Start, Installation, User’s, and Administrator’s guides (in .PDF format) can be found in the \doc directory of the Crystal Enterprise 8 product CD.

Notes and Limitations

Lotus Domino

  • If you plan on using Crystal Reports in conjunction with Lotus Domino, you may want to view the new Lotus Domino sample reports. These documents demonstrate the ways in which Crystal Reports enables you to increase the value of your Lotus Domino investment.


  • The Lotus domino sample applications are installed only if Lotus client software is detected on the local machine. This holds true whether you choose the Complete installation option or select the Lotus Data Access option explicitly during a Custom installation.
  • If you follow the default installation, you will find the sample .nsf files in the C:\Notes\data directory and the sample .rpt files in the C:\Program Files\Seagate Software\Crystal Reports\Samples\En\Code\Lotus Domino directory.
  • You can serve these reports up from within a Lotus Notes application by opening either Crazev6.nsf or Xglobal.nsf from within Lotus Notes.

Data Access

  • Accessing XML data sources

When setting up an XML data source, the location can be specified as either a path or a URL. Please note the following:

  • If file name is not specified in the path (e.g., c:\myxmlfiles), the Data Explorer will display each XML file in the directory c:\myxmlfiles as a table.
  • If file name is not specified in the URL (e.g., http://www.seagatesoftware/xml_samples), the report designer will prompt the user to specify the table name (i.e., the file name without the “.xml” extension). This will occur because the Merant XML ODBC driver is not able to enumerate files on a URL location.
  • Lotus Notes

In Crystal Reports, the new version of p2snote.dll (p3slnxx.dll in localized versions), version and above, results in several new behaviours. Due to the changes mentioned below, please verify all reports when first running them in Crystal Reports 8.5. (To verify a report, click Verify Database on the Database menu). Users may be required to re-map database fields. For information on this procedure, please see the section “Remapping altered databases” in the Crystal Reports online help.

If your report still fails to run, open the report and click “Set Location” on the Database menu. Set the location of each form or view in your report.

The changed behaviours are as follows:

  • When reporting off a form in Lotus Notes, you may notice that the order of the report data is different from the original sequence. This is because Crystal Reports takes advantage of “View as index” to speed up form lockups. This may switch the sequence of the form to that of the view.

If you report off a form in Lotus Notes, and if the form is not used by any views, then the report data will appear in its original order. If you report off a form that is used by a view, and if the form is the only form used by the view, then the report data will appear in the same order as in the view—that is, the report data will be sorted according to the field that is sorted in the view. If the view is not sorted, then there is no field for Crystal Reports to use as an index; in such cases, the report data appears in alphabetical order.

  • When reporting off a view, Crystal Reports now uses the field name instead of the column name.
  • Crystal Reports now has the ability to read Numeric and Daytime data types if the view is based on a single form. Consequently, if users open old reports and refresh the data with p2snote.dll, then they will need to re-map the database fields. For information on this procedure, open the Crystal Reports Online Help, type “mapping” in the Index search field, and double-click “Remapping altered databases.”

  • NotesSQL (Lotus Notes ODBC driver)
  • Lotus ODBC returns errors or incorrect results when you attempt to link tables with outer joins. NotesSQL presently supports outer joins for two tables only. In addition, within Crystal Reports, Right Outer Joins are incorrectly treated as Left Outer Joins.
  • If you are using Windows 2000 and reporting (via ODBC) off of a view containing a date field, then browsing on that date field may cause your system to quit unexpectedly. The workaround offered by Lotus is to set the environment variable “Temp” to a shorter path. For instance, use C:\Temp instead of C:\Documents and Settings\UserName\Local Settings\Temp.
  • Closed OLE DB providers installed with Crystal Reports 8.5

In the Windows Datalinks dialog box, users may notice the following Closed OLE DB providers, which are installed with Crystal Reports 8.5:

  • Crystal Services Closed XML ADO Provider
  • Crystal Services Closed Integrator Base

These providers are “Closed” because they cannot be used by any programs other than the Crystal programs for which they were designed. Neither provider is usable by other third-party applications on the machine, even though both providers may appear in the Datalinks dialog box when accessed from third-party applications.

  • Maximum concurrent connections to MS SQL Server

MS SQL Server’s maximum number of concurrent connections is, by default, set to 25. However, Microsoft offers a workaround that allows you to change this default setting. Information on how to do this is currently available from the Microsoft Kbase web site at:


Note: If the MaxDBProcesses value name already exists, the new version of p2ssql.dll (p3ssqxx.dll for localized versions) will set the maximum concurrent connections to the existing value. Otherwise, the default value of 25 will be used.

  • Informix database access

If you use the Informix native driver, p2sifmx.dll (p3sifxx.dll for localized versions), ensure that the Informix client application is running on a single CPU machine.


  • ACT! database access

When reporting off of an ACT! database, it will be necessary for users to link their database tables manually: the ACT! database driver currently does not perform “smart linking” in the correct manner.

To download complete instructions (available in English only) on how to best link ACT! tables with the Crystal Reports 8.5 driver, please visit the Crystal Reports web site at:



  • The ACT! driver cannot report off the “Regarding” field in ACT!
  • ACT! 2000 driver supports only one BLOB/MEMO field per file in each report.
  • Record Manager fields or fields that are unique identifiers (for linking purposes) will appear as alphanumeric and special character strings when included in a report:
  • BDE Driver

The BDE driver has been updated for faster performance and better support of Memo fields. Because of this update, existing reports based on the older BDE driver should be re-verified before being run as the Memo field size has changed.


  • Maximum Number of Database Tables

Crystal Reports 8.5 supports up to 2147483647 database tables at any one time. When a value greater than 2147483647 is stored in the HKEY_Current_User\Software\Seagate Software\Crystal Reports\FetchOptions\NtablesMax registry key, users may receive an “Out of memory” error and/or a blank Data Explorer.

  • Date Fields in Microsoft Access database

When creating a report off a Microsoft Access database with a date field in it, only dates that fall in the range from 1753 to 9999 are supported. [Microsoft Access 2000 and Jet 4.0 support dates ranging from the year 100 to the year 9999. However, MS Access ODBC (odbcjt32.dll) shares a limitation with SQL Server in that only years ranging from 1753 to 9999 are supported.]

Report Designer

·         Opening 8.5 reports in version 8.0

Generally, reports created in Crystal Reports 8.5 open correctly in Crystal Reports 8.0. However, any new 8.5 features will be unavailable. For example, Report Alerts, summaries across hierarchical groups, new pie chart features, support for XML data sources, and other new features are not supported by version 8.0. Consequently, errors may occur when you view such reports in version 8.0 report designers, applications, or Web Component Servers.

  • Options

At present, the “COUNT Number of Records First” option is available only for ODBC and SQL data sources. This option is accessible by clicking File > Options > Reporting.

  • Conditional Formatting with Formulas

Always include the Else keyword in conditional formulas. If you want to leave values unchanged when they do not meet your specified condition, use the DefaultAttribute function in the Else portion of your formula. If you do not include the Else portion of the statement, values that do not meet the specified condition may not retain the format that you expect.

For instance, to increase the font size of the names of all countries other than the USA—while at the same time leaving the font size of USA unchanged—you would use this formula:

If {Customer.Country} <> “USA” Then 15.5

Else DefaultAttribute

  • Troubleshooting Formulas

Problems with formulas in old reports may be the result of alterations made to the Formula Editor’s formula-checking process. The formula compiler now does more checking on formula creation rather than at run time. For instance, the Formula Editor will now check for some Divide by Zero errors during formula creation instead at runtime. If you do encounter such problems, you should enhance your formulas to remove the Divide by Zero error.

  • XML export

To ensure that all characters are displayed correctly within an exported XML file, you should view XML files with applications that support UTF8 encoding. Internet Explorer, for instance, is often used for reading XML files. If you use an application that does not support UTF8 encoding (such as Wordpad), certain characters are displayed and/or replaced incorrectly.

  • Strings using more than 254 characters
  • When adding default values to a parameter (via the Set Default Values dialog box), the 255th character will be incorrectly cut off.
  • SQL statements that reference a string field that is greater than 254 characters will not output the correct data.
  • A long string field containing 255 characters (not a memo field) will have its last character removed when displayed from a formula field.

Report Viewers

  • The Crystal Reports 8.x versions of the Java Report Viewer cause Netscape Navigator 4.5+ for Mac to quit unexpectedly during the loading of the viewer. This occurs because the size of the viewer exceeds a capacity limit in the browser’s JVM (Java Virtual Machine). There is a workaround for this problem, because Netscape Navigator ships with two different JVMs, and only the default one has the capacity limit. To disable the default JVM, move the file Java Accelerator for PowerPC out of the Netscape Communicator folder. Navigator then uses the other (slightly slower) JVM instead. The Java Report Viewer works well with this other JVM and is not noticeably slower. Without the Accelerator, however, it is possible that other Java applets may show a larger difference in speed. Netscape Navigator 3.x and 4.0x do not share this capacity limit.

RDC (Report Designer Component)

  • Unlike the Crystal Report Designer, the RDC does not provide the ability to set font size properties to fractional point sizes (such as 10.5pt). Firstly, Visual Basic does not allow developers to set font properties to fractional values through the Property window. Secondly, the standard VB interface IFontDisp (used in the RDC’s collection of COM objects) has problems when dealing with fractional point sizes.
  • The Crystal Reports 8.0 RDC will make an incorrect project reference to the Design or Run time library after you deploy a distributed application from Crystal Reports 8.5 on top of it.

That is, if a Crystal Reports 8.5 based application is distributed to an 8.0 RDC machine, the Design Time Library reference may not be added when the user uses the RDC. To solve this problem, it will be necessary to re-register the 8.0 craxdrt.dll in the same directory as the 8.0 craxddt.dll—or, put the new 8.5 craxdrt.dll in a longer path directory.

Runtime Changes

  • Exporting to PDF and RTF

The export DLLS for exporting to PDF and RTF have changed. The PDF format DLL is now Crxf_pdf.dll (crxf_pdf_res_xx.dll for localized versions), replacing U2fpdf.dll. The RTF format DLL is now Crxf_rtf.dll (crxf_rtf_res_xx.dll for localized versions), replacing U2frtf.dll. If you are programming in C/C++ the header file required for PDF is now Crxf_pdf.h, and the header file for RTF is now Crxf_rtf.h.


  • Italian, Portuguese, and Spanish releases of Crystal Reports 8.5 include the English version of the HTML Report Viewer. This change reflects the inclusion of the English release of Crystal Enterprise with these releases of Crystal Reports 8.5.
  • PDF Export and Microsoft Word Export functionality is not available in Japanese versions of Crystal Reports 8.5.
  • The Merant drivers that are shipped with Crystal Reports 8.5 are not localized. As such, users of non-English versions will find that some of the related UI (e.g., when using the Merant XML ODBC driver) is in English.
  • When distributing reports using the Crystal Reports ‘Compiled Reports’ feature, your client users will need to run MDAC on their machines before attempting to refresh any compiled reports that use a native database connection. (Note that this only applies to users employing the German Edition of Crystal Reports.)

Using thread-safe DLLs

Database Drivers

If you share and refresh reports over the web, open them using thread-safe database drivers whenever possible. The Crystal Report Engine supports multiple threads. Thus, when you make multiple data requests through thread-safe database drivers, the Report Engine can process all of the requests simultaneously. As a result, users will be able to view these reports sooner.

Currently, the following ODBC drivers for SQL Server and Sybase are thread-safe:

  • sqlsrv32.dll (MS SQL Server)
  • CRSYB13.dll, CRSYB14.dll (Merant drivers for Sybase)
  • IVSYB13.dll, IVSYB14.dll (Merant drivers for Sybase)


  • This list can be changed by editing p2sodbc.dll resource number 900.
  • The Merant Oracle drivers are not thread-safe. The Merant defect number for this is: 1014669
  • IVSYB15 does not work in multi-threaded mode. The Merant defect number for this is: 1014600

The following native database drivers are thread-safe:

  • dll (Oracle)
  • dll (Sybase)
  • dll (DB2)

Thread-safe MS OLE DB drivers:

  • dll
  • dll

Please note that these drivers are thread-safe only when connecting to an MS OLE DB provider that supports multi-threaded connections using them.

Export Drivers

The following export drivers are thread-safe:

  • crxf_ dll
  • crxf_ dll
  • u2fdll
  • dll
  • dll
  • dll
  • dll
  • dll
  • dll


File size

Crystal Reports and Visual Basic 6.0

Reports can be made quickly and easy for use with VB with Crystal Reports. But there are some problems you can encounter. For example if you use ODBC the name of the used DSN connection is saved within the report. Also when your users want to change the layout of the report they need a direct connection to the database. You can use views or a special user account to protect the structure of your database.


An other way is to make use of Data Definition files. They are just ASCII files which contains the fields and their properties that are to be used in the report. Using such a file means that there is no direct connection with the database. In Visual Basic the query is executed and the result – together with the Data Definition file – will produce the report.

To make it work you have to take three steps:


  • making the Data Definition file
  • making the report
  • merge them in VB and show the result


The Biblio.mdb will be used in this example.


Step 1: making the Data Definition file


The report needs to be a view to be of all present authors with their titles and year of publication. The fields Author.Author, Titles.Tiltle and Titles.Year Published must be shown on the report. Due the keys the table Title Authors is used. The SQL to get the result is:


SELECT Authors.Author, Titles.Title, Titles.[Year Published]

FROM Titles INNER JOIN (Authors INNER JOIN [Title Author] ON Authors.Au_ID = [Title Author].Au_ID) ON Titles.ISBN = [Title Author].ISBN;


Making the Data Definition file can be done in Crystal Reports but also in any ordinary editor like notepad. The format is fixed:







All on one line separated by a TAB.


Author   String   255 name

Title    String   255 Title

YearPublished    String   4   year


Don’t forget to save the file with the name: AuthorTitles.ttx Crystal Reports needs that to be able to define a report on this file.


Step 2: making the report


Start Crystal Report; choose for New, Standard report. On the tab Data select Active Data. On the next screen the choice is Data definition. Select with Browse the file you have made in step 1. Click on Finish. On the tab Fields select Add all and then  Preview Report.

The report will be shown. As values the given descriptions will be shown. With Design you can change what you want on the report. Just save the report (standard extension .rpt). For quick merging in VB use the same name for the report as for the Data Definition file: AuthorTitles.rpt


Step 3: merge them in VB and show the result


Open a new project in VB (name = prjDDCR). Place on the default form (name = frmDDCR) a commandbutton (name = cmdShowReport; caption = Show report). Don’t forget to add the reference for DAO (Microsoft DAO Object Library ) and for Crystal Reports (Crystal Reports Engine Object Library).


Add the next code to the general section of the form. (It’s just an example so all values are hard-coded.)


Option Explicit


Private db              As DAO.Database

Private CDOSet          As Object

Private RepApp          As Object

Private CrystRep        As CRPEAuto.Report

Private RepDb           As CRPEAuto.Database

Private RepTables       As CRPEAuto.DatabaseTables

Private RepTable        As CRPEAuto.DatabaseTable

Private LabelRows()     As Variant


On the Form_Load event add the next code. Don’t forget the code in the Form_Unload event! Change the path to the right location of your local Biblio.mdb


Private Sub Form_Load()

Set db = OpenDatabase(App.Path & “\biblio.mdb”)

End Sub


Private Sub Form_Unload(Cancel As Integer)



End Sub


Under the cmdShowReport_Click event is the code which merge the result of the executed SQL with the Data Definition file and the actual report.


Private Sub cmdShowReport_Click()

Dim strSQL          As String

Dim rs              As DAO.Recordset

Dim intFN           As Integer

Dim strFN           As String

Dim strLine         As String

Dim intX            As Integer

Dim intC            As Integer

Dim intLabelCount   As Integer

Set RepApp = CreateObject(“Crystal.CRPE.Application”)

Set CrystRep = RepApp.OpenReport(App.Path & “\AuthorTitles.rpt”)

Set CDOSet = CreateObject(“CrystalDataObject.CrystalComObject”)

intLabelCount = 0

intFN = FreeFile

strFN = App.Path & “\AuthorTitles.ttx”

Open strFN For Input As intFN

Do While Not EOF(intFN)

Line Input #intFN, strLine

If Len(strLine) <> 0 And Right(strLine, 2) <> “%%” Then

CDOSet.AddField Split(strLine, vbTab)(0), vbString

intLabelCount = intLabelCount + 1

End If


strSQL = “SELECT Authors.Author, Titles.Title, Titles.[Year Published]” + _

” FROM Titles INNER JOIN (Authors INNER JOIN [Title Author] ON ” + _

” Authors.Au_ID = [Title Author].Au_ID) ON Titles.ISBN = [Title Author].ISBN;”

Set rs = db.OpenRecordset(strSQL)

With rs

If Not (.EOF And .BOF) Then


ReDim LabelRows(.RecordCount – 1, intLabelCount – 1)


For intX = LBound(LabelRows) To UBound(LabelRows)

For intC = 0 To .Fields.Count – 1

LabelRows(intX, intC) = CStr(“” & .Fields(intC).Value)

Next ‘intC


Next ‘intX

CDOSet.AddRows LabelRows

Set RepDb = CrystRep.Database

Set RepTables = RepDb.Tables

Set RepTable = RepTables(1)

Call RepTable.SetPrivateData(3, CDOSet)

CrystRep.Preview “AuthorTitles.rpt”


End If

End With

Set rs = Nothing

Set RepApp = Nothing

Set CrystRep = Nothing

Set CDOSet = Nothing

End Sub


Compile the project. Just hit the command button. Crystal Reports will open a separate window to show the result of the executed query in the report. You can open as much reports as you wish.

The advantage of using a Data Definition file is that no difficult solutions has to be made on the database side. You don’t have to make views available to the users. You don’t have to make a special user with only access to those tables you want. Adding a new report does not mean to be forced to compile a new executable. If you save the SQL and the Data Definition files in the database you only have to update the relevant tables. You can save the reports also in the database but it’s better to have them located outside the database. Showing all available reports form a certain location is just easy to do. Merging the three files together is just a simple extension on the example project.