Skip to main content

Using Data Fields in Expressions

T
Written by Tim Sublette

Expressions can contain values from data sources. A string representation of the field is used to reference that field from the data source. The proper syntax for the reference is the name of the data source and the field name with a full-stop character or decimal point separating them, surrounded by curly braces:

{DataSource.Column}

It is possible to drag and drop from the data dictionary to the page of a report or the expression editor, and the information will be inserted with the correct syntax automatically.

Parent Relationships

In cases where the data source has a parent relationship with another data source, you can reference other fields from the parent data source. The proper syntax, in this scenario, is the name of the data source, followed by the relation name, and then the field name. Each name should be separated by a full-stop character or a decimal point, and the entire thing should be surrounded by curly braces, as before.

{DataSource.Relation.Field}

If you have a set of information like the following:

  1. Cabinets - the name of a data source.

  2. ParentCategories - the name of the relation.

  3. Cabinets is a list of cabinets, and Categories is a list of categories of these products.

  4. CategoryName is a column name in the Categories data source.

{Cabinets.ParentCategories.CategoryName}

The above expression will yield the name of a category for a cabinet in the report.

A column can be called through multiple relationships. For example:

  1. OrdersDetail - the name of a data source.

  2. ParentCabinets - the name of the relation between OrdersDetail and Cabinets.

  3. ParentCategory is the name of the relation between Cabinets and Categories.

  4. CatName is a field in the Categories data source.

{OrdersDetail.ParentCabinets.ParentCategory.CatName}

The above expression will yield the name of a category for a cabinet in the report. This is has been done without a direct call to the Categories data source.

If VB.NET is used as the reporting language, the names will not be case sensitive. However, if the reporting language is C#, the names are case sensitive.

All data items are converted to the type that is specified in the options column. This dynamic conversion helps to accelerate the development of reports. To acquire data from a column without conversion, specify the data source directly.

In C#:

{Cabinets[“CabinetName”]}

The above expression will return data from the Cabinets data source without conversion.

In VB.NET:

{Cabinets.Item(“CabinetName”)}

Did this answer your question?