Results 1 to 1 of 1

Thread: Lianja 7.2Beta42 Update

  1. #1
    Lianja Development Team barrymavin's Avatar
    Join Date
    Feb 2012
    Location
    UK, USA, Thailand
    Posts
    6,842
    Blog Entries
    18

    Lianja 7.2Beta42 Update

    Lianja 7.2 will be the next general release.

    I have uploaded Lianja 7.2Beta42 for Windows for those of you who have access to pre-release versions.

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

    We have made a lot of productivity improvements in 7.2 with a much improved low-code engineering experience.

    This version has new desktop form designer functionality and much better python integration in both desktop and web apps.

    Changes since 7.2Beta41

    - The "Shortcuts" icon in the lower left of the ModeBar has now been renamed to "Develop" providing faster selection of common development activities.

    - Added "Chart" to the advanced Canvas controls menu. You can now add pie, line, doughnut and bar charts to your canvases.

    - Added "GroupBox" to the advanced Canvas controls menu. The GroupBox is a transparent panel with a title. You can drag other UI controls into it and they will not be obscured.

    - Added Lianja.pushDataSession() and Lianja.popDataSession(). These are no-ops in Web/Mobile Apps but perform a PUSH/POP DATASESSION is all supported scripting languages in desktop Apps.

    - Added several new methods getElementByID() and get() to the UI framework "Form" class. These can be used to lookup UI objects inside forms that have been created using the new Form designer.

    This is particularly useful for looking up UI elements in a form from within delegates. Forms contain UI elements (containers and controls) that are encapsulated in a namespace to prevent polluting the global namespace. thisform always refers to the parent form inside delegates. When building forms visually in the Form designer the UI elements are uniquely named using the page1_section1_field1 standard naming convention. This is also true for Webviews and Grids. i.e. page1_section1 standard naming convention.

    Code:
    myform = createObject("form")
    addObject("mycont", "container")
    el = myform.getElementByID("mycont")
    el.backcolor = "lightgreen"
    - Further desktop Form designer improvements and refinements.

    - Various tickets fixed.

    Changes since 7.1

    - Added some new attributes to the "Form" class for a much improved low-code desktop "form" building experience. Open the Component/Form manager and double click "pytabview 1.0", click "save" and "Run" to run a Python example. (Note that the Lianja Framework can be used with LianjaScript/VFP, Python and JavaScript).
    -- toolbar
    -- toolbarlayout (e.g. "lib:/images/myicon1.png@Customers,ib:/images/myicon2.png@Orders" )
    -- toolbarposition
    -- actionbar
    -- menubar
    -- menubarlayout (e.g. "Customers(Add,Delete,Search),Orders(Add,Delete,Se arch)" )
    -- New event delegate: initForm()
    -- New event delegate: menubarclick()
    -- New event delegate: toolbarclick()
    -- New event delegate: actionbarclick()
    -- New event delegate: beforeclose()
    -- New event delegate: afterclose()

    - Added some new attributes an methods to the "Container" class for a much improved low-code "form" building experience. This is particularly useful for dialog forms activated with Lianja.showDialogForm().
    -- recordsource (assign a SQL statement or a database!tablename and the container will handle data binding and "ActionBar" actions from its parent form)
    -- open()
    -- close()
    -- add()
    -- delete()
    -- first()
    -- next()
    -- previous()
    -- last()
    -- save()
    -- cancel()
    -- controls( number1 | "name" )
    -- New event delegate: menubarclick()
    -- New event delegate: toolbarclick()
    -- New event delegate: actionbarclick()
    -- New event delegate: initFormDefaults()

    - Fixed an issue where adding a new record in a web/mobile app when the section has an 'order by' specified causing the new record not be displayed in the correct order after saving it.

    - Lianja 7.2 brings low-code Python to Desktop, Web and Mobile App developers. Run Python UI delegates in the browser. Call server-side Machine Learning code on the server!
    -- See https://www.lianja.com/community/sho...App-developers

    - LianjaScript, Python and JavaScript forms can now all be generated when saving a canvas section.
    -- These can all be tested from the "Visual Component/Form Manager" by selecting a tile then clicking the "RUN" button.

    - Improved anchor support in Canvas Sections.

    - Canvas Designer now supports "Groupboxes".
    -- Specifying a caption such as +title renders the label with a border and a titlebar.
    -- Specifying a caption such as -title renders the label with a border and a groupbox title.

    - New "Label" attributes. When displayed as a groupbox or a titled box the label is transparent and bordered and all events pass through it to UI controls underneath it.
    -- "groupbox"
    -- "title"

    - You can now use the Visual Component/Form Manager to navigate between forms and components in different Apps and edit them. Double click a tile in the Manager to "Edit". Click "New" to create a new component or form.

    - Added a new function is_function( varname | cExp ). This can be used to test if parameters passed to functions are procedures or functions. e.g.

    Code:
    proc myproc(arg1, arg2)
      if is_function(arg1)
          arg1()
      endif
    endproc
    - Added "Shading" property to all classes. This can be "None", "Light" or "Dark". This provides a nice drop shadow effect on UI controls. This has also been exposed in the Canvas Designer.

    - Added "Transparency" property to all classes. This can be "None", "Light" or "Dark". This provides a nice transparency effect on UI controls. This has also been exposed in the Canvas Designer.

    - Further improvements to the Visual Component/Form Manager.

    - Usability improvements in grid editing

    - Added a new button to the Visual Component/Form Manager. This will open an App called mycomponents (or create it if it does not exist), create a new page and then create a canvas section on the page. You should fill in the “Visual Component Details” in the attributes and the scripting language that you want to write the delegates in. You can then visually design a new component or form.

    - Saving Visual Components (Canvas section with Visual Component Details) copies the saved component into the current app as well as the components directory. This provides the ability to visually design forms in LianjaScript/VFP, Python and JavaScript.

    Activate the saved forms like this:

    Code:
    Lianja.showDialogForm("window title", "myform?props...") // if no extension defaults to a LianjaScript dbo
    Lianja.showDialogForm("window title", "myform.py?props...")
    Lianja.showDialogForm("window title", "myform.js?props...")
    or using special file prefixes to reference forms in other apps.

    Code:
    Lianja.showDialogForm("window title", "app:/mycomponents\myform?props...") // if no extension defaults to a LianjaScript dbo
    Lianja.showDialogForm("window title", "app:/mycomponents\myform.py?props...")
    - Added a new section delegate initForm(). This delegate is called when a Visual Component Form is activated. You can open a database and it’s tables required by the form in this delegate. Note that activating a form will automatically PUSH / POP DATASESSION so there is no need to do this.

    - oledb workarounds for VFPOLEDB driver bugs with datetime and logical fields

    - *new* You can now build forms visually in the Canvas Designer using JavaScript, LianjaScript or Python and create standalone executables from these.

    - Python debugger improvements

    - *new* python now provides dynamic binding to event handlers in custom Python code (same functionality as LianjaScript and JavaScript). e.g.
    object.click = my_click_function

    - *new* Lianja.showDialogForm("title", "componentlib.componentname?componentargs...". componentargs is a ';' separated list of objectname.attribute=value pairs. The objectname corresponds to the formitem name in the canvas section that has been saved as a component. Forms can be developed visually in LianjaScript, Python or JavaScript.

    - SQL optimizer improvements and fixes resulting in an overall speed boost

    - Added serveral new cryptographic hash functions. SHA-256 is a popular hashing algorithm used in Bitcoin encryption (and other blockchain applications).
    -- sha256( cExp ) this returns the SHA256 cryptographic hash for the specified character string
    -- sha256File( cFilename ) this returns the SHA256 cryptographic hash for the specified file
    -- sha256Record( [alias] ) this returns the SHA256 cryptographic hash for the current active record
    -- crc32Record( [alias] ) this returns an 8 byte hexidecimal value (A cyclic redundancy check) for the current active record

    - Many Canvas Designer improvements.

    - Added new function tableSeqno(cDatabase, cTable). You can use this to apply a default seqno() in client/server Web Apps. If you use seqno() in a default value for a column then when the App is generated as a Web or Mobile App seqno() will automatically be translated to use tableSeqno().

    - Further "Assistant" improvements:
    -- Improved "Anchor" layout support
    -- Added "Order By" to allow column selection to order a section by using a field picker.
    -- Added "Filter" to allow specifying of a filter using the query builder.

    - Datetime date display format now defaults to the system locale. It can be changed using the SET DATEFORMAT TO "..." command.

    Code:
    set dateformat to "ISO" or "yyyy-MM-dd"
    set dateformat to"ANSI" or "yyyy.MM.dd"
    set dateformat to "JAPAN" or "yyyy/M/d"
    set dateformat to "BRITISH" or "d/M/yyyy"
    set dateformat to "AMERICAN" or "M/d/yyyy"
    set dateformat to "GERMAN" or "dd.MM.yyyy"
    set dateformat to "ITALIAN" or "dd-MM-yyyy"
    set dateformat to "FRENCH" or "d/M/yyyy"
    set dateformat to "YMD" or "yyyy/M/d"
    set dateformat to "MDY" or "M/d/yyyy"
    set dateformat to "DMY" or "d/M/yyyy"
    set dateformat to "USA" or "M-d-yyyy"
    - Improved SQL compatability with VFP

    - Column names containing spaces in MSSQL Virtual Tables are now supported. Specify the "translatecolumnname=true" property for the Virtual Table. Column names containing _ characters can be excluded by specifying "translatecolumnnames=-name1,-name2 etc"

    - Improved deployment. Select only those files you want deployed and they will be compiled if required and then deployed. Use "Preview' first to verify the files which will be deployed.

    - When saving data as xml/excel (SELECT or COPY) any invalid characters are now escaped.

    - You can now write to the App Builder console log from .rsp server-side code to assist debugging. Select the console worspace in the App Builder and click the "Preview live in browser" icon.
    Code:
    set debugout on
    writeOutput( cExpression )
    set debugout off
    - Added the ability to redirect output to the App Builder console workspace from .rsp files. This supports arrays and objects just like the ? command does. e.g.
    Code:
    set debugout on
    ? > variable
    ? > _get
    set debugout off
    - Added new "Form" method to help in debugging custom forms
    Code:
    myform = createObject("form")
    myform.printObjectTree()
    - Improved garbage collection.

    - Numerous improvements to the "Page Builder Assistant"
    -- Added "Caption size and "Data size"
    -- Added "Caption font" and "Data font"
    -- Added "Caption alignment" and "Data alignment"
    -- All attributes in the "Formitem" panel can now be edited in a popup dialog. This is useful for long text such as Choices and DataMapping.
    -- Added "Layout" direction for "OptionGroups" in the "Assistant" for Form and Canvas sections.
    -- Added "Multiselect" for "OptionGroups in canvas section in the "Assistant" for Form and Canvas sections.

    - Virtual Table improvements.
    -- Basetable added to the VT dialog to make it more intuitive.
    -- VT Updates now operate with wheretype=3

    - Added a new LianjaScript function gmtime(). This returns a datetime just like the datetime() function but the time is in expressed in Coordinated Universal Time (UTC).

    - The "Page Builder Assistant" is now embedded in the "App Inspector" to speed up development.

    - Further oledb improvements
    -- Improved performance
    -- Now working better with the searchbar in Desktop and Web across all fields

    - Added a new App attribute "Disable success notifications". This operates in Web/Mobile Apps to disable the noise from successful operations such as updating records, upload images etc. Notifications only occur when an error occurs.

    - Included a new example app example_carouselview

    - Improvements to the carouselview section
    -- You can now edit the parameters by clicking on the keyboard icon in the section header
    -- Adding a new image positions on that image after uploading it

    - Minor UI improvements

    - Performance and stability improvements.

    - Various bug fixes.
    Last edited by barrymavin; 2022-06-20 at 06:15.
    Principal developer of Lianja, Recital and other products

    Follow me on:

    Twitter: http://twitter.com/lianjaInc
    Facebook: http://www.facebook.com/LianjaInc
    LinkedIn: http://www.linkedin.com/in/barrymavin

Bookmarks

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  
Journey into the Cloud
Join us