Change History for 9.1.8

Upcoming enhancements In Beta

  • Analysis reports can now be used to analyse Ledger records, providing an easy way to get information-dense GL charts over multiple periods (similar to Account Enquiry charts)
  • Ledger by Period/Categories stacked column chart report
  • Tweaked the alpha and line widths of charts
  • Dashboard Ledger by Period/Categories stacked column chart
  • Further improvements to date entry: When in a date field, you can use Page Up and Page Down to go back or forward a month. You can also “drive” around the date picker using the arrow keys with Cmd (Mac) or Ctrl (Win) held down (actually you can use these keys whether using the date picker or not). Up/Down will go back/forward by a week. Left/Right by a day.
  • Popup control labels now align better on newer macOS versions (and probably worse on older macOS versions that predate the San Francisco system font)
  • Expression substitution (using <<expr>>) in a mail subject or body when emailing statements etc now works consistently even when the form is generated on the server, and also when PDFs are generated using Microsoft’s Print to PDF driver
  • Report Heading parts no longer spuriously double-space when a tabbed heading has fewer tabs than there are columns in the report
  • Yodlee Bank statement importing now prefers description.original to description.simple which should improve the data quality (in particular the random quality of BNZ statements)
  • Do not allow Replace to replace journal reference number
  • List colours have been tweaked slightly on Windows (they were previously posterised to support 4-bit colour displays, but that should no longer be necessary)
  • Report setting window is now more spacious, mainly for the benefit of reports with custom controls
  • Advanced subsummary settings button no longer auto-clicks when you re-run the report with the Advanced sort option selected
  • Payment on invoice importer now flags overclaimed credit as an error instead of crashing
  • Payment on invoice importer is now tolerant of ” and $ in pay amounts on Mac
  • Fixed updating existing transactions when account security level is changed when connected to a server
  • XML importer now applies ISO formatting to date and number conversions in calculated fields

Server

  • Blocklists for portscanners updated
  • Address potential failure to restore unsaved changes after a crash due to a race condition in server startup
  • Log connections even when folder login is not required

Scripting

  • MWScript now supports multi-line string constants (i.e. hard newlines are now allowed inside "" and ``). The expression can continue after the closing quote
  • MWScript now supports Nowdoc-style syntax for defining string constants that contain newlines and/or string delimiters that would be hard to properly escape (Nowdoc uses ad-hoc delimiting markers: You define the marker using an introductory << and then terminate the string with the marker you defined e.g: <<MARK ... MARK. The terminating marker for a multiline string should be at the beginning of a line on its own. There is also a single line variant where the terminating marker can be on the same line as the initiating marker and the expression can continue afterwards. e.g. let a = <<ND string with " and ` in it ND + " normal str". A whitespace character is required at the end of the initial marker; it is not included in the string
  • New InsertVars function for inserting variables and expression results into a string. This works like the embedded expressions in custom form text or the subject or message text in the mail dialog. Any variable name or expression enclosed in double angle brackets will be replaced with the result of the expression. E.g. let t = InsertVars("The date is <<Today()>>"). You can also optionally pass your own arbitrary delimiters for the start and end of expressions (particularly useful if your string includes embedded Nowdoc strings)
  • The Analyse function can now be used to analyse Ledger records using a basis of “ledger”. e.g. analyse("ledger", "account", "type=`IN`", "transaction.period,account.category", "2", PeriodOffset(CurrentPer, -12), CurrentPer, "I"). The column values are 1=count, 2=movement, 3=budget, 4=balance.
  • New Val(expressionString, RunOnServer) mode for the Val function to evaluate an expression on the server. This is very useful for running expensive latency-sensitive functions on the server, such as Analyse and SumSelection. Pass RunOnServer (a new constant with value 1) as second parameter to ask for server-side evaluation (if latency is low, or you are not connected to server, the evaluation will still happen on the client. There is some overhead involved, therefore this should only be used for expensive calculations
  • It is no longer an error to declare a handler parameter with the same name as an existing identifier. This is to prevent existing scripts from breaking when they happen to have handler params that are now an intrinsic function name, constant, or global. It also means you can now have parameter names like name and val. Reserved words are still reserved
  • Custom navigator panels that lack an accompanying icon will now be given a default icon
  • Extensive improvements to WebView/MWScript interactivity. Observer callbacks may pass a JSON object, or a string
  • Specific handlers for edit lists that include the tab name for the list (esp. TweakColumnList) now work more reliably on Windows
  • Analyse function: fixed crashes and failures with bad input
  • Analyse function: fixed breakdown by colour which was only working for transaction
  • Added a bunch of TRUE constants for use with intrinsic functions that take an optional boolean parameter to change the function’s behaviour: RunOnServer (Val or Find), BreakLines (Base64Encode), SortSkipFirst (Sort), TrimAllWhitespace (Trim), GetReversedRate (GetTaxRate), WantDept (AutoFillAcctDeptField), DecodePeriod (GetFieldValue, for popups), ListSelectedOnly, ListAsSelection (GetListContents), ListClearOldSel (SetListSelect), XMLFinal (XML_Parse), AsCDATA (AddXMLElement)
  • Find with RunOnServer mode requested will no longer generate output on the server when only one record is found
  • WebViews using WebView2 on Windows no longer eat all the keyboard shortcuts
  • Less dark inactive highlight in script editor on Windows
  • Fixed a problem with executing certain searches in a report script SetupReport handler (missing symbolic names for and and or)
  • The script editor on Mac now supports transpose, move to start of line, and move to end of line commands using the Cocoa Text System key bindings (the standard bindings for these are ctrl-t, ctrl-a, and ctrl-e)
  • Initialising a property at compile-time with CreateSelection is now flagged as an error
  • It is now possible to reliably compare table, array, selection handles against NULL and get a false result when they are non-NULL
  • Fixed a memory leak when standalone script editor is closed
  • Fixed a potential crash when a standalone script editor is closed after a script it contains installed a web observer
  • TextToNum now supports a format parameter of NumFormPrintf to force ISO format number parsing (i.e. dot decimal)
Posted in Change History | Comments Off on Change History for 9.1.8