Guest Post

An enhanced UX with AJUI_Progressbar

Automatically translated from English

Have you ever executed an action, nothing seemed to happen, and you didn’t know if you should click again or continue waiting? There’s no feedback provided, even if the application is performing an action in the background? Perhaps the action requires some time to return a result? As you may know, 4D already provides a built-in progress bar component that makes execution time more tolerable, but if you want something with a more web like design then keep reading, because that’s what the AJUI_Progressbar gives you!

Guest Post

An ORDA Cheat Sheet

Automatically translated from English

Blog post by guest author Cannon Smith, a 4D developer from southern Alberta, Canada: 

The introduction of collections and entities has dramatically changed the landscape in 4D, giving developers new ways to map business rules to code. Just recently I refactored several thousand lines of code that were central to the business rules of our application, resulting in a significant speed improvement (5xs faster) which our users are very happy about. This refactoring was largely about moving from old code constructs to objects, collections, and ORDA.

Guest Post

AJUI_Tip: A tooltip engine for 4D

Automatically translated from English

Have you ever been flooded by confirmation dialogs, alert boxes, and contextual help windows that make it nearly impossible to locate the form window on which you were working? Wouldn’t it be more user-friendly to stay on the same page and see help bubbles pointing directly at the original target? 

This is possible thanks to the 4D component AJUI_Tip. It’s a powerful tooltip engine based on the technologies available in 4D such as ORDA, New Formula, SVG, SubForm, CALL FORM, to name a few. In this blog post, we’ll highlight the component’s usage, and show how you can design beautiful tooltips to enhance your applications’ UI. A download link can be found at the end of the blog post.

Tips

ORDA – Genealogy – Episode three

Automatically translated from English

In the first  and second episodes of this trilogy, we demonstrated the basics of ORDA using list boxes, entities, and entity selections. We also showed the way to use similar list boxes with distinct data sources and how to use Meta info expression to improve the list boxes’ graphics.

Today we’re going to have even more fun, with less code!

Tips

ORDA – Genealogy – Episode two

Automatically translated from English

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.

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

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!