BDL 1.20 new features
Features added in 1.20 releases of the Genero Business Development Language.
Corresponding upgrade guide: BDL 1.20 upgrade guide.
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. |
See Window style attributes: Miscellaneous. |
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 ( |
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. |