Crystal Reports XI-2 Day Training Course v1-4

110
Crystal Reports XI Training Notes Issue: 1.4 Issued Date: Jan 07

Transcript of Crystal Reports XI-2 Day Training Course v1-4

Page 1: Crystal Reports XI-2 Day Training Course v1-4

Crystal Reports XI Training Notes

Issue: 1.4 Issued Date: Jan 07

Page 2: Crystal Reports XI-2 Day Training Course v1-4
Page 3: Crystal Reports XI-2 Day Training Course v1-4

Crystal Reports XI Training Course

Table of Contents Issue 1.4 i

Issue Details

Issue Date Author Comments

1.0 20/10/06 D. Mountford Initial draft complete.

1.1 25/10/06 D. Mountford Minor modifications.

1.2 08/11/06 D. Mountford Minor modifications.

1.3 23/11/06 N. Anstee Minor modifications.

1.4 03/01/07 D. Mountford Minor modifications.

Page 4: Crystal Reports XI-2 Day Training Course v1-4

Crystal Reports XI Training Course

ii Issue 1.4 Table of Contents

Page 5: Crystal Reports XI-2 Day Training Course v1-4

Crystal Reports XI Training Course

Table of Contents Issue 1.4 iii

Table of Contents 1 Introduction ............................................................................................. 1-1

1.1 Crystal Reports................................................................................ 1-1 1.2 ClearSCADA.................................................................................... 1-1

2 Installation & Configuration..................................................................... 2-1 3 Connecting to a Data Source ................................................................. 3-1

3.1 Setup a System DSN ...................................................................... 3-1 3.2 Connecting Crystal Reports to ClearSCADA.................................. 3-2 3.3 Selecting Database Information ...................................................... 3-4 3.4 Displaying Database Information .................................................... 3-7

4 Record Selection .................................................................................... 4-1 4.1 Crystal Reports in ClearSCADA...................................................... 4-1 4.2 Maintenance Report (Version 1) ..................................................... 4-5 4.3 Select Expert ................................................................................... 4-7 4.4 Record Sort Expert........................................................................ 4-11 4.5 Report Generation & Displaying.................................................... 4-12

5 Report Formatting................................................................................... 5-1 5.1 Maintenance Report (Version 2) ..................................................... 5-1 5.2 Inserting Picture Objects ................................................................. 5-2 5.3 Inserting Special Fields ................................................................... 5-2 5.4 Inserting a Page Footer................................................................... 5-3 5.5 Highlighting...................................................................................... 5-4

6 Group Selection ...................................................................................... 6-1 6.1 Predictive Maintenance Report (Version 1) .................................... 6-1 6.2 Group Expert ................................................................................... 6-3

7 Summary Fields...................................................................................... 7-1 7.1 Predictive Maintenance Report (Version 2) .................................... 7-1 7.2 Inserting a Summary ....................................................................... 7-3 7.3 Drill Down ........................................................................................ 7-4 7.4 Inserting a Box ................................................................................ 7-6 7.5 Inserting a Line................................................................................ 7-7

8 Charts ..................................................................................................... 8-1 8.1 Predictive Maintenance Report (Version 3) .................................... 8-1 8.2 Insert Chart...................................................................................... 8-1

9 Day 1 Review.......................................................................................... 9-1 9.1 Day 1 Review Report ...................................................................... 9-1

10 Parameterized Reports ..................................................................... 10-1 10.1 Production Report (Version 1)....................................................... 10-1 10.2 Inserting Parameter Fields ............................................................ 10-2 10.3 Parameters from ClearSCADA ..................................................... 10-7

11 Report Sections................................................................................. 11-1 11.1 Production Report (Version 2)....................................................... 11-1 11.2 Section Expert ............................................................................... 11-2

12 Report Templates ............................................................................. 12-1 12.1 Production Report (Version 3)....................................................... 12-1 12.2 Template Expert ............................................................................ 12-1 12.3 Creating a Report Template.......................................................... 12-3 12.4 Inserting a Template Field Object ................................................. 12-4

13 Creating Formulas ............................................................................ 13-1

Page 6: Crystal Reports XI-2 Day Training Course v1-4

Crystal Reports XI Training Course

iv Issue 1.4 Table of Contents

13.1 Device Status Summary Report.................................................... 13-1 13.2 Inserting Formula Fields................................................................ 13-3

14 Subreports......................................................................................... 14-1 14.1 Master Report................................................................................ 14-1 14.2 Inserting Subreports ...................................................................... 14-2

15 Comments......................................................................................... 15-1 16 Troubleshooting ................................................................................ 16-1

16.1 Failed to generate a Crystal Report .............................................. 16-1 17 Definitions/Abbreviations .................................................................. 17-1

Page 7: Crystal Reports XI-2 Day Training Course v1-4

Crystal Reports XI Training Course

Section 1 - Introduction Issue 1.4 1-1

1 Introduction The purpose of this course is to introduce users to the Crystal Reports XI software and its use in conjunction with ClearSCADA (SCADA Management Software). The course will cover the installation and configuration of both Crystal Reports and ClearSCADA, an overview of the interface between Crystal Reports and ClearSCADA, and the creation of custom Crystal Reports using ClearSCADA as its data source. As part of this course many of the tools and features of Crystal Reports will be explored through the creation of real-world example reports. These reports will range from the usage of simple features such as record selection and basic report formatting, to advanced features such as formulas and sub-reports. Although the primary focus of this course is Crystal Reports, some knowledge of ClearSCADA will be required to successfully achieve the outcomes of the course. For this reason some time will be spent introducing users to both Crystal Reports and ClearSCADA concepts.

1.1 Crystal Reports Crystal Reports is a Business Intelligence application used to design and generate content-rich, professional reports suited to individual or business needs. This allows report users to quickly analyze and interpret the information that is important to them (or their business). Crystal includes an extensive set of interfaces to a myriad of data sources. Simple reports can be generated quickly and easily with an intuitive report generation wizard, and Crystal also includes a comprehensive toolset for producing complex or specialised reports.

1.2 ClearSCADA ClearSCADA is a true client-server architecture SCADA Management Software package. The software is made up of three (3) major components: Database Server The Database Server is responsible for storing and maintaining the information contained within the ClearSCADA Database and serving that information to clients, which have made a request on that data. The Database server is also responsible for providing the core functionality of the SCADA system, i.e. the ability to request and receive data from real world devices and then use that information in a meaningful way.

Page 8: Crystal Reports XI-2 Day Training Course v1-4

Crystal Reports XI Training Course

1-2 Issue 1.4 Section 1 - Introduction

Communications Drivers The Communications Drivers are responsible for defining and controlling communications between the ClearSCADA server and many types of real world devices. ClearSCADA supports both simple drivers, such as Modbus and OPC, and more advanced drivers, such as DNP3. ViewX/WebX Clients ClearSCADA provides two (2) client-side interfaces for communication between a ClearSCADA server and a client, namely ViewX and WebX. These clients run on computers that access the ClearSCADA database (stored on the ClearSCADA server) via a network connection. ViewX is the primary client application and is used to configure and view all aspects of the system. We will be using ViewX throughout this course for the creation of Crystal Report objects, and the creation and configuration of other objects to be used as part of our reports. The following is a high-level overview of how the ClearSCADA Server interfaces with both real-world devices and clients:

Page 9: Crystal Reports XI-2 Day Training Course v1-4

Crystal Reports XI Training Course

Section 2 - Installation & Configuration Issue 1.4 2-1

2 Installation & Configuration The installation and configuration of ClearSCADA and Crystal Reports has already been done for you.

Page 10: Crystal Reports XI-2 Day Training Course v1-4

Crystal Reports XI Training Course

2-2 Issue 1.4 Section 2 - Installation & Configuration

Page 11: Crystal Reports XI-2 Day Training Course v1-4

Crystal Reports XI Training Course

Section 3 - Connecting to a Data Source Issue 1.4 3-1

3 Connecting to a Data Source One of the key features of Crystal Reports is that it provides connectivity to a wide variety of data sources. This includes local database files such as a Microsoft Access database, or pre-existing ODBC data sources (for example). As part of this course we will be using Crystal Reports to connect to the ClearSCADA database as an ODBC data source, through the use of a System DSN (Data Source Name). Refer to the following section for details on how to create and configure a System DSN for ClearSCADA.

3.1 Setup a System DSN To connect Crystal Reports to the ClearSCADA database a DSN must be created. This provides connectivity to the database through the ODBC interface. The DSN contains the database name, directory, database driver, User ID, password, and other information. Once setup this DSN can be used to retrieve information from the ClearSCADA database by third party applications, such as Crystal Reports. To setup a System DSN:

• Open the Windows® Control Panel. • Open the Administrative Tools. • Open Data Sources (ODBC). • Select the ‘System DSN’ tab. A System DSN is available to all

applications or users on the local machine.

NOTE: If there is already an entry named ClearSCADA in this list, click on it, select ‘Configure’ and ensure the settings are as per the following steps.

• Select the Add button. • Select the ‘Control Microsystems ClearSCADA Driver’ option from the

list and click finish. • On the form displayed enter the following details:

o Name: Enter ‘ClearSCADA’. o System: Select ‘MAIN’ from the drop-down menu. o Local Time: Tick the box. o User Name: Enter ‘Eng’ o Password: Leave blank o Leave all other settings as defaults.

The settings should look similar to the screenshot below:

Page 12: Crystal Reports XI-2 Day Training Course v1-4

Crystal Reports XI Training Course

3-2 Issue 1.4 Section 3 - Connecting to a Data Source

• Click the ‘Ok’ button. • Click the ‘Ok’ button to finish creating the DSN.

Crystal Reports will now be able to connect to and retrieve information from the ClearSCADA database for use in reports.

NOTE: Entering a user name and/or password in the DSN configuration is not always recommended, as this means that anyone who can access the DSN can access the ClearSCADA database without logging in.

3.2 Connecting Crystal Reports to ClearSCADA We are now ready to create a connection between Crystal Reports and the ClearSCADA database, using the System DSN created above.

• Click on the Start button and select All Programs > BusinessObjects 11 > Crystal Reports > Crystal Reports 11.

• If the Business Object Registration Wizard opens, click the ‘Register Later’ button.

• Cancel and/or close any dialogs that popup asking to check for Crystal Reports XI Updates.

• Click File > New > Blank Report (or click on the Blank Report link under the New Reports heading on the Start Page).

• You should be presented with a screen that looks similar to below:

Page 13: Crystal Reports XI-2 Day Training Course v1-4

Crystal Reports XI Training Course

Section 3 - Connecting to a Data Source Issue 1.4 3-3

• In the Available Data Sources frame click the plus icon next to the ‘Create New Connection’ entry to expand it.

• From the options presented click the plus icon next to the ‘ODBC (RDO)’ folder to expand it. This will open a new window for selecting the desired Data Source and should look similar to below:

Page 14: Crystal Reports XI-2 Day Training Course v1-4

Crystal Reports XI Training Course

3-4 Issue 1.4 Section 3 - Connecting to a Data Source

• In the Data Source Name list select the ‘ClearSCADA’ option. • Click the ‘Next’ button. • In the User ID field enter “Eng” and click ‘Finish’.

You should now see a ClearSCADA entry under the ‘ODBC (RDO)’ folder. Under this entry is an alphabetical list of all of the tables configured in the ClearSCADA database. This list also includes any configured Data Grids and Historic Views, which will be covered in more depth later.

3.3 Selecting Database Information We will now select a table to add to the report and display some information.

• Scroll down until you find the table named ‘CDBPoint’. • Click on the ‘CDBPoint’ entry then click on the right arrow (or double

click on the ‘CDBPoint’ entry) to add the table to the Selected Tables list.

You should have a screen similar to below:

Page 15: Crystal Reports XI-2 Day Training Course v1-4

Crystal Reports XI Training Course

Section 3 - Connecting to a Data Source Issue 1.4 3-5

• Click ‘Ok’ to close the Database Expert. One other thing we will do before we select the information we wish to display on our report, is to enable the Grid option feature for all of our reports. This allows us to easily line up and resize fields making reports appear neater.

• Select File > Options. • In the Layout tab under Design View, check the tick-box next to the

word Grid. • Click ‘Ok’ to close the Options.

NOTE: The default grid size can be modified if required using the Grid options > Grid Size.

Now that our Crystal Report is linked to a table in our ClearSCADA database, we are ready to select the information within this table that we wish to display. Firstly, let’s make sure we have the toolbars and explorer bars we will be using on display.

• Throughout this course we will use icons from each of the toolbars, so please ensure that all of the toolbars are displayed by clicking View > Toolbars. Make sure each toolbar has a tick next to it.

Page 16: Crystal Reports XI-2 Day Training Course v1-4

Crystal Reports XI Training Course

3-6 Issue 1.4 Section 3 - Connecting to a Data Source

• The explorer bar of interest to us is the ‘Field Explorer’ bar. Close any other open explorer bars for now and ensure that the ‘Field Explorer’ is shown by clicking View > Field Explorer.

We are now ready to browse the database information associated with the data source the report is linked to.

• Within the Field Explorer click the plus icon next to the ‘Database Fields’ entry to expand it. Under this you should see a ‘CDBPoint’ entry.

• Click the plus icon next to the ‘CDBPoint’ entry to expand it. Under this you should see an alphabetical list of entries. These are all of the Configuration Fields, Data Fields and Aggregates associated with the ClearSCADA table selected.

If you cannot see the full names of the entries here, expand the width of the Field Explorer bar until you can. You should have a screen that looks similar to below:

We can now insert the desired information into the report. The fields we are interested in for this example are ‘FullName’ and ‘CurrentValueFormatted’. The FullName property is a unique reference to an object that is comprised of the objects name and full path within the database structure. The CurrentValueFormatted property is common to all point objects within the

Page 17: Crystal Reports XI-2 Day Training Course v1-4

Crystal Reports XI Training Course

Section 3 - Connecting to a Data Source Issue 1.4 3-7

database and contains the current value of the point, with any formatting or units included. As an example say we have a point in our database that measures a dam level. If its FullName is “Sites.Eastern WTP.Dam Level”, this tells us that the points name is Dam Level and shows us its location of the point within the database structure. If its CurrentValueFormatted is “6805.503 M/L”, this tells us the point’s current value, units and formatting, but the raw value returned from the field might be 6805.5032349951.

• Within the Field Explorer find the entry named ‘FullName’ under CDBPoint. Click and hold the mouse button on it and drag it onto the report workspace. Drop it (release the mouse button) in between the lines in the ‘Details’ section.

• Position the FullName field to the far left of the Details section by dragging and dropping it. Increase the width of the field to around 2/3 the width of the page by clicking on the field and using the resize handle on the right-hand side.

• Find the entry named ‘CurrentValueFormatted’ under CDBPoint. Click and hold the mouse button on it and drag it onto the report workspace. Drop it (release the mouse button) in between the lines in the ‘Details’ section.

• Position the CurrentValueFormatted field to the right of the FullName field by dragging and dropping it.

When fields are dragged into the Details section of a report, a heading is also created in the Page Header section. Fields in the Page Header section of a report are printed on every new page within the report. This heading will default to the field name associated with it. The headings can be made more readable by modifying the name of the heading. To do this right-click on the field and select Edit Text (or double click on it) and change the text as desired. You may have noticed that once a field is dragged onto a report a green tick appears next to its name in the Field Explorer. This simply means that the field is being displayed somewhere on the report. This applies to all of the field types, including formulas and parameters, which will be covered later.

NOTE: This green tick also appears if the database field is used within the record Select Expert and is not actually displayed anywhere on the report. This will be covered in more depth later.

We are now ready to display the information we have selected from the ClearSCADA database.

3.4 Displaying Database Information

Page 18: Crystal Reports XI-2 Day Training Course v1-4

Crystal Reports XI Training Course

3-8 Issue 1.4 Section 3 - Connecting to a Data Source

Now that we have selected the information we want to display on our report we are ready to preview it.

• Select View > Print Preview (alternatively click on the Print Preview button in the Standard toolbar or hit CTRL + R)

NOTE: During this course the menu options will be primarily used for accessing the required functionality. However nearly everything that can be accessed via the menus can also be accessed by the corresponding shortcut in the toolbars. Mousing over these shortcuts will display what they link to, and you will also notice that the icons displayed match the icons in the menus.

You should be presented with a screen that looks similar to the following:

This is a list every point in our ClearSCADA database and the current value (formatted) associated with each one.

NOTE: Some of the points have a blank value in the CurrentValueFormatted column. This most likely means that the point has either not being initialised or the device it is connected to is in a failed, offline or out-of-service state.

You’ll notice that this list isn’t sorted alphabetically. That is because when a ClearSCADA database table is queried, the results are returned in order of

Page 19: Crystal Reports XI-2 Day Training Course v1-4

Crystal Reports XI Training Course

Section 3 - Connecting to a Data Source Issue 1.4 3-9

Object Id. Each object in the ClearSCADA database has a unique identifier (Id) associated with it. Above the report preview on the right-hand side is a customised version of the Navigation toolbar. The white section in the middle of this toolbar should contain the text “1 of 1+”. This indicates that the report contains multiple pages.

• Click on the single right-hand arrow to navigate to the next page. • Click on the refresh button (or press F5) to refresh the data in the

report. Note that some of the current values will change. Remember that Crystal Reports produces a ‘snap-shot’ of the data in our system. Use ClearSCADA to access the up-to-date 'live' data in our system.

• Click on the right-hand arrow with a line next to it to navigate to the last page in our report. If you only have the example projects loaded and have not changed the default height of any of the report sections, there should be nine (9) pages of points.

NOTE: The Preview window can be closed at any time by clicking on the cross ‘x’ next to the word Preview.

We have now successfully created a Crystal Report, linked it to a table in our ClearSCADA database and displayed some specific information from this table (CDBPoint). Click on File > Save to store the report on disk. Save it with the file name “Basic Report.rpt” into a folder called ‘Reports’ in My Documents (create the folder if necessary). The next chapter will introduce you to the concept of Record Selection through the use of the Select Expert tool, which allows the information queried to be subject to various selection criteria. As part of this a real-world Maintenance Report will be created and will be improved upon during following chapters. The chapter will also introduce the Crystal Reports driver embedded within ClearSCADA, which allows a smoother interface between the two software packages and explores the various techniques for exporting and displaying reports.

Page 20: Crystal Reports XI-2 Day Training Course v1-4

Crystal Reports XI Training Course

3-10 Issue 1.4 Section 3 - Connecting to a Data Source

Page 21: Crystal Reports XI-2 Day Training Course v1-4

Crystal Reports XI Training Course

Section 4 - Record Selection Issue 1.4 4-1

4 Record Selection The previous chapter illustrated how to create a new Crystal Report, link it to an external data source, and display some simple information from that data source. The focus of this chapter is to introduce users to record selection techniques, allowing the information to be filtered based on various criteria. A real-world example report will be created during this chapter, which will be improved upon in future chapters.

NOTE: At the end of any chapter if you have not completed a report that is required for the following chapter, a pre-completed copy of the report can be obtained and loaded from the training resources directory.

In the previous chapter the report was created from within the Crystal Reports environment and saved to disk as a report file (.rpt). ClearSCADA has an integrated Crystal Reports driver that allows Crystal Report objects to be created and stored within its own database, and seamlessly generated or exported to all formats supported by Crystal Reports. The following section illustrates how to create and configure a Crystal Report from within the ClearSCADA environment.

4.1 Crystal Reports in ClearSCADA We will now explore the interface between Crystal Reports and the ClearSCADA Crystal Reports driver.

• If the Crystal Reports application is still open, close it now. Save the report if you have made any changes since the last time it was saved.

• Click on the Start button and select All Programs > Control Microsystems ClearSCADA > ViewX (or run the ViewX shortcut on the desktop).

• After loading you should be presented with a screen that looks similar to below:

Page 22: Crystal Reports XI-2 Day Training Course v1-4

Crystal Reports XI Training Course

4-2 Issue 1.4 Section 4 - Record Selection

The first thing you may notice is a slightly irritating sound beeping at you if your computer has sound enabled. This is happening because there are active alarms in the Alarm Banner (which is located at the bottom of the screen above the Status Bar). These alarms are part of the ClearSCADA demo projects, so don’t worry, we haven’t broken anything yet. If desired the sound can be temporarily disabled by right-clicking on the red rectangle on the left side of the Alarm banner and selecting ‘Disable Bell’. Within this rectangle the top number is the number of unacknowledged alarms in your area of the system (i.e. the alarms that you have permissions to view), and the bottom number is the total number of alarms in your area of the system.

NOTE: The alarm bell can be enabled/disabled or the entire alarm banner can be removed on a per user basis.

On the left-hand side of the ViewX window is the Database Explorer bar. This is where users can browse to, configure and view any object within the database (provided they have sufficient permission). Objects can be sorted into folder-like objects called Groups, which is useful for keeping related objects together, thus maintaining a highly cohesive database structure. Many standard Windows® operations (such as copy and paste) are supported within this bar.

Page 23: Crystal Reports XI-2 Day Training Course v1-4

Crystal Reports XI Training Course

Section 4 - Record Selection Issue 1.4 4-3

The database is configured with an example project that is imported as part of the ClearSCADA Demo installation. By default this example project has security enabled so that access is restricted. We will now log into our system so we have the required permissions to create and configure objects.

• Right-click on the word ‘MAIN’ and select the ‘Log On’ option. Enter “Eng” into the Username field and leave the Password field blank. User names and passwords are case-sensitive in ClearSCADA so ensure the case is correct.

• Click ‘Ok’. You should have a screen that looks similar to below:

NOTE: If the login fails it is likely that the example projects have not being imported. If this occurs right-click on the word ‘MAIN’ and select ‘Import & Merge’. Navigate to the training resources directory, click on the ‘Example Projects.sde’ file and select Open.

• Once logged in you will notice that the screen has changed. Within

ViewX the toolbar, explorer bar, status bar and alarm banner arrangement is automatically saved on a per user basis.

• Within the Database Explorer bar click the plus icon next to the word ‘MAIN’ to expand the database tree. If for any reason the Database Explorer bar isn’t displayed, click View > Explorer Bar > Database.

• Click the plus icon next to the ‘Example Projects’ group to expand it. Under this click the plus icon next to the ‘~Config’ group.

Page 24: Crystal Reports XI-2 Day Training Course v1-4

Crystal Reports XI Training Course

4-4 Issue 1.4 Section 4 - Record Selection

The ~Config folder (group) is often used to store project-specific configuration such as user accounts and groups, template objects, custom colors and symbols.

• Right-click on the group named ‘~Config’ and select New > Group > Group.

• Name the newly created group “Reports” and press Enter. You should have a screen that looks similar to below:

This is where we will store our Crystal Reports objects.

• Right-click on the new group named ‘Reports’ and select New > Other > Crystal Report.

• Name the newly created report “Maintenance Report” and press Enter. We have now created a Crystal Report object within our ClearSCADA database, which is ready to be configured.

• Right-click on the new report named ‘Maintenance Report’ and select Edit (or double click on it).

NOTE: The default action performed by double-clicking on an object is subject to the account configuration of the logged in user.

Page 25: Crystal Reports XI-2 Day Training Course v1-4

Crystal Reports XI Training Course

Section 4 - Record Selection Issue 1.4 4-5

NOTE: Double clicking on any object within the Database Explorer bar in ViewX will perform the default action for that object. For example, double clicking on a Mimic type object will display it. The default action for a Crystal Report object is to edit it.

The Crystal Reports editor will load.

• If an error message is displayed about the report using an invalid printer, click ‘Ok’ to close it.

• Close the Business Object Registration Wizard or any Update dialogs that may appear.

We should now be left with a familiar looking blank report, which we will now configure to be a useful Maintenance Report.

4.2 Maintenance Report (Version 1) We’ll now create a maintenance style report, which shows the number of device failures experienced in the system for the last 7 days. You will have noticed that the Database Expert was not automatically opened (as per creating a blank report from within Crystal Reports), so the first thing we need to do is link the report to a data source and select the table(s) we wish to display information from.

• Open the Database Expert by clicking Database > Database Expert (or right-click on ‘Database Fields’ in the Field Explorer and select Database Expert).

• In the Available Data Sources frame click the plus icon next to the ‘Create New Connection’ entry to expand it.

• From the options presented click the plus icon next to the ‘ODBC (RDO)’ folder to expand it.

• Click the plus icon next to the ‘ClearSCADA’ entry to expand it. If there is no ‘ClearSCADA’ option you will need to create a new connection (refer to the steps in section 3.2).

• Scroll down until you find the table named ‘CDBEventJournal’. The CDBEventJournal table, as the name would suggest, contains all of the event data stored in the ClearSCADA database. Simply put, events are records of occurrences on your system. Events are logged for user interaction with the system and for automatic system occurrences such as alarms, point updates & scheduled archiving.

• Click on the ‘CDBEventJournal’ entry then click on the right arrow (or double click on the ‘CDBEventJournal’ entry) to add the table to the Selected Tables list.

• Click ‘Ok’ to close the Database Expert.

Page 26: Crystal Reports XI-2 Day Training Course v1-4

Crystal Reports XI Training Course

4-6 Issue 1.4 Section 4 - Record Selection

We now have a blank report, which is linked to the table, which stores all event data in our ClearSCADA database. The fields of interest are as follows:

Field Data Type Description Severity String Severity of the event. Time Time Time the event occurred. Message String Message describing the event.

• Within the Field Explorer click the plus icon next to the ‘Database

Fields’ entry to expand it. Under this you should see a ‘CDBEventJournal’ entry.

• Click the plus icon next to the ‘CDBEventJournal’ entry to expand it. • Find the entry named ‘Severity’. Drag and drop it into the ‘Details’

section of the report, towards the left-hand side. • Find the entry named ‘Time’. Drag and drop it into the ‘Details’ section

of the report, on the right-hand side of the Severity field. • Find the entry named ‘Message’. Drag and drop it into the ‘Details’

section of the report, on the right-hand side of the Time field. Your report should look similar to below:

We’ll now try to preview the data.

• Select View > Print Preview (alternatively click on the Print Preview button in the Standard toolbar or hit CTRL + R)

Page 27: Crystal Reports XI-2 Day Training Course v1-4

Crystal Reports XI Training Course

Section 4 - Record Selection Issue 1.4 4-7

You will receive an error message saying “Failed to retrieve data from the database”. Click ‘Ok’ and a more detailed error message will be displayed. The problem is that we have not specified time constraints for our Event Journal query. For a reasonable sized system that has been running for an extended period of time, the amount of event journal data can be in the order of several Gigabytes, and thus it is unreasonable to expect Crystal to query this data.

NOTE: The length of time that event (and historic) data is kept on the ClearSCADA server is configurable in the Server Configuration > Global Parameters > Historic section. Data that becomes older than the time frame specified is automatically deleted from the server, thus it is important to archive regularly.

4.3 Select Expert We’ll now use the Select Expert to filter the records based on a dynamic time period.

• Click ‘Ok’ on any open error messages. • Close the blank Preview window by clicking on the cross next to the

word ‘Preview’. • Select Report > Select Expert to open the Select Expert. • In the Choose Field dialog select ‘CDBEventJournal.Time’ from under

Report Fields and click ‘Ok’. The Select Expert dialog will now be open, ready to define the required criteria for the Time field.

NOTE: The Select Expert can also be launched by right-clicking on a field and selecting ‘Select Expert’. In this case the ‘Choose Field’ dialog is bypassed.

• Click on the drop-down box under the ‘CDBEventJournal.Time’ tab.

This drop-down menu lists all of the available selection criteria for the field chosen, and is context sensitive.

• Select the ‘is in the period’ option. • In the new drop-down box that appears, select ‘Last7Days’.

Your screen should look similar to below:

Page 28: Crystal Reports XI-2 Day Training Course v1-4

Crystal Reports XI Training Course

4-8 Issue 1.4 Section 4 - Record Selection

• Click ‘Ok’. We now have now added a time constraint, but on a large system the number of event records generated in a week may be in the order of hundreds of thousands. We will use the Select Expert to add another constraint to reduce the amount of data returned.

• Right-click on the Message field in the Details section of the report and choose Select Expert.

• You will notice a new tab within the Select Expert named ‘CDBEventJournal.Message’ has been added next to the tab named ‘CDBEventJournal.Time’.

• Click on the drop-down box under the ‘CDBEventJournal.Message’ tab and select the ‘is like’ option.

• In the new drop-down box that appears enter the following text: *Device Failed*

NOTE: Database object names are case-sensitive, so care must be taken when typing strings to be matched to object names.

• Click the Add button. • Click the ‘Ok’ button.

The criteria we have added specifies that it must only select records where the Message field contains the string “Device Failed”. The ‘*’ symbol is a

Page 29: Crystal Reports XI-2 Day Training Course v1-4

Crystal Reports XI Training Course

Section 4 - Record Selection Issue 1.4 4-9

wildcard which means that * can be substituted with any number of other characters. We will now add a title to our report.

• Select Insert > Text Object (or right-click somewhere in the report and select Insert Text Object).

• Click and hold the mouse button down in the Report Header section and drag a rectangle shape. Release the mouse button when you are happy with the size.

• Type in the following text: <Your name>’s 7 Day Report - Device Failures, replacing <Your name> with your name.

• Click off the text object to finish editing the text. • Right-click on the newly created text object and select Format Text. • Under the Font tab change the Size to 16. • Under the Paragraph tab change the Alignment to Centered. • Click ‘Ok’. • Select View > Print Preview (alternatively click on the Print Preview

button in the Standard toolbar or hit CTRL + R) and wait while the ClearSCADA database is queried.

NOTE: Crystal Reports caches the data returned in a query so that subsequent previews of the report will not cause unnecessary processing and network activity. At any time the report data can be refreshed by selecting Report > Refresh Report Data (or pressing F5).

When the query has finished you should have a report that looks similar to below (you may have a lot less records):

Page 30: Crystal Reports XI-2 Day Training Course v1-4

Crystal Reports XI Training Course

4-10 Issue 1.4 Section 4 - Record Selection

There are a couple of things you will probably notice:

- The field widths are not formatted particularly well. When a field is dragged onto a report Crystal estimates how wide to make the field based on its data type, but this is not always accurate with real world data.

- The Message field tells us what the problem is but not what object the problem has occurred on.

- The records are sorted by the Time field in an ascending order. This ordering is not specified by Crystal, but simply the order in which the results from the ClearSCADA database were returned.

We will now format the fields to increase readability, add a new field to the report which shows us which object (or device) the event is associated with, and sort the records in a descending order of Time (so that the most recent failures are at the top of the report).

• Open the design tab by clicking on the word ‘Design’ next to the Preview tab.

• Click File > Page Setup and change the Orientation to ‘Landscape’. This will give us more space to view an extra field.

Page 31: Crystal Reports XI-2 Day Training Course v1-4

Crystal Reports XI Training Course

Section 4 - Record Selection Issue 1.4 4-11

NOTE: If no printers are detected the PC, use of the landscape option may cause an error displaying the data. If this occurs simply install a text printer via the Windows Control Panel.

• Click ‘Ok’ to close the Page Setup. • Within the Field Explorer find the entry named ‘Source’. Drag and drop

it into the ‘Details’ section of the report, in between the ‘Time’ and ‘Message’ fields. The Source fields is as follows:

Field Data Type Description Source String Name of the object the event is

associated with.

• Reposition and resize the fields on the report until you can correctly see the data within each field (you may need to decrease the font size using the Formatting toolbar).

NOTE: Report fields can also be moved, resized and formatted in the Preview view of the report. This can be especially useful for getting the width of field’s correct.

4.4 Record Sort Expert

• Select Report > Record Sort Expert to open the Record Sort Expert. • In the Available Fields list select ‘CDBEventJournal.Time’ from under

Report Fields and click on the right arrow (or double click on the ‘CDBEventJournal.Time’ entry) to add the field to the Sort Fields list.

• Make sure the Sort Direction is set to Descending.

NOTE: Crystal Reports allows multiple sort criteria.

• Click ‘Ok’.

If you aren’t already viewing the Preview tab, change to it now. Close any Explorer Bars open to increase the space for viewing our report. You should have a report that looks similar to below:

Page 32: Crystal Reports XI-2 Day Training Course v1-4

Crystal Reports XI Training Course

4-12 Issue 1.4 Section 4 - Record Selection

We’ll now save the changes we have made.

• Click on File > Save (or press CTRL + S) to save the report. You will notice that despite the fact we started with a blank report, no dialog is presented to choose where to save the report. This is because the report was linked from ClearSCADA, and is automatically saved back into the ClearSCADA database.

NOTE: In order to update a report in the ClearSCADA database, ViewX must remain running while the report is being edited in the Crystal Reports application. As each report must be saved using its original file name, it is advised that you always use the Save option in Crystal, rather than the Save As option, to store your reports.

• If you wish to save a file copy of your report as well, click on File > Save As. Name the report “Maintenance Report v1.rpt” and save it in the ‘Reports’ folder in My Documents (create the folder if necessary).

The next section will explore the generation and displaying of reports from within ClearSCADA.

4.5 Report Generation & Displaying

Page 33: Crystal Reports XI-2 Day Training Course v1-4

Crystal Reports XI Training Course

Section 4 - Record Selection Issue 1.4 4-13

The Crystal Reports driver in ClearSCADA allows configured reports to be generated then either displayed in the built-in Crystal Report viewer, exported to disk in a specified file format (for example, PDF or CSV) or emailed to specified users. The following table shows each of the Crystal Reports specific actions available for reports in ClearSCADA: Action Description Display Displays a report that has been generated as an inset in

the Crystal Reports viewer. Export Report Exports a report in the format and to the destination

specified in the Crystal Report object properties. The report is produced on the fly and contains the latest data.

Generate Report Generates and stores a report on the server. The generated report will replace the previously generated version of the same report, unless the report is stored historically.

Print Report Prints a copy of a report to a printer on your system. The report is produced on the fly and printed with the latest data.

NOTE: The actions specified above may only become available within ClearSCADA after the report is appropriately configured.

If the Crystal Reports application is still open, close it now. Make sure that ViewX is displaying.

• In the Database explorer bar make sure you can see the ‘Maintenance Report’ object we created in section 4.1 (if you can’t, make sure you are logged in with the Eng user and navigate to Example Projects > ~Config > Reports).

• Right-click on the ‘Maintenance Report’ object and you will be presented with a context sensitive menu. Your screen should look similar to below:

Page 34: Crystal Reports XI-2 Day Training Course v1-4

Crystal Reports XI Training Course

4-14 Issue 1.4 Section 4 - Record Selection

• Select the ‘Generate Report’ option from the menu. Once selected if you look down the bottom right of ViewX, the status bar should briefly contain the following message:

- Example Projects.~Config.Reports.Maintenance Report, Generate report requested

After a short time the following message should be displayed:

- Example Projects.~Config.Reports.Maintenance Report, Generate report request successful (<Date/Time>)

NOTE: The status bar in ViewX contains information such as the user currently logged in and the most recent event that has occurred in your system. In a large system with many events being generated the status bar will change frequently.

If you missed either message in the status bar, right-click on the ‘Maintenance Report’ object and select the ‘Display Events’ option from the menu. This will bring up a window with a list of events specific to this object only. Selecting Items > Refresh (or pressing F5) will update the data in this list.

Page 35: Crystal Reports XI-2 Day Training Course v1-4

Crystal Reports XI Training Course

Section 4 - Record Selection Issue 1.4 4-15

If any message other then the ones mentioned above are displayed, then ClearSCADA, the System DSN or the report is configured incorrectly. Please refer to troubleshooting section 16.1.

NOTE: If the report generation fails with a ‘Failed Logon’ error, the report may need to be tied to a user account. To do this right-click on the report object and select Properties. Under Data Source > User browse to the Users group, select Eng and click ‘Ok’. Save and close the report properties.

Now that our report has been generated, we are ready to display it.

• Right-click on the ‘Maintenance Report’ object and select the ‘Display’ option from the menu. This will bring up an inset window with the report we generated. Your screen should look similar to below:

• Maximise the viewer by clicking on the Maximise button at the top right of the window.

• Click on the drop-down size box and select a view size that clearly displays the information in the report.

• If your report has multiple pages confirm that other pages can be navigated to using the page navigation buttons.

Page 36: Crystal Reports XI-2 Day Training Course v1-4

Crystal Reports XI Training Course

4-16 Issue 1.4 Section 4 - Record Selection

We have now explored the generation and displaying of Crystal Reports from within ClearSCADA. The exporting and printing of reports from within ClearSCADA will be covered further in chapters to come. This ends the Record Selection chapter. The following points summarise what we have covered in this chapter:

• The interface between Crystal Reports and the ClearSCADA Crystal Reports driver.

• An introduction to ViewX, including logging into the server and navigating the Database tree.

• The creation of objects in the ClearSCADA database and executing methods on those objects.

• The Select Expert tool to define multiple record selection criteria. • Creating text objects in a report. • The Sort Expert tool to sort data based on specific criteria.

The following chapter covers the formatting of reports, which can improve readability and draw attention to important information.

Page 37: Crystal Reports XI-2 Day Training Course v1-4

Crystal Reports XI Training Course

Section 5 - Report Formatting Issue 1.4 5-1

5 Report Formatting This chapter focuses on various techniques for modifying the layout and design of a Crystal Report. This includes the appearance of text and other objects. Report formatting can vastly improve the readability of a report and draw attention to key information. The following section improves upon the Maintenance Report created in the previous chapter. Remember that if you have not completed this report you can import the pre-completed report from the training resources directory.

5.1 Maintenance Report (Version 2) In the previous chapter we touched on some simple formatting options, such as resizing a field box and changing its font size. We will now look at more of the formatting features available in Crystal Reports.

• Ensure that ViewX is open in front of you. If it isn’t click on the Start button and select All Programs > Control Microsystems ClearSCADA > ViewX.

• Ensure you are logged in as the Eng user account. • In the Database explorer bar navigate to Example Projects > ~Config >

Reports. We’ll now create a copy of the maintenance report created in the previous chapter so we can keep (and compare) the original report.

• Click on the Maintenance Report object to ensure it is highlighted. • Select Edit > Copy (or press CTRL + C). • Select Edit > Paste (or press CTRL + V). • Right-click on the newly created report and select ‘Rename’. Call the

report ‘Maintenance Report v2’. Rename the existing Maintenance Report object to ‘Maintenance Report v1’ if you are like me and will lose sleep over this slight naming discrepancy.

• Right-click on ‘Maintenance Report v2’ and select Edit (or double click on it) to open the report for editing in Crystal Reports.

Once Crystal Reports has opened you should see the report we created in the previous chapter. We’ll now make some cosmetic changes and add some more information to it in an effort to increase its usefulness.

• Right click on the title text object in the Report Header and select Format Text.

• Under the Border tab in the Line style section, change each drop-down box to ‘Single’.

• Under the Border tab check the tick-box next to the words ‘Drop Shadow’.

Page 38: Crystal Reports XI-2 Day Training Course v1-4

Crystal Reports XI Training Course

5-2 Issue 1.4 Section 5 - Report Formatting

• Under the Border tab check the tick-box next to the word ‘Background’ and select a light color like silver.

• Click ‘Ok’ to close the Format Editor.

5.2 Inserting Picture Objects We will now add a picture object into the header of our report. This is a common location for a company logo.

• Select Insert > Picture. A dialog will open to select a file. • Navigate to the training resources directory and click on the file named

‘ClearSCADA Icon (64x64).bmp’. • Click Open.

The dialog will close and an orange box should appear next to the mouse cursor.

• Hover the cursor over the left-hand side of the Report Header section and click to place the picture into the report (don’t worry if it doesn’t look like it will fit, the header will automatically be resized).

• Use the dragging handles on the corner of the object to resize it if it looks blurry.

NOTE: Resizing images in the report view does not allow you to maintain the aspect ratio, however if the image is right-clicked on under ‘Format Graphic > Picture’ the image can be resized manually to maintain the ratio.

5.3 Inserting Special Fields We will now add a sub heading under our main heading to display the date and time that the report was generated.

• Click on the line that separates the Report Header section and the Page Header section and increase the Report Header section by dragging the line down.

• Select Insert > Text Object (or right-click somewhere in the report and select Insert Text Object).

• Click and hold the mouse button down in the Report Header section and drag a rectangle shape under the report title. Release the mouse button when you are happy with the size.

• Type in the following text: “Report Generated: “. • Click off the text object to finish editing the text. • In the Field Explorer click the plus icon next to the ‘Special Fields’ entry

to expand it. • Find the entry named ‘Print Date’ and drag and drop it into the text

object created above, on the right-hand side.

Page 39: Crystal Reports XI-2 Day Training Course v1-4

Crystal Reports XI Training Course

Section 5 - Report Formatting Issue 1.4 5-3

• Find the entry named ‘Print Time’ and drag and drop it into the text object created above, to the right of the ‘Print Date’ entry.

NOTE: Entries from the Field Explorer can be dragged into text objects in a report and are appended to them.

• Right-click on the ‘Report Generated’ text object and select ‘Format

Text’. • Under the Font tab change the Color drop-down box to Blue and check

the Underline tick-box. • Under the Paragraph tab change the Alignment to Centered. • Click ‘Ok’ to close the Format Editor. • Adjust and resize the Report Header and the objects in it to look neat.

Some of the special fields use information pulled from the report itself. This information can be set by the report user by selecting ‘File > Summary Info’.

5.4 Inserting a Page Footer We’ll now add some summary information to our Page Footer.

• In the Field Explorer under ‘Special Fields’ find the entry named ‘Page N of M’ and drag and drop it into the middle of the Page Footer section.

• Right-click on this field select ‘Format Field’. • Under the Common tab change the Horizontal Alignment to Centered. • Click ‘Ok’ to close the Format Editor. • Select View > Print Preview (or press CTRL + R) to preview the report.

Your report should look similar to below:

Page 40: Crystal Reports XI-2 Day Training Course v1-4

Crystal Reports XI Training Course

5-4 Issue 1.4 Section 5 - Report Formatting

5.5 Highlighting It is common that there is information in a report such as the one we have created thus far that is more important to us than the rest. Say for example that a failure of “Well Head No 2” has critical consequences for the local oil and gas agency. We may wish to highlight this information to quickly bring any problems with Well Head No 2 to our attention. We’ll now use the Highlighting Expert, which allows us to apply conditional formatting to any of our report fields.

• Switch back to the design tab by clicking on the word ‘Design’ next to the Preview tab (if the Preview is still open).

• Right-click on the Source field in the Details section of the report and select Highlighting Expert.

• Click on the ‘New’ button. • In the Item Editor click on the blank drop-down box under the drop-

down box that says “is equal to” and select ‘Example Projects.Oil and Gas.Extraction.Well Head No 2.RTU.Device Failure’ from the options presented.

NOTE: If no drop-down box is available, please ensure the print preview view of the report is still open.

Page 41: Crystal Reports XI-2 Day Training Course v1-4

Crystal Reports XI Training Course

Section 5 - Report Formatting Issue 1.4 5-5

NOTE: If ‘Well Head No 2’ does not appear in the drop-down list it simply means that the device has not “failed” since the database was loaded. Just choose another device.

• Change the Font color to Red and the Background to Yellow. • Click ‘Ok’ to close the Highlighting Expert. • Switch back to the Preview tab to review your changes. Your report

should look similar to below:

This highlighting quickly tells us that there is a critical problem in our system (and that we should probably be avoiding the local oil and gas agency). Select File > Save (or press CTRL + S) to save the report back into our database. You may have noticed that not all of the string matching options presented in the highlighting expert were available (e.g. the ‘Is Like’ option). Advanced string matching and highlighting can be achieved through the use of formulas (covered later in chapter 13). Exercises

1. Export the report to a Microsoft Word (RTF) document from within ClearSCADA Crystal Report Viewer (Hint: Try the button in the top left of the viewer).

2. Export the report to a HTML page.

Page 42: Crystal Reports XI-2 Day Training Course v1-4

Crystal Reports XI Training Course

5-6 Issue 1.4 Section 5 - Report Formatting

This ends the Report Formatting chapter. The following points summarise what we have covered in this chapter:

- Further formatting of the appearance of a text box. - Inserting picture objects. - Concatenating fields with existing text objects. - The ‘Special Fields’. - The Highlighting Expert.

The following chapter introduces the concept of grouping data.

Page 43: Crystal Reports XI-2 Day Training Course v1-4

Crystal Reports XI Training Course

Section 6 - Group Selection Issue 1.4 6-1

6 Group Selection This chapter introduces users to the concept of grouping data. Grouped data is data that is sorted and broken up into meaningful groups. We will be using the Group Expert tool within Crystal Reports to specify how fields will be grouped on our report.

6.1 Predictive Maintenance Report (Version 1) For this chapter we will be creating a blank report. The report will display the hourly runtime information reported for the pump objects in our system.

• If the Crystal Reports application is still open, close it now. Save the report if you have made any changes since the last time it was saved.

• Ensure that ViewX is open in front of you. If it isn’t click on the Start button and select All Programs > Control Microsystems ClearSCADA > ViewX.

• Ensure you are logged in as the Eng user account. • In the Database explorer bar navigate to Example Projects > ~Config >

Reports. • Right-click on the group named ‘Reports’ and select New > Other >

Crystal Report. • Name the newly created report “Predictive Maintenance Report” and

press Enter. • Right-click on the new report named ‘Predictive Maintenance Report’

and select Edit (or double click on it). The Crystal Reports editor will open and we will have a blank report ready to be edited. We will be adding two (2) tables to this report, namely the Runtime Accumulator table (CAccumulatorRunTime) and a preconfigured Historic View (HisHourlyMaximum). In ClearSCADA, an Accumulator calculates or increments its value, depending on the state or value of another Accumulator or point (known as its ‘source’). A Runtime Accumulator calculates the amount of time that its source is in a True or False state during a specified period. Historic Views allow applications to access the historic data stored in ClearSCADA at uniform intervals. Each Historic View represents a type of calculation and a time period (referred to as the historic sample), and is a table in the database. You can use the Historic Views within SQL queries to allow both ClearSCADA and third party applications to read historic values for specific time periods.

• Open the Database Expert by clicking Database > Database Expert (or right-click on ‘Database Fields’ in the Field Explorer and select Database Expert).

Page 44: Crystal Reports XI-2 Day Training Course v1-4

Crystal Reports XI Training Course

6-2 Issue 1.4 Section 6 - Group Selection

• In the Available Data Sources frame click the plus icon next to the ‘Create New Connection’ entry to expand it.

• From the options presented click the plus icon next to the ‘ODBC (RDO)’ folder to expand it.

• Click the plus icon next to the ‘ClearSCADA’ entry to expand it. If there is no ‘ClearSCADA’ option you will need to create a new connection (refer to the steps in section 3.2).

• Scroll down until you find the table named ‘CAccumulatorRunTime’. Click on it then click on the right arrow (or double click on the ‘CAccumulatorRunTime’ entry) to add the table to the Selected Tables list.

• Scroll down further until you find the table named ‘HisHourlyMaximum’. Click on it then click on the right arrow (or double click on the ‘HisHourlyMaximum’ entry) to add the table to the Selected Tables list.

• Click ‘Ok’. You will be presented with a screen that looks similar to below:

It is common that a database containing multiple tables has fields that are linked between tables, so that records from one table match related records from another. If Crystal Reports detects that there are related fields when multiple tables are selected it will automatically create a link between these fields. These link(s) can be reviewed and changed if required.

Page 45: Crystal Reports XI-2 Day Training Course v1-4

Crystal Reports XI Training Course

Section 6 - Group Selection Issue 1.4 6-3

• The link between the ‘Id’ fields is correct, so click the ‘Ok’ button to close the Database Expert.

We will now populate the report with the fields we are interested in.

• Within the Field Explorer click the plus icon next to the ‘Database Fields’ entry to expand it. Under this you should see a ‘CAccumulatorRunTime’ entry and a ‘HisHourlyMaximum’ entry.

• Click the plus icon next to the ‘HisHourlyMaximum’ entry to expand it. • Find the entry named ‘RecordTime’. Drag and drop it into the ‘Details’

section of the report, towards the left-hand side. • Find the entry named ‘Value’. Drag and drop it into the ‘Details’ section

of the report, on the right-hand side of the RecordTime field.

6.2 Group Expert We will now use the Group Expert to group our data by the accumulator that measures the hourly runtime for each pump.

• Select Report > Group Expert to launch the Group Expert tool. • In the Available Fields list click the plus icon next to the

‘CAccumulatorRunTime’ entry to expand it. • Find the entry named ‘FullName’. Click on it then click on the right

arrow (or double click on the ‘FullName’ entry) to add the field to the Group By list.

• Click ‘Ok’ to close the Group Expert. Your screen should look similar to below:

Page 46: Crystal Reports XI-2 Day Training Course v1-4

Crystal Reports XI Training Course

6-4 Issue 1.4 Section 6 - Group Selection

A new section has been added to the report named “Group Header #1” and a new field named “Group #1 Name” has automatically been added within this section.

• Increase the width of the ’Group #1 Name’ field to the width of the page by clicking on the field and using the resize handle on the right-hand side.

Before we can preview the information in our report we must add some constraints. We will quickly add a few constraints now.

• Click on the ‘RecordTime’ field in the Details section of the report. • Select Report > Select Expert to open the Select Expert. • Click on the drop-down box under the

‘HisHourlyMaximum.RecordTime’ tab and select the ‘is in the period’ option.

• In the new drop-down box that appears, select ‘Last7Days’. We will also limit our report to only display the runtime information for our Oil and Gas Well Heads.

• Click on the ‘New’ tab next to the ‘HisHourlyMaximum.RecordTime’ tab. • In the Choose Field dialog that appears select

‘CAccumulatorRunTime.FullName’ and click ‘Ok’. • Click on the drop-down box under the

‘CAccumulatorRunTime.FullName’ tab and select the ‘is like’ option.

Page 47: Crystal Reports XI-2 Day Training Course v1-4

Crystal Reports XI Training Course

Section 6 - Group Selection Issue 1.4 6-5

• In the new drop-down box that appears enter the following text: *Oil and Gas*, ensuring that the case is correct.

• Click the Add button. • Click the ‘Ok’ button to close the Select Expert.

Before we preview our report quickly add a title to the Page Header section. Enter the text “Oil and Gas - Hourly Pump Runtimes” and make it an appropriate size and alignment. Select View > Print Preview (or press CTRL + R) to preview the report. Your report should look similar to below:

As you scroll down and view other pages you will notice there are a lot of blank values. This is due to the fact there is not history recorded for every hour in the last week. We’ll now spend a bit of time improving the appearance of our report.

• Open the design tab by clicking on the word ‘Design’ next to the Preview tab.

• Click on the ‘Value’ field in the Details section of the report. • Select Report > Select Expert to open the Select Expert. • Click on the drop-down box under the ‘HisHourlyMaximum.Value’ tab

and select the ‘is not equal to’ option. • In the new drop-down box that appears enter the number 0. • Click the ‘Ok’ button to close the Select Expert.

We will also neaten up the formatting of our ‘RecordTime’ field.

Page 48: Crystal Reports XI-2 Day Training Course v1-4

Crystal Reports XI Training Course

6-6 Issue 1.4 Section 6 - Group Selection

• Right-click on ‘RecordTime’ field in the Details section of the report and select Format Field.

• In the Date and Time tab press the ‘Customize’ button to open the Custom Style dialog.

• In the Date tab under Format change the Day to “01”. • In the Time tab select the 24 Hour radio button and change the Hour

option to “05”. • Click ‘Ok’. • Click ‘Ok’ to close the Format Editor.

The positioning of the page headings is slightly confusing. We can move them to be in the group heading, under the primary heading.

• Increase the size of the ‘Group Header #1’ section by clicking on the line between it and the Details section and dragging it down.

• Drag the ‘RecordTime’ and ‘Value’ headings into ‘Group Header #1’ under the Group #1 Name.

Some other things you may like to change to improve the overall appearance of the report:

• Double click on the ‘RecordTime’ heading and rename it to “Date/Time”.

• Double click on the ‘Value’ heading and rename it to “Runtime (Seconds)”. Resize the field if required.

• Format the title to have a box. Change the font and color. • Insert the ClearSCADA logo to the Report Header (Hint: see section

5.2). • Add a sub-title for when the report was generated (Hint: see section

5.3). • Add a report footer showing the number of pages (Hint: see section

5.4). Preview your report until you are happy with its appearance. Your report may look something like this:

Page 49: Crystal Reports XI-2 Day Training Course v1-4

Crystal Reports XI Training Course

Section 6 - Group Selection Issue 1.4 6-7

The formatting changes made drastically increase the readability of the report. This ends the Group Selection chapter. The following points summarise what we have covered in this chapter:

- Selecting multiple database tables and verifying the links between them.

- The Accumulator objects and Historic Views in ClearSCADA. - The Group Expert. - Review of multiple selection criteria. - Review of report formatting.

The following chapter introduces the concept of summary fields and improves upon the Predictive Maintenance Report created in this chapter.

Page 50: Crystal Reports XI-2 Day Training Course v1-4

Crystal Reports XI Training Course

6-8 Issue 1.4 Section 6 - Group Selection

Page 51: Crystal Reports XI-2 Day Training Course v1-4

Crystal Reports XI Training Course

Section 7 - Summary Fields Issue 1.4 7-1

7 Summary Fields This chapter introduces users to Summary fields in reports. Summary fields (as the name suggests) allow users to summarise data and print the summary in your report. They can be used for such things as; counting the number of values in a group, calculating the sum, average, standard deviation, or variance value in a group or identifying the minimum or maximum value in a group.

7.1 Predictive Maintenance Report (Version 2) The Predictive Maintenance Report created in the previous chapter will be used as a starting point for this chapter. The report will be improved on by adding a new group and additional summary information.

• If the Crystal Reports application is still open, close it now. Save the report if you have made any changes since the last time it was saved.

• Ensure that ViewX is open in front of you. If it isn’t click on the Start button and select All Programs > Control Microsystems ClearSCADA > ViewX.

• Ensure you are logged in as the Eng user account. • In the Database explorer bar navigate to Example Projects > ~Config >

Reports. We’ll now create a copy of the predictive maintenance report created in the previous chapter so we can keep (and compare) the original report.

• Click on the Predictive Maintenance Report object to ensure it is highlighted.

• Select Edit > Copy (or press CTRL + C). • Select Edit > Paste (or press CTRL + V). • Right-click on the newly created report and select ‘Rename’. Call the

report ‘Predictive Maintenance Report v2’. Rename the existing report to ‘Predictive Maintenance Report v1’ if you wish.

• Right-click on ‘Predictive Maintenance Report v2’ and select Edit (or double click on it) to open the report for editing in Crystal Reports.

One of the things that could be criticised about this report is that due to the amount of information displayed for each pump (hourly data), it is not obvious immediately if there are any system problems until each page of the report is checked. We will add a new group to our report to group the hourly data into daily data.

• Select Report > Group Expert. • In the Available Fields list under Report Fields find the entry named

‘HisHourlyMaximum.RecordTime’. Click on it then click on the right

Page 52: Crystal Reports XI-2 Day Training Course v1-4

Crystal Reports XI Training Course

7-2 Issue 1.4 Section 7 - Summary Fields

arrow (or double click on the ‘HisHourlyMaximum.RecordTime’ entry) to add the table to the Group By list.

NOTE: Crystal Reports allows multiple group selection criteria. The records are grouped in a top down order and the sorting type for each grouping criteria can be configured separately.

• In the Group By list click on the entry named

‘HisHourlyMaximum.RecordTime’. • Click on the ‘Options’ button. • Change the drop-down box under the

‘HisHourlyMaximum.RecordTime’ drop-down box from “in ascending order” to “in descending order”.

• Change the drop-down box under ‘The section will be printed’ to “for each day”.

• Click ‘Ok’. Your screen should look similar to below:

A new section has been added to the report named “Group Header #2” and a new field named “Group #2 Name” has automatically been added within this section. This will group the data returned firstly into unique device names in ascending order, then within that group by 24 hour periods. We can use Summary fields in conjunction with the Crystal Reports Drill-down feature to show only summarised data.

Page 53: Crystal Reports XI-2 Day Training Course v1-4

Crystal Reports XI Training Course

Section 7 - Summary Fields Issue 1.4 7-3

7.2 Inserting a Summary We will now insert a summary field into our report. The field will be placed in our 2nd Group Header.

NOTE: Summary fields are most often placed in either the Report Footer or Group Footer sections, but can be placed anywhere in the report.

• Select Insert > Summary. • In the drop-down box under ‘Choose the field to summarize’ ensure

that ‘HisHourlyMaximum.Value’ is selected. • In the drop-down box under ‘Calculate this summary’ select “Sum”. • In the drop-down box under ‘Summary location’ select ‘Group #2:

HisHourlyMaximum.RecordTime’. • Click ‘Ok’.

A new summary field will have been placed in the Group Footer #2 section. However, we want this field in the Group Header.

• Click on the newly added summary field in the Group Footer #2 section and drag it into the Group Header #2 section.

• Reposition and resize the fields in Group Header #2 if required. • Format the ‘Group #2 Name’ field so the Date/Time format matches the

other ‘RecordTime’ field. • Select View > Print Preview (or press CTRL + R) to preview your

report. Your report may look something like this:

Page 54: Crystal Reports XI-2 Day Training Course v1-4

Crystal Reports XI Training Course

7-4 Issue 1.4 Section 7 - Summary Fields

At the top of each day group entry (shown in bold) is the date and the total runtime of the pump for the day, in seconds. The report is starting to look professional, but we still haven’t reduced the amount of information displayed for each pump runtime object. We will now use the Drill Down feature of Crystal to achieve this.

7.3 Drill Down Crystal Reports allows you to “drill down” on group or summary information when viewing a report in the Preview tab. This allows detailed information to be hidden and only viewed when required. The drilling options are unique to each section of the report.

• Open the design tab by clicking on the word ‘Design’ next to the Preview tab.

• Right-click where it says ‘Details’ on the left of the report and select the ‘Hide (Drill-Down OK)’ option. This option hides the information within the associated section of the report until it is displayed when previewing the report.

• Right-click where it says ‘Group Footer #2’ on the left of the report and select the Suppress (No Drill-Down). This option hides the information within the associated section of the report, and cannot be viewed when previewing the report.

• Reposition and resize the ‘Group #2 Name’ field until it lines up with the associated heading.

Page 55: Crystal Reports XI-2 Day Training Course v1-4

Crystal Reports XI Training Course

Section 7 - Summary Fields Issue 1.4 7-5

• Remove the Bold option from the fields in the Group Header #2. • Rename the main title in the Report Heading to “Oil and Gas - Daily

Pump Runtimes”. • Preview your report again to review the changes. Your report may look

something like this:

Because we enabled drill down on our ‘Group Header #2’ section, double click on one of the Date/Time entries. This will open a new Preview window with the hourly data for that particular pump. You should have a screen similar to below:

Page 56: Crystal Reports XI-2 Day Training Course v1-4

Crystal Reports XI Training Course

7-6 Issue 1.4 Section 7 - Summary Fields

Will we now insert a box around each pump object to make the distinction between each one more clear.

7.4 Inserting a Box Crystal Reports allows simple box shapes to be added to reports. These boxes can span multiple sections allowing grouped data to be easily distinguished.

• Open the design tab by clicking on the word ‘Design’ next to the Preview tab.

• Select Insert > Box. • Click and drag the cursor from the top left of ‘Group Header #1’ (within

the body of the report) to the bottom right of ‘Group Footer #1’ (be careful that the box doesn’t span into neighboring sections).

• Click to place the box. • Right-click on the newly created box and select ‘Format Box’. • In the Box tab change the Color to Blue. • In the Rounding tab change the Rounding to 2%. • Click ‘Ok’.

We will also insert a simple line to break up the headings in ‘Group Header #1’.

Page 57: Crystal Reports XI-2 Day Training Course v1-4

Crystal Reports XI Training Course

Section 7 - Summary Fields Issue 1.4 7-7

7.5 Inserting a Line

• Select Insert > Line. • Click and drag the cursor from the left side of box in the previous

section to the right-hand side of the box, splitting ‘Group #1 Name’ from the other headings.

• Click to place the line. • Right-click on the newly created box and select ‘Format Line’. • In the Line tab change the Color to Blue. • Click ‘Ok’. • Preview your report. It should look similar to below:

This report is now fairly easy on the eye, and quickly illustrates if there is any problems with our Oil and Gas pumps (assuming the data for a 24 hour period is complete). This ends the Summary Fields chapter. The following points summarise what we have covered in this chapter:

- Multiple group selection criteria. - Custom sorting and printing options for grouped sections. - Inserting summary fields. - Drill-down options. - Inserting a box. - Inserting a line.

Page 58: Crystal Reports XI-2 Day Training Course v1-4

Crystal Reports XI Training Course

7-8 Issue 1.4 Section 7 - Summary Fields

The following chapter introduces users to the charting feature of Crystal Reports, to further increase the usefulness of data and make it easy to interpret.

Page 59: Crystal Reports XI-2 Day Training Course v1-4

Crystal Reports XI Training Course

Section 8 - Charts Issue 1.4 8-1

8 Charts Crystal Reports allow users to present summarised data in colorful, easy-to-read charts. This section demonstrates how to create charts and how to use them in reports to make report data more meaningful and easier to understand. There are a number of chart layouts and types, as well as drill down (discusses in the previous chapter) to see the details behind the graphical summaries and format chart objects.

8.1 Predictive Maintenance Report (Version 3) The Predictive Maintenance Report modified in the previous chapter will be used as a starting point for this chapter. The report will be improved on by adding a chart to which quickly displays the running times for each pump over the past week.

• If the Crystal Reports application is still open, close it now. Save the report if you have made any changes since the last time it was saved.

• Ensure that ViewX is open in front of you. If it isn’t click on the Start button and select All Programs > Control Microsystems ClearSCADA > ViewX.

• Ensure you are logged in as the Eng user account. • In the Database explorer bar navigate to Example Projects > ~Config >

Reports. We’ll now create a copy of the predictive maintenance report created in the previous chapter so we can keep (and compare) the original reports.

• Click on the Predictive Maintenance Report v2 object to ensure it is highlighted.

• Select Edit > Copy (or press CTRL + C). • Select Edit > Paste (or press CTRL + V). • Right-click on the newly created report and select ‘Rename’. Call the

report ‘Predictive Maintenance Report v3’. • Right-click on ‘Predictive Maintenance Report v3’ and select Edit (or

double click on it) to open the report for editing in Crystal Reports.

8.2 Insert Chart Charts in a Crystal Report are typically based on summary information at the group level of a report.

NOTE: Charts cannot be placed in the Details section of a report.

We will be placing our chart in Group Footer #1.

Page 60: Crystal Reports XI-2 Day Training Course v1-4

Crystal Reports XI Training Course

8-2 Issue 1.4 Section 8 - Charts

• Increase the size of the ‘Group Footer #1’ section by clicking on the line

between it and the Details section and dragging it down. • Use the dragging handles on the bottom of the box object outlining our

information, and increase its size downwards. • Select Insert > Chart. • Hover the cursor over the blank space created in Group Footer #1 and

click to place the chart into the report (don’t worry if it doesn’t look like it will fit, the footer will automatically be resized).

• Right-click on the chart and select Chart Expert. You will presented with a screen that looks similar to below:

• In the Type tab leave the chart type as ‘Bar’. Check the ‘Use depth effect’ tick-box.

• Select the Data tab. Ensure the layout is set to ‘Group’. • Select the Axes tab. In the Data Values section, uncheck the tick-box

under ‘Auto range’ and set the Max to 86400. In the Number of divisions section, set the Data axis to Manual and enter a value of 8.

• Select the Text tab. In the Titles section, uncheck each of the Auto-Text tick-boxes. Set the Title to “Pump Runtime per Day”, Group title to “Date” and Data title to “Runtime (s)”. In the Format section click the Font button and change the size to 12. Click ‘Ok’.

• Click ‘Ok’ to close the Chart Expert. Our chart is now configured with the data desired.

Page 61: Crystal Reports XI-2 Day Training Course v1-4

Crystal Reports XI Training Course

Section 8 - Charts Issue 1.4 8-3

• Use the dragging handles on the sides of the chart object and increase its width to be the width of the report, just inside the box.

• If you like, add another Line object above the chart to separate the chart from the details above it.

• Format both Line objects to be Dotted (right-click on the line and select Format Line, then Line > Style > Dotted)

• Preview your report. It should look similar to below:

Exercises

1. Configure the chart to be a stacked line graph instead of a bar graph. This ends the Charts chapter. The following points summarise what we have covered in this chapter:

- Inserting a chart. - Modifying the appearance of a chart.

The following chapter runs through a review of the concepts covered thus far.

Page 62: Crystal Reports XI-2 Day Training Course v1-4

Crystal Reports XI Training Course

8-4 Issue 1.4 Section 8 - Charts

Page 63: Crystal Reports XI-2 Day Training Course v1-4

Crystal Reports XI Training Course

Section 9 - Day 1 Review Issue 1.4 9-1

9 Day 1 Review This chapter serves as a review of the material covered during the first day of the course. A review Crystal Report will be created and concepts from each chapter will be incorporated into the report.

9.1 Day 1 Review Report Use the following steps to create a ‘Day 1 Review’ report.

• Open ViewX, log in as the Eng user, and navigate to “Example Projects.~Config.Reports” in the Database Explorer bar.

• Create a new Crystal Report object and name it “Day 1 Review”. • Open the report for editing. • Use the Database Expert to link to the ClearSCADA database and add

the ‘CDBPoint’ table. • Add the following fields to the Details section of your report: Id, Name,

CurrentValueFormatted and CurrentQualityDesc. • Use the Select Expert to only return records that are NOT of type

“Internal Digital Point”. • Use the Group Expert to group records by ‘TypeDesc’ in descending

order. Insert a box around the group. • Insert a report heading, a picture, the report generation date and the

page number into the appropriate section of the report. • Use the Highlighting Expert to highlight the ‘Name’ of points that have a

‘CurrentQualityDesc’ of anything other than Good. • Insert a summary field into the group header to display the number of

points in each group. • Insert a pie chart into the group footer to display the

‘CurrentQualityDesc’ of the points in each group. • Format your report with colors and font styles to make it more

appealing to the eye. • Preview your report. It should look vaguely similar to below:

Page 64: Crystal Reports XI-2 Day Training Course v1-4

Crystal Reports XI Training Course

9-2 Issue 1.4 Section 9 - Day 1 Review

For any hints, the design mode view of the report is also shown below:

Page 65: Crystal Reports XI-2 Day Training Course v1-4

Crystal Reports XI Training Course

Section 9 - Day 1 Review Issue 1.4 9-3

This ends the Day 1 Review chapter. The following points summarise what we have covered in this chapter:

- Review of creating database objects in ClearSCADA. - Review of editing reports in Crystal Reports. - Review of linking a Crystal Report to a ClearSCADA data source. - Review of specifying record selection criteria. - Review of various report formatting techniques, including field

appearance editing, picture objects, special fields, report headers/footers and highlighting.

- Review of group selection allowing logical grouping of report data. - Review of summary fields. - Review of charts.

The following chapter introduces the concept of adding Parameter fields to reports, allowing further flexibility, and how ClearSCADA can make use of these parameters.

Page 66: Crystal Reports XI-2 Day Training Course v1-4

Crystal Reports XI Training Course

9-4 Issue 1.4 Section 9 - Day 1 Review

Page 67: Crystal Reports XI-2 Day Training Course v1-4

Crystal Reports XI Training Course

Section 10 - Parameterized Reports Issue 1.4 10-1

10 Parameterized Reports Parameters are Crystal Reports fields that allow you to collect input from the report user and run the report based on the input. These parameters can be used in formulas, selection formulas and in the report itself to specify various criteria such as the color of the text in the report, or the time range that the returned data must fall between for example. Parameter fields can also be used in subreports (see chapter 14). Generally, when a report with at least one parameter is generated, a prompt will be displayed. Prompts are elements that help users set a value for report parameters. ClearSCADA, through the use of pick-actions, can automatically pass parameter values into a report during a generation request. A parameter can be static or dynamic. A static prompt is one that always contains the same available values. For example, if your parameter prompts for a ClearSCADA object type, you could create a static prompt and only allow object types specified. A dynamic prompt is one that changes dynamically based on some form of data source. For example, if you are prompting for a point type, you could create a dynamic prompt with a list of only the point types that currently exist in your ClearSCADA database. We’ll now create a production style report, which shows the daily maximum, minimum and average gas flow volumes over a period of time specified with Parameter Fields.

10.1 Production Report (Version 1) For this chapter we will be creating a blank report. The report will display the daily maximum, minimum and average values for the gas flow volumes in each of the well heads configured in our system.

• If the Crystal Reports application is still open, close it now. Save the report if you have made any changes since the last time it was saved.

• Ensure that ViewX is open in front of you. If it isn’t click on the Start button and select All Programs > Control Microsystems ClearSCADA > ViewX.

• Ensure you are logged in as the Eng user account. • In the Database explorer bar navigate to Example Projects > ~Config >

Reports. • Right-click on the group named ‘Reports’ and select New > Other >

Crystal Report. • Name the newly created report “Production Report” and press Enter. • Right-click on the new report named ‘Production Report’ and select Edit

(or double click on it).

Page 68: Crystal Reports XI-2 Day Training Course v1-4

Crystal Reports XI Training Course

10-2 Issue 1.4 Section 10 - Parameterized Reports

The Crystal Reports editor will open and we will have a blank report ready to be edited. We will be adding two (2) tables to this report, namely the Internal Analog Point (CPointAlgManual) and a preconfigured Historic View (HisDailyMinMaxAverage).

• Open the Database Expert by clicking Database > Database Expert (or right-click on ‘Database Fields’ in the Field Explorer and select Database Expert).

• In the Available Data Sources frame click the plus icon next to the ‘Create New Connection’ entry to expand it.

• From the options presented click the plus icon next to the ‘ODBC (RDO)’ folder to expand it.

• Click the plus icon next to the ‘ClearSCADA’ entry to expand it. If there is no ‘ClearSCADA’ option you will need to create a new connection (refer to the steps in section 3.2).

• Scroll down until you find the table named ‘CPointAlgManual’. Click on it then click on the right arrow (or double click on the ‘CPointAlgManual’ entry) to add the table to the Selected Tables list.

• Scroll down further until you find the table named ‘HisDailyMinMaxAverage’. Click on it then click on the right arrow (or double click on the ‘HisDailyMinMaxAverage’ entry) to add the table to the Selected Tables list.

• Click ‘Ok’. • The default Links are correct, so click ‘Ok’ to close the Database

Expert. We will now populate the report with the fields we are interested in.

• Within the Field Explorer under the Database Fields entry, click to expand ‘HisDailyMinMaxAverage’ entry.

• Find the entry named ‘Summary’. Drag and drop it into the ‘Details’ section of the report, towards the left-hand side.

• Find the entry named ‘Value’. Drag and drop it into the ‘Details’ section of the report, on the right-hand side of the Summary field.

We will now add two (2) Parameter Fields to our report, allowing the input of 2 date/time values. These values will be used to determine the timeframe within which the historic values must fall between.

10.2 Inserting Parameter Fields

• In the Field Explorer right-click on Parameter Fields and select ‘New’. You will be presented with a dialog similar to below:

Page 69: Crystal Reports XI-2 Day Training Course v1-4

Crystal Reports XI Training Course

Section 10 - Parameterized Reports Issue 1.4 10-3

• Enter “Start Date” for the Name of the parameter. • Set the Type to be ‘Date Time’. • Review the other options, but the default values are fine. • Click ‘Ok’. • Create another parameter field of type ‘Date Time’ named “End Date”.

We’ll now use these Parameters in the Select Expert to specify the time frame for data returned in out historic query.

• Click in a blank area of the report to ensure neither of the fields dragged on are selected (if a field is selected the Select Expert bypasses the ‘Choose Field’ step).

• Select Report > Select Expert to open the Select Expert. • In the Choose Field dialog select

‘HisDailyMinMaxAverage.RecordTime’ from under ClearSCADA (ODBC (RDO)) and click ‘Ok’.

• Click on the drop-down box under the ‘HisDailyMinMaxAverage.RecordTime’ tab and select the ‘is between’ option.

• In the new drop-down boxes displayed, set the top one to {?Start Date} and the bottom one to {?End Date}. These expressions will be dynamically converted to the date values passed into the report when generated.

• Select the ‘<New> tab to add another selection criterion.

Page 70: Crystal Reports XI-2 Day Training Course v1-4

Crystal Reports XI Training Course

10-4 Issue 1.4 Section 10 - Parameterized Reports

• In the Choose Field dialog select ‘CPointAlgManual.Name’ from under ClearSCADA (ODBC (RDO)) and click ‘Ok’.

• Click on the drop-down box under the ‘CPointAlgManual.Name’ tab and select the ‘is equal to’ options.

• In the new drop-down box displayed type in the word "GasFlow" (with no quotes), ensuring the case is correct.

• Click the ‘Show Formula’ button to view the formula created. It should look the same as below:

• Click ‘Ok’ to close the Select Expert. We’ll now create two (2) groups for our data, to group records by each individual point, and then values for each day within the dates entered via the parameters.

• Select Report > Group Expert to launch the Group Expert tool. • In the Available Fields list click the plus icon next to the

‘CPointAlgManual’ entry to expand it. • Find the entry named ‘FullName’. Click on it then click on the right

arrow (or double click on the ‘FullName’ entry) to add the table to the Group By list.

• In the Available Fields list click the plus icon next to the ‘HisDailyMinMaxAverage’ entry to expand it.

• Find the entry named ‘RecordTime’. Click on it then click on the right arrow (or double click on the ‘RecordTime’ entry) to add the table to the Group By list.

• Click on the newly added ‘HisDailyMinMaxAverage.RecordTime’ entry and select the ‘Options’ button.

Page 71: Crystal Reports XI-2 Day Training Course v1-4

Crystal Reports XI Training Course

Section 10 - Parameterized Reports Issue 1.4 10-5

• Change the drop-down box under ‘The section will be printed’ to “for each day”.

• Click ‘Ok’. • Click ‘Ok’ to close the Group Expert. Your screen should look similar to

below:

All of the core components for a meaningful report are now present. Use the following steps as a guide to formatting the report to make it both easier to interpret and visually pleasing, but feel free to customise any of the steps to suit your own taste.

• Reposition and resize the field ‘Group #1 Name’ to be nearly the width of the page. Turn off bold and increase the font size to 12.

• Reposition and resize the field ‘Group #2 Name’. Turn off bold, increase the font size to 12 and change the font color to be blue.

• Rename the Value heading field to be “Gas Flow Volume”. • Move both the Summary and Gas Flow Volume heading fields into the

Group Header #2 section, below Group #2 Name. • Create and format a box that goes from Group Header #1 to Group

Footer #1. • Create and format a line between Group #1 Name and Group Header

#2. • Create and format a suitable report heading. • Add a “Report Time Frame” text object under the report heading, and

drag the two (2) parameter fields into it.

Page 72: Crystal Reports XI-2 Day Training Course v1-4

Crystal Reports XI Training Course

10-6 Issue 1.4 Section 10 - Parameterized Reports

• Add a suitable image to the Report Header. • Add suitable Report Footer(s). • Suppress Group Footer #2.

Preview your report. When prompted for parameters make sure a sensible time frame is chosen. If the time frame is too large the report preview will fail as the Historic Cache size limit will be met. This is a measure in place to ensure queries do not use all of a server’s available memory. Your report should look vaguely similar to below:

NOTE: If you always get blank results, try making the end date parameter the day after the current date. This will ensure that the daily values for the current day are also included.

For any hints, the design mode view of the report is also shown below:

Page 73: Crystal Reports XI-2 Day Training Course v1-4

Crystal Reports XI Training Course

Section 10 - Parameterized Reports Issue 1.4 10-7

We will now illustrate how ClearSCADA detects if a Crystal Report has parameters configured, and will prompt for them during generation.

10.3 Parameters from ClearSCADA If the Crystal Reports application is still open, close it now. Make sure that ViewX is running and on display.

• In the Database explorer bar make sure you can see the ‘Production Report’ object we created in section 10.1 (if you can’t, make sure you are logged in with the Eng user and navigate to Example Projects > ~Config > Reports).

• In the same group (Reports) there should be a mimic named ‘Default’. If there isn’t a mimic named ‘Default’ right-click on the ‘Reports’ group and select New > Mimic.

NOTE: When a new Group object is created, a mimic named ‘Default’ is created within the group automatically.

• Right-click on the mimic and select ‘Edit’ (or double click on the mimic

and ensure it is in Design mode). • In the Database explorer bar, click on the ‘Production Report’ object

and drag the mouse over the open mimic. The icon should change to

Page 74: Crystal Reports XI-2 Day Training Course v1-4

Crystal Reports XI Training Course

10-8 Issue 1.4 Section 10 - Parameterized Reports

show a ‘+’ symbol when a drop location is valid. Release the mouse button and a context sensitive menu will be displayed.

NOTE: When objects are dragged and dropped onto a mimic, the list of options available dynamically changes based on the type of object being dragged on.

• Select the ‘Name’ option. The name of the report should be displaying

within this tag. • Drag and drop the report onto the mimic again to the right of the Name

tag, and select the ‘Status’ option. We’ll now add two (2) buttons to our mimic, which will be configured to generate and display the report.

• Select Insert > Button (or click on the Button icon in the Mimic Editing toolbar). The icon will have changed to a crosshair.

• Click and hold the mouse button down on the mimic to the right of the Status tag and drag a rectangle shape. Release the mouse button when you are happy with the size.

• Right-click on the newly created button and select ‘Properties’ (or double click on the button object).

• Under the General tab in the Button section, change the Text from ‘Button’ to ‘Generate’.

• Click on the ‘Pick Action’ button.

NOTE: A pick action is an action that is executed when a user clicks on the mimic item on which the action has been configured.

• Select ‘Method’ for the type of pick action and click Next. • Click on the ‘…’ browse button next to the ‘Object’ field. • In the ‘Select Object’ dialog navigate to Example Projects > ~Config >

Reports group (if not already), click on the Production Report object and click ‘Ok’.

• From the ‘Method’ drop-down box select the ‘Generate Report’ option and click Next.

• Note that ClearSCADA has detected the Parameters configured in the report. We will leave the fields blank so that ClearSCADA will prompt for the parameter values when generated. Click Next.

• Enter the text “Generate Report” for the pick action comment and click Next.

• Click Finish to close the pick action wizard. • Create another button to the right of the ‘Generate’ button. • Open the button properties and configure the Text to be ‘Display’. • Run the pick action wizard and enter the following details:

o Type: Hyperlink o URL: Production Report object

Page 75: Crystal Reports XI-2 Day Training Course v1-4

Crystal Reports XI Training Course

Section 10 - Parameterized Reports Issue 1.4 10-9

o Mode: Open In New Window o Pick action comment: Display Report

• Click Finish to close the pick action wizard. • Select File > Save (or press CTRL + S) to save the changes to the

mimic. Your mimic should now look something like this:

• Place the mimic in run mode by selecting View > Design (or clicking the Design icon in the File toolbar).

• Click on the ‘Generate’ button. A dialog will be displayed to enter values for the reports parameters.

• Choose a reasonable time frame for the data (1 or 2 days) and click ‘Ok’.

Note that the status tag will update as the report is being generated. The report is ready to be displayed when the status returns to “Idle”. If the status changes to “Failed”, then something has gone wrong. Click on the status tag and select ‘Display Events’. Find the error message in the event list and consult Crystal Reports troubleshooting section (16.1) to find a resolution.

• Click the ‘Display’ button to open the generated report in the Crystal Reports Viewer. You may need to adjust the zoom level to be able to read the data values.

Page 76: Crystal Reports XI-2 Day Training Course v1-4

Crystal Reports XI Training Course

10-10 Issue 1.4 Section 10 - Parameterized Reports

The date parameters can also be calculated at a regular interval and automatically passed into our report via a button click.

• Select View > Design to put the mimic back into design mode. • Create another button under the ‘Generate’ button. • Open the button properties. • Click on the ‘Animations’ in the General tab. • Double click on the ‘Text’ property to enter an expression. • Click on the ‘…’ browse button to the right of the ‘Expression’ field and

select ‘OPC Tag’. • In the Select Tag browser navigate to the following location:

MAIN > Root Group > Example Projects > ~Config > Logic > Report Dates > Time Frame (Days) >

• Find the ‘CurrentValue’ property, highlight it and select ‘Ok’. • Carefully add the following text:

o Before the expression: ‘Generate (’ + str( o After the expression: ) + ‘ days)’

• The final expression should look similar to below:

Page 77: Crystal Reports XI-2 Day Training Course v1-4

Crystal Reports XI Training Course

Section 10 - Parameterized Reports Issue 1.4 10-11

NOTE: The ‘+’ operator concatenates strings, and the ‘str’ function converts and data result into a string format.

• Click ‘Ok’ to close the Expression editor. • Click ‘Close’ to close the Animations dialog. • Run the pick action wizard and enter the following details:

o Type: Method o Object: Production Report object o Method: Generate Report

You will now be presented with the parameters again that we left blank in the previous exercise. This time double click on each parameter and browse to the following OPC Tags respectively: Example Projects > ~Config > Logic > Report Dates > Start > CurrentValue Example Projects > ~Config > Logic > Report Dates > End > CurrentValue The window should look the same as below:

Page 78: Crystal Reports XI-2 Day Training Course v1-4

Crystal Reports XI Training Course

10-12 Issue 1.4 Section 10 - Parameterized Reports

o Pick action comment: Auto-Generate Report • Click Finish to close the pick action wizard.

Note the text on the new button. It should say “Generate (2 days)”. This is a dynamic animation based on the value of another object in the database.

NOTE: If the button says “Generate ( days)” it is because the point used for calculating the button text has not been set with a value.

• Select File > Save (or press CTRL + S) to save changes to the mimic. • Place the mimic in run mode by selecting View > Design (or clicking the

Design icon in the File toolbar). • Click on the ‘Generate (2 days)’ button and note that no dialog will be

displayed prompting for the reports parameters. Exercises

1. Within ViewX, Hand Control the time frame analog point (located at ‘Example Projects.~Config.Logic.Report Dates.Time Frame (Days)’) to four (4). Make sure the logic that maps the time points has executed, and verify that the report displays the additional information when re-generated (albeit blank).

This ends the Parameterized Reports chapter. The following points summarise what we have covered in this chapter:

- Creating and configuring Parameter fields in Crystal Reports.

Page 79: Crystal Reports XI-2 Day Training Course v1-4

Crystal Reports XI Training Course

Section 10 - Parameterized Reports Issue 1.4 10-13

- Using Parameter fields as part of report selection criterion. - Passing parameter values into reports generated from within

ClearSCADA, both manually and automatically. - Creating tags and buttons on mimic objects. - Configuring dynamic animations. - Using the pick action wizard to execute actions on objects from a

button click. The following chapter introduces users more formally to Report Sections.

Page 80: Crystal Reports XI-2 Day Training Course v1-4

Crystal Reports XI Training Course

10-14 Issue 1.4 Section 10 - Parameterized Reports

Page 81: Crystal Reports XI-2 Day Training Course v1-4

Crystal Reports XI Training Course

Section 11 - Report Sections Issue 1.4 11-1

11 Report Sections Crystal Reports provides five primary design areas to use when building reports, namely the Report Header, Page Header, Details, Report Footer and Page Footer. Each area contains a single section when you first create a new report. These original sections cannot be deleted but can be hidden or split into multiple sections. We have already used nearly all of these sections in previous chapters and, through the use of the Group Expert, created multiple Group Header and Footer sections. The aim of this chapter is to illustrate some of the finer details of using report sections.

11.1 Production Report (Version 2) In the previous chapter we created a production report to display daily gas flow volume details. We will now attempt to enhance the appearance of the report by applying some advanced section formatting.

• Ensure that ViewX is open in front of you. If it isn’t click on the Start button and select All Programs > Control Microsystems ClearSCADA > ViewX.

• Ensure you are logged in as the Eng user account. • In the Database explorer bar navigate to Example Projects > ~Config >

Reports. We’ll now create a copy of the production report created in the previous chapter so we can keep (and compare) the original report.

• Click on the Production Report object to ensure it is highlighted. • Select Edit > Copy (or press CTRL + C). • Select Edit > Paste (or press CTRL + V). • Right-click on the newly created report and select ‘Rename’. Call the

report ‘Production Report v2’. Rename the existing Production Report object to ‘Production Report v1’ if you wish.

• Right-click on ‘Production Report v2’ and select Edit (or double click on it) to open the report for editing in Crystal Reports.

Once Crystal Reports has opened you should see the report we created in the previous chapter. We’ll now add a new section to the report, and modify the behaviour and appearance of the sections.

Page 82: Crystal Reports XI-2 Day Training Course v1-4

Crystal Reports XI Training Course

11-2 Issue 1.4 Section 11 - Report Sections

11.2 Section Expert

• Select Report > Section Expert. You will be presented with a dialog that looks similar to below:

NOTE: If page real estate is a problem the section names can be truncated by right-clicking on any of the section names and selecting ‘Show Short Section Names’ (e.g. “Page Header” will display as “PH”).

You may have noticed in the previous chapter that the group of data for each Well Head may have been split over 2 pages. This can be avoided by printing each group on a new page.

• In the Sections frame, click on ‘Group Header #1’. • Check the ‘New Page Before’ tick-box.

The ‘New Page Before’ option causes the first page to be mainly blank, but this space could be used for a full page corporate title page or to contain useful summary information.

• Click ‘Ok’ to close the Section Expert. • Preview the report and check that each group is printed on a new page.

Page 83: Crystal Reports XI-2 Day Training Course v1-4

Crystal Reports XI Training Course

Section 11 – Report Sections Issue 1.4 11-3

NOTE: You may notice that most of the Common options have an ‘X+2’ button next to it. This means that the section behaviour can be controlled by a formula. This is covered in more detail in Chapter 13.

We’ll now add some color to both the page header and footer to make the page edges stand out more.

• Select Report > Section Expert. • In the Sections frame, click on ‘Page Header’. • Click on the ‘Color’ tab and check the Background Color tick-box. • Leave the color as Silver. • Do the same for the Page Footer. • Click ‘Ok’ to close the Section Expert. • Preview the report to confirm the changes.

You will have noticed that Group Header #2 contains two (2) sets of headings, one for the date, and one for the Summary and Gas Flow Volume. We’ll now split Group Header #2 into two distinct sections.

• Select Report > Section Expert. • In the Sections frame, click on ‘Group Header #2’. • Press the ‘Insert’ button. Note that we now have two group headers,

#2a and #2b. • Click ‘Ok’ to close the Section Expert. • Drag and drop the ‘Summary’ and ‘Gas Flow Volume’ headings into

Group Heading #2b. • Resize Group Header #2a to remove the empty space. • Preview the report and ensure the group headers look as expected.

This splitting of the section allows individual formatting options to be applied to each group header. If it is decided that the split in the sections is no longer required, the two sections can be merged together.

• Select Report > Section Expert. • In the Sections frame, click on ‘Group Header #2a’. • Press the ‘Merge’ button. Note we are back to having only Group

Header #2. • Click ‘Ok’ to close the Section Expert. • Check that no tags have been lost during the merge. Your report (in

design view) should look similar to below:

Page 84: Crystal Reports XI-2 Day Training Course v1-4

Crystal Reports XI Training Course

11-4 Issue 1.4 Section 11 - Report Sections

NOTE: Sections can not only be added and merged, but also moved and deleted. Remember to be careful, especially when deleting sections with report fields, as they will also be deleted with the section.

This ends the Report Sections chapter. The following points summarise what we have covered in this chapter:

- Formatting individual sections using the Section Expert. - Adding new sections to the report. - Merging sections.

The following chapter introduces users to Report Templates.

Page 85: Crystal Reports XI-2 Day Training Course v1-4

Crystal Reports XI Training Course

Section 12 - Report Templates Issue 1.4 12-1

12 Report Templates A template is an existing report file whose formatting can be added to a new report. Report Templates are a quick and efficient means of applying standardised formatting to multiple reports. Crystal Reports comes with a set of professionally-designed report templates, which can be applied to any report, but also allows users to create their own customised templates to suit their needs. The aim of this chapter is to illustrate both the usage of existing Report Templates and also the creation of new templates.

12.1 Production Report (Version 3) In the previous chapter we modified the appearance of our production report using the Section Expert. We will now attempt to enhance the appearance of the report by applying a preconfigured template.

• Ensure that ViewX is open in front of you. If it isn’t click on the Start button and select All Programs > Control Microsystems ClearSCADA > ViewX.

• Ensure you are logged in as the Eng user account. • In the Database explorer bar navigate to Example Projects > ~Config >

Reports. We’ll now create a copy of the production report modified in the previous chapter so we can keep (and compare) the original reports.

• Click on the Production Report v2 object to ensure it is highlighted. • Select Edit > Copy (or press CTRL + C). • Select Edit > Paste (or press CTRL + V). • Right-click on the newly created report and select ‘Rename’. Call the

report ‘Production Report v3’. • Right-click on ‘Production Report v3’ and select Edit (or double click on

it) to open the report for editing in Crystal Reports. Once Crystal Reports has opened you should see the report we created in the previous chapter. We’ll now apply a preconfigured template to it.

12.2 Template Expert

• Select Report > Template Expert. You will be presented with a dialog that looks similar to below:

Page 86: Crystal Reports XI-2 Day Training Course v1-4

Crystal Reports XI Training Course

12-2 Issue 1.4 Section 12 - Report Templates

• In the Available Templates frame click on each of the templates to view a Preview of it.

NOTE: Not all of the preconfigured templates can be applied to a report without losing information, so care must be taken when selecting one.

• Select the Confidential Underlay template and click ‘Ok’ to close the

Template Expert. • In Group Header #1 resize ‘Group #1 Name’ to be the width of the

page. • Preview the report. Your report should look similar to below:

Page 87: Crystal Reports XI-2 Day Training Course v1-4

Crystal Reports XI Training Course

Section 12 - Report Templates Issue 1.4 12-3

It is fairly easy to see how quickly the appearance of a report can be modified using report templates.

NOTE: A template can be removed by opening the Template Expert and selecting the ‘Undo the current template’ option.

We will now create our own report template.

12.3 Creating a Report Template Crystal Reports has the ability the allow reports to be created without them needing to be linked to a data source. The use of Template Object Fields allows report objects to be created without referring to any database fields. These fields are simply inserted and formatted as desired, and when the template is applied to another report, Crystal Reports displays that report’s data with the formatting specified. Template Field Objects can only be applied to result fields (database fields, parameter fields, SQL expression fields and formulas).

• Make sure the Crystal Reports application is open. If it isn’t, click on the Start button and select All Programs > BusinessObjects 11 > Crystal Reports > Crystal Reports 11. Close any dialogs that may open.

Page 88: Crystal Reports XI-2 Day Training Course v1-4

Crystal Reports XI Training Course

12-4 Issue 1.4 Section 12 - Report Templates

• Click File > New > Blank Report (or click on the Blank Report link under the New Reports heading on the Start Page).

• The Database Expert will appear. Click ‘Cancel’, as we do not need to link the report to a data source.

We will now have a blank report, ready to be formatted with Template Object Fields.

12.4 Inserting a Template Field Object

• Select Insert > Template Field Object. • Hover the mouse over the Details section of the report on the left-hand

side and click to place the field. • Resize the width of the field to be approximately two thirds the width of

the page. • Select Insert > Template Field Object. • Hover the mouse over the Details section of the report on the right-

hand side of the other field and click to place the second field. • Highlight both fields by clicking on the report and dragging over both

fields, or by holding down CTRL and clicking on each field (make sure you only highlight the fields in the Details section).

• Right-click on one of the highlighted fields and select ‘Format Template Fields’.

• In the Font tab: o Set the ‘Font’ to Tahoma (or some other font). o Set the ‘Style’ to Bold. o Set the ‘Color’ to something pretty.

• Click ‘Ok’ to close the Format Editor. • Highlight both of the automatically generated heading fields by clicking

on the report and dragging over both fields, or by holding down CTRL and clicking on each field.

• Right-click on one of the highlighted fields and select ‘Format Objects’. • In the Border tab:

o Check the tick-box next to ‘Background’. o Set the ‘Background’ color to Red.

• In the Font tab: o Set the ‘Font’ to Tahoma (or some other font). o Set the ‘Style’ to Bold.

• Click ‘Ok’ to close the Format Editor. • Your report should look similar to below:

Page 89: Crystal Reports XI-2 Day Training Course v1-4

Crystal Reports XI Training Course

Section 12 - Report Templates Issue 1.4 12-5

Click on File > Save to store the report on disk. Save it with the file name “Report Template.rpt” into a folder called ‘Reports’ in My Documents. We will now apply our newly created template to the ‘Basic Report’ we created in Chapter 3.

• Select File > Open. • Navigate to the location of the file ‘Basic Report.rpt’, select it and click

Open. • Select Report > Template Expert. • Click on the Browse button to find our report template. • Navigate to the location of the file ‘Report Template.rpt’, select it and

click Open. • Click ‘Ok’ to close the Template Expert. • Preview the report if you aren’t already doing so. Your basic report

should now similar to below:

Page 90: Crystal Reports XI-2 Day Training Course v1-4

Crystal Reports XI Training Course

12-6 Issue 1.4 Section 12 - Report Templates

You can easily see how quickly formatting can be applied to existing reports through the use of report templates. If you would like to save a copy of this report click on File > Save As and change the file name to “Basic Report v2.rpt”. This ends the Report Templates chapter. The following points summarise what we have covered in this chapter:

- Applying pre-existing report templates to any report. - Creating and configuring new report templates.

The following chapter introduces users to the creation and usage of formulas in reports.

Page 91: Crystal Reports XI-2 Day Training Course v1-4

Crystal Reports XI Training Course

Section 13 - Creating Formulas Issue 1.4 13-1

13 Creating Formulas Generally when creating reports, most of the data required for the report already exists in database table fields. For example, a report may need to list each of the points configured in the database, grouped by point type, and display the current state and value associated with each one. This can easily be achieved with the database fields provided by ClearSCADA. Sometimes however, the report will require data that does not exist in any of the data fields. In such cases a formula is required. For example, a report may need to list each of the points configured in the database, grouped by point type, and display the current state, previous state and the amount of time since the last state change associated with each one. In this example the amount of time since the last state change must be calculated. The following are some common uses for formulas in Crystal Reports:

- Creating calculated fields to add to your report. - Formatting text on a report. - Pulling out a portion, or portions, of a text string. - Extracting parts of a date or time. - Using custom functions.

We will now create a device status summary report that illustrates the usage of formulas in reports. The report will show information from a subset of the points within our ClearSCADA database, including the current and previous state and the time since the state last changed.

13.1 Device Status Summary Report For this chapter we will be creating a blank report. The report will display device status information for each device in our system.

• If the Crystal Reports application is still open, close it now. Save the report if you have made any changes since the last time it was saved.

• Ensure that ViewX is open in front of you. If it isn’t click on the Start button and select All Programs > Control Microsystems ClearSCADA > ViewX.

• Ensure you are logged in as the Eng user account. • In the Database explorer bar navigate to Example Projects > ~Config >

Reports. • Right-click on the group named ‘Reports’ and select New > Other >

Crystal Report. • Name the newly created report “Device Status Summary” and press

Enter. • Right-click on the new report named ‘Device Status Summary’ and

select Edit (or double click on it).

Page 92: Crystal Reports XI-2 Day Training Course v1-4

Crystal Reports XI Training Course

13-2 Issue 1.4 Section 13 - Creating Formulas

The Crystal Reports editor will open and we will have a blank report ready to be edited. We will be adding one (1) table to this report, namely the Abstract Point table (CDBPoint). The ‘CDBPoint’ table contains a lot of general information that is common to all variations of points in the database, including the current/previous value, current/previous quality and current/previous state.

• Open the Database Expert by clicking Database > Database Expert (or right-click on ‘Database Fields’ in the Field Explorer and select Database Expert).

• In the Available Data Sources frame click the plus icon next to the ‘Create New Connection’ entry to expand it.

• From the options presented click the plus icon next to the ‘ODBC (RDO)’ folder to expand it.

• Click the plus icon next to the ‘ClearSCADA’ entry to expand it. If there is no ‘ClearSCADA’ option you will need to create a new connection (refer to the steps in section 3.2).

• Scroll down until you find the table named ‘CDBPoint’. Click on it then click on the right arrow (or double click on the ‘CDBPoint’ entry) to add the table to the Selected Tables list.

• Click ‘Ok’ to close the Database Expert. We will now populate the report with the fields we are interested in.

• Within the Field Explorer click the plus icon next to the ‘Database Fields’ entry to expand it.

• Click the plus icon next to the ‘CDBPoint’ entry to expand it. • Find the entry named ‘CurrentStateDesc’. Drag and drop it into the

‘Details’ section of the report, towards the left-hand side. • Find the entry named ‘PreviousStateDesc’. Drag and drop it into the

‘Details’ section of the report, on the right-hand side of the CurrentStateDesc field.

• Find the entry named ‘CurrentTime’. Drag and drop it into the ‘Details’ section of the report, on the right-hand side of the PreviousStateDesc field.

• Rename the field headings to “Current State”, “Previous State” and “Last Updated” respectively.

NOTE: The ‘CurrentTime’ field is actually the time the point’s value was last updated, and the ‘PreviousTime’ field is the time the point’s value was updated before that.

We’ll now use the Select Expert to filter the records based on points with a specific name.

• Select Report > Select Expert to open the Select Expert. • In the Choose Field dialog that appears select ‘CDBPoint.Name’ and

click ‘Ok’.

Page 93: Crystal Reports XI-2 Day Training Course v1-4

Crystal Reports XI Training Course

Section 13 - Creating Formulas Issue 1.4 13-3

• Click on the drop-down box under the ‘CDBPoint.Name’ tab and select the ‘is equal to’ option.

• In the new drop-down box that appears enter the following text: Device Failure, ensuring that the case is correct.

• Click the ‘Ok’ button to close the Select Expert. We’ll now add a formula field to extract the device name from the full name of the points returned.

13.2 Inserting Formula Fields

• In the Field Explorer right-click on Formula Fields and select ‘New’. • Enter the Name: ‘Device Name’ and click ‘Ok’. You will be presented

with a dialog similar to below:

The Formula Editor contains the following main sections (clockwise from the top-left, ignoring the left frame):

- Field Explorer: lists the report fields, database fields, parameter fields, formula fields and any other predefined fields.

- Function Explorer: lists the available built-in Crystal Report functions that are available when writing formulas.

- Operator Explorer: lists the built-in Crystal Reports operators that are available when writing formulas.

Page 94: Crystal Reports XI-2 Day Training Course v1-4

Crystal Reports XI Training Course

13-4 Issue 1.4 Section 13 - Creating Formulas

- Code Section: the editor area where programmable information is typed.

NOTE: While working in the code section, CTRL + SPACE can be pressed at any time to bring up the function explorer.

Enter the following text into the code section:

//Declare evaluation time. WhileReadingRecords; //Declare local variables. Local StringVar Array aDeviceName; Local StringVar sOutput; Local NumberVar nArraySize; //Perform calculations. aDeviceName := Split({CDBPoint.FullName}, "."); nArraySize := 4; If (UBound(aDeviceName) >= nArraySize) Then

sOutput := aDeviceName[4] Else

sOutput := "*** Name Error ***"; //Return output. sOutput;

The following table explains what the various lines of the code mean: Line Meaning //<text> The <text> is a comment often used to

indicate what the formula is doing at that point. Comments are ignored by the compiler.

WhileReadingRecords; This line tells the environment to calculate the value of the field while it is reading the records.

Local StringVar Array aDeviceName Declares a variable. The syntax is “<scope> <type> <name>”.

aDeviceName := Split({CDBPoint.FullName}, ".");

Splits the ‘FullName’ value of the point into an array of values, delimited by a full stop. These values are stored in a local variable defined earlier.

If (UBound(aDeviceName) >= nArraySize) Then Checks if the size of the array is big enough to pull out the piece of information we want.

sOutput := aDeviceName[4] Assigns the 4th element of the array into a local variable defined earlier.

sOutput; Returns to value of the variable to the report.

The syntax and structure of the code is very similar to that of Visual Basic, and can in fact be changed from Crystal Syntax to Basic Syntax if you prefer that format.

Page 95: Crystal Reports XI-2 Day Training Course v1-4

Crystal Reports XI Training Course

Section 13 - Creating Formulas Issue 1.4 13-5

NOTE: The Crystal Report help contains a complete function reference defining what each one does, what parameters are available, and an example of its usage (see Help > Crystal Reports Help > Functions).

At any time the code in the formula can be checked for errors by clicking the ‘x+2’ button (but errors will automatically be detected if the formula is saved).

• Click ‘Save and close’ to close the Formula Editor. We now have a formula that calculates the device name associated with our ‘Device Failure’ point by extracting part of its full name. Now we will group our data based on this value.

• Select Report > Group Expert to launch the Group Expert tool. • In the Available Fields list find the formula entry named ‘Device Name’

(it will have an ‘x+1’ icon next to it). Click on it then click on the right arrow (or double click on the ‘Device Name’ entry) to add the field to the Group By list.

• Click ‘Ok’ to close the Group Expert. Your screen should look similar to below:

We will now create another formula to calculate the number of hours since the last state change for our devices.

Page 96: Crystal Reports XI-2 Day Training Course v1-4

Crystal Reports XI Training Course

13-6 Issue 1.4 Section 13 - Creating Formulas

• In the Field Explorer right-click on Formula Fields and select ‘New’. • Enter the Name: ‘Time Since State Change’ and click ‘Ok’. • Enter the following text into the code section:

//Declare evaluation time. WhileReadingRecords; //Declare local variables. Local DateTimeVar dLastUpdated; Local DateTimeVar dCurrentDateTime; Local NumberVar nSecondsDiff; Local StringVar sOutput; Local NumberVar nTempSeconds; Local NumberVar nTempMinutes; Local NumberVar nTempHours; //Perform calculations. dLastUpdated := {CDBPoint.CurrentTime}; dCurrentDateTime := CurrentDateTime; nSecondsDiff := DateDiff ("s", dLastUpdated, dCurrentDateTime); If nSecondsDiff < 0 Then sOutput := "Never updated" Else If nSecondsDiff < 60 Then sOutput := CStr(nSecondsDiff) & " seconds" Else If nSecondsDiff / 60 < 60 Then sOutput := CStr(nSecondsDiff / 60) & " minutes" Else sOutput := CStr(nSecondsDiff / 3600) & " hours"; //Return output. sOutput;

• Click ‘Save and close’ to close the Formula Editor. • Drag and drop the newly created formula field into the ‘Details’ section

of the report, on the right-hand side of the CurrentTime field. • Preview your report and check that the values are correct. The report

should look similar to below:

Page 97: Crystal Reports XI-2 Day Training Course v1-4

Crystal Reports XI Training Course

Section 13 - Creating Formulas Issue 1.4 13-7

Exercises

1. Create an Internal Digital Point in the root of the ClearSCADA database and call it ‘Device Failure’. Ensure the report correctly handles the situation where the device name isn’t structured as we expect.

2. Change the ‘If-Then-Else‘ control structure of the “Time Since State Change” formula to instead use a ‘Select Case’ control structure.

3. [Advanced] Change the formula to always show the exact number of hours, minutes and seconds (e.g. 2h, 17m, 35s).

This ends the Creating Formulas chapter. The following points summarise what we have covered in this chapter:

- Creating formula fields in Crystal Reports. - Configuring formula fields with various built-in functions.

The following chapter introduces users to the creation and usage of subreports.

Page 98: Crystal Reports XI-2 Day Training Course v1-4

Crystal Reports XI Training Course

13-8 Issue 1.4 Section 13 - Creating Formulas

Page 99: Crystal Reports XI-2 Day Training Course v1-4

Crystal Reports XI Training Course

Section 14 - Subreports Issue 1.4 14-1

14 Subreports A subreport is essentially a report within a report. Supreports allow unrelated reports to be combined into a single report. Unlinked data or data from different data sources can be co-ordinated and presented in different views in a single report. To summarise, typically there are four (4) situations in which a subreport would be used:

- To combine unrelated reports into a single report. - To co-ordinate data that cannot otherwise be linked. - To present different views of the same data within a single report. - To perform one-to-many lookups from a field that is not indexed on the

lookup field. The process for creating a subreport is similar to the process of creating a regular report. A subreport can have most of the characteristics of a report, including its own record selection criteria. The differences between a subreport and a primary report are that a subreport:

- Is inserted as an object into a primary report; it cannot stand on its own (although a subreport can be saved as a primary report).

- Can be placed in any report section and the entire subreport will print in that section.

- Cannot contain another subreport. - Does not have Page Header or Page Footer sections.

For this chapter we will create blank ‘Master’ report, which will contain subreports to various other useful reports.

14.1 Master Report

• If the Crystal Reports application is still open, close it now. Save the report if you have made any changes since the last time it was saved.

• Ensure that ViewX is open in front of you. If it isn’t click on the Start button and select All Programs > Control Microsystems ClearSCADA > ViewX.

• Ensure you are logged in as the Eng user account. • In the Database explorer bar navigate to Example Projects > ~Config >

Reports. • Right-click on the group named ‘Reports’ and select New > Other >

Crystal Report. • Name the newly created report “Master Report” and press Enter. • Right-click on the new report named ‘Master Report’ and select Edit (or

double click on it). The Crystal Reports editor will open and we will have a blank report ready to be edited.

Page 100: Crystal Reports XI-2 Day Training Course v1-4

Crystal Reports XI Training Course

14-2 Issue 1.4 Section 14 - Subreports

14.2 Inserting Subreports

• Select Insert > Subreport. The following dialog will be displayed:

We will now quickly create a subreport with the Report Wizard.

• Under the field ‘New report name’ enter the text ‘Point Alarms’. • Click the ‘Report Wizard’ button. • Use the following information to create the subreport:

o Selected Tables: CDBPoint. o Fields to Display: CDBPoint.FullName. o Group By: None. o Filter Fields: CDBPoint.AlarmState > 1.

NOTE: Refer to the database schema at the following location to see exactly what we have specified above: http://localhost/schema/CAlarmObject.

o Template: No Template.

• Click ‘Ok’ to close the ‘Insert Subreport’ dialog. • Place the Subreport in the Report Header section.

We now have an embedded Subreport within a master report. The master report itself is not linked to any specific data source.

Page 101: Crystal Reports XI-2 Day Training Course v1-4

Crystal Reports XI Training Course

Section 14 - Subreports Issue 1.4 14-3

• Right-click on the newly added Subreport and select ‘Edit Subreport’. • Extend the width of the ‘FullName’ field to the width of the page and

rename the heading to “Point Alarms”. • Remove the ‘Print Date’ field. • Use the ‘Section Expert’ to merge the Report Header and Report

Footer sections. • Add a Summary Field to include the total number of alarms in the ‘Point

Alarms’ heading. • Suppress any blank sections. • Your Subreport should look similar to below:

• Preview your report. Check that the number of alarms listed matches the number in the alarm banner in ViewX.

Exercises

1. Add a heading, image and the report generation date/time to the report header section of the Master Report.

2. Add another Subreport to the Master Report in the Report Footer section, this time choose an existing report (from disk) and make the subreport “On-demand” (hyperlink).

3. Link the Master Report to the ‘CDBObject’ table and display the Name of each object in the database relative to its depth, for example the object “~Config.Comms.Channel” would be seen as “- - Channel”.

Page 102: Crystal Reports XI-2 Day Training Course v1-4

Crystal Reports XI Training Course

14-4 Issue 1.4 Section 14 - Subreports

(Hint: Use a formula to find the depth of the object in the database tree with its FullName, and then use that depth to calculate the string including the objects Name).

4. Modify the ‘Point Alarms’ Subreport so that the color of the text for the ‘FullName’ field is different depending on exactly what alarm state the point is in (Hint: The Font color will need to be based on a formula).

Your finished report should look something like this:

Page 103: Crystal Reports XI-2 Day Training Course v1-4

Crystal Reports XI Training Course

Section 14 - Subreports Issue 1.4 14-5

For any hints, the design mode of the report is below:

Page 104: Crystal Reports XI-2 Day Training Course v1-4

Crystal Reports XI Training Course

14-6 Issue 1.4 Section 14 - Subreports

This ends the Subreports chapter. The following points summarise what we have covered in this chapter:

- Inserting a subreport, both from an existing file and creating a subreport on the fly.

- Modifying the appearance of a subreport. - Review of formulas, summary fields and general report editing.

Page 105: Crystal Reports XI-2 Day Training Course v1-4

Crystal Reports XI Training Course

Section 15 - Comments Issue 1.4 15-1

15 Comments Thank you for completing the Crystal Reports XI training course. Any feedback on the course content, course structure or presentation style is greatly valued. Please make any comments below:

Page 106: Crystal Reports XI-2 Day Training Course v1-4

Crystal Reports XI Training Course

15-2 Issue 1.4 Section 15 - Comments

Page 107: Crystal Reports XI-2 Day Training Course v1-4

Crystal Reports XI Training Course

Section 16 - Troubleshooting Issue 1.4 16-1

16 Troubleshooting

16.1 Failed to generate a Crystal Report Check what the error message is in the event list for the report (or if an error pops up in a dialog) and use the following table to diagnose and fix the problem: Problem Error Displayed Resolution Failed Logon “Generate report request failed

- Failed to generate report, Logon Failed...”

Ensure the user configured to generate the report has sufficient security permissions to allow them to access the required part of the system and check that the user is still valid in the system.

Incorrect DSN Configuration

'”Generate report request failed - Failed to generate report, Failed to open the connection...'”

Ensure that the configured System DSN matches the name of the DSN configured in ClearSCADA (Server Configuration > Global Parameters > Crystal Reports).

Data Not Constrained "Generate report request failed - Failed to generate report, Failed to retrieve data from the database..."

Ensure sufficient constraints are placed on the data set being requested. For example, when querying the CDBHistoric table it is important to constrain the query by time.

Table Not Found "Generate report request failed - Failed to generate report, The table '' could not be found..."

Check that the names of any tables used in the report match the names in ClearSCADA database schema.

No Interface to Driver "InvokeMethod returns 0XC0140026. No interface to driver."

Occurs if the Crystal Reports driver is not running or not running correctly. Contact your support representative.

Page 108: Crystal Reports XI-2 Day Training Course v1-4

Crystal Reports XI Training Course

16-2 Issue 1.4 Section 16 - Troubleshooting

Page 109: Crystal Reports XI-2 Day Training Course v1-4

Crystal Reports XI Training Course

Section 17 - Definitions/Abbreviations Issue 1.4 17-1

17 Definitions/Abbreviations Term Meaning Business Intelligence

Business intelligence (BI) is a broad category of applications and technologies for gathering, providing access to, and analysing data for the purpose of helping enterprise users make better business decisions.

CSV Comma-Separated Value DNP3 Distributed Network Protocol DSN Data Source Name LAN Local Area Network ODBC Open DataBase Connectivity OPC OLE for Process Control PDF Portable/Printable Document Format PSTN Public Switched Telephone Network RDO Remote Data Object SCADA Supervisory Control And Data Acquisition SQL Structured Query Language WAN Wide Area Network

Page 110: Crystal Reports XI-2 Day Training Course v1-4

Crystal Reports XI Training Course

17-2 Issue 1.4 Section 17 - Definitions/Abbreviations