Telerik Reporting supplies report item components that are placed in the report designer to build report content:
|TextBox||The TextBox displays text in the report, can be styled to a specific visual appearance, can be configured to grow/shrink, formatted for specific data types (e.g. date time) and can be multi-line.|
|HtmlTextBox||The HtmlTextBox item allows developers to insert HTML-formatted text into a report. You can specify the HTML value at design time (either through a WYSIWYG editor or through an expression editor), or retrieve it from a data source using expression that evaluates to correctly formatted HTML.|
|PictureBox||The PictureBox allows you to place images in the report. It supports only image formats supported by GDI+ (BMP, GIF, JPEG, EXIF, PNG and TIFF).|
|Panel||The Panel report item is used as a container for other items, usually to group/separate multiple report items by some criteria.|
|SubReport||The SubReport report item lets you display one report within another report. This allows you to compose complex reports from disparate report sources.|
|Table||The Table items is used to display fields from a dataset either as detail data or as grouped data in a grid or free-form layout. Telerik Reporting provides three items that can be used as templates and you can add them directly from the Toolbox: Table, Crosstab, and List.|
|CheckBox||This report item displays a check mark (small picture) and a Text field (same as the text in TextBox). It can be styled to a specific visual appearance, can be configured to grow/shrink, the text can be formatted for specific data types (e.g. date time) and can be multi-line. The Check mark and Text can be aligned vertically and horizontally. There are three predefined check mark images, but they can be replaced with others.|
|Chart||The chart lets you display data in a visually compelling way. The chart can bind to live data and display in many popular chart types, e.g. Bar, Pie, Gantt, Line, Area, Bubble, etc.|
|BarCode||The Barcode report item is used for automatic barcode generation directly from a numeric or character data without need of any barcode font being installed in the end user's PC.|
|Shape||The Shape item displays visual primitives in the report including ellipse, vertical/horizontal/slanting lines, and triangles.|
The Report Definition item is created during the first stage of the Report Life Cycle. This is the actual .NET class that represents the report. It is always a subclass Telerik.Reporting.Report and contains information about report items and their properties. Report items are represented by the private fields of the report class.
Let’s illustrate this with an example. While in design-time, if you add a TextBox to the Detail Section of the report that you are designing, a private field of type TextBox will be added to the code-behind file and some basic initialization code will be generated within the InitalizeComponent method of the report class.
The InitializeComponent method initializes (creates) a Report and its child items.It is a special method recognized and parsed by the Report Designer in order to display the report in design-time.
This object will later serve as the definition for creating a concrete instance of the TextBox for each row form the data source. These definition objects are of the types that reside in the Telerik.Reporting namespace, for example Telerik.Reporting.TextBox.
The second stage of the Report Life Cycle involves combining the report definition with the data source. The processing engine performs all grouping, sorting and filtering calculations and iterates over all rows from the data source and creates the appropriate processing items based on the item definitions created earlier and the actual data. Based on the original item definition (Telerik.Reporting.TextBox for example) and the actual data in the current data row a new item is created. This item is known as a processing item (Telerik.Reporting.Processing.TextBox for example) and bears all characteristics of its definition item, but it is bound to the respective data field from the current data row. While the definition TextBox’s Value property may contain something like “=Fields.FirstName”, the processing item’s Value property will be equal to “John”.
The Processing Engine provides the developer with a way to intervene in this process. Just before the processing item is bound to data, the ItemDataBinding event of its definition item is raised. After the processing item has been data bound the ItemDataBound event is raised. By subscribing a listener for those events, the developer can modify the default behavior at run-time. The sender parameter of the event handler methods is in fact the processing report item.