The NEW XpressDox Version 14 is now available!

Edit Content
Click on the Edit Content button to edit/add the content.

User Reference

The InsertInto Function

This function permits something like: «InsertInto(Name,4,’.’)» So that if Name is “F.R Basset” then the value “F.R. Basset” is inserted into the document by the function.

Read More »

TabOrientation

In both the Desktop and Web versions of XpressDox, tabs (see Using Tabs in the interview) are always orientated horizontally, but this can be changed:   Web: The TabOrientation command offers a way of changing that to orientate the tabs vertically in the Web. Desktop (Word): The TabOrientation command only

Read More »

The RepeaterCaption Command

With this command the template author can provide a caption on the interview for a repeater. Command structure: «RepeaterCaption(Child,Details of the Children)»   Desktop vs browser: In the desktop version of XpressDox, this applies only to repeaters which are captured in a grid, but in the browser (cloud version), it will always apply no

Read More »

Interact with External Programs

With version 5 of XpressDox it is possible to instantiate COM (Common Object Model) and .NET objects and address their methods and properties.  There are a huge number of applications which are exposed via the COM mechanism, including all the Microsoft Office modules. The functions which implement these features are

Read More »

The MakeNoise Function

Sometimes, particularly when debugging a complicated template, you might want to be notified in some way that the execution has reached a particular place in the template. «MakeNoise()» will do this, by making a sound when it is executed. In fact, the function takes one parameter, which is the name of the Windows

Read More »

The CaptureInGrid Command

CaptureInGrid offers a different way to present repeating data to the user and that is in a grid format –  a bit like a spreadsheet.   Command structure: «CaptureInGrid(Child,Yes)»   Examples of usage: «ForEach(Child)» First Names: «FirstNames» Date of birth: «FormatDate(DateOfBirth,’MMMM d, yyyy’)» Attends School: «AttendsSchool»«ChooseFromList(AttendsSchool,Yes,No)» «End()» The original mechanism for capturing repeated

Read More »

Run Text Files as Templates

Because XpressDox has such a rich set of text manipulation features, it is not only ideal for traditional document assembly, but also for tasks such as generating web pages, XML and even program code. Prior to version 5 of XpressDox,  it has been possible to structure a Word document as if

Read More »

The DropDownPanel Command

Please note that this has not been implemented on the web as yet. There are situations where many data elements need to be captured in a specific context on the interview, but the interview looks clumsy when they are all displayed together. The «DropDownPanel()» command enables the template author to group

Read More »

XpressDox Arrays

Arrays are similar to variables, and have a very similar set of functions to manipulate them.  XpressDox arrays can be indexed using data of (almost) any type for the index – i.e. you can index with strings or numerics, or both in the same array.  For this reason instead of

Read More »

The ceiling and floor functions

These are two XSLT functions and so have been available since the inception of XpressDox, but have recently been added to the Command Editor.  In essence, they perform the equivalent of a “round up” (ceiling) and “round down” (floor) to the nearest integer. For example, if the value 25 has been captured

Read More »

The ListDelimiter Function

List and CommasAndList are used to produce delimited lists either of repeating data elements (List) or data elements (or variables) containing a concatenated delimited list (CommasAndList). ListDelimiter provides similar capabilities, but more under the control of the template author. A typical example would be where a repeater containing clauses needs

Read More »

The AppendVr and PrependVr Functions

The AppendVr and PrependVr functions provide less cumbersome syntax for appending or prefixing values to variables than using SetVr to do this. Prior to these two functions, suppose you wanted to concatenate a pipe symbol (|) and a data element value (data element Name) to the end of a variable

Read More »

The FlagTOCToBeUpdated Command

Note that with effect from Version 6.4.1 of XpressDox, the functionality of this command is exactly the same as for the UpdateFields command. When a template contains a Word Table of Contents (TOC), that TOC can sometimes become invalid when conditional assembly in the template causes some of the constituents

Read More »

The DefineSetAllGroup Command

There is a requirement in some templates for the interview user to be able to check a checkbox  and have a set of check boxes all checked –  a so-called “Check All” feature. A similar requirement applies to a set of radio button lists, which must all have a value

Read More »

The RunAsHugeTemplate Command

There is a feature (perhaps a bug) in Microsoft® Office that prevents Add-ins like XpressDox from working with very large documents.  This affects XpressDox when a template being merged ends up being about 400 or more pages long. It only occurs when the template is run inside the XpressDox desktop

Read More »

The SetWebInterviewSize Command

This command allows the template author to set the size (width only – height grows dynamically as required) of the web interview when the interview is integrated into a web page. Possible values for InterviewSize are: Small, Medium, Large and ExtraLarge. An example would be: «SetWebInterviewSize(Medium)» For more information about integrating an interview

Read More »

The CentsToCurrency and CurrencyToCents Functions

Probably the best way to perform arithmetic on money values in XpressDox is to reduce all currency to integer values (e.g. Dollars to cents, Pounds to pence, etc), perform the arithmetic and then render the value back to the currency value.  The aim is to reduce the possibility of rounding errors creeping

Read More »

The Select/Case/Default Commands

The Select, Case and Default construct is especially helpful where otherwise a series of «Else()» commands nested inside «If()» commands would be necessary. This construct is analogous to the Select/Case/Else commands in VBA ( and the switch/case/default construct in C# and similar constructs in other languages). An example would be

Read More »

The ValueIsEmpty Function

Normally, the following test would result in “Yes it is empty” if the value of Name were an empty string: «If(Name = ”)»Yes it is empty«Else()»No it is not empty«End()» However, in situations where the XML data to be used in the template are sourced not from the interview, but from, for

Read More »

The Guid Function

This function returns a new GUID (Globally Unique Identifier) whenever it is called. The usages for GUIDs are discussed in various places, a starting point would be this Wikipedia article. An example of usage in XpressDox would be the following, which sets the value of a data element named Id

Read More »

The TemplateName Function

Use this function to put the file name of the currently running template into the assembled document. For example: The name of this template file is «TemplateName()» To include the extension and full file path of the template, use the following: The name of this template file is «TemplateName(‘true’,’true’)»

Read More »

The InterviewFont Command

This command will set the font for all controls, captions, headings, footings, etc., on the interview. One drawback of the current default font (which is the Microsoft default font for user interfaces) is that it is sometimes just a tad too small. Particularly when it comes to commas and full-stops

Read More »

The HzGroup Command

The default layout format for an interview is for the controls in the interview to be arranged vertically, one under the other. This behaviour can be modified by use of the HzGroup command (the name standing for ‘HorizontalGroup’). For instance, the command «HzGroup(Title,FirstNames,LastName)» would cause the controls for data elements Title, FirstNames and

Read More »

The Width Command

Before the advent of the Width command, the widths of controls on the interview would be variable, as the right hand side of the control is a fixed distance from the edge of the interview form.  This gives the interview a uniform look, but this can become tedious to look at,

Read More »