BDL 1.30 new features
Features added in 1.30 releases of the Genero Business Development Language.
Overview | Reference |
---|---|
First version of integrated preprocessor using # hash syntax
for macros. Version 1.32 uses & instead |
See Source preprocessor |
Localization support (multi-byte character sets). | See Localization |
The
|
See 42m module information |
The fglmkmsg tool now has the same behavior as other tools
like fglcomp and fglform : If you give
only the source file, the message compiler uses the same file name for
the compiled output file, adding the .iem
extension. |
See Compiling message files |
New BREAKPOINT instruction to stop a program at a given
position when using the debugger. It is ignored when not running in
debug mode. |
See Setting a breakpoint programmatically |
New assignment operator := has
been added to the language. Assign variables directly
within expressions: IF (i:=(j+1))==2 THEN
|
See Assignment (:=) |
New fglcomp compiler option to detect non-standard SQL
syntax: fglcomp -W stdsql module.4gl |
See SQL portability |
New method Replaces
two occurrences of "old" with "new"... |
See base.StringBuffer.replace |
New methods to read/write complete lines in
base.Channel built-in class: readLine() and
writeLine() . |
See Read and write simple lines |
The FGLLDPATH variable is now used during program linking. | See Compiling source files |
The linker option -O (optimize)
is de-supported (was ignored before). You now get a
warning if you use this option. |
See Linking programs |
The |
See Arrays |
Overview | Reference |
---|---|
New layout rules and form item attributes provide better control of form design. | See Form rendering |
Decoration attribute can be defined in a presentation style file to set fonts and colors. | See Presentation styles |
Action defaults can be specified in forms in the
ACTION DEFAULTS section. |
See ACTION DEFAULTS section |
New ui.Dialog built-in class to
provide better control over interactive instructions. |
See The Dialog class |
COMBOBOX fields now support
UPSHIFT and DOWNSHIFT attributes, to
force character case when QUERYEDITABLE is
used. |
See QUERYEDITABLE attribute |
New presentation style attribute
highlightCurrentRow for Tables, to indicate if the
current row must be highlighted in a specific mode. By default, the
current row is highlighted during a DISPLAY
ARRAY . |
See Table style attributes |
New method appendElement() for
ARRAYs , to append an element at the end of a dynamic
array. |
See Array methods |
New assignment operator := has been
added to the language. Assign variables directly within expressions:
IF (i:=(j+1))==2 THEN |
See Assignment (:=) |
The new method
ui.Dialog.setCellAttributes() allows you to define
colors for each cell of a table. |
See Cell color attributes |
The ui.Window class provides new
methods to create or get a form object. |
See ui.Window methods |
When using a dynamic array in INPUT
ARRAY or DISPLAY ARRAY , the number of rows is
defined by the size of the dynamic array. The
SET_COUNT() or COUNT attributes are
ignored. |
See Controlling the number of rows |
The new form field attribute TITLE
can be used to specify a table column label with a localized
string. |
See TITLE attribute |
New class method
ui.Dialog.setDefaultUnbuffered() to set the default for
the UNBUFFERED mode. |
See The buffered and unbuffered modes |
Action defaults are now applied at element creation by the runtime system. In previous versions this was done dynamically by the front-end. Now, changing an action default node at runtime has no effect on existing elements. | See Configuring actions |
The DATEEDIT field type now supports
DBDATE/CENTURY settings and the FORMAT
attribute. |
See FORMAT attribute |
New default action 'close' to control window closing:
|
See Implementing the close action |
INPUT ARRAY using
TABLE container now needs FIELD ORDER
FORM attribute to keep tabbing order consistent with visual
order of columns. |
See Defining the tabbing order |
New instructions
|
See ACCEPT INPUT instruction, ACCEPT DISPLAY instruction, ACCEPT CONSTRUCT instruction |
New dialog attribute ACCEPT /
CANCEL to avoid creation of default actions 'accept'
and 'cancel'. |
See INPUT instruction configuration |
New default action 'append' in INPUT
ARRAY . Allows you to add a row at the end of the list. |
See Default actions in INPUT ARRAY |
New method ui.Window.createForm() to
create an empty form object in order to build forms from scratch at
runtime. |
See ui.Window.createForm |
TOPMENU definition in forms now
allows attributes in parenthesis. |
See TOPMENU section |
The form layout syntax now allows you to specify the real width of form items by using a dash '-' in the layout tag. |
See Widget size within hbox tags |
Important remark: Before build 530 the
MENU has attached the window when returning from the
BEFORE MENU actions. Since build 530 the
WINDOW must exist before the MENU
statement. So now the Menu AUI tree node is available
in the BEFORE MENU block, but a window opened or made
current in the BEFORE MENU block will NOT be
used. |
|
Layout GRID now accepts HBox tags to
group items horizontally. |
See Hbox tags |
Form VERSION attribute to distinguish
form revisions. |
See VERSION attribute |
Form layout SPACING attribute to
define space between widgets. |
See SPACING attribute |
Form DEFAULT SAMPLE instruction to
define a default sample attribute for all form fields. |
See INSTRUCTIONS section |
New form item attributes: SAMPLE ,
JUSTIFY , SIZEPOLICY ... |
See SAMPLE attribute, JUSTIFY attribute, SIZEPOLICY attribute |
To hide form elements by default, that can be shown by
the end user by option, use HIDDEN=USER as 'hidden to
the user by default'. |
See HIDDEN attribute |
Individual table columns now have new attribute
UNMOVABLE to avoid moving. |
See UNMOVABLE attribute |
WANTCOLUMNSANCHORED replaced by
UNMOVABLECOLUMN and WANTCOLUMNSVISIBLE
replaced by UNHIDABLECOLUMNS . |
See UNMOVABLECOLUMNS attribute, UNHIDABLECOLUMNS attribute |
Tables now accept a WIDTH and
HEIGHT attribute to specify a size. |
See WIDTH attribute, HEIGHT attribute |
New RADIOGROUP attribute to define
the orientation of the radio buttons:
ORIENTATION . |
See ORIENTATION attribute |
The MENU COMMAND clause now generates
action names in lowercase. This means, when you define COMMAND
"Open" , it will bind to all actions views defined with the name
'open'. |
See COMMAND [KEY()] "option" block |
New ui.Interface.loadTopMenu() method
to load a global TOPMENU . |
See ui.Interface.loadTopMenu |
The ON CHANGE block is now invoked
when the user clicks on a CHECKBOX ,
RADIOGROUP , or changes the item in a
COMBOBOX . |
See ON CHANGE block |
New DIALOG keyword to reference the
current dialog as a ui.Dialog object. This can be used
for example to enable/disable fields durint the dialog
execution. |
See The Dialog class |
The
|
See The Form class |
New methods are provided in
ui.Interface to control the MDI children. |
See Window containers (WCI) |
In INPUT ARRAY , CANCEL
INSERT now supported in AFTER INSERT , to
remove the new added line when needed. |
See CANCEL INSERT instruction |
Important: Hiding a toolbar or topmenu option does not
prevent the use of the accelerator of the action. Use
ui.Dialog.setActionActive() to disable an
action. |
See ui.Form.setElementHidden |
New option NEXT FIELD CURRENT to
gives control back to the dialog instruction without moving to another
field. |
See Giving the focus to a form element |
Overview | Reference |
---|---|
Support for PostgreSQL 7.4 with parameterized queries. | See PostgreSQL |
A MySQL 3.23 driver is now provided for Windows™ platforms (was previously only provided on Linux®). | See Oracle MySQL / MariaDB |
The
to a standard syntax:
|
See UPDATE |
On Windows platforms only, the ix drivers automatically set standard Informix® environment variables with ifx_putenv(). Values are taken from the console environment with getenv(). Additional variables can be specified with:
|
See |