Related topics:

Repeating DataVariables

Tutorial Videos

Tutorial videos are available here.

Knowledge Base

Visit our User Forum for discussions & solutions

Alphabetic List of XpressDox Commands and Functions

Commands / Functions in XpressDox Document Automation software.

Here is a list containing every command / function available in the XpressDox Command Assistant, listed alphabetically.


Command or Function Name Description and Examples
AddBCCAddress Add BCC Address/es when saving as email (eml) «AddBCCAddress()»
AddCCAddress Add CC Address/es when saving as email (eml) «AddCCCAddress()»
AddToAddress Add an additional “To” Address when saving as email (eml) «AddToAddress()»
AlignCaption Sets the alignment of the caption for specific fields on the interview   «AlignCaption(FirstName,LastName,Top)»
AlignCaptions Sets whether all captions on the interview should be aligned left, right or top   «AlignCaptions(Right)» «AlignCaptions(Left)» «AlignCaptions(Top)»
AlignErrorMessages Sets whether error messages should be aligned top or bottom   «AlignErrorMessages(Top)»
AppendPDF Append a PDF file to the assembled (PDF) document   «AppendPDF(PDFFileName)» «AppendPDF('Survey Agreement.pdf')» «AppendPDF('Survey Agreement.pdf|Non-disclosure Agreement.pdf')»
AppendVr Append values to the end of a variable   «AppendVr('List',',')» «AppendVr('List',',',PartyName)»
ApplyRulesToDataset Apply Rules to the Dataset in the absence of an interview   «ApplyRulesToDataset(Yes)» «ApplyRulesToDataset(IgnoreSoftRules)»
AreYouReadyToAssembleMessage Display a confirmation message to the user before assembling the document «AreYouReadyToAssembleMessage()»
ArrayAppendVr Append a value to the value of an array element   «ArrayAppendVr('contacts','FullName',' ',Surname)»
ArrayClear Removes all entries from an array   «ArrayClear('Transactions')»
ArrayConcat Concatenate one array into another   «ArrayConcat('AllContacts','ForeignContacts')»
ArrayCount Get the number of elements in an array   «ArrayCount('A')»
ArrayDelete Delete an array element   «ArrayDelete('contacts','dependants')»
ArrayGetV Get the value of an array element   «ArrayGetV('contacts','dependants')» «ArrayGetV('contacts',3)»
ArrayGetVn Get the value of an array element as numeric where the context requires it   «ArrayGetVn('contacts','dependants')»
ArrayIncrementV Increment the value of an array element   «ArrayIncrementV('contacts','dependants')» «ArrayIncrementV('contacts','dependants',count(Child))»
ArrayIncrementVr Increment the value of an array element, and remove the paragraph   «ArrayIncrementVr('contacts','dependants')» «ArrayIncrementVr('contacts','dependants',count(Child))»
ArrayKeys Get one of the keys of the elements in the array   «ArrayKeys('A',1)» «ArrayKeys('A',ArrayCount('A'))» «SetVr('Ix',1)»
«RepeatWhile(GetV('Ix') <= ArrayCount('A'))»
«ArrayKeys('A',GetV('Ix'))» = «ArrayValues('A',GetV('Ix'))»
ArrayRemoveDuplicates Removes duplicate (and empty) elements from an array   «ArrayRemoveDuplicates('foodList')»
ArraySetFromString Create an array from a delimited string   «ArraySetFromString('names','Fred,John,Mary,Jack',',')»
ArraySetV Initialise or change the value of an array element   «ArraySetV('contact','N',FirstNames)» «ArraySetV('contact',3,FirstNames)»
ArraySetVr Initialise or change the value of an array element, and remove the paragraph   «ArraySetVr('contact','N',FirstNames)»
ArraySortByIndex Sorts the elements of an array by the index values   «ArraySortByIndex('Transactions')» «ArraySortByIndex('Transactions','Numeric')»
ArraySortByValue Sorts the elements of an array by value   «ArraySortByValue('Transactions')»
ArrayValues Get one of the values of the elements in the array   «ArrayValues('A',1)» «ArrayValues('A',ArrayCount('A'))» «SetVr('Ix',1)»
«RepeatWhile(GetV('Ix') <= ArrayCount('A'))»
AttachToEmail Attach a document (or the assembled document) to the email «AttachToEmail()»
BaseTemplate Base (or overlay) this template on another template   «BaseTemplate(LetterHead)» «BaseTemplate(headings:LetterHead,Destination)»
Button Place a Button on the interview   «Button(ButtonDummy)» «Button(ButtonDummy)»«OnExitSet(ButtonDummy,StartDate,Value,(),Today(),OnlyWhenEmpty)»
Caption Set the caption for the data element on the interview screen   «Caption(Amount,Capital amount of loan)» «Caption(Amount,^bu^@Navy@Capital amount of loan)»
CaptureAllDataElements Capture all data elements even if not used in this template   «CaptureAllDataElements(Yes)»
CaptureAsLongText Capture a multi-line text values   «CaptureAsLongText(Address,3)» «CaptureAsLongText(Address,3,PendingRelevance,Rich)»
CaptureDataElement Places a control for the data element on the interview screen   «CaptureDataElement(Name)» «CaptureDataElement(DateOfBirth,date)»
CaptureDataElements Include a number of data elements element in the interview for the template   «CaptureDataElements(CheckAll,Chk1,Chk2,Chk3)»
CaptureInGrid Specify whether or not a repeater should be displayed and captured in a grid   «CaptureInGrid(Child,Yes)» «CaptureInGrid(Child,No)»«CaptureInGrid(Child/Pet,Yes)»
CaptureLater Defer the capture of a data element to later in the interview   «CaptureLater(Name)»
CaptureOnlyEmptyValues Specify whether only empty values should be shown in the interview   «CaptureOnlyEmptyValues(Yes)» «CaptureOnlyEmptyValues(No)»
ceiling Round a value up to the nearest integer   «ceiling(RegionToX(YearsBetween(Today(),DateOfBirth)))»
CentsToCurrency Convert value in cents to currency and format it   «CentsToCurrency(CentsValue,'#,0.00')»
ChooseFromData Choose from repeating data already in the data set   «ChooseFromData(IdOfOrder,Order/OrderID)» «ChooseFromData(IdOfOrder,Order/OrderID,OrderDescription)» «ChooseFromData(IdOfOrder,Order/OrderID,OrderDescription,AddAllChosenData,Px)»
ChooseFromDataElements Choose from data already in the data set
ChooseFromDataset ChooseFromDataset   «ChooseFromDataset(CustodianName,../Respondent1,'Father',../Respondent2,'Mother')» «ChooseFromDataset(PartyDescription,IIf((PartyType = 'Type1'),PartyName,'None'),,IIf((PartyType = 'Type2'),PartyName,PrincipalName))»
ChooseFromDataSource Choose a row from a data source   «ChooseFromDataSource(Contacts,Choose a Contact)» «ChooseFromDataSource(Contacts,Type in the Contact's ID,RefreshSave,,DisallowSearch)» «ChooseFromDataSource(Contacts,Choose the contacts that apply,Refresh,Range=PostalCode = 7405,AllowSearch,Contacts)»
ChooseFromFile Choose data from a text or XML file   «ChooseFromFile(Lookups:Contacts.xdtxt,Choose a contact,NoRefresh,Surname)» «ChooseFromFile(Lookups:Contacts.xdtxt,Choose the Borrower,NoRefresh,BorrowerSurname,Borrower)»
ChooseFromHzRDBList Present a horizontal list of radio button choices   «ChooseFromHzRDBList(Gender,,Male,Female)»
ChooseFromList Present the user with a list of choices in a drop down list   «ChooseFromList(Province,Ontario,Quebec,British Columbia,Alberta,Manitoba,Saskatchewan,Nova Scotia,New Brunswick,Newfoundland and Labrador,Prince Edward Island)» «ChooseFromList(Province,,Ontario,Quebec,'British Columbia', 'Alberta' ,Manitoba,Saskatchewan,Nova Scotia,New Brunswick,'Newfoundland and Labrador',Prince Edward Island)» «ChooseFromList(Province,O~~Ontario,Q~~Quebec,BC~~British Columbia,A~~Alberta,M~~Manitoba,S~~Saskatchewan,NS~~Nova Scotia,NB~~New Brunswick,NL~~Newfoundland and Labrador,PE~~Prince Edward Island)»
ChooseFromRDBList Present a radio button list of choices   «ChooseFromRDBList(Orientation,North,South,East,West)» «ChooseFromRDBList(Clause,Security~~The undersigned undertakes to provide security covering the loan to be granted.,NoSecurity~~The undersigned is not required to provide security for the loan.)» «ChooseFromRDBList(Clause,~~The undersigned undertakes to provide security covering the loan to be granted.,~~The undersigned is not required to provide security for the loan.)»
ChooseFromRepeatingData Choose from repeating data already in the data set   «ChooseFromRepeatingData(IdOfOrder,Order/OrderID)» «ChooseFromRepeatingData(IdOfOrder,Order/OrderID,OrderDescription)» «ChooseFromData(IdOfOrder,Order/OrderID,OrderDescription,AddAllChosenData,Px)»
ChooseFromSamples Presents a drop down list of choices, but the user can type their own if it is not in the list   «ChooseFromSamples(Title,,Mr.,Mrs.,Miss,Ms.,Prof.,Dr.)»
ChooseUsingCheckBox Choose a value using a check box   «ChooseUsingCheckBox(RequiresSpecialSchooling,Yes,No,No)» «ChooseUsingCheckBox(Clause,~~The Parties agree to cede their rights to various assets without prejudice.)»
«If(Clause != '')»
ChooseUsingDatePicker Choose a data element value using a date picker   «ChooseUsingDatePicker(DateOpened)»
ChooseUsingTimePicker Choose a data element value using a time picker   «ChooseUsingTimePicker(AppointmentTime)»
Chr Get a character value from its integer representation   «OnExitSet(AddressLine2,AddressBlock,Value,,concat(AddressLine1,Chr(13),AddressLine2),,EvenWhenNotEmpty)»
ComeHereAfterRun Place a marker in the template where the cursor should be after the template has run.   «ComeHereAfterRun()»
CommasAndList Gets a natural language list from a delimited list.   «CommasAndList(GetV('JoinedValues'),'/',', ',' and ')» «CommasAndList(GetV('JoinedValues'),'/',', ',' en ')»
Comment Enter a comment into the template   «Comment(Any arbitrary comments)»
CompareStrings Compare two strings   «If(CompareStrings(A,B) < 0)»
«If(CompareStrings(A,B) > 0)»

«If(CompareStrings(A,B,'fr-FR') > 0)»
concat Concat   «SetV('FullName',concat(FirstNames,' ',Surname))» «SetV('Possessive',concat(Noun,'!'s'))»
contains Test for a substring inside another string   «If(contains(Word,'q'))»the word contains 'q'.«End()»
count Count – returns the number of a repeated item   «If(count(Child) > 0)»The number of children in the family is «count(Child)»«End()» «If(count(Child) > 0)»The names of the children follow:«Foreach(Child)»«Name» «Surname»«End()»«End()» «count(Child[Age < 12])»
CountOf Get the number of occurrences of one string inside another   «CountOf('.',Name)» «If(CountOf('.',Name) = 0)»The name contains no initials.«End()»
CreateDataElement Create a data element in the template’s data set.   «CreateDataElement('ThisDataElement',GetV('ThisVariable')» «CreateDataElement('ThisFileName'),GetValidFileName(AccountNumber)»
CreateDataElementR Create a data element in the data set, and remove the paragraph. «CreateDataElementR()»
CreateObject Create a reference to a COM or .NET object   «CreateObject('Excel','Excel.Application')» «CreateObject('Account','o2Smart.PracticeManagement.Account, o2Smart.PracticeManagement','ctor',AccountNumber)»
CultureName Get the active culture name   «CultureName('Input')» «CultureName('Output')»
CurrencySymbol Insert the currency symbol as defined in the Regional Settings   «CurrencySymbol()»
CurrencyToCents Multiplies a currency value by 100 with minimal rounding   «CurrencyToCents(Price)»
DateAsNumber Get a date in numeric format for numeric operations   «DateAsNumber(StartDate)»
DateTimeAsNumber Render a date/time as a number for numeric operations   «DateTimeAsNumber(StartDateTime)»
DaysBetween Gets the number of working days between two dates   «DaysBetween(EndDate,StartDate)» «FormatNumber(((DaysBetween(Today(),DateOfBirth) div 365) - 0.5), '0')» «DaysBetween(EndDate,StartDate,'w','2016-12-16,2016-12-26,2016-12-27,2017-01-01,2017-01-02')» «DaysBetween(EndDate,StartDate,'wi','2016-12-16,2016-12-26,2016-12-27,2017-01-01,2017-01-02')» «DaysBetween(EndDate,StartDate,'wi')»
Debug Debug missing or superfluous ‘end’ and ‘else’ issues   «Debug()»
Define Define the interview properties of a data element   «Define(Amount,^biu^@Red@Caption text,|^b^@Navy@Heading text,Footing Text,Tab Caption,CaptureDataElement,,Required,Initial Value,hard;IsDigits;The amount must be numerics only.,Cases;RefreshSave;'Id=;')?Enter the amount of the deal.» «Define(Title,^biu^@Red@Title of the party,|^b^@Navy@PARTY DETAILS,,Contact Information,ChooseFromList,;Mr.;Mrs.;Ms.;Dr.;Prof.)» «Define(TaxIncluded,Is Tax included,,,,ChooseUsingCheckBox,Y;N;N)»
DefineSetAllGroup Implements a “Check All” feature   «DefineSetAllGroup(CheckAll,Option1,Option2,Option3)» «DefineSetAllGroup(CheckAll,Option1,Option2,Option3,|,OptionList)» «DefineSetAllGroup(CheckAll,Option1,Option2,Option3,|,OptionList,DropPH)» «DefineSetAllGroup(CheckAll,Option1~~a~~Option2~~b~~Option3~~c,|,OptionList)»
DetectLongConditions Detect very long conditions in the interview relevance
DocumentBody Insert the body of the originating template into the Base Template   «DocumentBody»
Dolares Render a numeric amount as a number of Dollars, in Spanish words   «Dolares(Price)» «Dolares(Price,'ToUpper')»
Dollars Render a numeric amount as a number of Dollars, in words   «Dollars(Price)» «Dollars(Price,'ToUpper')»
DollarsFrancaise Render a numeric amount as a number of Dollars, in French words   «DollarsFrancaise(Price)» «DollarsFrancaise(Price,'ToLower')»
DropDownPanel Present the data elements in a drop down list   «DropDownPanel(PH1,Choice1,Choice2,Choice3,Choice4)» «DropDownPanel(PH1,Soccer,Tennis,Golf,repeater=Sports/SportName)»
EnableWebLocalSave Enable Save Local on the Web   «EnableWebLocalSave(Yes)»
EnableWebPreview Enable the Preview option on Integrated Web interview   «EnableWebPreview(Yes)» «EnableWebPreview(No)»
EndsWith Test whether a string ends in a given string   «If(EndsWith(Surname,'-Smith'))»
Eq Test whether a string is equivalent to another string   «If(Eq(MaritalStatus,'Mar*comm*other'))»«End()» «If(Eq(Quotation,'longandwindingroad'))»«End()»
EscapeForXml Escape a string for use in XML   «EscapeForXml(Text)»
ESignAddCC Add a CC for e-signatures «ESignAddCC»
ESignAddSignatory Add signatories who should electronically sign «ESignAddSignatory»
ESignAutomaticSend Automatically send the assembled document to all signatories once the document has been assembled «ESignAutomaticSend()»
ESignDateSignedHere Add a tag into the document to insert the date signed in DocuSign «ESignDateSignedHere()»
ESignEmail Set the email body and subject to be sent to all signatories «ESignEmail()»
ESignHere Insert a signature point into the template «ESignHere()»
ESignInitialHere Add an initial point into the template «ESignInitialHere»
EuroDeutsch Render a numeric amount as a number of Euros, in German words   «EuroDeutsch(Price)» «EuroDeutsch(Price,'ToLower')»
Euros Render a numeric amount as a number of Euros, in English   «Euros(Price)» «Euros(Price,'ToLower')»
EurosEspanol Render a numeric amount as a number of Euros, in Spanish words   «EurosEspanol(Price)» «EurosEspanol(Price,'ToUpper')»
EurosFrancaise Render a numeric amount as a number of Euros, in French words   «EurosFrancaise(Price)» «EurosFrancaise(Price,'ToLower')»
ExcludeFromDataSet Exclude elements from the saved dataset   «ExcludeFromDataSet(DataElements,UserID,UserName,UserEmail,Child/Address)» «ExcludeFromDataSet(DataSources,Users,Accounts)»
ExcludeFromGrid Exclude the data element from a grid row when captured in a grid   «ExcludeFromGrid(PictureCode)» «ExcludeFromGrid(PictureCode,Size,Location)»
ExcludeFromIV Excludes a data element from the capture interview for the template   «ExcludeFromIV(FirmName)» «ExcludeFromIV(FirmName,FirmAddressLine1,FirmAddressLine2,FirmPostalCode)»
Execute Execute a number of functions   «Execute(SetV('X',12),GetV('X'))» «Execute(SetV('X',12),IncrementV('X'),GetV('X'))»
ExpectXSLTFormatNumbers Cause XpressDox to expect XSLT formatted numbers in data   «ExpectXSLTFormatNumbers(Yes)»
ExtractInitials Extract Initials from name   «ExtractInitials(Fullnames,'.')» «ExtractInitials(Fullnames,'')»
FileExists Test whether file exists   «If(FileExists(FileName))»do something«End()» «If(FileExists(concat(Folder,"\",FileName)))»do something«End()»
floor Round a value down to the nearest integer   «floor(RegionToX(YearsBetween(Today(),DateOfBirth)))»
Footing Place footing text below a data element in the interview   «Footing(CompanyPostalCode,END OF COMPANY DETAILS)» «Footing(CompanyName,)» «Footing(CompanyPostalCode,|^bu^@Navy@END OF COMPANY DETAILS)»
ForbidThousandsSeparators Specify that capture of numeric values should not permit thousands separators   «ForbidThousandsSeparators(Yes)» «ForbidThousandsSeparators(No)»
ForEach Repeat for a number of repeating data elements   «ForEach(Party)» «End()» «ForEach(Party,Surname,ascending,text)» «End(for each)» «ForEach(Child[Age < 12]) selects children whose age is less than 12» «End()»
Format Format a string according to a pattern   «CreateDataElement(Format('Child[{0}]/Name',position()),GetV('Name'))»
FormatDate Format a field as date and/or time   «FormatDate(DateOfBirth,'yyyy/MM/dd','en')» «FormatDate(SignatureDate,'o MMMM yyyy')»
FormatNumber Format Number   «FormatNumber(Amount)» «FormatNumber(Amount,'#,0.00;(#,0.00)')» «FormatNumber(Amount,'#,0.00;(#,0.00)','FR')»
FormatNumberOnInput Format a number in the interview   «FormatNumberOnInput(Amount,'#,#')»
FormatSeconds Format a number of seconds into hours, minutes and seconds   «FormatSeconds(Seconds,'HH:mm:ss')» «FormatSeconds(Seconds,'HH')» hours, «FormatSeconds(Seconds,'mm')» minutes and «FormatSeconds(Seconds,'ss')» seconds
FormatTime Format a field as a time   «FormatTime(AppointmentTime,'hh:mm tt')» «FormatTime(AppointmentTime,'hh:mm tt','fr')» «FormatTime(AppointmentTime,'HH:mm:ss')»
GE Greater than or Equal to   «IIf(GE(First,Second),'First is greater than or equal to Second','First is neither greater than nor equal to Second')»
Gender Return a value depending on a party’s gender  
«Gender(PartyGender,1,'he,she')» took «Gender(PartyGender,1,'his,her')» bag with «Gender(PartyGender,1,'him,her')»

«ChooseFromRDBList(PartyGender,,Y~~Male,X~~Female)»«Comment(Y and X are accepted as gender codes from genetics)»
«Gender(PartyGender,1,'he,she,it')» took «Gender(PartyGender,1,'his,her,its')» bag with «Gender(PartyGender,1,'him,her,it')»

«ForEach(Party)»«ChooseFromRDBList(PartyGender,Male,Female,Neuter)»«End(ForEach party)»
«Gender(Party/PartyGender,count(Party),'he,she,it,they')» took «Gender(Party/PartyGender,count(Party),'his,her,its,their')» bag«Plural(count(Party),'','s')» with «Gender(Party/PartyGender,count(Party),'him,her,it,them')»

«Gender(PartyGender,(OnlyOneParty = 'Y'),'he,she,it,they')» took «Gender(PartyGender,(OnlyOneParty = 'Y'),'his,her,its,their')» bag«Plural((OnlyOneParty = 'Y'),'','s')» with «Gender(PartyGender,(OnlyOneParty = 'Y'),'him,her,it,them')»

«ForEach(Party)»«ChooseFromRDBList(PartyGender,M,V,D)»«End(ForEach party)»
«Gender(Party/PartyGender,count(Party),'hy,sy,die ding,hulle','M,V,D')» het «Gender(Party/PartyGender,count(Party),'sy,haar,sy,hulle','M,V,D')» sak«Plural(count(Party),'','ke')» saam met «Gender(Party/PartyGender,count(Party),'hom,haar,hom,hulle','M,V,D')» gevat.
GetDataSet Get a string representation of the data set   «GetDataSet()» «SetDataSourceData('StagingTable',Guid(),'XMLBlob',GetDataSet(),'Description',Name)»
GetDataSourceData Get the data from a data source during assembly   «SetV('ProductXML',GetDataSourceData('Products',ProductID))» «GetDataSourceData('Products',ProductID,'ProductName')» «GetXMLElementValue(GetDataSourceData('Products',ProductID),'ProductName')»
GetListItem Extract a value from a delimited list   «GetListItem(ListItem,'First,Second,Third',',')» «GetListItem(4,IP_Address,'.')» «GetListItem(GetV('element number'),PeriodicTable,',')»
GetObjectValue Get the value of a property or method call on a COM or .NET object   «GetObjectValue('msword:Version')» «GetObjectValue('msword:PointsToInches',72)»
GetProperty Get the value of a property of a COM or .NET object   «GetProperty('MyObject:MyPropertyName')» «GetProperty('msword:ActiveDocument.Name')»
GetRegistryValue Get a value from the registry   «GetRegistryValue('HKEY_CURRENT_USER\Software\VB and VBA Program Settings\Accounting\Options\ScratchFolder')» «GetRegistryValue(concat('HKEY_CURRENT_USER\Software\VB and VBA Program Settings\Accounting\UserOptions\',WindowsLogonUser()))»
GetV Get the value of a variable   «GetV('Balance')»
GetValidFileName Get a string which only has valid file name characters   «GetValidFileName(AccountNumber)» «GetValidFileName(AccountNumber,'-')» «CreateDataElement('TargetFileName',GetValidFileName(AccountNumber,'-'))»
GetValidXmlElementName Converts the passed string to a valid XML element name   «GetValidXmlElementName(Name,'_and_')»
GetVn Get the value of a variable used as numeric   «Party[GetVn('Counter')]/Name»
GetVOrDefault Get the value of a variable if it has been defined otherwise a default value   «GetVOrDefault('NumberOfLines',1)»
GetXmlElementValue Get the value of an XML element in an XML document   «GetXmlElementValue(GetV('ProductXML'),'ProductName')» «GetXmlElementValue(GetDataSourceData('Products',ProductID),'ProductName')»
GetXPathValue Get values from XML using XPATH expressions   «GetXPathValue(GetV('ProductXML'),'count(/root/Product)')» «GetXPathValue(GetDataSourceData('Products','Range=ProductID > 1'),'count(//Product)')» «GetXPathValue(GetDataSourceData('Products','Range=ProductID > 1'),'sum(//Product/CostPrice)')»
GT Greater than   «IIf(GT(First,Second),'First is greater than Second','First is not greater than Second')»
Guid Get a GUID (Globally Unique Identifier)   «SetV('Id',Guid())» «OnExitSet(Name,Id,Value,,Guid(),,OnlyWhenEmpty)»
HardSpace Convert normal spaces to non-breaking spaces   «HardSpace(Phrase)» «HardSpace(Pounds(Price))»
Heading Place heading text above a data element in the interview   «Heading(CompanyName, COMPANY DETAILS)» «Heading(CompanyName,|^bu^@Navy@COMPANY DETAILS)»
Help Provide help text (to be shown in the Help area) for a data element   «Help(Amount,Enter the amount of the loan)» «Help(Address,\Enter the address, each address line on a separate line)»
HideEmptyInterview Specify whether or not an empty interview should be hidden   «HideEmptyInterview(Yes)» «HideEmptyInterview(No)»
HideFromPreview Prevent the document generated from being inlcuded in a preview   «HideFromPreview(Yes)» «HideFromPreview(X > 1)»
HideInsideIV Hides a data element inside the interview for the template   «HideInsideIV(DebtorTypeOption)» «HideInsideIV(DebtorTypeOption,CreditorTypeOption,AgentTypeOption)»
Hyperlink Attach a hyperlink to a heading or footing   «Hyperlink(Description,Heading,» «Hyperlink(Description,Heading,»
HzGroup Group data elements together horizontally on the interview   «HzGroup(Title,FirstNames,LastName)» «HzGroup(Title,FirstNames,LastName,10,EmptyAllCaptions)» «HzGroup(Title:4,FirstNames,LastName,20)»
If Conditionally include text into the document   «If(Answer = 'No')» «End(If)» «If(Answer = 'Yes')»text when Answer is 'Yes'«Else()»text when Answer is not 'Yes'«End(If)» «If((Answer = 'Yes') or (Answer = 'Maybe') and (Amount > 500)»«End()» «If(position()= 1)»This applies only to the first repeating item.«End()» «ForEach(Party)»«PartyFullNames»«If(last() > 1)»«When(position() < last()-1,!, )»«When(position() = last()-1, and )»«End(party > 1)»«End(for each)» «ChooseFromRDBList(Gender,Male,Female)»«If(Gender = "Male")»«SetV("PronounHe","he")»«Setv("PronounHim","him")»«SetV("PronounHis","his")»«Else()»«SetV("PronounHe","she")»«SetV("PronounHim","her")»«SetV("PronounHis","her")»«End()»«RemoveParagraph()»
«GetV('PronounHe')» took «GetV('PronounHis')» bag with «GetV('PronounHim')»
IIf IIf function   «IIf((VatIndicator = 'Yes'),FormatNumber(Amount * 0.14),'0.00')»
IncludeCodeTemplate Include only those paragraphs which contain XpressDox merge fields   «IncludeCodeTemplate(utils:Help,Text)»
IncludeDataSourceData Include data from a data source   «IncludeDataSourceData(Contacts,RefreshSave,range=PostalCode > 8000,Customers)»
IncludeFileData Include data from a text or XML file   «IncludeFileData(Contacts.xml)» «IncludeFileData(lookups:Contacts.xml,Refresh,Customers)»
IncludePicture Include a picture   «IncludePicture(images:Logo.jpg,0.8in,0.8in)»
IncludeSpreadsheet Include a spreadsheet in the final document   «IncludeSpreadsheet(HourlyRates.xslt)»
IncludeTemplate Include a template as part of this template   «IncludeTemplate(utils:Clauses,Destination,ExcludeHeaders)» «IncludeTemplate(utils:Clauses,Destination,PreserveHeaders)» «IncludeTemplate(utils:Help,Text)»
IncrementDate Increment a date   «IncrementDate(DateOfBirth,1,'y')» «IncrementDate(Today(),5,'d')» «IncrementDate(Today(),5,'w')»
IncrementV Increment a variable value   «IncrementV('Counter')» «IncrementV('Total',RenderAsNumeric(Amount))»
IncrementVr Increment a variable by a given amount and remove the paragraph   «IncrementVr('Total',RenderAsNumeric(Amount))» «IncrementVr('Counter')»
InhibitAutomaticRuleOnNumberFunctions Inhibit the automatic Rule commands that are generated for functions taking numeric values as input.   «InhibitAutomaticRuleOnNumberFunctions(Yes)»
InhibitInterview Prevent an interview «InhibitInterview»
InputCulture Return the language and number format «InputCulture»
InsertDataElement Performs the same function as “re-use field” «InsertDataElement()»
InsertFormattedText Insert text captured as long text   «InsertFormattedText(Address)» «InsertFormattedText(Address,Paragraph)» «InsertFormattedText(Address,Destination)»
InsertHyperlink Insert a hyperlink into the document   «InsertHyperlink('Our Company Web Site','')» «InsertHyperlink(concat(DirectorName, ' profile'),DirectorProfileWebSite)»
InsertInto Insert a string inside a value   «InsertInto(Name,3,'X.')»
InsertPicture Insert a picture   «InsertPicture(concat('images:Personnel\',Signatory,'.jpg'),0.8in,0.8in)»
InsertSpreadsheet Insert a spreadsheet in the final document   «InsertSpreadsheet(concat('HourlyRatesFor',DirectorCode,'.xslt'))»
InsertTemplate Insert a template whose name appears in a data element which is chosen by the user.   «InsertTemplate(Clause,Destination)» «InsertTemplate(concat('Clauses:',ChosenClauseName,PartyType),Destination)» «InsertTemplate('Party Underage Clause',Destination)» «InsertTemplate('letters:Covering Letter',Destination,PreserveHeaders)»
InsertUnformattedLongText Inserts text captured as “long” text but with no line breaks or formatting   «InsertUnformattedLongText(Address,', ')»
InterviewFont Specify the font for the entire interview   «InterviewFont(Microsoft Sans Serif/8.25)» «InterviewFont(Times New Roman/9)»
InterviewIsWizard Specify whether the interview should be in Wizard form or not   «InterviewIsWizard(Yes)» «InterviewIsWizard(Strict)» «InterviewIsWizard(No)»
InterviewLogo Provide the name of an image file to use in the interview   «InterviewLogo(images:InterviewLogo.jpg)»
InterviewRelevance Provide a condition governing the relevance of the data element in the interview   «InterviewRelevance(Name,Name = '')» «InterviewRelevance(Children,count(Children) > 0)»
InterviewTheme The theme of the Desktop Interview   «InterviewTitle(Classic)» «InterviewTitle(White)»
InterviewTitle Set the title which will show on the Interview screen for this template   «InterviewTitle(Custom Title for Interview Screen)»
InvokeMethod Invoke a method on a COM or .NET object   «InvokeMethod('Excel.Application:Quit')» «InvokeMethod('msword:ChangeFileOpenDirectory',concat('C:\Users\',WindowsLogonUser(),'\Documents\XpressDox'))»
IsFalse Test whether a value does not look like a boolean “true”   «If(IsFalse(Option1))»Option1 («Option1») is not true«End()»
IsTrue Test whether a value looks like a boolean “true”   «If(IsTrue(Option1))»Option1 («Option1») is true«End()» «If(not(IsTrue(Option1)))»Option1 («Option1») is false«End()»
IsXMLElementName Test whether the value is a valid XML Element name «IsXMLElementName()»
IsXpathExpression Test whether the expression is a valid XPATH expression «IsXpathExpression()»
last Used in a ForEach to test whether the last repeating item is being referenced.   «last()» «If((position() > 1) and (position() < last()-1))», «End()»«If((position() > 1) and (position() = last()-1))» and «End()»
LastDayInMonth Get the last day in a month   «FormatDate(LastDayInMonth(Today()),'dd MMMM yyyy')»
LE Less than or Equal to   «IIf(LE(First,Second),'First is less than or equal to Second','First is neither less than nor equal to Second')»
Left Extract the left-most a portion of a string   «Left(Name,5)»
LinkToDataSource Link the control for any data element in the interview to a data source   «LinkToDataSource(MatterNumber,Cases)» «LinkToDataSource(MatterNumber,Cases,RefreshSave,'id=,',LookupMatter = 'Y',UserClass='High')»
LinkToDataSourceOnEnter When entering a control in the interview, link it to a data source   «LinkToDataSourceOnEnter(MatterNumber,Cases)» «LinkToDataSourceOnEnter(MatterNumber,CasesDataSource,AllowInsert,id=0,MatterNumber = '')» «LinkToDataSourceOnEnter(MatterNumber,CasesDataSource,RefreshSave,,(MatterNumber != ''),(UserCanSave = 'Yes'))»
LinkToOtherData Links the control in the interview for this data element to a saved dataset   «LinkToOtherData(AccountNumber)» «LinkToOtherData(AccountNumber,_)»
List Produce a delimited list (e.g. commas and ‘and’) from repeating data   «List(Party,Firstname Surname,!, , and )» «List(Child[Age < 10],Firstname Surname,', ',' and ')»
ListDelimiter Inserts a delimiter between parts of a list, typically a comma and “and”   «ListDelimiter(position(),last()-1,'; ',' and also ')» «ListDelimiter(position(),last()-1)» «ListDelimiter(GetVn('counter'),GetVn('sizeMinus1'))»
Log Log a message   «Log(concat('At this point in the template, and the value of Name is ',Name))»
LogDataElements Log a list of data elements with a message   «LogDataElements(The name and address are,Name,Address)»
LogVariables Log a list of XpressDox variable values with a message   «LogVariables(At the middle of the template,Total,TotalTax)»
Lookup Look up the value of a key in a name/value list   «Lookup(Language,'en-gb:colour;en-us:color')»
LT Less than   «IIf(LT(First,Second),'First is less than Second','First is not less than Second')»
MakeNoise Make one of the system sounds   «MakeNoise()» «MakeNoise('Asterisk')»
Max Gets the higher of two values   «Max(HourlyRate * Hours, 1000)» «Max(Age,CutoffAge)»
MaximumRepeats Set the maximum number of repeats   «MaximumRepeats(Child,2)» «MaximumRepeats(Child,IIf((ParentName = ''),0,2))»
MergeDataSheetTemplate Merge this template’s Data Sheet Template   «MergeDataSheetTemplate()»
MergePDFForm Merge a PDF from after the currently running template   «MergePDFForm('Agreement')» «MergePDFForm(concat('Agreement -',PartyType),'Agreement')» «MergePDFForm(concat('Agreement -',PartyType),'Agreement','R')»
MergeTemplate Merge another template after the currently running template   «MergeTemplate('Agreement')» «MergeTemplate(concat('Agreement -',PartyType))»
Min Gets the lower of two values   «Min(HourlyRate * Hours, 1000)» «Min(Age,CutoffAge)»
Mod Gets remainder after dividing one number by another   «Mod(LineNumber, 2)»
MonthsBetween Gets the number of months between two dates   «MonthsBetween(Today(),FirstOfJan)»
MultiEquals Compare a value against the contents of a list constructed by DefineSetAllGroup «MultiEquals()»
MultiSelect Same as DefineSetAllGroup «MultiSelect()»
Now Insert the current date (i.e. today) and/or time into the document   «Now('yyyy/MM/dd')» «Now('MMMM o yyyy')» «Now('d MMMM yyyy HH:mm:ss','de')» «Now()»
NumberOrZero Test «NumberOrZero()»
NumberToCurrency Render a number as currency, in words   «NumberToCurrency(Price, "Dollar", "Dollars", "cent", "cents", "", "en-uk", "Leave")»
OnEnterSet Set values when focus enters a data element’s control   «OnEnterSet(Gender,Gender,Value,(Substring(IDNumber,7,1) > '4'),'Male','Female')» «OnEnterSet(RefNumber,RefNumber,Caption,(PartyType = 'Individual'),'ID Number','Company Number')» «OnEnterSet(ReminderDate,ReminderDate,Value,,IncrementDate(DateOpened,7,'d'),,EvenWhenNotEmpty)»
OnExitSet Set values when focus leaves a data element’s control   «OnExitSet(IDNumber,Gender,Value,(Substring(IDNumber,7,1) > '4'),'Male','Female')» «OnExitSet(PartyType,RefNumber,Caption,(PartyType = 'Individual'),'ID Number','Company Number')» «OnExitSet(DateOpened,ReminderDate,Value,,IncrementDate(DateOpened,7,'d'),,EvenWhenNotEmpty)»
OptimizeParsing Optimize parsing of the template   «OptimizeParsing(Off)» «OptimizeParsing(On)»
Ordinal Ordinal (i.e. First, Second,…) inside ForEach   «Ordinal()» «Ordinal(,Eerste,Tweede,Derde,Vierde,Fyfde,Sesde,Sewende,Agste en verdere)»
OrdinalSuffix Gets the suffix st, nd, rd, etc. of the ordinal of a number   «OrdinalSuffix(Today('d'))» «OrdinalSuffix(Today('d'),'af')» «OrdinalSuffix(Today('d'),'st,nd,rd,th,th,th,th,th,th,th,th,th,th,th,th,th,th,th,th,th,st,nd,rd,th,th,th,th,th,th')»
PaintInsertedText Paint Text Inserted by Fillpoints   «PaintInsertedText(Yes,Blue)» «PaintInsertedText(Yes,Blue,Paint='Yes')» «PaintInsertedText(No)» «PaintInsertedText(No,Red)»
Paragraph Split the containing paragraph into two at this point.   «Paragraph()» «Paragraph('Letter Body')»
PdfUserPassword Set a User Password when saving as PDF   «PdfUserPassword('MySecretPassword')» «PdfUserPassword(FormatDate(DateOfBirth,'yyyyMMdd'))»
Pesos Render a numeric amount as a number of Pesos, in Spanish words   «Pesos(Price)» «Pesos(Price,'ToUpper')»
PlaceHolder A placeholder in the interview to which text can be attached  

Plural Get the singular or plural depending on the number.   «Plural(count(Child),'child','children')» «Plural(count(Child),'child!'s','children!'s')» «ChooseUsingCheckBox(OnlyOne,Y,N,N)»«Plural((OnlyOne = 'Y'),'child','children')»
position Get the position within a ForEach   «When(position() > 1, and )» «ForEach(Party)»«PartyFullNames»«If(last() > 1)»«When(position() < last()-1,!, )»«When(position() = last()-1, and )»«End(party > 1)»«End(for each)»
Pounds Render a numeric amount as a number of Pounds, in words, UK English   «Pounds(Price)» «Pounds(Price,'ToUpper')»
PrefixWith Insert a prefix if the value is not empty   «PrefixWith(AddressLine2,' ')»
PrependVr Prefix values at the front of a variable   «PrependVr('List',',')» «PrependVr('List',PartyName,',')»
PreventRepeaterDeletion Prevent the deletion of a repeater «PreventRepeaterDeletion()»
Question Insert a question command. This is considered to be part of the Low Code flavour of XpressDox and as such will not be found in the Command Assistant.
RaiseToPower Raise a number to a power   «RaiseToPower(SideOfSquare,2)»
Rand Render a numeric amount as a number of Rand in words, in English   «Rand(Price)» «Rand(Price,'ToUpper')»
RandAfrikaans Render a numeric amount as a number of Rand in words, Afrikaans   «RandAfrikaans(Price)» «RandAfrikaans(Price,'ToUpper')»
ReadOnly Set the control for a data element on the interview to Read Only   «ReadOnly(Description)» «ReadOnly(Description,Size,Location)» «ReadOnly(Description,Size,Location,(UserIsPrivileged = 'Yes'))»
RegionToX Convert a number in regional format to XpressDox calculation-compliant format   «(RegionToX(UnitPrice) * RegionToX(Qty))»
RemoveColumnIf Remove a Word table column   «RemoveColumnIf(ColumnCount < 3)» «RemoveColumnIf(ColumnCount < 3,1)» «RemoveColumnIf(ColumnCount < 3,Empty)»
RemoveParagraph Remove the paragraph after the template has merged.   «RemoveParagraph()»
RemoveRowIf Remove a Word table row   «RemoveRowIf(AgeOfChild < 18)»
RenderAsNumeric Force a string to be a valid numeric value   «FormatNumber(RenderAsNumeric(Amount) * 1.10)»
RepeaterCaption Set the caption for a group of repeating data elements on the interview screen   «RepeaterCaption(Child,Children)» «RepeaterCaption(Child,^bu^@Navy@Children)»
RepeaterPosition Get the position during interview processing   «RepeaterPosition(Child)» «RepeaterPosition(../Child)»
RepeaterQuestion Insert a repeating question. This is also available from a button on the ribbon (Low Code).«RepeaterQuestion()»
Replace Replace all occurrences of a specified string with another   «Replace(EnglishSentence,'grey','gray')» «Replace(Replace(Replace(EnglishSentence,'grey','gray'),'colour','color'),'favourite','favorite')»
ReplaceField Replace a Merge Field in the Base Template   «ReplaceField(Addressee)»«ClientName»«ReplaceFieldEnd()» «ReplaceField(ToUpper(Addressee))»«ToSentence(ClientName)»«ReplaceFieldEnd()»
Required Mark one or more data elements as required – i.e. must have a non-empty value   «Required(AccountNumber,Decimal)» «Required(AccountNumber)» «Required(AccountNumber,Surname,IDNumber)»
RequiredVersion Allows the template author to prevent a template running if the installed version of XpressDox is too low.   «RequiredVersion(3.1.1)»
RestrictToLicenses Supply licence serial numbers for this template   «RestrictToLicenses(123,124,300)»
Right Extract the right-most a portion of a string   «Right(Name,5)»
Round Round a value to the nearest integer   «FormatNumber(Round(Price,2))» «Round(InterestRate,3)»
Rule Applies a custom made validation rule to the data element in the interview process   «Rule(Cost,hard,IsNumber,110.00,12000.00,The Cost must be greater than 109 and less than or equal to 12000.)» «Rule(SellingPrice,hard,(Area > 1000 and SellingPrice > 500000) or (Area < 1001 and SellingPrice < 50001),'The SellingPrice must be greater than 500000 when the Area is more than 1000.')» «Rule(IDNumber,hard,IsDigits,The IDNumber must consist only of digits)»«Rule(IDNumber,hard,string-length(IDNumber) = 13,the IDNumber must be exactly 13 digits long.)» «Rule(IDNumber,hard,IsZAIDNumber,The IDNumber failed the test for a valid South African ID Number.)» «Rule(Email,hard,IsEmailAddress,'The field must be a valid email address')»«Rule(Email,hard,(not(contains(Email,',')) and not(contains(Email,';'))),'not a list of addresses.')» «Rule(Postal_Code,hard,IsUKPostalCode,'Please enter a valid UK Postal Code')» «Rule(Price,hard,IsRegionalNumber,'EU','The value must be a number in the format 9.999,99')» «Rule(IDNumber,soft,1 = 1,'do you want to accept the value anyway?')»
RunAsHugeTemplate Instruct XpressDox Word Addin to run the template in a separate process   «RunAsHugeTemplate(yes)»
RunTemplate Run several templates together in a package, with separate interviews «RunTemplate()»
RunTemplates Specify a number of templates to be run when this template is run.   «RunTemplates(CoveringLetter,Contract,Invoice,DebitOrder)»
RunWordMacro Run a Word macro after the template has been merged.   «RunWordMacro(MacroName)» «RunWordMacro(FirstMacro,SecondMacro)»
SaveAsEmail Save the assembled document as an email (eml) «SaveAsEmail()»
SaveAsHtml Specify whether or not to save the merged document in HTML format.
SaveAsPdf Specify whether or not to save the merged document in PDF format.
SaveAsRtf Specify whether or not to save the merged document in RTF format.
SaveAsText Specify whether or not to save the merged document in plain text format.   «SaveAsText(Yes)»
SaveDataset Specify whether or not to save the dataset.   «SaveDataset(No)»
Script Define a chunk of document for re-use   «Script(ProductDescription)»chunk of text«ScriptEnd()» «Script(ProductDescription,UpperOrTitle)»«&UpperOrTitle&(chunk of text)»«ScriptEnd()»
ScriptIf Conditionally include text in a script   «ScriptIf(&Required& = 'Y')»«Required(&Name&)»«ScriptIfEnd()»
SecondsBetween Gets the number of seconds between two date/times   «SecondsBetween('13:00:00','12:00:00')» «SecondsBetween(EndTime,StartTime)»
Select A Select/Case/Default block (like an If/Else if)
«Case(Test = 1)»Test is 1
«Case(Test = 2)»
Test is 2
Test is «Test»
SendAsEmail Send the email as soon as it has been assembled«SendAsEmail()»
SendWebEmail Set all the properties to send an email from a Web based template   «SendWebEmail(ToAddress,'','','','Documents attached for your info','emailbody.html','false','true','false')»
Set Give a data element a new value during the interview or assembly process   «Set(FullName,(),concat(CompanyName,' Limited'))»
SetCoreFileProperty Sets a core file property in the merged document   «SetCoreFileProperty('Author',WindowsLogonUser())» «SetCoreFileProperty('Subject',What_this_is_About)»
SetCustomDocumentProperty Sets a custom document property in the merged document.   «SetCustomDocumentProperty(MadeByXpressDox,Y)» «SetCustomDocumentProperty(XDFsProf-custom1,CUSTOM1VALUE1)»
SetDataSourceData Set the value of a field in a data source   «SetDataSourceData('Products',ProductID,'UnitPrice',100)»
SetDocumentName Set the document name (referenced as ).   «SetDocumentName(CoveringLetter)»
SetEmptyMarker Set the value of the Empty Marker   «SetEmptyMarker('{^}')» «SetEmptyMarker('{^}',LastName,FirstNames,IDNumber)» «SetEmptyMarker('',LastName,FirstNames,IDNumber)» «SetEmptyMarker('{~cyan~^~}')» «SetEmptyMarker('{~red~^~}',LastName,FirstNames,IDNumber)»
SetInitialValue Sets the initial value for a data element that is to be captured   «SetInitialValue(PostalCode,7890)» «SetInitialValue(Customer/State,Washington)»
SetInterviewDataOnly Set the option that a template is destined only for data capture   «SetInterviewDataOnly(Yes)» «SetInterviewDataOnly(No)»
SetMultipleDocumentFilter Sets a filter applying to the Document Per Repeated Item feature   «SetMultipleDocumentFilter(ChildAge > 12)» «SetMultipleDocumentFilter(ChildAge > ../AgeFilterValue)»
SetProfileProperty Profile the assembled document for use in integrations e.g. NetDocuments and iManage «SetProfileProperty()»
SetProperty Set the value of a property of a COM or .NET object   «SetProperty('Excel.Application:ActiveCell.FormulaR1C1',Today('yyyy-MM-dd'))»
SetRepeaterQualifier Set the string which must appear in the interview against repeating elements   «SetRepeaterQualifier(Child,, )»
SetSavedDataFileName Set the file name of the data that was captured in an interview for the template.   «SetSavedDataFileName(Data )» «SetSavedDataFileName(concat('Data ',GetValidFileName(AccountNumber)))»
SetSavedDataFolder Sets the folder where the data captured in the interview will be saved.   «SetSavedDataFolder(Data )» «SetSavedDataFolder(concat('Data ',WindowsLogonUser()))»
SetSavedDocumentFileName Set the file name of the merged document.   «SetSavedDocumentFileName()» «SetSavedDocumentFileName(concat('Document for ',GetValidFileName(AccountNumber)))»
SetSavedDocumentFolder Set the folder where the merged document will be saved.   «SetSavedDocumentFolder(Docs )» «SetSavedDocumentFolder(concat('Docs ',WindowsLogonUser()))»
SetSavedDocumentNameVersioning Set the option governing the versioning of the merged document file name (default is ON)   «SetSavedDocumentNameVersioning(Off)»
SetV Set a variable value   «SetV('Balance',0)» «SetV('Balance',GetV('Balance') + RenderAsNumeric(Amount))» «IncrementV('Balance', RenderAsNumeric(Amount))» «ChooseFromRDBList(Gender,Male,Female)»«If(Gender = "Male")»«SetV("PronounHe","he")»«Setv("PronounHim","him")»«SetV("PronounHis","his")»«Else()»«SetV("PronounHe","she")»«SetV("PronounHim","her")»«SetV("PronounHis","her")»«End()»«RemoveParagraph()»
«GetV('PronounHe')» took «GetV('PronounHis')» bag with «GetV('PronounHim')»

«Gender(PartyGender,1,'he,she')» took «Gender(PartyGender,1,'his,her')» bag with «Gender(PartyGender,1,'him,her')»
SetVR Set a variable value and remove the paragraph   «SetVR('Balance',0)» «SetVr('Balance',GetV('Balance') + RenderAsNumeric(Amount))» «ChooseFromRDBList(Gender,Male,Female)»«If(Gender = "Male")»«SetVr("PronounHe","he")»«Setv("PronounHim","him")»«SetV("PronounHis","his")»«Else()»«SetVR("PronounHe","she")»«SetV("PronounHim","her")»«SetV("PronounHis","her")»«End()»
«GetV('PronounHe')» took «GetV('PronounHis')» bag with «GetV('PronounHim')»
SetWebButtonText Sets the text to be shown in the “Assemble Document” button on the web interview   «SetWebButtonText(Submit)»
SetWebCustomButton Sets custom text to be implemented in the interview by the web designer   «SetWebCustomButton('Do Something')»
SetWebInterimSaveButton Sets the text to be shown in the “InterimSave” button on the web interview, and the URL   «SetWebInterimSaveButton(Save data and Exit,»
SetWebInterviewMinimumHeight Set the minimum height of the Web Interview   «SetWebInterviewMinimumHeight(200)»
SetWebInterviewSize Set the Web Interview Size   «SetWebInterviewSize(Medium)»
SetWebReturnURL Set the return URL for a web-based template   «SetWebReturnURL('')» «SetWebReturnURL('')» «SetWebReturnURL('')»
ShowHidden Show hidden fields on the interview   «ShowHidden(Name,Address)» «ShowHidden(Child/Name,Child/DataOfBirth)» «ShowHidden()»
ShowIfHasValue Show the item only if it has a non-empty value   «ShowIfHasValue(AddressLine3)» «ShowIfHasValue(ToUpper(AddressLine3))»
StartsWith Test whether a string starts with a given string   «If(StartsWith(ProductName,'Microsoft'))»Good quality inside«End()»
StartsWithVowel Test whether a string starts with a vowel   «When(StartsWithVowel(Fruit),an,a)» «When(StartsWithVowel(Accomodation,'Hh'),an,a)»
string-length Returns the number of characters in a value   «If(string-length(AddressLine3) > 0)»
substring Extract a portion of a string   «substring(Name,5)» «substring(GetV('description'),1,string-length(GetV('name')))»
SubstringAfter Extract the substring after a given string   «SubstringAfter(Surname,'-')»
SubstringAfterLast Get the last substring using a delimiter   «SubstringAfterLast('C:\Documents\XpressDox\WordFile.docx','\')»
SubstringBefore Extract the substring before a given string   «SubstringBefore(Initials,'.')»
SubstringBeforeLast Get the substring before the last delimiter   «SubstringBeforeLast('C:\Documents\XpressDox\WordFile.docx','\')»
SuffixWith Insert a suffix if the value is not empty   «SuffixWith(FirstNames,' ')»
sum Calculate the sum of values   «FormatNumber(sum(InvoiceLine/Amount))»
Tab Add a tab to the main panel of the interview screen   «Tab(Financial Information,Capital,InterestRate,InterestDate,AmountPaid)»
TableLookup Calculate a value from a table   «TableLookup(CapitalAmount,'3001;56;0,5001;187;0,9999999;277;0')» «TableLookup(AnnualIncome,'122500;0;18,195000;21960;25,270000;40210;30,999999999;143010;40')»
TabOrientation Specify whether Tabs appear Horizontally or Vertically   «TabOrientation(Vertical)»
TemplateName Get the file name of the running template   «TemplateName()» «TemplateName('true','true')»
Today Insert the current date into the document   «Today('yyyy/MM/dd')» «Today('MMMM o yyyy')» «Today()»
ToHtml Wrap string in HTML tags   «ToHtml(Description)»
ToLower Convert to lower case   «ToLower(Name)» «ToLower(Name,1)» «ToLower(Name,2,0)» «ToLower(Name,3,2)»
ToNumber Renders a string already in numeric form into a number   «ToNumber(GetV('Pos'))»
ToSentence Convert to Sentence case   «ToSentence(Surname)»
ToTitle Convert to Title Case   «ToTitle(BookTitle)» «ToTitle(Names,'short')»
ToUpper Convert to UPPER case   «ToUpper(Name)» «ToUpper(Name,1,1)» «ToUpper(Name,2,0)» «ToUpper(Name,3,2)»
Trim Removes white space or other characters from either side of a string   «FormatNumber(Trim(Amount))» «Trim(List,',;')»
TrimEnd Trim characters from the end of a string «TrimEnd»
TrimStart Trim characters from the beginning of a string «TrimStart»
UpdateFields Indicate that the Table of Contents and Word fields must be updated   «UpdateFields(Yes)»
UpdateTableFormattingForPdf Request that table formatting is performed when saving to PDF   «UpdateTableFormattingForPdf((Amount != 0))» «UpdateTableFormattingForPdf('Yes')»
UseScript Insert the contents of a script defined in another part of the template.   «UseScript(ProductDescription)»
Value Returns the value of what is passed (specifically needed for Scripts)   «Value(&ParameterName&)»
ValueIsEmpty Tests whether a value is empty or not   «If(not(ValueIsEmpty(AddressLine1)))»«AddressLine1»«End()»
When Provide condition for including small text values (e.g. for gender or plural handling)   «When(Gender = 'M',he,she)» «When(count(Child) = 1,child,children)» «When(StartsWithVowel(Fruit),an,a)» «Fruit»
Width Set the width of the control in the interview to a fixed value   «Width(Price,6)»
WindowsLogonUser Returns the user name with which the current user logged on to Windows   «WindowsLogonUser()» «SetSavedDocumentFolder(Docs )»
WriteTimeStampToDataSet Specify whether or not to write a time stamp into the dataset   «WriteTimeStampToDataSet(Yes)»
XToRegion Convert a number in calculation-compliant format to regional settings format   «FormatNumber(XToRegion(RegionToX(UnitPrice) * RegionToX(Qty)),'','EU')»
YearsBetween Gets the number of years between two dates   «Round(YearsBetween(Today(),DateOfBirth) – 0.5)»
YearsMonthsDaysBetween Gets the number of years, months and days between two dates   «YearsMonthsDaysBetween(EndDate,StartDate)» «YearsMonthsDaysBetween(EndDate,StartDate,'M')»