Skip to content

Report Designer Highlights

The Document Creator Report Designer includes the FastReport.Net User's Manual, which can be opened from the designer via Help > Help Contents. This manual is also available online.

In this section some of the most useful Document Creator Designer features will be highlighted. These are some of the features that are added by the Apportunix team to the designer to support even faster and more efficient layout development.

VisibleExpression Property

You can use the VisibleExpression property to specify a condition/expression of when a certain part/control of the layout (e.g., TextObject, Databand, PictureObject, etc.) should be visible. In these expression you can also include columns from the report dataset.

To set up a VisibleExpression, please follow these steps:

  1. First, export the layout to a Document Creator Design File (.dcrd) file and open it in the Document Creator designer. See Export Design.
  2. In the designer, select the control (e.g., TextObject, Databand, PictureObject, ...) that you would like to show or hide conditionally.
  3. In the Properties tab/grid (on the bottom-right of the designer), scroll down to the VisibleExpression property and use the ... button (drill-down) to open a text editor for the property.

    VisibleExpression-Edit-DrillDown

  4. In the Edit expression window that opens you can include data columns in your expression by selecting them from the pane on the right and dragging them into the expression editor pane on the left. Please see the animation below for an example (where we set up a conditional expression which says "The part/control should be visible if the "Order No." is not empty.").

    VisibleExpression-Edit-Text-Editor-1

    VisibleExpression-Edit-Text-Editor-2

    After completing your expression, close the editor by clicking on the OK button.

    Tip

    Please check our F.A.Q.-item: "What is the syntax we can use for expressions (e.g., for the VisibleExpression property)?" for examples of the syntax of conditional expressions.

  5. You can now test out/preview your changes by using the Preview (Ctrl+P) button in the top-left of the Document Creator designer. After you are satisfied you can save the file and close the designer, and then import the new version of your layout (stored in the .dcrd design file) in Business Central (see Import Design).

Automatically Generating Totals

For any TextObject on a Data band that contains a numeric field from your dataset, you can automatically generate a total by right-clicking the TextObject in question, and subsequently selecting the Create Total... option. This will create a new TextObject under your cursor which will contain a newly created total.

Designer-Create-Total Designer-Edit-Total

Info

Placing the new TextObject on a Footer-band will automatically set the Reset on band property to the last child band of the Footer band, to reset the running value back to 0 each time the band is reached.

With the new TextObject under your cursor, you can place the TextObject containing the total on a Footer Band (or any other band of your choosing). You can also edit the total by right-clicking the newly created TextObject, and selecting the Edit Total... option, which will open the total editor:

Designer-Edit-Total-Dialog

For more information on the parameters of a total, see the documentation on Totals.

Transheader and Transfooter Bands

To display transport-totals at the top and/or bottom of a page, you can create Transheader and TransFooter bands. To create a new Transheader-footer pair, right-click on a Data band, and select Add / move Band > Trans Header in the appearing context-menu.

Designer-TransHeader-Add

On these bands you can put any earlier-created totals in TextObject controls, whose running value will be shown on the bottom and top of the pages where needed. In the image below an example usage of the Transheader and Transfooter band is shown for a Sales Invoice report layout to show the running value of the total line amount.

Designer-TransHeader-Example

Printing Bands on the Page Bottom

To have one or more bands of your report layout shown always at the bottom of the (last) page, you can use the PrintOnBottom property that is available on bands. For example, if you always want to show the VAT Specification at the bottom of an invoice, you can right-click the first band of the collection of bands to be displayed at the bottom, and select the Print On Bottom option in the appearing context-menu.

Designer-PrintOnBottom

Note

Enabling the PrintOnBottom property for a band will also enable the property for any bands that are displayed below. Similarly, disabling the property will disable it for any bands that are displayed above.

Caution

The PrintOnBottom property might not work when used in combination with the RepeatOnEveryPage property on a band. That is, if the band contents do not fit in the remaining free space of the page.

Automatic Text Line Height

In a report layout a TextObject control may contain multiple lines of text. To change the height of a single line of text in a TextObject, you can use the LineHeight property. The default value of this property is 0, which means that the line height will be the same as that of the font used. To make the line height equal to the height of the TextObject you can set the LineHeightAuto property to True.

Designer-LineHeightAuto

Info

When you add a new TextObject control to your layout, its LineHeightAuto property is automatically set to true.

Switching between Basic and All Properties

In the property grid, you have the option to switch between showing Basic Properties and All Properties. Selecting the Basic Properties will show you the most common properties and the properties whose values are different from the default value for the selected object.

Designer-Basic-All-Properties

You can change the default value of the setting by navigating to View > Options... > User Interface, which will open the View Options menu. In this menu you can enable or disable the "Show all properties in the property-grid by default" setting to change the default filtering of the property grid.

Designer-UI-ShowAllProperties

The Basic Properties consist of the following properties:

Basic Properties
Barcode Filter Left RowCount Style
BottomMargin Font LeftMargin RowSpan Text
CanGrow Format LineHeightAuto SegmentCount TextAlign
CanShrink GroupBy MaxHeight SegmentHeight Top
CheckedSymbol Height MaxWidth SegmentWidth TopMargin
ChildDataSource HideIfNoData Name Shape TotalType
ColSpan HideIfUnchecked NoDataText ShowErrorImage VertAlign
ColumnCount HideValue PaperHeight ShowGrid Visible
Condition HideZeros PaperWidth ShowMarkers VisibleExpression
DataColumn HorzAlign ParentDataSource ShowText Width
DataSource IncludeInvisibleRows PrintOnBottom SizeMode WordWrap
DataType KeepChild RepeatOnEveryPage SortBy WordWrapType
Duplicates KeepTogether ResetAfterPrint SortOrder Wysiwyg
Evaluator KeepWithData ResetPageNumber Spacing
Expression Landscape RightMargin StartNewPage

View (and Edit) Data

It is possible to view the data that will be used in previews generated from the designer. You can view the data by selecting one of the Data Sources and then invoking the View Data... option.

View-Edit-Data

In the window that opens you can view the data of each record in the Data Source and even edit it by leaving a cell after changing its contents.

Info

Any changes you make to the data in the View Data window only changes the data used in the currently opened designer. Changes you have made to the data from this window in the designer will neither be saved to the Design file nor to Dynamics 365 Business Central.

Advanced HTML Rendering

The support for HTML in the TextObject has considerably been extended in the Document Creator Report Designer. You can enable Advanced HTML rendering by setting the TextRenderType property of a TextObject to HtmlAdvanced.

Designer-HtmlAdvanced

The extended functionalities comprise a larger set of HTML tags being supported, such as paragraphs, divisions, headers and lists, and support for the most-used CSS style attributes, which can be embedded in the supported HTML tags.

Supported HTML Tags

The table below presents a complete overview of the tags supported by the advanced renderer:

Tag Description Supported Attributes
<p>...</p> Paragraph with a default bottom-margin of 1 em and top-margin of 0. align – left, right, center, justify
style – (see below)
<div>...</div> Division/Section without any default margins or paddings. align – left, right, center, justify
style – (see below)
<h1>...</h1>
...
<h6>...</h6>
Headings with default font-size of 2 em, 1.5 em, 1.17 em, 1 em, 0.83 em and 0.67 em respectively. align – left, right, center, justify
style – (see below)
<ol>...</ol> Ordered lists, default bottom margin of 1 em and left-padding of 40 px. type – 1, A, a
start – [integer]
style – (see below)
<ul>...</ul> Unordered lists, default bottom margin of 1 em and left-padding of 40 px. type – disc, circle, square
style – (see below)
<li>...</li> List item. style – (see below)
<span>...</span> Span (group of in-line elements). style – (see below)
<font>...</font> Group of in-line elements with custom font face, color and size. color – [name]/#xxxxxx
face – [font_family]
size – [dimension]
style – (see below)
<br>, <br /> Line break. -
<img> Image. src="...;base64,..."
alt – [text]
<body>...</body> Container with default margin of 8 px. style – (see below)
<b>...</b>
<strong>...</strong>
Bold text. style – (see below)
<i>...</i>
<em>...</em>
Cursive text. style – (see below)
<u>...</u> Underlined text. style – (see below)
<s>...</s>
<strike>...</strike>
Strikeout text. style – (see below)
<sub>...</sub> Subscript. style – (see below)
<sup>...</sup> Superscript. style – (see below)

Other HTML tags will be ignored; the contents will be shown while the surrounding tags are hidden. The supported tags will be rendered with default margin and padding as defined by the standards, unless stated otherwise in the table above. If an attribute is specified more than once in a tag, the last specification will be applied by the renderer.

Supported CSS Style Attributes

The following CSS style attributes are supported by the renderer:

Attribute Description Supported for Tags
text-align Text-alignment of the underlying paragraph. If both the align and text-align CSS attribute are defined, the CSS attribute has higher precedence. p, div, h#, li
text-indent Indent of the first line of a paragraph. p, div, h#, li
font-family Font face of the underlying text. "all"
font-size Font size of the underlying text. "all"
color Font color of the underlying text, allows one to either specify a color name or hexadecimal code. "all"
padding
padding-bottom
padding-top
padding-right
padding-left
Padding of the container or paragraph. p, div, h#, li, ul, ol, body
margin
margin-bottom
margin-top
margin-right
margin-left
Margin of the container or paragraph, treated the same as padding. p, div, h#, li, ul, ol, body
font-weight Font-weight of the underlying text, restricted to the following options: bold, normal, initial "all"

Example

The following example shows some of the capabilities of the extended HTML renderer.

HTML: Sample snippet that is supported by the advanced renderer
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
<p style="padding-left: 1cm">
  Document Creator is a fully functional .NET report designer for Microsoft Dynamics NAV, compatible with <strong>NAV2015</strong> and up.
  It is rich in functionality, e.g., Drag & Drop fields in reports, choose your own code per report (VB.NET | C#) and barcode usage, including various <i>QR codes</i>.
</p>
<p style="padding-left: 1.5 cm">Your benefits:</p>
<ul style="padding-left: 2 cm">
  <li>Saves a <span style="font-weight: bold">hugh amount</span> of time</li>
  <li>Easy to use</li>
  <li>Rich in functionality<ul type="square">
    <li>An easy-to-use report designer with endless possibilities</li>
    <li>Conversion of <i>Classic</i> and <i>RDLC</i> report layouts</li>
    <li>Fully integrated in Dynamics NAV</li>
  </ul></li>
  <li style="padding-top: 6pt"><em>Fantastic reports as outcome!</em></li>
</ul>

The above will produce the following output in a TextObject with Advanced HTML rendering enabled:

Designer-HtmlExample


Last update: March 22, 2023