What’s new in 4D v19 R5

4D View Pro

A new version of spreadJS – v15.0.4

With 4D v19 R5, 4D View Pro comes with a new version of SpreadJS, v15.0.5, packed with improvements and new features designed to help accelerate your 4D View Pro development. For instance:

  • TableSheet and Data Manager: This quick, data-bound table view includes a relational data manager that makes sorting, filtering, and many other data management functions incredibly fast.
  • Ribbon enhancements: 
    • Printing: The Ribbon now supports printing with a page setup dialog. This dialog includes tabs for Page, Margins, Header/Footer, and Sheet, allowing you to control the various familiar options for printing SpreadJS workbooks (details about printing in the section below).
    • Text to Columns: You can now convert delimiter-separated text in a cell to text across multiple columns, splitting the text using the delimiter.
    • Remove Duplicates: The new Remove Duplicates option can be used to remove redundant data automatically and more quickly.
    • Change Sheet Tab Position: The position of the sheet tab strip can now be changed with a simple context menu item.

Learn more and find examples in the blog post >

Print interface

To make it easier for your customers to set up printing, the Ribbon now has a new addition; it supports print settings with a “Page layout” tab and a “Page setup” dialog. This dialog includes tabs for Page, Margins, Header/Footer, and Sheet, allowing users to manage many options in the VP SET PRINT INFO command.


Populate your sheets with A data context

4D View Pro offers you a new way to load your data and create your templates: the data context. It allows you to create your document with placeholders and fill them by setting this data context. 

4D Write Pro

Define data contexts

4D v19 R5 opens the world of ORDA and object-oriented development to 4D Write Pro documents. 4D Write Pro documents often contain formulas returning data or calculations depending on the database. Thanks to contexts, associating that data with documents is as straightforward as using the This keyword.


Table headers

This feature brings another useful table display option, available by programming or through the 4D Write Pro interface widgets. Starting with 4D v19 R5, you can define headers in tables and automatically repeat them after a column or page breaks. 

Linked paragraphs

To have better control over the document’s layout, 4D v19 R5 is shipped with the possibility to choose if a paragraph and the one that follows must remain linked (not separated by an automatic page or column break).


IMPROVEMENTS TO Interface widgets

4D v19 R5 brings a set of features to the interface widgets:

  • We have added a menu to insert formulas in both interfaces.
  • We’ve also added several attributes of paragraphs for better respect of typography rules, to have a more readable and more aesthetic document, such as:
    • Widow and orphan control
    • Avoid page breaks inside
    • Keep with next 
    • Line height
  • In the sidebar widget, you can now manage page breaks, section breaks, columns, and view parameters like orientation, format, type (draft, page, or embedded), or visibility of some elements (invisible character, header, footer).
  • As for the toolbar widget, we’ve added the possibility to fill in the fields, title, author, subject, company, and notes.

4D language

Allow components to publish classes

Suppose your application is still running in binary mode. In that case, this feature will enable you to benefit from classes and object-oriented development by using a component (in project mode) to create your own classes and use them from your (binary mode based) application. So starting with 4D v19 R5, a new Component section is added to Structure settings -› General allowing you to configure how your component classes and functions will be exposed in the 4D method editor once the component is installed.

Forward parameters from a function or method to another

With 4D v19 R5, developers don’t have to handle complex parameter checks (count parameters, value types) when calling a function and passing parameters.

A new command is provided, Copy parameters, allowing to easily pass parameters used for a function or method call to another function/method. This results in a lighter, more elegant, and easier-to-read code. 

Form and subform communication

Starting with 4D v19 R5, associating a variable with a subform has enriched the possibilities of interfaces and communication between forms and subforms. The means of communication are now simplified by two new commands: OBJECT Get subform container value and OBJECT SET SUBFORM CONTAINER VALUE


Directory file management in merged server projects

On the server-side, the current user is always the Designer, and therefore access to runtime explorer is always allowed. If you prefer to change this behavior, 4D v19 R5 enables you to restrict administrators from accessing the Data Explorer and Runtime Explorer in your deployed merged servers.


reduce the size of client applications & more

4D v19 R5 brings many enhancements to 4D applications’ building. For starters, you can remove unnecessary libraries (such as CEF/Web Area, PHP, Mecab, 4D Updater) to reduce the size of your applications. We also changed the final directory when you build a compiled structure to accommodate those using multiple compiled versions of the same structure. And for our Japanese customers, we have merged the Japanese version of 4D and the international one on macOS.


Reorganization of the diagnostic log

Diagnostic logs have become more and more critical for troubleshooting. We’ve reorganized them entirely by improving their content and adding a way to filter content (log levels such as trace, debug, info, warn, and error). Thanks to the new database parameter Diagnostic log level, you will be able to control the flow of logs in the diagnostic log and keep it small while logging what you really need.


Optimize performance with complete control over REST requests

4D v19 R5 gives you better control over the ORDA contexts and cache for both Client/Server and REST to improve performance.

4D for Mobile

4D v19 R5 brings many novelties. Starting with 4D for Android and 4D for iOS Editor:

  • The interface of the editor is fully compatible in dark and light modes.


For 4D for Android (already available in 4D for iOS):

  • Turn your application into a barcode scanner to fill in a text input,
  • Allow to sign directly in the application: delivery, intervention reports, estimates, etc.
  • Interact with different applications by touching a field on the screen:
    • an address to automatically display a map showing the location,
    • a phone number to call or add to user contact,
    • a mail to open the mail app,
    • a URL to open an URL in the default web browser.
  • Create your own Kotlin formatters for your specific needs.


 Learn more and find examples in the blog post >


Web area

New Windows system rendering engine

Starting with 4D v19 R5, if you use the system rendering engine, 4D uses Microsoft Edge WebView2. This change allows you to benefit from a modern browser with the latest features and security updates. For example, Microsoft Edge can be used to display PDFs.


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