<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>XpressDox Document Assembly &#187; User Reference</title>
	<atom:link href="http://www.xpressdox.com/category/help/reference/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.xpressdox.com</link>
	<description>Powerful and affordable document assembly</description>
	<lastBuildDate>Thu, 02 Feb 2012 15:03:38 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>The SetInterviewDataOnly Command</title>
		<link>http://www.xpressdox.com/help/reference/setinterviewdataonly/</link>
		<comments>http://www.xpressdox.com/help/reference/setinterviewdataonly/#comments</comments>
		<pubDate>Tue, 25 Oct 2011 09:02:53 +0000</pubDate>
		<dc:creator>Peter</dc:creator>
				<category><![CDATA[Help]]></category>
		<category><![CDATA[User Reference]]></category>
		<category><![CDATA[SetInterviewDataOnly]]></category>

		<guid isPermaLink="false">http://www.xpressdox.com/?p=4799</guid>
		<description><![CDATA[If the sole purpose of a template is to construct an interview, but the document merged from that template is not required, then the SetInterviewDataOnly command can be included in the template, and the merged document will be ignored. A typical usage of this would be in conjunction with the MergeTemplate function, or the MergePDFForm [...]]]></description>
			<content:encoded><![CDATA[<p><a class="post_image_link" href="http://www.xpressdox.com/help/reference/setinterviewdataonly/" title="Permanent link to The SetInterviewDataOnly Command"><img class="post_image alignnone" src="http://www.xpressdox.com/wordpress/wp-content/assets/images/advanced.jpg" width="177" height="16" alt="Post image for The SetInterviewDataOnly Command" /></a>
</p><p>If the sole purpose of a template is to construct an interview, but the document merged from that template is not required, then the SetInterviewDataOnly command can be included in the template, and the merged document will be ignored.</p>
<p>A typical usage of this would be in conjunction with the <a title="The MergeTemplate Function" href="http://www.xpressdox.com/help/reference/mergetemplate/" target="_self">MergeTemplate</a> function, or the <a title="Filling PDF Forms" href="http://www.xpressdox.com/help/reference/filling-pdf-forms/" target="_self">MergePDFForm</a> function, where the template is a master template and based on the values of data input by the user, different templates are merged using the <em>MergeTemplate </em>(or <em>MergePdfForm</em>) function.</p>
<p>Example:</p>
<blockquote><p><code>&lt;&lt;SetInterviewDataOnly(Yes)&gt;&gt;</code></p></blockquote>


<p>Related posts:<ul><li><a href='http://www.xpressdox.com/help/reference/mergetemplate/' rel='bookmark' title='The MergeTemplate function'>The MergeTemplate function</a></li>
<li><a href='http://www.xpressdox.com/help/reference/filling-pdf-forms/' rel='bookmark' title='Filling PDF Forms'>Filling PDF Forms</a></li>
<li><a href='http://www.xpressdox.com/help/reference/setsaveddocversioning/' rel='bookmark' title='The SetSavedDocumentNameVersioning Command'>The SetSavedDocumentNameVersioning Command</a></li>
<li><a href='http://www.xpressdox.com/help/reference/linktodatasource/' rel='bookmark' title='The LinkToDataSource Command'>The LinkToDataSource Command</a></li>
<li><a href='http://www.xpressdox.com/help/cookbook/master-template/' rel='bookmark' title='Select templates using a master template'>Select templates using a master template</a></li>
</ul></p>]]></content:encoded>
			<wfw:commentRss>http://www.xpressdox.com/help/reference/setinterviewdataonly/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Set Web Information for a Template</title>
		<link>http://www.xpressdox.com/help/reference/set-web-information/</link>
		<comments>http://www.xpressdox.com/help/reference/set-web-information/#comments</comments>
		<pubDate>Tue, 25 Oct 2011 08:30:14 +0000</pubDate>
		<dc:creator>Peter</dc:creator>
				<category><![CDATA[Help]]></category>
		<category><![CDATA[User Reference]]></category>
		<category><![CDATA[SendWebMail]]></category>
		<category><![CDATA[SetWebButtonText]]></category>
		<category><![CDATA[SetWebReturnURL]]></category>

		<guid isPermaLink="false">http://www.xpressdox.com/?p=4795</guid>
		<description><![CDATA[These commands will enable the template author to control the workflow around templates which are uploaded and run on an XpressDox server. SendWebMail You can provide as many of these commands as necessary. The command can be used to send an email attaching either (or none of) the merged Word document, the merged PDF document [...]]]></description>
			<content:encoded><![CDATA[<p><a class="post_image_link" href="http://www.xpressdox.com/help/reference/set-web-information/" title="Permanent link to Set Web Information for a Template"><img class="post_image alignnone" src="http://www.xpressdox.com/wordpress/wp-content/assets/images/advanced.jpg" width="177" height="16" alt="Post image for Set Web Information for a Template" /></a>
</p><p>These commands will enable the template author to control the workflow around templates which are uploaded and run on an XpressDox server.</p>
<h3>SendWebMail</h3>
<p>You can provide as many of these commands as necessary. The command can be used to send an email attaching either (or none of) the merged Word document, the merged PDF document and/or the data set captured in the interview.</p>
<h3>SetWebButtonText</h3>
<p>This provides an alternative text on the button which by default has the text &#8220;Assemble Document&#8221; on it. Depending on the usage which the template is designed for, it might make sense to change this text to something like &#8220;Submit&#8221;, e.g.</p>
<blockquote><p><code>&lt;&lt;SetWebButtonText(Submit)&gt;&gt;</code></p></blockquote>
<h3>SetWebReturnURL</h3>
<p>Enables the return URL to be provided so that when the interview is complete and the document assembled, this URL is activated.</p>
<p>An example would be:</p>
<blockquote><p><code>&lt;&lt;SetWebReturnURL('www.MyLawFirm.com/DocumentCompleted.php?userID=&lt;UserId&gt;&amp;activity=LoanApplication')&gt;&gt;</code></p></blockquote>


<p>Related posts:<ul><li><a href='http://www.xpressdox.com/help/cookbook/sql-server-data-source/' rel='bookmark' title='Use a SQL Server Data Source to include Customer information on a template'>Use a SQL Server Data Source to include Customer information on a template</a></li>
<li><a href='http://www.xpressdox.com/help/cookbook/data-source-on-all-templates/' rel='bookmark' title='Make data source information available on all templates'>Make data source information available on all templates</a></li>
<li><a href='http://www.xpressdox.com/help/cookbook/master-template/' rel='bookmark' title='Select templates using a master template'>Select templates using a master template</a></li>
<li><a href='http://www.xpressdox.com/help/cookbook/one-template-many-datasets/' rel='bookmark' title='Run a template for a number of data sets, and print the merged documents'>Run a template for a number of data sets, and print the merged documents</a></li>
</ul></p>]]></content:encoded>
			<wfw:commentRss>http://www.xpressdox.com/help/reference/set-web-information/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The ShowIfHasValue Function</title>
		<link>http://www.xpressdox.com/help/reference/showifhasvalue/</link>
		<comments>http://www.xpressdox.com/help/reference/showifhasvalue/#comments</comments>
		<pubDate>Wed, 27 Jul 2011 13:56:17 +0000</pubDate>
		<dc:creator>Peter</dc:creator>
				<category><![CDATA[User Reference]]></category>
		<category><![CDATA[ShowIfHasValue]]></category>

		<guid isPermaLink="false">http://www.xpressdox.com/?p=4692</guid>
		<description><![CDATA[This function is used mainly to get rid of empty paragraphs in a document. &#60;&#60;ShowIfHasValue(AddressLine3)&#62;&#62; will insert the value of the AddressLine3 data element only if that data element has a non-empty value.  If the value IS empty, then the entire paragraph containing the field is removed. Note that this behaviour applies even when there [...]]]></description>
			<content:encoded><![CDATA[<p><a class="post_image_link" href="http://www.xpressdox.com/help/reference/showifhasvalue/" title="Permanent link to The ShowIfHasValue Function"><img class="post_image alignnone" src="http://www.xpressdox.com/wordpress/wp-content/assets/images/intermediate.jpg" width="177" height="16" alt="Post image for The ShowIfHasValue Function" /></a>
</p><p>This function is used mainly to get rid of empty paragraphs in a document.</p>
<p><code>&lt;&lt;ShowIfHasValue(AddressLine3)&gt;&gt;</code></p>
<p>will insert the value of the <em>AddressLine3</em> data element only if that data element has a non-empty value.  If the value IS empty, then the entire paragraph containing the field is removed.</p>
<p class="note">Note that this behaviour applies even when there is other text in the paragraph, and so the function should be used bearing that in mind.</p>
<p>Before this function was introduced, the only other way to achieve the same result would have been to code the following:</p>
<blockquote><p><code>&lt;&lt;If(AddressLine3 != '')&gt;&gt;<br />
&lt;&lt;AddressLine3&gt;&gt;<br />
&lt;&lt;End()&gt;&gt;</code></p></blockquote>


<p>Related posts:<ul><li><a href='http://www.xpressdox.com/help/cookbook/suppressing-empty-lines/' rel='bookmark' title='Suppressing empty lines'>Suppressing empty lines</a></li>
<li><a href='http://www.xpressdox.com/help/reference/trim-function/' rel='bookmark' title='The Trim Function'>The Trim Function</a></li>
<li><a href='http://www.xpressdox.com/help/reference/getlistitem/' rel='bookmark' title='The GetListItem Function'>The GetListItem Function</a></li>
<li><a href='http://www.xpressdox.com/help/new/version-3-4-1/' rel='bookmark' title='Version 3.4.1 (2011-01-22)'>Version 3.4.1 (2011-01-22)</a></li>
<li><a href='http://www.xpressdox.com/help/reference/renderasnumericn/' rel='bookmark' title='The RenderAsNumeric function'>The RenderAsNumeric function</a></li>
</ul></p>]]></content:encoded>
			<wfw:commentRss>http://www.xpressdox.com/help/reference/showifhasvalue/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>The PlaceHolder Command</title>
		<link>http://www.xpressdox.com/help/reference/placeholder/</link>
		<comments>http://www.xpressdox.com/help/reference/placeholder/#comments</comments>
		<pubDate>Wed, 27 Jul 2011 13:55:53 +0000</pubDate>
		<dc:creator>Peter</dc:creator>
				<category><![CDATA[User Reference]]></category>
		<category><![CDATA[PlaceHolder]]></category>

		<guid isPermaLink="false">http://www.xpressdox.com/?p=4696</guid>
		<description><![CDATA[&#60;&#60;PlaceHolder(DummyDataElement)&#62;&#62; will create an invisible control on the interview, but will enable Headings or Footings to be attached to that control. This would be used to include text into an interview screen, and in particular to include text which must appear or disappear depending on certain conditions. For example: &#60;&#60;ChooseFromRDBList(PartyType,Company,Individual)&#62;&#62; &#60;&#60;If(PartyType = 'Company')&#62;&#62; &#60;PlaceHolder(Dummy1)&#62;&#62;&#60;&#60;Heading(Dummy1,Enter the [...]]]></description>
			<content:encoded><![CDATA[<p><a class="post_image_link" href="http://www.xpressdox.com/help/reference/placeholder/" title="Permanent link to The PlaceHolder Command"><img class="post_image alignnone" src="http://www.xpressdox.com/wordpress/wp-content/assets/images/advanced.jpg" width="177" height="16" alt="Post image for The PlaceHolder Command" /></a>
</p><p>&lt;&lt;PlaceHolder(DummyDataElement)&gt;&gt; will create an invisible control on the interview, but will enable Headings or Footings to be attached to that control.</p>
<p>This would be used to include text into an interview screen, and in particular to include text which must appear or disappear depending on certain conditions.</p>
<p>For example:</p>
<blockquote><p><code>&lt;&lt;ChooseFromRDBList(PartyType,Company,Individual)&gt;&gt;<br />
&lt;&lt;If(PartyType = 'Company')&gt;&gt;<br />
&lt;PlaceHolder(Dummy1)&gt;&gt;&lt;&lt;Heading(Dummy1,Enter the Company Registration Number)&gt;&gt;<br />
&lt;&lt;Else()&gt;&gt;<br />
&lt;&lt;PlaceHolder(Dummy2)&gt;&gt;&lt;&lt;Heading(Dummy2,Enter the Passport Number or Social Security Number)&gt;&gt;&lt;&lt;<br />
End()&gt;&gt;</code></p>
<p>The reference number is: <code>&lt;&lt;Reference_Number&gt;&gt;</code></p></blockquote>
<p>When the PartyType is &#8216;Company&#8217; then the heading &#8220;Enter the Company Registration Number&#8221; will appear above the Reference_Number in the interview, otherwise &#8220;Enter the Passport Number or Social Security Number&#8221; will appear there.</p>
<p class="note">Note that the data elements Dummy1 and Dummy2 in this example are named like that because they will not form part of the captured data set, and are not available for use in any other part of the template or merged document.<br />
Each &lt;&lt;PlaceHolder&gt;&gt; command will need its own unique (dummy) data element name.</p>
<p class="note">Typically, the <em>PlaceHolder </em>command would be defined inside a <a title="The Define Command" href="http://www.xpressdox.com/help/reference/define-command/" target="_self">Define command</a>, as the <em>PlaceHolder </em>command is never used on its own but always in conjunction with <a title="Layout the interview form using headings and footings" href="http://www.xpressdox.com/help/reference/layout-using-headings/" target="_self">Heading</a> and/or <a title="Layout the interview form using headings and footings" href="http://www.xpressdox.com/help/reference/layout-using-headings/" target="_self">Footing</a> and perhaps <a title="The Hyperlink Command" href="http://www.xpressdox.com/help/reference/hyperlink/" target="_self">Hyperlink</a>.</p>


<p>Related posts:<ul><li><a href='http://www.xpressdox.com/help/reference/hyperlink/' rel='bookmark' title='The Hyperlink Command'>The Hyperlink Command</a></li>
<li><a href='http://www.xpressdox.com/help/new/version-3-9-3/' rel='bookmark' title='Version 3.9.3 (2011-07-27)'>Version 3.9.3 (2011-07-27)</a></li>
<li><a href='http://www.xpressdox.com/help/reference/layout-using-headings/' rel='bookmark' title='Layout the interview form using headings and footings'>Layout the interview form using headings and footings</a></li>
<li><a href='http://www.xpressdox.com/help/reference/rule/' rel='bookmark' title='The Rule Command'>The Rule Command</a></li>
<li><a href='http://www.xpressdox.com/help/reference/define-command/' rel='bookmark' title='The Define Command'>The Define Command</a></li>
</ul></p>]]></content:encoded>
			<wfw:commentRss>http://www.xpressdox.com/help/reference/placeholder/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The ChooseFromDataSource Command</title>
		<link>http://www.xpressdox.com/help/reference/choosefromdatasource/</link>
		<comments>http://www.xpressdox.com/help/reference/choosefromdatasource/#comments</comments>
		<pubDate>Thu, 07 Jul 2011 08:50:49 +0000</pubDate>
		<dc:creator>Peter</dc:creator>
				<category><![CDATA[User Reference]]></category>

		<guid isPermaLink="false">http://www.xpressdox.com/?p=4661</guid>
		<description><![CDATA[The template author will use this command to provide a way for the user of a template to choose data from a Data Source and those data can then be inserted into the template. Simple Form The simplest form of the command is shown in this example: &#60;&#60;ChooseFromDataSource(Contacts,Select the contact or type in the Contact [...]]]></description>
			<content:encoded><![CDATA[<p></p><p>The template author will use this command to provide a way for the user of a template to choose data from a <a title="Configuring data sources" href="http://www.xpressdox.com/help/reference/configuring-data-sources/" target="_self">Data Source</a> and those data can then be inserted into the template.</p>
<h3>Simple Form</h3>
<p>The simplest form of the command is shown in this example:</p>
<p><code>&lt;&lt;ChooseFromDataSource(Contacts,Select the contact or type in the Contact ID if you know it)&gt;&gt;</code></p>
<p>The first parameter is the data source name, and the second is the caption that will be displayed next to the control in the interview.</p>
<p>The control in the interview has a text area and also a button.  If the user presses the button, then the data source search form is presented, and they then can search for the data that they require.</p>
<p>If the user knows the value of the Id for that data source (usually a code like an account number or in this example a contact Id), then they can type that into the text area, and the data will be retrieved as soon as the focus moves out of that text area &#8211; for example if the user presses the Tab key.</p>
<h3>Refresh and Save Options</h3>
<p>Another form of the command is</p>
<p><code>&lt;&lt;ChooseFromDataSource(Contacts,Select the contact or type in the Contact ID if you know it,RefreshSave)&gt;&gt;</code></p>
<p>The &#8220;RefreshSave&#8221; option means that if the user changes any of the data which was retrieved from the data source, then those changes will be written back to the data source.  A full explanation of the <em>RefreshSave </em>parameter is given in <a title="Control how the user can change data source data" href="http://www.xpressdox.com/help/cookbook/control-data-changes/" target="_self">Control how the user can change data source data</a>.</p>
<h3>Restrict the range of the search</h3>
<p>Suppose you want the user to be able to select only Customers from the Contacts data source. Assuming the data source has a column called &#8220;ContactType&#8221;, the command would look something like:</p>
<p><code>&lt;&lt;ChooseFromDataSource(Contacts,Select the contact or type in the Contact ID if you know it,RefreshSave,Range=ContactType='CUST')&gt;&gt;</code></p>
<h3>Use variable information in the Range</h3>
<p>It might be that the contact type is actually in a data element which has already been populated (it might have been captured by the user in the interview, or included using an <em>IncludeDataSourceData </em>command, or one of many different ways of including data in the data set).  Suppose the contact type is in a data element called <em>ContactType </em>- then it can be used in the Range as follows:</p>
<p><code>&lt;&lt;ChooseFromDataSource(Contacts,Select the contact or type in the Contact ID if you know it,RefreshSave,Range=ContactType='&lt;ContactType&gt;')&gt;&gt;</code></p>
<h3>Manage the button</h3>
<p>The last parameter to the command enables the template author to either:</p>
<ol>
<li>Insist that the user use the search button, in other words they can&#8217;t type in any arbitrary ID and have the data source retrieve it:<br />
<code>&lt;&lt;ChooseFromDataSource(Contacts,Select the contact or type in the Contact ID if you know it,RefreshSave,Range=ContactType='CUST',RequireSearch)&gt;&gt;</code></li>
<li>Disallow the user from using the search button &#8211; i.e. they must know the ID of the data that they want:<br />
<code>&lt;&lt;ChooseFromDataSource(Contacts,Select the contact or type in the Contact ID if you know it,RefreshSave,,DisallowSearch)&gt;&gt;</code><br />
In effect, this is the same as using the <a title="The LinkToDataSource Command" href="http://www.xpressdox.com/help/reference/linktodatasource/" target="_self">LinkToDataSource</a> command with a normal text box for the control, e.g.<br />
<code>&lt;&lt;CaptureDataElement(ContactId)&gt;&gt;&lt;&lt;LinkToDataSource(ContactId,Contacts)&gt;&gt;</code></li>
<li>The third option is &#8220;AllowSearch&#8221;, but that is the default and so can be left out.</li>
</ol>


<p>Related posts:<ul><li><a href='http://www.xpressdox.com/help/cookbook/working-linktodatasource-1/' rel='bookmark' title='Working with LinkToDataSource'>Working with LinkToDataSource</a></li>
<li><a href='http://www.xpressdox.com/help/reference/other-advanced-features/' rel='bookmark' title='Getting data from data sources into a template'>Getting data from data sources into a template</a></li>
<li><a href='http://www.xpressdox.com/help/reference/linktodatasource/' rel='bookmark' title='The LinkToDataSource Command'>The LinkToDataSource Command</a></li>
<li><a href='http://www.xpressdox.com/help/cookbook/command-editor/' rel='bookmark' title='The Command Editor'>The Command Editor</a></li>
<li><a href='http://www.xpressdox.com/help/reference/interviewiswizard/' rel='bookmark' title='The InterviewIsWizard Command'>The InterviewIsWizard Command</a></li>
</ul></p>]]></content:encoded>
			<wfw:commentRss>http://www.xpressdox.com/help/reference/choosefromdatasource/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The OptimizeParsing Command</title>
		<link>http://www.xpressdox.com/help/reference/optimizeparsing/</link>
		<comments>http://www.xpressdox.com/help/reference/optimizeparsing/#comments</comments>
		<pubDate>Tue, 05 Jul 2011 14:20:43 +0000</pubDate>
		<dc:creator>Peter</dc:creator>
				<category><![CDATA[User Reference]]></category>
		<category><![CDATA[OptimizeParsing]]></category>

		<guid isPermaLink="false">http://www.xpressdox.com/?p=4596</guid>
		<description><![CDATA[During the running of a template, XpressDox creates a number of structures. The most important one is an XSLT Style Sheet, which is used to drive the engine that merges the data into the template to form the merged document as an end result. The second structure is a schema, which is used to assemble [...]]]></description>
			<content:encoded><![CDATA[<p><a class="post_image_link" href="http://www.xpressdox.com/help/reference/optimizeparsing/" title="Permanent link to The OptimizeParsing Command"><img class="post_image alignnone" src="http://www.xpressdox.com/wordpress/wp-content/assets/images/advanced.jpg" width="177" height="16" alt="Post image for The OptimizeParsing Command" /></a>
</p><p>During the running of a template, XpressDox creates a number of structures.</p>
<p>The most important one is an XSLT Style Sheet, which is used to drive the engine that merges the data into the template to form the merged document as an end result.</p>
<p>The second structure is a <em>schema</em>, which is used to assemble the interview.  This schema is used by the desktop and also by the web versions of XpressDox in constructing the interview(s).</p>
<p>Now, these two structures are generated entirely from the template, and once they are constructed, XpressDox actually has no further need for the template itself.  So, what XpressDox does now is to save those two structures (as well as another one containing script definitions) into the file system in a place near where the template resides.  Then, on second and subsequent runs of the template, the template itself is ignored and only the saved style sheet and schema are used.  Depending on the size, and to a certain extent the complexity (meaning depth of nesting of <em>If </em>and <em>ForEach </em>commands), this can lead to a significant reduction in elapsed time between selecting the template and being presented with an interview.</p>
<p>This feature is the <em>OptimizeParsing </em>feature, and all of it happens automatically and behind the scenes, and so there is no action needed on the part of the template author to enable this feature.</p>
<p>There are at least some situations where this feature might not be desired, when the template is encrypted.  It might be that the reason for encrypting would become obvious if anyone were to find and read the style sheet which is created.  It is up to the template author to decide whether this is a risk or not (the password itself is stored in the style sheet, but in encrypted form, so that is not a risk).</p>


<p>Related posts:<ul><li><a href='http://www.xpressdox.com/help/cookbook/xpressdox-artefacts/' rel='bookmark' title='Understanding XpressDox Artefacts'>Understanding XpressDox Artefacts</a></li>
<li><a href='http://www.xpressdox.com/help/new/version-3-9-0/' rel='bookmark' title='Version 3.9.0 (2011-07-06)'>Version 3.9.0 (2011-07-06)</a></li>
<li><a href='http://www.xpressdox.com/help/reference/runtemplates/' rel='bookmark' title='The RunTemplates Command'>The RunTemplates Command</a></li>
<li><a href='http://www.xpressdox.com/help/cookbook/encrypt-template/' rel='bookmark' title='Encrypt a template'>Encrypt a template</a></li>
<li><a href='http://www.xpressdox.com/help/reference/choosefromdatasource/' rel='bookmark' title='The ChooseFromDataSource Command'>The ChooseFromDataSource Command</a></li>
</ul></p>]]></content:encoded>
			<wfw:commentRss>http://www.xpressdox.com/help/reference/optimizeparsing/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The Hyperlink Command</title>
		<link>http://www.xpressdox.com/help/reference/hyperlink/</link>
		<comments>http://www.xpressdox.com/help/reference/hyperlink/#comments</comments>
		<pubDate>Tue, 05 Jul 2011 14:20:15 +0000</pubDate>
		<dc:creator>Peter</dc:creator>
				<category><![CDATA[User Reference]]></category>
		<category><![CDATA[Hyperlink]]></category>

		<guid isPermaLink="false">http://www.xpressdox.com/?p=4609</guid>
		<description><![CDATA[The Hyperlink command will attach a hyperlink to a heading or footing in the XpressDox interview.  When the user clicks on the heading or footing, then the hyperlink will be launched. An example would be: &#60;&#60;Hyperlink(Description,Heading,www.mydomain.com/help-with-description)&#62;&#62; Variable information (sourced from data elements in the data set) can be inserted into the hyperlink URL at the [...]]]></description>
			<content:encoded><![CDATA[<p><a class="post_image_link" href="http://www.xpressdox.com/help/reference/hyperlink/" title="Permanent link to The Hyperlink Command"><img class="post_image alignnone" src="http://www.xpressdox.com/wordpress/wp-content/assets/images/advanced.jpg" width="177" height="16" alt="Post image for The Hyperlink Command" /></a>
</p><p>The <em>Hyperlink </em>command will attach a hyperlink to a heading or footing in the XpressDox interview.  When the user clicks on the heading or footing, then the hyperlink will be launched.</p>
<p>An example would be:</p>
<blockquote><p><code>&lt;&lt;Hyperlink(Description,Heading,www.mydomain.com/help-with-description)&gt;&gt;</code></p></blockquote>
<p>Variable information (sourced from data elements in the data set) can be inserted into the hyperlink URL at the time the user clicks it.  This variable information is specified by including the data element name(s) inside single angle brackets, like this:</p>
<blockquote><p><code>&lt;&lt;Hyperlink(Description,Heading,www.mydomain.com/help-with-&lt;HelpType&gt;)&gt;&gt;</code></p></blockquote>
<p>The <em>Hyperlink </em>command needs to refer to a data element (in these examples this is the data element called <em>Description</em>) which has a <em>Heading </em>(or <em>Footing</em>) command specified for it, and that Heading or Footing should be styled by the template author to look like a hyperlink, i.e. underlined and some shade of blue.  For example:</p>
<blockquote><p><code>&lt;&lt;Heading(Description,|^u^@Navy@Click here to open a web page which has information on how to enter a description ...)&gt;&gt;<br />
&lt;&lt;Hyperlink(Description,Heading,www.mydomain.com/help-with-description)&gt;&gt;<br />
</code></p></blockquote>
<p>The <em>Description </em>data element can be defined in full using the <em>Define </em>command, which would look something like this:</p>
<blockquote><p><code>&lt;&lt;Define(Description,Enter the Description,|^u^@MediumBlue@Click here to open a web page which has information on how to enter a description,,,,,,,,,Heading;www.mydomain.com/help-with-description)?&gt;&gt;</code></p></blockquote>


<p>Related posts:<ul><li><a href='http://www.xpressdox.com/help/reference/placeholder/' rel='bookmark' title='The PlaceHolder Command'>The PlaceHolder Command</a></li>
<li><a href='http://www.xpressdox.com/help/reference/define-command/' rel='bookmark' title='The Define Command'>The Define Command</a></li>
<li><a href='http://www.xpressdox.com/help/new/version-3-9-0/' rel='bookmark' title='Version 3.9.0 (2011-07-06)'>Version 3.9.0 (2011-07-06)</a></li>
<li><a href='http://www.xpressdox.com/help/reference/layout-using-headings/' rel='bookmark' title='Layout the interview form using headings and footings'>Layout the interview form using headings and footings</a></li>
<li><a href='http://www.xpressdox.com/help/cookbook/command-editor/' rel='bookmark' title='The Command Editor'>The Command Editor</a></li>
</ul></p>]]></content:encoded>
			<wfw:commentRss>http://www.xpressdox.com/help/reference/hyperlink/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The LinkToDataSource Command</title>
		<link>http://www.xpressdox.com/help/reference/linktodatasource/</link>
		<comments>http://www.xpressdox.com/help/reference/linktodatasource/#comments</comments>
		<pubDate>Tue, 05 Jul 2011 14:19:53 +0000</pubDate>
		<dc:creator>Peter</dc:creator>
				<category><![CDATA[User Reference]]></category>
		<category><![CDATA[LinkToDataSource]]></category>

		<guid isPermaLink="false">http://www.xpressdox.com/?p=4583</guid>
		<description><![CDATA[LinkToDataSource links any control on the interview to a data source (a control is what the user uses to enter data, such as a straight forward text box, or a checkbox, or a dropdown, etc.).  It means that when the focus moves off that control, a call to the data source is made, to retrieve [...]]]></description>
			<content:encoded><![CDATA[<p><a class="post_image_link" href="http://www.xpressdox.com/help/reference/linktodatasource/" title="Permanent link to The LinkToDataSource Command"><img class="post_image alignnone" src="http://www.xpressdox.com/wordpress/wp-content/assets/images/advanced.jpg" width="177" height="16" alt="Post image for The LinkToDataSource Command" /></a>
</p><p><em>LinkToDataSource</em> links any control on the interview to a data source (a <em>control </em>is what the user uses to enter data, such as a straight forward text box, or a checkbox, or a dropdown, etc.).  It means that when the focus moves off that control, a call to the data source is made, to retrieve the data.</p>
<p>The simplest example is where a value like an account number is entered in the interview, and the system is required to read the data for that account number from the data source.</p>
<h3>Basic form of the command.</h3>
<p>Suppose a data source has been configured to access a database table called Account, and the data source itself is named <em>Account</em>.  Further the <em>Id</em> of the data source is defined to be a single column (it doesn’t matter what the column name is, as long as it is configured correctly in the XpressDox configuration for the data source).  Further, there is a data element in the interview called <em>AccountNumber</em>, and the user is expected to enter the value of the <em>Id</em> of the data source here.</p>
<p>The command</p>
<p><code>&lt;&lt;LinkToDataSource(AccountNumber,Account)&gt;&gt;</code></p>
<p>will link the data source named <em>Account</em> to the control which captures the value of <em>AccountNumber</em>, and when the focus moves out of that control in the interview, the value of that control, which is now the value of the <em>AccountNumber</em> data element, will be used as the <em>Id</em> to retrieve the relevant row from the data source’s table.</p>
<p>Notice that the <em>LinkToDataSource</em> command does not specify what sort of control the <em>AccountNumber</em> data element is to be captured with.  That means that constructs like:</p>
<p><code>&lt;&lt;ChooseFromList(AccountNumber,A0001,A0002,B1010)&gt;&gt;</code><br />
<code>&lt;&lt;LinkToDataSource(AccountNumber,Account)&gt;&gt;</code></p>
<p>would mean that the user would choose one of those three values from the drop-down list, and whichever one they chose would cause the relevant record to be read from the data source.</p>
<h3>More advanced uses.</h3>
<p>Suppose a data source called <em>Cases</em> has been configured, but this data source has a <em>composite id</em>, in other words the <em>Id </em>consists of more than one database column.  In this example, suppose those columns are the <em>Client Number</em> and the <em>Case Number</em>.</p>
<p>Then, the interview could be constructed so that the user is requested to type in a data element called <em>ClientNumber</em> and another data element called <em>CaseNumber</em>.  Assuming the <em>ClientNumber</em> is typed in first, then the idea would be that as soon as the <em>CaseNumber</em> is typed in that the system will have enough information to retrieve the relevant record from the <em>Cases</em> data source.  The command</p>
<p><code>&lt;&lt;LinkToDataSource(CaseNumber,Cases,RefreshSave,'id=&lt;ClientNumber&gt;,&lt;CaseNumber&gt;')&gt;&gt;</code></p>
<p>will construct the value of the <em>Id</em> from the two data elements <em>ClientNumber</em> and <em>CaseNumber</em>, separated by a comma (which is the default separator between elements of a composite <em>Id</em>) and request the value of the data for that <em>Id</em> from the data source.  This will all be triggered after the user has entered the value in the control on the interview for <em>CaseNumber</em>, and has moved the focus (e.g. by pressing the <em>Tab</em> key) out of that control.</p>
<p class="note">Note the quotes around &#8216;id=&lt;ClientNumber&gt;,&lt;CaseNumber&gt;&#8217;.  These are to prevent the comma between &lt;ClientNumber&gt; and &lt;CaseNumber&gt; from being taken as a delimiter between parameters to the command.</p>
<p class="note">Note also the &lt; &#8230; &gt; surrounding <em>ClientNumber </em>and <em>CaseNumber</em>.  These are to indicate that <em>ClientNumber </em>and <em>CaseNumber </em>are the names of data elements, and that the values of the data elements should replace them in constructing the value of the <em>Id</em>.</p>
<p class="note">The <em>RefreshSave </em>parameter (and the other possible values that it can have) is described in full in the articles <a title="Control how the user can change data source data" href="http://www.xpressdox.com/help/cookbook/control-data-changes/" target="_self">Control how the user can change data source data</a> and <a title="Other advanced features in XpressDox" href="http://www.xpressdox.com/help/reference/other-advanced-features/" target="_self">Other advanced features in XpressDox</a></p>
<p class="alert">As with all other commands which retrieve data from a data source, when the data are retrieved, ALL the columns in the row retrieved from the data source become part of the data set, even those not referred to in the template.  This issue is discussed in detail in <a title="XML and Data Sets" href="http://www.xpressdox.com/help/reference/xml-data-set/" target="_self">XML and Data Sets</a>, and also in <a title="Make data source information available on all templates" href="http://www.xpressdox.com/help/cookbook/data-source-on-all-templates/" target="_self">this</a> article.</p>


<p>Related posts:<ul><li><a href='http://www.xpressdox.com/help/cookbook/working-linktodatasource-1/' rel='bookmark' title='Working with LinkToDataSource'>Working with LinkToDataSource</a></li>
<li><a href='http://www.xpressdox.com/help/reference/choosefromdatasource/' rel='bookmark' title='The ChooseFromDataSource Command'>The ChooseFromDataSource Command</a></li>
<li><a href='http://www.xpressdox.com/help/new/version-3-9-0/' rel='bookmark' title='Version 3.9.0 (2011-07-06)'>Version 3.9.0 (2011-07-06)</a></li>
<li><a href='http://www.xpressdox.com/help/cookbook/working-with-help/' rel='bookmark' title='Working with Help'>Working with Help</a></li>
<li><a href='http://www.xpressdox.com/help/cookbook/capturelater/' rel='bookmark' title='The CaptureLater Command'>The CaptureLater Command</a></li>
</ul></p>]]></content:encoded>
			<wfw:commentRss>http://www.xpressdox.com/help/reference/linktodatasource/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Filling PDF Forms</title>
		<link>http://www.xpressdox.com/help/reference/filling-pdf-forms/</link>
		<comments>http://www.xpressdox.com/help/reference/filling-pdf-forms/#comments</comments>
		<pubDate>Mon, 04 Jul 2011 09:01:28 +0000</pubDate>
		<dc:creator>Peter</dc:creator>
				<category><![CDATA[User Reference]]></category>
		<category><![CDATA[MergePDFForm]]></category>

		<guid isPermaLink="false">http://www.xpressdox.com/?p=4601</guid>
		<description><![CDATA[PDF documents which have been prepared with PDF Form Fields (using a suitable PDF Form editor) can be filled with data captured with an XpressDox interview.  In fact, the PDF form can be filled with data from ANY source, as long as it is in XML form. There are a few steps that have to [...]]]></description>
			<content:encoded><![CDATA[<p><a class="post_image_link" href="http://www.xpressdox.com/help/reference/filling-pdf-forms/" title="Permanent link to Filling PDF Forms"><img class="post_image alignnone" src="http://www.xpressdox.com/wordpress/wp-content/assets/images/advanced.jpg" width="177" height="16" alt="Post image for Filling PDF Forms" /></a>
</p><p>PDF documents which have been prepared with PDF Form Fields (using a suitable PDF Form editor) can be filled with data captured with an XpressDox interview.  In fact, the PDF form can be filled with data from ANY source, as long as it is in XML form.</p>
<p>There are a few steps that have to be taken to prepare the PDF from for use by XpressDox, the most important one being to map the data elements in the XML data set to the form fields in the document.  This is done by running the Prepare PDF Form utility, which is accessed via the button in the Advanced Template Author group in the ribbon (or in the toolbar in Word 2003).  This will list the fields as the appear in the PDF form, and initially will name the fields with an “F” followed by the field number.</p>
<p>If the author of the PDF form assigned appropriate names to the fields, then those field names could be used as the data element names for XpressDox.  The mapping will then be achieved by pressing the “Use Internal Name” button on the Prepare PDF Form utility.  Otherwise, you can set data element names for  the fields by clicking in the data element name field itself on the utility form and assign the name you would like (much as you would rename a file in the Windows Explorer) .</p>
<p>Sometimes you will be preparing a PDF form which has been authored by someone in a different organisation (e.g. you may be preparing some or other government PDF form for filling with XpressDox) and it may be that the fields are not named in a way that lets you see how the fields appear on the PDF form.  The XpressDox utility allows you to open the form in a PDF viewer, and will identify the fields by writing the contents of the Data Element Name column in the utility into the relevant field in the form.  This will enable you to identify at least the text fields in the PDF form.  Unfortunately, there is no easy way like this to identify fields like check boxes and radio buttons, so at worst these will have to be named and tested and identified by trial and error.</p>
<p>The “Create Interview Template” button on the utility will create a set of XpressDox &lt;&lt;Define()&gt;&gt; commands which can function as the source for the capture of the data elements in an interview.  This is particularly useful for arriving at the correct definition of what is required for check box and radio button controls.</p>
<p>Once the form has been prepared, it is saved (by pressing the OK button on the utility).</p>
<p>The PDF form is filled under control of a normal XpressDox template.  The XpressDox template will identify the data set to be used, usually by capturing it in the interview, and then fills the PDF form using the &lt;&lt;MergePDFForm()&gt;&gt; function.  This function enables you to indicate the name of the PDF form file to be filled, and optionally the name of the file with which the merged result must be saved.  For example:</p>
<p><code>&lt;&lt;MergePDFForm(‘Declaration by Purchaser’)&gt;&gt;</code></p>
<p>and/or</p>
<p><code>&lt;&lt;MergePDFForm(‘Declaration by Purchaser’, ‘Declaration by Purchaser – Merged’)&gt;&gt;</code></p>
<p>The actual location of the PDF files is governed by the XpressDox configuration in the same way as the source and location XpressDox templates and merged files is controlled.</p>
<p class="note">Note that the name of the PDF form as well as the output merged field name are in quotes.  This is because <em>MergePDFForm</em> is a function.  It has the powerful benefit that the names of those two files can be constructed at template run time using XpressDox conditional logic.  For example <code>&lt;&lt;MergePDFForm(concat(‘Declaration by ’, PartyType))&gt;&gt;</code></p>


<p>Related posts:<ul><li><a href='http://www.xpressdox.com/help/reference/setinterviewdataonly/' rel='bookmark' title='The SetInterviewDataOnly Command'>The SetInterviewDataOnly Command</a></li>
<li><a href='http://www.xpressdox.com/help/new/version-3-9-0/' rel='bookmark' title='Version 3.9.0 (2011-07-06)'>Version 3.9.0 (2011-07-06)</a></li>
<li><a href='http://www.xpressdox.com/help/cookbook/trouble-shooting-conditional/' rel='bookmark' title='Trouble shooting Conditional Capture'>Trouble shooting Conditional Capture</a></li>
<li><a href='http://www.xpressdox.com/help/reference/conditional-capture/' rel='bookmark' title='Conditional Capture'>Conditional Capture</a></li>
</ul></p>]]></content:encoded>
			<wfw:commentRss>http://www.xpressdox.com/help/reference/filling-pdf-forms/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The Plural Function</title>
		<link>http://www.xpressdox.com/help/reference/the-plural/</link>
		<comments>http://www.xpressdox.com/help/reference/the-plural/#comments</comments>
		<pubDate>Mon, 18 Apr 2011 12:35:34 +0000</pubDate>
		<dc:creator>Peter</dc:creator>
				<category><![CDATA[User Reference]]></category>
		<category><![CDATA[Plural]]></category>

		<guid isPermaLink="false">http://www.xpressdox.com/?p=4423</guid>
		<description><![CDATA[Generic documents such as contracts often have numerous places where constructs such as &#8220;is/are&#8221; or &#8220;child/children&#8221; appear, or else the singular is always used document has a preamble has words to the effect of  &#8220;masculine usage includes feminine and singular includes plural&#8221;. With document assembly, and XpressDox in particular, the template can provide instructions in [...]]]></description>
			<content:encoded><![CDATA[<p></p><p>Generic documents such as contracts often have numerous places where constructs such as &#8220;is/are&#8221; or &#8220;child/children&#8221; appear, or else the singular is always used document has a preamble has words to the effect of  &#8220;masculine usage includes  feminine and singular includes plural&#8221;.</p>
<p>With document assembly, and XpressDox in particular, the template can  provide instructions in conditional assembly which can insert the  correct words in the places where they are required.</p>
<p>An example would be</p>
<blockquote><p>The name<code>&lt;&lt;Plural(count(Child),' ','s')&gt;&gt;</code> of my child<code>&lt;&lt;Plural(count(Child),' is','ren are')&gt;&gt; &lt;&lt;ForEach(Child)&gt;&gt;&lt;&lt;When(position() &gt; 1, and )&gt;&gt;&lt;&lt;Name&gt;&gt;&lt;&lt;End()&gt;&gt;</code></p></blockquote>
<p>Sometimes the number cannot be inferred using <em>count()</em> and has to be requested explicitly either in an interview or perhaps in data retrieved from a data source which is nonetheless not repeating.  In this case a boolean expression can be used in place of <em>count()</em>:</p>
<blockquote><p>&lt;&lt;ChooseUsingCheckBox(OnlyOneChild,Y,N)&gt;&gt;<br />
The name<code>&lt;&lt;Plural((OnlyOneChild = 'Y'),' ','s')&gt;&gt;</code> of my child<code>&lt;&lt;Plural((OnlyOneChild = 'Y'),' is','ren are')&gt;&gt; &lt;&lt;ChildNames&gt;&gt;<br />
</code></p></blockquote>


<p>Related posts:<ul><li><a href='http://www.xpressdox.com/help/reference/gender/' rel='bookmark' title='The Gender Function'>The Gender Function</a></li>
<li><a href='http://www.xpressdox.com/help/cookbook/concatenating-strings/' rel='bookmark' title='Concatenating strings'>Concatenating strings</a></li>
<li><a href='http://www.xpressdox.com/help/cookbook/repeating-data-part-2/' rel='bookmark' title='Working with repeated elements – Part 2'>Working with repeated elements – Part 2</a></li>
<li><a href='http://www.xpressdox.com/help/cookbook/working-with-repeated-elements/' rel='bookmark' title='Working with repeated elements &#8211; Part 1'>Working with repeated elements &#8211; Part 1</a></li>
<li><a href='http://www.xpressdox.com/help/cookbook/test-for-any-or-all/' rel='bookmark' title='Test for Any or All repeated items meeting criteria'>Test for Any or All repeated items meeting criteria</a></li>
</ul></p>]]></content:encoded>
			<wfw:commentRss>http://www.xpressdox.com/help/reference/the-plural/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

