2012-02-24 Version 4.1.0
This version represents a major shift in direction for XpressDox. If you are intending to upgrade from an earlier version of XpressDox to Version 4, IT IS IMPERATIVE THAT YOU READ THE CONTENTS OF THE WEB SITE ARTICLE Upgrading to Version 4.
Here follows a summary of all the changes being introduced in this version.
- The format of XpressDox templates is now OpenXML format – i.e. .docx (or .docm) documents created natively in Word 2007 and Word 2010.
- The templates will no longer use the .xdtpl extension, but will be stored with the extensions .xdtpx (equivalent to .docx) and .xdtpm (for macro-enabled templates).
- Documents with extensions .docx and .docm will also be able to be used wherever an XpressDox template is required. In particular, this means that commands like
«InsertTemplate()»can reference documents which have not necessarily been saved explicitly as XpressDox templates.
- The merged documents will be saved as .docx or .docm, depending on the extension of the main template being run, taking into account that documents including macros will always be saved with .docm extension.
- There is a semi-automatic conversion utility which can be used to convert XpressDox templates from Version 3 format (i.e. Word 2003 XML) to Version 4 format (i.e. Word 2007/2010 format). Semi-automatic means that you will be prompted to perform the conversion when it seems appropriate.
- This will become available in the XpressDox Explorer whenever a template author selects to display the contents of a folder – the author will then be prompted to have XpressDox convert that folder and its sub-folders. There is an option on the dialog that is presented, which enables you to select that XpressDox perform the conversion on all the folders which are in the Explorer’s “recently used” list of folders.
- After converting a folder, all the old format templates will be found in a sub-folder called “Version3Templates”. This sub-folder does not display in the XpressDox explorer but can be accessed via the Windows explorer.
- The conversion feature can also be invoked by right-clicking on any old format template in the XpressDox Explorer and selecting the menu item “Convert Folder’s Templates to Latest Format”.
- When a template in the “Favourites” list is converted to Version 4 format, there is no automatic conversion of the file name in the configuration where the Favourite is defined. However, XpressDox will check, when asked to run a “Favourite” that a new format template exists, and run that if it is there.
- As of this release, the default fillpoint delimiters for all new installations of XpressDox will be the “chevrons”, i.e. « and ». This will not affect existing installations of XpressDox. As before, XpressDox will in any case recognise on a per-assembly basis which delimiters are being used, so that even where a new installation at a site will default to chevrons as the delimiters for authoring, any templates authored (on other workstations) with the XpressDox Classic delimiters (<<and>>) will continue to function correctly. If necessary, use the “Template Author Utilities” button on the ribbon/toolbar to set the default fillpoint delimiters for your workstation.
- “Relevance” has been enhanced. XpressDox will now recognize data elements included in If, When, SetV, and most other contexts. The condition handling has also been enhanced so that controls should correctly appear on the interview depending on the condition for inclusion in the merged document. See http://6.lickedsa.co.za/help/reference/relevance.
- The Supervisor, Template Author and Template Runner (new feature) functions are now controlled via special XpressDox licence keys. The “Supervisor Toolkit” program (i.e. the one which was used to “sign” the supervisor’s home configuration) is no longer needed. The Template Author features are also controlled by the licence which is registered for that user, and no longer requires the user to empower themselves as a template author by specifying a password in their home configuration. If you have been using the Supervisor features, please contact firstname.lastname@example.org to get more information on these features.
- New commands and functions:
«IncludeCodeTemplate()»will include the template, but only the paragraphs which have XpressDox fillpoints in them.
«LinkToOtherData()»enables the template author to define that when the user moves the cursor out of the control for the data element in the interview, that the equivalent of a User Other Data is performed. This uses the data already captured (which may, or may not, include the data on the control being referenced in the command) in the interview, along with the definition in the configuration of where the captured data sets are to be stored. This means, for example, that if the configuration specifies that saved data sets are stored according to account number, then if the user knows the account number and enters it then, the LinkToOtherData command will access that saved data set and populate the interview with its data. Exactly, as stated earlier, as if the user had chosen it using the Use Other Data button.
«ChooseUsingDatePicker()»helps the template author with the new relevance issues – the way to get a date picker onto the interview previously was to use the
«CaptureDataElement(DateElement,Date)». But now with the new relevance engine, this would cause the date picker to appear regardless of whether the data element referenced in the command was used in the template or not.
«ChooseUsingDatePicker()»will cause the date picker to appear on the interview only if there is reference to its data element in the template.
«RepeatWhile(condition)». This command handles repeating information which is not in the form of repeating data in XML (i.e. multiple same-named XML elements).
«DaysBetween(EndDate,StartDate)»returns the number of days between the two dates.
«ReadOnly()»will cause the named data element (or list of data elements) to be shown in the interview, but their values will not be able to be changed by the user.
«ExcludeFromDataSet()»can be used to exclude individual data elements, or all those included from designated data sources, from the saved data set.
«OnExitSet()»(see http://6.lickedsa.co.za/help/reference/onexitset) permits the template author to specify that, when a control on the interview loses focus, the value of a data element, caption, footing or heading can be set. If the data element does not exist before the interview is run, then it is created at the point that the OnExitSet executes.
- Handling of empty data elements: there is now a mechanism for placing a non-empty code into the merged document when a data element is not filled in on the template. This code is called the Empty Marker. See the article http://6.lickedsa.co.za/single/setemptymarker for a full discussion.
«SaveAsText(yes)»command introduced. See http://6.lickedsa.co.za/help/reference/saveastext.
«SetRepeaterQualifier()»is used to change the string that is displayed next to each repeating node in the interview treeview. (http://6.lickedsa.co.za/help/reference/setrepeaterqualifier)
- Enhancements to existing features:
- The file name provided to the BaseTemplate command can be built up from constant text and also the contents of data element names.
An example would be
The data for those data element names are sourced from the Standard Data which is either in the user’s Home Configuration, as well as the Shared Settings configuration (either the Standard Data or a data source which is designated for use as Standard Data), and also any data sources which are designated “Use for all templates”.
«InsertFormattedText()»takes a new parameter – “
Lines” or “
«InsertFormattedText(Address,Paragraphs)»will insert the Address with each line in the value being on its own paragraph. The default value (which is how the command has functioned prior to this release) is “Lines”, and this separates the lines in the inserted value with line breaks.
- A new formatting option has been added for
«IncludeCodeTemplate()»commands. Currently the values Source, Destination and Paragraph have been supported, and now the option Text can be specified.
«IncludeTemplate(Help,Text)»will cause only the unformatted text of the document Help to be included. Without paragraph or line marks.
«IncludeCodeTemplate(Help,Text)»will do the same thing but will also exclude all text which appears on paragraphs which contain no fillpoints.
- ToUpper and ToLower have an extra two optional parameters to enable restricting the case change to a substring. For example
«ToUpper(Name,1)»will return the value of the data element Name with the first character changed to upper case (and the rest left unchanged).
«ToUpper(Name,3,2)»changes the third and fourth characters to upper case.
- The Round function can take on extra (optional) parameter being the number of decimal places to which the number should be rounded.
«Round(number,3)»will round to 1.2345 to 1.235, and
«Round(number)»will round 1.2345 to 1 (i.e. to the nearest integer).
«InterviewIsWizard(yes))»now works in the desktop version. This is used in conjunction with the
«Tab()»command. In the Wizard format, Tab is a bit of a misnomer, as the tabs are no longer visible but their headings appear in the treeview.
- The conversion of templates from other document assembly systems has been improved. In particular, templates using Word Merge Fields and GhostFill templates are converted not just by replacing the fillpoint delimiters but also by a set of syntax conversion algorithms.
- There is a new ribbon/toolbar button called “Edit Fillpoint” which, when clicked, selects the nearest fillpoint to the left and launches the wizard for the command or function in that fillpoint (assuming XpressDox can recognize a command or function in the fillpoint).
- Scripts are now included in the Command Editor – they appear after the data elements for the template in which they occur.
- The template painter works in all Word ranges – i.e. includes document headers and footers and text boxes, etc.
- Database schemas are created using the configuration. In particular, this means that data column name mapping can now proceed without the user needing to choose a sample of the data.
- Calculations with XpressDox need special consideration when working with numbers that do not comply with US or UK-like regional settings. This is discussed in detail in the XpressDox Cookbook on the web-site.
- When the interview constructed for a template ends up with having no controls for values to be captured, then, depending on the setting of
«HideEmptyInterview(yes))», no interview is presented.
- Bug fixes:
- Bugs involving label on tree node for moved repeater nodes fixed.
- Data source name mapping handles complex data elements correctly.
- When a template included a
«MergeTemplate()»which in turn had an
«InsertTemplate()»command, then if the inserted template required data elements which were not used in the template referred to in the MergeTemplate then an interview would be presented, even though the new data elements were already present in the captured data set. This has now been corrected.