Outputting Expression Results
You can output expression results to your reports using expression tags. An expression tag denotes a placeholder for an expression result within a template. While building a report, the corresponding expression is evaluated, and this placeholder is replaced with the formatted result of the expression.
An expression tag has no name and consists of the following elements:
- An expression enclosed by brackets
- An optional format string enclosed by double quotes and preceded by the “:” character
- An optional
html
switch
<<[expression]:"format" -html>>
If html
switch is not present, the result of the corresponding expression is written to a document as a plain text at runtime. Font attributes are derived from the first character of the corresponding tag in this case.
If html
switch is present, the expression result is considered to be a HTML block and is written as such. This feature is useful, when you need to format text parts of an expression result in different ways. For example, the following tag is replaced with a content like “Bold and italic text” at runtime.
<<["<b>Bold</b> and <i>italic</i> text"] -html>>
To format a numeric or date-time expression result, you can specify a format string as an element of the corresponding expression tag. Such format strings are the same as the ones that you pass to IFormattable.ToString method implementors. That is, for example, given that d is a DateTime
value, you can use the following template to format the value using the “yyyy.MM.dd” pattern.
<<[d]:"yyyy.MM.dd">>
LINQ Reporting Engine provides several additional number formats that can not be specified using format strings because these formats are missing in standard .NET libraries. The following table describes these formats.
Number Format | Description |
---|---|
alphabetic | Formats an integer number as an upper-case letter (A, B, C, …) |
roman | Formats an integer number as an upper-case Roman numeral (I, II, III, …) |
ordinal | Appends an ordinal suffix to an integer number (1st, 2nd, 3rd, …) |
ordinalText | Converts an integer number to its ordinal text representation (First, Second, Third, …) |
cardinal | Converts an integer number to its text representation (One, Two, Three, …) |
hex | Formats an integer number as hexadecimal (8, 9, A, B, C, D, E, F, 10, 11, …) |
arabicDash | Encloses an integer number with dashes (- 1 -, - 2 -, - 3 -, …) |
You can specify one of these additional number formats instead of a format string like in the following example. Given that i is an integer number, you can format the number as an upper-case letter using the following template.
<<[i]:alphabetic>>
LINQ Reporting Engine provides several additional string formats that can not be specified using format strings because these formats are missing in standard .NET libraries. The following table describes these formats.
String Format | Description |
---|---|
lower | Converts a string to lower case (“the string”) |
upper | Converts a string to upper case (“THE STRING”) |
caps | Capitalizes a first letter of every word in a string (“The String”) |
firstCap | Capitalizes the first letter of the first word in a string (“The string”) |
You can specify one of these additional string formats instead of a format string like in the following example. Given that s
is a string, you can capitalize a first letter of every word in the string using the following template.
<<[s]:caps>>
You can also specify one of the additional string formats together with a format string or an additional number format like in the following examples. Given that d
is a DateTime
value, you can convert its textual month representation to upper case using the following template.
<<[d]:"MMMM":upper>>
Given that i
is an integer number, you can convert the number to a lower-case Roman numeral using the following template.
<<[i]:roman:lower>>
Note – In contrast to format strings, additional number and string formats must not be enclosed with double quotes.