Home | Sign in | English UK
New WINDEV, WEBDEV, WINDEV Mobile 24 feature!
WindowsLinuxUniversal Windows 10 AppJavaReports and QueriesUser code (UMC)
WindowsLinuxPHPWEBDEV - Browser code
AndroidAndroid Widget iPhone/iPadApple WatchUniversal Windows 10 AppWindows Mobile
Stored procedures
New control #1: New Dockable Panel control
The new Dockable Panel control in WINDEV 24 will help you save lots of time .
You can organize the interface of your application into zones that the user can freely move around.
Dockable Panels allow creating sophisticated interfaces with ease.
End users will be amazed by the customization possibilities available to them.
And for your teams: no code required!
See The Dockable Panel control for more details.
Dockable Panel control: how does it work?
Dockable Panels (DoPa) can be moved around by the end user of your application.
A DoPa can be docked on the left, on the right, at the top or at the bottom. Magnetism between panels is supported.
A panel can be dragged out of a window, for example, to work on a second screen.
Several DoPas can be grouped vertically.
Several DoPas can be grouped in one single area, and be displayed like tabs.
A popup menu allows (among other options) re-displaying deleted DoPas.
If necessary, different layouts can be defined in a DoPa, which allows using it vertically and horizontally.
See The Dockable Panel control for more details.
Dockable Panel control: creation
Dockable Panels (DoPas) are easy to define in the editor.
It can be a set of controls, or an internal window.
To create a Dockable Panel, you have two choices:
  • you can create a DoPa and fill it with controls,
  • or you can select a set of controls, and declare it is a DoPa via a simple right click (refactoring).
A WINDEV window can contain as many DoPas as desired.
See The Dockable Panel control for more details.
Dockable Panel control: programming
By default, no programming is needed to take advantage of DoPa's powerful functionalities.
But if you want, all the functionalities aimed at the end user are available through programming.
Anything the end user can do is something you can program!
For example, docking and undocking by programming (WLanguage functions of the Panel family), make visible or invisible (..Visible property), change the title or the icon (..Title or ..Icon properties), ...
It is even possible to create an entire DoPa dynamically (PanelCreate function).
For more details, see:
Dockable Panel control: use examples
There are hundreds of examples on how to use DoPas!
Imagine: a message area, a notification area, a list to be permanently displayed, an order history, a real-time sales graph, stock market prices, ...
The end user can freely organize the main window of your application or process.
Easy and effective.
See The Dockable Panel control for more details.
Dockable Panel control: key technical information
  • Dockable Panels (DoPas) work in MDI and non-MDI.
  • Dockable Panels can be undocked, either on the same screen or on a second one.
  • They can be docked on the left, on the right, at the top or at the bottom.
  • They can be resized just like a splitter (anchoring is used in MDI and non-MDI).
  • Magnetism is managed.
  • You can insert all types of controls in a Dockable Panel. They can be positioned anywhere.
  • It is possible to use an Internal Window in a Dockable Panel. In this case, the layouts of the Internal Window are used when resizing the Dockable Panel.
  • 2 or more Dockable Panels can be docked on the same side.
  • Vertical Dockable Panels can be placed side by side, horizontal panels can be one above the other.
  • Dockable Panels can be overlapped: in that case, tabs are created.
  • Even when Dockable Panels are floating, they can be docked together: this creates a tabbed window.
  • The configuration of the Panels can be saved, restored.
See The Dockable Panel control for more details.
New control #2: "Token" control
Interfaces that use token controls are becoming more and more common.
A Token control contains variable amounts of information in a limited area.
When numerous multiple choice options (e.g. selecting several colours among dozens) are available to the end user, a Token control is an easy way to present these choices in a clear way.
When the user chooses a new criterion, it is added into the control.
If a user decides to delete a criterion, they must simply click on the "X" next to such criterion.
In version 24, token management is automatic, programming is extremely simple.
Here, tokens are criteria for selecting a property
Here, tokens are criteria for selecting a property
The token control is filled:
  • by the end user's direct input,
  • by programming, for example, after the end user clicks on a list of choices.
Here, tokens are cities
Here, tokens are cities
Diverse tokens
Diverse tokens
See Managing a Text token edit control for more details.
"Token" control: Input
The Token control is based on the Edit control.
The Token control can be used for input, or only for display.
When input is enabled, it is possible to define the key (character) that triggers the creation of a token: CR, space, ",", ";", TAB key, ...
It is possible to define an input mask: email, numeric, ...
Assisted input is available.
It can be a single-line or multiline control (most common case).
Example of direct input in a Token control
Example of direct input in a Token control
"Token" control: Input mask
When direct input is enabled in a Token control, it is possible to choose an input mask, just like in every Edit control.
The end user is guided: email, uppercase characters, numeric values, zip code, ...
"Token" control: style examples
Token styles are defined in the style via the 7 tabs.
Color can be modified by programming.
Here, tokens represent chosen colors
Here, tokens represent chosen colors
Red tokens with rounded edges (direct input)
Red tokens with rounded edges (direct input)
Rectangular gray tokens
Rectangular gray tokens
A different token style
A different token style
"Token" control: programming
Token management is automatic, programming is extremely simple.
EditToken, a new WLanguage function family, makes it easy to program all operations:
  • list tokens.
  • add tokens.
  • delete tokens.
3 new processes also appear in the code editor:
  • click token.
  • add token.
  • delete token.
WLanguage is enriched with a new type: the Token type.
The Token type has the following properties:
  • ..Color, to change the text color of a given token.
  • ..BackgroundColor, to change the background color of a given token.
  • ..Caption, to retrieve and/or modify the text displayed in a token.
  • ..ToolTip to specify a different tooltip for each token.
The ..Token property allows for a subscribed access to the tokens in the Edit control.
New control #3: Clickable switch control
"Clickable" switch controls are increasingly used in interfaces.
Clicking on the control visually moves a cursor.
It is also possible for the end user to move the cursor with the mouse.
On touch screens (smartphones, etc.), the control reacts in a natural way (finger slide).
In version 24, this type of control is available for WINDEV, WEBDEV, and WINDEV Mobile.
Examples of clickable switch controls in both possible positions
Examples of clickable switch controls in both possible positions
New control #4: The Image Gallery control is now available on WINDEV and WINDEV Mobile
The Image Gallery control, which appeared in the last version of WEBDEV, is also available on WINDEV 24 and WINDEV Mobile 24.
The operation and numerous automatisms of this control are identical in the 3 products, which facilitates portability.
Display and navigation management in an image gallery is fully and automatically managed, including the detailed display of a clicked image.
It is possible to enrich the automatic processes by programming: displaying additional information, ...
Use of an Image Gallery control
Use of an Image Gallery control
UUID mask for edit control
In version 24, new UUID (unique identifier) input masks will appear for the first time : UUID 128, UUID 256, ...
New UUID input masks
New UUID input masks
Word Processing control (WP): management of columns
Columns are now managed in WINDEV's Word Processing control.
Above, 2 columns in a part of a document
Above, 2 columns in a part of a document
WP control : bookmark display
Bookmarks are displayed in version 24: it's more practical, to say the least!
Bookmarks are listed in the window
Bookmarks are listed in the window
WP control : image editing with an integrated image editor
Images inserted in a document can be edited directly in the control, thanks to the integrated image editor.
Image editing directly in the document
Image editing directly in the document
WP document : management of passwords
In version 24, it is possible to open and save DOCX files with password, and to add (or delete) a password to an existing file.
In programming, WLanguage functions of the DOC family allow manipulating documents protected by passwords, and also to add passwords to existing documents.
Password input
Password input
WP control : popup menu available on all the elements
In version 24, the popup menu becomes available on all the elements : image, table row, page footer, ...
WP control : managing the z-order of the blocks
In version 24, it is possible to manage the z-order (altitude) of texts and images.
For instance, it is easy to overlap images regardless of the order in which they have been manipulated!
WP control : selection of a table row
In version 24, new intuitive operations are available to select zones of a table: click on a row, a column, ...
WP control : faster display
In version 24, the general display of document areas is much faster, which is very convenient when handling large documents or documents containing many objects.
The speed of text selection, input and Drag/Drop is also increased.
Optimized editing on 4K-resolution screens.
WP control : insertion of sections breaks
In version 24, it is possible to insert section breaks easily
WP control, programming: DocInsert & DocAdd
WLanguage DocInsert and DocAdd functions return the content of the inserted fragment.
This avoids having to go through the document again.
WP control: miscellaneous
  • The WLanguage DocReplace function works on a fragment.
  • The page background color can be specified: it makes choosing the text color and images easier, ...
  • The "paste without formatting" option is available (CTRL Shift V).
Word processing in 1 line of code: OpenDocument function  
You know the powerful Word Processing, Spreadsheet, Image Editor and PDF Reader controls (images and documents in docx, xlsx and pdf formats).
In your applications, when you wanted to propose the editing of a document in one of these controls, it often involved the creation of a dedicated blank window, containing only this control.
In version 24, everything becomes more simple: a single line of code such as OpenDocument("invoice.docx") is all it takes to open a window containing the word processing control with the document.
Spreadsheet control: image editing with an integrated image editor
Images inserted in a spreadsheet (logo, etc.) can be edited directly in your application, thanks to the integrated image editor.
XLSX document : password protection
In version 24, it is possible to open and save XLSX files with a password, and to add a password to an existing file.
The WLanguage functions of the XLS family allow manipulating documents protected by passwords, and also to add passwords to existing documents.
A spreadsheet in 1 line of code: OpenDocument function
In your applications, when you want to propose spreadsheet editing in a Spreadsheet control within a dedicated window, all you need is a simple line of code:
Image Editor control
The Image Editor control benefits from the new features of the Image Editor itself: ellipses, arrows, rectangles, Edit-in-place, ...
See new features 086 to 092.
An image editor in 1 line of code: OpenDocument function
In your applications, when you wanted to propose image editing, it often involved the creation a dedicated blank window, containing only this control.
In version 24, everything becomes more simple : a single line of code is all it takes : OpenDocument(logo.jpg).
New 3D Pyramid Chart control
A new type of chart has been added to the family in version 24: the 3D Pyramid chart.
This 3D interactive chart (it can be handled with the mouse) allows visualizing descending data.
Each section represents a percentage of the lower section.
For example, the first section represents the percentage of Web users who fill their shopping cart, the second section represents the percentage of those users who have validated their shopping cart and who enter their contact information, etc..
As its name suggests, it is represented in the form of a pyramid.
The new pyramid chart
The new pyramid chart
See Pyramid charts for more details.
New Pyramid Chart control : features
Section colors are generated by default or can be configured by programming.
It is also possible to choose the characteristic of the pyramid slice that is proportional to the data: volume or height.
See Pyramid charts for more details.
New Pyramid Chart control : programming
The Pyramid chart is filled like the other charts, either by programming or by automatic binding.
It is possible to define the orientation of the pyramid by programming.
See Pyramid charts for more details.
New type of chart: real-time display
This new type of chart allows for real-time representation of permanent data flow.
The chart moves automatically according to the data received in real time.
The chart updates constantly
The chart updates constantly
See Real-time chart for more details.
WINDEV, WEBDEV and WINDEV Mobile in the same environment: cross-platform raised to the power of 24
In version 24, it is possible to use WINDEV, WEBDEV and WINDEV Mobile in the same environment.
Project elements are immediately common to all 3 platforms: analyses, queries, reports, procedures, classes, code, ...
These elements open directly in the WINDEV environment.
This allows for easy portability and maintenance of a WINDEV application to the mobile and to the Web, without having to import or duplicate what already exists, or to change the environment.
Directly from the WINDEV environment, in the project creation or configuration menu: choose among Windows, Site, Android, iOS, ...
Directly from the WINDEV environment, in the project creation or configuration menu: choose among Windows, Site, Android, iOS, ...
A copy/paste of a control (a button, in this case) from a WINDEV window to a WEBDEV page. Note that the button keeps the same aspect, which saves even more time!
A copy/paste of a control (a button, in this case) from a WINDEV window to a WEBDEV page. Note that the button keeps the same aspect, which saves even more time!
No need for several projects, only 1
In version 24, it is possible to create configurations of all types in a single project on the WINDEV environment:
  • WINDEV application.
  • WEBDEV site.
  • iOS app.
  • Android app.
  • ...
It is possible to switch immediately from one configuration to another.
All configurations continue to evolve for all 3 platforms within the same project.
Modify a code, run a GO of the application and a GO of the site and a GO of the mobile app
An advantage of this new feature of version 24 is that it allows you to immediately test a modification that has just been made: business logic, query, procedure, class, report, ...
A double-click is all it takes to select the configuration to be tested and then click on GO!
You can immediately test the desired platform.
You can easily imagine how many operations you avoid!
And remember: there is no need to duplicate the code in each project!
Copy a WINDEV control directly to a WEBDEV page
In version 24, it is possible to open WINDEV windows, WEBDEV pages and WINDEV Mobile windows simultaneously within the same environment.
Of course, it is possible to automatically transform an entire window into a web page (or a mobile window) in a single operation.
It is also possible to transform only one element from a window to a page.
You can copy and paste controls between different pages and windows.
The control copied into WEBDEV keeps its original characteristics and look.
Reminder: it is necessary to have a license for each product.
A widespread need today is to transform Windows applications (or parts of applications) into dynamic websites.
As you already know, WEBDEV allows you to retrieve the code, the queries, the reports, the classes, the windows, ... of a WINDEV application.
Version 24 goes much further.
See Webify a WINDEV project for more details.
A new way to develop
The old project conversion method was to duplicate the WINDEV project in WEBDEV. It worked, but we had everything twice.
Then came the possibility of opening the same project with WINDEV and WEBDEV. However, it required constantly switching from WINDEV to WEBDEV to perform the operations, and it took a long time.
In version 24, it's a revolution!
All operations can be performed from the WINDEV environment.
That's already huge, but there is more: besides, you benefit from:
  • a migration wizard.
  • transforming a window into a page while keeping its initial look.
  • more common WLanguage functions that improve compatibility; especially the Open function which is available in WEBDEV.
  • ...
See Webify a WINDEV project for more details.
Starting WEBDEV directly from the WINDEV editor
In version 24, being able to open WEBDEV in WINDEV is an unparalleled advantage to webify your applications, as well as to keep your Windows and Web applications in line with each other. Having the elements in common within the same project allows you to save lots of time.
Of course, it is necessary to have a license for WEBDEV in order to launch it from WINDEV.
See new features 036 to 039.
WINDEV to WEBDEV migration wizard
To help migrate existing WINDEV applications to WEBDEV sites, a wizard analyzes the WINDEV application and generates a precise report with the modifications to make in the code .
This report saves a lot of time.
Capture from the webification help window: click on a line to go to the corresponding element
Capture from the webification help window: click on a line to go to the corresponding element
For example:
  • if the WLanguage fSelect function (which opens a file picker and returns the entire path of the file selected by the end user) is used in the WINDEV application, the wizard immediately indicates that this concept does not exist in Web, and that this part should be modified accordingly. Indeed, an Internet browser does not have the right to explore the disk of the user's computer. Here the wizard will recommend using an "Upload" control, which allows it to select a file and read its content from a browser.
  • If the Registry is read, the report indicates that this cannot be done from a browser: this operation must be deleted, or its code must be replaced.
  • if the application runs Word, the report indicates that a browser is not allowed to launch another application.
  • if the application writes directly to the PC disk, the report indicates that a browser is not allowed to write to the disk of the Web user's computer.
  • ...
Simply click on each line to correct the problem.
See Webify a WINDEV project for more details.
Window to Page transformation in 1 click
In some cases, it is not an entire application that is passed to Web, but only some windows.
Version 24 also helps you in this operating mode.
The operations to transform a WINDEV window into a WEBDEV page are simplified: now all you have to do is right-click on a WINDEV window, select "convert to WEBDEV page", and that's it!
See Webify a WINDEV project for more details.
Window to Page Transformation: 180 improvements for GUI conversion
Version 24 improves the automatic transformation of controls from WINDEV to WEBDEV:
  • the number of control properties taken into account increases significantly; for example, in version 24, a button is migrated with its look.
  • if a control to be migrated does not exist on the Web, it is converted into a control type that operates in the same way. For example, a WINDEV Ribbon control will be converted to a WEBDEV Tab control, with an equivalent look and size.
Window to Page Transformation : Increased number of WLanguage functions shared between WINDEV and WEBDEV
There are more WLanguage functions compatible between WINDEV and WEBDEV in version 24.
Nearly 100 new functions have been added.
In particular, the WLanguage Open function is now supported in WEBDEV.
"OPEN" and "CLOSE" in WEBDEV : the existing WINDEV code works directly
To facilitate the transition of WINDEV applications to WEBDEV sites, and to maintain programming habits, the WLanguage functions OPEN and CLOSE are now recognized in WEBDEV (in server code, Ajax or not).
In version 24, it is therefore no longer necessary to modify the page opening code.
It should be noted that the Open function has the same properties in WEBDEV as in WINDEV: it is blocking: the code after Open is not executed until the page has been closed
One click is all it takes to transform a WINDEV window into a WEBDEV page, directly from the WINDEV editor. Then simply launch the conversion wizard to adapt the code. It is also possible to convert the entire application with a single click.
One click is all it takes to transform a WINDEV window into a WEBDEV page, directly from the WINDEV editor.
Then simply launch the conversion wizard to adapt the code.
It is also possible to convert the entire application with a single click.
Import of "control/window" template, while keeping inheritance
If a WINDEV window is based on a Template, when the window is transformed into a WEBDEV page, the Window Template is transformed into a Page Template.
The inheritance is kept between the converted page and the converted template itself.
If another window is converted from on an already-converted template, the page will automatically be based on that template.
GUI conversion is performed at a high level.
A powerful new feature of version 24 regarding the architecture of your applications is the presence of a help system to split the business logic and the GUI code.
This new feature, described in detail below, makes it possible to "take out" the Business Logic from a window to make it independent of the interface, and therefore to be able to share it or port it to other targets, and to maintain it more easily.
Splitting Business/GUI?
When it comes to methodology, some development teams decide to separate the business logic from the GUI code.
This allows a better porting of large applications in cross platform.
Version 24 provides innovative solutions for both new and existing projects that need to be split.
  • One option allows differentiating between business logic and GUI code. In the code editor, a different background color identifies each type of code.
  • Attributes to include in the code make it possible to refine the coloring.
  • A choice in code editor allows you to extract the business logic in a class (OOP) or in a set of procedures (procedural programming).
You have all the tools you need to set up the architecture of your choice, without constraints or obligations.
The same project can have different architectures: for example, in an existing project, you can decide to separate business logic from GUI code only for future changes, or for some windows.
Colors guide you
In any existing project, with years of evolution and maintenance, the sushi dish can gradually become a spaghetti bolognese, ...
Capture from the code splitting help window
Capture from the code splitting help window
In version 24, the option "enable Business/GUI colors" allows you to have a quick and synthetic view of how the code is interlocked.
Business logic will have a blue background and GUI code will have a green background.
These colors are configurable.
Some lines may include both business logic and GUI code. These lines will have an orange background.
The calls to procedures are even colored according to the content of the procedures!
When the code has an alternation of colors, it certainly means that everything is mixed! It's not necessarily a poorly written code, it's just a code that doesn't respect this architecture.
To respect the splitting architecture, all you have to do is group the identical codes, i.e. of the same color.
Splitting: Help for structuring the existing code
If you want to extract a code block of the same color to make a new procedure, simply:
  • select the block of lines of code.
  • right click and click on Refactoring, then select "Create a local procedure" or "Create a global procedure".
A new procedure will be automatically created and will contain these lines of code. Just specify the name of the procedure to be created.
If passing parameters is necessary, the parameters expected by the procedure are automatically detected and generated.
A call to this procedure (with the appropriate parameters) is generated at the original location of the lines .
That's some power!
Procedure attribute : Business or GUI?
In version 24, it is possible to specify if a procedure should only contain business logic or GUI code via an attribute.
Definition of the
This attribute can also be used with variables, in particular the global variables of the window. This allows you to categorize the variables in a window to help split the code.
When these attributes are used, the compilation detects attribute violations.
When GUI code is used in a business procedure, a compilation error is generated.
Calling a procedure that executes business logic in a procedure that has a GUI attribute generates a compilation error.
This allows you to check the code structure of an element.
Attribute error detection can be requested either for specific windows or for the entire project.
It is therefore easy to apply the architecture to only one part of a project.
Automatic splitting
Simply choose how to extract the code
Simply choose how to extract the code
Once the attributes are positioned (and there are no more errors detected!), simply ask WINDEV to extract the Business logic.
For procedural programming enthusiasts, WINDEV generates a set of procedures with the Business logic. For OOP enthusiasts, WINDEV generates a class and its members with the Business logic.
In both cases, GUI code stays in the window.
WINDEV allows you to enter "Business Rules".
These are explanations on the processing rule to be applied to a control, code, window.
For example: "Be careful, the total price includes additional taxes on top of the VAT".
In version 24, these Business Rules can be used automatically as an aid to end users.
Entering business rules is easier
In version 24, Business Rules are entered in Word Processing mode, and no longer in RTF mode: it's easier and its presentation is richer.
It is easy to insert images, tables, graphics, workflows, ...
A new option makes it possible to indicate whether each Business Rule is visible or not to the end user (Distributable Business Rule).
A Business Rule can be associated with one or more controls.
Example of a Business Rule on delivery management
Example of a Business Rule on delivery management
A PDF is generated and can be included in your application
All the Distributable Business Rules of a project can also be automatically grouped in a PDF document. This document is installed with the application.
The end user can see it via the"?" menu.
Business rules : ability to automatically display them next to the control as an "aid" for the user
When a Business rule is distributable and it is associated with a control, a (customizable) "?" picto automatically appears next to the control.
Clicking on this picto displays the Business rule.
It is possible to remove this picto and to customize the way it's displayed (see new feature 218).
The picto and and the help are automatically generated
The picto and and the help are automatically generated
Project image gallery: for an overview of the images used
In version 24, it is possible to view all the images of a project with a single click.
This gallery is viewed from the "7 tabs".
Overview of all images used in the project
Overview of all images used in the project
Project image gallery: lighten your projects : unused images, duplicates, ...
When an image is present in the project directory (and subdirectories) but it is not used, it is marked.
If necessary, you can delete it.
Duplicate images are marked: totally identical images of course, but also binary identical images with a different name, or stored in different subdirectories.
Deleting images makes it possible to reduce the size of projects.
Images that are not integrated into the SCM are also marked.
Project dashboard: New "Templates" widget
A new Widget appears in the project Dashboard.
This Widget displays an overview of the templates used in the project: total number of templates, and especially number of windows (pages, controls, reports, etc.) not updated with their template.
The widget allows you to update the templates (red button).
Display of news and updates
The editor now shows information and news about your products: new version available, new downloads online, training dates, WINDEV Tour, etc.
This display is customizable.
Quick access to "My projects"
In editors, when opening the file picker, the "My Projects" (or "My Sites") directory appears in the list of preselected directories.
A very useful little feature.
Project explorer popup menu : "Duplicate" option
The project explorer popup menu is enhanced with a new practical option: duplication.
This feature allows you to quickly duplicate a window, a class, a query, a page, ...
XML template: trigger the update
In a project, you can use "Template" XML documents.
These templates allow the compiler to know the structure of the XML that will be manipulated by programming.
These models allow for automatic completion, detection of compilation errors, ...
In version 24, when the "template" XML file is updated on the disk, a menu option is available to update the "template XML" in the environment.
Multi-screen and different dpi
As you know, the environment supports multi-screen mode.
This working approach is very comfortable, if you can adopt it, our tip is: go for it! (almost 70% of you are already working in this mode).
Version 24 now supports screens with different DPI on the same PC.
All screen combinations are supported!
All screen combinations are supported!
Updating the environments
Your editors are updated to the latest version thanks to the "automatic update" option (unless you have unchecked it).
In version 24, it is also possible to update to the latest version with a single click.
There is no longer a series of successive updates to be performed as it may have been in the past.
Examples always up to date : in the cloud, downloaded on demand
WINDEV comes with 294 examples: 37 complete projects, 101 training projects, 156 unit examples.
These examples are in constant evolution: new features, new legislative constraints, correction of malfunctions, addition of new languages, ...
In order for you to always have the latest version of the examples, the editor will automatically search the cloud for the latest version of the example you are loading.
The project is then copied to your computer.
Display of a picto for the platform of the example
For each example, the editor displays a picto indicating the platform(s) on which the example is based.
Online help for the environment
In version 24, the online help that your teams use on a daily basis includes more features and becomes more practical.
  • The Tutorial, which is supplied in printed form, is also available online.
  • Another practical detail: a click on an image in the Online Help displays the image in high definition. This comes in handy to see the details!
Data model editor: anti-wrinkle cream
In version 24, the Data model editor is rejuvenated!
Editing items is far more simple and more fluid than in earlier versions.
Component for accessing the Monitoring Center data
The information of the Project Monitoring Center (requirements, tasks, bugs, contributors, etc.) is accessible in programming through a component provided.
This component allows you to reprocess this data, for example to edit specific statistics, or to share the data with another tool.
Manager of a requirement
A requirement is divided into tasks.
Tasks are assigned to the team members. It is now possible to indicate which team member is in charge of the requirement.
A manager cannot set a task as "completed" until the tasks of the other members are completed.
The manager will be notified each time a team member completes his or her task.
Time tracking: List of work times
Work times can be listed for one or for all the requirements in a list of requirements.
Static audit: analysis without links
In version 24, the static Audit indicates if an analysis that doesn't have defined links between data files (tables).
The lack of defined links does not allow for automatic management of referential integrity, which is detrimental to the qualaity of the application.
In version 24, when you resume an application, you will be alerted about this problem.
Program documentation : new style
The program documentation has been redesigned in version 24! (PDF and printed version).
The pages have a more modern look, the information is more readable and the interface for selecting the elements to edit is more user-friendly.
Program documentation : additional information
The documentation is enriched with new information:
  • Project dashboard.
  • Statistical information on the use of SCM.
  • ...
Program documentation : compact mode
The program documentation can be edited in a new compact mode (as opposed to the complete mode, which edits all the details on all the elements of the project).
This compact mode features a user-friendly interface for selecting the elements to display.
Several modes for editing the documentation are available
Several modes for editing the documentation are available
Program documentation : optimizations on large volumes
In previous versions, generating a folder for a very large project could require a certain waiting time in some cases.
In version 24, editing the documentation is fluid and continuous, regardless of the size of the project.
New action to update Webservices
Continuous integration is based on the execution of action plans. A new action allows requesting the update of the WSDL description file of the Webservices used in the project.
Specify a robot to run an action plan
In version 24, it is possible to assign a robot to run certain action plans.
This can be useful when using a powerful machine, or a machine with expected peripherals: printer, ...
Compact setup: command line
The compact setup now accepts command lines and their parameters.
Network setup: update when closing the application (optional)
When end users launch the application, an automatic message may ask them to perform an update. But end users are often in a hurry and would like to use their application immediately.
In version 24, a new option is offered to end users: update the application when closing it.
Input history: delete one or more entries
Among the AAFs available in the Edit control, keeping an input history is highly valued and commonly used by end users.
This AAF allows the end user to directly select the values previously entered.
In version 24, it is possible to delete one or more values previously entered.
The user can delete confidential, unwanted or irrelevant values to shorten the list!
Linking AAFs with User Groupware for GDPR
The use of export AAFs can be restricted by a programmed password.
In version 24, it is possible to protect exports directly from the User Groupware settings, i. e. by group and user.
(see new feature 083 and 178).
Link with GDPR
User Groupware integrates functionalities dedicated to the GDPR.
Windows that handle personal data are highlighted in the User Groupware rights definition interface.
Thus, the Supervisor can adjust the rights of users and groups according to the GDPR constraints linked to the data.
OAuth + OpenID Authentication
OAuth + OpenID authentication is especially useful for sites intended for the public, but not only.
This mechanism keeps the end user from creating yet another password by using their social network login data.
The OAuth standard enables a user to be authenticated.
The OpenID standard allows knowing this user.
Once the user is identified by OAuth, the user's profile is transmitted to your application or site by OpenID.
The following buttons are available by default:
  • Facebook
  • Google
  • LinkedIn
  • Microsoft
It is also possible to create your own buttons for other OpenID Identity providers: Instagram, ...
Also see new features 124.
Multilingual User Groupware
Before version 24, the files used by the User Groupware (GPU) for identification and connection permissions were specific to the language of the editor.
In version 24, the files are portable between the different languages of the editor.
It is also now possible to use the GPU in WEBDEV while combining the languages of the Framework and the Application Server.
New tools
The image editor integrated into the environment offers new tools in version 24.
Note that these new tools are also available in the Image Editor control that you can include in your applications.
Ellipse, circle, Oval
An ellipse is an oval shape.
In version 24, the image editor allows you to create ellipses.
It is possible to specify the line thickness, its color and background color, ...
Circles, ellipses and ovals
The "arrow" tool offers the usual functionalities: line thickness, color, line type, position of the arrow(s), arrow types, arrow size, ...
It is possible to create rectangles directly with the image editor.
Many parameters are available: line thickness, color, background colour, angle roundness, ...
Edit in place "new look" (more user-friendly quick editing menu)
Images can be modified in the image editor in different ways.
Among these ways, it is possible to right-click on an element that you want to modify, and to display a "popup" menu on it.
In version 24, this popup menu has been made more user-friendly.
The new Edit In Place menu
Selecting the right layer by default
An image can have several overlapping layers.
The CTRL + CLICK key combination allows you to directly select the most appropriate layer, i.e. the one containing image data, just one click away!
Image Editor control
As you know, you can include an "Image Editor" control in your windows.
You can define settings so that the end user won't able to load any image other than the one you display, or not be able to create a new one: the end user will be able to modify only the image you display.
In version 24, the "NEW" and "OPEN" buttons can be removed from the ribbon in the Image Editor control in one click via the 7 tabs.
SCM : "silent check-out" mode
In version 24, the check-out confirmation window may no longer appear.
The "Silent Check-out" option allows you to hide this window.
This enables users familiar with the SCM operating mode to skip an informative step that requires validation, and thus to save time.
Sharing directories (and content) between several SCMs
In version 24, it is possible to share a directory and its content between several different SCMs: a log management class, an internal component for sending emails, ...
This helps to structure the sharing of elements in large organizations.
SCM : Displaying comments at check-in
During check-in, a developer can write a comment (recommended, by the way!).
It is a "good practice".
In version 24, the comments of all retrieved elements (elements that are updated), are automatically displayed during the retrieval process.
This allows reading other developers' comments without having to perform any operations.
SCM : pre-filled comment
Check-in comments can be based on a customizable template.
For example:
  • Version,
  • Date,
  • Name of the Developer,
  • ...
The comment box will contain the information entered during the check-in phases: no risk of forgetting, significant standardization.
The content of the template is specified in the "Comment template" option.
History of my comments
With a single click, developers can view all the comments they have entered.
HTML links in comments and strings
When a code comment contains an http or https address (for example a link to help on a subject), this address is directly clickable.
Just use the CTRL + Click combination (to avoid launching sites when you just want to edit the text, ...). This allows you to consult a page or to test it easily.
Https links in the code, directly clickable
Https links in the code, directly clickable
This feature is also available in text strings used in programming.
Processes: you have the power to make them invisible
As you know, the code is entered in the editor, which proposes the possible processes (events) on the control : Enter, Modification, Exit, Click, ...
A standard series of events is always proposed for each control.
In version 24, it is possible to hide elements of this list.
This allows for a neat code editor, according to your programming habits.
Code editor in
Code editor in "default" mode
Customized code editor: unused processes have been hidden. The presentation is much clearer
Customized code editor: unused processes have been hidden. The presentation is much clearer
(Of course, there are also optional treatments that can always be activated).
To the rescue! Multiple syntaxes
Numerous WLanguage functions offer several possible syntaxes.
These syntaxes can accept different parameters.
In previous versions (23 and before) the tooltip only showed the parameters of the first syntax.
In version 24, all the syntaxes are proposed in a tooltip, right above the line.
This has a double effect : on the one hand, you can select your preferred syntax, and on the other hand you can discover syntaxes that you didn't know about and that can be very useful for you!
That can't be bad!
Help for each of the 4 syntaxes is displayed
Help for each of the 4 syntaxes is displayed
Inversion of assignments
In version 24, it is possible to invert one or more assignments with one single operation.
For example in POO, a procedure to load from an HFSQL file:
LAST_NAME = Client.lastname
FIRST_NAME = Client.firstname
When the saving method must be written, everything has to be inverted.
In version 24, simply copy the assignments of the loading procedure, paste them and invert all the assignments with 1 click.
Attributes (compiler directive) : know them and select them
An attribute is a directive passed to the compiler.
The compiler produces different byte-code depending on the attributes passed.
WLanguage offers more and more attributes.
These attributes are powerful and practical: mapping, serialization, ...
New attributes appear with each new version.
In version 24, to know these attributes, simply enter the " < " character to see the list of available attributes for the current line.
Smart renaming of members
When a member of a class is renamed, a GUI compilation error appears.
A Lightbulb icon to the left of the error message indicates that the editor can help you.
Click on the lightbulb and the member will be renamed throughout your entire project.
Click on the lightbulb to rename a member!
Click on the lightbulb to rename a member!
LDAP: code generation wizard
The WLanguage functions of the LDAP family offer a wide range of parameters.
In version 24, a wizard is made available for choosing the WLanguage function parameters of the LDAP family.
Simply answer the questions to generate the code
Simply answer the questions to generate the code
Report editor: background color
The report editor allows you to specify the background paper color.
This color will be displayed in the editor, in order to be able to choose appropriate colors for controls, texts, frames, backgrounds, ...
Report editor: ..Note
You certainly know the property ..Note which allows you to associate a note to a control in a window.
In version 24, it is also possible to associate notes to a report.
Reminder: the content of this note is accessible by programming; some developers even use it to store conditional code that will be executed in dynamic compilation in special cases!
Report editor: spreadsheet
The report editor provides a wizard to print the Spreadsheet controls used in the application.
Creating a report that contains a spreadsheet is very easy in version 24.
Report editor: list of controls (F12)
The window for listing the controls in a report has been revised in version 24.
Its interface has been improved.
Finding a control is easier, and many features are available: locking, selection, search.
New prefixed syntax on all the functions! [All].function
You discovered the prefixed input on the controls in version 23, and you loved it!
The advantage of this syntax is that when you type a variable name, after entering "." a combo box appears and proposes the list of functions that apply to this variable.
In version 24, this type of input becomes available for the other elements: String, Table, Queue, Stack, List, Advanced types, ...
For example:
MyString is string = "This is a test"
Example of syntax on a Table element
Example of syntax on a Table element
See the complete list in new feature 303.
New native JSON type
The JSON format is more and more widely used.
In version 24, a native JSON type appears in WLanguage.
This type allows to natively manage data in JSON format (without having to build or analyze strings).
A "JSON template" can be provided to the code editor. The code editor then assists input throughout the entire JSON structure.
See also new feature 155 "JSON item".
New UUID type
A UUID is a randomly generated, unique identifier, for which a duplicate is statistically impossible.
Use a UUID each time you want to make sure an element is unique.
In version 24, WLanguage offers the new UUID type, on 128 bits and on 256 bits.
The UUID type makes it possible for example to manipulate hash results (SHA256), identifiers, blockchain keys, the content of HFSQL UUID items (see new feature 156), ...
The UUID type is also useful for GDPR pseudonymization.
New Chrono type
In version 24, the new Chrono WLanguage type is introduced.
Managing stopwatches is so much easier!
MyChrono.Start is clearer than manipulating subscripts, especially if there are several stopwatches.
See Chrono Type for more details.
New CriticalSection (thread synchronization) type
In version 24, the new CriticalSection WLanguage type is introduced.
Managing critical sections is significantly easier.
New syntax WITH ... DO...
This new syntax facilitates programming the use of types that have a beginning and an end.
The use of the new types Chrono and CriticalSection is simplified.
Evolution of Min & Max functions
Going directly from an array to the function Min (and Max) allows you to reduce the code to a single line: no need to program the browsing of the array.
A small but useful new feature.
Receiving data: Evolution of the httpRequest type
The httpRequest type offers an additional property: ..Destination.
This property allows you to save the result of the query directly to a file on disk, without using memory.
This is very useful when receiving large volume data.
HttpRequest send: visualize the flow to know what goes to the server
The httpRequest functionality offers dozens of parameters.
To analyze the frame that is sent to the destination server, the new ..ProcedureTrace property allows you to view the byte stream sent to the server.
Verification (and debugging) is much easier.
httpRequest type: client certificate
The httpRequest function has long accepted client certificates.
The httpRequest type, which is generally much more convenient, also accepts certificates in version 24.
Client Certificate: on disk, or in the WDL
In version 24, you can choose where the certificate is stored:
  • on disk.
  • in the WDL library of your application.
This allows, among other things, automation in the use of Chorus, the invoicing system of the French government.
Inclusion of any file in the library (in the WDL or in the EXE), and extraction
It may be useful to include a text file (for example) in the WDL library or in the EXE of the application.
This makes it possible to make this file invisible and to avoid managing its deployment.
Including this file is easy: just include it in the configuration.
It is possible to include several files.
It is then easy to either extract the file or read its content.
A file is extracted by the fExtractResource function.
The content of a file can be read directly in the WDL using: fLoadResource.
Attributes on procedure and internal procedure
An attribute is a directive for the compiler.
An attribute is entered in the code editor, between angular brackets (for example <serialize=false>).
In version 24, it is possible to define the automatisms of internal procedures and procedures thanks to attributes: timer, thread, automatic or delayed execution, ...
MurmurHash : an additional algorithm
WLanguage proposes many hash types.
In version 24, the MumurHash algorithm is also supported.
Murmur is particularly used in the bloom filter of bitcoin wallets.
TAPI functions
Today, many devices support TAPI 3 only.
WLanguage supports TAPI 3.
OpenID management: retrieve information on the person connected via OAuth
When you offer a connection via OAuth in your application, users log in using their social network credentials, for example Instagram or Google.
The OpenID protocol allows you to retrieve information that may be necessary for your application about the person who has logged in: email, last name, first name, ...
2 new advanced types appear in WLanguage to retrieve the information proposed by this protocol: OpenIDParameters and OpenIDIdentity.
See also new feature 084 about automatic use as part of the User Groupware.
Word processing (or spreadsheet) in 1 line of code: OpenDocument function
You know the powerful Word Processing, Spreadsheet, Image Editor and PDF Reader controls (images and documents in docx, xlsx and pdf formats).
In your applications, when you wanted to propose the editing of a document in one of these controls, it often involved the creation of a dedicated blank window, containing only this control.
In version 24, everything becomes more simple : Simply use the new WLanguage function OpenDocument.
A simple line of code is all it takes:
XLS functions
New WLanguage functions for managing XLS sheets are available in version 24:
  • iPrintXLS allows you to print an XLS sheet,
  • iSequencingAddXLS allows you to print several XLS documents in a row and even to combine XLS sheet prints with reports.
Passwords on DOCX and XLSX files
In version 24, the WLanguage functions of the XLS and DOC families allow you to manage documents protected by password, and also to add passwords on existing documents.
This is useful for data security.
It also makes it possible to meet certain GDPR requirements.
PDFPassword, a new WLanguage function, allows defining a password for an existing PDF file.
Reminder: reading PDF files with passwords is already possible.
PDF/A-3: archiving and attachments
The PDF /A-3 archiving format (note, A-3 has nothing to do with paper size; A is for Archiving and 3 is a version number) is supported in version 24.
This format allows you to include attachments to the PDF archive: XML, XLSX, DOCX, ...
This format is necessary for Factur-X and Chorus (see new feature 187).
OOP Array
Rather than copying an instance of an object into an array, it is now possible to add the reference of this object in the array.
The ArrayInsertReference and ArrayAddReference functions are available for the first time in version 24.
Transforming a barcode into an image
In version 24, the new BCToImage WLanguage function allows transforming a BarCode variable into an Image variable.
The image can then be saved in the format of your choice.
The image can also be modified by all the usual WLanguage image management functions.
Insert an image in a QR code (for invoices in Switzerland, for example)
Invoices issued in Switzerland must include a QR Code.
This QR Code must contain an image of the Swiss flag in its center.
..Image and ..ImageProportion, two new properties for the BarCode type, allow you to specify the image to be inserted in the center of the barcode, and its size.
Example of QR Code for Swiss invoice (the flag can be generated in black & white)
See the help about the BarCode for more details.
Retrieve the contents of a scan in memory
In version 24, it is possible to recover the contents of a scan directly in memory (in a buffer), without going through a backup on disk.
The functions of the TwainToxxx family now support the InMemory constant.
See the help about these functions for more details:
"Country" functions
New WLanguage functions allow you to retrieve the name or ISO code of countries.
These are the functions GetCountryName (ISOCode) and GetCountryISO (CountryCaption).
See the help about these functions for more details.
Printing: mini preview
When printing a report or using the iPrint function, it is now possible to request the use of a mini preview instead of the traditional preview.
On the right, the new mini preview
On the right, the new mini preview
See Mini preview window for more details.
The management of "public/private keys" makes it possible to implement secure exchanges and authenticated communications
Asymmetric encryption: private key, public key, 2 uses
In version 24, encryption by "public/private key" becomes possible for both uses:
  • authenticate communications (already available),
  • secure communications (it's new feature in version 24!),
A certificate is needed: it contains the private key.
The private key included in the certificate must remain private: if it is distributed or stolen, your identity is highly compromised.
Authenticated communication
Authenticated communication makes it possible to send a message while ensuring the identity of the author.
The CertificateSign WLanguage function allows you to sign a message (with the certificate), while CertificateCheck ensures that the signature and public key match (no need for the certificate here).
Bob wants to send a message, and he wants to sign this message in a way that cannot be falsified.
Bob signs the message with his private key.
Everyone can see this message.
To be certain about the author, the recipient must make sure that the message has been signed with the private key that corresponds to the public key.
Secure communication
Secure communication consists in sending a message and ensuring that only the recipient(s) will be able to decrypt it, and therefore read it.
When a secure message is sent, it is the recipient who must have a private key (and therefore a certificate).
The sender must simply encrypt the message with the public key.
Only the recipient who has the corresponding private key can decrypt the message.
(So it's basically the "opposite" of what you might think at first, but it makes sense!).
Alice wants to send Bob a message that no one else can read.
Bob has a private key, and the corresponding public key.
The public key is not confidential.
So he gives this public key to Alice.
Alice encrypts the message she wants to send to Bob with Bob's public key.
Only Bob will be able to decrypt this message, since the only way to decrypt the message is to use the associated private key.
Of course, only Bob has this private key.
What is "This"?
"This" is a keyword used in many languages. In WLanguage, the corresponding keyword is "Object" (there is certainly a good historical reason).
In version 24, it is possible to use the keyword "This" as well.
Interface inheritance
In OOP, an interface is a set of methods accessible from outside a class, by which you can modify an object (basically it is an abstract class that has no code).
In version 24, it is possible to inherit an interface from another interface.
This advanced feature is useful for architecture designers who create structures with many levels of abstraction.
SOAPToHTTP: modify the XML content sent to a SOAP Webservice
Webservices have a very wide spectrum and not all of them comply with the standard.
The ease of use of a third-party Webservice in an application or site depends on its designer.
Version 24 offers a very useful function to adapt the XML sent to the Webservice (a SOAP Webservice always receives XML).
The SOAPToHTTP function allows retrieving the content of the Http request that goes to the third-party Webservice server.
It is now possible to modify the XML content in order to adapt it to the expectations of the Webservice.
Consuming soap Webservices with authentication
In version 24, "user / password" authentication by the "ws security" protocol is directly supported.
Call to SharePoint Webservices
Some SharePoint Webservices expect XML content in "String" parameters.
This particular mode is now managed in version 24 (for those who already use it, it is the equivalent of the InnerXML property).
New wizard to generate "inserts"
The editor interface that allows you to enter "Inserts" becomes more ergonomic.
The selection of data files, items and parameters is now smooth and fast.
Automatic indent
To easily indent the SQL code of a query, the query editor now offers the shortcut CTRL+R which automatically indents the structure of the query: selections, conditions, aggregates, ...
New JSON item type
In version 24, HFSQL offers a new and useful type of item: JSON items.
This type of item allows you to run queries that include operations on JSON.
When writing or modifying a JSON item, HFSQL checks the syntax of its content.
An error is generated if the syntax is wrong; new SQL commands make it possible to query the database on the content of JSON items.
4 new commands allow testing if a value is JSON, as well as its type: IS JSON, IS JSON ARRAY, IS JSON object, IS JSON Scalar
JSON_ARRAY, JSON_Object allow you to build a JSON object.
JSON_ARRAYAGG, JSON_ObjectAGG allow you to build a JSON object for a set of records.
Finally, 3 new commands are introduced to query the content of the item: JSON_exists, JSON_Value, JSON_Query.
New UUID item type
A UUID (Universal Unique IDentifier) is a random number deemed unique: this number is so big that the probability of the same identifier being generated twice is lower than the probability of a piano falling on your head twice in a lifetime, ...
A UUID is useful to easily and reliably identify any element.
In version 24, HFSQL offers the new UUID item type.
This type of UUID item complies with the 128-bit RFC 4122 standard. Only the 128 bits is standardized.
The UUID item goes even further than the standard by offering a more powerful 256-bit mode.
The major interest of UUID is to allow anonymization and pseudonymization, useful for compliance with the GDPR standard.
The UUID also allows you to manage cryptocurrency identifiers, ...
Automatic UUID
HFSQL can manage UUIDs for you.
It is possible to automatically initialize a UUID item when writing a record; the UUID thus corresponds to a non-sequential unique identifier.
If necessary, to facilitate an existing migration, a record can include an automatic UUID and an automatic Identifier.
The same record can contain several UUIDs.
Advanced Encryption Standard: more powerful encryption
AES is available for data files (.fic), for indexes (.ndx; .ftx), for memos (.mmo).
Data is more secure.
The speed of data encryption and decryption is optimized: performance is better than with other encryption methods!
This encryption allows, among other things, case-sensitive passwords.
ODBC driver on HFSQL
In version 24, the ODBC driver provided to access HFSQL from third-party software allows access to "array" items.
Administrator password when installing
When installing an HFSQL server, for security reasons, it is necessary to enter a custom password for the administrator account.
HFSQL Control Center: unlimited queries
The HFSQL Control Center allows you to enter and run queries.
In version 24, queries are run in a thread, in the background. This means that you are not blocked while the query is run and that you can launch several queries simultaneously.
Improved browsing speed of the HRead family in client/server
In version 24, HFSQL Client/Server offers improved data file browsing speed when using the HReadxxx history functions.
The speed has increased by 10%.
  • The new HExportXLS and HExportCSV functions make it possible to export an HFSQL data file (or the result of an HFSQL query) to Excel or to CSV format with one single line of code.
  • The HTrack function allows an application to be automatically notified when a change is made to an HFSQL data file; this function, HTrack, is now available in Windows services.
  • The HOnError function is now available in the stored procedures.
The SQL NULLIF function takes 2 parameters.
NULLIF returns Null if the 2 parameters are equal, and returns the first parameter if the parameters are different.
The SQL DROP INDEX function is used to delete indexes.
Better selection of composite keys with the "or" SQL operator
In some cases (use of Or), the performance of the query is improved if there are composite keys in a data file.
Syntax to write binary values in SQL queries
HFSQL supports an additional standard for writing binary values (literals) in SQL queries: X'binary value in Hex'.
INSERT INTO PAINTER (Rubbin) Values (X'0254B8615A')
SQL commands for JSON items
New SQL commands are available for the "Native JSON item in HFSQL" new feature: see new feature 155.
As you know, there are many native connectors: HFSQL, Oracle, SQL Server, AS/400, DB2, MySQL, PostgreSQL, SQLite, xBase, MariaDB, Informix, Progress, Sybase, ...
Managing thread errors
When a call to a native connector (Native Access) is made from a thread, it becomes possible to handle errors in a normal way.
UUID management
In version 24, native connectors (Native Access) manage UUIDs.
Native SQL Server Connector: msoledbsql
The Msoledbsql driver for SQL Server is supported by the native connector in version 24.
HFSQLDrive: Simplify data exploitation and sharing
HFSQLDrive allows you to host HFSQL data files in the cloud in a few clicks.
All HFSQL data exploitation features are available.
HFSQLDrive is intended for WINDEV Mobile but also for WINDEV and WEBDEV.
(See new feature 670 ).
Deepl is a service based on an artificial intelligence algorithm that provides text translation.
This service can be useful when translating a text for the first time.
WDTRAD can send a request to Deepl directly when its dictionary is not yet rich enough to find a translation.
Remember that once translated, the texts are automatically inserted into the WDTRAD dictionary of WDMSG, and will be automatically re-used.
Please note that Deepl is an independent service. Different fees apply..
Standard message windows: translation with skin template inheritance
When translating software, you should also consider translating standard runtime message windows, such as the windows displayed by the User Groupware, automatic HFSQL assistance, AAF windows (export to Word or Excel, etc.).
Before version 24, the translation necessarily involved the customization of these standard windows.
In version 24, it is possible to translate these windows without having to customize them.
These windows therefore benefit from the evolutions of the framework during framework updates.
Translation of the AAF export menu
WDTRAD: the intelligent dictionary that grows richer on its own
As you certainly know, WDTRAD allows you to manage the self-building dynamic dictionary used to translate your software.
The dictionary is enriched according to your translations.
In version 24, WDTRAD evolves for easier, more powerful and faster use.
New operations are available:
  • Work files can be selected by direct input, copy/paste or drag & drop.
  • The list of resources can be sorted and grouped according to numerous criteria.
  • Search can be carried out using the names of breaks.
  • WDTRAD reports translations that seem strange to it, such as a multi-line text in one language, translated into just a few words in another language.
WDTRAD: "état", is that "state" or "status"? additional language displayed
WDTRAD now allows displaying a second reference language.
This is useful to ensure that certain sentences are correctly worded: choosing "state" or "status" from an french reference text ("état") is not necessarily easy!
By displaying the reference text in a 2nd language such as Spanish, there is no more ambiguity.
It also solves the problem of lexical categories with certain words.
UUID 256
A 256-bit UUID item can store identifiers, transactions, ... blockchain (Bitcoin, Ethereum, etc.).
If you manage a blockchain yourself, the UUID item and the new WLanguage UUID type allow you to generate and manage unique identifiers.
(see new feature 156).
GDPR : Password in export AAFs automatically managed by the User Groupware
As you know, AAFs (Automatic Application Features) allow you to export the content of the Table controls of your applications to Excel, Word, PDF, XML, ...
These tables may contain sensitive data.
In version 24, these export features can automatically be secured via a password, which is automatically managed by the User Groupware.
Thus, you don't have to program anything in order to grant specific users access to these features.
GDPR: a window with GPDR data is marked in the Groupware
When editing rights in the User Groupware, the windows that contain personal data are marked.
This allows administrators to verify that they have given access to personal data to the right users only.
GDPR and HFSQL: new encryption modes
To ensure even better data security, HFSQL version 24 adds AES to the list of supported encryption modes.
GDPR and HFSQL: UUID item for pseudonymization
The HFSQL database now offers UUID items on 128 or 256 bits.
This type of item makes data pseudonymization possible: no more automatic identifiers that allow identifying a person. Pseudonymization is necessary in certain fields of work.
See new feature 156.
GDPR and WLanguage: UUID type for pseudonymization
To allow an easy and rigorous use of UUID items, WLanguage offers the new UUID type, on 128 or 256 bits.
GDPR: Miscellaneous
Spreadsheets and word processing documents managed by WINDEV native controls can now be encrypted.
Encryption is managed in read and write mode.
(See new feature 018).
Reports sent periodically
Telemetry allows you to edit reports that contain statistics on the use of your applications.
It is possible to request one (or more) reports to be sent at regular intervals, for example weekly, monthly, yearly, ...
It is possible to specify the versions of the application that should be taken into account in the report: all versions, latest version only, ...
Custom telemetry: new widget
Custom telemetry consists of defining sensors. The application sends values to the sensor.
A new Widget allows you to view the information of all customized sensors.
The Widgets of the custom sensors are also printed in the reports.
Version 24 facilitates the automatic preparation and transmission of electronic invoices. The European Union has chosen to generalize electronic invoicing.
Chorus pro: to invoice the French government
In France, electronic invoicing has become mandatory for invoicing government services.
The French government has set up the Chorus Pro system to submit and monitor invoices. It is the tool for managing the expenditure and non-tax revenues of French government services.
From 01/01/2019, all companies with more than 10 employees must invoice government services by presenting an invoice (in PDF format) on Chorus Pro.
And in 2020, all companies must use Chorus Pro.
Version 24 facilitates the automatic submission of invoices on Chorus Pro (see new features 187 to 189).
Factur-X (hybrid invoice): PDF/A-3 archives with attached files
Factur-X, is a hybrid invoice standard: an invoice that is readable both by humans (PDF) and EDI (XML).
An invoice in the Factur-X standard contains a PDF archive (A-3 standard) of the invoice, and the standard XML file (5 standards are defined in Europe, depending on the level of detail) that includes the invoice details. Version 24 has all the necessary XML functions to generate and sign XML files.
Version 24 makes it possible to create PDF files according to the A-3 archive standard. See new feature 132.
Certificate in WDL library: no need for setup
In an electronic invoice, a certificate is used to ensure the authenticity of the invoice.
Usually, a certificate is installed on the host machine. This requires various operations as well as Windows "Administrator" rights.
This can be complicated, even impossible (servers, etc.).
In version 24, a certificate can be directly embedded in your application's WDL library.
No additional setup is required on the end users' computers.
No particular system rights are required on the execution computer.
httpRequest and restRequest variables: "certificate" property
In version 24, the httpRequest and restRequest WLanguage types (for using REST Webservices) have a Certificate property to use a certificate during requests.
It is no longer necessary to use HTTPCertificate!
Managing windows opened from the initialization process
It is possible to create automatic tests while windows are open in the window initialization processes.
Client/Server database
The database containing all defined tests and tests performed by the robot can now be used in Client/Server mode.
The robot can be installed on a computer without WINDEV
In previous versions, the configuration of the Control Centers used by the robot required a computer with WINDEV.
In version 24, having WINDEV installed is no longer necessary.
Alert emails sent by the robot: Secure SMTP
In case of a failure from the robot (for example: inaccessible server, response timeout, application not responding, etc.) you can have the robot send a warning email.
Sending this email can now be done using the secure SMTP protocol.
With older versions, the configuration and use of a monitoring robot required elevated privileges, which opened a UAC window.
In version 24, only the setup requires the elevation of privileges.
Thereafter, the configuration is done simply, without any privilege elevation. This allows users without administrator rights to configure the robot.
Importiing/exporting checks
In version 24, the robot allows you to export and import checks.
The exchange follows the XML standard.
Statistics on passed/failed checks
In version 24, the robot display statistics on the execution of checks. Tests with errors are listed and can be clicked on.
Clicking on a test with errors opens its report
Clicking on a test with errors opens its report
Robot: miscellaneous
Application monitoring: the monitored application no longer has to write on an .INI file to indicate that it is working properly.
This simplifies configuration.
REDIS is a Big Data database of the "scalable key-value" type.
In version 24, a native access to REDIS is proposed.
Minimum version required
  • Version 24
This page is also available for…
Click [Add] to post a comment