Using Legato

The Legato Scripting Language and the IDE are included in all installations of GoFiler Complete. You may also download the Legato Interpreter for free as a standalone package below.

Legato Basic

https://www.novaworkssoftware.com/legato/current/legatobasic.zip

This package will allow you to run Legato scripts from a command line. Legato is free for development for personal or non-commercial use. By downloading Legato Basic, you agree to the Terms and Conditions of its use.

Revised: March 19, 2024

Legato Integrated Development Environment (IDE)

https://www.novaworkssoftware.com/legato/current/legatoide.zip

This package will allow you to write, debug and run Legato scripts from an IDE. Legato is free for development for personal or non-commercial use. By downloading Legato IDE, you agree to the Terms and Conditions of its use.

Revised: March 19, 2024

Legato Release Notes
Version 1.4i (03/19/2024)
GoFiler 5.22a

1.0 Legato Script Language Notes   

1.1  Script Engine Improvements and Changes

–  Corrected an issue with the accidental use of null handles against a worn internal object manager. This could result in an internal error when writing messages via the AddMessage function and related functions. It required a situation in which both one or more handles were used and then closed, the handle slots that then became available not to be reused, and then using an invalid null handle on a function like the AddMessage function.

1.2  Function Improvements and Changes

–  Corrected an issue with the UTFToUnicode function for short strings truncating the last character or adding a garbage character.

–  A significant change has been made to dialog processing to allow messages sent to the notify procedure to be passed to the action procedure. In previous versions, many messages were filtered. Note that common messages, such as NM_SETFOCUS, are not passed and must be processed within the notify procedure. While previously usable, these messages were not documented but have now been added to the Dialog Functions section of the Legato SDK documentation. Also note that the passing of data to the action procedure makes it simpler to deal with Microsoft’s inconsistent manner of handling control notifications.

–  Corrected an issue with the action and notify processing for Date Controls. Documentation has also been further refined.

–  Corrected an issue with the DateControlGet function returning bad data if the DTS_SHOWNONE style is set and the date checkbox is not set.

–  Corrected an issue with the DateControlSet function not allowing the checkbox to be unchecked with no value if the DTS_SHOWNONE style is set.

–  Added a numeric accounting format option and fields to the EditGetText function field validation.

–  Added filename string options to the EditGetText function field validation.

–  Added a FIND_WILD_CARD_NO_CASE mode to the FindInList and FindInTable functions.

1.3  New API Hooks

–  on_edit_copy — Called on menu or quick key action for edit copy.

–  on_edit_cut — Called on menu or quick key action for edit cut.

–  on_edit_paste — Called on menu or quick key action for edit paste.

–  on_context_menu — Called when the user right clicks or presses the Context Menu key.

1.4  New API Functions

Data View

–  DataViewCellGetType — Gets the type of cell.

–  DataViewEnableRow — Enables row (does not enable specific cells).

–  DataViewHideRow — Hides (and disables) a row.

–  DataViewIsRowDisabled — Tests for a row being disabled.

–  DataViewIsRowHidden — Tests for a row being hidden.

–  DataViewShowRow — Shows row (does not show specific cells).

Dialog

–  ControlIsEnabled — Tests control for being in an enabled state.

–  ControlIsHidden — Tests control for being in an visible state.

Math

–  Round — Rounds a number at specified place using specified mode.

Strings

–  GetNumericDecimalPortion — Returns the decimal number portion of a numeric string.

–  GetNumericWholePortion — Returns the whole number portion of a numeric string.

Legato Release Notes
Version 1.4h (02/12/2024)
GoFiler 5.21b

1.0 Legato Script Language Notes   

1.1  Script Engine Improvements and Changes

–  Corrected an issue with the Legato SDK and XBRL Base Taxonomy type definitions. When GoFiler was previously updated, the SDK was updated but not adjusted for Legato.

–  Updated the SDK documentation for the XDS file format to reflect the addition of cell placeholder text.

1.2  Function Improvements and Changes

–  Added integer search type to the FindInList function.

–  Corrected a problem with the XBRLExportXMLSegment function during export of XBRL contexts. The context ID was being used in place of the entity schema.

–  Added an XM_EXPORT_IXBRL_HIDDEN export option to the XBRLExportXMLSegment function, which exports the hidden section of an iXBRL instance (including the hidden facts, contexts, units, etc.)

–  Added verbose mode to fact retrieval functions.

–  Improved the terse action to most retrieval functions by removing the various position key names.

–  Corrected an issue with the DataViewCellSetByName function not advancing the edit action counter, thus not marking a file as altered.

–  Updated the DialogSetReturnValue function not to post process values for IDOK and IDCANCEL. Also added code to allow an option for property sheet style dialogs.

–  Corrected an issue with the JSON object flipping boolean values requested as strings.

–  Added a search backwards option to the FindInString function.

1.3  New API Hooks

Data View and Forms View

–  on_cell_changed — Called after the content of a cell has been changed.

–  on_cell_changing — Called prior to the content of a cell being changed.

–  on_edit_row — Requests to edit a row’s contents (i.e., record level edit).

1.4  New API Functions

XBRL Model

–  XBRLSetOptions — Sets processing, data and reporting options.

–  XBRLSetSchemaRef — Sets the schema URI referenced for an instance.