What’s new in 4D v19 R6


Horizontal and vertical cell padding

The power of list boxes is extended with 4D v19 R6 thanks to two new properties: horizontal and vertical padding (the inner margins or the space between an element’s content and its border). They will give your list boxes new presentation possibilities, and your interface will have an even more professional look.

These properties can be set globally for the whole list box or for each element like columns, headers, or footers. Once defined for the list box, they will be applied to every sub-object of the list box by inheritance. But of course, each sub-object can have its own settings.

Setting the padding can be done either:

  • via design mode from the list of properties under “Coordinates and sizing.”
  • or by programming using the LISTBOX SET PROPERTY command thanks to two new constants, lk cell horizontal padding and lk cell vertical padding.


Microsoft 365

Get user information from Azure

Besides providing access to Office applications, Microsoft provides an Azure-based Active Directory, allowing users to log in to access services such as Microsoft Sharepoint or OneDrive using a Web Browser. All Microsoft services use the same Single Sign-On, based on the email address. From 4D v19 R6, 4D NetKit allows you to be part of this concept, enabling users to log in to your application using their usual company credentials.

Besides allowing Single Sign-On, it will enable retrieving information on an authenticated user, such as email, department, and phone number. If permitted by the administrator, you can even retrieve such details about the user’s colleagues within the same company.

Send Emails

For those working with Office 365, 4D v19 R6 brings an API to send emails via the Microsoft Graph API. The OAuth 2.0 functionality was a prerequisite to connecting to the Microsoft server, and allowed us to introduce commands for retrieving information on users. Today we’re moving one step further with email management, starting with the send email command.


Project Mode

Developing concurrently on 4D Server in project mode

If you are one of the developers who asked for the possibility to work simultaneously with teammates on a single development server, then 4D v19 R6 will grant you your wish, thanks to a new mode for connecting a 4D Client to a 4D Server: development mode.

In development mode, developers can modify the database structure, methods, forms, and settings. We changed the locking system to provide the same functionality as in binary mode.

4D Write Pro

Dynamically fill tables with entity selections & collections.

Manually filling the tables with data every time is a laborious task. And that’s where data context comes as an invaluable option, opening the world of ORDA and object-oriented development to 4D Write Pro templates.

It is now possible to define a “datasource” for the tables of 4D Write Pro. Whether it is an entity selection or a collection, this “datasource” will automatically feed the rows of these tables. The tables will automatically be enlarged based on the selection, even adding additional pages when needed. This allows the end-user of your application to design or modify templates that will be filled automatically with data.

Disable Visibility of Empty Images

4D Write Pro documents can contain images from different sources and in various formats. These images may, in some cases, not be displayed for totally reasonable reasons — such as invalid URLs, formulas returning empty images, formats not supported by the platform, etc.

However, they are always represented by a small empty rectangle showing their theoretical location. 4D v19 R6 is shipped with a new view option enabling you to make empty images completely invisible. This can be done in 3 different ways:

  • The first and most straightforward way is to use the property list, which offers a new entry in the appearance theme. 
  • or via the user interface in which a new element appears. Either in the toolbar or in the sidebar.
  • or by programming using the new wk visible empty images parameter.

4D View Pro

Display your Collections as Tables

4D View Pro already allows you to easily load and display data in spreadsheets. 4D v19 R6 brings a new table feature that enables you to do much more and benefit from additional properties like headers, table resize, summary row, column sorting, filters, and more. This feature allows you also to quickly load data from data classes and collections. Say hello to the new VP CREATE TABLE command.


4D for Mobile


As you probably know, aliases have been available for some time now. The introduction of aliases and computed attributes was a massive step forward in our development framework.

The days of defining business-related formulas in your 4D user interface are over; these concepts offer you a new way to separate your business logic from the UI, enabling you to improve performance by optimizing the parts separately.

And now, with 4D v19 R6, aliases are fully available and ready to use for scalars in your iOS and Android mobile projects as soon your aliases are defined on the 4D side. With v19 R6, you can display the same mobile screen values anywhere in your database.


4D for Android’s new features

With every feature release, we ship new features to 4D for Android. Features that are already available in 4D for iOS. And 4D v19 R6 is no exception with two new additions:

  • The management of offline actions,
  • and the possibility of not regenerating the data at each generation of the mobile application to save time.

HTTP Client

New HTTP classes

To continue improving the syntax and functionality of 4D, we have decided to modernize the HTTP client commands in 4D. As a result, the first set of HTTP classes comes with 4D v19 R6. This is only the start. More functionalities will be coming with future releases.



Support of larger integers than integer32

So you need larger numbers than 2 Billion (32 bits) with high accuracy for counters or similar? We enhanced reals and the way they’re handled to allow that. While reals are known to be unprecise, they are 100% accurate even for very large numbers, as long as they do not use a decimal point (=integers). This lets you use numbers up to 53 bit, or more exactly, [-(2^53)+1, (2^53)-1]. So a range from −9,007,199,254,740,992 to 9,007,199,254,740,992, will be exactly represented.

Converting to or from the text was limited to using 12-digit scientific notation, resulting in a loss of precision. With 4D v19 R6, we have improved the accuracy and conversion of any Real number (presenting an integer) into a Text. The improvement of the conversion to string concerns the String() command and the JSON and XML commands returning numbers in string form.

Support of Formulas in Collections & Callback Commands

In order to give a simpler way to use collections with a member method that needs a callback method, 4D allows you to use a formula to define a callback in:


Data Explorer

Display Relations

The data explorer allows you to view, sort, and query your database data using a modern, simple, and elegant web interface. With 4D v19 R6, the data explorer is evolving. You can now visualize the relations in your data.


Want to know more? Read all the blog posts about 4D v19 R6