Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 16 Next »

Data Keys

The most critical part of any report is data.  Without data, there is nothing to report!  In the Reporting Module, we use Data Keys and (optionally) Keychain Expressions to feed the report from the data sources. The simplest reference to data is a simple Data Key.  A Data Key is a reference that points to the data it represents. At report generation time, these keys resolve to the values (or sets of values) provided by the data source. In simple terms, Data Keys are placeholders for your data.

 Data Key Example

If we created a data source named Countries, we can experiment with Data Keys to see how they resolve. Create a table in the Report Designer.  Drag the Countries datasource from the Key Browser to the Data Key field in the Design Panel as shown below. In the Property Inspector, you can also see that we enabled the Table's Header, and typed header descriptions for each column we wanted to display. Next, we dragged and dropped keys from the Key Browser into the Details columns.  We can tell which items in the Report Designer reference data keys because they are surrounded by "@" symbols.

"Countries" Data Source
Country, Capital, Population
"China", "Beijing", 20693000
"Japan", "Tokyo", 13189000
"Russia", "Moscow", 11541000
"South Korea", "Seoul", 10528774
"Mexico", "Mexico City", 8851080
"Italy", "Rome", 2858104
"Germany", "Berlin", 3520000

Click the Preview Panel, to see a simple table that neatly displays a row for each entry in Countries datasource. Looking at the XML, you can see that the Countries datasource sent a single row of data for each entry.  You'll notice that the headers are printed exactly as they were in the Design Panel.  As an experiment, you can surround these header values with "@" symbols to see what happens.

Data Key Usage

All text fields in Report Design elements are able to resolve Data Keys.  In fact, you can freely mix plain text and data keys anywhere. In our table example above, we could substitute "@Population@" with "@Population@ people" and the data key portion would be swapped out for the appropriate data.  This can be a very powerful feature when trying to create reports. For example, you could have a text field at the bottom of a report that displays "@Page@ of @PageMax@".   If for some reason your Data Key can't be found, your report will display a Substitution String (which defaults to "<N/A>" but can be configured in the Report's Property Table by selecting the Report in the Project Browser).   

For more information on Data Key syntax, lease see the Key Calculations page. 

Data Keys as Paths

Data Keys are relative, and use 'dot notation' to reference children.   Meaning, if we have a nested data structure, we can use Data Key paths (also known as Keychains) to reference the nested data.  In the key browser image below, we have a nested data source called Downtime. Downtime contains a number of columns, and then contains a reference to additional data called runInfo.  If we wanted to access the highlighted operator data, we could use the keychain dot notation in the Designer - @Downtime.runInfo.operator@. Nested datasources are outside the scope of this page, but you can learn about Datasource nesting in the Nested Queries section.

Array Index of Data

You can reference an individual object in a list using standard array indexing syntax (brackets) like this: @Data[0].firstName@, where Data is a data source that contains a child data key named firstName. In this case, we would be accessing the first firstName in the set of data.

On this page ...


Built-In Keys

Built-In Keys provide a lot of useful information on your report at a glance. The Built-In keys are found in the Key Browser. Expand the Built-In folder and you'll see all the default keys, including a Report folder. The keys in the Report folder are specifically related to the report: Gateway name that the report is located in, report name, folder path from the Project Browser to the report, and the Timestamp of the Gateway.  The other Data Keys are related to information you may want to add to a report like the date you are viewing or printing the report, page number, number of total pages, and more.

Here's a screenshot of the Key Browser showing all the default Built-In Keys that can be used on a report.


The tables below show the Built-In Report Data Keys and Built-in Data Keys along with a brief description of each key. 

Built-In Report Data Keys

Key Description 
GatewayName of the Report's Ignition Gateway
NameName of the Report
PathPath to the Report in the Project Browser
TimestampThe Gateway's current timestamp

Built-In Data Keys

DateThe current date/time
PageThe current page
PageMaxThe total number of pages in the generated report
Page of PageMaxShows current page number and the total number of pages in the report
PageBreakThe number of explicit page breaks encountered
PageBreakMaxThe total number of explicit page breaks in generated report
PageBreakPageThe number of pages since last explicit page break
PageBreakPageMaxThe total number of pages in current explicit page break
RowShows the current row number. Must be used in a table


In the Design Panel, simply drag any of the data keys anywhere on to your report. Move them around on your report until you find the best location. The Preview Panel shows exactly how the report will look when it is generated. If you don't like the way it looks, go back to the Design Panel to modify it.


Built-in Keys

Design Panel

Preview Panel


Show Calculations Property

Another important property is Show Calculations. In the Key Browser, set the Show Calculations property to 'true' and expand Datasources.  You'll see the 'count' key was added under Datasources. A 'count' is the total number of rows in your Datasource. Expand your columns and you'll see that a number of built-in keys were added. For each column you can calculate the following: value, total of all the values in that column, average, maximum value, minimum value, running total, and running average. These keys are available for each column that you bring into your table once you set Show Calculations to 'true'. The Show Calculations property can come in pretty handy once you're familiar with how it works.

Show Calculations is not recommended for text strings, but is great for showing numerical calculations.

 Show Calculations Example

By dragging any one of the calculation keys from the Key Browser on to a report, you will see the result of that calculation in the Preview Panel using the dataset below.

  1. In this example, we'll use the following dataset containing several cities along with their populations to show how the Show Calculations property and associated keys work.

  2. From the Report Components palette, drag a table into the Design Panel. Next, drag your datasources to columns in your table.

  3. In the Key Browser, set the Show Calculations property. You'll notice that the 'count' key was added under Datasources and the calculation keys were added to each column in your datasource. Expand any of your datasources to see see the calculation keys.

  4. In the Design Panel, drag any of the calculation keys to your table. You can see we randomly placed the 'max' and and 'average' keys on the report. The calculation keys were converted to keychain expressions (i.e., '@Countries.max.Population@,' and '@Countries.average.Population@') in the report. One thing to keep in mind if you are using the Show Calculations property, is you may need to do some formatting of your table rows and headers so your calculations are displayed nicely on your report. You'll notice that Header and Summary rows were added. The Summary row contains the '@total.Population@' so it will look nice in the report.

  5. Once you add your calculation keys to your table, go to the Preview Panel to see what your report looks like. It's not unusual to have to go back to the Design Panel to tweak the formatting. If you don't like the number format, you can go to the Property Inspector and change the format of the Number property. Number and Date formats are discussed later in this page.



Use Dynamic Data Keys

Dynamic Data Keys allow you to make changes to a report allowing you to tailor a report to a specific need or requirement at a given time. You can bind properties on Reporting components to parameters. It's as simple as dragging-and-dropping the parameter to the property, or right clicking the property and clicking on 'Use dynamic data key'.


Dynamic keys are very powerful. You can bind report parameters to components on a window allowing you to change a report based on a specific need.

Date and Number Formats

Date Format and Number Format properties accept Dynamic Data Keys. String values should be used for these properties, such as "#0.00##" for number format.

Each property has several predefined format strings to choose from for displaying Dates and Numbers. Click on the icon on the right side of the property name to select a format string, and press OK


Colors in Expressions

Colors may be references in Keychain Expressions in several ways.

Colors in Hexadecimal

First, hexadecimal case-insensitive color codes may be used. The code must be wrapped in quotation marks to be evaluated correctly. Note that the color change will only appear when the report is executed. The easiest way to test the expression is to switch to the Preview Panel.

Below we see a Blue hexadecimal code of "0000FF" is used on the Fill Color of a Rectangle. The Fill Color on the Rectangle was originally set to White. Because the expression will not evaluate in the Design Panel, the Rectangle will appear as a White color.


However, switching over to the Design Panel will generate the report, and evaluate the expression. This in turn returns a Blue Fill Color. 

The 7th and 8th digits may be added to specify an alpha channel, or the opacity of the color: 00 is fully transparent, while FF is fully opaque. Below, we see the same rectangle, but with a code of "0000FF40". This represents ~25% opacity, so objects behind the rectangle will be visible, and the fill color will only be slightly opaque. 

Strings as Colors

Additionally, case-insensitive string color names may be used to return a color. Again, the value must be wrapped in quotation marks. 

The following string values may be used:



Parameters as Colors

You may also leverage Report Parameters to specify colors. This typically involves creating a parameter with a string datatype, and using the color expression function. 

Once created, you can simply create a dynamic data key reference on the property by dragging the parameter from the Key Browser onto the property in the Property Inspector. This way, you can have several components use the same color, and modify the color in a single location. 

 Multiple Fill Color Expression Example

Expanding on the example above, we can use an expression to return one of potentially multiple colors. This allows us to highlight different values or ranges contextually, making important values stand out. 


#If the value of the "myValue" key is greater than 5, a blue color will be returned. Otherwise, a green color will be used. 


In the image below, the Fill property is also using a dynamic data key, so the Fill Color will be disabled if myValue is less than 1, Blue if myValue is between 1 and 4, and Green if greater or equal to 5. 


To add more color-value pairs, we simply add more if statements:


#If the value of "myValue" will determine one of multiple colors: Greater than 10 will return Red, 6 to 10 will return Blue, and 1 to 5 will return Green.


Use Dynamic Data Key




  • No labels