# Checkbox Report Item Overview

The CheckBox report item is used to display both text and a check mark on a report.

The following image shows a CheckBox report item with its `CheckAlign` property set to `TopCenter` and its text aligned to `Top` and `left`.

![A CheckBox report item set to top center and text to top left](https://www.telerik.com/products/reporting/documentation/assets/7e9b02ab0d057520827b433dadef3eaf/checkboxitem1.jpg)

## Expanding and Shrinking

By default, the size of a CheckBox item is set.

To allow a CheckBox to expand vertically based on its contents, set the [CanGrow](https://www.telerik.com/products/reporting/documentation/api/telerik.reporting.textitembase#Telerik_Reporting_TextItemBase_CanGrow) property to its default `True` value.

To allow a CheckBox to shrink based on its contents, set the [CanShrink](https://www.telerik.com/products/reporting/documentation/api/telerik.reporting.textitembase#Telerik_Reporting_TextItemBase_CanShrink) property to `True`. By default, `CanShrink` is `False`. The CheckBox will always enlarge to accommodate the first line of text, even when `CanGrow` is `False`.

## Embedded Expressions

The textual part of the Checkbox report item supports [embedded expressions](https://www.telerik.com/products/reporting/documentation/designing-reports/connecting-to-data/expressions/using-expressions/overview) for mail merge functionality.

Embedded expressions enable you to get and insert data-driven information directly into the `CheckBox.Text` property to produce customized reports and mail merging.

In the following image, each CheckBox is initialized with the [CheckAlign](https://www.telerik.com/products/reporting/documentation/api/telerik.reporting.checkbox#Telerik_Reporting_CheckBox_CheckAlign) property varying from `TopLeft` to `BottomRight`.

![The effect of CheckAlign CheckBox property](https://www.telerik.com/products/reporting/documentation/assets/1faa56c96783d744d96cafad808d70ab/checkboxitem2.jpg)

The check mark image depends on the value set in the `Value` property. By default, `Value` accepts `=true` or `=false`. At design time, you can initialize the `Value` property with an expression, which later at runtime is evaluated to one of the [`System.Windows.Forms.CheckState`](https://learn.microsoft.com/en-us/dotnet/api/system.windows.forms.checkstate?view=windowsdesktop-6.0) values. For example, `=IsNull(Fields.Quantity, 0) > 100` will return `true` or `false` and will check and uncheck the check mark, respectively.

If your data fields return two or three distinctive values, which are not `true` or `false`, you can change the `TrueValue`, `FalseValue`, or `IndeterminateValue` properties to match your field values directly.

The `TrueValue` and `FalseValue` should always be set. If not, the `Checked` and `Unchecked` states become undetermined, and you cannot show the corresponding images and check states. Generally, the `TrueValue` and `FalseValue` should be different. In the unexpected scenario where the two evaluate to the same value, the `FalseValue` will be prioritized, and the `Checked` state would become impossible to achieve.

> tip If the checkbox `Value` may take more than three values, all values that are different from the `TrueValue` and `FalseValue` will be evaluated to the `IndeterminateValue`.

## Example

The following example assumes that you have a `Status` field that has the `Approved`, `DisApproved`, and `NotSet` values.

![Status column from the database](https://www.telerik.com/products/reporting/documentation/assets/5faa2add7ed3a8eadb21093525595cd7/checkboxeval1.png)

In this case, it is more convenient to use those values directly instead of trying to evaluate them as `true` or `false`. To use the values directly, utilize the `TrueValue`, `FalseValue`, and `IndeterminateValue` properties. The following image shows the final result:

![Using Status column string values directly in the CheckBox settings](https://www.telerik.com/products/reporting/documentation/assets/12a0084b6c2b6207fd0cd82f5a17b4f7/checkboxeval2.png)

## Next Steps

* [Using Embedded Expressions](https://www.telerik.com/products/reporting/documentation/designing-reports/connecting-to-data/expressions/using-expressions/overview)
* [(API) Telerik.Reporting.CheckBox](https://www.telerik.com/products/reporting/documentation/api/telerik.reporting.checkbox)
* [(API) CanGrow](https://www.telerik.com/products/reporting/documentation/api/telerik.reporting.textitembase#Telerik_Reporting_TextItemBase_CanGrow)
* [(API) CanShrink](https://www.telerik.com/products/reporting/documentation/api/telerik.reporting.textitembase#Telerik_Reporting_TextItemBase_CanShrink)
* [(API) CheckAlign](https://www.telerik.com/products/reporting/documentation/api/telerik.reporting.checkbox#Telerik_Reporting_CheckBox_CheckAlign)
* [Demo Page for Telerik Reporting](https://demos.telerik.com/reporting)
* [Telerik Reporting Knowledge Base](https://www.telerik.com/products/reporting/documentation/knowledge-base)

## See Also

* [Telerik Reporting Homepage](https://www.telerik.com/products/reporting)
* [Reporting Forums](https://www.telerik.com/forums/reporting)
* [Reporting Blog](https://www.telerik.com/blogs/tag/reporting)
* [Reporting Videos](https://www.telerik.com/videos/reporting)
* [Reporting Roadmap](https://www.telerik.com/support/whats-new/reporting/roadmap)
* [Reporting Pricing](https://www.telerik.com/purchase/individual/reporting)
* [Reporting Training](https://learn.telerik.com/learn/course/external/view/elearning/19/reporting-report-server-training)
