Data Keys on the Report
Data Keys are enclosed in the "@" character when utilized by components in the report. They may be typed manually, or dragged directly from the Key Browser.
Keys that contain a single value will create a Text Shape when dragged onto the report.
Keys that represent datasets will create a Table component, and configure the Data Key property to use the key.
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.
|title||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.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.
From the Report Components palette, drag a table into the Design Panel. Next, drag your datasources to columns in your table.
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.
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.
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.
will add several aggregates to each key. These allow your reports to easily display things like the total of a key. These calculations are typically used in the summary row on the Table component.
Once Show Calculations is enabled, the Key Browser will refresh, and each key will be expandable. Expanding a key will show the available calculations.
Calculation Keys work like any other key: they may be dragged onto the report, and utilized in Keychain Expressions.
Configuring a Dynamic Data Key
There are two ways to configure a dynamic data key. Note that the syntax of keys differs in Dynamic Data Keys: the "@" are omitted, as demonstrated below.
The easiest approach is by simply dragging a data key from the Key Browser directly to a property on a report component.
- With a report component selected, look in the Property Inspector, and left click on the name of a property you wish to place the dynamic data key on.
- Once selected, you can right-click on the property name and a menu will appear.
- Click on the Use dynamic data key menu item.
- This will place a dynamic data key on the property. An icon of a link () will appear next to the property name, and a default key will be applied to the property.
- Next we will want to override the default value with one of the keys from the Key Browser. Simply left click on the value field and a magnifying glass () icon will appear.
- Click on the () icon. From here a popup of available keys will appear. Select the key you wish to use, and then click OK.
Data Key Usage
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 data sources are outside the scope of this page, but you can learn about Data source 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:
@dataSource.columnName@, where "dataSource" is a data source that contains a child data key named
columnName. Assuming a data source with the values listed below, we can retrieve the value of "Second Row" by specifying index
1 and the column
indexColumn, stringValue 0, "First Row" 1, "Second Row" 2, "Third Row" 4, "Fourth Row"
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 a similar rectangle overlapping an ellipse, 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.
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.
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: