3.1 New Features:

Flexible screen hierarchy:

In previous versions, the initial screen in an application was a single grid with no header. This restriction has been removed, an application can start with any screen, with a header, a footer and other fields just like other screens.

Configurable menus

Configurable context menus amd click menus for each field and grid, and configurable escape menus for forms. Escape menu items are now not automatically linked to screens any more allowing more flexibility in workflow between screens.

Lua scripting

Lua is an open-source, documented scripting language which brings an object-oriented programming model to MAP, it is also used as a scripting language in Android. Studio has an improved script editor/debugger for both Lua and the legacy Bscript, which allows debugging of Lua script running on both Windows Mobile and Blackberry device simulators, including the ability to set breakpoints and view script variables.

Additional configurations using lookup tables

Menus and screen field visibility and labels can be configured by lookup table, supporting partial multi-language and configuring screen labels based on the record being viewed.

Logon screens

MAP now supports a configurable login screen, and configurable logon rules defined by a synchronization rule. After logon, the data row returned from the login query is accessible by all applcations and can also be used to store other user data, which is retained in permanent memory.

Flexible table assignment

The main table, secondary tables and lookup table definitions have been merged into one set of tables with no arbitrary distinctions

New field types:

Password field

GPS Timed updates

The GPS can be configured to get the device location at specified intervals and stored in a table. The table contents can then be uploaded using a background synch rule to maintain a record of device position over time. To manage battery life, diferrent rules can be applied when the device is on external power and when it is running on battery.

Databinding

The method of binding data to screens has been improved, allowing more flexibility in loading data.

The type of databinding (new, update, find, copy) is now defined by the menu or action that loads the screen, not the screen definition, allowing re-use of screens. An optional deep copy databinding method has been added which will create a new record from the currently selected record, and can also add copies of any detail records linked to the original record. Data on screens now automatically update if a background synchronization updates the data record.

Studio improvements

In addition to supporting new features above, many issues with the screen layout not matching the final layout on the devices are now fixed, and various other bugs fixed. Added improved warning messages, ability to hide specific messages.


Database support

Support for Sybase has been added.

Improved Html field

Blackberry OS 5.0 compatible

New Progress Screen

New 'RowObject' tables

Originally introduced in 3.0, extended to be fully operational in 3.1, these tables consist of one row only and can be bound to any field on any form without restriction. Useful for global entities, for example maintaining status.

Improved runtime installation

For Blackberry devices with OS4.3 and greater, an installation step has been removed. After the runtime is installed by loading from the browser, the runtime automatically sets up the link to the server to download the project – it is not necessary to enter in the url again for MapDataServer.

Configurable Escape menu on main screens and startscreen.

Porting 3.0 Applications to 3.1

All features are automatically converted including:

Main Grid screens are converted to regular forms.

Menus: The 3.0 automatic menus created using the existing screen hierarchy are converted to new menu definitions using the appropriate action: Synch, Script or a ShowScreen action and databinding.

The main table, secondary table and lookup tables are merged into the one tables list.

Fieldchanged script are moved into a fieldaction

BeforeShow