Windev Concepts Us
Windev Concepts Us
To quickly and efficiently learn how to use WINDEV, we recommend that you proceed in the
following order:
1
Read the “Concepts” (online or on physical documentation).
This guide presents the main concepts required to create a WINDEV application. Some
concepts are followed by a “Practical” section that presents some features of the editor.
2
”Tutorial” (online tutorial + exercises).
The tutorial provides a first "hands-on" approach to WINDEV. It allows you to familiarize
yourself with the main editors of WINDEV.
3
Try the examples.
Try the examples provided with WINDEV in the fields you are interested in (sales manage-
ment, scheduling, etc.).
The online help, available on Internet at https://doc.windev.com or installed with WINDEV, allows
you to quickly find the syntax of a WLanguage function, get help about the interface and more, ...
For each programming theme, you will find a description of the associated feature and the list of
the corresponding WLanguage functions.
Remark: If there is a difference between the tutorials and the online help, follow the instructions in
Remember to visit the download section of www.windev.com on a regular basis to the online help.
check whether upgraded versions are available.
We hope you enjoy getting started with WINDEV.
This documentation is not contractually binding. Modifications may have been made
to the software since this guide was published. Please check the online help.
All product names or other trademarks mentioned in this publication are registered trademarks of
their respective owners.
© PC SOFT 2023: This publication may not be reproduced in part or in full without the express
consent of PC SOFT.
Introduction 3
Organization of WINDEV Concepts Table of contents
This guide presents the main concepts required to create a WINDEV application. Some concepts Part 1 - Main concepts
are followed by a "Practical" section that presents some features of the editor. Project and analysis...................................................................................................................................................9
Application development cycle......................................................................................................................... 12
Therefore, two types of pages are included in this guide: UI: Windows..................................................................................................................................................................14
Modal, non-modal or MDI windows.................................................................................................................15
Internal window.......................................................................................................................................................... 17
Window templates...................................................................................................................................................18
Types of standard controls................................................................................................................................. 32
Smart controls........................................................................................................................................................... 37
Control templates....................................................................................................................................................48
Edit: Reports................................................................................................................................................................49
Report templates.....................................................................................................................................................50
Concept page
Part 2 - Development environment
WINDEV editors........................................................................................................................................................53
Project dashboard................................................................................................................................................... 57
WINDEV/WEBDEV/WINDEV Mobile: 100% compatible...................................................................58
Project configuration.............................................................................................................................................59
Multiple generation.................................................................................................................................................60
Custom-Folders: Organize your project........................................................................................................61
Source Code Manager (SCM)............................................................................................................................ 62
Internal component.................................................................................................................................................69
External component............................................................................................................................................... 72
Generation modes...................................................................................................................................................80
Project Monitoring Center..................................................................................................................................85
Managing requirements.......................................................................................................................................86
Managing tasks......................................................................................................................................................... 87
Managing suggestions and incidents...........................................................................................................88
Managing business rules......................................................................................................................................89
Part 6 - Communication
Managing emails.....................................................................................................................................................173
Transferring files via FTP...................................................................................................................................175
Managing sockets.................................................................................................................................................. 177
WINDEV and telephony......................................................................................................................................179
Webservices: concepts...................................................................................................................................... 180
Part 7 - Appendices
Components provided with WINDEV.........................................................................................................183
Examples provided with WINDEV.................................................................................................................186
6 Table of contents
Project and
analysis
The development of a Windows Application with WINDEV is based on two main elements: the
Project and the Analysis.
A WINDEV Project is a set of elements (windows, reports, controls, classes, components, etc.),
which put together, make it possible to create a Windows application.
A WINDEV Analysis is a diagram of the data used by the application. The analysis groups the
different data files (tables) used by the application.
Project 1
Analysis
Project 2 Project N
Test and
Design Development generation Deployment
Generate the
UML modeling Create the analysis Final test
application:
- Win32 executable
- Win64 executable First setup:
Import the Development - Linux application local, network, by HTTP, push
existing files - Project RAD
- Windows/Linux service
- Window RAD ...
- Queries - Webservice
- Reports
- Input of source code Update the application
Synchronize the deployed
data
Deployment phase: A WINDEV application can be deployed using one of the following methods:
Development phase: The project and the analysis are created via specific wizards. The application
download, over a local area network (including Push mode) or via the Internet. In any case, the
can be developed in RAD (Rapid Application Development) mode, with automatic code and
HFSQL data files will be automatically updated based on the changes made to the application.
interface generation; or it can result from manually creating multiple project elements.
2 Simple operations on a window from the editor 3.2 Description window • visibility of the window,
• position of the window,
The description window includes several tabs that
The window editor allows you to perform the • Save and copy a window. • right click, mouse cursor,
group all the characteristics that can be configured
following actions on the windows: • Import and export a window. for the window. • association with a context menu, etc.
• Open a window in the editor: All you have to do • Change the tab order. Remark: You can also view and/or change the Details tab
is double-click the window name in the "Project characteristics of a window in the modifier. For more
For more details, see the online help. The "Details" tab allows you to define the different
explorer" pane. details, see the online help.
window settings:
• Resize a window.
3.3 Displaying the characteristics • type of window
To open the description window: • UI modification by end user,
3 Main characteristics of a window • double-click the window background. • animation,
• select "Description" in the context menu of the • automatic closing.
3.1 Characteristics • include a drop-down menu: this menu allows window.
users to quickly access the main functionalities • select the window and press Alt + Enter.
A window can include all types of controls. A window
of the application. To create a drop-down menu
can:
in a window, go to the "Window" tab, "Bars and
• be resizable: the end user will be able to change menus" group, expand "Main menu" and select
the window size. Depending on the anchors "Add main menu". The first option appears in the
defined for each control, the position of the window. The options can be manipulated via the
controls can change when the window is resized context menu. Then, the menu options can be
(see the online help). handled programmatically. For more details, see
• include a background image: this image is the online help.
displayed in the window background and the • include a status bar: the status bar will display
controls will be positioned over the image. You the help message associated with the different
can also define the resize options via the 9-slice controls in the window. This bar can also be used
scaling mode. For more details, see the online to display additional information. For more details,
help. see the online help.
• be clipped: the window will have custom shapes • be multilingual: all the languages defined for
(window shaped like a circle, a computer, etc.). For the window will be available for all its controls. A
more details, see the online help. window can be associated with more languages
than the project (windows shared between
several projects for example). For more details,
see the online help.
WINDEV includes different types of controls. Let’s see how to use them according to the operation
Calendar
to perform:
Image
Read a PDF file PDF Reader
Select one or more values from a ListView (picture Show the same controls multiple times in a window (e.g.
directory, etc.) product catalog with images, etc.)
ListView
Looper
Select a value in a preset range.
Slider,
Round Slider,
Spin,
Range Slider
Web Camera
Multimedia Tab
Conference Sidebar
Drawer
Enter information.
Display a bar code.
Edit control
TreeView
TreeView Table
Organizer
Chart
Create statistical tables.
Display a progress.
Pivot Table
Spreadsheet
Progress Bar
Dashboard
1 Creating a control
1.1 Different types of window controls All controls can be handled through programming.
For more details, see the online help about each
The following controls are available in the WINDEV type of control, their main characteristics and their
window editor: programming in WLanguage.
Sources of Print
report modes
Memory Zone
XLS files, PDF files,
control
...
Template used in a window.
The elements belonging to the template are bordered
Query
by a blue line and identified by a yellow square. Text file
Report
(Report editor)
To create a window based on a control template, create a "Control template" control. Text file
Remark: The programming associated with the template elements can be performed in the PCL file
template directly.
The characteristics of the elements can be dissociated from the template. For example, dissociate Data
the position of a control from the template to move it elsewhere while keeping other changes Printer
(code, style, etc.). This is referred to as control inheritance. In this case, the elements are identified
by a blue square. WLanguage variable
Print preview
Development
environment
View of a report template in the report editor.
These editors are used to easily handle the different project elements.
Report editor
The dashboard configuration is saved for each user. The dashboard configuration is the same for
all the projects of a given user.
It is thus possible to share sets of procedures or classes, for example, between several projects.
WINDEV project
A project can be opened in any IDE regardless of the one that was used to create it.
You can also view the elements of each platform from each
environment. A project in WINDEV displays the thumbnails
of the WEBDEV pages and WINDEV Mobile windows, Config 1. Config 2. Config 3. Config 4. Config 5.
WINDEV DotNet Component Java archive Web service
for example. Clicking a WEBDEV page from the WINDEV executable assembly
project editor opens the WEBDEV page (WEBDEV must be
installed on the computer).
The multiple generation allows you to generate all project configurations (or some of them) in a
Remark: If you have WINDEV and WINDEV Mobile, you can handle WINDEV Mobile configurations
single operation.
from WINDEV. You can open, modify and test mobile windows.
To start a multiple generation, go to the "Project" tab, "Generation" group and click "Multiple
generation".
Remark: WINDEV also allows you to create internal components to organize your projects and
share sets of elements between different projects.
Overview
Local Computer 1
To simplify teamwork, WINDEV includes a Source Code Manager.
The Source Code Manager allows developers to work together on the same project at the same
2
Project A
Check-out 9:57 Project A
time and share elements between multiple projects. Version 1 Version 1
Network 3 Modification
Check-in 10:41
(intranet) Project A
Version 2
Project A
4
Version 2
5
Version 3
(internet)
Project A Check-out 14:28
Version 2 Repository
Mobile Computer
Offline Check out Beta window from
Project A Version 1 at 9:13
Mobile Computer
SCM
Local Computer 1
1
Check out Alpha window from
Project A Version 1 at 9:57
Check in modified Alpha window
Project A Check-out 9:57 into Project A Version 2 at 10:41
Version 1
6
Local Computer 2
A repository contains a collection of project elements. Each computer has a local copy of the Modification Check out Alpha window from
for end users
elements required for development. Project A Version 2 at 14:28
7
Check in modified Beta window
Elements in the SCM can be shared: into Project A Version 3 at 18:32
Each time an element is checked back in, the version number of the source project is incremented
by 1.
SY
Local
N
4
1.1 Overview
project
CH
The SCM can be run locally or remotely, via Internet that store the same information).
RO
N
or via an HTTP or HTTPS connection. This feature • Use a UPS to protect the power supply of your
IZ
Developer
AT
WINDEV boasts innovative features for teamwork
IO
Disconnected
enables you to work on a project from your office server.
N
management in the Source Code Manager (also
or from a remote site without losing any changes. Local
• Make backup copies of the repository on a
called SCM). project
The SCM can also be used in offline mode. regular basis (at least once a week).
The Source Code Manager (SCM), which is fully
integrated in the environment, is used to: 1.2 Principle • Place the server in a "secure" area and use a
firewall.
• make teamwork easier and faster,
Setup
• store the history of changes and versions,
• save the sources of the development team SCM server
LOCAL COPY
2 Creating a repository for the SCM
automatically. Local Developer
project
Local network
Designed for teams between 1 and 100 developers,
the SCM promotes and standardizes the
LOCAL COPY 2.1 Overview • locally, in a shared directory on the network:
Reference Developer all the SCM users must have full rights on this
collaboration between developers (even when Local
project ADSL (Internet) To share a project via the Source Code Manager, a
project directory. The repository will be in HFSQL Classic
developing alone, the SCM is useful because it LOCAL COPY repository must be created. This repository must be
format.
contains the history of your applications). Developer created once only on the server.
Local
project Disconnected Simply specify the network directory where the
The SCM uses a repository: procedures, classes, The operating system and file system on which the repository will be created.
pages, reports, components, analyses, etc. All project elements are saved in the repository repository is installed must support files exceeding
You can choose between a repository: (on the server). This operation is performed when 4 GB. 2.2 When to create a repository?
creating the project or when importing an existing The repository can be created:
• in HFSQL Client/Server mode: The repository must be created only once.
project into the Source Code Manager.
• installed on a custom server, • via SCMDrive, a "turnkey" solution WINDEV allows you to create this repository at
Each developer who uses the Source Code Manager (recommended). In this case, a shared server is
• available via a PCSCloud (paid turnkey solution, different times:
retrieves a local copy of the project. used. This paid solution simplifies all the SCM
on a dedicated server) platform, • when installing WINDEV.
• available via SCMDrive (paid turnkey solution,
Use server setup operations. For more details, see
• when creating a project that uses the SCM.
To work on a project element (window, page, report, SCMDrive.
on a shared server). • when importing a project into the Source Code
etc.), the developer must check out the element • via PCSCloud, a "turnkey" solution. In this case,
• in HFSQL Classic mode (installed locally or in a Manager.
from the repository, modify it and check the a dedicated server is used. This paid solution
shared directory). • in the SCM administrator directly.
element back in. simplifies all the SCM server setup operations.
If the element is already checked out, the developer You will use a platform adapted to your needs. For Once the repository is created, all the WINDEV
can send a message to request that the element be more details, see PCSCloud. projects to share can be imported into this
checked back in. • on an HFSQL Client/Server server: the repository repository.
will be in HFSQL Client/Server format. In this
case, you must specify: 2.3 Backups
• the server, We advise you to make backup copies of the
• the database, repository on a regular basis. These backups can be
performed via the SCM administrator.
• the port used,
• the name and password of an HFSQL database
administrator.
1
Project 2
The principle is simple: • on reconnection, on the "SCM" tab, in the "Other Create the
• before disconnecting, go to the "SCM" tab, actions" group, expand "Remote work" and select internal component
"Reconnect and synchronize". Then, simply check
"Other actions" group, expand "Remote work"
the modified elements back in.
and select "Disconnect to work offline". Before Windows
2
working offline, it is recommended to check out For more details, see the online help.
Share the
internal component
6 SCM administrator Classes via the SCM
The SCM administrator is used to directly handle • manage the different files of the repository
the different projects included in the source code (check-out, check-in, share, etc.). Queries
manager. • start some tools (options, maintenance, etc.).
It allows you to: • restore a project version.
• manage repositories (create or connect to a • see the history and differences in the versions.
repository). • undo check-outs (in administrator mode).
• manage branches. • clear, save, restore a repository, etc.
• manage files and directories located in a project WCI file
• add different types of files to the repository (.doc, Subdirectory of
in the repository (add, delete, rename files and (List of elements)
directories).
.xls, .pdf, etc.). <MyComponent>
project
1
• To optimize the organization of your projects, you
Develop the component.
component can use internal components. For more details,
This external component can then be integrated
see the online help.
2
into other WINDEV, WEBDEV or WINDEV Mobile
Generate the • In this chapter, we will refer to "external
component
projects.
component" as "component".
All the elements of the component are totally
An external component can be redistributed to
.WDK file other WINDEV, WEBDEV or WINDEV Mobile
independent of the project in which it is integrated.
The external component can have its own analysis,
developers (free of charge or not). These windows, reports, data files, etc.
Created in the EXE directory developers will be able to easily integrate the
When generating the external component, simply
feature included in the component into their
specify if the project that uses the component
application (or site). The component will therefore
will access these elements. The project will not be
be integrated into and distributed with the
able to read or manipulate elements that are not
application (or site).
accessible.
3 Import the
component
When creating the external component, the author
specifies: The external component consists of several files:
4 4 4
component in a project.
Use the Use the Use the parameters used to access the component
component component component This file must also be provided in the client
functionalities, etc.). A short documentation (to
version of the application that uses the
be completed) is automatically generated and
external component.
associated with the component.
Remark: WINDEV includes several examples of <Component name>.WDI
components. These components can be imported
Component description (when developing
via the "Project" tab of the editor: on the "Import"
applications only).
tab, in the "Project" group, expand "Project" and
This file is required to include the external
select "An External component .. Utility component
component in a project.
or example". You can open the corresponding
This file must not be provided in the client
projects from the WINDEV home page (Ctrl + <).
version of the application that uses the
external component.
3 Distributing an external component The standard distribution of an external component • the default component setup directory. You
can configure the changes to be made to the
consists in copying the files required by the
component to a given location. The files are copied system via the "Advanced" button.
3.1 Overview • Standard distribution, providing the necessary to a specific directory. This directory can be located • the optional modules to install.
files. on a network server, for example. • the installation media, security options and
Once the component has been created, tested and
Example: the external component is intended When the external component is imported into advanced parameters.
generated, it can be distributed to other developers.
to be used within the same company, by several a project, all you have to do is select the WDI file
Multiple methods are available: • ...
developers. In this case, the necessary files can corresponding to the component in the distribution
• Direct use of the external component be copied to a network drive. By default, the files required to install an external
Example: the external component is directly used directory. component are created in the "<Project name>\
on the computer of the developer who created it. To distribute an external component, you must EXE\INSTALL_COMPO<Component name>"
provide: subdirectory.
• The files automatically generated by WINDEV Reminder: When creating the installation of an
or WEBDEV (<Component name>.WDK and application, the necessary files are created in the
<Component name>.WDI files) "<Project name>\EXE\INSTALL" subdirectory.
5.1 Overview Two methods can be used to update a component 7 Advanced component characteristics
on the end-user computers:
An application that uses one or more components is
deployed in the same way as a standard application 1. Recompiling the host project
Recompile the application that uses the 7.1 Automatic documentation When is the documentation gene-
("Setup procedure" on the "Project" tab). rated?
component and redistribute the application with External components must include a technical
When deploying an application that contains a The documentation of the component is created the
the component. In this case, no version problem or documentation.
component, the following files are automatically first time the component is generated ( in the quick
compatibility problem will occur. The recompilation WINDEV, WEBDEV and WINDEV Mobile help you
installed on the user computer: access buttons).
is required in the following cases: create this documentation via the following options:
• <Component name>.WDK, When generating the documentation:
• New features have been added to the • A general overview of the component. This
• <Application name>.EXE, component and must be taken into account. • the comments in the code are used to create the
overview can be entered when generating the
• the files required for the component and the • The parameters of some procedures have documentation.
component.
application. been modified. • if there are no comments in your code, the
• A technical documentation generated
expected input and output parameters of each
5.2 Updating components and deployed • Incompatibility between new and earlier automatically from the comments in the code of
accessible element of the component will be
executables versions of the component. the component elements.
automatically included in the documentation.
• ... Which code comments are taken into account?
When updating a component and/or an executable, The corresponding comments are automatically
the following elements can be installed on the end- 2. Distributing the .WDK file directly The following comments are automatically created in the different elements.
user computer: Provide an upgraded version of the component taken into account to create the component
Remark: The component documentation can be
(.WDK file) to the end users without recompiling the documentation:
• the application executable, the component and regenerated each time the component is generated
project. • Comments at the beginning of the WLanguage
the necessary files. ("Regenerate" button).
In most cases, this possibility applies when: procedures.
• the executable and the files required for the Caution: If you use the "Regenerate" option,
• The new version is used to correct problems of the changes made to the documentation in the
application.
an earlier version. generation wizard will be lost.
• the component and any necessary files.
• New features have been added to the
For more details on the compatibility between component but are not required to run the How to access the component
applications and components, see the online help. application. documentation?
The general component overview is automatically
• Comments at the beginning of the following displayed in the component description window.
6 Modifying an external component events:
The technical documentation of the component is
• Initialization code of windows or pages, available:
• Initialization code of reports,
6.1 Overview • change rights on the elements of the component. • when a component is included in a project: on
• Initialization code of classes, the "Project" tab, in the "Project" group, expand
A component can be modified at any time once it • make changes to one of the elements of the
• Initialization code of sets of procedures. "Import" and select "An External component".
has been created and generated. These are some of component.
• in the description of the components included in
the changes that can be applied: In any case, the component must be regenerated to
the project.
• add elements to the component. take these changes into account.
In the "Project explorer" pane:
• remove elements from the component. • In the "External components" folder, select the
desired external component.
External components
External components are application snippets that allow you to share one
or more specific functionalities between multiple applications. An external
component generated by WINDEV can also be used in a WEBDEV or
WINDEV Mobile project.
Remark: Stand-alone
When installing WINDEV, the setup program prompts you to: Image catalog
Business Rules Automatic tests (custom images)
messaging (WDBAL)
• create the database of the Control Centers (database of the Project Monitoring Center). This
database will be automatically created in HFSQL Classic format in the specified directory.
• share an existing database of the Control Centers.
1 Create requirements
composed of: 2 Fulfill
requirements:
Project Monitoring
Center
Tasks
Once the project tasks have been defined, you can follow their progress in the Project Monitoring
Incidents Center. The time spent on a task is calculated automatically, it does not require any specific action
and does not generate any particular constraints.
When the relevant project is opened, the Project Monitoring Center requests or indicates the
current task. As soon as a task is completed, simply indicate that the task is finished and specify
Pane of
the new task.
Business Rules
Business Rules
A task can be linked to a project element (window, report, etc.). When the element is opened, the
time spent on it is counted and stored in the Project Monitoring Center. Conversely, the element
3
that corresponds to the desired task can be automatically opened from the task list.
Monitor requirements (Project Monitoring Center):
Each developer can also see their own task list in the "Project Monitoring Center" pane in the
editor.
Manage
requirements
Business Rules
Apply Business suggested by the users
Rules to the project (“?” menu and Feedback
Pane for managing Project Monitoring
component)
Business Rules Center
Use application
Developers
Remark: if a fatal error occurs when the application is running, an error report can be automatically
During the development, the business rules defined for the project are directly displayed in the
generated and sent to the developer via the "Feedback" component provided with WINDEV.
"Business rules" pane of the development environment. This pane displays the number of project
elements to which the business rules apply and the percentage of rules currently implemented.
Databases
System studied
Corresponding analysis
The analysis of a WINDEV, WEBDEV or WINDEV Mobile project corresponds to the LDM (Logical
Data Model). The analysis contains the entire structure and data organization: data is grouped into
files (data files). Each file contains multiple data fields, called items.
In the analysis, the description of a data file can be linked to a type of file (HFSQL Classic, HFSQL
Client/Server, SQLite, etc.).
- LDAP - RSS
- Lotus Notes - Webservice
S
Windows et Linux
Client/Server
Windows, Linux, Docker, ODBC PCSCLOUD
AS/400 DB2 Progress Sybase Spare, 32 & 64 bits for PC SOFT applications
32 & 64 bits
OLE DB
S
Windows et Linux
32 & 64 bits
Client/Server
PostgreSQL
Windows, Linux, Docker,Informix PCSCLOUD
Progress Sybase Spare, 32 & 64 bits for PC SOFT applications
OLE DB
32 & 64 bits
SQLite Azure Cluster
PostgreSQL Informix Windows, 32 & 64 bits
HFSQLDrive
Full compatibility
User 1
WINDEV application
WINDEV application
Client computer 2 Windows or Linux
HFSQL server
User 2
Manta server
Network HFSQL
Classic database
WINDEV application
WINDEV application
HFSQL
(shared directory) Client computer n Client/Server
databases
User n
WINDEV application
WINDEV application
Client computer
or with duplicates) Index file
".ftx" file
One or more full-text indexes
Full-text index file
WINDEV application
".mmo" file
One or more "Memo" items
Memo file
Access data
Remark: This diagram only presents the main created files. Other specific files can be created if the
data file uses replication, logs or transactions.
Cluster
Apply modifications
To display information in a window, the controls in the window must be bound to:
• the different items in the database.
ScreenToFile Linked variable FileToScreen
• the available WLanguage variables.
Simple control
There are multiple methods to display and update values from a data source: Link with:
- Simple variable
• The binding between a control and an item or variable can be defined in the window editor, in the - Instance of class or structure member
control description ("Binding" tab). - Property of dynamic object
• ScreenToFile updates the record or the variable with the values from the UI.
• FileToScreen updates the data in the UI with the values from the data file or variable.
ScreenToFile FileToScreen
Database
The query editor allows you to easily create queries without programming.
Queries
Remark: In the code, you can handle queries and data files in the same way. Queries can be
associated with controls in the UI (a Table control, for example) to display the desired data.
Embedded query:
MyWindow_2$Query
In this case, the query is embedded in a window. It is located in the WDW file that corresponds to
the window. If the WDW file is copied (to another project, for example), the embedded queries used
by the window will also be copied.
Table control with direct access to the data source Table control with in-memory data source
A Table control with direct access to the data source directly displays data from a data file or Table controls with in-memory data source combine the advantages of Table controls with direct
query. The structure the data file is described in the data model editor and the data is entered in access to the data source and Table controls populated programmatically.
the application, for example.
The Table control is linked to the data file but the entire content of the data file is loaded in memory.
When you loop through the data file, the data is displayed in the Table control. The data file is read Sort and the search features are available for all columns.
for each row displayed: the record read is displayed in a row of the Table control.
The data that is not linked to the data file is not lost when moving the scrollbar (in Check Box
columns, for example).
Since the data file records are loaded in memory, this type of control is recommended for data files
with less than 100 000 records (to avoid memory overflow).
Customer
file
The data displayed that is not linked to the data file is lost when the Table control is refreshed Customer
(when scrolling, for example). file
The number of records displayed in the control can be limited by setting a filter (HFilter used in the
control initialization code).
Several WLanguage functions can be used to handle Table controls based on a data file. These
File loaded
functions start with "Table". in memory
To add a record to the Table control, add the record to the corresponding HFSQL data file (using
HAdd) and refresh the Table control with TableDisplay.
To delete a record from the Table control, delete the record from the corresponding HFSQL data
file (using HDelete) and refresh the Table control with TableDisplay.
The objective with this separation is to make each tier independent, in order to facilitate
maintenance and future developments of the application. This provides better security because
only the Application tier allows access to the database. It also optimizes teamwork and cross-
platform development.
Presentation layer
Universal
replication
Advanced
concept
With RAD, windows are generated with all the code they require to work properly. These windows
can be tested immediately with the data present on the development computer.
2.1 Class diagram For example, the following diagram presents the
management of stocks:
A class diagram describes the structure of a system
via classes and the relationships among them.
Class diagrams are the most common diagrams in
object-oriented systems modeling.
1
User
Start application
3 Use
the application
2 Identification
Use Check
rights rights
Supervisor
HFSQL Classic,
Client/Server,
Native Access,
LDAP
Configuration of
rights and users
4 Supervisor
menu
History
of connections
3.1 Adding the User Groupware to an • the "Files" tab, which allows you to specify the
application type of database and authentication used.
1 Overview • the "OAuth" tab, which allows you to specify
To implement the User Groupware in a WINDEV
application: the connection services available to users.
An application must define the role of different Access may vary according to the user. For example:
contributors. Several access levels can be defined 1. On the "Project" tab, in the "Project" group, click • BaaS User Groupware: This option allows you
• administrative assistants can see the price list
according to the user. "User Groupware". to integrate a BaaS (Backend as a Service) User
and create orders.
Groupware and manage rights via a server.
All users have different responsibilities and • sales representatives can see the price list, place 2. In the description window of the current project
If this option is selected, two specific tabs are
requirements. Their field of action must therefore orders and create new customers. configuration, in "User Groupware: Disabled", click
displayed:
be more or less limited. "Change".
• sales directors have access to all options. • the "BaaS" tab, which allows you specify the
Let’s take a simple example: a sales management 3. The User Groupware settings window allows you
To manage these access levels in your WINDEV characteristics of the BaaS server, the user
application that offers the following features: to enable the User Groupware and define:
applications, simply integrate the User Groupware. accounts and the URLs of the administration
• View prices, In just a few clicks, a standard application can be sites.
• Modify prices, transformed into an application that manages • the "Email" tab, which allows you to customize
• Enter orders, several access levels. This feature can be easily the messages to be sent to users (registration
implemented. validation or password reset emails).
• Entering customers.
When starting the application, the manager will be BaaS User Groupware: Required configuration:
able to create users (identified by their username
Two cases may occur:
and password) and give them access to some
application features. • If you are using a PCSCloud platform: the
required elements are installed by default on your
platform.
2 How does User Groupware work? Reminder: PCSCloud is a paid, turnkey solution.
For more details, see PCSCloud.
An application that uses the User Groupware has The configuration window allows the supervisor to: • The type and start mode of the User Groupware. • If you are not using a PCSCloud platform: install
two levels: • start the application. the following elements:
• The type of customization.
• user level. • configure the groupware. • an HFSQL server,
• The type of database and the location of the User
• supervisor level. Configuring the groupware consists in creating Groupware data files (Standard User Groupware). • the reserved server, including the modules for
and associating users and groups, and managing the Mobile User Groupware (WDBaaS).
2.1 User level • The user authentication mode (Standard User
the rights granted to each user (or group) on each Groupware). For more details, see Configuring a BaaS server
The user logs in to the application and accesses the window of the application. Rights can be defined (User Groupware and Private Store).
• The use of a specific connection service
available features. for menu options, groups of controls and controls.
(Standard User Groupware). Starting the User Groupware
Remark: You can also log in using an LDAP directory. The supervisor can gray out these elements, make
them inactive or invisible. These configurations take • The BaaS mode settings. Several start modes are available:
2.2 Supervisor level precedence over any configuration defined in the Type of User Groupware
program. There are various types of groupware:
The supervisor logs in to the application and
accesses an advanced menu to configure users and For more information on the groupware
their rights, or to start the application. configuration defined by the supervisor, see
Configuring the application that uses the User
Groupware.
• The "Automatic start" option indicates that the
Remark: The information regarding the users and User Groupware is started at the same time as
their rights is stored in data files in HFSQL format the application.
(Classic or Client/Server). • Standard User Groupware: The User Groupware The User Groupware login window is started
will be integrated in its "Standard" version: the before any other window of the application. The
User Groupware will be associated only to your project initialization code is executed once the
application, and the rights will be defined from login window is opened and validated.
the application. • The "Manual start (programmatically)" option
If this option is selected, two specific tabs are allows you to define when the User Groupware
displayed: should be started.
- Direct translation
5.3 Defining rights - Translation via WDMSG, WDINT,
WDTRAD, ...
To define the rights corresponding to the features of
your application, it is recommended to:
• set the rights according to the application
user’s requirements before creating the setup
procedure. Simply add the groupware data files 3 Programming
- Choose the application language
Data files
- Choose the character set
when you create the application setup. (Nation function) (ChangeCharset function)
- Choose the character set - Take the character set into account when
• provide a technical documentation that includes (ChangeCharset function) creating the files (HCreation* function)
the names of controls, groups of controls and - Choose the keyboard language - Take the character set into account when
options that must be configured according to the (ChangeKeyboard function) reindexing (HIndex function)
usage level defined for the application.
4 Executable
Choose the library languages
5 Setup program
- Available languages
- Translate the setup program
WINDEV includes two modes: The Unicode options can be set in the current
• single charset mode ("Use ANSI strings at configuration ("Unicode" tab in the configuration
runtime"): In this mode, if your application description window).
includes languages that use specific character Important
sets (Greek, Korean, etc.), change the following • The static audit of the project, which points out potential programming issues (empty groups,
If you change your projects to Unicode, the ANSI/
elements through programming: orphaned elements, etc.) as well as large files that can cause abnormally long loading times.
Unicode combination generates some constraints:
• the character set used by all the fonts used on Data must be converted when changing from one
the screen (ChangeCharset). This character
set can also be used for the data saved in the
encoding system to another. Any data exchange Static audit
must be adapted depending on how strings are
HFSQL files. For more details, see the online represented in memory (in Unicode, 1 character
help (keyword: Multilingual). Audit report, analysis of the library (to detect
is encoded on 2 bytes, while in ANSI, it is encoded
• the language of the keyboard used by the on 1 byte): for example, calls to APIs, read from large files) and analysis of the setup package.
application users (ChangeKeyboard). or write to the disk to exchange data, read from To start the static audit, go to the "Project"
• full Unicode support ("Use UNICODE strings at or write to sockets containing strings, etc, ...
pane, "Audit and performance" group, expand
runtime"): This mode can be used for non-Latin If you change your projects to UNICODE, a wizard
"Edition audit" and select "Trigger edition
character sets. In this mode, ChangeCharset starts automatically to measure the impact of this
and ChangeKeyboard don’t have any effect. The change.
audit".
character set is automatically changed based
on the language options defined in the project
description. You can also combine different
character sets.
Dynamic audit
With "Reports and Queries", which can be freely distributed with your applications, users will be
Analyze the performance of the application able to freely customize the reports you provide. Of course, only the reports you have selected can
during a test, view processes containing be customized.
exceptions and errors that are not properly
handled. WINDEV project
To start the dynamic audit, on the "Project"
pane, expand "Test mode" and select "Debug 1 Project description
Reports/Queries
Programming
RunReportsAndQueries function
3 Start “Reports & Queries” (optional) Use the “?” menu (automatic)
Executable
Create Setup
To enable this feature (which is disabled by default), simply specify that the project supports the
UMC:
• in the project description,
• when creating the executable.
Test of the entire project Runs the application like the executable file would. Tests
the entire application, even if it is not fully developed.
When a problem occurs during the execution of the
project, you can start the debugger to identify and fix the
problem.
Remark: If the number "64" appears on the "Go" icon, it
means that the test will be run in 64-bit mode in a 32-bit
editor.
Test of the current element Tests an element once it has been developed.
You can start the debugger when a problem occurs in
reports and windows.
Remark: If the number "64" appears on the "Go" icon, it
means that the test will be run in 64-bit mode in a 32-bit
editor.
Test of a project step by step Allows you to start the debugger when the application is
(via the debugger) run. This solution is used to monitor the operating mode
of the application via the debugger.
You can also debug a specific executable file, a running
executable or an executable file running on another
computer.
Unit test Tests windows, procedures and classes in an application
at different stages of development.
The test scenarios are automatically generated in
WLanguage from the application test or from the Debugging the current project
element test. The scenarios can be directly modified in
1. Using breakpoints in the code editor.
the code editor.
The debugger will be automatically started when the line preceded by a breakpoint is run.
Regression test Used to make sure that an element did not cause any To insert a breakpoint, simply click to the left of the line of code: a red dot appears.
regressions between different versions of an application.
To do so, select (or create) the test scenario that will be
run.
1 1
executable file can:
• be run from WINDEV, on the development computer. WINDEV window in the editor Display test editor
3 3
allows you to test the component from the project that uses it.
• Test the component by running an executable file located on the development computer. This WLanguage code of test scenario Result of the test
allows you to test the component directly from the executable file that uses it.
To create a unit test on the current window, go to the "Automated tests" tab, "Tests" group, expand
"New" and select "Record a new scenario".
To create a unit test on a procedure or on a class method, select the procedure or class method in
the "Project explorer" pane and select "Unit tests .. Create a unit test" in the context menu.
2
Start the executable executable. This allows you to test the entire features are still supported when running the
deployed in test mode. The application, even if it is still being developed. If a
test data is used. applications.
problem occurs, you can start the debugger to
identify and fix the problem.
In addition to these methods, WINDEV also provides
Executable deployed Test data a "Code coverage" tool to measure how many tests
The window test is used to run the current window have been executed on your application. For more
with: with: only. This allows you to test your project from a
- Its framework details, see the online help.
- The test library (WDL) given window or to test a window once it has been
- Its data files - The test data (“Data of automatic finished. Like for the project test, the debugger can
tests” directory)
- The data files used for the be started if a problem occurs.
tests (if necessary)
The test of a single query runs the current query
only. This allows you to check the operating mode of
a query once it has been developed.
7 Regression tests
Remark : Depending on the features used by the application, it may not be possible to use a self-
contained executable.
Remark : When you use the common Framework, you can replace one or more DLLs (if a specific
version is required, for example).
Development Computer
computer of User 1
Create the
Setup
executable
Setup media
(CD-ROM,
Create the Use the
USB key, ...)
setup program application
Development Computer
computer of User 1
Create the Use the
Development Computer
executable application computer of User 1
Create the
executable
Create the
Use the
setup program
application
Install the
application
Setup via
setup media
Application via network
server
Install
the reference Setup Web Install the
version
(client
via setup
media server application
by Internet
setup)
Install the reference
If an update is available on the application server, users will be prompted to update the application version (client setup)
on startup.
A network setup allows for better management (versions deployed, mandatory updates,
disconnection of users, etc.).
Application
Setup
server Install the
via setup application
Install the
Setup Web Application Install the mediat on the user
reference
via setup
server Setup server
application computer
media by Internet via network version
via network
Install Install the (client setup)
the reference reference
version (client version (client
setup)
WDAdminExe:
setup)
Run the setup on
Ask for setup
(via a Web page)
one of the user
computers
If an update is available on the Web server, the application is automatically updated on the
application server.
Network administrator
A Push setup can be updated either in Push mode, or as part of a network setup.
1.1 Setup media Start mode On the "Project" On the "Tools" tab, in WDSETUP
tab, in the the "Utilities" group, project available
Depending on the setup media used (Internet, in- "Generation" click "WDInst". in the "Examples"
house network, etc.), WINDEV offers multiple setup group, click "Setup subdirectory of
generation modes. procedure". the WINDEV setup
To optimize your setup, choose the recommended directory.
generation mode.
1.3 Different types of setup • The reference application is installed on the
Setup generation modes offered by WINDEV
server. The reference application corresponds
Two types of setup are available in WINDEV:
Self-extracting Multiple Single directory CD ROM/DVD to the setup program of the application on the
• Individual setup: recommended for single-user user computers.
executable directories ROM
applications.
• The final application is installed on each user
X The setup program installs the application on the
Internet computer by running the setup program found
(recommended) user computer.
on the server. The updates will be automatically
X • Setup with automatic update: recommended for performed when the reference application
CD ROM/DVD (recommended) multi-user applications. changes on the server.
Supports X X The setup with automatic update is performed in
ROM Autorun
possible two steps:
In-house X
network
X X
(recommended)
X
2 Creating the setup program
Individual setup • Compact setup
Different types of setup are available: A standard setup is performed. However, the
• Standard setup setup program is smaller because it does not use
The setup program is independent of the specific DLLs and some customization options
application. All the files required by the are not available.
application are installed on the user computers. • Setup via MSI package
To take an update into account, this update must A standard setup that uses the features of the
be run on each user computer. integrated Windows installer is performed.
Communication
Configures
User computer: Computer 1:
Monitor Monitoring robot
Monitoring
Configures
test
Computer 2:
Counter-Robot
POP3/IMAP
WINDEV application service
Remote access
SMTP service
User computer FTP server
Disconnection
Simple MAPI WINDEV application
User
profile
2. Send and retrieve files (according to the connection mode). For a passive connection, the
WINDEV application must request the authorization from the FTP server before any operation is
performed on the server files. You can also:
• get the characteristics of the files located on an FTP server: attributes, size, etc.
• handle files on an FTP server: create, delete...
• list files from a directory located on the FTP server by running a procedure that starts a
process for each file found.
1
Ask for A socket is a communication resource used by applications to communicate between two
authorization
Passive connection Passive connection computers regardless of the type of network.
(Firewall on the FTP server) (Firewall on the FTP server) This communication mode can be used, for example, to establish a communication between
computers connected by Internet.
2
WINDEV application
Validation
Different modes
3 Action
WINDEV applications can manage sockets according to different modes:
• WINDEV Client application: the application connects to any server and exchanges data via a
socket.
• WINDEV "Simplified server" application: the WINDEV application is a server that exchanges
Action information via a socket with a single client computer.
Active connection Active connection
• WINDEV "Standard server" application: the WINDEV application is a server that exchanges
WINDEV application
information via a socket with multiple client computers.
Example: A WINDEV client application can connect to a standard news server on the Internet.
WINDEV allows you to easily manage incoming and outgoing phone calls via the WLanguage
Client computer Server phone functions. These functions allow you to manage a voicemail, an answering machine (or
1
other) directly in a WINDEV application.
Connection
SocketConnect function
2
Read/
Write
SocketWrite and
Client computer
SocketRead functions
SocketClose function
Disconnection
3 WINDEV
application - Call detection
- Identification of calling number
Remark: the SocketXXX functions can also be used to manage secured sockets according to the
SSL protocol. To do so, use SocketCreateSSL and SocketConnectSSL.
Modem
Automatic dialing
Required configuration:
To use the telephony features, you must have:
• a modem.
To save and play recordings, this modem must include voice support.
To identify the caller, the modem must support Caller ID.
• the Tapi 3.1 protocol.
Webservice
Use the
Webservice
WINDEV executable
To use a REST Webservice, you only need to get the Webservice characteristics and use RESTSend.
Remark: you can also provide one or more sets of procedures of a WINDEV application as a SOAP
or REST Webservice. To do so, you must:
• create a specific project configuration,
• for a REST Webservice, create a description of the REST Webservice,
• generate the Webservice,
• deploy it on a WEBDEV Application Server.
WD Explorer Bar Used to manage an address bar similar to the address bar of
the Windows Vista explorer.
WD HTML Page Import Used to import HTML pages with the WLanguage functions.
WD LastDocuments Allows you to propose a menu option used to open the last
documents opened in the application.
WD PrintSpooler Defines the list of less used printers in order to perform one or
more prints.
WD Select RTF Used to perform all types of searches in an RTF control. You
have the ability to search for:
• the words in bold,
• the words in italic,
• the words of a specific color,
• a character string containing specific words.
The examples provided with WINDEV are intended to help you learn the features of WINDEV. WD Live Messaging Presents the functions for managing the sockets.
Their source code is clear and includes comments.
WD Loan Enables you to simulate loans and to:
WINDEV is provided with multiple examples:
• calculate the amount of monthly payments according to the
• Full examples: these examples correspond to full applications that can be used without any amount of the loan.
adaptation.
• calculate the amount that can be borrowed according to the
• Training examples: these examples illustrate a specific feature. amount of a monthly payment.
These examples can be opened directly from the WINDEV home window: • calculate the interest on investment from a monthly deposit.
• If the example is not installed on the computer, it will be automatically downloaded (from a PC For each case, you have the ability to print the depreciation
SOFT server) and opened. schedule corresponding to your parameters.
• If the example is installed on the computer, a copy is automatically created in "My projects\My
examples". WD Magnifier Used to zoom a section of the screen via a magnifier. The
The open example corresponds to the copy of the original example. This allows you to work or zoom value can be multiplied by 8.
make changes to this copy. The original example can be kept unchanged. Every time you open the
example (via the "Open an example" option), you can work on the copy or on the original version. WD Mail This application is a full email client. It is based on the Email
objects. This email client is used to send and retrieve emails by
Let’s see the features of some examples provided with WINDEV.
using the POP, IMAP and SMTP protocols.
Full examples WD Manager of task DotNet Used to list the applications and processes via the .NET
functions.
Used to perform different processes on the applications and
WBSetup Used to create customize the setup by physical media of a on the processes.
WEBDEV site.
WD Managing a computer Allows you to manage a computer fleet. For each computer,
WD Burner Lite Used to burn data CDs, DVDs or Blue-Ray disks. fleet you have the ability to define its characteristics, its
components and its users.
WD Burner Used to burn data CDs, DVDs or Blue-Ray disks.
These features are implemented via the use of queries,
WD File Synchronization Used to synchronize two file directories. reports and combo boxes.
After the synchronization, the destination directory is identical WD Managing Contacts Used to manage contacts and to send emails to them.
to the source directory. The comparison is performed on the
You also have the ability to synchronize these contacts with
presence and on the date of the files.
the ones found on the mobile device linked to the PC and with
WD FTP File Transfer This example is a full FTP client allowing you to store several the ones of Outlook.
FTP servers. Then, you have the ability to perform multi-file
WD Multimedia Enables you to read and play:
transfers from the local computer to the server or from the
FTP server to the local computer. To do so, we are using the • videos (AVI, MPEG, ...),
standard functions of WLanguage (FTPConnect, etc). • sound files (MP3, WAV),
• audio CDs,
WD Gantt Presents an advanced use of a Gantt chart.
• Flash animations.
Used to create a Gantt chart with tasks, links, cumulative tasks
and milestones. WD Office Image Editor This example presents the operating mode of Image Editor
The tasks can be edited in a specific window. control of WINDEV.
The created chart can be saved in a file in order to be reloaded
thereafter. WD Office PDFReader This example presents the operating mode of PDF Reader
control of WINDEV.
WD Sales Management A “trendy” application for sales management that includes WD Bluetooth This example presents the use of the Bluetooth functions:
dynamic tabs and ribbon. • to list the accessible Bluetooth devices,
WD Schedule Used to create a schedule containing click areas. • to list the services proposed by a device,
• to connect to a Bluetooth device,
WD Simple Internet Browser This example presents the features of WINDEV’s HTML • to send a file to a device via the “OBEX” functions of
control and includes a simplified web browser with browsing WLanguage.
history, favorites, etc.
WD ChainedList Supplies the tools for building chained lists with simple
WD Telephony Uses the telephony functions of WINDEV: chaining. A list with simple chaining is used to store and
• To dial a phone number, browse in organized way a set of ordinary values.
• To detect and identify the incoming calls.
WD Changing Skin Templates This example presents a solution allowing the users to
WD Video Conference Used to start a conference with a remote user. dynamically change the skin templates.
Used to send a file to a recipient and to establish a dialog with WD Chart This training example explains how to use the chart control. All
him. the available types of charts are presented.
WD Coloring Search This example explains how to highlight the sought words in
the results of a Full-Text search.
WD Controlling Spreadsheets This example explains how to control the OpenOffice Calc WD DuplexPrintout This example presents a solution for double-sided printing
spreadsheet and the Excel spreadsheet with a generic code. that can be disabled, which means that the back sides may not
be printed.
WD Controlling word The purpose of this example is to propose a universal
processor interface used to control these applications without having to WD Duplication This educational example explains how to duplicate a
worry about the application to control. database on a server.
WD Controlling Word Used to control Word via OLE Automation. All the Word WD Evaluation period Allows you to limit the use of an application to a given period
functions can be used. (trial period).
WD Dashboard The “WD Dashboard” example explains how to use the WD Example of unit test This example presents the use of the test editor supplied with
Dashboard control. WINDEV via two different cases:
• the test of a window.
WD DataBinding The “WD DataBinding” example explains how a control can be
linked to a WLanguage variable. • the test of a global procedure.
WD Detecting HFSQL Errors Presents the module for assisted management of HFSQL WD Extended Map This example shows the different features of the Map control
errors: in desktop (Windows) and mobile (Android, iOS) devices
• the default operating mode, WD Flowchart This example is used to create organization charts.
• the customization options.
WD Gallery Control This example demonstrates the use of the "Image Gallery"
WD Device Opening This example is used to add or delete an application into/from control.
the automatic opening system for the removable devices by
programming. WD Graphic Objects This example is an editor of graphic objects.
You can:
WD DirectoryObserver This example presents the use of the .NET delegates (.NET
• move, resize the objects,
events) in WLanguage.
• perform selections with the lasso or with the mouse,
WD DirectX This example allows you to use DirectX 9.0 in your WINDEV • cut/copy/paste the objects,
applications. • delete/duplicate the objects,
• save the created documents and print them..
WD Discovering MVP - Part 1 This training example explains how to implement an MVP
architecture (Model View Presenter) in a project. WD Handling the Organizer Example for using the Organizer control. The following
control features are used: Creating an appointment, Saving an
WD Discovering MVP - Part 2 This training example explains how to implement an MVP
organizer, Restoring an organizer.
architecture (Model View Presenter) in a project for a simple
analysis (Customer - Order - Order line - Product). WD HFSQL Explain Analyzer Visually represents the details of the execution plane of a SQL
query via SQL EXPLAIN.
WD DOTNET Delegate This educational example explains how to interact with the
.NET delegates. WD HotKey Used to define your own keyboard shortcuts.
WD Jump lists JumpList in Windows 7 WD OpenGL Allows you to interface OpenGL and WINDEV. OpenGL is a
A JumpList is a menu accessible from the Start menu or from software interface used to draw three-dimensional objects
the application icon in the taskbar. (3D).
WD Lasso Uses a selection lasso in an Image control to perform a zoom WD OSD OSD means: On-Screen Display. It is the name given to the
in a preview control. interfaces that appear on the computer or television screens
for example. They are often used to perform settings. These
WD Mailshot Used to send a “mailing” by Internet. types of menus are displayed above all the elements found on
the screen. This example explains how to create this type of
WD Managing HFSQL Errors This example presents the management of HFSQL errors interface in WINDEV.
(duplicate, integrity).
This example explains how to customize the process when an WD PC Info Used to find out the language of the computer on which the
error occurs. application is run.
WD Managing the Java errors This training example explains the operating mode and the WD Persistence This example presents the use of InitParameter,
implementation of the mechanism for managing the WINDEV LoadParameter, SaveParameter. These functions are used to
errors. configure the backup of controls, variables and parameters.
WD Multiple Clipboards This example automatically manages a multi-level clipboard WD PivotTable This example presents the use of the Pivot Table control.
between all the WINDEV applications started on the This Pivot Table control is used to display dynamic statistics
computer. by performing groupings. These statistics are calculated from
the database.
WD WDSETUP Plugin This project contains the elements required to create a setup
plugin (or “extension”) for WDSETUP.