Lianja 6.0 will be the next general release expected in January.

I have uploaded Lianja 6.0Beta21 for Windows, Linux and MacOS for those of you who have access to pre-release versions.

This is pre-release software so it should not be used in production.

Changes since 5.5.1...

  1. Added improved package management for "Team Development and Release Management" in the "Deploy" workspace. You create packages in the "Deploy" workspace and publish them in the "Team" or "Release" repositories. You can now "Unpublish" a published package and "List" packages that have been published.
  2. Grid section "Summary" can now (optionally) include Min, Max, Average, Total. See example_webapp1 for an example of this in operation.
  3. Added "Responsive UI" breakpoint attributes to the App doc generated.
  4. Faster loading of Apps with Virtual Tables that have parameterized views.
  5. SET RUSHMORE ON enables rushmore-style index scanning optimization in all NoSQL commands and SQL commands.
  6. Improved SQL optimizer with filtered indexes. (Hint: use the EXPLAIN command to see what's happening).
  7. Added the IN clause to all NoSQL commands that operate on work areas (cursors). This should be placed after the command keyword; USE, REPLACE, APPEND, REPLACE, COUNT, SUM, AVERAGE, CALCULATE, SCAN, LOCATE, CONTINUE.
  8. Added BACKUP/RESTORE DATABASE [FROM "<backup-datetime>"] and LIST BACKUPS commands.
  9. Performance improvements when bulk loading tables using APPEND FROM, APPEND BLANK <nExpr> and GENERATE <nExpr>. SET SYSTIMELINE OFF is automatically executed and turned back on afterwards.
  10. Performance improvement when using the COUNT command with no filter condition.
  11. Added additional information to DIR command when no database open.
  12. Added additional information to the LIST STRUCTURE command with VTs.
  13. Added new App attribute "Enable PerfMeter" which shows the perfmeter in the "Console" workspace for long operations.
  14. Added a StatusBar to the console workspace. SET PERFMETER ON if you want to see a progress bar displayed in the StatusBar when performing long operations.
  15. Fixed a caching issue with very large SQL queries (millions of records) that would cause a crash.
  16. Mailing label printing now supported as described here.
  17. Improved error reporting.
  18. Enhanced "image strip" section.
  19. Page, section and formitems names can now contain _ in desktop/web/mobile apps.
  20. Virtual Tables bound to sections have much improved performance of section relationships. No need for custom code in the parentdatachanged delegate any more. The relationship is now satisfied using requery() on the child data source.
  21. Grid columns. New attribute, “Visible When Editing”. Columns are hidden until the grid row is being edited. This provides a better UI grid for mobile devices.
  22. Switching between Pages, Sections, Formitems and GridColumn attributes now maintains the “search” text. This speeds up the reviewing of attributes during development.
  23. When using the debugger with LianjaScript, clicking the “Stop” icon now cancels execution when the debugger is active.
  24. Lianja.showDialog() and Lianja.showDialogPanel() are now responsive in web / mobile. This can be seen when using the “QueryBuilder” on mobile devices.
  25. *new* App UiLibs. Design pages visually then add them to the App UiLib enabling them to be used with lianja.showDialog() and Lianja.showDialogPanel(). Check the page attribute “Register in UiLib”. The pages are not included in the pages menu but can be used with dialogs by specifying “page: pagename” as the file name.
  26. DialogPanels can be be shown on top of existing ones. So for example if a page in the UiLib contains a grid section, then editing a row in the grid will overlay the grid with the “EDIT FORM” and clicking “Done” or “Cancel” will switch back to the previous DialogPanel i.e the grid section. This provides smoother UI transitions and a better mobile experience when screen size is limited.
  27. Added two new delegates to "Grid" sections, "Interactive Change" and "Row/Col Change". Both of these delegates are passed three arguments.
    (nRow, nColumn, cValue)
    These correspond to the cell row, column and value in the cell which is always passed as a character string.
  28. Added some new VT properties:


    This is called to translate a native Lianja SQL WHERE condition for a target SQL database syntax. Called with cWhereCondition, cDBtype.
    This should reside in the database container.


    Use this to correct ODBC interpretation of BIT field in MySQL


    Where options are database specific.

    e.g. for ODBC to increase packet size

  29. Various UI tweaks and improvements.
  30. Performance and stability improvements.
  31. Various bug fixes.