XpressDox Help Center

Use Google To Find Help Fast, e.g. xpressdox choosefromlist

Press Getting Started in the XpressDox toolbar for basic template development
Watch the tutorial videos
View command help from list of commands
Press F1 for help on a command in the Command Editor
Email support@xpressdox.com for assistance


Version 11.1.1 (2019-06-20)

2019-06-20 Version 11.1.1

  1. The feature to enable configuring a SQL SELECT statement as a data source has been introduced. Read about it here.
  2. Some bug fixes:

  3. The «Dollars» function will now insert the word ” and ” between the dollar value and cents value for US English.
  4. A tab character in front of an If or ForEach was repeating. This has been fixed.
  5. «SetEmptyMarker» for a specific data element was reverting to the default instead of applying to that data element.

Version 11.1.0 (2019-06-07)

2019-06-07 Version 11.1.0

  1. Full XPATH syntax in ForEach is now supported. For example: «ForEach(Child | Parent | Party)» which will iterate over Child, Parent and Party repeaters.
  2. Attempt to fix the corruption of the settings file, which is sometimes affected by Windows updates.
  3. A Tab in front of If/ForEach/RepeatWhile commands was being replicated. This has been fixed.
  4. When a default Empty Marker was set, the attempts to override this with specific empty markers for data elements was not working. It now works.
  5. A «RunWordMacro()» command was causing a Preview to fail. This should now work correctly.

Web Release Notes

  1. Added Server Administrator role. User with this role has access to new UI where he can manage server licenses.
  2. Server Administrator can export accounts as a SQL scripts.
  3. Account Administrator can see other users home directories in Cloud mode.
  4. Chained rules are being evaluated one by one providing relevant error message.
  5. Added support for rules to limit number of items in repeater.

Shortcuts when using variables

With effect from Version 7, there are a number of shortcuts for referring to some of the variable-handling functions. They were introduced to take away the amount of typing necessary when many variables are being used.

A full list of the shortcuts is as follows:

::A - AppendVr
::G - GetV
::I - IncrementV
::N - GetVn
::P - RemoveParagraph
::S - SetV
::R - SetVr

For example,


can now be written


which saves typing a set of quotes and a set of parentheses.



can be written as


The shortcuts are translated early on in the parsing process into their formal format, so that sometimes if there are other syntax errors relating to the shortcut usage, the error message will refer, for example, to “GetV” rather than “::G”.

Version 11.0.0 (2019-04-03)

2019-04-03 Version 11.0.0

  1. The major feature released with this version is a fully functioned conversion of HotDocs® templates to XpressDox format. In order to support this conversion, a number of functions have been introduced into XpressDox, in particular Execute, RepeatForEach, While, and some others. Please see the article
    What to expect on the XpressDox web site for more information.
  2. There was a bug in the DefineSetAllGroup where if the “List” data element was excluded from the interview, then the entire group was hidden.
  3. A problem with using SetMultipleDocumentFilter inside templates merged with MergeTemplate has been fixed.
  4. The CompareStrings function will compare two strings and return a value of -1, 0 or +1 depending on whether the first is less than, equal to or greater than the second.
  5. Manipulating of XpressDox variables can now be done in the interview (typically inside an OnEnterSet or OnExitSet). The last value assigned to a variable in the interview will be available to the template during the assembly phase.
  6. The What’s New document is no longer opened automatically when XpressDox is started after an update. If you are reading this as a Word document, then probably you already know that there is a new button in the XpressDox Ribbon which will open this document.
  7. An attempt has been made to circumvent the exceptions being raised when an assembled document has been saved in a location on the local file system which is being synchronised by Microsoft applications to a cloud location. When this happens, the document which is opened in Word sometimes has the URL of the sync’ed document instead of the local file system folder path.

Web Release Notes

  1. Buttons are now available in the web interview.
  2. Search by filename available in the web.
  3. Email management tab available in the web for Administrator users.
  4. Database versioning for web version. Scripts located in the folder o2Smart.DocumentAssembly.Web\DatabaseScripts\.
  5. Multiple previews are now available in the web.
  6. Functions CompareStrings, Execute, ToNumber, GetV, SetV, AppendVr implemented in the web

Version 10.4.0 (2018-12-12)

2018-12-12 Version 10.4.0

  1. IncludePicture and InsertPicture can take a URL as the source of the picture.
  2. Swiss French format for NumberPhrase is supported. Use the language option fr-ch.
  3. When saving data only in the Desktop interview, the interview will no longer exit but allow more data capture to be done.
  4. The SetWebInterviewMinimumHeight will help the author to control the position of the buttons at the bottom of the interview.
  5. The ChooseFromDataset command extends the functionality of the ChooseFromData to accept any XPATH expression to select the data.
  6. In Captions, Headings and Footings, the insertion of information as the interview progresses has been enhanced. For example, the caption “Please enter the date of birth of <PartyName||[Party]> will display the caption as “Please enter the date of birth of [Party]” until such time as the data element PartyName has been captured, As soon PartyName is captured, for example as “John Smith”, the then caption will display as “Please enter the date of birth of John Smith”.
  7. The «Paragraph()» function will split the containing paragraph into two at the point where it appears in the template. «Paragraph(NumberStyle)» will apply the Word style NumberStyle to the new second paragraph.
  8. The IsFalse function has been introduced. It is the equivalent of not(IsTrue()), but easier to type and read.
  9. It is now possible to supply the option 'Unencrypt' to the AppendPDF function, which causes the resulting PDF to be editable.

Web Release Notes

  1. Checkboxes in the Grid are now available in the web. They no longer show as textboxes.
  2. Using the command «SetWebInterviewMinimumHeight(350)» you can now set the minimum height of Back/Save/Assemble buttons on the bottom.
  3. CurrencyToCents – Takes a value in a currency and returns the cents value.
  4. Eq – Compares the comparand1 with comparandWithWildCard using the asterisk as a wild card. If the comparandWithWildCard has no wild card, then the two are stripped down to alphabetics only and compared as case-insensitive.
  5. ExtractInitials – Extract the initial characters of the words which are separated by spaces, and join them with the delimiter string.
  6. GetItemOfElement – Extracts the requested item number, starting at 1, from a comma-delimited list of items. Functionally equivalent to GetListItem.
  7. GetListItem – Extracts the requested item number, starting at 1, from a list of items. Functionally equivalent to GetItemOfElement.
  8. InsertInto – Inserts the string textToInsert into the designation position in the source string. If position is too high or low it resolves to the end or beginning of the string.
  9. Lookup – Source is of a format like “en-us:behavior;en-gb:behaviour;af:gedrag”, and key would contain the part before the : which, if found, causes the part after the : to be returned.
  10. Plural – Returns the singular or plural depending on the value of number, which can be either a number or a boolean expression indicating that the singular version must be used.
  11. PrefixWith – If the source string is not empty, prefix it with the prefix, otherwise leave it empty.
  12. StringLength – Returns the length of the string.
  13. SubstringAfterLast – Gets the substring after the last delimiter. If no delimiter then the entire string is returned.
  14. SubstringBeforeLast – Gets the substring before the last delimiter. If no delimiter then the entire string is returned.
  15. SuffixWith – If the source string is not empty, suffix it with the suffix, otherwise leave it empty.