Form and subform communication made easy!
Starting with 4D v19 R5, the ability to associate 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: Say hello to OBJECT Get subform container value and OBJECT SET SUBFORM CONTAINER VALUE.
A Seamless Way to Manage Parameters
In the declaration of a function or method, you explicitly define its parameters. Then, when calling that function or method, you can pass fewer parameters to it if some are optional. Or, if you used the declaration with ${n}, the number of passed parameters is variable. In this case, you use the Count Parameters command with a loop over the arguments. This code works flawlessly. Still, it’s a little bit heavy.
You asked us for a lighter way to handle parameters, and we listened. Starting with 4D v19 R5, we provide you with a new command, Copy parameters, allowing you to write a seamless, more elegant, and easier-to-read code.
More options for object set enterable command
There is a multitude of interfaces and rules to be respected. Often, these constraints are linked to the domains of activity. Obviously, some data can be entered or not by the user. For a field that is not enterable, there are two ways of managing the interface:
- users can still select and copy its content, for example to add it to a report
- users are not allowed to copy the field or select its content
A new command to get detailed information about licenses
It’s sometimes helpful to monitor 4D licenses on your server. That’s why with 4D v19 R4, we decided to provide you with a new command giving all the information about your license usage: Get License Usage. Let me introduce you to this new tool.
4D language: The improvements you requested are here
Do you dream of using short-circuit evaluation, ternary operators, breaking free from a loop, or exiting from a method with a simple keyword?
Well, dream no more! We listened and kept an eye on your feature requests from the 4D Forum, so here comes a set of 4D language improvements that will help you simplify your code.
4D View Pro: Speed up your development process with templates
Creating reports or spreadsheets from existing templates speeds up development. Starting with 4D v19 R4, copy and paste actions can now be performed using code that copies a range of cells from another location (including other areas).
Quickly jump to different functions of a class
Classes were introduced with 4D v18 R3. They allow you to organize your business logic and separate it from the UI part more quickly.
Classes are composed of several functions of varying lengths, so it’s not always easy to find the function you want to modify, or to move from one function to another. You can use the explorer, which displays classes and functions, but when you’re coding in the editor window, you don’t want to waste time changing windows.
With 4D v19 R4, the list of functions in your class is displayed in the code editor toolbar, allowing you to easily jump to a specific function.
Debug on the server with scalable web sessions
Scalable web sessions were a significant improvement brought by 4D v18 R6. They allow you to use 4D tags, 4D actions, and REST API in preemptive processes, even in interpreted mode, on a 4D server. However, to debug such programs, you needed to open your development environment on the server to make it switch to cooperative mode, as the debugger window cannot be opened with preemptive processes. This way, until v19 R2, you could debug REST, 4D actions, or 4D tags. From v19 R3, all of this has become much easier, and you can debug on the server-side simply by attaching the debugger to it, as usual.
Bcrypt support for passwords
Security is a fundamental topic for today’s business solution systems. At 4D, we understand its importance; that’s why we keep delivering features that tackle this topic.
And with 4D v19 R3, 4D now uses a stronger hashing algorithm for user passwords. Let’s find out more!
ORDA: Thoroughly compare two entity selections
Since ORDA allows you to work with several entity selections simultaneously, we’re sure you take advantage of this by passing entity selections as a parameter to project methods or to functions of ORDA Data model classes.
To work efficiently with object-oriented programming using as few lines of code as possible, you need robust and optimized functions. That’s why with 4D v19 R3, we are shipping a new function available on the entitySelection object: the selected() function.
Thanks to it, you’ll be able to inspect and compare two entity selections. Let’s see the details!
Contact us
Got a question, suggestion or just want to get in touch with the 4D bloggers? Drop us a line!
* Your privacy is very important to us. Please click here to view our Policy