Lianja 6.4 will be the next general release expected this month.

I have uploaded Lianja 6.4Beta4 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.

Changes since 6.3.2

  1. Added built-in support for KVS in Python as described here.
  2. You can now use the Python pip command directly in the Lianja/VFP console tab e.g. to install the numPy package in the current App:

    e.g. to install numpy

    set backticks on
    pip install --target=`cd`\python3\ numpy
  3. Added some new KVS functions.

    kvsid = kvs_open("filename.kvs" [, lShared] ) // you can now open a KVS shared or exclusive
    cnt = kvs_removerange(kvsid, nStart, nCount)
    cnt = kvs_loadFromFile(kvsid, "filename.txt")
    cnt = kvs_saveToFile(kvsid, "filename.txt")
    cnt = kvs_generate(kvsid, nCount)
  4. Added some new built-in Python functions.

    str = filetostr(filename)
    strtofile(string, filename [, nFlag])
  5. Added support for the VFP amembers() function (with enhancements).

    cnt = amembers(arr, object | classname [, 1])

    Arr is 4D array when third parameter is 1 otherwise 2D

    Arr[n, 1] = membername
    Arr[n, 2] = Property | Method
    Arr[n, 3] = datatype
    Arr[n, 4] = value

    build an object browser like this:

    amembers(arr2, arr[1], 1)
    select 0
    create table if not exists _amembers (name char(32), type char(20), datatype char(20), value char(255))
    use _amembers
    append from array arr2
    goto top
  6. Added support for the VFP aselobj() function (with enhancements)

    cnt = aselobj(arr)

    Arr[1] = activepage
    Arr[2] = activesection
    Arr[3] = activeformitem
    Arr[4] = activegridcolumn
    Arr[5] = objectundercursor
  7. Added new Camera Custom UI framework class
    • Use the webcam on your machine to capture and store images
    • Useful for time clock like apps to associate a photo when a user clocks in and out
    • See the example_timeclock app

  8. Added new Chart Custom UI framework class with support for Google Charts
    • Add charts to your apps using custom code
    • Doc to come


    • Charttype
    • Charttable
    • Chartwidth
    • Chartheight
    • Charttitleforecolor
    • Charttitlebackcolor
    • Chartlabels
    • Chartlabelsabove
    • Chartkeylabels
    • Chartlabelforecolor
    • Chartbackcolor
    • Chartgutterleft
    • Chartgutterright
    • Chartguttertop
    • Chartgutterbottom
    • Chartshadow
    • Charteffects
    • Chartgradient
    • Chartgradientstart
    • Chartgradientend
    • Charttooltips
    • Chartcolors
    • Chartdelegate
    • Charttitle
    • Chartdata
    • Chartoptions


    • refresh()

  9. Enhancements to the Form Custom UI framework class

    New methods:
    • Showmessage()
    • Hidemessage()
    • Showinfomessage()
    • Showsuccessmessage()
    • Showerrormessage()
    • Showwarningmessage()

    New events:

    • moved(x, y, width, height)

  10. Added support for building a standalone executables. See this blog article.
    • Build a standalone GUI desktop app that was hand coded using the Lianja UI framework with UI layouts
    • Create a new app then check "Standalone exe" in the App attributes.
    • Code in LianjaScript, Python or JavaScript using the Lianja UI framework classes.
    • Build and run automatically by clicking "Desktop App View"
    • Output is placed in x:\lianja\standaloneapps\appname\ as a self contained app directory
    • You can zip this directory up and copy to distribute then install anywhere on a target machine
    • These GUI apps are currently windows specific
    • Useful for building small native GUI apps
    • File <appname>.prg, <appname>.py or <appname>.js is the app entrypoint dependent on the scripting language
    • Run app “appname.exe” in the x:\lianja\standaloneapps\appname\ directory
    • Data resides in the data subdirectory unless changed with the —datadir command line switch or the set datadir command
    • Open the example_timeclock App and run it by clicking “Desktop App View”.

  11. Performance and stability improvements.
  12. Various bug fixes.