# Create a Custom Report Item

Custom report items (CRIs) are supported in all Viewers/Exports. The topic explains what tasks you can implement with CRI and how.

## Content



Custom report items (CRIs) are supported in all Viewers and all types of exports. However, they are not currently supported in the WebDesigner component.


> type=note
> **Note**: Currently, you need to use some internal API to create a CRI, which we are planning to change in the future versions. In case of any problems that may occur during upgrade, contact our Support Team.

With a CRI, you can implement the following tasks:

*   Implement simple custom rendering, which may be useful for implementing a simple rendering like a custom SVG image, a custom barcode, etc.
*   Implement a custom layout, which may be useful in case of a custom content layout (if size is not defined, etc.).
*   Implement custom data processing, which is the most complicated scenario where a CRI requests data from a data set. We recommend that you first check these samples before you start the implementation - [CustomChart](https://github.com/activereports/Samples19/tree/main/Advanced/PageAndRDLX/CustomChart) and [Calendar](https://github.com/activereports/Samples19/tree/main/Advanced/PageAndRDLX/Calendar).

To implement a simple CRI, see the [RadarChart.cs](https://github.com/activereports/Samples19/blob/main/Advanced/PageAndRDLX/CustomChart/C%23/RadarChart/RadarChart.cs) file in the [CustomChart](https://github.com/activereports/Samples19/tree/main/Advanced/PageAndRDLX/CustomChart) sample to have an idea of what your CRI implementation should look like. If you require access to data, then you should use the **IDataRegion** interface.

To implement the Designer, see the [RadarDesigner.cs](https://github.com/activereports/Samples19/blob/main/Advanced/PageAndRDLX/CustomChart/C%23/RadarDesigner/RadarDesigner.cs) file in the [CustomChart](https://github.com/activereports/Samples19/tree/main/Advanced/PageAndRDLX/CustomChart) sample. Remember that the DataSet is required only in case of data binding (the **IDataRegion** interface). Otherwise, you can use just a simple property that is passed and obtained from a CRI as **ReportItem.CustomProperties**.

You should also remember to add a configuration file - you can find an example in the [CustomChart](https://github.com/activereports/Samples19/tree/main/Advanced/PageAndRDLX/CustomChart) sample.