How do I use Data-Driven Schedules for Crystal Reports in CRD?

A data-driven schedule allows you to drive all variables of your reporting requirements (parameters, destinations, output formats, etc.) from database tables and queries at run time.

Data-Driven Schedules for Crystal Reports.

A data-driven schedule allows you to drive all variables of your reporting requirements (parameters, destinations, output formats, etc.) from database tables and queries at run time. You can also use static text and default values should you wish. You can use Data Driven schedules for a number of scenarios.

Here are some examples:

  • Distribute a report to a fluctuating list of recipients. For example, you can distribute a report throughout a large organization where recipients vary from one month to the next, or use other criteria that determines group membership from an existing set of users. E.g. select * from mytable where firstname = ‘john’ will generate the report and distribute only for records where the recipient’s first name is John.
  • Filter the report output using report parameter values that are retrieved at run time. For example, the parameter value returned from the table for Last Name will be “Doe” for John Doe and “Smith” for John Smith.
  • Determine the delivery type and report format dynamically at run time. For example, John Smith gets the report as a PDF file by email with a customized email body and John Doe gets the report as an excel spreadsheet by FTP upload to his web server.

The following simple example will illustrate the process of creating a Data-Driven Schedule.

Scenario: You have a report which has a large number of parameter and destination combinations. Representing the combinations in a table may look something like the example below (Yellow = parameters)

Crystal Reports: Data Driven Example in CRD.

  • You need to have the report run once for each record. The parameter values entered in the table above should populate the parameters in the report and the report should be delivered to the destinations shown in the table.
  • Please note that with the above data when the schedule runs, the following will occur:
    • John Doe will receive only one email for the reports from sectors 1 and 3. He will also get the reports from sectors 2, 3 and 34 delivered to his reports disk location.
    • Peter Crimble will have his report printed on the Printer he specified.
    • Jorge Minola will have a copy of his report sent to John Doe to the disk location he specified and a copy uploaded to his FTP server and folder.
    • Anil Maharaja will receive an email as requested.
    • John Wu will have his report delivered to his email and FTP server as requested.

How do I create Data-Driven Schedule for Crystal Reports?

  • Go to Data-Driven.

Crystal Reports: CRD Home Menu.

crd get values from database

Building a Data Driver Wizard

  • The Data Driver is where you set up the source for data for your data driven reports. If your data source or data selection criteria changes this is where you will need to make any required changes.
  • ODBC DSN Name: Drop down and select a DSN.

We strongly recommend System DSNs so that the DSN is visible to CRD even when the user associated with the DSN is logged off.

All communication to databases (including Access databases) is done through ODBC, so you must setup a system DSN to the database before you can use this facility.

When setting up DSNs we recommend (if possible) that you use Windows Authentication (Trusted Connection). This ensures that your username and password are not required to be stored in CRD (more secure) and overcomes a large number of security restrictions which Windows places on DSNs. When using Windows Authentication, make sure that the CRD NT service user (or background application service user) has full rights to the database otherwise, though you will connect when you are logged in, automated scheduling will fail if the Service user has not got rights to the database.

When setting up a DSN to a SQL server, you must ensure that the "Default Database" setting is set to the database you are connecting to (Windows defaults this to "Master").

  • UserID: Enter the User ID CRD should use to log on to the database
  • Password: Enter the password associated with the above user.
  • Connect: Click Connect to connect to the Database.
  • Select the table from the database that holds the required data. You can refine your selection query by using the simple or advanced tabs.
  • Click Parse.
  • For more information of "Get Values From Database" interface, click here.
  • Click OK.

crd dd data driver

  • Click Build to specify the data selection criteria. This will return you to the Build Data Driver tool.
  • Key Column: Select the key column for the data that is returned for the reports. The information that drives the schedule is required to have a key column so that each row in the table is uniquely identified by the value in this column. The key column is there as an identifier which is used to troubleshoot in cases where there is a problem with one of the records.
  • Group reports by email address: You can instruct CRD to group reports that are sent to the same email address. Please note that enabling this option disables the ability to embed the reports in the email body for email destinations.

Click Next to continue to the next wizard section.

General Wizard

crd dd general

  • Parent Folder: The CRD folder where the package is stored.
  • Report Location: Select the Crystal report that needs to be scheduled. A crystal report can only be added if the CRD server can reach the report path.
  • Schedule Name: The name of the package.
  • Description: Add a Description to the schedule to better identify it.
  • Keyword (optional): Enter some keywords which can be used later by Smart Folders to identify this schedule.

Click Next to go to the next wizard section.

Schedule Wizard

crd dd schedule

In this section, you will decide when the report will execute. There are a variety of options:

  • Daily: Run a report every day or at a frequency of days.
    • Sub options: Repeat every X Days.

Example: Run the schedule every 3 days.

crd single schedule daily
  • Weekly: Run a report on a weekly time frame.
    • Sub options: Repeat every X weeks.

Example: Run the schedule every 2 Weeks.

  • On: Select the specific days of the week the schedule will run. If only once a week,select only the day of the week it will run.

Example: Run every Monday, Wednesday, and Friday.

crd single schedule weekly
  • Week Days: Run the schedule Monday through Friday.
crd single schedule week days
  • Working Day: Run the schedule starting on a specific day of the month. Indicate which day of the month the schedule will run. E.G. run the schedule on the 4th working day of the month.
crd single schedule working day
  • Monthly: Run the schedule on a monthly time frame.
    • Use the following options: Checking this box will enable you to select frequency options such as the “last Thursday of the month.” Also you can include or exclude specific months from the schedule.
crd single schedule monthly
  • Annual: Run the schedule every year at a specified time.
crd single schedule annual
  • Custom Calendar: Select the custom Calendar you wish to use. You can create a new custom calendar from the menu as well. Please see Custom Calendars for more information.
crd single schedule custom calendar
  • Other: Other scheduling options.
    • Run Schedule every X Minutes, hours, days, weeks, months, years.
crd single schedule other-1
  • None: No scheduling is required for this item.
crd single schedule none
  • Start Date: Enter the desired starting date for the schedule. This section can be the current date (providing schedule time has not already passed) or a date in the future.
  • End Date: If the schedule is due to end after a certain date enter that here. If the schedule is to run indefinitely, then leave it blank.
  • Schedule time: On the Next Run date, the package will run at this time.
  • Exception Calendar: Choose a calendar that will instruct the schedule to NOT run on those specified days. Please see Custom Calendars for more information.
  • Next to run on: The package will next run on this date.
  • Repeat Every: Rerun the package every x minutes from the scheduled time until your specified time.

For example, you can set up a daily package to run every day at 8 am, and to run every hour until 5 pm.

  • Until: After this date, there will be no automated scheduling of this package.
  • Enable this Schedule: Uncheck this option to Disable the package. Disabled packages are not deleted, but they do not execute automatically. You can re-start the automatic scheduling at a later date by checking this option again. Or right-clicking this schedule from the main screen and selecting Enable.

Click Next to continue to the next wizard section.

Destination Wizard

In this section, you will decide where your schedule will be delivered. The list in the center will display the list of destinations you have added to the schedule. You can organize the various destinations’ order by clicking on the green up and down arrows.

crd dd destinations

    • Add: Click here to add a destination. 

    crd destinations-2

    • Edit: Select a destination and click to edit it's properties. Or simply double-click on the destination.
    • Delete: Select a destination and click this button to delete it.
    • Import: Click here to import from the list of default destinations.
    • For more information about Type of Destinations, click here.
    • For more information about Output Formats, click here.

    For email and disk destinations on a Data Driven schedule, there is now the added ability to have them processed instantly instead of being processed at the end of the schedule. 

    crd dd deliver immediately

    Customizing the Destination

    With the Data Driven Schedule, you can determine the delivery method of your report based on your data. In your table, specify the delivery method by creating a column for each delivery type (FTP, SharePoint, Email etc.). For each record specify their email, fax number, and so on.

    Crystal Reports: Data Driven Example in CRD.

    Tip: For email destinations, simply add a semicolon after an email address to send the same instance of the report to another email address.

    • Data driving the Report's Distribution
    • As mentioned above, CRD will pull delivery data from your database.
    • In this example, we will be using email addresses found in the table.
    • With Data Driven inserts, simply drag and drop the field that indicates your desired destination (email in this case).

    Crystal Reports: Using Data Driven constants in Email Destitution in CRD.

    • Now CRD will deliver a unique report based on a corresponding email address.

    Customize Recipient Messaging

    • You can also customize the messaging the recipient receives. Using Data Driven Inserts, CRD will automatically pull data from your table and use it to customize the subject, body or report format.

    Crystal Reports: Using Data Driven Constants in Email Destination in CRD.

    • Simply drag and drop fields from your table to the desired position.

    For example, to customize an email greeting, type the greeting, and add the recipients name as shown above.

    Click Next to continue to the next wizard section.

    Report Wizard

    crd dd repor4t

    • In this section, you will determine the parameters for your report (if any) and select options for your subreport. If your report has no parameters, you may skip this section by clicking next.
    • Drag and drop your Data-Driven inserts into the desired parameter fields. If you do not wish to enter a data-driven value in your parameter, you can still manually type a value or select them from the dropdown box.
    • Repeat this process for all the parameters in your report.
    • There are 3 requirements in order for CRD to detect your Crystal Report parameters and their parameter values:
    1. The parameter must be in use in the report.
    2. The parameter must be visible.
    3. The parameter must be set to be prompted at runtime.
    • If these three requirements are achieved, you should see the parameters in your report listed on this screen.
    • For each parameter, select from the drop down list the value the report must use. In a single schedule, only one parameter value can be run at a time per parameter. You can type a value into the field as well.
    • Set as Null: Set no value for this parameter.
    • Ignore: Do not run this parameter, ignore it at runtime.
    • Insert Menu: You can insert constants, formulas, and database field values instead of a static "typed in" value. Right-click in the parameters field to expose the Insert menu.

    To enable a report parameter to run for a date constant (Current Date, Yesterday etc.), select CRD Constants from the insert window, then drag and drop your desired constant to the parameter field.

    • Selecting Date Parameters via Calendar: If your report contains a date parameter, you can either manually enter dates as described earlier in this topic, or select the desired date from the built-in calendar. Simply click on the date parameter field to open the calendar. Select the desired date. Click OK.
    • If the parameter is also a time parameter, this can be selected as well. The buttons below enable you to preview the report, adjust formulae, and review subreports. You can re-query the report for parameters as well.
    • Formulae: View edit and Parse the Record Selection Formulae.
    • Subreports: Set parameters, authenticate, and re-query sub-report parameters.
    • Preview: This shows you a preview of the report.

    The preview function only works if Crystal Reports is installed on the PC.

    Click Next to continue to the next wizard section.

    Report Options Wizard

    crd dd report options

    • Database Login: If the database requires logon credentials, check this option and enter the required username and password. If credentials are not required, uncheck the option and continue as normal (default). All values are optional. You only need to enter a value if your database, security, networking or infrastructure require it.
    • DB Type: Select the type of Database.
    • Server Name: Enter the server name of the database.
    • DB Name: Enter the name of the database.
    • Credentials: Enter the User ID and Password for the Database. Clicking on the Advanced tab, you can set logins for each table.
    • Advanced: Enables you to specify credentials at the table level. Double click the table to set its login information.
    • Resume failed/errored with cached data: If the schedule fails, resume the schedule from where it left off. You can then select how long the cached data should be kept.
    • Use data saved with the report: By default, CRD will always attempt to run the report using the very latest data in your database. If your report is saved "with data" and you want CRD to simply export the data in the report, then check this option.
    • Refresh the schedule: This refreshes the schedule before every execution.
    • Save snapshots of the execution and keep them for (days): Keep a copy of the report for how many days.

    Click Next to continue to the next wizard section.

    Exception Handling Wizard

    Crystal Reports: Exception Handling Wizard in Data Driven Schedule in CRD.

    • Treat as “error” if not completed in X minutes: If a report takes longer than the specified amount of time to run, this option will treat the schedule as an error and follow the appropriate action. The “Auto-calculate” option instructs CRD to automatically determine how long a schedule should take to run the report. If it takes longer than the calculated amount of time, then it is an error.

    If manually determining the error timing, please double-check the run time of the report in order to get the correct time estimate.

    • On error, retry executing schedule every: If set to 0, CRD will deem the schedule as "Failed" the first time it encounters an error. The schedule will not run again until its next scheduled time. Change the value to tell CRD how many times you want it to retry running the report before declaring it as "Failed."
    • Override error email: Check this option if you want to specify an email address that receives the error alert when it fails. This overrides the default email specified in Options.
    • Check if the Report is Blank: If a report is blank because it genuinely returned no data, recipients can misconstrue this as an error with the scheduler. This option allows you to identify genuine empty reports and instruct CRD on what to do with them.
    • Ignore the report and subsequent tasks: If the report is blank, do not send the report. The report will not be delivered to the destination. No custom tasks will be run.


    Crystal Reports: Exception Handling Wizard in Data Driven Schedule in CRD.

    • Select the Method that will determine whether a report is blank.
    • Native: CRD will check to see if the report returns any data. If not, the report is considered blank.

    Crystal Reports: Exception Handling Wizard in Data Driven Schedule in CRD.

    • SQL Query: Select this option to use a user made query that will determine if the report is blank. If the query returns no results, the report is blank.
    • Click Build.
    • Get values from a database window will appear. For more information about getting values from a database, click here.

    crd get values from database


    Crystal Reports: Exception Handling Wizard in Data Driven Schedule in CRD.

    • Select an action from the task list. This task will be executed in the event that a schedule is blank.
    • For more information about tasks, click here.

    Tip: You can send a notification if a report is considered blank instead of sending the report. Simply select “check if a report is blank” then select “Ignore the report.” In the actions tab, select “Send Email” from the list. Compose your email and save.

    Click Next to continue to the next wizard section.

    Custom Tasks Wizard

    crd dd custom tasks

    • In the section you have the option of setting up custom tasks. Custom tasks are business process automation tools that can be auto triggered before or after a report runs.
    • For more information on Custom Tasks, click here.
    • If you have no desire to add a Custom Task, you can click finish to complete the schedule.

    Data-Driven Schedule Context Menu

    Crystal Reports: Data Driven Schedule Context Menu in CRD.

    • Right-Click on a schedule to see the following actions:
      • Properties: Edit the schedule from here. Or you can just double click on the schedule.
      • Copy: Use this to copy the schedule. Right-click in the "white space" of the folder you wish to copy it to and select Paste button.
      • Rename: Rename the package.
      • Enabled: Schedules are enabled when there is a check icon beside this option. To stop a schedule from running, or to "pause" it for a while, select this option to remove the check icon. Disabled schedules will not run until they are enabled again.
      • Refresh: When a schedule is first created, CRD caches (saves) a copy of the report. All executions of the scheduled are performed using this copy. If you make changes to your master report, you must select this option in order to pull the changes into CRD.
      • Preview: Preview the report before execution.
      • Execute: This button will execute the schedule immediately. Note that the next run date and time is not moved on as a result of a manual execution. They only move on if the schedule is run automatically by one of the schedulers.
      • Delete: Selecting this option will delete the schedule.
      • Report Design: Preview the report Design.
      • Test: Use this option to test the schedule and export it to selected "test" destinations.
      • Convert To Package: This button will convert this report into a package. The package will have the name of the single schedule report.
      • Move into a package: Use this option to move the report into an existing package.
      • Ad-Hoc Email to Recipients: Select this option to send an ad-hoc email to all recipients of this package. You can use this to alert recipients to a planned system outage, or any other useful information.
      • Create Shortcut: Use this option to create a shortcut you can save in any location on your PC. Execute the shortcut to execute the schedule in CRD.
      • Ad-Hoc View: This button allows you to preview the report.

    Data Driven Schedule Properties

    Crystal Reports: Data Driven Schedule Context Menu in CRD.

    • To access your schedule properties, right click on a schedule and select properties.
    • Similar to the schedule wizard, you adjust settings to your schedule such as timing, error handling, or custom tasks.
    • General

    Crystal Reports: Data Driven Schedule Properties Wizards in CRD.

    • Schedule

    crd dd schedule

    • Report

    crd dd repor4t

    • Report Options

    crd dd report options

    • Destinations

    crd dd destinations

    • Exception Handling

    Crystal Reports: Data Driven Schedule Properties Wizards in CRD.

    • History: Review the schedule's history. Successes, failures, and other data is located here.

    crd dd history

    • Custom Tasks

    crd dd custom tasks

    • Data Driver

    crd dd data driver