In the first episode of this trilogy, we demonstrated the basics of ORDA using list boxes, entities, and entity selections. Today, we’re going a bit deeper by running some queries that will take advantage of recursive relationships. We’ll also have a quick look at how to display list boxes nicely using the “meta info expression” property.
We can all agree that ORDA is a great 4D V17 feature. A kind of revolution in the way of thinking and programming. 4D databases will never be seen the same way as before.
ORDA allows you to conceive advanced applications in less time, with more readable and clean code. To show you the power of ORDA we’ve prepared a series of tips for you, divided into three episodes. In this first episode, we’ll demonstrate how links should now be considered more as entities and entity collections, and we’ll show you how listboxes can now be based on entity selections, rather than selections or arrays.
Flash news: 4D Write Pro anchored images now support 4D Expressions!
Since 4D v16 R6, it’s been possible to add anchored images to 4D Write Pro documents. Once inserted, these images were static, either defined with a picture variable (or field), or by a picture path. Today, you have more flexibility: a valid 4D expression can also be associated to an anchored picture!
We know that sometimes you want to change the properties of multiple methods without having to open the property dialog for each method.
For example, you want to set all methods to “Can be run in preemptive mode” status, then compile your database. So with compilation errors, you get an overview of the methods to modify to be preemptive.
Using the METHOD GET NAMES command to retrieve the list of methods from your database, and then using the METHOD SET ATTRIBUTES command to modify the attributes, lets you modify them all at the same time!
Imagine you have a list of formulas containing table names and some fields … then days later you decide to rename your tables. Now your formulas are no longer valid, which is totally understandable!
Well, good news: the new Parse formula command allows your formulas to remain valid when renaming 4D language or structure elements.
Objects are at it again, continuing to demonstrate their utility to ease your life as a developer.
Using time (or duration) values inside of objects is now smoother and more intuitive. Beginning with 4D v17, times inside objects are set as seconds – and not milliseconds!
Imagine that your database contains several tables of types or categories. These tables are very simple, often with only an identifier and a text field. For demonstration purposes, let’s say it’s a shoe management database. To qualify the products, we need to define their type, color, pattern, material, season and so on.
It’s cumbersome to manage each of these tables in a list form and an input form and associated methods. In this case, the use of a generic form is essential to avoid duplication and simplify maintenance.
4D v17 goes a step further to let you create a customized server administration dialog. Following the ability to retrieve information about users & processes, getting all runtime information about 4D Web server, as well as details about the active license, you now have the ability to also retrieve all of the hardware and system details for the machine running your 4D server.
Do you need to know what OS is being used, what processor(s), how much RAM is available, etc.? Just call the new Get system info command, locally or remotely! And that’s not all, this command can be extremely useful for quickly diagnosing and solving any problems that may arise.
4D Write Pro is continuously evolving; thanks to the new features and functionalities we’re shipping with every R-release. A world of possibilities is wide open! Today, thanks to a new command, you can get a set of information about the location of any element within your documents.
Like many other programming languages, 4D provides the ability to iterate over numbers with a For(…) / End for statement, or over a condition thanks to the While(…)/End while and Repeat/Until(…) keywords. These iterations (or loops) are very useful, but not the most appropriate way to iterate over advanced data types such as collections and entity selections. That’s why the new For each(…)/End for each iterator has been created, to help ease your coding!
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