New to Telerik Reporting? Download free 30-day trial

Global Objects Overview

Telerik script language provides the following intrinsic (or "built-in") objects that may be used in Expressions inside the report definition.


The Fields collection represents the set of fields specified by the report data source plus any additional calculated fields that you create. It is a function that requires a string argument with the name of the data field and not an object like ReportItem.DataObject.

After you create a data source for a data item (Report, Table, Crosstab, List, Chart), the field collection appears in the Data Explorer toolbox.

Example: Fields.ProductID - returns the value of the field ProductID in the current data scope instance. If the data source does not contain the referenced column, an error is thrown. If the report has no data source set, the expression result is null (Nothing)

If the data source field name is not a valid name in terms of programming languages (contains spaces, punctuation marks, etc.) enclose its name in square brackets, for example =Fields.[My Column]; Because brackets are special characters, you must use a backslash (\) to escape the bracket, if it is part of a data field name. For example, a data field named Field[1] would be referenced as Fields.[Field\[1\]].

Another option of accessing the values in the fields collection is the global function Fields(fieldName).


Represents the collection of report parameters, each of which can be single-value or multi-value. See Adding Parameters to Report.


  • =Parameters.Product.Value - returns the actual Value of the report parameter with the name Product.
  • =Parameters.Product.Label - when the parameter Product has AvailableValues, returns its property AvailableValues.DisplayMember. When there are no AvailableValues or the DisplayMember is not specified, it falls back to the actual Value of the parameter.
  • =Parameters.Product.Text - returns the property Text of the report parameter with the name Product. When Text is not specified it displays the Name of the parameter, in this example, Product.

Another option for accessing the report parameters' collection is the global function Parameters(parameterName).


Represents a read-only type that contains information about the environment in which the reporting engine works. Contains two properties: OperatingSystem and GraphicsEngine.

  • OperatingSystem returns the identifier of the operating system in which the current application is running, as provided by the OperatingSystem.VersionString property (e.g. 'Microsoft Windows NT 6.2.9200.0').
  • GraphicsEngine returns a GraphicsEngine member representing the currently used graphics engine. Available values: Gdi and Skia, accessible also through the ReportingConstants.GraphicsEngine options. Example: =Switch(Environment.GraphicsEngine, GraphicsEngine.Gdi, "Using GDI", GraphicsEngine.Skia, "Using Skia", "N\A")


A DateTime instance containing the date and time of the moment when the current report started its procesing by the reporting engine.


The current page number. It can be used only in the page header and footer.


The total number of pages in the report that can be used only in the page header and footer.

The page numbering behavior in a report contained in a report book may be controlled through the PageNumberingStyle property.


Represents the runtime rendering extension currently used to render the report.

For information regarding the available child properties, check out the RenderingFormat API reference or use the Expression Builder dialog.

This global object will be populated while rendering the report in any report viewer or programmatically. The object will not be available in the ReportParameters properties evaluation as the parameters get evaluated before the rendering operation gets started.

It is strongly recommended to use this property only for report visual output customizations and not for data retrieval parameterization, as the report data gets cached between the rendering operations for desktop viewers. Thus, using it will not lead to the desired effect.


The current processing item in which context the expression is evaluated. The object is not evaluated when the processing item is not available, i.e. when using it in report parameters.

The ReportItem is an object passed from each item to its children. The ReportItem.DataObject in particular holds the data of the parent item, which makes it available to its children. If the parent item is a data item with groups, only the group data is passed as ReportItem.DataObject to the corresponding groups and the items within these groups.

When the child is a data item, it passes as ReportItem.DataObject its own data to its children. If the child isn't a data item and doesn't have a DataSource, it passes the ReportItem.DataObject received from its parent to its children.

For example, the Fields from a Table DataSource are passed as ReportItem.DataObject to its cells' items, e.g. TexBoxes. Therefore, in these no-data items, the Expression =Fields.fieldName is equivalent to the Expression =ReportItem.DataObject.fieldName.

On the Table item though, the ReportItem.DataObject comes from its parent, for example, from the Report item. For that reason, =ReportItem.DataObject.fieldName is different from =Fields.fieldName in the Table. The Fields function represents the Table DataSource, whereas the ReportItem.DataObject object represents its parent (e.g. Report) DataSource.

For information regarding the available processing ReportItem properties, check out the corresponding processing item API reference.


The current report definition.

For information regarding the available Report definition properties, check out the Report API reference.


Represents the current user identity in which context the expression is evaluated.

For information regarding the available child properties, check out the UserIdentity API reference or use the Expression Builder dialog.

This global object will be populated for all web report previews based on the HTML5 report viewer. The default user identity resolution can be substituted for each report rendering service by overriding the corresponding GetUserIdentity method.

When exporting a report programmatically the global object can be populated by setting the static property Telerik.Reporting.Processing.UserIdentity.Current.

In this article