Vitalware 2.1.01

Release Date: 24 July 2009



pdfDownload a PDF document containing these release notes and associated documents.

Updates / New Features

  • Statistics Module: A facility has been added that allows statistical information to be gathered and stored at regular intervals. The information is maintained in a new module called Statistics. Tasks are executed on the Vitalware server to populate Statisticsrecords with a numeric value. The resulting records may be used to produce numeric and graphical reports. Statistical data may be generated:
    • hourly
    • daily
    • weekly
    • monthly
    • at user defined periods (e.g. fortnightly, annually, etc.)

    Statistical data may also be added manually, if required. The image below shows the structure of a Statistics record:


    A sample report is shown below:


    System Administrators may add new tasks to generate site specific statistics.

    A complete description of the new module and periodic tasks can be found in the pdfStatistics module documentation.

  • Record Recall: The addition of record level auditing in Vitalware 2.0.03 provided the possibility for restoring records to previous versions. A new facility has been added that allows a record to be restored to the values it contained at a specified date and time. A batch command allows a set of records to be reset. Users require the daRecalloperational privilege to be able to use the facility. The images below show the new commands:



    A complete description of the new facility can be found in the pdfRecord Recall documentation.

  • Record Templates:The new Record Templates facility allows an existing record to be used as the basis for producing one or more new records. A wizard is provided to streamline the record creation process. A number of features are available:
    • Data from the existing record may be copied into the new records
    • Static values may be added to the new records
    • Users may be prompted for values that are added to the new records
    • Starting values for incrementing fields may be supplied, along with an incrementation value
    • Variable data may be added to the new records (e.g. record creation number)
    • Blocks of IRNs may be preserved


    The Record Template facility allows a number of duplicates to be made of an existing record. It provides a useful means for reserving a block of numbers (e.g. Registration Numbers, Stock Numbers, IRNs, etc.) that will be completed at a later date.

    A complete description of the new facility can be found in the pdfRecord Templates documentation.

  • Import XSLT Processing: The Import facility has been extended to allow XSLT pre-processing before XML data is imported into Vitalware. A series of pre-configured templates may be used or users may define their own templates. The Import wizard has been extended to allow templates to be tested before importing data. A complete description of the extension may be found in the pdfXSLT Processing documentation.


  • FIFO Service: A generic framework has been added to the Vitalware server allowing complex calculations to be performed with the results used to populate data values. The framework removes the old system() scheme leading to significant improvements in speed and flexibility. A series of plugins is used to perform the calculations. The new service is used for:
    • calculating turn-around times for product insurance
    • determining multi-lingual values for system settings
    A complete description of the new server can be found in the pdfFIFO Server documentation.
  • Multimedia Upgrade: Replacement of the old multimedia components with new versions is complete. All controls where media is attached and viewed now use the same sub-system. The new sub-system provides support for a large selection of audio, video and image formats. In particular improved support is available for the following formats:
    • AV
    • MPEG
    • WMV
    • MP3
  • Multimedia Drag and Drop: A multimedia file (image, audio, video, documents, etc.) or URL may be dragged from the Windows environment and dropped on any control displaying multimedia. A new Multimedia record is created for the dropped item with the resulting record attached automatically to the control. Allowing multimedia to be added via drag and drop may streamline the data entry process, however the Multimedia record created will only contain minimal data (default values, extracted metadata, generated resolutions, etc.). If extra data exists, the multimedia record may need to be updated manually.
  • System Tuning: New tools are available to provide more optimal indexes for searching. In general, the Vitalware server will configure itself to provide near optimal searching performance for most data sets. The new tools allow fine-tuning of the indexes to provide even faster retrieval and to minimise the amount of storage required. System Administrators may configure the system manually to achieve optimal performance for irregular data sets. A complete description of the new tools may be found in the pdfConfiguration and pdfRange Indexing documentation.
    Note that System Tuning requires Texpress 8.2.
  • XSLT Report Viewer: The XSLT Report viewer has been rewritten. The previous version wrapped the generated XML with a stylesheet processing instruction, requiring the browser to perform the transformation from XML to HTML. Since web browsers provide different implementations of the XSL standard, the generated HTML may vary from browser to browser, resulting possibly in erroneous views. The new version of the viewer performs the transformations internally (rather than using the browser) using the MSXML engine. Page consistency is guaranteed, regardless of the browser employed, as a single engine is used.
  • Image Resolution: A new Registry entry has been added that allows the resolution (dots per inch / cm) and resolution unit (inch / cm) to be defined for derived images. Using this entry, derived images can be altered to contain a resolution suitable for embedding directly in Crystal reports via their OLE Graphic object. The format of the new Registry entries is:
    System|Setting|Multimedia|Metadata|Set|Property|format|Resolution Unit|unit

    format is the image format for which derived images will have the resolution set. A value of Default may be used to indicate the resolution should be set for all derived images. Individual image formats may also have an image width and height specified to further restrict the setting of the resolution. For example, a format of 90:100:JPG would indicate that only 90 x 100 (width x height) pixel JPEG images should have the resolution set.
    x:y specifies the resolution (width:height) to place in the derived image. The resolution unit is defined by the second Registry entry where the following values are available for unit:

    0 - Clear any existing resolution
    1 - Resolution unit is DPI (dots per inch)
    2 - Resolution unit is DPCM (dots per centimetre)

  • Media Thumbnails:The thumbnails displayed where multimedia is embedded in a tab have been upgraded to provide consistent colouring and detail. The image below shows some of the new thumbnails:


    • Crystal Viewer Upgrade: The Crystal Reports viewer has been upgraded to Crystal Reports XI Release 2. A number of Crystal Reports issues have been resolved in the latest version. Support for French, German, Italian, Spanish and Swedish is available in the new viewer. To install the new viewer a Standalone or Network Client installation is required on all user computers.
    • User identification: The status bar, located at the bottom of each module, now includes the user name of the person logged in and the service (port number) to which they are connected. The information provides an easy way to determine the Vitalware server to which you are connected, particularly if you are logged in more than once:


    • Image Quality: The Registry entry used to determine what resolutions are derived when an image is added to the Multimedia repository has been extended to allow the image quality to be defined. The quality is used by lossy formats (e.g. JPEG) to determine the level of image loss tolerated. The value is between 1 and 100, where 1 indicates a complete loss of quality and 100 represents no loss of quality. The format of the Registry entry is:
      System|Setting|Multimedia|Resolutions|format|Resolution| resolution;...
      vwhere resolutionconsists of up to six colon separated values:
      • image width in pixels
      • image height in pixels
      • image type (e.g. JPEG, TIFF, etc.)
      • scale image, that is maintain aspect ratio when resizing (TRUE or FALSE) [default: TRUE]
      • enlarge image, that is allow derivative to exceed size of original image (TRUE or FALSE) [default: TRUE]
      • compression to apply (e.g. NONE, FAX3) [default: NONE]
      • image quality (value between 1 and 100) [default: 100]
    • Copy Special: A Copy Special command has been added under the Edit menu to allow the end of line (used within text to end a paragraph) and end of row (used between records) delimiters to be defined. The delimiters to use may vary depending on the application into which records are being pasted. The image below shows the delimiters available:
    • db_copy_special_vw.gif

    • Groups Module:The Groups module has been extended. A number of new tabs have been added:
      • Tasks
      • Multimedia
      • Notes
      • Legacy Data
      • Group Purpose
      • Group Description
      • Group Status
    • Three new fields have also been added:


      The new fields and tabs allow full documentation of a group, rather than just recording the group name.

    • Font Setting: A new option allows the font used to display data to be set. The option is useful for LCD screens where the standard Windows font may be difficult to view. The image below shows the new Font tab option:


    The default font has changed from MS Sans Serif to Microsoft Sans Serif.

    • Security Extension: The Security Registry entry has been expanded to allow the name of the user to be embedded in security values. The variable $user will be replaced with the user name of the person running Vitalware. Using this variable, security may be adjusted on a per user basis depending on the user name stored in the data. The entry below grants editing privileges based on the user name stored in the AdmTrustedUser column in the Catalogue module:
    • Exact Lookup Match: A new Registry entry has been created requiring that Lookup List values must match exactly against values entered, that is, the character case and punctuation must be the same as the Lookup List entry. The format of the Registry entry is:
      Group|group|Table|table|Lookup Exact|colname|true
      where colname is the name of the column for which Lookup List entries must match exactly the value entered.
    • Improved Media Download: The mechanism used to transfer media files from the Vitalware server to the client machine has been replaced with a more efficient protocol. The new mechanism has resulted in download time improvements of between 300% and 700%.
    • Multimedia re-arrangement: Significant speed improvements have been made when re-arranging attached multimedia. The improvement is significant if a large number of multimedia attachments exist.
    • Barcode Stock functionality: Management of Security Stock (from creation of stock records through to distribution, return, etc. of Security stock) can be managed using a Barcode Scanner.
    • Receipt Printer: Added ability to use more than one type of receipt printer. Where additional receipt printer types are used they are specified using the  Receipt Printer Name Registry entry. The format of the entry is:
      Group|Default|Table|epos|Receipt Printer Name|Name
      where Name is the name that Windows uses to refer to the printer.
    • A facility was added to retire products in the Products database that are no longer offered to customers but appear on historic records. This is done by setting the Status field to Retired.
    • Added check so that records which are restricted from printing cannot be attached to certificate orders.
    • Altered processing of the removal of an attached event for a certificate so that if a certificate had been printed, the removal of the event requires supervisor authorisation.
    • Added the ability to reset all link grids to the top left position when inserting a new record. This functionality is controlled by the Reset LinkGrids Registry entry. The format of the entry is:
      Group|Default|Table|Default|Reset LinkGrids|boolean
      where boolean is True (the cursor will move to the top left of a link grid when a user enters Insert / New mode) or False (the cursor will remain in the same position in a link grid when a user enters Insert/ New mode).

    Issues Resolved

    Issue Resolution
    The Audit facility introduced in the previous release requires each record created to have a unique IRN (Internal Record Number). If a record is deleted, the number should not be re-used, otherwise audit trail data for the new record may display information about a deleted record.

    The default value for autokeyreuse has changed from yes to no. The change guarantees IRNs are never re-used, ensuring audit trails refer to the current record only.

    The error message Column operation performed before row has been accessed may appear after sorting a matching set of records or retrieving a set of records via the Groups facility. After the error is shown, the data for the matching records may be blank (although the record count is correct).

    The error no longer appears and the records are displayed correctly.

    If the Security tab is resized the Add and Remove buttons may not be positioned correctly after the tab layout is adjusted.

    The Add and Remove buttons are now positioned correctly.

    A number of controls on query tabs do not allow multiple values to be entered, hence restricting OR based queries to additional searches.

    All query controls now allow multiple values to be entered, enabling alternative terms to be entered in the same search.

    An invalid number format or Invalid query specified error is shown if a value greater than 2,147,483,648 is entered into a numeric (integer) field.

    The maximum allowable value for a numeric field has been increased to 9,999,999,999.

    An Access Violation error may occur when extracting XMP metadata where multiple RDF xmlns attributes are defined.

    Multiple xmlns attributes are now handled correctly.

    If many columns are defined for viewing via Shortcuts, moving between records may be slow, even if Shortcuts are disabled. The columns are loaded from the Vitalware server regardless of whether Shortcuts are displayed.

    When Shortcuts are disabled, the columns are no longer fetched from the Vitalware server. The change results in faster movement between records.

    Client specific reports may not be retrieved correctly from the Vitalware server where a report with the same name exists in the Vitalware cache. The cache report takes precedence over the server report even if the reports are not the same.

    A check is performed to determine whether the cache version of the report is the same as the server version. If the reports are not the same, the server version is retrieved, otherwise the cached version is used.

    An Access Violation error may occur in the Multimedia repository for audio, video and document based media where the Documents table is empty. Under normal operation the table always contains the master media entry; however if data is loaded from external sources, the table may be empty.

    An error is no longer displayed if the Documents table is empty.

    An Access Violation error may occur when moving through records where a read-only grid changes from having no entries to having one entry.

    An error is no longer displayed where a read-only grid changes from having no entries to having one entry.

    If controls have been removed from a tab (as a result of sub-classing), the remaining controls may not be laid out correctly when the tab is resized.

    The controls in sub-classed tabs, when resized, are laid out correctly.

    Under rare circumstances it is possible to have the same IRN assigned to two different records. The sequence of events required to produce the error involves a complex interaction between a series of users.

    This sequence of events no longer causes an error.

    An End of File error may be produced when performing a search and displaying matches in either List or Contact Sheet mode. The error is displayed only if the results contain a "false" match.

    "False" matches are handled correctly in List and Contact Sheet modes.

    An image in a report may not be displayed if the file name contains an ampersand (&) character.

    The image is displayed correctly if the file name contains an ampersand.

    Some multimedia helper applications may not start correctly when Launch Viewer is selected. Older Windows based programs may not accept the slash character as a valid path separator (e.g. MS Excel).

    All paths to multimedia files are now translated to "old" Windows based paths (using the back slash character) before launching the associated viewer.

    An Access Violation error may display when using drag and drop to re-arrange the order of a large number of multimedia attachments.

    The error message no longer appears when re-arranging multimedia attachments.

    The Undo command may not rewind changes made to the order of multimedia attachments. An incorrect order may result where a large number of multimedia attachments exists.

    The Undo command resets the order of multimedia attachments correctly.

    The Vitalware help file does not load correctly under Windows Vista. Microsoft has modified the mechanism used to load help files under Vista.

    The Vitalware help file now loads correctly under all versions of Windows.

    The Summary Data may not be displayed in bold when moving between records under some circumstances.

    The Summary Data is always displayed in bold.

    A module may be created off the viewable screen area if the Save Last Position option is enabled and the viewable size of the monitor is reduced (either by moving from dual monitors to a single monitor or moving from a large monitor to a smaller monitor). As the new module cannot be seen it may be difficult to move it to a viewable area.

    All modules are now created within the viewable area of the monitor regardless of the Save Last Position setting.

    When re-attaching media to an existing Multimedia record the original version of the media may not be removed correctly where multiple storage areas exist on the Vitalware server (as defined by the ServerMediaPath Registry setting).

    Previous versions of media are cleaned up correctly when multiple storage areas are specified.

    The Paste and Paste (Insert) commands are not enabled when the clipboard contains some invalid data for pasting into grids. A better solution is to allow valid values to be pasted with an error displayed for invalid values.

    The Paste and Paste (Insert) commands are now enabled even if invalid values are part of the clipboard data.

    A report consisting of image and non-image based multimedia within the same record, where a resolution has been specified for the images, may not display the images.

    The images are now displayed correctly for reports where the record contains image and non-image based multimedia.

    The layout of controls on a tab may not be correct if a new module is opened and the Save Last Position and Save Last Size options are enabled and the module is maximised.

    The controls are laid out correctly if a new module is opened and maximised.

    The time required to save a new record may be increased if another instance of the same module is open and a large number of matching records are displayed.

    The time taken to insert a new record is not lengthened if another instance of the module is open.

    Incorrect data may be displayed when performing a spell check on a text field that is part of a nested form. The data displayed is for another row in the form, rather than the row with the bad term.

    The correct data is displayed when performing a spell check in a nested form.

    Only the first row of a multiple row Paste or Paste (Insert) may be added to a grid if multiple rows are extracted from the same attachment module.

    All rows are pasted correctly where multiple columns are extracted from the same attachment module.

    The metadata values (EXIF, IPTC, XMP) are copied into a new record when Ditto All is selected.

    The metadata values are no longer copied when Ditto All is selected.

    The What's this Help? dialogue contains information about the control selected. It would be useful if the information could be copied and added to the clipboard for use by other applications.

    The field help information may be selected and copied to the clipboard.

    The resizing of CMYK images may result in the C (Cyan), M (Magenta) and Y (Yellow) planes being resized correctly, however the K (black) plane may not be resized, causing a distortion in the final image.

    CMYK images are resized correctly.

    The Audit facility does not handle back slash characters correctly. The character is removed from audit trail data.

    Back slash characters are handled correctly and kept in audit trail data.

    The tabs located at the bottom of the module window may become disproportionately large when the Windows Big Font feature is enabled.

    The tabs increase size in proportion to the rest of the module.

    The Attach Media button on the Multimedia tab may be disabled the first time the tab is visited, even if media could be attached.

    The Attach Media button is enabled if media may be attached when the Multimedia tab is first visited.

    A Primary Key is not assigned error may appear when completing one insertion and starting the next if the New Record command is entered before the saving of the previous record has completed.

    A new insertion cannot commence before the saving of the previous record is complete.

    The Date Modified and Time Modified fields are not updated when a record is changed in the Field Help module.

    The Date Modified and Time Modified fields are updated when the record is saved.

    The ownership of created reports may not be correct if a Registry entry exists for a report without a title (the entry can only be entered via the Registry module).

    The ownership of created reports is correct even if a bad Reports Registry entry exists.

    A report containing images may not adhere to the report resolution settings when the reporting module is not the Multimedia module. The master image may be used rather than the resolution specified.

    The correct image resolution is used.

    An Admin Task may not stop executing when the Abort button is clicked.

    The Admin Task is terminated when the Abort button is clicked.

    The Audit facility does not generate the correct column name for double nested grids of date and time columns.

    The correct column name is generated. The upgrade process to Vitalware 2.1.01 corrects any bad column names.

    The Audit facility may add redundant empty values to audit records where a column computes to an empty value.

    Empty values are not added to audit records. The upgrade process to Vitalware 2.1.01 removes any redundant empty values.

    The Audit facility may place the client specific registration name as the table name in audit records, rather than the generic ebirths, edeaths, etc. table.

    The generic registration table name appears in all registration audit records.

    The Program field in the Audit module may display the time value rather than the program name.

    The program name is shown in the Program field.

    The column widths configured for List View mode may not be preserved correctly if the total width of all columns exceeds the width of the module.

    The column widths are preserved correctly.

    An incorrect attachment query may be generated from Search mode if a grid control already contains attachments which are cleared after which the attachment button is clicked.

    The attachment query is no longer generated if the grid has been cleared.

    An incorrect query may be generated where two or more query controls contain attachment queries (that is records have been attached to query control). An OR based query is generated rather than the required AND query.

    The correct query is generated where multiple controls contain attachment queries.

    The Update Resource command in the Multimedia module may truncate IPTC metadata where the metadata contains a null character (that is, a non-existent character at code point zero).

    All null characters are removed from IPTC data when the metadata is extracted. A null character is not valid under the IPTC standard.

    A module may start with the maximum screen size, but without the maximise button enabled if the Save Last Size option is selected and the module was last closed when maximised.

    The module starts maximised with the button enabled.

    The values in calculated fields may not display correctly if a non-standard colour is set for calculated data.

    Calculated values display correctly, even when a non-standard colour is used.

    An Index out of bounds error may be displayed if rows in a grid are deleted from the top down while in Query mode.

    The error message no longer appears.

    An Access Violation error may appear if the Abort button is clicked when sorting records where a summary is requested.

    The error message no longer appears.

    An Access Violation error may appear when right clicking an image thumbnail and viewing the Launch Viewer sub-menu.

    The error message no longer appears.

    The Audit Trails and Groups modules may not display module specific documentation when help is requested.

    Module specific help is displayed.

    It was possible for a certificate to print even though payment for it was pending. The certificate is no longer printed.
    When changing the status of an order it was possible to receive an Index out of range error. The status may now be changed without error.
    When inserting a POS transaction it was possible for the date and time inserted values to be incorrect. The date and time values are now correct.
    When printing the cheque run it was possible to use the same cheque number more than once. Cheque numbers cannot be re-used.
    On occasions the applicant and refund details did not auto-populate from the delivery details. The applicant and refund details are now populated.
    A record could be fee waived on a date later than which it was inserted. Records can only be fee waived on the day they are inserted.
    When rolling back ledger records due to failure to save a POS  transaction, a refund ledger record may not have been rolled back. The refund ledger record is now rolled back.
    When an invoice was paid the Till menu state still reflected that no Till was signed on. The Till menu state shows the Till as signed on.
    When a Cannot focus disabled window message was displayed as a result of failing to save a POS record, record roll back was not performed. Record roll back is now performed.
    When resizing the POS module the payment group boxes did not resize. The payment group boxes resize.
    On rare occasions an empty ledger record could be inserted. Empty ledger records are no longer inserted.
    On occasions when delivery details were dragged and dropped from Parties, other changes on the POS transaction could be lost. All changes are correctly retained.
    On rare occasions when selecting the reprint menu options an additional ledger record could be created. Additional ledger records are no longer created.
    After a lookup table error it was possible for an under-payments ledger record to be created instead of a refund. A refund ledger record is now created.
    A product was indicated as not valid for reversal after its name had recently been changed. Check for validity was altered from product name to product code to cater for product name changes.
    When back filling was turned on and multiple search columns were in use, on occasions the back fill of a field would be empty. The back filling code now checks all columns to try to find a value for use in the field.
    When back filling from a column that was a nested table, the back filled details could overwrite values in other rows in the POS record. No other values are overwritten.
    After making a change to the status on the Sales tab and then swapping to the Single Sale tab, the changed status was not reflected. The status is correctly updated on the Single Sales tab.
    When transmitting records from one Vitalware environment to another, the same record could be transmitted more than once. The record is only transmitted once.
    When printing certificates, the same certificates could be printed more times than was ordered. The certificate is only printed the number of times it is ordered.
    When module caching was being used, after viewing a record's history, a user's module permissions may no longer have been correct. The user's module permissions are now correct.
    Some registration menu options which require edit privilege would be shown as enabled even though a user did not have edit permission. The registration menu options are disabled when a user does not have edit permission.
    When adding a user note to a record that was already being edited, the client application would hang. An error message is now displayed indicating that the record is being edited.
    When double keying a richedit box that spanned multiple lines, the comparison function could at times fail even though the two values were the same. The comparison function correctly identifies the two keyings as the same.
    When double keying a record and a value was entered for the second keying where no value was entered for the first, an access violation could be shown. The access violation no longer appears.