Tips

ORDA – Genealogy – Episode one

Automatically translated from English

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.

Product

Flash news about 4D Write Pro and anchored images

Automatically translated from English

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!

Tips

Change the properties of several methods at once by code

Automatically translated from English

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!

Product

Times inside objects… (and everywhere else)

Automatically translated from English

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!

Tips

How to create a generic form with dynamic forms

Automatically translated from English

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.

And that’s where dynamic forms and JSON pointers are come in handy!

Product

Get machine hardware information

Automatically translated from English

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.

Product

Loops, loops and … more loops!

Automatically translated from English

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!