List of XpressDox commands and functions by Category

All Commands and Functions listed by Category

Email

Command or Function Name Description and Examples
AddBCCAddress Add a BCC email address when assembling to an email   «AddBCCAddress()»
AddCCAddress Add a CC address when assembling to an email  «AddCCAddress()»
AddToAddress Add a “To” email address when assembling to an email  «AddToAddress()»
AttachToEmail Attach the assembled document or any other document to an email   «AttachToEmail()»
SaveAsEmail Save the assembled document as an email   «SaveAsEmail()»
SendAsEmail Save and automatically send the assembled document as an email  «SendAsEmail()»

 

Interview

Command or Function Name Description and Examples
AlignCaption Sets the alignment of the caption for specific data elements   «AlignCaption(FirstName,LastName,Top)»
AlignCaptions Sets whether captions on the interview should be aligned left, right or top   «AlignCaptions(Right)» «AlignCaptions(Left)» «AlignCaptions(Top)»
AlignErrorMessages Sets whether error messages (on the web interview) should be aligned top or bottom   «AlignErrorMessages(Top)»
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)»
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))»
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 != '')»
«Clause»
«End()»
ChooseUsingDatePicker Choose a data element value using a date picker   «ChooseUsingDatePicker(DateOpened)»
ChooseUsingTimePicker Choose a data element value using a time picker   «ChooseUsingTimePicker(AppointmentTime)»
Comment Enter a comment into the template   «Comment(Any arbitrary comments)»
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 Long Conditions in a template   «DetectLongConditions()»
DropDownPanel Present the data elements in a drop down list   «DropDownPanel(PH1,Choice1,Choice2,Choice3,Choice4)» «DropDownPanel(PH1,Soccer,Tennis,Golf,repeater=Sports/SportName)»
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)»
ExpectXSLTFormatNumbers Cause XpressDox to expect XSLT formatted numbers in data   «ExpectXSLTFormatNumbers(Yes)»
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)»
FormatNumberOnInput Format a number in the interview   «FormatNumberOnInput()»
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,www.xpressdox.com)» «Hyperlink(Description,Heading,www.xpressdox.com/)»
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)»
InhibitAutomaticRuleOnNumberFunctions Inhibit the automatic Rule commands that are generated for functions taking numeric values as input.   «InhibitAutomaticRuleOnNumberFunctions(Yes)»
InsertDataElement Performs the same function as “re-use field”   «InsertDataElement()»
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)»
MaximumRepeats Set the maximum number of repeats   «MaximumRepeats(Child,2)» «MaximumRepeats(Child,IIf((ParentName = ''),0,2))»
MultiSelect Same as DefineSetAllGroup   «MultiSelect()»
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)»
PlaceHolder A placeholder in the interview to which text can be attached  
«PlaceHolder(DummyName)»

«PlaceHolder(DummyName,Title)»
PreventRepeaterDeletion Prevent a repeater from being deleted   «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.
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'))»
RepeaterCaption Set the caption for a group of repeating data elements on the interview screen   «RepeaterCaption(Child,Children)» «RepeaterCaption(Child,^bu^@Navy@Children)»
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)»
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)»
Set Set a value in the interview   «Set()»
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)»
SetRepeaterQualifier Set the string which must appear in the interview against repeating elements   «SetRepeaterQualifier(Child,, )»
ShowHidden Show hidden fields on the interview   «ShowHidden(Name,Address)» «ShowHidden(Child/Name,Child/DataOfBirth)» «ShowHidden()»
Tab Add a tab to the main panel of the interview screen   «Tab(Financial Information,Capital,InterestRate,InterestDate,AmountPaid)»
TabOrientation Specify whether Tabs appear Horizontally or Vertically   «TabOrientation(Vertical)»
ValidateBeforeShare Validate fields before sharing an interview   «ValidateBeforeShare()»
Width Set the width of the control in the interview to a fixed value   «Width(Price,6)»
With Conditions on Set commands   «With()»

 

Templates

Command or Function Name Description and Examples
AppendPDF Append a PDF file to the assembled (PDF) document   «AppendPDF(PDFFileName)» «AppendPDF('Survey Agreement.pdf')» «AppendPDF('Survey Agreement.pdf|Non-disclosure Agreement.pdf')»
BaseTemplate Base (or overlay) this template on another template   «BaseTemplate(LetterHead)» «BaseTemplate(headings:LetterHead,Destination)»
ComeHereAfterRun Place a marker in the template where the cursor should be after the template has run.   «ComeHereAfterRun()»
DocumentBody Insert the body of the originating template into the Base Template   «DocumentBody»
IncludeCodeTemplate Include only those paragraphs which contain XpressDox merge fields   «IncludeCodeTemplate(utils:Help,Text)»
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)»
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)»
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))»
Paragraph Split the containing paragraph into two at this point.   «Paragraph()» «Paragraph('Letter Body')»
ReplaceField Replace a Merge Field in the Base Template   «ReplaceField(Addressee)»«ClientName»«ReplaceFieldEnd()» «ReplaceField(ToUpper(Addressee))»«ToSentence(ClientName)»«ReplaceFieldEnd()»
RunTemplate Run several templates together in a package, with separate interviews  «RunTemplate()»
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()»
SetCoreFileProperty Sets a core file property in the merged document   «SetCoreFileProperty('Author',WindowsLogonUser())» «SetCoreFileProperty('Subject',What_this_is_About)»
TemplateName Get the file name of the running template   «TemplateName()» «TemplateName('true','true')»
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&)»

 

Variables

Command or Function Name Description and Examples
AppendVr Append values to the end of a variable   «AppendVr('List',',')» «AppendVr('List',',',PartyName)»
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'))»
«IncrementVr('Ix')»
«End()»
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'))»
«ArrayValues('A',GetV('Ix'))»
«IncrementVr('Ix')»
«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 template’s data set, and remove the paragraph.
«CreateDataElement('ThisDataElement','Should have this value')»
Execute Execute a number of functions   «Execute(SetV('X',12),GetV('X'))» «Execute(SetV('X',12),IncrementV('X'),GetV('X'))»
GetV Get the value of a variable   «GetV('Balance')»
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)»
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')»
PrependVr Prefix values at the front of a variable   «PrependVr('List',',')» «PrependVr('List',PartyName,',')»
RemoveParagraph Remove the paragraph after the template has merged.   «RemoveParagraph()»
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')»

«ChooseFromRDBList(PartyGender,Male,Female)»
«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')»

 

Miscellaneous

Command or Function Name Description and Examples
ApplyRulesToDataset Apply Rules to the Dataset in the absence of an interview   «ApplyRulesToDataset(Yes)» «ApplyRulesToDataset(IgnoreSoftRules)»
AreYouReadyToAssembleMessage Provide a confirmation button after the user clicks Assemble   «AreYouReadyToAssembleMessage()»
Debug Debug missing or superfluous ‘end’ and ‘else’ issues   «Debug()»
ExcludeFromDataSet Exclude elements from the saved dataset   «ExcludeFromDataSet(DataElements,UserID,UserName,UserEmail,Child/Address)» «ExcludeFromDataSet(DataSources,Users,Accounts)»
InsertHyperlink Insert a hyperlink into the document   «InsertHyperlink('Our Company Web Site','www.abccompany.com.xy')» «InsertHyperlink(concat(DirectorName, ' profile'),DirectorProfileWebSite)»
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)»
MakeNoise Make one of the system sounds   «MakeNoise()» «MakeNoise('Asterisk')»
PaintInsertedText Paint Text Inserted by Fillpoints   «PaintInsertedText(Yes,Blue)» «PaintInsertedText(Yes,Blue,Paint='Yes')» «PaintInsertedText(No)» «PaintInsertedText(No,Red)»
PdfUserPassword Set a User Password when saving as PDF   «PdfUserPassword('MySecretPassword')» «PdfUserPassword(FormatDate(DateOfBirth,'yyyyMMdd'))»
PreviewHighlight Set the color to use for highlighting inserted text for the preview   «PreviewHighlight(Blue)»
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)»
RunTemplates Specify a number of templates to be run when this template is run.   «RunTemplates(CoveringLetter,Contract,Invoice,DebitOrder)»
SaveAsHtml Specify whether or not to save the merged document in HTML 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)»
SetProfileProperty Profile the assembled document for use in integrations e.g. NetDocuments and iManage  «SetProfileProperty()»
SetMultipleDocumentFilter Sets a filter applying to the Document Per Repeated Item feature   «SetMultipleDocumentFilter(ChildAge > 12)» «SetMultipleDocumentFilter(ChildAge > ../AgeFilterValue)»
UpdateTableFormattingForPdf Request that table formatting is performed when saving to PDF   «UpdateTableFormattingForPdf((Amount != 0))» «UpdateTableFormattingForPdf('Yes')»
WriteTimeStampToDataSet Specify whether or not to write a time stamp into the dataset   «WriteTimeStampToDataSet(Yes)»

 

Formatting Numbers

Command or Function Name Description and Examples
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')»
CurrencySymbol Insert the currency symbol as defined in the Regional Settings   «CurrencySymbol()»
CurrencyToCents Multiplies a currency value by 100 with minimal rounding   «CurrencyToCents(Price)»
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')»
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()»
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')»
floor Round a value down to the nearest integer   «floor(RegionToX(YearsBetween(Today(),DateOfBirth)))»
FormatNumber Format Number   «FormatNumber(Amount)» «FormatNumber(Amount,'#,0.00;(#,0.00)')» «FormatNumber(Amount,'#,0.00;(#,0.00)','FR')»
GetListItem Extract a value from a delimited list   «GetListItem(ListItem,'First,Second,Third',',')» «GetListItem(4,IP_Address,'.')» «GetListItem(GetV('element number'),PeriodicTable,',')»
Max Gets the higher of two values   «Max(HourlyRate * Hours, 1000)» «Max(Age,CutoffAge)»
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)»
NumberOrZero Converts to a number, or makes a zero   «NumberOrZero()»
NumberPhrase Format a number as words   «NumberPhrase(Price)» «NumberPhrase(Price - 100,'en-us','ToUpper')»
NumberToCurrency Render a number as currency, in words   «NumberToCurrency(Price, "Dollar", "Dollars", "cent", "cents", "", "en-uk", "Leave")»
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')»
Pesos Render a numeric amount as a number of Pesos, in Spanish words   «Pesos(Price)» «Pesos(Price,'ToUpper')»
Pounds Render a numeric amount as a number of Pounds, in words, UK English   «Pounds(Price)» «Pounds(Price,'ToUpper')»
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')»
RegionToX Convert a number in regional format to XpressDox calculation-compliant format   «(RegionToX(UnitPrice) * RegionToX(Qty))»
Round Round a value to the nearest integer   «FormatNumber(Round(Price,2))» «Round(InterestRate,3)»
sum Calculate the sum of values   «FormatNumber(sum(InvoiceLine/Amount))»
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')»
ToNumber Renders a string already in numeric form into a number   «ToNumber(GetV('Pos'))»
XToRegion Convert a number in calculation-compliant format to regional settings format   «FormatNumber(XToRegion(RegionToX(UnitPrice) * RegionToX(Qty)),'','EU')»

 

Data Sources

Command or Function Name Description and Examples
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)»
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')»
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)')»
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)»
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,_)»
SetDataSourceData Set the value of a field in a data source   «SetDataSourceData('Products',ProductID,'UnitPrice',100)»

 

Formatting Strings

Command or Function Name Description and Examples
Chr Get a character value from its integer representation   «OnExitSet(AddressLine2,AddressBlock,Value,,concat(AddressLine1,Chr(13),AddressLine2),,EvenWhenNotEmpty)»
CommasAndList Gets a natural language list from a delimited list.   «CommasAndList(GetV('JoinedValues'),'/',', ',' and ')» «CommasAndList(GetV('JoinedValues'),'/',', ',' en ')»
concat Concat   «SetV('FullName',concat(FirstNames,' ',Surname))» «SetV('Possessive',concat(Noun,'!'s'))»
CountOf Get the number of occurrences of one string inside another   «CountOf('.',Name)» «If(CountOf('.',Name) = 0)»The name contains no initials.«End()»
CultureName Get the active culture name   «CultureName('Input')» «CultureName('Output')»
EscapeForXml Escape a string for use in XML   «EscapeForXml(Text)»
ExtractInitials Extract Initials from name   «ExtractInitials(Fullnames,'.')» «ExtractInitials(Fullnames,'')»
Format Format a string according to a pattern   «CreateDataElement(Format('Child[{0}]/Name',position()),GetV('Name'))»
Gender Return a value depending on a party’s gender  
«ChooseFromRDBList(PartyGender,Male,Female)»
«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')»

«ChooseUsingCheckBox(OnlyOneParty,Y,N,N)»
«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')»
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()))»
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_')»
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))»
InsertFormattedText Insert text captured as long text   «InsertFormattedText(Address)» «InsertFormattedText(Address,Paragraph)» «InsertFormattedText(Address,Destination)»
InsertInto Insert a string inside a value   «InsertInto(Name,3,'X.')»
InputCulture Return the language and number format «InputCulture»
InsertUnformattedLongText Inserts text captured as “long” text but with no line breaks or formatting   «InsertUnformattedLongText(Address,', ')»
Left Extract the left-most a portion of a string   «Left(Name,5)»
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'))»
Lookup Look up the value of a key in a name/value list   «Lookup(Language,'en-gb:colour;en-us:color')»
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')»
PrefixWith Insert a prefix if the value is not empty   «PrefixWith(AddressLine2,' ')»
RenderAsNumeric Force a string to be a valid numeric value   «FormatNumber(RenderAsNumeric(Amount) * 1.10)»
Replace Replace all occurrences of a specified string with another   «Replace(EnglishSentence,'grey','gray')» «Replace(Replace(Replace(EnglishSentence,'grey','gray'),'colour','color'),'favourite','favorite')»
Right Extract the right-most a portion of a string   «Right(Name,5)»
SetEmptyMarker Set the value of the Empty Marker   «SetEmptyMarker('{^}')» «SetEmptyMarker('{^}',LastName,FirstNames,IDNumber)» «SetEmptyMarker('',LastName,FirstNames,IDNumber)» «SetEmptyMarker('{~cyan~^~}')» «SetEmptyMarker('{~red~^~}',LastName,FirstNames,IDNumber)»
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,' ')»
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)»
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()»
WindowsLogonUser Returns the user name with which the current user logged on to Windows   «WindowsLogonUser()» «SetSavedDocumentFolder(Docs )»

 

Conditional

Command or Function Name Description and Examples
CompareStrings Compare two strings   «If(CompareStrings(A,B) < 0)»
«If(CompareStrings(A,B) > 0)»

«If(CompareStrings(A,B,'fr-FR') > 0)»
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])»
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()»
FileExists Test whether file exists   «If(FileExists(FileName))»do something«End()» «If(FileExists(concat(Folder,"\",FileName)))»do something«End()»
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')»
GT Greater than   «IIf(GT(First,Second),'First is greater than Second','First is not greater than Second')»
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')»
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 Is this a valid XML element name   «IsXmlElementName()»
IsXpathExpression Is this a valid XPATH expression   «IsXpathExpression()»
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')»
LT Less than   «IIf(LT(First,Second),'First is less than Second','First is not less than Second')»
MultiEquals Compare a value against the contents of a list constructed by DefineSetAllGroup   «MultiEquals()»
RemoveColumnIf Remove a Word table column   «RemoveColumnIf(ColumnCount < 3)» «RemoveColumnIf(ColumnCount < 3,1)» «RemoveColumnIf(ColumnCount < 3,Empty)»
RemoveRowIf Remove a Word table row   «RemoveRowIf(AgeOfChild < 18)»
RepeaterPosition Get the position during interview processing   «RepeaterPosition(Child)» «RepeaterPosition(../Child)»
Select A Select/Case/Default block   «Select(Testing things)»«Case(Test = 1)»Test is 1«End()»«Case(Test = 2)»Test is 2«End()»«Default()»Test is «Test»«End()»«End(Select)» «Select(Testing things)»
«Case(Test = 1)»Test is 1
«End()»
«Case(Test = 2)»
Test is 2
«End()»
«Default()»
Test is «Test»
«End()»
«End(Select)»
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)»
«AddressLine3»
«End()»
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»

 

Object Execution

Command or Function Name Description and Examples
CreateObject Create a reference to a COM or .NET object   «CreateObject('Excel','Excel.Application')» «CreateObject('Account','o2Smart.PracticeManagement.Account, o2Smart.PracticeManagement','ctor',AccountNumber)»
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')»
InvokeMethod Invoke a method on a COM or .NET object   «InvokeMethod('Excel.Application:Quit')» «InvokeMethod('msword:ChangeFileOpenDirectory',concat('C:\Users\',WindowsLogonUser(),'\Documents\XpressDox'))»
SetProperty Set the value of a property of a COM or .NET object   «SetProperty('Excel.Application:ActiveCell.FormulaR1C1',Today('yyyy-MM-dd'))»

 

Formatting Dates

Command or Function Name Description and Examples
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')»
FormatDate Format a field as date and/or time   «FormatDate(DateOfBirth,'yyyy/MM/dd','en')» «FormatDate(SignatureDate,'o MMMM yyyy')»
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')»
IncrementDate Increment a date   «IncrementDate(DateOfBirth,1,'y')» «IncrementDate(Today(),5,'d')» «IncrementDate(Today(),5,'w')»
LastDayInMonth Get the last day in a month   «FormatDate(LastDayInMonth(Today()),'dd MMMM yyyy')»
MonthsBetween Gets the number of months between two dates   «MonthsBetween(Today(),FirstOfJan)»
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()»
SecondsBetween Gets the number of seconds between two date/times   «SecondsBetween('13:00:00','12:00:00')» «SecondsBetween(EndTime,StartTime)»
Today Insert the current date into the document   «Today('yyyy/MM/dd')» «Today('MMMM o yyyy')» «Today()»
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')»

 

Web

Command or Function Name Description and Examples
EnableWebLocalSave Enable Save Local on the Web   «EnableWebLocalSave(Yes)»
EnableWebPreview Enable the Preview option on Integrated Web interview   «EnableWebPreview(Yes)» «EnableWebPreview(No)»
SendWebEmail Set all the properties to send an email from a Web based template   «SendWebEmail(ToAddress,'','','noreply@email.com','Documents attached for your info','emailbody.html','false','true','false')»
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,http://www.mydomain.com/SaveInterviewData.php?interviewID=76575&type=privateCompany)»
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('www.MyLawFirm.com/DocumentCompleted.aspx')» «SetWebReturnURL('www.MyLawFirm.com/DocumentCompleted.php?userID=131234&activity=LoanApplication')» «SetWebReturnURL('www.MyLawFirm.com/DocumentCompleted.php?userID=&activity=LoanApplication')»

eSignatures

Command or Function Name Description and Examples
ESignAddCC Add a CC to the e-signing process   «ESignAddCC(MacroName)»
ESignAddSignatory Add a signatory to the e-signing process   «ESignAddSignatory()»
ESignAutomaticSend Send the documents automatically for e-signing   «ESignAutomaticSend()»
ESignDateSignedHere Insert the date signed«ESignDateSignedHere()»
ESignEmail Set the subject and email address for emails sent for e-signing    «ESignEmail()»
ESignHere Insert a signature point   «ESignHere()»
ESignInitialHere Insert an initial point «ESignInitialHere()»

 

Repeating

Command or Function Name Description and Examples
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()»
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()»
Ordinal Ordinal (i.e. First, Second,…) inside ForEach   «Ordinal()» «Ordinal(,Eerste,Tweede,Derde,Vierde,Fyfde,Sesde,Sewende,Agste en verdere)»
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)»
RepeaterQuestion Insert a Repeater question. This is also available from a button on the ribbon (Low Code)   «RepeaterQuestion()»
RepeatWhile Repeat while a condition is true   «SetV('This','XXThat')»«RepeatWhile(GetV('This') != 'That')»Variable 'This' is «GetV('This')» «SetV('This',substring(GetV('This'),2))»«End()»

 

Post Merge

Command or Function Name Description and Examples
RunWordMacro Run a Word macro after the template has been merged.   «RunWordMacro(MacroName)» «RunWordMacro(FirstMacro,SecondMacro)»
SaveAsPdf Specify whether or not to save the merged document in PDF format.
SaveDataset Specify whether or not to save the dataset.   «SaveDataset(No)»
SetCustomDocumentProperty Sets a custom document property in the merged document.   «SetCustomDocumentProperty(MadeByXpressDox,Y)» «SetCustomDocumentProperty(XDFsProf-custom1,CUSTOM1VALUE1)»
SetDocumentName Set the document name (referenced as ).   «SetDocumentName(CoveringLetter)»
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)»
UpdateFields Indicate that the Table of Contents and Word fields must be updated   «UpdateFields(Yes)»