This section briefly overviews enhancements and modifications introduced into Lycia 3 as compared to earlier versions of the product.
For any further information, please, refer to corresponding sections of this online documentation.
Due to the recent Eclipse updates, additional workspace manipulation is required with your workspace.
Before updating your Lycia package, please:
-- commit all your projects and programs to your team repository or to any other convenient location;
-- clean your old workspace (or specify a new one when installing the new Lycia package);
-- update your Lycia package.
|
General Changes
|
Lycia 3 installation package goes with an instance of Jetty web server which is installed together with Lycia and starts automatically. |
|
Lycia 3 does not support such Hydra clients as Phoenix, Chimera, and console (character) mode. Instead, Lycia 3 is developed to support LyciaDesktop for Windows and Linux, LyciaWeb, and LyciaTouch. |
|
Clients and Tools
|
|||
|
LyciaDesktop is the Querix multi-platform thin-client. It allows Querix customers to render and use 4GL applications like native desktop ones. Can be run both under Windows™ and Linux™ OS (hereafter, other operating systems will follow). |
|
Lycia Web is the Querix web client. It combines Ajax and HTML5 technologies so as to allow running 4GL applications in web environment. Unlike LyciaDesktop, LyciaWeb does not need any special software installed other than a web browser: Thus, 4GL programs can be run on any computer which has an Internet connection and a web browser, without any specific adjustments. |
|
|
LyciaTouch is the Querix mobile client intended to enable 4gl developers to deploy their applications to any mobile devices including tablets and smart phone. |
|
|
|
|
Lycia Form Designer is a powerful form designer based on the Window Builder engine. It makes GUI application development easier and less time-consuming. Lycia 3 Form Designer provides Querix customers with a completely different approach to the form layout and offers many new widgets. |
|
Lycia Theme Designer is a standalone graphical tool that uses XML-files for recording display features. It accomplishes creation and utilization of theme files containing style templates, while previous versions of Querix thin clients used script files (text files with the .qxs extension) to customize the 4gl application appearance. |
|
|
Due to the REST web-service framework, the entire 4GL program logic is now available via an XML-based web service interface which allows utilizing remote programs, calling functions, triggering actions, and returning values. |
|
BIRT™ is an Eclipse-based open source reporting platform for server, desktop, and web-based applications. It consists of two components, a visual report designer and a runtime component.
|
|
|
Data typesin addition to the base 4GL and Lycia 1 and 2 data types, Lycia 3 introduces new data types: |
|
Error HandlingLycia 3 introduces some extensions for error handling: |
TINYINT Data Type an integer data type used for storing small values from -128 to 127 LVARCHAR a character string data type used for storing large strings of characters - up to 32765 bytes XMLATTRIBUTE an XML data type holding data about a particular node attribute XMLATTRIBUTELIST an XML data type holding the attribute list of a particular node XMLNODE an XML data type used for the storing and manipulating nodes XMLNODELIST an XML data type holding node values XMLSAXPARSER an XML data type implementing a SAX parser for 4GL
|
is functionally equal to WHENEVER ANY ERROR GOTO label construction but has a less complicated syntax: TRY try_block [CATCH catch_block] END TRY
can be specified in WHENEVER [ANY] ERROR statement. Signals to the Dynamic Virtual Machine that any occurring exception should be handled by calling a new function rather than by the current one: The current function is terminated, and the program control passes to the calling routine.
|
|||
|
Classesin addition to the base 4GL and Lycia I classes, Lycia 3 introduces new classes |
|
|
|
allows access to application environment and certain internal information base.Channel provides read and write access to files as well as some functionality for communicating to application sub-processes provides the user with the additional methods for manipulating character strings base.StringTokenizer allows splitting a string into tokens according to delimiters allows handling files and directories on the server side allows manipulating ComboBox form object allows querying, configuring, and controlling current interaction allows controlling events caused by DRAG and DROP actions allows manipulating forms created by OPEN FORM and OPEN WINDOW WITH FORM statements allows manipulating MDI containers allows manipulating windows created by OPEN WINDOW statements |
|
|
|
New Features
|
A new Preferences page - Web Browser - is added that allows specifying the default browser that will be used to run applications.
Regular expressions are supported.
PlaceHolder widget is used to open a new form or window inside another form. The associated property - Target - is added to allow 4gl developers to open a new form or window to the definite PlaceHolder.
fgl_getlastwidgetid() returns the identifier of the last triggered widget.
CREATE DATABASE and DROP DATABASE statements were implemented for Informix database.
UNL cache (an object cache optimized for 4GL code debugging) is implemented.
MinGW linker is added to Lycia package in order to boost Lycia 3 performance by applying native application cache on the server side.
BOOLEAN, SERIAL8, and NCLOB data types are emulated for Oracle DB.
Verbose output for deployment operations is implemented.
Interoperability between 4GL and static C libraries is implemented.
Lycia 3 provides enhanced possibilities for configuring report output by means of Report Viewer Config theme element and fgl_report_type(), q4gl_add_user_report_type() functions. Report Viewer Config is an Abstract Component now which can be filtered by Element and With ID filters. Has two properties, Viewer Type and Parameter.
Lycia clients can be customized using customer's plug-ins: Customers can import CSS and JavaScript files to obtain unique application appearance and secure necessary functionality at runtime.
length() function takes a character string argument and returns an integer, and can be used to check user input.
Lycia 3 has two separate system theme files, SystemTheme.qxtheme and SystemTheme.css. SystemTheme.css can be customized by Lycia users.
ui.Interface.writeToPipe() ui method is used to send data to the necessary pipe on the client side. |
|
Changed and Replaced Features
|
SERIAL emulation is provided for connecting to PostgreSQL.
Toolbars and menus are disabled on inactive windows.
RelatedFields property is replaced with ContentFilters (for ToolbarItem and MenuItem), and GlobalContentFilters (for ToolbarGroup and MenuGroup) properties.
Scrollbar widget gets a dataType property.
TotalAggregateField property is replaced with Footer property (string).
LYCIA_POST_MORTEM_SEVERITY environment variable is renamed to LYCIA_SEVERITY.
fgl_setkeylabel, fgl_setactionlabel, fgl_dialog_setkeylabel(), and fgl_dialog_setactionlabel() are extended with the optional 6th argument for tooltip.
The performance of the qform command line tool is optimized.
Qlink supports response files.
Lycia Web Application Server log is now written to qxweb_7-stderr.<date>.log and qxweb_7-stdout.<date>.log files. Separate log files are created in C:\ProgramData\Querix\Lycia 7\logs for every application launch.
Modern GroupBox was implemented with the option to collapse and expand its content. Classic GroupBox can be used as well.
The Default value is added to VerticalTextAlignment and HorizontalTextAlignment properties.
MajorTick and MinorTick properties are replaced with Step property in Slider widget.
QXDEBUG gets the -v option (logs environment variables). |
|
Dropped Services and Features
|
Apache Tomcat 8 in favour of Jetty 9 web server.
qxinetd2
SOAP-based web services in favour of the REST web-service framework.
SpagoBI suite in favour of BIRT Report.
Elements: TableRow, TableCell, and TableDataModel - to apply a property to a table row, you can use, e.g. css styles like .qx-identifier-tbl .qx-tbody tbody tr:nth-child(odd){ background-color:#DCDC7D; }
Properties: ActivationMod Aggregate, AggregateText, AggregateType DeltaSize, DeltaLocation IsGroupable, IsFilterable, IsSortable TotalAggregateText, TotalAggregateType MDI Mode property is removed from Theme Designer. You can set MDI mode using the ui.Interface.setType("container") method. HasWindowMenu property is removed from Theme Designer. You can set Window menu item using the QX_MENU_WINDOW environment variable or the fglprofile option, gui.menu.window. Menu Type property is removed from Theme Designer. You can set the type of the menu as CALL ui.Application.GetCurrent().setMenuType("Tree") Disabled option is removed from the HorizontalScrollBarVisibility and VerticalScrollBarVisibility properties. Absolute and Relative options are removed from the GridLengthType property.
Environment variables: QX_REL_WITH_DBG_INFO
Methods and Functions: fgl_window_open() getApplicationMenu()
Filters: Odd / Even - to apply a property to an odd/even element, you can use, e.g. css styles like .qx-identifier-tbl .qx-tbody tbody tr:nth-child(odd){ background-color:#DCDC7D; }
QXS Scripts: compat.ifx.input.display_to = true compat.ifx.input.display.nobind = 1 gui.key.interrupt = "value"
Operators and Operations: <>NULL ==NULL |
|
Known Issues
|
In some cases, Lycia IDE shows an incorrect error location (line number). |