Reporting

The HtmlTextBox report 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 any simple or complex expression that evaluates to correctly formatted HTML.

You can define colors, fonts, and other behavior on any subset of text within a single HtmlTextBox to create a mail merge or template for text in your report. You can also use multiple paragraphs inside a single text box. You can also set an alignment value for any individual string of text.

Note

Known Limitations:

  • The HtmlTextBox works with the text formatting options only.

  • The HtmlTextbox is rendered as plain text with no formatting in Excel.

  • RTL (Right to Left) is not supported.

  • Text justification is not supported.

  • HyperLink (<A> tag) is interactive (acts as actual hyperlink) under HTML rendering extension only.

  • Any limitations of the HtmlTextBox in specific export formats are reflected in the respective topic in the Design considerations for Report Rendering help section.

Supported HTML tags

Various formatting options are available to control the text presentation:

  • Font, size (relative size against the font size of the item, default is 3 (1-7)), color (<FONT>)

  • Bold, Italic, Underline (<STRONG>,<B>, <EM>, <I>, <U>)

  • HyperLink (<A href target>)

  • Lists (<OL>, <UL>, <LI>)

  • Organize the text in paragraphs (<DIV>, <SPAN>,<P>, <BR>, <CENTER>)

Supported css attributes

  • background-color

  • border-color, border-width, border-style

  • text-align (center, left, right), text-decoration (none, underline, line-through)

  • font-family, font-size, font-weight

  • padding, padding-bottom, padding-top, padding-right, padding-left

  • color

Note

When you import text that contains HTML markup, the data is always parsed by the HtmlTextBox first. Because only a subset of HTML tags is supported, the HTML that is shown in the rendered report may differ from your original HTML.

Also according to the HTML specification (and the general XML specification as well) the "&", "<" and ">" characters are considered special (markup delimiters), so they need to be encoded in order to be treated as regular text. For example the "&" character can be escaped with the "&" entity. More information on the subject you can find in this w3.org article.

Any other HTML markup tags will be ignored during report processing. If the HTML represented by the expression in the HtmlTextBox is not well formed, the HtmlTextBox would throw an exception. All HTML tags are case-insensitive.

Growing and Shrinking

By default, HtmlTextBoxes are a set size. If you want to allow an HtmlTextBox to expand vertically based on its contents, set the CanGrow property to True (default value). If you want to allow a TextBox to shrink based on its contents set the CanShrink property to True (default value is False). The HtmlTextBox would always grow to accommodate the first line of text even when CanGrow is False.

Embedded expressions

The item supports embedded expressions for mail merge functionality. Embedded expressions give you the freedom to get and insert data-driven information directly into the text box report item to produce customized reports and mail merging.

After the expression evaluation/replacement, the value of the HtmlTextBox must be valid XHTML.

Editing

The HtmlTextBox supports data-driven in-line fields, which are editable either in-place or through design time editor, available directly in Visual Studio.  

The in-place editor for the HTML text box report item (as with the TextBox item) allows you to quickly enter text directly into the designer where the report item is rather than having to go look for a property in the property grid. To activate the in-place editor, double-click the HtmlTextBox or select it and press F2. Once the in-place editor is activated:

  • Enter accepts all changes.

  • Esc discards all changes.

  • Moving focus away from the HtmlTextBox also accepts all changes.

The screenshot below shows an HtmlTextBox with the in-place editor active.

The design time editor supports two modes:

  1. Interactive (word-like editor) -  you can select portion of the text and make it bold, change the font, etc. using appropriate controls like comboboxes and buttons (WYSIWYG editor). Internally the designer generates valid HTML source and stores it in the Value property of the item. Adding embedded expressions is possible, however the whole html value cannot be an expression. You can switch to source mode at any time if needed.

    Note

    Pressing the Enter key inserts a new paragraph or new list item depending on the current context. Note that it does NOT insert <br /> (new line). To insert new line, use the button on the toolbar)

  2. Expression (source editor) - the user enters raw HTML tags and text. The value can be expression or text containing embedded expressions. The user can switch to Interactive mode unless the value is an expression.

Note

MultiLine and TextWrap concepts are always true for HtmlTextBox.