Loads variables from a file.
Purpose
Use the [File.LoadVariables:] macro to set report variables from an external CSV file which is in the same folder as the input document.
Using Asterisks in Filenames
If more than one matching file is found, these rules apply:
- If there are 2 filenames, TextFileC and TextFileZ, the alphanumerically LAST filename is used.
- Where filenames contain dates (e.g recentdate20140201 and recentdate20150423), the filename which contains the most recent date is used, even if the other file was modified more recently.
- If you had TextFileZ20150323 and TextFileC20150701, the alphanumerically last filename is used and takes precedence over filenames containing dates and both of these take precedence over most recently modified files.
Structure of the CSV file
The CSV file, which should be in the same directory as the input document, must contain only two columns:
- DocumentProperty: (with this capitalisation) which is the document property name.
- Value: the value which will be substituted in the report.
Compatibility
The macro can be used in the highlighted input document types only. A greyed-out icon indicates not supported.
Updates
The 'style' parameter now applies Word's own built-in style for the Grid Table 5 Dark, Grid Table 6 Colorful and Grid Table 7 Colorful families (and their Accent variants), rather than a look-alike custom style named 'Grid Table 5', 'Grid Table 6' or 'Grid Table 7'. Using one of these styles for several tables no longer leaves extra styles such as 'Grid Table 51' in the Word document. Applies to every table-producing macro.
History (1)
The 'repeatHeaderPerPage' parameter now works as expected (now honours the false setting).
Behaviour (8)
| Parameter | Type | Presence | Purpose | Options | Default |
| List<ExecutionResult> | Optional | If 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'. |
|
N/A | |
| Boolean | Optional | Should NCalc expression evaluation throw error on Overflow |
|
true | |
| String | Optional | If 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 | |
| String | Optional | If 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 | |
| String | Optional | The 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 | |
| MacroMode | Optional | The 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 | |
| ObfuscationType | Optional | Obfuscation 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 | |
| String | Optional | If 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 (1)2 additional
| Parameter | Type | Presence | Purpose | Options | Default |
| String | Mandatory | The file matching pattern. Please note this is case-sensitive. | N/A | N/A |
Additional (2)
| Parameter | Type | Presence | Purpose | Options | Default |
| String | Optional | The 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 | |
| String | Optional | The 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 |
Examples (1)
Example 1
[File.LoadVariables: fileName=Variables*.csv]