Since 4D v11, the database server and SQL server both use preemptive multi-threading. Starting with 4D v13, the Web Server in Static mode also uses preemptive. Now with v15 R5, the 4D language can also be run in preemptive processes.
One common usage of 4D Write was to create documents automatically, such as invoices, reports, orders, based on templates created or designed by the end user.
4D Write Pro v16 will support this usage with the new concept of bookmarks, that can be used to easily build new documents section by section.
In 4D v16, a new Get 4D File command returns the file path to different 4D files. You can now easily retrieve the path for the following files:
- Backup configuration file
- Last backup file
- User structure settings file
- User data settings file
Bookmarks can now be created inside 4D Write Pro documents. But what are bookmarks exactly ? A bookmark is a named reference matching a text selection of a 4D Write Pro document.
Several bookmarks can be present inside a single document. Once bookmarks have been created, they can be retrieved as a list of names, then using one of them allows retrieve the range of the corresponding text.
A picture field or variable can store different image formats – and even one image in several formats at the same time. As example, an image could be stored as PNG, SVG and MacPICT – in the same variable.
The new GET PICTURE FORMATS command permits you to get the number and types of format that are contained in a C_PICTURE variable.
From 4D v16, you can define at design phase the way a 4D Write Pro document will be displayed in a 4D Write Pro area. Without writing a single line of code, you can define several view attributes such as the resolution, zoom, page view mode. Advanced properties are also available to define whether you want to show 4D expressions or values for instance. Again no code to write, just a checkbox and it’s done.
With 4D v16, 4D Write Pro is now providing a higher level of protection regarding the evaluation of 4D expressions in documents.
Developers can now fully rely on 4D for checking the evaluation of these expressions. By doing so, end-user machines and databases will be automatically protected from any possible side effects.
A valid 4D expression can be a field, a variable, a 4D command, a statement returning a value, a project method, and so on.
Starting with 4D v16, “unsafe” 4D expressions will no longer be evaluated and an error will be displayed instead.
4D v15 R5 introduces a new, simple and powerful way to exchange information between processes and also between processes and forms. This feature is based upon an asynchronous messaging system that allows processes and forms to be called and asked to execute methods with parameters in their own context.
Displaying a list where the line height would exactly fit the content is a very common need. 4D View Pro is including a new feature so that you can now control the height of each row independently in a listbox to make it fit to its content. To know more about 4D View Pro, check out this blog post.
There are actually now two ways to define the row height in a listbox:
- using new dedicated commands
- using a new control array
With 4D v16, you can improve your database scalability using the new 4D Write Pro commands in preemptive processes.
If you are doing routines for creating or converting documents programmatically – e.g. invoices … you can now do it with preemptive workers as most 4D Write Pro commands are now thread safe!