# Interactive features

Learn how to use interactive features of ActiveReportsJS.

## Content

ActiveReportsJS provides several types of interactive features to supply your reports with for a better user experience.

## Action property

[TextBox](/activereportsjs/docs/v6.0/ReportAuthorGuide/Report-Items/Data-Visualizers/TextBox), [Image](/activereportsjs/docs/v6.0/ReportAuthorGuide/Report-Items/Data-Visualizers/Image), [Chart Plots](/activereportsjs/docs/v6.0/ReportAuthorGuide/Report-Items/Data-Regions/Chart/plot), [Table Rows](/activereportsjs/docs/v6.0/ReportAuthorGuide/Report-Items/Data-Regions/Table#table-rows), [Banded List sections](/activereportsjs/docs/v6.0/ReportAuthorGuide/Report-Items/Data-Regions/BandedList#banded-list-sections), and [List sections](/activereportsjs/docs/v6.0/ReportAuthorGuide/Report-Items/Data-Regions/List#section-configuration) have the `Action` property that determines what happens if a report reader clicks a report item, chart plot's element, any element within a table row, or within a space occupied by a List or BandedList section at preview time.
There are four types of interactive actions.

### Apply parameters

The `Apply Parameters` action sets values of one or more [Report Parameters](/activereportsjs/docs/v6.0/ReportAuthorGuide/Report-Parameters) and re-renders a report with these values. The `Apply Parameters` action configuration includes one or more items with the following properties:

* The parameter for which the value should be set
* Setter type:
    * `Set` – sets a given parameter to the specified value
    * `Reset` – resets a given parameter to the default value
    * `Toggle` – adds or removes the specified value from a `multi-value` parameter.
* The Expression to use for the new parameter's value. It's not applicable for the `Reset` setter type.

Typical usage of this feature is implementing `Runtime Filters`. For example, the[ Sales Dashboard demo](/activereportsjs/demos/Reports/RuntimeFilters/purejs) shows the `Year List` and `Continent List` controls, which a report reader could use to review the sales statistics for the specific year and in one or more specific regions. The `Apply Parameters` action of the `Continent List` is configured to `Toggle` the `Continent Name`, which a report reader clicks, within the multi-value `pContinent` parameter:
![image](https://cdn.mescius.io/document-site-files/images/40c0de91-31f7-4416-bb70-2273def0ec30/image.f0b21c.png)
The action for the `Year List` is configured to `Set` the single-value `pYear` parameter to the Year, which a report reader clicks:
![image](https://cdn.mescius.io/document-site-files/images/40c0de91-31f7-4416-bb70-2273def0ec30/image.e97de0.png)
The [Data Regions](/activereportsjs/docs/v6.0/ReportAuthorGuide/Report-Items/Data-Regions) in this report are configured to filter out values according to the parameters:
![image](https://cdn.mescius.io/document-site-files/images/40c0de91-31f7-4416-bb70-2273def0ec30/image.123125.png)
Thus, when a report reader clicks on a year, or toggles a continent, the report re-renders with the new parameters' values and the data regions are filtered out accordingly.

### Jump to Report

The `Jump to Report` action opens the specified report in the viewer. You could use this feature to create [Drill-Through Reports](/activereportsjs/docs/v6.0/ReportAuthorGuide/QuickStart/get-started-with-analytical-reports/Get-Started-With-DrillThrough-Reports). The configuration includes the following properties.

* `Jump to Report` \- the [expression](/activereportsjs/docs/v6.0/ReportAuthorGuide/Report-Items/Common-Properties#expression) that specifies the report name to open when a reader clicks a report item
* `Parameters` \- the [collection](/activereportsjs/docs/v6.0/ReportAuthorGuide/Report-Items/Common-Properties#collection) of [parameter](/activereportsjs/docs/v6.0/ReportAuthorGuide/Report-Parameters) values to pass into the report above.

### Jump to Bookmark

The `Jump to Bookmark` action brings the report item with the specified `Bookmark` into focus. The [Bookmarks demo](/activereportsjs/demos/Reports/Bookmarks/purejs) uses this feature to display the interactive summary table on the first page. If you click the month name, the viewer switches to the page that shows the detail table for the specified month.

### Jump to URL

The `Jump to URL` action opens the specified URL in the new window or new tab, depending on the browser settings.

### Report Map

All the [report items](/activereportsjs/docs/v6.0/ReportAuthorGuide/Report-Items/Common-Properties) and groups, such as a [Table Group](/activereportsjs/docs/v6.0/ReportAuthorGuide/Report-Items/Data-Regions/Table#table-grouping) in ActiveReportsJS have the `Label` property. Also, a [TextBox](/activereportsjs/docs/v6.0/ReportAuthorGuide/Report-Items/Data-Visualizers/TextBox) report has the `HeadingLevel` that takes integer values starting from `1`.
Together `labels` and values of textboxes with `HeadingLevel` generate the `Report Map`displayed on the [report viewer sidebar](/activereportsjs/docs/v6.0/ReportAuthorGuide/Report-Viewer-Interface). The hierarchy of items in the report map is defined by one of the following conditions.

* TextBoxes with `HeadingLevel` is set `1` are on the root level of hierarchy. TextBoxes with `HeadingLevel` is set to `2` are on the next level and so on. The [Catalog sample](/activereportsjs/demos/Reports/Catalog/purejs) has the `HeadingLevel` = 1 for the textbox located in the [Table Group Header](/activereportsjs/docs/v6.0/ReportAuthorGuide/Report-Items/Data-Regions/Table#group-header). The generated labels are displayed in both of the report map and [Table of Contents](/activereportsjs/docs/v6.0/ReportAuthorGuide/Report-Items/Supplemental-Report-Items/TableOfContents).
* [Parent and child groups](/activereportsjs/docs/v6.0/ReportAuthorGuide/Report-Items/Data-Regions/Table#insert-child-or-parent-groups) that have a non-empty `Label` property organically generate the hierarchy. You can find an example of this approach in the [Nested Lists demo](/activereportsjs/demos/Reports/NestedDataRegions/purejs).

The `Source` property in the `Document Map` section of [Report properties](/activereportsjs/docs/v6.0/ReportAuthorGuide/report-configuration/layout-properties) determines which items are included in the report map:

* `Labels` \- only labels are included\. This is the default value\.
* `Headings` \- only textbox values with `HeadingLevel` \>= 1 are included\.
* `All` \- both labels and textbox values are included\. This should be the last resort option for rare scenarios\.
* `None` \- report map is not generated\.
    Also, the `Numbering Style` property of a report determines the marker of an item in the report map and [Table of Contents](/activereportsjs/docs/v6.0/ReportAuthorGuide/Report-Items/Supplemental-Report-Items/TableOfContents).