GST 2.50 new features

This publication includes information about new features and changes in existing functionality.

Important: This page covers only those new features introduced with the Genero Studio 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 version.

Corresponding upgrade guide: GST 2.50 upgrade guide.

These changes and enhancements are relevant to this publication. See also Migration notes for Version 2.50.

Table 1. General
Overview Reference
Mac® OS support. No further reference.
All build processes are done remotely for remote host configurations, optimizing speed and efficiency of remote builds on slower connections. See Configuring a remote environment.
Configurations are stored on the remote host allowing users to reconnect from another machine with configurations intact. See Migration notes for GST 2.50 upgrade guide.
Improved file compatibility. If you open a file that was saved with a different version of Genero Studio, you can decide how to handle the file. When working in environments with multiple versions of Genero Studio installed, files will open in the appropriate version. See Open from a different version.
Improved Diff tool. Modifications made to a file are shown as annotations, indicating added, modified and removed lines. You can now switch from a single pane view to a dual pane view showing the original file (as it is in the SVN repository for example) and the locally edited file. See Using the Diff tool.
-diff file1 file2 support. Genero Studio opens the given files in diff mode. This option is also integrated in File Browser. See Command line options.
GAS Standalone (httpdispatch) can be automatically started by setting the startup script in the GAS configuration. See Configure for the Web client.
The Environment Variable definition dialog now includes a value list type. See Add or edit environment variables
User documentation has been migrated to XML-based DITA (Darwin Information Typing Architecture). No further reference.
Distributed mode. Allows the report engine to be started as a daemon to which Genero applications can connect to process the reports, allowing for vastly faster processing for short documents and improved scalability. See Deployment architecture.
Table 2. Project Manager
Overview Reference
Project Manger extended to support other programming languages.

See Building and linking programs.

A Deploy Project 4pw template (File > New > Genero Files > Deploy Project) creates a directory structure recommended for a project which is to be deployed on the Genero Application Server (GAS). No further reference.
Build Rules dialog and File Associations dialogs are accessible from the Tools menu (Tools > Global setup or Tools > Specific setup) and no longer in Preferences. The global setup overrides the built-in factory setup. It applies to all configuration of a user for the current machine or remote machine. The specific setup overrides the global setup and is specified by setting the GSTSETUPDIR variable in the Genero configuration.

User build rules, template build rules, user and template file associations are also stored on the server and not on the local machine allowing users to reconnect from another machine with build rules intact.

See Migration notes for GST 2.50 upgrade guide
$(tcl) has been deprecated and replaced with tclsh in Business Application Modeling build rules. The tclsh executable generates the final file by using both a Tcl template file and the intermediary XML file created by the $(generate) command. See tclsh.
Standard/error output redirection supported in build rules and user actions. See Add/Edit a build rule.
Table 3. Form Designer
Overview Reference
Graphical Topmenu editor allows for Topmenu editing directly in the form design. See Add a Topmenu to a form.
Improved ergonomics in the Form from Database wizard. Easier to create complex queries and select appropriate fields. Shows foreign key relations and NOT NULL constraints. See Create a form.
New and improved form item properties:
A single query property is now used to enter queries instead of several properties.
Replaces uniqueQueryKey. Instead of having one uniqueQueryKey boolean on each field, one uniqueKey contains the list of unique fields.
See Joins and Data order.
Form properties benefit from a new initializer functionality which can set its value from another property. See Form item properties.
Web components locations are specified with the environment variable GSTWCDIR and are no longer specified in Tools > Preferences (or, if you are on a Mac, Genero Studio > Preferences). Environment set configuration now includes a Web Components set. See GSTWCDIR, Migration notes for GST 2.50 upgrade guide.
Table 4. Business Application Modeling
Overview Reference
New dbapp3.0 template with improved functionality:
  • Properties in Business Application diagram allow for customization of the UI behavior.
  • Cascade delete supported in generated code.
  • Web Services can be generated and provide CRUD operations.
  • Improved architecture based on different layers: ui, webservice, uidata, database.
  • Improved insert, update, delete in the data layer.
  • Improved libdbapp architecture.
  • Dialog modularization used. Declarative DIALOG blocks are now defined as module elements and reused with the SUBDIALOG keyword of procedural DIALOG blocks. (See DIALOG Block Structure in the Genero Business Development Language User Guide.)
  • Centralized actions in the generated code.
  • The business record is checked to confirm that the unique key is defined as a primary key or a secondary key in the database schema.
  • The foreign key database constraint existence is checked.
  • Code generation uses unique constraint instead of unique index.
  • Constraints on the relations of Business Application diagram entities can be defined in the settings.agconf file. Validation is done on the constraints during editing.
  • Added native serial management for Informix® database.
  • Manages concurrent access.
  • New support for business record and form files without a database or a masterTable property set.
  • New relation properties allow for specifying the row position in an opened form and applying a SQL filter while opening a form.
See The default template features

Form behavior in CRUD states

Cascade delete

Add Web services

Add constraints or indexes

Managing SERIALs in a generated application

Managing concurrency

Add Relations
The GSTSETUPDIR environment variable specifies the location of the GST setup directory. Part of this directory includes the Business Application Modeling template files. They are no longer specified in Tools > Preferences (or, if you are on a Mac, Genero Studio > Preferences). Environment set configuration now includes a set for each available template set. See GSTSETUPDIR, Migration notes for GST 2.50 upgrade guide.
Create BA entities in the current view only instead of all views. New BA entities are only visible in the current view and are automatically hidden in the other views. No further reference.
A new Toolbar has been added in the Business Application Modeler. This Toolbar contains all the items defined for the Business Application Modeler in the settings.agconf file. No further reference.
Orphan properties now managed. Templates used in Application Generator define dynamic properties that can be used in objects such as records, form fields, and database objects. Opening a file generated with a template version different than the one set in Application Generator preferences may produce a warning indicating that some properties are not found in the current template definition. New warnings signal that those properties can now be removed using the Tools > Specific setup > Clean orphan properties menu option. See Orphan properties.
Added built-in Find. No further reference.
Improved performance for large 4dbx database meta-schema files. No further reference.
Table 5. Meta-schema Manager
Overview Reference
Enhanced Revert action. A dialog is displayed listing changes made on the selected items in the schema with option to select which changes to revert.

See Revert schema changes dialog.

Database > Diff Schema... option. See Using the Diff tool.
Generate Database Update Script option. The Meta-schema Manager is able to generate a database update script. This script will modify the database according to the changes made in the Meta-schema. Previous version of the tables will be backed up and the data will be migrated to the new tables when applicable.

See Generate a database script from meta-schema.

Improved database creation script. The database creation script now supports Secondary Keys and case sensitivity and has improved support for Oracle® MySQL and SQLite databases.

See Generate a database script from meta-schema.

Improved Locate in Diagram action. See Meta-schema diagram context menu.
Create database objects in the current view only instead of all views. New Meta-schema objects are only visible in the current view and are automatically hidden in the other views. No further reference.

Secondary Keys (also known as Unique Constraints) have been added in the Meta-schema Manager.

See Add constraints or indexes
Global meta-schema files are now specified with the environment variable GSTSCHEMANAMES and are no longer specified in Tools > Preferences (or, if you are on a Mac, Genero Studio > Preferences). Environment set configuration now includes a set for Global Database Schemas. See GSTSCHEMANAMES, Migration notes for GST 2.50 upgrade guide.
Table 6. Graphical Debugger
Overview Reference
Stack frames support, provided Genero 2.50 DVM is used. Navigate the call stack. Data view is automatically updated according to the current frame. See Execution flow.
User variables of type ARRAY or RECORD are displayed in the Data view. Values can be re-assigned for complex types. See Examining data.
Enhanced performance when retrieving and displaying data. No further reference.
Support of signal SIGINT and signal SIGQUIT. See Debugger (fgldb) command prompt.
Table 7. Source Code Management (SCM)
SVN Blame command support and integration with Code Editor and SVN Lock command with a new view to manage all locks. See Blame and Locking.
Status view optimized for unversioned files. See SVN Status view.
User and password are based on repository. Different users can now connect to different repositories at the same time. No further reference.
Ignore List action now adds to the ignore list of the current directory only, not recursive up to the checkout directory. No further reference.
SCM tasks are properly interrupted to avoid lock on the checkout. No further reference.
Authentication is global to the checkout and is no longer folder based. No further reference.
Table 8. Genero Report Designer
Overview Reference
Tables support. See Working with tables
Pivot tables support. See Working with pivot tables.
PDF enhancements. Improved PDF output, to include better memory consumption, use of the PDF referencing mechanism to improve Page M of N processing, share recurring images and CID keyed fonts support. No further reference.
Null value support. See The String Class and The Numeric Class, Conditional Expressions.
Improved trigger updates. Algorithm improved to remove the need for frequent manual adjustments for each change within the data schema (rdd) file. See Triggers.
QR code barcode support. See qr-code.
Display position of footers. Layout nodes designated as footers display at the bottom of the Mini Page, providing a WYSIWYG experience for the report designer. See Add headers and footers to a report.
Element creation by context. Create elements based on the document context in the report design. The object type created for a field is determined by the location in the document. See Adding fields from the Data View.
Splitting of oversized elements across pages to prevent overfill. See Split Oversized Items (splitOversizedItem).
Rotation of items. When the Transform transparently property is set on a parent, its children map their orientation based on the parent's parent orientation rather than the parent. See Transform transparently (transformTransparently).
Support for reverse side printing. See Specify a different reverse side page.

Chart sorting. For Map Charts and Category Charts, the sortBy property allows you to specify how the data is sorted: alphabetic, numeric, or by order of declaration of the chart items. The sortAscending property allows you to sort in ascending or descending order.

See Sort By (sortBy) and Sort Ascending (sortAscending).

Fallback image support when the requested image for an Image Box is not found.

See Image Box.
Edit triggers with a Repeat selected items on menu option in the context menu in the Report Structure view, allowing you to select a trigger to be the parent of a document node. See Place a trigger within the report structure.
Class property added for report elements. See Class (class).
Display and modify the sizing policy of containers. See Modify the sizing policy of containers.
The fidelity property has been added to business charts and the pivot table, applied only when the object in question is drawn as a table. See Business Graphs.
The layout direction of a parent container is highlighted in the Genero Report Designer by the addition of a dashed, slowly moving, U-shaped yellow border. See Layout Direction (layoutDirection).
Preference added to control the appearance of RTL expressions in the document view. See Report Writer preferences.
Added options to facilitate the mass generation of images that are sized by their content (e.g. for web sites). See fgl_report_setImageUsePageNamesAsFileNames and fgl_report_setImageShrinkImagesToPageContent.
Table 9. Genero Reporting APIs
Specify the server where a Genero Report Engine is running in server mode. See fgl_report_configureDistributedProcessing.
Configure the environment when the daemon is running on a different machine with different resource directories. See fgl_report_configureDistributedEnvironment.
Distinguish between log entries originating from different users. See fgl_report_setDistributedRequestingUserName.

“Postscript” has been added as an output format to the function fgl_report_selectDevice. The function fgl_report_setPrinterWriteToFile is deprecated.

See fgl_report_setPrinterWriteToFile and fgl_report_selectDevice.
The Reporting API source has been split into two files, libgre.4gl and libgreprivate.4gl. These two files replace helpers.4gl. See Reporting API Functions.
Specify whether the report is printed in portrait or landscape. See fgl_report_setSVGOrientationRequested.
Switch off Unicode embedding. This is useful when the entire report uses Latin characters only, improving performance and document size. See fgl_report_configurePDFFontEmbedding.
The function fgl_report_configureAutoformatOutput has changed from "sort by position of fields in PRINT statement" to "sort by matched pattern and then by position of field in PRINT statement." See fgl_report_configureAutoformatOutput.

To follow the general pattern that calling a function with a NULL value exhibits the same behavior as not calling the function at all, the default values for the first three first parameters of the function fgl_report_configureImageDevice have changed to true.

See fgl_report_configureImageDevice.
The functions to load and commit report settings for the Genero Report Engine now search FGLRESOURCEPATH and DBPATH for relative file names. The function fgl_report_findResourcePath has been deprecated as a result. See fgl_report_loadCurrentSettings, fgl_report_loadAndCommit, and fgl_report_findResourcePath.
Runtime localization. Report can now be localized independent of the language settings of the application. See Change localization settings at runtime and fgl_report_configureLocalization.