Sunteți pe pagina 1din 4

Question/Problem/Abstract: This article should help you get started using the automation features of Crystal Reports 8.

0+ in Delphi. Answer:

In order to use the automation features in Crystal Reports 8.0 and higher, you must first import the type libraries into Delphi. 1. From the Delphi IDE main menu, go to Project | Import Type Libary. 2. Highlight 'Crystal Report 8 Active X Designer Run Time Libary'. 3. In the Class Names box, change the following items (TReport and TDatabase conflict with standard Delphi components): TReport >>> change to >>> TCrReport TDatabase >>> change to >>> TCrDatabase 4. Change the Palette page to Crystal Reports 5. Click 'Generate Component Wrapper' 6. Click 'Install...' 7. Click the Into New Package tab. 8. Click 'Browse', select a destination directory for the new package, enter. the filename 'CR_AUTO.DPK', then click the 'Open' button. 9. Enter the description 'Crystal Reports Automation Server' (or another one if you like), and click the 'OK' button. 10. At the confirmation box 'Package CR_AUTO.bpl will be built then installed. Continue?' choose 'No'. 11. Go back to the main menu and choose Project | Import Type Library. 12. This time choose the 'Crystal Report Viewer Control'. 13. Change the Palette page to Crystal Reports 14. Click 'Generate Component Wrapper' 15. Click 'Install...' 16. Click the Into Existing Package tab. 17. Browse or Select the 'CR_AUTO.DPK' package we created earlier. 18. Click 'OK' 19. This time the install confirmation box, click 'Yes'. 20. A message will appear notifying you that the following components have been registered: TApplication, TCRField, TCRFields, TCrReport, CRVEventInfo, TCRViewer, TCRVTrackCursorInfo, TReportSourceRouter. Click 'OK' 21. Save and Close the package. 22. We have now imported the appropriate type libraries and are ready to build a test application.

NOTE: Importing the Crystal Report Run Time Library registers a component TApplication. This will conflict with TApplication - the Delphi standard component. If you need to access the original TApplication in a form where you are using the Crystal Reports Server components or Crystal Reports viewer, you can access it as: Forms.Application. -----------------------------------------------------------------------------Next you must create a sample report in Crystal Reports to work with. For purposes of this example, make a very simple report just until you are comfortable with the process, then expand on it from there. Save this report to 'C:\MyReport.rpt'. -----------------------------------------------------------------------------Next let's setup the sample application: 1. In Delphi, create a New Application. 2. From the Crystal Reports tab drop an Application component onto the form and rename it 'CrystalApp'. 3. Next drop a CrReport component onto the form and rename it 'CrystalRpt'. 4. Finally drop a CRViewer component onto the form, rename it 'CrystalView', and change the align probably to alClient. 5. In the FormCreate procedure for the form, enter the following: CrystalApp.LogOnServer(); { <<<<<<<<<<< SEE NOTES BELOW } CrystalRpt.ConnectTo(CrystalApp.OpenReport('C:\MyReport.rpt')); CrystalView.ReportSource := CrystalReport.DefaultInterface; CrystalView.ViewReport; The CrystalApp.LogOnServer call can take a wide variety of input depending on how you are connecting to the database used in your report. The following is an excerpt from Crystal Reports Developer Help File: Syntax -----LogOnServer ( pDllName As String, pServerName As String, [pDatabaseName], [pUserID], [pPassword] )

Parameters ------------pDllName

Description -------------------------------------------------------Specifies the name of the DLL for the server or password protected non-SQL table you want to log on to, for example "PDSODBC.DLL". Note that the dllName must be enclosed in quotes. DLL names have the following naming convention: PDB*.DLL for standard (non-SQL) databases, PDS*.DLL for SQL/ODBC databases. Specifies the name of the DLL for the server or password protected non-SQL you want to log on to, for example "PDSODBC.DLL". Note

table that the dllName must be enclosed in quotes. DLL names have the following naming convention: PDB*.DLL for standard (non-SQL)databases, PDS*.DLL for SQL/ODBC databases. pServerName the is case-sensitive. See Remarks below. [pDatabaseName] [pUserID] [pPassword] server. Specifies the name for the database used to create the report. See Remarks below. Specifies the User ID number necessary to log on to the server. See Remarks below. Specifies the password necessary to log on to the Specifies the log on name for the server used to create report. For ODBC, use the data source name. This value

Remarks ------When you pass an empty string ("") for this parameter, the program uses the value that's already set in the report. If you want to override a value that's already set in the report, use a non-empty string (for example, "Server A"). NOTE: For an easy way to determine what your correct LogOnServer server is, open the report in Crystal Reports, and from the main menu go to Database | Set

Location. The location screen will show you the settings for Server Type, Server Name, Database, and User ID. NOTE: For an easy way to determine the correct dllName to use, open the report in Crystal Reports, and from the main menu go to Database | Convert Database Driver. From the Convert Database Driver window, place a checkmark in the box 'Convert Database Driver on next Refresh'. Your dllName is listed next to From. CLICK CANCEL WHEN CLOSING THIS WINDOW SO YOU DO NOT ACTUALLY CHANGE THE DATABASE DRIVER! I connect to a password protected Microsoft Access 97 database and use the following format. LogOnServer('pdsodbc.dll','MyDSN.dsn','','DB_Username','DB_Password'); NOTE: For those unfamiliar with ODBC, the DSN is setup through ODBC Data Sources in Windows Control Panel, and contains the database type, location, system database, and additional logon info. You may have to experiment around a bit to get the LogOnServer funciton working for your connectivity needs. Reference the help file Developr.hlp in the Seagate Software directory for assistance. That's ALL there is to it!

S-ar putea să vă placă și