[DocumentSection:]UPDATED

Specifies the start of a document section.


Purpose

Use the [DocumentSection:] / [DocumentEndSection:] macro to define a section of the input document, which can be moved to a predefined bookmark in your Word document.

Bookmarks can be manually created in Word, or you can use the [DocumentBookmark:] macro.

Note that the [DocumentSection:] / [DocumentEndSection:] macro requires that bookmarks do not span a selection of text, in other words they should be inserted at a single character position in the input document.

Sections can be nested. Each [DocumentSection:] pairs with its own [DocumentEndSection:], and an inner section is finished first, so the outer section includes whatever the inner one left in place.

The document section is inserted at the bookmark specified (or saved in a variable) when fully processed, i.e. graphs, and tables etc will be fully rendered and processed first.

The storeAs parameter can be used to reference the section by name, and inserted using the [DocumentInsertSection:] macro.

.


Compatibility

The macro can be used in all input document types and in Report Studio.


Updates

v4.621 days ago · September 2026

A [DocumentSection:] with no matching [DocumentEndSection:] now reports an error, instead of being silently accepted and leaving placeholder text such as [Bookmark: value=...] in the output.

History (3)
v4.622 days ago · September 2026

Sections can now be nested: each [DocumentSection:] pairs with its own [DocumentEndSection:], instead of every section claiming the first one and failing with a 'hidden' macro parameter error.

v4.623 days ago · September 2026

When this macro removes part of a Word document, blank lines straight after its own line, and straight after a table in the removed part, are now removed with that part instead of being left behind.

v4.6One month ago · August 2026

A moveToBookmark that names a bookmark which does not exist now reports 'Bookmark could not be found in the input document' instead of a confusing internal error.


Parameters (14)
Behaviour (9)
Parameter TypePresencePurpose Options Default
desiredExecutionResult
List<ExecutionResult>OptionalIf specified, asserts the expected execution result of the macro. Accepts a single value or a semicolon-separated list of acceptable values (e.g. 'Success;Warning'). The macro executes normally; if the actual result matches any of the desired values, the result is converted to Success. If the actual result does not match, the result is converted to MacroError with a descriptive message. This is primarily used for testing and diagnostic purposes. Valid values are: 'Unknown', 'Success', 'MacroError', 'WorkerStopped', 'Running', 'Warning', 'NeverRun', 'Cancelled', 'Pending', 'Paused', 'SystemError', 'Deferred' and 'Stopped'.
  • Cancelled
  • Deferred
  • MacroError
  • NeverRun
  • Paused
  • Pending
  • Running
  • Stopped
  • Success
  • SystemError
  • Warning
  • WorkerStopped
N/A
errorOnOverflow
BooleanOptionalShould NCalc expression evaluation throw error on Overflow
  • true
  • false
true
expectedType
StringOptionalIf specified, asserts the expected output type of the macro result. The macro executes normally; if the actual type does not match, a macro error is generated. Requires 'storeAs', 'storeAsHidden', or 'storeFormattedValueAs' to be set for typed validation. Valid types include CLR names (e.g. Int32, Int64, Single, Double, Boolean, String, JArray, JObject) and C# keyword aliases (e.g. int, long, float, double, bool, string, uint, ulong, short, ushort, byte, sbyte, decimal, char, object). The special value 'Number' matches any numeric type. N/A N/A
expectedValue
StringOptionalIf specified, asserts the expected output value of the macro result. The macro executes normally; if the actual value does not match, a macro error is generated. When 'storeAs' or 'storeAsHidden' is set, the stored variable value is compared. Otherwise, the document output text is compared. N/A N/A
hidden
BooleanOptionalWhether to hide the section.
  • true
  • false
false
if
StringOptionalThe condition that must be true in order for the macro to be executed/evaluated. Must either evaluate to true or false, for example: "3+5=8" or "contains('abcd', 'z')". N/A true
mode
MacroModeOptionalThe mode in which variables are stored. In legacy mode (default for Schedules), the variable created is a string and formatted. In normal mode (default for Report Studio), the output variable is stored as a strongly-typed object, e.g. an Int32 or a JArray etc., rather than a formatted string.
  • Legacy
  • Normal
Legacy
obfuscation
ObfuscationTypeOptionalObfuscation type. Use obfuscation to write reports where sensitive data is hidden. When used, ReportMagic guarantees that the same input string will map to the same output string for the whole of the report (but the next time the report runs, it will most likely map to a different value). If you use obfuscation, the property in your macro will not show up and instead, you will see a fake item of the obfuscation type chosen.
  • None
  • UkTown
  • DeviceName
  • Company
  • IpAddress
  • PrivateIpAddress
None
warning
StringOptionalIf specified, adds a warning message for this macro. This is processed as an NCalc, and the warning message will ALWAYS be present and will be the value of the evaluated NCalc expression. N/A N/A
Output (3)
Parameter TypePresencePurpose Options Default
failureText
StringOptionalThe text to display should the macro fail to execute. Note that a poorly-specified macro (e.g. omitting mandatory parameters) will still result in an error message. N/A N/A
failureVariable
StringOptionalThe name of a variable to create should the macro fail to execute. The variable will be a text variable, and will contain either the failure text (only if the failureText parameter is set), otherwise it will contain the exception / failure message. N/A N/A
storeAs
StringOptionalWhat to store the section as. N/A N/A
General (2)
Parameter TypePresencePurpose Options Default
comment
StringOptionalAdd a comment to make your document template more readable. The comment is discarded in the output document. N/A N/A
moveToBookmark
StringOptionalThe document's bookmark name that the section will be inserted at. This is not supported in PPTX files. The parameter can be specified in [DocumentSection:] and/or [DocumentEndSection:] macros, with the latter taking priority. N/A N/A

Examples (1)

Example 1

In this example, the fully rendered graph within the document section macros will be inserted at the end of the first line and hidden from its original position.

Bookmark 1 is on the next line. [DocumentBookmark: name=Bookmark1] The section starting and ending with underscore lines should be inserted BEFORE this text. [DocumentSection: hidden=true, moveToBookmark=Bookmark1] _______ This text and the following graph will be inserted (when fully processed) at Bookmark 1: [LogicMonitor.Graph: device=test.panoramicdata.com, graphName=CPU Usage, dataSourceName=WinCPU] _______ [DocumentEndSection:] More macros.

Reconnection

Reconnection

Reconnection

timed out

timed out

Attempt of

Reload
An unhandled error has occurred. Reload 🗙