BDL 1.20 new features
Features added in 1.20 releases of the Genero Business Development Language.
Important:
This version of Genero BDL is desupported, use a more recent version of the product.
Important:
This page covers only those new features introduced with the Genero BDL version specified in the page title. Check prior new features pages if you migrate from an earlier version. Make sure to also read the upgrade guide corresponding to this Genero version.
Corresponding upgrade guide: BDL 1.20 upgrade guide.
Prior new features guide: BDL 1.10 new features.
Overview | Reference |
---|---|
Integrated debugger with gdb syntax to interface with graphical tools like ddd. | See Integrated debugger. |
The program profiler can be used to generate statistics of program execution, to find the bottlenecks in the source code. | See Program profiler. |
Internationalize your application in different languages with localized strings, by using the %"string" notation. | See Localized strings. |
The TERMINATE REPORT and EXIT REPORT can be
used in reports to respectively stop a report from outside of the REPORT routine, or
stop the report from inside the REPORT routine. |
See TERMINATE REPORT, EXIT REPORT |
The fgl_getversion() function returns the version number of the
runtime system. |
See fgl_getversion(). |
Static arrays can be passed as parameters: all elements are expanded. | See Static arrays. |
New methods for StringBuffer class:
base.StringBuffer.replaceAt() and
base.StringBuffer.insertAt() . |
See The StringBuffer class. |
Operators equal (= or ==) and not equal (<> or !=) now can be used with
records: All record members will be compared. If two members are NULL the result
of this member comparison results in TRUE . |
See RECORD. |
New -W option for fglform to show warnings. |
See fglform. |
LSTR() operator, to get a localized string by name. Useful
when the localized string identifier is known at runtime only. |
See LSTR(). |
SFMT() operator, to format strings with parameter placeholders.
Useful to localize application messages with parameters. |
See SFMT(). |
The base.StringTokenizer class can be used to parse strings
for tokens. |
See The StringTokenizer class. |
CONSTANT language elements can now be defined as
GLOBALs . |
See Constants. |
The base.Application class provides an interface to the
program properties. |
See The Application class. |
Review of the definition of base.Channel class, now based
on objects. |
See The Channel class. |
Overview | Reference |
---|---|
Interactive instructions support the UNBUFFERED mode, to
synchronise data model and view automatically: When you set a variable, the value is automatically
displayed to the field, and when the user fires and action, the field value is automatically
assigned to the corresponding program variable. |
See The buffered and unbuffered modes. |
DISPLAY ARRAY can now work in paged mode, to avoid loading a
large array of rows, with the ON FILL BUFFER clause. |
See Paged mode of DISPLAY ARRAY. |
Centralize default attributes for actions in ACTION DEFAULTS . |
See Configuring actions. |
Client side settings can now be saved by application name, with a specific API. By default it is the name of the program. | See ui.Interface.setName. |
New attribute APPEND ROW = TRUE/FALSE attribute for the
INPUT ARRAY instruction, to control the creation of the default append
action. |
See INPUT ARRAY row modifications. |
New attribute KEEP CURRENT ROW = TRUE/FALSE for the
DISPLAY ARRAY and INPUT ARRAY
instructions, to defines if the current row must remain highlighted when
leaving the dialog. The default is FALSE . |
See Handling the current row. |
You can now define a TOOLBAR in form specification files. |
See TOOLBAR section. |
You can now define a TOPMENU in form specification files. |
See TOPMENU section. |
The fgl_gethelp() function returns the help text for the given
help number. |
See fgl_gethelp(). |
The fgl_set_arr_curr() function changes the current row in
DISPLAY ARRAY or INPUT ARRAY . |
See Handling the current row. |
Users can now send an interruption event to the program,to stop long running SQL queries, processing loops and reports. | See User interruption handling. |
The statusBarType window style attribute to define the
statusbar layout. |
Desupported in V4. See Universal Rendering as standard. |
The new FIELD ORDER FORM option can be used to follow the new
TABINDEX attribute, to define the field tabbing order. FIELD ORDER FORM
can also be used at the dialog level as dialog attribute. |
See Defining the tabbing order. |
For COMBOBOX form items, a default ITEMS list
is created by fglform when an INCLUDE attribute is used. |
See COMBOBOX item type. |
The ON IDLE clause can be used to execute a block of instructions
after a timeout. |
See Get program control if user is inactive. |
New logical order of execution for
|
See Editable record list (INPUT ARRAY). |
New ui.ComboBox class to configure COMBOBOX
fields at runtime. |
See The ComboBox class. |
|
See Predefined actions. |
ON CHANGE field trigger can be used to detect field modification.
Useful for fields such as CHECKBOX and COMBOBOX . |
See Reacting to field value changes. |
Program icon definition with ui.Interface.setImage() . |
See ui.Interface.setImage. |
LABEL fields can now have a FORMAT attribute. |
See LABEL item type. |
Front-end function calls allow to execut code on the front-end side with the
ui.Interface.frontCall() method. |
See Front calls. |
New ui.Form built-in class to handle forms. | See The Form class. |
New ON ROW CHANGE clause in INPUT ARRAY ,
executed when if at least one value in the row has been modified, and the user moves to another
row or validates the dialog. The ON ROW CHANGE block is executed before the
AFTER ROW block. |
See ON ROW CHANGE block. |
MENU instruction now supports ON ACTION
clause, to write abstract menus as simple action handlers. |
See Ring menus (MENU). |
New 'help' predefined action, to start help viewer for HELP
clauses in dialog instructions. |
See Predefined actions. |
Overview | Reference |
---|---|
SQL Server driver now supports the TINYINT data type. | See Numeric data types. |
The fglcomp compiler supports now ANSI outer join syntax in SQL statements
(LEFT OUTER JOIN ), to replace the Informix specific OUTER()
syntax. |
See SELECT. |
FOREACH that raises an error no longer loops infinitely. |
See FOREACH (result set cursor). |
New SQLSTATE and SQLERRMESSAGE registers,
to give SQL execution information. |
See SQL error identification. |