Product

4D Write Pro: More simple, more powerful

Automatically translated from English

A shout out to everyone using 4D Write Pro and letting us know your thoughts about the product. This lets us better understand your needs and difficulties. Thanks to this input, we’ve realized that some commands have become unnecessary, complex to use, and/or difficult to learn. Sometimes it could be the smallest things that make learning a challenge. For example, if you just want to insert some text in the footer, you first need to create an empty range! Why so complicated? Good question!

Thus, many commands that previously only used ranges have been extended in order to manage almost any kind of target (ranges, elements, sections, documents, etc.). Code is now easier to write and read. If you need to insert text … in a document, a footer, a range, (wherever!) …  just use it as the target and you’re off and running.

And that’s not all! Six commands have been renamed with shorter names, so they’re easier to remember.

Product

ORDA member methods to get the structure information

Automatically translated from English

How can I know the dataClass of an entity? I need it to write generic methods“. “I need information about a field in a dataClass: what is its type? Is it indexed? Is it unique?“. These are the kinds of questions we’ve heard you asking on the forum. 4D v17 R5 provides the answers: introducing new ORDA member methods to provide useful information about your database. Keep reading, because you’ll appreciate the benefits of reducing the size of your code and making it reusable and easy to maintain!

Product

More information about web processes

Automatically translated from English

You asked for more information about web processes to better identify requests that might be slowing down or blocking your server. We heard you and in 4D v17 R5, we’ve added information about the URL used by web processes. This information can be retrieved two ways: via the 4D Server Administration Window or via the 4D language with the Get process activity command.

Product

Manage selections and the active cell in 4D View Pro

Automatically translated from English

Typically, 4D View Pro requires that you identify the cell being worked with and where data will be entered (the active cell). You may also need to select some cells and then perform an action, such as formatting or entering values in them. 4D v17 R5 provides a new set of commands to help you manage both the active cell and cell selections. 

Product

Customize your email headers

Automatically translated from English

Custom headers are useful to add information that may not be supported with standard properties. In 4D v17 R5, we’re not only giving you a set of predefined headers, but also a way to declare customized headers to the mail object.

Product

Who’s who? A new way to identify users

Automatically translated from English

As a 4D developer you often need to manage end users with your own directory system. For internal users, you might create a few profiles with different rights or you might just use the default Designer account for everyone. The problem is when multiple people use the same profile, everyone has the same name and it’s difficult – sometime impossible – to differentiate them. Fortunately, 4D v17 R5 resolves the headache of trying to figure out who’s who. In this blog post, we’ll explain a new command and new selectors that’ll help you set the 4D user identity by defining a custom name to use instead of the current 4D user account name.

Product

4D Write Pro: Handle view properties by programming

Automatically translated from English

4D Write Pro documents can be displayed in different modes (draft, page and embedded), each with their own viewing options. For example in Page view mode, you can choose to hide both the vertical and the horizontal rulers, but keep the headers and footers visible. The same goes for many other display properties such as zoom, spell check, page frames, etc. Thirteen different viewing options can be defined. The good news is that rather than handling all of these properties manually, it can now be done programmatically.