Vous êtes sur la page 1sur 101

WINDEV 24

Documentation version 24 - 1 - 1018


Dans quel ordre lire les manuels ?
WINDEV est un puissant outil de développement d’applications Windows, qui fournit en standard
tous les outils nécessaires à la conception et à la réalisation d’applications.

Pour une formation rapide et efficace à WINDEV, nous vous conseillons l’ordre d’apprentissage
suivant :

1
Lecture des "Concepts".
 Ce manuel présente les principaux concepts nécessaires à la création d’une application
WINDEV performante. Certains concepts sont suivis d’une partie "Pratique" détaillant cer-
taines fonctionnalités de l’éditeur.

2
"Auto-formation" (livre + exercices)
 Le guide d’auto-formation permet une première approche "pratique" de WINDEV. Vous pou-
vez ainsi vous familiariser avec les principaux éditeurs de WINDEV.

3
Test des exemples
 Testez les différents exemples livrés avec WINDEV dans les domaines qui vous intéressent
(gestion commerciale, planning, ...).

L’aide en ligne, accessible par Internet à l’adresse http://doc.pcsoft.fr ou installée avec WINDEV
Visitez régulièrement le site www.pcsoft.fr, espace actualités pour vérifier si des mises à jour
sont propo­sées. permet de trouver rapidement la syntaxe d’une fonction du WLangage, d’obtenir une aide sur
l’interface, ... Pour chaque thème de programmation, vous trouverez une description de la fonc-
tionnalité associée et la liste des fonctions du WLangage correspondantes.

Adresse e-mail Support Technique Gratuit : supportgratuit@pcsoft.fr Remarque : En cas de divergence entre les manuels et l’aide en ligne, suivez les instructions de
l’aide en ligne.

Nous vous souhaitons une agréable prise en main de WINDEV.


Conseil : Pour recevoir directement des mises à jour intermédiaires et des conseils d’utilisa-
tion, abonnez-vous à la LST (revue trimestrielle + DVD), en français.

Cette documentation n’est pas contractuelle. PC SOFT se réserve le droit de modifier ou de


supprimer tout sujet traité dans ce document.

Tous les noms de produits ou autres marques cités dans cet ouvrage sont des marques déposées par leurs propriétaires respectifs.
© PC SOFT 2018 : Aucune reproduction intégrale ou partielle du présent ouvrage sur quelque support que ce soit ne peut être effec­
tuée sans l’autorisation expresse de PC SOFT.

Introduction 3
Organisation du manuel Sommaire
Ce manuel présente les principaux concepts nécessaires à la création d’une application WINDEV Partie 1 - Notions de base
performante. Certains concepts sont suivis d’une partie "Pratique" détaillant certaines fonction- Projet et analyse.................................................................................................................... 9
nalités de l’éditeur. Cycle de développement d’une application.......................................................................14
IHM : Les fenêtres................................................................................................................ 16
Deux types de pages sont donc présents dans ce manuel : Fenêtres modales, non modales ou MDI........................................................................... 17
Fenêtre interne.....................................................................................................................19
Modèles de fenêtres............................................................................................................20
Les différents types de champs standard..........................................................................34
Modèles de champs............................................................................................................49
Edition : Les états................................................................................................................50
Modèles d’états................................................................................................................... 51

Partie 2 - Environnement de développement


Page concept Les éditeurs de WINDEV......................................................................................................55
Tableau de bord du projet...................................................................................................59
WINDEV/WEBDEV/WINDEV Mobile : 100% compatibles.................................................60
Configuration de projet........................................................................................................ 61
Génération multiple.............................................................................................................62
Perso-dossiers : Organisez votre projet..............................................................................63
Gestionnaire de sources (GDS)...........................................................................................64
Composant interne.............................................................................................................. 71
Composant externe.............................................................................................................. 74
Modes de génération...........................................................................................................82
Centre de Suivi de Projets................................................................................................... 87
Gestion des exigences.........................................................................................................88
Gestion des tâches..............................................................................................................89
Gestion des suggestions et des incidents.........................................................................90
Gestion des règles métier................................................................................................... 91

Partie 3 - Bases de données


Page de mise en pratique
Analyse : Structure de la base de données.......................................................................95
Les différents types de fichiers accessibles....................................................................104
HFSQL Classic....................................................................................................................106
HFSQL Client / Serveur.....................................................................................................107
Cluster HFSQL Client/Serveur...........................................................................................108
HFSQL : les fichiers créés physiquement.........................................................................109
Associer les champs et les données................................................................................110
Les requêtes.......................................................................................................................112
Les requêtes intégrées......................................................................................................113

4 Introduction Sommaire 5
Les champs Table/Zone Répétée.....................................................................................114
Réplication universelle......................................................................................................116
PARTIE 1
Architecture 3-tiers............................................................................................................117

Partie 4 - Concepts avancés


RAD RID..............................................................................................................................121
Le modèle UML................................................................................................................. 122
Groupware utilisateur....................................................................................................... 129
Applications multilingues..................................................................................................137
Optimiser une application.................................................................................................143
Livrer "Etats et Requêtes"..................................................................................................145
MCU : Macro Code Utilisateur...........................................................................................146
Les différents tests disponibles........................................................................................148
Notions de
Le débogueur.....................................................................................................................149
Tetst untitaires/Tests automatiques................................................................................151
base
Tests unitaires sur l’exécutable........................................................................................152

Partie 5 - Installation
Le Framework WINDEV......................................................................................................161
Les différents modes d’installation d’une application....................................................163
Surveillez vos applications................................................................................................172

Partie 6 - Communication
Gestion des emails............................................................................................................175
Transfert de fichiers par FTP.............................................................................................177
Gestion des sockets...........................................................................................................179
WINDEV et la téléphonie...................................................................................................181
Les Webservices................................................................................................................182

Partie 7 - Annexes
Composants livrés avec WINDEV......................................................................................185
Exemples livrés avec WINDEV...........................................................................................189

6 Sommaire
Projet et
Contenu

analyse
Le développement d’une Application Windows en utilisant WINDEV repose sur deux éléments
principaux : le Projet et l’Analyse.

Un Projet WINDEV est un ensemble d’éléments : fenêtres, états, champs, classes, composants, ...
L’assemblage de ces éléments permet de réaliser une application Windows.

Une Analyse WINDEV correspond au schéma des données utilisé par l’application. L’analyse re-
groupe les différentes tables (aussi appelées fichiers de données) utilisées par l’application.

Une application est construite à partir d’un projet.


Un projet est généralement associé à une analyse.
Une analyse peut être associée à un ou plusieurs projets.

Projet 1

Classes Feuille Fenêtres


de styles et champs

Analyse

Projet 2 Projet N

Classes Feuille Fenêtres Classes Feuille Fenêtres


de styles et champs de styles et champs

8 Partie 1 : Notions de base Partie 1 : Notions de base 9


Le projet en pratique 3  Tableau de bord et éléments du projet

3.1 Tableau de bord
1  Présentation Tout responsable de projet cherche à avoir une vi-
sion globale et synthétique de l’état d’avancement
La première étape de la description d’une applica- du projet spécifiées lors de la création du projet des projets qu’il dirige.
tion consiste à créer un projet. pourront être modifiées par la suite. Tout responsable qualité veut connaître le nombre
Lors de la création d’un projet, plusieurs questions et l’importance des bogues des projets et en suivre
Remarque : Les analyses sont présentées en l’évolution.
vous sont posées afin que votre projet corresponde détail dans le chapitre "Analyse : Structure de la
à toutes vos attentes. Toutes les caractéristiques base de données", page 95. Le responsable fonctionnel cherche à savoir
quelles sont les évolutions demandées par les uti-
lisateurs. Pour plus de détails, consultez "Tableau de bord du
projet", page 59.
2  Création du projet Le développeur cherche à lancer directement et
rapidement les éléments du projet, les codes les 3.2 Les éléments du projet
plus utilisés, ...
Pour créer un projet : • la charte de programmation. Cette charte Le projet est composé de fenêtres, d’états, de re-
permet de préfixer automatiquement les va- Le tableau de bord permet de répondre à tous ces
1. Cliquez sur parmi les boutons d’accès quêtes, de collections de procédures, ...
riables, les noms de champs, de fenêtres, ... souhaits. Le tableau de bord propose différents
rapide de WINDEV. La fenêtre de création d’un Pour connaître la liste des éléments d’un projet,
indicateurs sous forme de "Widgets". Ces Widgets
nouvel élément s’affiche : cliquez sur "Projet". • la charte graphique. sous le volet "Projet", dans le groupe "Projet", cli-
sont paramétrables par utilisateur : il est possible
L’assistant de création d’un projet se lance. • les langues gérées. Ces langues seront pro- quez sur "Liste des éléments".
d’en ajouter, supprimer ou encore de les redimen-
2. Spécifiez les différentes options du projet. Les posées par défaut dès qu’une option pourra sionner. Cette option permet de :
principales options sont les suivantes : être traduite dans un champ, une fenêtre, un
Il est possible par exemple d’afficher les statis- • ajouter à votre projet des éléments appartenant
• le nom et l’emplacement. Ces options ne état, ...
tiques sur le projet (nombre de fenêtres, ...), le à des projets accessibles depuis votre poste.
seront pas modifiables. Le projet correspond 3. Indiquez si le projet doit utiliser une base de résultat des différents audits (audit statique, dyna- Les fichiers correspondants ne seront pas dépla-
à un fichier ".WDP". Tous les éléments asso- données ou non. Si oui, la base de données peut mique, ...), ... cés dans le répertoire de votre projet.
ciés au projet seront créés dans le répertoire exister ou être nouvelle.
Pour afficher le tableau de bord de votre projet : • supprimer des éléments de votre projet. Les
spécifié. 4. Validez l’assistant. Le projet créé devient le
1. Affichez le menu contextuel du projet dans la fichiers correspondants ne sont pas supprimés
• le type de projet. De nombreuses possibilités projet en cours. physiquement.
barre des documents ouverts.
sont offertes : application, composant, appli-
2. Sélectionnez l’option "Afficher le tableau de Pour rechercher rapidement un élément de votre
cation Java, ... Ces options sont détaillées Remarques : bord". projet, utilisez la combinaison de touches "Ctrl + E"
plus tard. En règle générale, un projet permet
• Si vous avez demandé la création d’une base depuis n’importe quel éditeur.
de générer une application (exécutable).
de données, l’assistant correspondant se lance
• le système d’exploitation et le mode d’exécu- automatiquement.
tion (pour les exécutables).
• L’ensemble des informations fournies peut être
• si le projet va être manipulé par plusieurs modifié dans la description du projet. Pour affi-
développeurs. Il est possible d’utiliser le ges- cher la fenêtre de description du projet, sous le
tionnaire de sources (GDS) pour partager le volet "Projet", dans le groupe "Projet", cliquez sur
projet. "Description".

10 Partie 1 : Notions de base Partie 1 : Notions de base 11


4  Manipulations du projet Si le format d’impression est modifié (passage de Pour cela :
A4 à A3 par exemple dans les propriétés de l’im- 1. Définissez des zones d’impression.
primante), il est possible d’adapter le format des 2. Affichez les options de mise en page du dos-
Voici les principales manipulations pouvant être • Copier ou supprimer un projet. pages du dossier.
réalisées sur un projet : • Renommer un projet. sier : sous le volet "Accueil", dans le groupe "Géné-
• Archiver un projet. ral", déroulez l’icône et sélectionnez l’option
Pour plus de détails sur ces fonctionnalités, consul- "Mise en page du dossier".
• Restaurer un projet. tez l’aide en ligne.
3. Cochez l’option "Adapter la taille des zones
• Dupliquer un projet. d’impression des documents ouverts".
4. Lancez l’impression du dossier.
5  Dossier du projet
WINDEV permet d’imprimer différents dossiers Type d’édition du dossier
détaillant l’ensemble des éléments (fenêtre, état, Le dossier peut au choix être :
fichier de données, rubrique, ...) du projet. Pour • imprimé,
imprimer ces dossiers :
• exporté vers un document RTF, vers un fichier
• sous le volet "Accueil", dans le groupe "Général", XML,
déroulez l’icône et sélectionnez l’option
"Imprimer le dossier du projet". Le dossier peut • exporté vers un fichier HTML (un navigateur
contenir l’ensemble des caractéristiques du internet doit être installé sur le poste en cours),
projet. • exporté vers un fichier texte.
• sous le volet "Accueil", dans le groupe "Général", 5.2 Zones d’impression
cliquez sur l’icône . Le dossier est alors
constitué uniquement des caractéristiques de Si des représentations graphiques (MLD, dia-
l’élément (fenêtre, état, requête, ...) en cours. grammes UML, ...) doivent être imprimées, il est
nécessaire de configurer les zones d’impression
5.1 Type de dossier avant d’imprimer le dossier.
Plusieurs types de dossier sont proposés : Pour spécifier les zones d’impression de la repré-
• Dossier Analyse / Fichier de données / Re- sentation graphique en cours :
quêtes : Contient les informations sur l’analyse, 1. Sous le volet "Affichage", dans le groupe "Edi-
les fichiers de données et les requêtes du projet. tion", cochez l’option "Zones d’impression". Des
• Dossier IHM (Interface Homme Machine) : bordures représentant les zones imprimables
Contient uniquement la représentation des dans le dossier apparaissent sous l’éditeur en
fenêtres et des états, ainsi que leur enchaîne- cours.
ment. 2. Réduisez l’affichage de la représentation gra-
• Dossier Code : Contient l’ensemble des traite- phique (option "Zoom" du volet "Affichage" ou Ctrl
ments de tous les objets du projet. + Roulette de la souris) pour visualiser l’ensemble
• Dossier Technique : Contient les traitements et du graphe.
les descriptions techniques de tous les objets 3. A l’aide de la souris :
du projet. • déplacez ces bordures à l’endroit désiré en
• Dossier Complet : Contient toutes les infor- maintenant le bouton de la souris enfoncé (la
mations du projet. Ce dossier correspond à la couleur du curseur de la souris est noire).
fusion de tous les types de dossiers. • choisissez le nombre de pages sur lesquelles
la représentation graphique doit être impri-
mée (le curseur de la souris se transforme en
double-flèche Nord-Ouest / Sud-Est).

12 Partie 1 : Notions de base Partie 1 : Notions de base 13


Cycle de développement
Contenu

d’une application
WINDEV couvre la totalité du cycle de développement d’une application :

Test et
Conception Développement génération Déploiement

Cahier des charges Création du projet Test et débogage


Génération de l’installation
de l’application

Génération de
Modélisation UML Création de l’analyse Test final
l’application :
- Exécutable Win32
- Exécutable Win64 Première installation :
Importation de Développement - Application Linux locale, réseau, par HTTP, en push
fichiers existants - RAD Projet - Service Windows/Linux ...
- RAD Fenêtre - Webservice
- Requêtes
- Etats
- Saisie du code source Mise à jour de l’application
Synchronisation des
données déployées

Détail des différentes phases :

Phase de conception : Il est possible de concevoir une application à partir d’un simple cahier Phase de tests et génération : WINDEV offre toute une panoplie d’outils de tests automatiques
des charges, d’une modélisation UML des traitements ou même à partir de fichiers de données pour garantir la fiabilité des applications et assurer la non-régression entre les phases de déve-
préexistants. loppement.

Phase de développement : La création du projet et de l’analyse est réalisée à l’aide d’assistants Phase de déploiement : Le déploiement d’une application WINDEV peut se faire de nombreuses
très complets. Le développement peut être effectué en mode RAD (Rapid Development Applica- façons : téléchargement, via un réseau local (y compris en mode Push) ou via Internet. Dans tous
tion) avec génération automatique du code et des IHM ou être le résultat d’une création manuelle les cas, les fichiers de données HFSQL seront automatiquement mis à jour en fonction des évolu-
des différents éléments du projet. tions de l’application.

14 Partie 1 : Notions de base Partie 1 : Notions de base 15


IHM :
Contenu
Fenêtres modales, non
Contenu

Les fenêtres modales ou MDI


Les fenêtres constituent la base de l’IHM (Interface Homme Machine) d’une application. Les applications créées avec WINDEV peuvent utiliser plusieurs types de fenêtres (et mélanger
chacun de ces types).
WINDEV est constitué d’un éditeur de fenêtres particulièrement évolué permettant de réaliser
facilement et rapidement tous les types d’IHM possibles. Fenêtres modales
Une fenêtre modale s’ouvre en avant-plan de l’application et bloque l’accès aux autres fenêtres
De nombreuses fonctionnalités permettent d’obtenir simplement des applications intuitives et déjà ouvertes (s’il y en a). Les fenêtres modales sont généralement utilisées comme :
agréables d’utilisation : • fenêtres principales d’une application,
• des champs puissants et variés, • boîtes de dialogue dont la validation provoque une action.
• un mécanisme d’ancrages permettant à l’IHM de s’adapter automatiquement à la taille de Avec WINDEV, lorsqu’une fenêtre modale s’ouvre, une ombre grise apparaît sur les fenêtres en
l’affichage, arrière-plan : c’est le GFI ou Grisage des Fenêtres Inaccessibles.
• un système de compilation de l’IHM avec détection des erreurs (titres vides, libellés non tra-
duits, chevauchements, ...),
• ...

16 Partie 1 : Notions de base Partie 1 : Notions de base 17


Fenêtres non modales
Fenêtre
Contenu

Une fenêtre non modale s’ouvre en parallèle des autres fenêtres de l’application. Chacune des
fenêtres reste accessible et manipulable. Les fenêtres non modales servent généralement :
interne
• de palettes d’outils,
• de boîtes de dialogue dont la modification affecte directement la fenêtre principale. Le champ Fenêtre interne permet d’inclure une fenêtre (et son code) dans une autre fenêtre. A
l’exécution, la fenêtre interne sera dynamiquement fusionnée à la fenêtre hôte.

1. Création d’une fenêtre interne.


Pour créer une fenêtre interne :
• Cliquez sur parmi les boutons d’accès rapide.
• La fenêtre de création d’un nouvel élément s’affiche : cliquez sur "Fenêtre" puis sur
"Fenêtre interne".
Une fenêtre interne est une fenêtre spécifique qui ne
comporte ni barre de titre, ni menu.
Dans cette fenêtre, tous les types de champs peuvent
être utilisés.

Dans l’exemple, une fenêtre interne de sélection de


fichiers est définie.
Dans cet exemple, chaque fenêtre de description d’un polo permet d’ouvrir la fenêtre de descrip-
tion d’un autre polo. Toutes les fenêtres ouvertes restent accessibles. 2. Utilisation d’une fenêtre interne.
Pour utiliser une fenêtre interne :
Fenêtres MDI
Dans une application MDI, toutes les fenêtres de l’application sont affichées dans une seule et • Créez un champ de type fenêtre interne.
même fenêtre principale : la fenêtre mère MDI. Les fenêtres des applications MDI peuvent donc • Dans la fenêtre de description du champ,
être de deux types : sélectionnez la fenêtre interne à utiliser.
• Validez la fenêtre de description du champ.
Fenêtre mère MDI : Toutes les autres fenêtres
de l’application sont affichées dans cette fe-
nêtre. Cette fenêtre permet à l’utilisateur de
manipuler le menu principal de l’application.
Remarques :
• Il est possible de modifier par programmation
la fenêtre interne utilisée dans le champ
Fenêtre fille MDI : Fenêtre de l’application "Fenêtre interne".
affichée dans la fenêtre mère. C’est dans ces • Limitations : La zone d’accueil est rectan-
fenêtres que l’utilisateur pourra saisir des in- gulaire et aucune surcharge n’est possible.
formations. Pour réaliser des surcharges, il est conseillé
d’utiliser des modèles de champs.

18 Partie 1 : Notions de base Partie 1 : Notions de base 19


Modèles de
Contenu

Les fenêtres en pratique


fenêtres Une fenêtre a pour but d’afficher, de consulter et de Pour plus de détails sur la manipulation des
saisir des informations. Ces informations peuvent champs d’une fenêtre, consultez "Les champs en
provenir de fichiers de données d’une analyse, de pratique", page 39.
WINDEV permet de créer des modèles de fenêtres. Ces modèles contiennent tous les éléments fichiers externes, de requêtes, ... Ce chapitre traite les sujets suivants :
graphiques communs à l’ensemble des fenêtres de votre application. WINDEV propose plusieurs solutions pour créer les • "Création d’une fenêtre", page 21.
Les modifications effectuées dans un modèle de fenêtres sont automatiquement reportées sur fenêtres d’un projet : • "Manipulations simples sur une fenêtre depuis
toutes les fenêtres utilisant ce modèle. • Créer une fenêtre vierge avec l’assistant. l’éditeur", page 22.
• Construire l’ensemble des fenêtres de l’applica- • "Principales caractéristiques d’une fenêtre",
tion à partir de la description de l’analyse. page 22.
Un modèle de fenêtres facilite le respect de la charte graphique d’une application. • Créer une fenêtre à partir de la description de • "Fenêtre et image", page 24.
l’analyse (avec son code ou non). • "Ouvrir une fenêtre "popup"", page 26.
• Créer des fenêtres standards. • "Grisage automatique des fenêtres", page 27.
• Créer des fenêtres basées sur un modèle, ... • "Fenêtre interne", page 27;
Quelle que soit la méthode utilisée, la fenêtre pour- • "Modèles de fenêtre", page 28.
ra être modifiée après sa création : il sera possible • "Traitements associés aux fenêtres", page 28.
d’ajouter, modifier ou supprimer des champs, de • "Les menus contextuels", page 29.
modifier les caractéristiques de la fenêtre.
• "La barre de message", page 33.

Définition d’un modèle de fenêtres. 1  Création d’une fenêtre


Le modèle est encadré d’un trait orange
sous l’éditeur. WINDEV permet de créer plusieurs types de fe- 5. Spécifiez le titre et le nom de la fenêtre. La fe-
nêtres : nêtre correspond à un fichier ".WDW". Par défaut,
• Fenêtres vierges, sans aucun champ. ce fichier sera créé dans le répertoire principal
• Fenêtres créées par le RAD / RID. du projet. Ce nom sera utilisé pour manipuler la
fenêtre.
• Fenêtres internes. Ces fenêtres pourront être
utilisées dans des champs de type "Fenêtre 6. Validez l’enregistrement de la fenêtre.
Interne". 7. Créez les champs dans la fenêtre.
• Fenêtres basées sur un modèle de fenêtres. Remarque : Les principales caractéristiques des
• Fenêtres importées à partir d’une application fenêtres sont détaillées dans l’aide en ligne. Les
non WINDEV. différents types de champs sont présentés dans le
chapitre "Les champs en pratique", page 39.
Utilisation du modèle dans plusieurs fenêtres. Ce paragraphe détaille uniquement la création de
Les éléments appartenant au modèle sont identifiés par un carré jaune. fenêtres vierges, internes ou basées sur un mo- 1.2 Fenêtre interne
dèle. Pour plus de détails, consultez l’aide en ligne.
Une fenêtre interne est une fenêtre sans barre de
Remarque : La programmation associée aux éléments du modèle peut être directement réalisée 1.1 Création de fenêtres vierges titre, ni barre de message qui sera directement in-
cluse dans les autres fenêtres de votre application
dans le modèle. Pour créer une fenêtre vierge : grâce au champ "Fenêtre interne".
Les caractéristiques des éléments peuvent être désolidarisées du modèle. Par exemple, désolida- 1. Cliquez sur parmi les boutons d’accès ra- Ainsi, il est possible d’inclure une fenêtre (et son
riser la position d’un champ du modèle pour positionner le champ ailleurs tout en conservant les pide. La fenêtre de création d’un nouvel élément code) dans une autre fenêtre.
s’affiche : cliquez sur "Fenêtre" puis sur "Fenêtre".
autres évolutions sur le champ (code, style, ...). On parle alors d’héritage de champ. Dans ce cas, L’assistant de création d’une fenêtre se lance. Pour créer une fenêtre interne :
les éléments sont identifiés par un carré bleu. 2. Choisissez le type "Vierge". 1. Cliquez sur parmi les boutons d’accès ra-
pide. La fenêtre de création d’un nouvel élément
3. Spécifiez le gabarit de la fenêtre. s’affiche : cliquez sur "Fenêtre" puis sur "Fenêtre".
4. Validez la création de la fenêtre. Une fenêtre L’assistant de création d’une fenêtre se lance.
vierge est créée sous l’éditeur. La fenêtre de sau- 2. Sélectionnez l’onglet "Fenêtre interne".
vegarde apparaît automatiquement.
3. Sélectionnez le type de fenêtre et le gabarit
associé.

20 Partie 1 : Notions de base Partie 1 : Notions de base 21


4. Validez. La fenêtre de sauvegarde apparaît s’affiche : cliquez sur "Fenêtre" puis sur "Fenêtre". projets). Pour plus de détails, consultez "Applica- • soit sélectionnez l’option "Description" du menu
automatiquement. L’assistant de création d’une fenêtre se lance. tions multilingues", page 137. contextuel de la fenêtre (clic droit de la souris).
2. Sélectionnez l’onglet "Basée sur un modèle". • se griser automatiquement si elle devient inac- • soit sélectionnez la fenêtre et utilisez le raccour-
1.3 Fenêtre basée sur un modèle cessible. Cette fonctionnalité s’appelle GFI pour ci clavier Alt + Entrée.
3. Sélectionnez le modèle voulu et le gabarit
WINDEV permet également de créer une fenêtre associé. Grisage des Fenêtres Inaccessibles. Pour plus
basée sur un modèle de fenêtres. Dans ce cas, il de détails, consultez le paragraphe "Grisage 3.4 Caractéristiques par onglet
4. Validez. La fenêtre de sauvegarde apparaît
suffit de sélectionner le modèle de fenêtres voulu. automatiquement. automatique des fenêtres", page 27.
Ce paragraphe présente rapidement les différentes
Les modèles de fenêtres contiennent tous les Les modifications effectuées dans un modèle de • autoriser le drag and drop. Pour plus de détails
catégories de caractéristiques affichées par onglet.
éléments graphiques et le code communs à l’en- fenêtres sont automatiquement reportées sur sur le drag and drop et sa programmation,
semble des fenêtres de votre application. consultez l’aide en ligne. Pour plus de détails sur chacune des caracté-
toutes les fenêtres utilisant ce modèle. ristiques présentes dans les différents onglets,
Pour créer une fenêtre basée sur un modèle : Un modèle de fenêtres permet de respecter la • autoriser la modification de l’interface par
consultez l’aide en ligne.
1. Cliquez sur parmi les boutons d’accès ra- charte graphique définie pour une application. l’utilisateur final. Pour plus de détails, consultez
l’aide en ligne. Onglet Général
pide. La fenêtre de création d’un nouvel élément
Remarque : Pour forcer une action sur une fenêtre, L’onglet "Général" permet de spécifier le nom de la
il suffit de définir un bouton de cette fenêtre en fenêtre et son titre.
2  Manipulations simples sur une fenêtre depuis l’éditeur mode "Exécution automatique". Pour plus de dé- Onglet IHM
tails, consultez le paragraphe "Exécution automa-
L’éditeur de fenêtres permet de réaliser les mani- • Sauvegarder et copier une fenêtre. tique d’un bouton", page 48. L’onglet "IHM" permet de définir les différents para-
pulations suivantes sur les fenêtres : • Importer et exporter une fenêtre. mètres de l’interface de la fenêtre :
• Ouvrir une fenêtre sous l’éditeur : Il suffit de 3.2 Fenêtre de description • visibilité de la fenêtre,
• Modifier l’ordre de navigation.
double-cliquer sur le nom de la fenêtre affiché Pour plus de détails sur ces manipulations, consul- La fenêtre de description est une fenêtre à onglets, • position de la fenêtre,
dans le volet "Explorateur de projet". tez l’aide en ligne. regroupant toutes les caractéristiques paramé- • gestion du clic droit, du curseur de la souris,
• Modifier la taille d’une fenêtre. trables de la fenêtre. • association à un menu contextuel, ...
Remarque : Il est également possible de visuali-
ser et/ou de modifier les caractéristiques d’une Onglet Détail
3  Principales caractéristiques d’une fenêtre fenêtre dans le modifieur. Pour plus de détails, L’onglet "Détail" permet de définir les différents
consultez l’aide en ligne. paramètres de la fenêtre :
3.3 Affichage des caractéristiques • modification de l’interface par l’utilisateur final,
3.1 Caractéristiques • avoir un menu déroulant : ce menu permettra
aux utilisateurs d’accéder plus rapidement aux • animation,
Une fenêtre peut accueillir tous les types de Pour afficher la fenêtre de description : • fermeture automatique.
principales fonctionnalités de l’application. Pour
champs disponibles. Une fenêtre peut :
créer un menu déroulant dans une fenêtre, • soit double-cliquez sur le fond de la fenêtre.
• être redimensionnable : l’utilisateur pourra sous le volet "Fenêtres", dans le groupe "Barres
agrandir ou diminuer la taille de la fenêtre. Se- et menus", déroulez "Menu principal" et sélec-
lon les caractéristiques d’ancrage définies pour tionnez l’option "Ajouter le menu principal". La
chacun des champs, la position des champs première option apparaît dans la fenêtre. Les
dans la fenêtre pourra varier lors de ce redimen- options peuvent être manipulées grâce au menu
sionnement (pour plus de détails sur l’ancrage, contextuel des options. Les options de menu
consultez "Ancrage des champs", page 45). peuvent ensuite être manipulées par program-
• avoir une image de fond : cette image est mation. Pour plus de détails, consultez "Les
affichée en fond de la fenêtre et les champs menus contextuels", page 29.
viennent se superposer à cette image. Il est • avoir une barre de message : cette barre de
également possible de définir des caractéris- message affichera les messages d’aide associés
tiques de redimensionnement grâce au mode 9 aux différents champs de la fenêtre. Cette barre
images. Pour plus de détails, consultez "Fenêtre de message permet également d’afficher des
et image", page 24. informations supplémentaires. Pour plus de
• être détourée : la fenêtre aura ainsi une forme détails, consultez "La barre de message", page
originale (fenêtre en forme de cercle, d’ordina- 33.
teur, ...). Pour plus de détails, consultez le para- • être multilingue : toutes les langues définies
graphe "Fenêtre détourée", page 26. pour la fenêtre seront disponibles pour tous les
champs de la fenêtre. Une fenêtre peut être as-
sociée à plus de langues que le projet (cas par
exemple des fenêtres partagées entre plusieurs

22 Partie 1 : Notions de base Partie 1 : Notions de base 23


Onglet Image imprimées dans les dossiers de programmation • Répété : l’image est affichée à 100% et répétée modifiée par programmation (propriété ..Image).
Cet onglet permet de paramétrer : (dossier du projet, dossier de la fenêtre, ...). dans le champ Image pour occuper tout l’espace Symétrie
• l’image de fond de la fenêtre, Onglet Aide du champ. Les options de symétrie permettent de changer
• l’image de la poignée de redimensionnement, L’onglet "Aide" permet d’associer un fichier d’aide • Homothétique : l’image est agrandie proportion- l’orientation de l’image contenue dans le fichier
contextuelle à la fenêtre. Ce fichier d’aide contient nellement pour être affichée entièrement dans image. Ces options seront conservées même si
• l’icône de la fenêtre. le champ Image.
les pages d’aide contextuelle affichées par chaque l’image est modifiée par programmation (propriété
Onglet Langues champ. • Homothétique étendu : l’image est proportion- ..Image).
Cet onglet permet de connaître les langues gérées nellement agrandie pour que le plus petit côté Image originale :
Onglet Style
par la fenêtre, ainsi que la langue affichée sous de l’image soit affiché entièrement dans le
l’éditeur. Il est possible d’ajouter, de modifier ou de L’onglet "Style" permet de définir le style de la fe- champ Image.
supprimer des langues. nêtre :
• Homothétique centré : l’image est homothé-
Onglet Notes • Présence de la barre de titre. tique et centrée dans le champ Image.
L’onglet "Notes" permet de décrire le fonctionne- • Présence des différentes icônes. • Homothétique centré étendu : l’image est éten-
ment détaillé de la fenêtre. Ces informations seront • Présence de la barre de message, ... due et centrée dans le champ Image.
• Homothétique sans agrandissement : si l’image
peut être affichée entièrement dans la fenêtre, Symétrie Symétrie Symétrie
4  Fenêtre et image elle est affichée à 100%. Si l’image est plus verticale horizontale horizontale
grande que la fenêtre, elle est automatiquement et verticale
réduite proportionnellement pour être affichée
4.1 Présentation Les options possibles sur l’image sont : entièrement.
Pour optimiser le look de vos écrans, WINDEV per- • Gestion des images multilingues. • Homothétique centré sans agrandissement :
met d’utiliser : • Mode d’affichage. l’image est centrée et homothétique sans agran-
• des couleurs de fond. De nombreuses couleurs • Position. dissement.
standards peuvent être utilisées. La couleur de • Transparence. L’option "Affichage Haute Qualité" permet en mode
fond est configurée dans l’onglet "Style" de la homothétique d’améliorer la qualité de l’image
• Symétrie.
fenêtre de description de la fenêtre. lorsque celle-ci est réduite par rapport à sa taille Mode 9 images
• Mode 9 images. initiale.
• des images dans vos fenêtres. Ces images sont Si cette option est sélectionnée, le mode 9 images
• Détourage de la fenêtre selon l’image de fond. sera utilisé sur l’image de fond de la fenêtre.
utilisées en image de fond de la fenêtre. Vos Position
champs sont superposés sur cette image. La Gestion des images multilingues Le mode 9 images consiste à découper l’image de
Ce paramètre permet de définir la position du point
configuration de l’image de fond est réalisée Une image de fond différente peut être affichée fond en 9 zones.
haut gauche de l’image par rapport à la surface de
dans l’onglet "Image" de la fenêtre. selon la langue d’exécution du programme. Les ca- Pour chaque zone, il est possible de définir si
la fenêtre.
Remarques : ractéristiques d’affichage peuvent être spécifiques la partie de l’image correspondant à la zone doit
à chaque langue. Ces options seront conservées même si l’image est
• Si nécessaire, WINDEV offre également la possi- modifiée par programmation (propriété ..Image). être affichée ou non (il suffit de cocher le nom de
bilité d’utiliser le look et le thème XP/Vista dans Pour définir une image de fond multilingue : la zone pour l’afficher). Si la partie de l’image n’est
Transparence
vos fenêtres. Pour plus de détails, consultez 1. Cliquez sur l’icône présente à droite du nom de pas affichée, elle sera remplacée par la couleur de
l’aide en ligne. l’image de fond. Les options de transparence de l’image de fond fond de la fenêtre.
sont les suivantes :
• Pour personnaliser vos fenêtres, vous pouvez 2. Sélectionnez l’option "Multi-langues". Les marges permettent de définir la taille de
également utiliser un gabarit ou un modèle de • Magenta transparent : Le magenta présent chaque zone.
3. Pour chaque langue définie dans votre fenêtre, dans l’image sera transparent à l’affichage sous
fenêtres. choisissez l’image appropriée. l’éditeur comme en exécution.
4.2 Configuration de l’image de fond 4. Validez. Le libellé "Valeur multilangue" apparaît
dans le champ de définition des images de fond. Transparence : aucune Magenta transparent
La configuration est effectuée dans l’onglet "Image"
de la description de la fenêtre. Mode d’affichage
Vous pouvez sélectionner directement le fichier Une image peut être affichée dans une fenêtre se-
correspondant à l’image de fond ou sélectionner lon plusieurs modes d’affichage. Ces modes d’affi-
une image du catalogue. Les principaux formats chage permettent d’obtenir différents effets :
d’image pouvant être affichés sont les suivants : • 100% : l’image est affichée à 100% à partir du
BMP, JPEG, TIFF ou GIF. coin haut gauche du champ Image.
Point haut gauche : tous les points ayant la même
Il est également possible de réaliser directement • Centré : l’image est affichée à 100% et centrée couleur que celle du point haut gauche de l’image
un Drag and Drop du fichier image présent dans dans le champ Image. seront transparents.
l’explorateur vers la fenêtre WINDEV. • Etiré : l’image est déformée pour occuper tout Ces options seront conservées même si l’image est
l’espace du champ Image.

24 Partie 1 : Notions de base Partie 1 : Notions de base 25


Lors du redimensionnement de la fenêtre, seules 4.3 Fenêtre détourée 6  Grisage automatique des fenêtres
les zones 2, 4, 6, 8 et 5 changent de taille pour
occuper tout l’espace : WINDEV permet de détourer les fenêtres. Les fe-
nêtres auront ainsi des formes originales (fenêtre Votre application ouvre plusieurs fenêtres simul-
en forme de cercle, d’ordinateur, ...). tanément et vous ne savez plus quelle fenêtre est
celle à utiliser ?
La forme de la fenêtre est définie par une image.
Dans cette image, utilisez une couleur spécifique La ou les fenêtres inactives peuvent se griser auto-
pour définir les zones transparentes de l’image (par matiquement. Ainsi, vous devinez instinctivement
exemple, la couleur "Magenta Clair"). Toutes ces la fenêtre à utiliser.
zones seront invisibles lors de l’affichage de la fe- Cette fonctionnalité s’appelle GFI pour Grisage des
nêtre en exécution : la fenêtre sera alors détourée. Fenêtres Inaccessibles.
Par exemple :
Attention : Les bordures de cette image doivent
être les plus nettes possible (pas de dégradé, ...)
afin de ne pas obtenir d’effets d’affichage lors de
l’aperçu ou de l’ouverture de la fenêtre détourée.
La configuration du détourage de la fenêtre est Etape 2 : Une fenêtre vous demande de confirmer
Le mode 9 images permet de gérer le fonctionne- effectuée dans l’onglet "Image" de la fenêtre de ou d’annuler ces modifications. La fenêtre princi-
ment de chaque zone lors du redimensionnement description de la fenêtre. pale (en arrière-plan) est devenue inaccessible. Elle
de la fenêtre. s’est grisée automatiquement. Vous savez immé-
diatement quelle fenêtre doit être utilisée.
Pour chaque zone :
• soit en répétant l’image qui compose la zone. Les fonctionnalités du GFI sont disponibles au ni-
• soit en étirant l’image qui compose la zone. veau du projet ou personnalisables au niveau de
chaque fenêtre.
Il est également possible d’agir sur le GFI par pro-
5  Ouvrir une fenêtre "popup" Etape 1 : Vous modifiez des informations concer- grammation.
nant un client puis vous cliquez sur le bouton "Vali- Pour plus de détails, consultez l’aide en ligne.
der".
5.1 Présentation Par exemple :
WINDEV permet d’ouvrir des fenêtres de type "po-
pup".
7  Fenêtre interne
Une fenêtre "popup" correspond à une fenêtre de
taille réduite s’ouvrant au-dessus de la fenêtre en Les fenêtres internes permettent de partager dyna- Cette interface est utilisée dans les différentes fe-
cours. Généralement, cette fenêtre permet à l’uti- miquement une même partie d’interface au sein nêtres de votre application grâce au champ de type
lisateur de réaliser une sélection. Cette fenêtre d’une ou de plusieurs applications. "Fenêtre interne".
renvoie donc à la fenêtre principale la valeur sélec- Remarque : Les caractéristiques d’une fenêtre po- L’interface à utiliser plusieurs fois est créée dans Remarque : La fenêtre à fusionner peut être issue
tionnée par l’utilisateur. Cette fenêtre se ferme au- pup sont les suivantes : une fenêtre de type "Fenêtre Interne". d’un composant.
tomatiquement dès qu’un clic gauche de souris est • ouverture par défaut sous le champ qui ouvre Pour plus de détails, consultez l’aide en ligne.
effectué (à l’intérieur ou non de la fenêtre popup). la fenêtre (ou au-dessus ou à gauche du champ
si la place disponible sous le champ est insuffi-
sante).
La position d’ouverture peut être modifiée par
programmation.
• fermeture automatique dès que la fenêtre
n’a plus le focus ou dès l’appel de la fonction
Ferme.
• seule l’icône de fermeture apparaît dans la
barre de titre de la fenêtre (si la barre de titre a
été définie dans le style).

26 Partie 1 : Notions de base Partie 1 : Notions de base 27


8  Modèles de fenêtres 10  Les menus contextuels
WINDEV permet de créer des modèles de fenêtres. • simplifier la mise en page des fenêtres de Un menu contextuel peut être ouvert par l’utilisa- Par exemple :
Ces modèles contiennent tous les éléments gra- l’application. teur grâce à un clic droit de la souris. Ce menu
phiques et le code communs à l’ensemble des • simplifier la mise à jour de la charte graphique permet aux utilisateurs d’accéder plus facilement
fenêtres de votre application. de l’application. aux fonctionnalités spécifiques d’un champ d’une
Les modifications effectuées dans un modèle de Un modèle de fenêtres se crée aussi simplement fenêtre ou d’une fenêtre.
fenêtres sont automatiquement reportées sur qu’une fenêtre. Pour créer une fenêtre en utilisant WINDEV permet de gérer deux types de menu
toutes les fenêtres utilisant ce modèle. un modèle, il suffit de choisir l’option "basée sur un contextuel :
Un modèle de fenêtres permet de respecter la modèle". • les menus contextuels système gérés par Win-
charte graphique définie pour une application. Par défaut, toute modification effectuée dans le dows. Ces menus contextuels s’affichent lors
L’utilisation de modèles de fenêtres dans vos appli- modèle est reportée dans les fenêtres l’utilisant. d’un clic droit sur certains types de champs
cations permet de : Il est cependant possible dans une fenêtre spéci- (champ de saisie, table, ...). Pour plus de détails,
• simplifier la création des fenêtres de l’applica- fique de gérer des cas particuliers en surchargeant consultez le paragraphe "Menu contextuel sys-
tion. les éléments du modèle. tème par défaut", page 30.
Pour plus de détails, consultez l’aide en ligne. • les menus contextuels personnalisés gérés par 10.1 Fenêtres d’édition des menus contex-
WINDEV. Ces menus sont créés sous l’éditeur tuels
de fenêtres et peuvent être manipulés par pro-
9  Traitements associés aux fenêtres grammation. WINDEV permet de créer et de modifier des menus
contextuels personnalisés dans une fenêtre d’édi-
WINDEV permet de créer des menus contextuels tion particulière. Pour mieux comprendre la gestion
personnalisés et d’associer ces menus contex-
9.1 Traitements gérés par défaut • Affectation de la propriété ..Valeur (fenêtre des menus contextuels personnalisés, voici le voca-
tuels : bulaire lié à cette fenêtre d’édition :
interne uniquement)
WINDEV gère par défaut les traitements suivants • soit à un ou plusieurs champs d’une fenêtre.
Exécuté lors de l’utilisation de la propriété ..Va-
(ordre d’apparition sous l’éditeur de code) : • soit à une fenêtre.
leur en affectation sur le champ Fenêtre Interne.
• Déclarations globales :
• Récupération de la propriété ..Valeur (fenêtre
Déclaration des variables globales à la fenêtre
interne uniquement)
• Fin d’initialisation : Exécuté lors de l’utilisation de la propriété ..Va-
Exécuté lors de l’ouverture de la fenêtre, avant leur en lecture sur le champ Fenêtre Interne.
le code de prise de focus. Le traitement d’initia-
lisation des champs de la fenêtre est exécuté 9.2 Traitements optionnels
après ce code.
Plusieurs traitements optionnels peuvent être gé-
• Fermeture : rés. Il suffit de :
Exécuté lors de la fermeture de la fenêtre.
Remarque : une reprise de saisie sur un des 1. Cliquer sur les "..." présents dans le traitement
champs de la fenêtre dans ce code empêche la "Autres traitements" de l’éditeur de code.
fenêtre de se fermer. 2. La fenêtre des traitements optionnels s’affiche.
• Demande de mise à jour de l’affichage : 3. Sélectionner le ou les traitements optionnels à
Permet de regrouper le code de mise à jour des ajouter et valider.
champs de la fenêtre : contenu des champs, 4. Les traitements sélectionnés sont automatique-
état (visible, grisé, ...), libellé à mettre à jour, ... ment ajoutés à la suite des traitements proposés
Ce traitement est lancé sur demande grâce aux par défaut.
fonctions : Il est ainsi possible de gérer par exemple :
• DemandeMiseAJourIHM : Exécute le traite- • la prise et la perte de focus,
ment à la fin du traitement en cours (lance- • la modification d’un des champs de la fenêtre,
ment asynchrone).
• la modification de la taille de la fenêtre,
• ExécuteMiseAJourIHM : Exécute immédiate-
ment le traitement. • le survol de la fenêtre par la souris,
• le bouton gauche enfoncé, relâché, avec double-
clic,
• le bouton droit enfoncé, relâché, avec double-
clic,
• la roulette de la souris, ...

28 Partie 1 : Notions de base Partie 1 : Notions de base 29


10.2 Fonctionnalités disponibles • un champ ActiveX : 11  Les menus principaux
WINDEV permet de :
• Créer un menu contextuel personnalisé. 11.1 Présentation
• Associer un menu contextuel personnalisé
existant à un ou plusieurs éléments (fenêtre ou Un menu principal est obligatoirement associé à
champs). une fenêtre. Ce menu est affiché sous la barre de
titre de la fenêtre sous WINDEV. En règle générale,
• Editer un menu contextuel personnalisé.
les applications contiennent une fenêtre menu.
• Afficher la fenêtre de description d’un menu Cette fenêtre contient uniquement un menu prin-
contextuel personnalisé. cipal et permet d’accéder aux autres fenêtres de
• Supprimer un menu contextuel personnalisé. l’application.
Pour plus de détails, consultez l’aide en ligne. Par exemple :
10.3 Menu contextuel système par défaut
Les types de champ suivants ont un menu contex-
tuel système par défaut (affiché si aucun menu
contextuel personnalisé n’est associé au champ) :
• un champ de saisie : Remarque : Le menu contextuel système affiché
dépend de l’ActiveX associé au champ.
• un champ HTML :

11.2 Vocabulaire associé aux menus princi-


paux
Pour manipuler simplement un menu principal, il
Pour plus de détails sur la traduction de ce menu, est nécessaire de connaître le vocabulaire suivant :
consultez l’aide en ligne.
• une colonne de table :

Remarque : Le menu contextuel système affiché


est celui d’Internet Explorer. Il dépend de l’objet
sélectionné dans la page (image, texte, lien, ...).

Ce menu contextuel par défaut peut être désactivé


aussi bien depuis l’éditeur que par programmation.

Pour plus de détails sur la traduction de ce menu,


consultez l’aide en ligne.

30 Partie 1 : Notions de base Partie 1 : Notions de base 31


11.3 Fonctionnalités disponibles Cas particulier : Menu utilitaire 13  La barre de message
WINDEV permet de : WINDEV permet d’insérer automatiquement un
menu "utilitaire" (de type "?") dans votre applica- Il est possible d’afficher dans la barre de message • L’heure du poste en cours.
• Créer un menu principal. tion. Sous le volet "Fenêtre", dans le groupe "Barres
• Editer un menu principal. d’une fenêtre : • La position du curseur dans le champ de saisie
et menus", déroulez "Menu principal" et sélection-
• Supprimer un menu principal. nez l’option "Ajouter le menu ‘?’". • un message d’information lié au champ en en cours (option Colonne et Ligne du Caret).
cours. Ce message est saisi dans l’onglet "Aide" • L’état de la touche Maj, indiquant si la touche
Pour plus de détails, consultez l’aide en ligne. de la fenêtre de description du champ. de verrouillage des majuscules est activée ou
Le message sera affiché dans la barre de non.
message lorsque l’utilisateur sélectionnera le
12  Les options de menus champ.
• L’état de la touche [INSER], indiquant si la
touche [Inser] est activée ou non.
• un message d’information spécifique. Ce mes- • Le nom de l’utilisateur actuel dans une applica-
12.1 Présentation Les options de menu peuvent également être direc- sage est affiché par programmation grâce à la tion utilisant le groupware utilisateur.
tement manipulées sous l’éditeur de fenêtres et fonction Message.
Un menu (contextuel personnalisé ou principal) est Deux options spécifiques sont également dispo-
leurs caractéristiques sont modifiables grâce à une • une jauge de progression. Cette jauge est affi- nibles :
composé d’une ou de plusieurs options et sous-
fenêtre de description. chée par programmation grâce à la fonction
options. Chaque option permet d’exécuter un code • Par programmation : Les informations affichées
La fenêtre de description des options de menu per- Jauge.
WLangage. dans la barre de message sont spécifiées par
met par exemple de : Pour afficher simultanément diverses informations, programmation (fonction Message par exemple).
Les manipulations des options de menu sous l’édi-
teur sont identiques que le menu soit un menu • modifier le libellé de l’option. il est possible de diviser la barre de message en • Traitement de mise à jour : Le traitement "A
principal ou un menu contextuel personnalisé. • cocher ou décocher une option de menu. plusieurs cases (option "Insérer une case" dans le chaque mise à jour" est automatiquement asso-
Pour manipuler les options de menu, il suffit d’édi- • associer une image à une option de menu. menu contextuel de la barre de message). cié à la case de la barre de message. Ce traite-
ter le menu concerné. • associer un raccourci clavier à une option de ment est alors exécuté régulièrement. Ce traite-
13.1 Fenêtre de description d’une barre de ment peut par exemple contenir les éléments à
menu. message
Pour éditer (ou afficher sous l’éditeur) : afficher dans la case.
• le menu principal d’une fenêtre : Il est également possible d’associer du code WLan- La fenêtre de description d’une barre de message
• ouvrez la fenêtre concernée sous WINDEV. gage à une option de menu. Seules les options de permet de : 13.3 Caractéristiques d’une case de la barre
menu ne possédant pas de sous-menu peuvent • ajouter et/ou supprimer des cases.
de message
• sélectionnez une des options de menu. Les
lancer un traitement WLangage. La fenêtre de description de la barre de message
options et les sous-options s’affichent auto- • modifier l’ordre des cases.
matiquement. Pour plus de détails, consultez l’aide en ligne. • spécifier pour chaque case les informations à permet également de définir les différentes carac-
• un menu contextuel personnalisé d’une fenêtre : afficher. téristiques d’affichage des cases de la barre de
sous le volet "Fenêtre", dans le groupe "Barres et 12.3 Manipuler les options de menu par message.
menus", déroulez "Menus contextuels" et sélec- programmation Pour plus de détails, consultez l’aide en ligne. • La position de la case dans la barre de mes-
tionnez l’option "<NomMenuContextuel>". sage.
La manipulation d’une option de menu est iden- 13.2 Type d’une case de la barre de mes-
tique que le menu soit un menu contextuel ou un sage • L’image de fond de la case.
12.2 Manipuler les options de menu sous
l’éditeur menu principal. • La couleur de fond de la case.
Le type de la case permet d’afficher :
Pour manipuler par programmation une option de • La largeur de la case.
L’éditeur de fenêtres permet de réaliser très sim- • La jauge de progression. Cette jauge sera exécu-
menu, utilisez la notation : • Si la case est en saisie.
plement les manipulations suivantes : tée lors de l’utilisation de la fonction Jauge.
• "<NomOption>" si l’option de menu est manipu- • L’ancrage de la case (son fonctionnement lors
• Ajouter une option de menu. • Le message d’aide associé au champ ayant
lée depuis la fenêtre. du redimensionnement de la fenêtre).
• Ajouter un séparateur. le focus. Ce message d’aide est défini dans
• "<NomFenêtre>.<NomMenu>.<NomOption>" si l’onglet "Aide" du champ ou par programmation Toutes ces caractéristiques peuvent être manipu-
• Ajouter un sous-menu. l’option est manipulée depuis une autre fenêtre. lées par programmation grâce aux propriétés dis-
grâce à la propriété ..Message.
• Supprimer une option de menu. ponibles sur les cases des barres de message.
• La date du poste en cours.

32 Partie 1 : Notions de base Partie 1 : Notions de base 33


Les différents types de
Contenu

champs standards
Sélectionner une date

WINDEV met à votre disposition de nombreux champs livrés en standard. Voici comment les utili- Calendrier
ser en fonction de l’opération à réaliser :
Vous voulez… Utilisez un champ…
Afficher du texte, un titre, …
Afficher une image (Photo, …), une animation ou utiliser des
Libellé fonc­tions de dessin

Image
Lire un fichier PDF Lecteur PDF
Afficher et modifier un document Word. Traitement de texte
Sélectionner une valeur parmi une liste (Pays, Ville, …) Afficher le contenu d’un fichier de données en table (liste de
clients, détail d’une commande, ...).
Sélecteur, Combo,
Liste

Sélectionner plusieurs valeurs parmi une liste (les destinataires Table


d’un message, …)

Interrupteur, Liste

Répéter des champs dans une fenêtre (Catalogue produits avec


Sélectionner une ou plusieurs valeurs parmi une liste graphique
la photo, …)
(Trombinoscope, …)

Liste Image

Zone répétée

Sélectionner une valeur dans une plage prédéfinie


Potentiomètre,
Potentiomètre rotatif
Spin,
Range Slider

34 Partie 1 : Notions de base Partie 1 : Notions de base 35


Afficher une vidéo, une animation Regrouper les champs par thème et afficher les thèmes un par
un

Web Caméra Onglet


Multimédia Boîte à outils
Conférence Tiroir

Saisir des informations


Afficher un code-barres
Champ de saisie

Programmer une action dans une fenêtre (afficher une autre fe­
Code-barres
nêtre, lancer une impression, …)
Bouton

Afficher des informations hiérarchisées (répertoire) Afficher des événements sur une période de temps

Arbre
Table hiérarchique
Agenda

Afficher un histogramme, une courbe, un camembert, …

Réaliser des tableaux statistiques


Graphe

Tableau croisé
dynamique
Tableur
Afficher une progression

Jauge

36 Partie 1 : Notions de base Partie 1 : Notions de base 37


Représenter des données de manière pondérée Les champs en pratique
WINDEV propose de nombreux types de champs, "Création" du ruban WINDEV.
facilement intégrables dans vos fenêtres. Ces Tous les champs peuvent bien sûr être manipulés
champs peuvent être créés directement par le volet par programmation.
TreeMap

1  Créer un champ

1.1 Les différents types de champs d’une Pour plus de détails sur chaque type de champ,
Afficher les éléments importants sous forme de tableau de bord fenêtre leurs principales caractéristiques, ainsi que leur
programmation en WLangage, consultez l’aide en
Les champs disponibles sous l’éditeur de fenêtres
ligne.
de WINDEV sont les suivants :
1.2 Créer un nouveau champ
• Champ de saisie, • Traitement de texte,
• Libellé, • Lecteur de PDF, Pour créer un champ :
• Bouton, • Diagramme de Gantt, 1. Sélectionnez le type de champ à créer grâce à
l’icône correspondante dans le volet "Création" du
Tableau de bord • Image, • Table hiérarchique, menu de WINDEV.
• Editeur d’images, • Arbre, 2. La forme du nouveau champ apparaît sous le
• Sélecteur, • Organigramme, curseur de la souris.
• Interrupteur, • Jauge, 3. Cliquez dans la fenêtre à la future position de
• Liste, • Zone répétée, création du champ. Le champ est automatique-
• Combo, • Zone multiligne, ment créé.
• Liste image, • Ascenseur, Remarque : D’autres modes de création sont dis-
• Boîte à outils, • Potentiomètre, ponibles. Pour plus de détails, consultez l’aide en
Saisir ou afficher des données HTML ligne.
• Tiroir, • Spin,
Champ de saisie HTML • Web Caméra, • TimeLine, 1.3 Créer un champ associé à une rubrique
Champ HTML • Champ Confé- • Onglet, Tous les champs d’une fenêtre peuvent être asso-
rence, • Ruban, ciés à une rubrique de fichier de données, SAUF :
• Champ OLE, • Champ fenêtre interne, • Bouton • Timeline
• ActiveX, • Barre d’outils,
Permettre la sélection d’intervalle ou de zoom Range slider • Forme, • Forme • Tableau de bord
• Séparateur,
• Code-barres, • Graphe, • Onglet • Xaml
Afficher une carte, un plan, un itinéraire • Champ HTML, • Barre d’outils • Carrousel
• Carte,
• Superchamp, • Carrousel, • Carte • Cube
• Agenda, • Cube,
• Ruban • Champ HTML
• Planning, • Widget,
Carte
• Notation, • Xaml, • Séparateur • Champ disposition
• Tableau croisé • Calendrier,
dynamique, Pour créer un champ associé à une rubrique (ou
• Fenêtre interne, récupérer une rubrique), plusieurs méthodes sont
• Tableau de bord, • Modèle de champs, disponibles :
• Table, • Champ Disposition. • Drag and Drop depuis le volet "Analyse".
Editer une image Editeur d’images • Tableur, • Utilisation de l’onglet "Fichier" de la fenêtre de
Afficher un contrôle ActiveX ActiveX Tous les champs peuvent bien sûr être manipulés description du champ.
par programmation.

38 Partie 1 : Notions de base Partie 1 : Notions de base 39


2  Caractéristiques d’un champ 2.2 Caractéristiques par onglet Onglet Notes
Ce paragraphe présente rapidement les différentes L’onglet "Notes" permet de décrire le fonctionne-
catégories de caractéristiques affichées par onglet. ment détaillé du champ. Ces informations seront
Pour tous les champs d’une fenêtre, il est possible imprimées dans les dossiers de programmation
d’afficher la fenêtre de description. Cette fenêtre Pour plus de détails sur chacune des caracté- (dossier du projet, dossier de la fenêtre, ...).
est une fenêtre à onglets, regroupant toutes les ca- ristiques présentes dans les différents onglets,
ractéristiques paramétrables d’un ou de plusieurs consultez l’aide en ligne.
champs. Onglet Aide
Onglet Général L’onglet "Aide" permet de saisir et de configurer
tous les types d’aides associées au champ. Un
L’onglet "Général" permet de spécifier le nom du champ peut avoir :
champ et toutes les caractéristiques d’affichage du
champ (libellé, masque de saisie, ...). • Une bulle d’aide, affichée lors du survol du
champ.
• Un message d’aide, affiché dans la barre de
Onglet IHM message lors de l’entrée dans le champ.
L’onglet "IHM" permet de définir les différents para- • Une fenêtre d’aide avec un titre spécifique, affi-
mètres de l’interface du champ : ché lors de l’utilisation de la touche F1.
• Etat initial du champ à l’ouverture de la fenêtre
• Visibilité du champ Un champ peut être également associé à une page
• Taille du champ d’aide spécifique, présente dans un fichier d’aide
• Cadrage, ... au format CHM. Cette page d’aide sera affichée :
• soit sous forme d’aide contextuelle (bulle d’aide
affichée sur demande), si un fichier d’aide a été
Onglet Détail
défini pour la fenêtre.
L’onglet "Détail" permet de définir les différents
• soit sous forme de page d’aide. La fonction
paramètres du champ :
WHelp devra être utilisée pour afficher la page
• paramètres de saisie d’aide.
• Drag and Drop, ...
Le contenu de cet onglet varie beaucoup en fonc-
Onglet Style
tion du type de champ en cours.
L’onglet "Style" permet de définir le style des diffé-
Remarque : Il est également possible de visualiser rents éléments du champ. Cet écran permet de :
et/ou de modifier les caractéristiques d’un ou de Remarques : Onglet Liaison • Modifier l’aspect d’un champ : il suffit alors de
plusieurs champs dans le modifieur. Pour plus de • Il est possible d’afficher la fenêtre de description Cet onglet permet de sélectionner la rubrique (d’un sélectionner l’élément du champ à modifier, puis
détails, consultez l’aide en ligne. pour un ensemble de champs sélectionnés. fichier de données ou d’une rubrique) à laquelle le ses caractéristiques de style. Seul l’aspect du
Seules les caractéristiques communes aux diffé- champ est relié. Selon l’enregistrement en cours, champ en cours est modifié.
2.1 Affichage des caractéristiques rents champs sélectionnés seront affichées. le contenu de la rubrique reliée sera affiché dans • Appliquer un style existant au champ : il suffit de
Pour afficher la fenêtre de description d’un champ : • Plusieurs fenêtres de description peuvent être le champ. sélectionner le style à appliquer.
affichées simultanément. Chaque fenêtre de La liaison peut être mono-fichier ou multi-fichier. • Créer ou modifier un style : le style créé ou modi-
• soit double-cliquez sur le champ.
description affiche alors les caractéristiques fié est mis à jour pour tous les champs du projet
• soit sélectionnez l’option "Description" du menu d’un ou de plusieurs champs.
contextuel du champ (clic droit de la souris). Onglet Contenu utilisant ce style.
• soit sélectionnez le champ et utilisez le raccour- Cet onglet est disponible uniquement pour les
ci clavier Alt +Entrée. champs des fenêtres.
L’onglet "Contenu" permet de définir :
• soit le contenu initial du champ (pour les
champs de saisie uniquement).
• soit la source de données utilisée pour remplir le
champ (pour les listes, les combos et les tables
uniquement).

40 Partie 1 : Notions de base Partie 1 : Notions de base 41


3  Manipuler les champs sous l’éditeur Afficher les règles Manipuler les repères
Pour afficher les règles, sous le volet "Affichage", Les repères sont facilement manipulables à l’aide
dans le groupe "Aide à l’édition", cochez l’option de la souris dans l’éditeur. Lorsque la souris sur-
3.1 Les poignées des champs • Regrouper des champs sélectionnés "Règles". Deux types de guides peuvent alors être vole un repère, le curseur se transforme en une
• Déplacer un champ utilisés : double flèche.
Lorsqu’un champ vient d’être créé ou lorsqu’il est
• Modifier le libellé d’un champ • les guides, permettant d’aligner et de disposer
sélectionné, il s’affiche avec des poignées. Les poi-
les champs à l’intérieur des fenêtres. 4.2 Grille magnétique
gnées permettent de : • Afficher une bulle d’aide avancée lors du survol
• les guides de bordure, permettant de déterminer La grille magnétique permet de placer des repères
• visualiser la taille d’un champ, d’un champ, contenant : le nom du champ, sa
une bordure de taille identique de chaque côté (verticaux et horizontaux) dans la fenêtre. Les
• modifier la taille d’un champ. position, sa taille, son ancrage, son état initial.
de la fenêtre. champs créés viennent se placer contre ces re-
Les couleurs des poignées permettent de connaître • Utiliser un champ hors fenêtre. Ce champ sera pères, comme si les champs et les repères étaient
visible uniquement en édition et ne sera pas Remarque : L’option "Guide visible" du menu
les actions réalisables : contextuel des règles permet de visualiser la fe- magnétisés. La grille magnétique permet ainsi
visible en exécution. d’aligner les champs selon les repères.
• Les poignées noires permettent de visualiser et nêtre avec ou sans ses guides. Visibles ou non, les
de redimensionner un champ. guides sont toujours actifs : un champ déplacé vers
• Les poignées blanches permettent uniquement un repère est automatiquement accolé à celui-ci.
de visualiser un champ. Par exemple, lors de
la sélection de plusieurs champs, les poignées Par exemple, dans le cas d’une fenêtre :
blanches indiquent qu’il est impossible de modi-
fier la taille des champs sélectionnés.
Ce type de poignées est aussi affiché lorsqu’une
fenêtre est en lecture seulement pour le déve-
loppeur : les champs ne peuvent pas être modi-
fiés.
• Les poignées grises indiquent le premier champ Remarque : Un champ "hors fenêtre" permet par
sélectionné lors d’une sélection multiple. Ce exemple de :
champ sera le champ de référence.
• conserver un champ d’une fenêtre sans le visua-
3.2 Manipulations disponibles liser lors de l’exécution. Il est ainsi possible d’uti-
liser le contenu du champ en programmation
L’éditeur de fenêtres permet de : (comme une variable).
• Sélectionner un ou plusieurs champs (par • afficher de nouveaux champs dans une fenêtre
exemple à l’aide du lasso) lors de la modification de la taille de cette
fenêtre.

4  Alignement des champs


L’alignement des champs permet d’obtenir des in- 4.1 Les règles
terfaces "professionnelles" et harmonieuses. Pour
Sous l’éditeur de fenêtres, il est possible de faire
vous aider à concevoir des interfaces standards,
apparaître des règles d’alignement.
WINDEV vous propose les outils suivants :
Dans ces règles, des guides magnétiques sont affi-
• les règles.
chés : tout champ approché d’un guide est automa-
• la grille. tiquement "attiré" par celui-ci.
• le correcteur d’interface en temps réel (proposé Ce magnétisme permet d’utiliser les guides pour
automatiquement lors d’un positionnement d’un faciliter le positionnement, l’alignement ou le redi-
champ). mensionnement des champs de la fenêtre.
• le correcteur d’interface avancé.
• les options d’alignement.

42 Partie 1 : Notions de base Partie 1 : Notions de base 43


4.3 Correcteur d’interface en temps réel L’alignement personnalisé permet d’utiliser des 5.2 Verrouiller / Déverrouiller un champ Toutes les autres manipulations sont possibles sur
propriétés spécifiques d’alignement. Lors de l’ali- un champ verrouillé.
Lors du déplacement d’un champ dans une gnement personnalisé, il est possible de définir : Pour verrouiller / déverrouiller un champ sous l’édi-
fenêtre, le correcteur d’interface en temps réel teur de fenêtres : 5.3 Encadrer ou non un champ
affiche automatiquement des guides. Ces guides • l’alignement horizontal ou vertical : les champs
peuvent être alignés à gauche en fonction du 1. Sélectionnez le champ sous l’éditeur.
sont magnétisés et permettent d’aligner le champ Pour encadrer ou non un champ sous l’éditeur de
début du champ ou du début de la zone de 2. Sous le volet "Modification", cochez/décochez fenêtres :
déplacé avec les champs présents dans la fenêtre. l’option "Verrouillé".
saisie. Ils peuvent aussi être alignés à droite en 1. Sélectionnez le champ sous l’éditeur.
4.4 Correcteur d’interface avancé fonction de la fin du champ ou de la fin de la Un champ verrouillé est un champ qui ne peut pas
2. Sous le volet "Modification", cochez/décochez
zone de saisie. être sélectionné au lasso. Il est intéressant par
Le correcteur d’interface avancé est un outil per- l’option "Encadré".
• l’espacement uniforme : l’espacement entre exemple de verrouiller un onglet. Lorsque plusieurs
mettant d’harmoniser la disposition des champs sélections au lasso des champs affichés dans l’on- L’encadrement d’un champ permet de visualiser
les champs est adapté pour être le même entre
dans les différentes fenêtres d’une application. glet sont effectuées, l’onglet n’est pas sélectionné plus facilement l’ensemble des champs présents
chaque champ (horizontalement ou verticale-
Le correcteur d’interface avancé propose pour la automatiquement. dans une fenêtre (notamment pour les champs
ment).
fenêtre en cours ou uniquement pour les champs image).
• la taille : la taille des champs sélectionnés est
sélectionnés, d’appliquer des règles de présen-
automatiquement adaptée pour obtenir des
tation d’interface issues du standard Windows :
alignement des champs, normalisation de la taille
champs de même hauteur et/ou de même lar- 6  Ancrage des champs
geur.
des boutons, ...
• le champ de référence : pour l’alignement et la Les fenêtres d’une application WINDEV peuvent
4.5 Les options d’alignement taille des champs, le champ de référence est au être redimensionnables à l’exécution. Grâce au
choix : mécanisme d’ancrage, la taille et la position des
Pour aligner plusieurs champs, WINDEV met à
votre disposition : • le premier champ sélectionné (celui qui a les champs s’adaptent automatiquement lors d’un
poignées blanches). redimensionnement de la fenêtre.
• soit un alignement prédéfini (disponible sous
le volet "Alignement" ou sous le volet "Modifica- • le dernier champ sélectionné.
La gestion de l’ancrage d’un champ est constituée
tion", dans le groupe "Alignement"). • le plus grand champ sélectionné. de deux paramètres :
• soit un alignement personnalisé (disponible • le champ situé le plus en haut à gauche des • l’ancrage du champ : permet de définir la modi-
sous le volet "Alignement", dans le groupe champs sélectionnés. fication à appliquer au champ en fonction du
"Autres alignements"). changement de la taille de la fenêtre. Le champ
peut se déplacer vers la gauche et ou vers le
bas, s’agrandir en largeur et/ou en hauteur, ...
5  Options d’édition des champs dans une fenêtre • le taux d’ancrage : permet de gérer le pour-
centage de déplacement ou d’étirement du
Les options d’édition permettent de paramétrer : 5.1 Rendre visible / invisible un champ champ. Grâce à ce paramètre, il est possible par
• les options d’affichage. exemple de :
Pour rendre visible / invisible un champ sous l’édi- • laisser un champ centré en largeur dans la
• le magnétisme des champs.
teur de fenêtres : fenêtre quelle que soit sa taille.
• les opérations de clic et de double-clic sur les
1. Sélectionnez le champ sous l’éditeur. • agrandir proportionnellement certains
champs.
2. Sous le volet "Modification", dans le groupe champs de la fenêtre.
• les options de sélection des champs.
"Aide à l’édition", cochez/décochez l’option Ces paramètres peuvent être configurés :
• la position de la fenêtre à son ouverture. "Visible (éditeur)".
Ces options d’affichage permettent de personnali- • sous l’éditeur de fenêtres.
ser la manipulation des champs sous l’éditeur de • par programmation grâce aux propriétés WLan-
fenêtres. gage.
Pour afficher ces options, sous le volet "Affichage",
cliquez sur l’icône de regroupement du groupe
"Options".

44 Partie 1 : Notions de base Partie 1 : Notions de base 45


6.1 Ancrer un champ sous l’éditeur Hauteur et Droite : Le champ s’étire Répartition Horizontale : Cette option
Pour ancrer un champ : vers le bas et se déplace vers la droite n’est disponible que lorsque plusieurs
lorsque la fenêtre s’agrandit. champs sont sélectionnés. Les options
1. Sélectionnez un ou plusieurs champs à ancrer. Pour que le champ se déplace plus ou d’ancrage permettent alors de conser-
2. Définissez l’ancrage du / des champs : moins vite, utilisez le taux d’ancrage à ver une répartition horizontale des
• soit dans l’onglet "IHM" de la fenêtre de des- droite. champs sélectionnés lorsque la fenêtre
cription du champ (option "Description" du Pour faire varier la vitesse d’étirement s’élargit.
menu contextuel du champ). du champ par rapport à la fenêtre, utili-
sez le taux d’ancrage en hauteur. Centré vertical à droite : Le champ
• soit grâce à l’option "Ancrage" du menu
reste centré en hauteur dans la fenêtre
contextuel (clic droit) du champ. Répartition Verticale  : Cette option quelle que soit la hauteur de la fenêtre.
3. Dans cette fenêtre, choisissez le type d’ancrage n’est disponible que lorsque plusieurs
à utiliser. Les options les plus courantes sont pré- champs sont sélectionnés. Les op- Cependant, le champ est ancré à
sentées sous forme d’icônes : tions d’ancrage permettent alors de droite et se déplace vers la droite
conserver une répartition verticale des lorsque la fenêtre est élargie. Fenêtre agrandie :
Aucun ancrage : Le champ n’est pas
champs sélectionnés lorsque la fenêtre Pour que le champ se déplace plus ou
modifié lorsque la taille de la fenêtre
s’agrandit en hauteur. moins vite, utilisez le taux d’ancrage à
est modifiée. Aucune option d’ancrage
droite.
n’est sélectionnée. Bas : Le champ se déplace vers le bas
lorsque la fenêtre est agrandie vers le Centré : Le champ reste centré en hau-
Largeur : Le champ s’étire vers la droite bas. Pour que le champ se déplace plus teur et en largeur dans la fenêtre quelle
lorsque la fenêtre s’agrandit. Pour faire ou moins vite, utilisez le taux d’ancrage que soit la taille de la fenêtre.
varier la vitesse d’étirement du champ en bas.
par rapport à la fenêtre, utilisez le taux 4. Définissez si nécessaire les différents taux
d’ancrage en largeur. Largeur et Bas : Le champ s’étire vers d’ancrage.
la droite et se déplace vers le bas 5. Validez. Si l’option "Ancrage" est activée (sous
Droite : Le champ se déplace vers la lorsque la fenêtre s’agrandit. le volet "Affichage", dans le groupe "Voir (tous les
droite lorsque la fenêtre s’agrandit. Pour que le champ se déplace plus ou champs)"), les signes d’ancrage apparaissent
Pour que le champ se déplace plus ou moins vite, utilisez le taux d’ancrage automatiquement dans le champ (flèches rouges).
moins vite, utilisez le taux d’ancrage à en bas.
droite. Pour faire varier la vitesse d’étirement 6.2 Exemple de paramétrage de l’ancrage
Centré en largeur : Le champ reste cen- du champ par rapport à la fenêtre, utili- des champs
tré en largeur dans la fenêtre quelle sez le taux d’ancrage en largeur. Pour obtenir ce résultat :
Pour illustrer les possibilités d’ancrage des champs
que soit la largeur de la fenêtre. Droite et Bas : Le champ se déplace dans les fenêtres, voici un exemple détaillé. 1. Sélectionnez les boutons [<-] et [->] : ces
vers la droite et vers le bas lorsque la champs doivent être centrés en hauteur et en lar-
Hauteur : Le champ s’étire vers le Fenêtre originale : geur (option ).
bas lorsque la hauteur de la fenêtre fenêtre s’agrandit. Pour que le champ
se déplace plus ou moins vite, utilisez 2. Sélectionnez les deux listes : ces champs
s’agrandit. Pour faire varier la vitesse
le taux d’ancrage en bas et le taux d’an- doivent être ancrés à droite, en largeur et en
d’étirement du champ par rapport à la
crage à droite. hauteur (options "à droite", "en largeur" et "en hau-
fenêtre, utilisez le taux d’ancrage en
teur" cochées).
hauteur. Centré horizontal en bas : Le champ
reste centré en largeur dans la fenêtre 3. Sélectionnez les 3 boutons : ces champs
Largeur et Hauteur : Le champ s’étire doivent s’étirer à droite proportionnellement
vers la droite et vers le bas lorsque la quelle que soit la largeur de la fenêtre.
Cependant, le champ est ancré en bas (option ).
fenêtre s’agrandit. Pour faire varier la
et se déplace vers le bas lorsque la fe- Remarque : Par programmation, il est possible de
vitesse d’étirement du champ par rap-
nêtre s’agrandit. configurer l’ancrage des champs grâce à diverses
port à la fenêtre, utilisez le taux d’an-
propriétés WLangage.
crage en hauteur et le taux d’ancrage Pour que le champ se déplace plus ou
en largeur. moins vite, utilisez le taux d’ancrage en
bas.
Centré en hauteur : Le champ reste
centré en hauteur dans la fenêtre
quelle que soit la hauteur de la fenêtre.

46 Partie 1 : Notions de base Partie 1 : Notions de base 47


7  Exécution automatique d’un bouton
Modèles de
Contenu

Pour forcer une action sur une fenêtre, il suffit de


définir un bouton de cette fenêtre en mode "Exé-
champs
cution automatique". Le principe est très simple, WINDEV permet de créer des modèles de champs. Un modèle de champs est un ensemble de
si au bout d’une certaine durée, aucun bouton de champs, réutilisable dans plusieurs fenêtres.
la fenêtre n’a été utilisé, le traitement du bouton
Les modifications effectuées dans un modèle de champs sont automatiquement reportées sur
"Exécution automatique" sera automatiquement
exécuté. En exécution, la durée est automatique- toutes les fenêtres utilisant ce modèle.
ment décrémentée. A zéro, le code du bouton est Un modèle de champs permet de :
automatiquement exécuté.
• regrouper un ensemble de champs dans un but précis.
7.1 Mise en place • rendre les champs indépendants de la fenêtre les accueillant.
Pour exécuter automatiquement un bouton d’une
fenêtre :
1. Déterminez quel bouton de votre fenêtre doit
être exécuté automatiquement. 7.2 Programmation
2. Dans la description de la fenêtre (onglet "Dé- Définition d’un modèle de champs.
Il est possible également de définir un bouton de
tail" de la fenêtre de description), indiquez :
validation automatique grâce à la fonction DélaiA- Le modèle est encadré d’un trait vert sous l’éditeur.
• le temps avant l’exécution automatique du vantFermeture.
bouton.
• le bouton à exécuter. 7.3 FAA : Fonctionnalité Automatique de
3. En exécution, le temps restant est automatique- l’Application
ment affiché. Cette fonctionnalité est également directement ac-
cessible à l’utilisateur. Il peut demander à ce qu’un
bouton de l’application s’exécute automatiquement
au bout d’une durée spécifique.

Utilisation du modèle dans une fenêtre.


Les éléments appartenant au modèle sont entourés
en bleu et identifiés par un carré jaune.

Pour créer une fenêtre utilisant un modèle de champs, créez un champ de type "Modèle de
champs".
Remarque : La programmation associée aux éléments du modèle peut être directement réalisée
dans le modèle.
Les caractéristiques des éléments peuvent être désolidarisées du modèle. Par exemple, désolida-
riser la position d’un champ du modèle pour positionner le champ ailleurs tout en conservant les
autres évolutions sur le champ (code, style, ...). On parle alors d’héritage de champ. Dans ce cas,
les éléments sont identifiés par un carré bleu.

48 Partie 1 : Notions de base Partie 1 : Notions de base 49


Edition :
Contenu
Modèles
Contenu

Les états d’états


Un état permet d’obtenir une vue personnalisée d’informations : données saisies dans la base de Dans une société, bien souvent, les impressions utilisent un look et une mise en page unifiés :
données, données présentes dans un fichier texte, données provenant d’un champ Table, ... date en haut à droite dans un format spécifique, bas de page avec heure d’impression et nom du
Un état peut être affiché à l’écran, enregistré dans un fichier HTML, directement édité sur une fichier, logo en haut à gauche, ...
imprimante, ... Les modèles d’états permettent d’uniformiser simplement la mise en page de vos états.
Un état offre la possibilité de résumer et de synthétiser les données.
Il est possible de :
• regrouper des données.
• trier des données selon n’importe quel critère.
• réaliser des calculs, des moyennes ou des statistiques ou même réaliser des graphes.
Le schéma ci-dessous présente une définition simplifiée d’un état :
• les données à imprimer sont issues d’une source de données (fichier décrit dans une analyse,
vue HFSQL, requête, zone mémoire ou un fichier texte).
• l’état regroupe, trie et met en forme les données. Définition d’un modèle d’états sous l’éditeur d’états.
• l’exécution de l’état peut être dirigée vers l’écran, un fichier HTML, RTF, ... ou vers une impri-
mante.

Source de Mode
l’état d’impression

Champ Table Fichier PCL


(Windows Mobile)

Imprimante
Utilisation du modèle dans différents états.
Requête Etat (format PCL, Les éléments appartenant au modèle sont identifiés par un carré jaune.
(Editeur d’états) Windows Mobile) Les éléments du modèle surchargés sont identifiés par un carré bleu.

Fichier Texte Fichier PDF


(iPhone, iPad, ...) Un modèle d’états peut être créé :
• directement grâce à l’icône disponible dans les boutons d’accès rapide. Dans la fenêtre de
Données création d’un nouvel élément, cliquez sur "Etat" puis cliquez sur "Modèle d’états".
• à partir de l’état en cours (sous le volet "Accueil", dans le groupe "Général", déroulez "Enregis-
trer" et sélectionnez "Enregistrer comme un modèle").
Variable WLangage
Pour créer un état utilisant un modèle, sélectionnez le modèle à utiliser lors de la création de
l’état. Les caractéristiques des éléments peuvent être désolidarisées du modèle. Par exemple,
désolidariser la position d’un champ du modèle pour positionner le champ ailleurs tout en conser-
vant les autres évolutions sur le champ (code, style, ...). On parle alors d’héritage. Dans ce cas, les
éléments sont identifiés par un carré bleu.

50 Partie 1 : Notions de base Partie 1 : Notions de base 51


PARTIE 2

Environnement
de
développement
Les éditeurs
Contenu

de WINDEV
Pour manipuler un projet, WINDEV propose de nombreux éditeurs intégrés :
• éditeur de projet.
• éditeur d’analyses.
• éditeur de modèles UML
• éditeur de requêtes.
• éditeur de fenêtres.
• éditeur d’états.
• ...
Ces éditeurs permettent de manipuler facilement les différents éléments du projet.

Editeur d’états

Editeur d’analyses Editeur de fenêtres

Editeur de projet Editeur de requêtes

54 Partie 2 : Environnement de développement Partie 2 : Environnement de développement 55


Des éditeurs conviviaux en pratique objet) correspondant au système d’information
étudié.
2.5 Editeur de fenêtres
L’éditeur de fenêtres permet de décrire les carac-
L’éditeur d’UML permet principalement : téristiques de l’interface utilisateur de votre projet.
• de décrire directement un ou plusieurs dia- De nombreux gabarits (feuilles de styles associées
1  Introduction grammes UML. à la fenêtre) et types de fenêtres sont proposés. Ils
• de construire un modèle UML par rétro-analyse permettent d’améliorer l’ergonomie de vos fenêtres
WINDEV est architecturé autour d’éditeurs, adapté • éditeur de code source, débogueur et compila- de votre projet. et de rendre vos applications conviviales.
à chacun des besoins du développeur, unifié dans teur. Pour plus de détails sur la création d’un modèle Pour plus de détails sur la création d’une fenêtre,
un environnement unique : • éditeur d’aide. UML, consultez le chapitre Le modèle UML. consultez le chapitre "Les fenêtres en pratique",
• éditeur de projet. • éditeur de modélisation. page 21.
Voici quelques caractéristiques de l’éditeur d’UML :
• éditeur d’analyses. • éditeur de documents. Voici quelques caractéristiques de l’éditeur de fe-
• Création et description de diagrammes UML.
• éditeur de modèles UML. • éditeur d’images. nêtres :
• Mise en forme automatique des liaisons.
• éditeur de requêtes. • Editeur WYSIWYG ("What You See Is What You
Ces différents éditeurs vont permettre de créer les • Génération automatique d’une classe ou d’un
• éditeur de fenêtres. Get"). Vous visualisez directement votre fenêtre
différents éléments (fenêtres, états, base de don- ensemble de classes à partir d’un diagramme
• éditeur d’états. telle qu’elle apparaîtra à l’utilisateur.
nées, programmes, ...) manipulés par l’application. de classes.
• Création et description des fenêtres et de leurs
• Zoom sur l’éditeur d’UML. champs.
2  Les différents éditeurs • Insertion de commentaires dans un modèle • "Drag and Drop" permettant de copier, de coller
UML. ou de déplacer des champs d’une fenêtre à une
• Interaction des différents volets avec les diffé- autre.
2.1 Editeur de projet • Création et description des fichiers de données rents éléments du modèle UML. • Gabarits de fenêtres et styles de champs pré-
et de leurs rubriques. définis.
L’éditeur de projet permet de gérer le projet à l’aide 2.4 Editeur de requêtes
d’un tableau de bord complet. • Mise en forme automatique des liaisons de • Présence de catalogues d’icônes permettant
l’analyse. L’éditeur de requêtes permet de créer automati- d’associer des images aux champs.
Différents "Widgets" permettent de connaître : quement des requêtes sur les fichiers de données.
• Informations sur les liaisons par des bulles • Correcteur d’interface en temps réel permettant
• le nombre d’éléments du projet, La programmation est ainsi simplifiée : fenêtres,
d’aide. de simplifier le positionnement des champs.
• les incidents enregistrés, tables, combos, états, ... pourront s’appuyer sur les
• Récupération simplifiée de la description • Ancrage des champs dans la fenêtre.
• les tâches à réaliser, requêtes.
d’une base de données externe (SQL Server, • Saisie des libellés des champs directement
• les éléments extraits, Oracle, ...). Un assistant permet de créer une requête : il suffit
de choisir les rubriques à intégrer et de saisir les dans la zone de travail de l’éditeur.
• ... • Description indépendante des fichiers de don-
conditions de sélection à l’aide de l’assistant. La • Gestion de l’aide contextuelle dans les fenêtres.
nées.
2.2 Editeur d’analyses requête est automatiquement générée (en code • Zoom sur l’éditeur de fenêtres.
• Cryptage des fichiers de données. SQL optimisé) et peut être testée immédiatement.
L’éditeur d’analyses permet de décrire les caracté- • Interaction des différents volets avec les diffé-
• Modification automatique des fichiers de don- Vous trouverez toutes les informations concernant rents éléments de l’éditeur.
ristiques et la structure des fichiers de données. nées en cas de modification de la structure des les requêtes dans le "Guide de l’éditeur d’états et
L’éditeur d’analyses supporte la méthode Merise fichiers. de requêtes". 2.6 Editeur d’états
(MCD et MLD). • Vérification de l’intégrité référentielle.
Voici quelques caractéristiques de l’éditeur de re- L’éditeur d’états permet de créer très simplement
L’éditeur d’analyses permet principalement deux • Génération automatique de l’analyse.
quêtes : des états à imprimer.
types de descriptions d’une base de données : • Zoom sur l’éditeur d’analyses.
• Editeur WYSIWYG ("What You See Is What You Vous trouverez toutes les informations concernant
• description directe de l’analyse liée au projet • Insertion de commentaires dans le graphe de Get"). Vous visualisez directement la requête et la création d’états imprimés dans le "Guide de l’édi-
(appelée aussi Modèle Logique des Données l’analyse. son résultat. teur d’états et de requêtes".
(MLD))
• Interaction des différents volets avec les diffé- • Création simplifiée d’une requête à l’aide d’un
• description du Modèle Conceptuel des Données Voici quelques caractéristiques de l’éditeur d’états :
rents éléments de l’analyse. assistant.
(MCD) puis génération automatiquement de • Editeur WYSIWYG ("What You See Is What You
l’analyse. 2.3 Editeur UML • Génération automatique du code SQL de Get"). Vous visualisez directement les états tels
Voici quelques caractéristiques de l’éditeur d’ana- chaque requête. qu’ils seront à l’impression.
Le langage UML est un langage graphique permet- • Possibilité de tester immédiatement les
lyses : • Création simplifiée d’un état sans une seule
tant de : requêtes.
• Editeur WYSIWYG ("What You See Is What You ligne de code.
• représenter le système d’information étudié • Zoom sur l’éditeur de requêtes.
Get"). Vous visualisez directement tous les fi- • "Drag and Drop" permettant de copier, de coller
sous forme d’objets.
chiers de données et les liaisons de votre projet. ou de déplacer des champs d’un état à un autre.
• générer la structure objet de l’application (sque-
lette de l’application sous forme de classes

56 Partie 2 : Environnement de développement Partie 2 : Environnement de développement 57


• Gabarits d’états et styles de champs prédéfinis. • Interaction des différents volets avec les diffé-
Tableau de bord
Contenu

• Correcteur d’interface en temps réel permettant


de simplifier le positionnement des champs.
• Utilisation d’un formulaire en fond d’un état.
rents éléments de l’éditeur.
Pour plus de détails sur l’éditeur de code, nous
vous recommandons de lire l’aide en ligne.
du projet
• Création d’étiquettes multi-colonnes. 2.8 Editeur d’aide
• Edition d’un état au format HTML (pour le Le tableau de bord du projet est un élément indispensable à la gestion de projets WINDEV Mobile.
publier sur Internet par exemple), ou au format L’éditeur d’aide permet de créer un ensemble de Le tableau de bord permet d’avoir une vision globale et synthétique de l’état d’avancement d’un
RTF (pour l’éditer avec un traitement de texte pages d’aide (fichier "CHM") documentant tout ou
partie de votre projet.
projet.
par exemple).
• Zoom sur l’éditeur d’états. Pour chaque fenêtre de votre projet, une page
d’aide est créée. Ces pages permettent de décrire Le tableau de bord du projet est composé de différents indicateurs sur le contenu du projet :
2.7 Editeur de code les différentes manipulations pouvant être réali-
• statistiques sur le projet,
sées par les utilisateurs.
L’éditeur de code permet de saisir tous les traite- • incidents,
ments en WLangage (le langage de programmation Voici quelques caractéristiques de l’éditeur d’aide :
intégré à WINDEV). Il permet par exemple de saisir • Editeur WYSIWYG ("What You See Is What You
• tâches,
le code source : Get"). Vous visualisez directement les pages • état des tests automatiques,
• des champs, d’aide de votre projet. • résultat des différents audits,
• des fenêtres, • Compilation des pages d’aide et création d’un
CHM.
• liste des éléments extraits du GDS (Gestionnaire de Sources),
• des états,
• des procédures locales et globales, • Création d’un index et d’un sommaire. • résultat des plans d’action (intégration continue), ...
• des classes et des méthodes, ... • Insertion d’images.
• Insertion de liens entre les pages d’aide.
Voici quelques caractéristiques de l’éditeur de
code : • Possibilité d’affichage des titres de pages dans
un bandeau.
• Mise en forme automatique des informations
saisies. • Zoom sur l’éditeur d’aide.
• Complétion automatique. 2.9 Editeur d’images
• Glossaire sur les fonctions.
• Détection immédiate des erreurs de frappe et L’éditeur d’images permet d’éditer les images et
aide à la correction. icônes du projet et de ses éléments.
• Compilation incrémentale. Voici quelques caractéristiques de l’éditeur
• Visualisation des différents traitements d’une d’images :
fenêtre, d’un champ ou d’un état du projet. • Recadrage.
• Insertion de traitements spécifiques à l’utilisa- • Redimensionnement.
tion de la souris ou du clavier. • Symétrie, rotation.
• Gestion de l’historique des modifications du • Gestion des textes.
code avec possibilité de revenir en arrière. • Gestion des calques.
• Ouverture de plusieurs fenêtres de code (pour • Accès aux images du catalogue d’images. Les différents éléments de ce tableau de bord sont présentés sous forme de Widgets. Ces Wid-
effectuer des comparaisons de code par gets peuvent être paramétrés, déplacés, activés, désactivés, ... Il est possible d’ajouter de nou-
exemple). • Conservation de la transparence.
veaux indicateurs.
• Zoom sur l’éditeur de code.

La configuration du tableau de bord est sauvegardée par utilisateur. La configuration du tableau


de bord est la même pour tous les projets d’un même utilisateur.

58 Partie 2 : Environnement de développement Partie 2 : Environnement de développement 59


WINDEV/WEBDEV/WINDEV
Contenu
Configuration de
Contenu

Mobile : 100% compatibles projet


Les projets créés actuellement sont souvent multi-cibles. Les configurations de projet permettent de créer à partir d’un même projet plusieurs "cibles" dif-
Par exemple, pour un ERP destiné à fonctionner sous Windows, il est fort probable qu’en plus de férentes.
l’application qui sera le socle de la solution applicative, des commerciaux seront équipés de PDA Vous pouvez ainsi créer à partir d’un même projet par exemple :
ou de Smartphones, les magasiniers utiliseront des terminaux mobiles pour la gestion des stocks • des exécutables qui ne contiennent pas les mêmes éléments, qui ont des noms différents, ...
et qu’un site Intranet et un site Internet seront mis en place. • différents composants,
Tous les éléments, hormis l’IHM (pages et fenêtres) sont 100% compatibles et partageables • des Webservices,
entre des projets WINDEV, WEBDEV et WINDEV Mobile. • des assemblages DotNet, ...

Il est ainsi possible de partager des collections de procédures ou des classes par exemple entre
plusieurs projets. A tout moment, vous pouvez travailler sur une configuration spécifique : les éléments n’apparte-
nant pas à cette configuration apparaissent grisés dans l’explorateur de projet.
Quel que soit le produit avec lequel un projet a été créé, il est possible de l’ouvrir avec les autres
produits.
Lorsque vous ouvrez un projet dans un produit différent de Projet WINDEV
celui qui a permis de le créer, un assistant s’affiche, permet-
tant de créer une configuration de projet spécifique au pro-
duit utilisé.
Par exemple, si un projet WINDEV est ouvert avec WEBDEV,
vous pouvez créer une configuration de projet nommée "Site",
permettant de regrouper tous les éléments nécessaires au
site WEBDEV. Configurations du Projet
Dans les phases d’utilisation de l’environnement, il est pos-
sible de visualiser depuis chaque environnement les élé-
ments de chaque cible. Un projet sous WINDEV affiche les
vignettes des pages WEBDEV et les fenêtres WINDEV Mobile Config 1. Config 2. Config 3. Config 4. Config 5.
Exécutable Assemblage Composant Archive Webservice
par exemple. Cliquer sur une page WEBDEV depuis l’éditeur WINDEV DotNet Java
de projet WINDEV ouvre la page WEBDEV (WEBDEV doit être
installé sur le poste).

Remarque : Si vous possédez WINDEV et WINDEV Mobile, il est possible de manipuler les confi-
gurations WINDEV Mobile directement sous WINDEV. Vous pouvez ouvrir les fenêtres mobiles, les Il est possible de générer en une seule opération toutes les configurations d’un projet (ou unique-
modifier, les tester, ... ment certaines) grâce à la génération multiple.

60 Partie 2 : Environnement de développement Partie 2 : Environnement de développement 61


Génération
Contenu
Perso-dossiers : Organisez
Contenu

multiple votre projet


Les configurations de projet permettent de définir simplement les différentes "Cibles" de votre Les éléments qui composent un projet sont tous listés dans le volet "Explorateur de Projet". Par
projet. Vous pouvez ainsi définir pour un même projet plusieurs exécutables, plusieurs compo- défaut, les éléments sont rangés en fonction de leur type : fenêtres, états, classes...
sants et plusieurs bibliothèques. Dans les projets de taille importante, il est souvent plus pertinent de regrouper les éléments
correspondant à la même fonctionnalité : gestion du stock ou traitement des commandes par
Pour générer le résultat de chaque configuration, vous pouvez bien entendu sélectionner une à exemple.
une chaque configuration et générer le programme correspondant. Pour cela, il suffit de créer des "perso-dossiers" dans l’arborescence de l’explorateur de projet et
de glisser les différents éléments dans ces dossiers.
Un autre moyen plus rapide existe : la génération multiple. Vous sélectionnez en une seule opéra- Des éléments peuvent être communs à plusieurs "perso-dossiers".
tion les configurations à générer et le résultat est immédiat. Il est ainsi plus simple de travailler sur une partie de l’application.

Pour lancer une génération multiple, sous le volet "Projet", dans le groupe "Génération", cliquez
sur "Génération multiple".

Remarque : Pour ranger, organiser vos projets, mais aussi pour partager un ensemble d’éléments
entre différents projets, WINDEV Mobile met également à votre disposition les composants in-
ternes.

62 Partie 2 : Environnement de développement Partie 2 : Environnement de développement 63


Gestionnaire de sources
Contenu

Fonctionnement de Gestionnaire de Sources


(GDS) Voici un exemple d’utilisation du Gestionnaire de Sources :

Présentation
Poste Local 1
Pour simplifier vos développements en équipe, WINDEV propose un gestionnaire de sources.
Ce gestionnaire de sources permet à plusieurs développeurs de travailler simultanément sur le 2
Extraction 9h57
même projet et de partager des éléments entre différents projets. Projet A
Version 1
Projet A
Version 1

Réseau 3 Modification

(intranet) Projet A Réintégration 10h41 Projet A


Version 2 Version 2

4
ADSL Poste Local 2 Projet A

(internet)
Version 3

5
Projet A Extraction 14h28
Version 2 Base de sources
Poste Nomade
Cloud Extraction de la Fenêtre Beta du
Projet A Version 1 à 9h13

Poste Nomade Poste Local 1

1
Extraction de la fenêtre Alpha du

GDS
Projet A Version 1 à 9h57

Déconnecté Projet A Extraction 9h57


Réintégration de la fenêtre Alpha modifiée
dans le Projet A Version 2 à 10h41
Version 1

6
Poste Local 2
Modification Extraction de la fenêtre Alpha du
Il est possible de partager les éléments présents dans le GDS : en clientèle Projet A Version 2 à 14h28
• via un réseau, Projet A Réintégration 18h32
Poste Nomade
Version 3
• via Internet, Réintégration de la fenêtre Beta modifiée

• via le Cloud, 7 dans le Projet A Version 3 à 18h32

• en mode déconnecté. Dans ce cas, les éléments sur lesquels un travail spécifique devra être
effectué seront extraits du GDS par exemple lors de la connexion du portable au système géné-
ral. Si un élément (fenêtre, état, ...) du projet est extrait, ce même élément ne pourra pas être extrait
une seconde fois.
Après modification des éléments extraits, il est nécessaire de réintégrer ces éléments pour que
le projet de base prenne en compte ces modifications. En effet, la base de sources conserve un
historique de tous les éléments du projet depuis leur création.

A chaque réintégration d’un élément, le numéro de version du projet de base est incrémenté de 1.

64 Partie 2 : Environnement de développement Partie 2 : Environnement de développement 65


Partager un projet en pratique Pour profiter des modifications effectuées, les
autres développeurs doivent synchroniser leur pro-
Conseils
Les sources de vos applications sont primordiales.
jet local avec le projet de référence (présent dans la Ces sources doivent être traitées avec l’attention
Un développement informatique important néces- Pour partager un projet, vous pouvez utiliser : base de sources). qu’elles méritent !
site la participation de plusieurs développeurs. • le gestionnaire de sources.
Ces développeurs doivent travailler sur un projet Voici donc une série de conseils qui s’appliquent au
• le groupware développeur. Son utilisation est serveur qui hébergera vos sources :
WINDEV unique en partageant les différentes res- conservée pour compatibilité avec les versions
sources (requêtes, classes, ...) manipulées. • Utilisez un serveur dédié avec un disque de
précédentes. Pour plus de détails, consultez
taille confortable (au moins 200 Go).
l’aide en ligne (mot-clé : "Groupware déve-
loppeur"). • Utilisez plutôt le Gestionnaire de Sources (GDS)
en mode Client/Serveur.
• Les disques durs peuvent avoir des problèmes
1  Le Gestionnaire de Sources physiques : utilisez si possible un système RAID
I sur votre serveur (plusieurs disques stockant
les mêmes informations en double).
1.1 Présentation Le GDS permet également un fonctionnement dé- • Protégez l’alimentation de votre serveur par un
connecté (train, avion, ...). onduleur.
WINDEV innove dans la gestion du travail en groupe
avec le gestionnaire de sources (appelé également 1.2 Principe d’utilisation • Faites des sauvegardes régulières de la base
GDS). de sources (1 sauvegarde par semaine au mini-
Installation mum).
Totalement intégré à l’environnement, le gestion-
naire de sources (GDS) permet : • Placez le serveur dans une zone "sécurisée", en
utilisant un firewall.
• un développement performant en équipe,
• l’historique des modifications et des versions,
• l’automatisation de la sauvegarde des sources 2  Créer une base de sources pour le GDS
des membres de l’équipe développement.
Dimensionné pour des équipes de 1 à 100 déve-
loppeurs, le GDS favorise et normalise sans 2.1 Présentation • le nom et le mot de passe d’un administra-
contrainte les échanges entre développeurs (même teur de la base HFSQL.
Tous les éléments du projet sont enregistrés dans Pour partager un projet grâce au gestionnaire de
en développant seul, le GDS est utile car il contient la base de sources (sur le serveur). Cette opération sources, il est nécessaire de créer une base de 2.2 Quand créer une base de sources ?
l’historique de vos applications). est effectuée à la création du projet ou lors de l’im- sources. Cette base de sources doit être créée une
seule fois sur un poste serveur. La base de sources doit être créée une seule fois.
portation d’un projet existant dans le Gestionnaire
Le système d’exploitation et le système de fichiers WINDEV permet de créer cette base de sources à
Le GDS utilise une base de sources : procédures, de Sources.
sur lequel est installée la base du GDS doivent sa- différents moments :
classes, fenêtres, états, composants, analyses, ... Chaque développeur utilisant le Gestionnaire de
voir gérer les fichiers de plus de 4 Go. • lors de l’installation de WINDEV.
Cette base peut être installée à votre choix sur un Sources récupère une copie du projet en local.
serveur (en mode HFSQL Classic ou HFSQL Client/ Il est possible de créer la base de sources : • lors de la création d’un projet utilisant le GDS.
Utilisation
Serveur) ou sur un poste du réseau dans un réper- • dans un répertoire partagé sur le réseau : tous • lors de l’importation d’un projet dans le gestion-
toire partagé. Pour travailler sur un élément du projet (fenêtre, naire de sources.
les utilisateurs du GDS doivent avoir tous les
état, ...), le développeur doit extraire l’élément de
Le GDS permet un fonctionnement connecté en droits sur ce répertoire. La base de sources sera • directement dans l’administrateur du GDS.
la base de sources, le modifier, puis le réintégrer.
local et à distance, via Internet ou une liaison HTTP au format HFSQL Classic. Lorsque la base de sources est créée, il est pos-
ou HTTPS. Il est ainsi possible de travailler sur un Si l’élément est déjà extrait, le développeur peut Il suffit de préciser le répertoire réseau où la sible d’importer dans cette base de sources tous
projet depuis une agence ou depuis un site client demander à la personne ayant extrait de réintégrer base de sources doit être créée. les projets WINDEV à partager.
sans crainte de perte des modifications effectuées. l’élément (par l’intermédiaire de la messagerie inté-
• sur un serveur HFSQL Client/Serveur : la base
grée). 2.3 Sauvegardes
de sources sera au format HFSQL Client/Ser-
veur. Dans ce cas, il est nécessaire de préciser : Il est conseillé de faire régulièrement des sauve-
• le serveur gardes de la base de sources du GDS. Ces sauve-
• la base gardes peuvent être effectuées grâce à l’adminis-
• le port utilisé trateur du GDS.

66 Partie 2 : Environnement de développement Partie 2 : Environnement de développement 67


3  Configurer le projet pour travailler avec le GDS 4.2 Extraire un élément 4.3 Réintégrer un élément
Les différents modes d’extraction Les éléments extraits du Gestionnaire de sources
Pour utiliser un projet existant avec le gestionnaire • la base Le GDS propose deux modes d’extraction des élé- apparaissent entourés d’un trait rouge sous l’édi-
de sources, quelques manipulations sont néces- • le port utilisé ments du projet : teur de projet.
saires. • le nom et le mot de passe d’un administra- Pour réintégrer un élément, il suffit de sélectionner
• le mode classique : si vous affichez un élément
teur de la base HFSQL. du GDS non extrait, un panneau indique que cet l’option "Réintégrer" dans le menu contextuel de
3.1 Ajouter un projet dans le GDS l’élément dans le volet "Explorateur de projet".
• une base de sources GDS Drive. Indiquez les élément doit être extrait pour être modifié. Vous
Pour ajouter un projet local dans le GDS : renseignements d’identification à votre GDS pouvez extraire immédiatement l’élément (bou- Lors de la réintégration d’un élément, un écran
1. Ouvrez votre projet sous WINDEV. Drive : email, mot de passe et équipe. ton d’extraction présent dans le panneau). s’affiche permettant d’effectuer les actions sui-
2. Sous le volet "GDS", dans le groupe "Projet", • une base de sources située dans PCS Cloud. • le mode automatique : si vous tentez de modi- vantes avant de réintégrer l’élément :
cliquez sur "Ajouter le projet". Indiquez le nom de la plateforme cloud utili- fier un élément du GDS non extrait, le GDS pro- • connaître les modifications effectuées.
3. Dans l’assistant qui s’affiche, sélectionnez la sée et le projet à ouvrir. pose automatiquement d’extraire cet élément. • comparer l’élément de la base de sources avec
base de sources à utiliser. Remarque : Si vous n’avez pas encore créé de Après la validation de l’extraction, l’élément l’élément local (extrait).
4. Dans l’assistant qui s’affiche, sélectionnez la base de sources, cliquez sur le bouton "Créer peut être modifié. • accéder à l’historique de l’élément dans la base
base de sources à utiliser. Indiquez si vous voulez une base". Remarque : ce mode est déconseillé lors d’une de sources.
utiliser : 5. Validez l’assistant. Le projet est ajouté au GDS. utilisation du GDS avec une connexion Internet Il est possible de réintégrer les modifications effec-
lente. tuées dans l’élément, tout en conservant l’élément
• une base de sources située sur un partage
réseau (base de sources au format HFSQL 3.2 Partage de ressources Pour changer le mode d’extraction : extrait (option "Garder le fichier extrait").
Classic). Donnez le répertoire de la base de Vous avez importé dans le gestionnaire de sources 1. Sous le volet "Accueil", dans le groupe "Envi-
sources (poste du réseau ou répertoire par- un premier projet. Ce projet contient des éléments ronnement", déroulez "Options" et sélectionnez 4.4 Modes de gestion du projet
tagé). partagés avec d’autres projets (classes, fenêtres, l’option "Options générales de WINDEV". Deux modes de gestion du projet sont disponibles
• une base de sources située sur un serveur procédures, feuilles de styles, analyse, ...). 2. Dans l’onglet "Général", l’option "Extraction avec le GDS :
HF-SQL Client/Serveur. La base de sources Le partage est une notion importante du GDS. Dif- des éléments à la première modification" permet • Gestion du projet en mode Maître / Invité.
sera au format HFSQL Client/Serveur. Dans férentes méthodes sont disponibles pour effectuer de passer tous les prochains projets ouverts en
• Gestion du projet en mode automatique (par
ce cas, il est nécessaire de préciser : le partage. Pour plus de détails, consultez l’aide en mode automatique.
défaut).
• le serveur ligne. Ouvrir un élément du projet pour
modifier ses caractéristiques Maître et invité
Pour modifier les caractéristiques d’un élément Le Gestionnaire de sources considère 2 types d’uti-
4  Travailler avec le GDS d’un projet géré par le GDS : lisateurs :
1. Extrayez l’élément du Gestionnaire de sources. • le maître : le maître est l’utilisateur qui a placé
le projet dans le gestionnaire de sources.
4.1 Options d’un projet concernant le GDS • Proposer la réintégration des éléments à la fer- 2. Sélectionnez le mode d’extraction de l’élément.
Le mode d’extraction peut être : • les invités : les invités sont les développeurs qui
meture du projet : manipulent le projet depuis le gestionnaire de
Plusieurs options permettent de configurer un pro- Cette option permet d’afficher lors de la fer- • exclusif : personne ne pourra extraire cet sources.
jet manipulé avec le Gestionnaire de Sources. Ces meture du projet la liste de tous les éléments élément jusqu’à sa réintégration. L’élément
options sont regroupées dans l’onglet "GDS" de la actuellement extraits, afin de réintégrer certains pourra uniquement être extrait pour test. Il n’est pas obligatoire d’être connecté en mode
description du projet (option "Description" sous le ou tous ces éléments. • pour test : l’élément pourra être modifié mais maître sur un projet. Le mode "Maître" est néces-
volet "Projet"). Ces options sont cochées par défaut. Par défaut, à la fermeture du projet, les élé- les modifications ne pourront pas être réinté- saire uniquement pour :
• Proposer la récupération de la dernière version ments extraits ne sont pas réintégrés. grées. • modifier les caractéristiques du projet et réinté-
des éléments à l’ouverture du projet : • Extraire/Réintégrer automatiquement le projet : • multiple : l’élément pourra également être grer ces modifications dans la base de sources.
Cette option permet lors de l’ouverture d’un Cette option permet une gestion automatique extrait par d’autres utilisateurs. Dans ce cas, • réintégrer tous les éléments pour faire l’exécu-
projet présent dans le GDS, de proposer la récu- du "fichier projet". Si cette option est cochée, le lors de la réintégration, il sera possible de table et le programme d’installation de l’appli-
pération de la dernière version des différents fichier projet est extrait uniquement si l’action visualiser les différences entre les différentes cation.
éléments du projet. réalisée le nécessite. Lorsque l’action sur le versions de l’élément. Pour passer du mode maître au mode invité, sous
Par défaut, la dernière version des éléments est projet a été effectuée, le fichier projet est auto- le volet "GDS", dans le groupe "Projet", déroulez
3. Validez. L’élément est ouvert. La barre de titre
automatiquement récupérée. matiquement réintégré. "Maître / Invité" et sélectionnez l’option "Devenir
indique que l’élément est extrait.
Cette option permet de ne plus avoir la gestion invité sur le projet (et tout réintégrer)".
"Maître / Invité" sur le projet. Il est également
Dans ce cas, le gestionnaire de sources propose la
possible d’activer cette option sous le volet
réintégration de tous les éléments du projet (y com-
"GDS", dans le groupe "Projet", en déroulant
pris le fichier .WDP).
"Maître / Invité" et en sélectionnant "Gérer auto-
matiquement l’extraction du projet".

68 Partie 2 : Environnement de développement Partie 2 : Environnement de développement 69


Pour passer du mode invité au mode maître, sous Mode automatique
Composant
Contenu

le volet "GDS", dans le groupe "Projet", déroulez


"Maître / Invité" et sélectionnez l’option "Devenir
maître sur le projet".
Avec le mode automatique, le fichier projet est
extrait uniquement si l’action réalisée le nécessite
(quel que soit l’utilisateur). Lorsque l’action sur le
interne
Attention : Modification des options du projet : projet a été effectuée, le fichier projet est automati-
Tous les utilisateurs du projet (qu’ils soient maîtres quement réintégré. Un composant interne est un regroupement d’éléments d’un projet. Ce regroupement permet de :
ou invités) peuvent modifier les caractéristiques Le mode automatique permet de ne plus avoir la
du projet (première fenêtre du projet, animation, gestion "Maître/Invité" sur le projet. • Organiser un projet : vous pouvez créer des composants internes pour regrouper les éléments
charte de programmation, ...). Ces modifications d’un projet, par exemple par fonctionnalité.
pourront être réintégrées dans le gestionnaire de • Partager des éléments entre différents projets, par l’intermédiaire du GDS.
sources uniquement par le maître du projet.
Les modifications faites par un invité seront per-
dues lors de la mise à jour du projet depuis la base GDS
de données.

5  Travailler en mode déconnecté avec le GDS


Projet 1
Le Gestionnaire de Sources permet très simple- d’extraire avant la déconnexion les différents
ment de travailler en mode déconnecté ou nomade. éléments qui vont être modifiés (ainsi, ces
éléments seront "déjà extraits" pour les autres
1
Ce mode permet par exemple à un développeur Projet 2
utilisateurs). Vous pourrez travailler en local sur Création du
utilisant un portable de continuer à travailler sur
votre projet. Les différents éléments du projet composant interne
un projet présent dans la base de sources tout en
étant déconnecté de la base de source. sont manipulables directement.
Le principe est simple : • à la reconnexion, sous le volet "GDS", dans le Fenêtres
• avant la déconnexion, sous le volet "GDS", dans
le groupe "Autres actions", déroulez "Travail à
groupe "Autres actions", déroulez "Travail à dis-
tance" et sélectionnez l’option "Se reconnecter 2 Partage du
composant interne
distance" et sélectionnez l’option "Se déconnec- et synchroniser". Il suffit alors de réintégrer les Classes via le GDS
ter pour une utilisation nomade". Il est conseillé éléments modifiés.
Pour plus de détails, consultez l’aide en ligne.
Requêtes
6  Administrateur du GDS
L’administrateur du GDS permet de manipuler di- • gérer les différents fichiers de la base de
rectement les différents projets inclus dans le ges- sources (extraction, réintégration, partage, ...).
tionnaire de sources. • lancer certains outils (options, maintenances,
Il permet par exemple de : ...). Fichier WCI
Sous-répertoire
(Liste des éléments)
• gérer les bases de sources (création, connexion • restaurer une version d’un projet. du projet
à une base de sources). • voir les historiques et les différences de versions <MonComposant>
• gérer les branches. de sources.
• gérer les fichiers et les répertoires présents • annuler les extractions (en mode administra-
dans un projet de la base de sources (ajouter, teur). Les éléments d’un composant interne peuvent être privés ou publics  :
supprimer, renommer, ... des fichiers et des • purger une base, la sauvegarder, la restaurer, ... • Les éléments privés pourront être manipulés uniquement par les autres éléments du compo-
répertoires). • rajouter des fichiers de tout type dans la base sant.
(.doc, .xls, .pdf, ...).
• Les éléments publics pourront être manipulés par les éléments du projet utilisant le compo-
sant interne.

70 Partie 2 : Environnement de développement Partie 2 : Environnement de développement 71


Composant interne en pratique • Utiliser une analyse spécifique : Le compo-
sant interne accède à ses propres fichiers de
2.2 Composant interne et analyse : cas de
l’autonomie totale
données. Le composant interne utilise des
contextes d’exécution distincts de ceux du Un composant interne peut être lié à sa propre ana-
projet. lyse. Dans ce cas, le projet accueillant le compo-
1  Présentation Ce mode correspond au mode par défaut si le sant interne peut avoir plusieurs analyses :
composant utilise une analyse. • l’analyse du projet.
Un composant interne est un regroupement d’élé- Différence avec un composant externe : Un com- Dans ce cas, il est nécessaire d’indiquer • l’analyse du ou des composants internes.
ments d’un projet. Ce regroupement permet de : posant interne permet d’intégrer la totalité des l’analyse utilisée par le composant interne. Il Cette analyse est définie lors de la création du
• Organiser un projet : vous pouvez créer des éléments du composant dans l’interface du projet est également possible de créer directement composant interne. Elle peut être également
composants internes pour regrouper les élé- contenant le composant interne. Il est possible de une nouvelle analyse. Cette analyse sera sélectionnée depuis la fenêtre de description du
ments d’un projet par exemple par fonctionna- manipuler tous les éléments "publiques" du compo- associée au composant interne. composant interne.
lité. sant interne directement sous l’éditeur. 6. Validez la création du composant interne. A tout Les éléments générés par le RAD pour le compo-
• Partager des éléments entre différents projets : Lors de l’utilisation d’un composant externe, les moment, il sera possible de : sant interne seront générés dans le répertoire du
Les éléments présents dans un composant éléments "publics" du composant ne peuvent pas • Modifier les caractéristiques du composant composant interne. Bien entendu, si l’analyse du
interne peuvent être partagés entre plusieurs être manipulés directement. Il est nécessaire pour interne grâce à la fenêtre de description du composant interne est modifiée, une nouvelle gé-
projets par l’intermédiaire du GDS. modifier le composant externe d’ouvrir le projet cor- composant interne. nération par le RAD proposera automatiquement
Un des avantages du composant interne par rap- respondant. de générer uniquement les éléments correspon-
• Manipuler le composant interne et ses élé-
port au composant externe est de pouvoir débo- ments. dants aux modifications.
guer directement le composant interne depuis le Astuce : Un composant interne n’a pas de code de
projet qui l’utilise. déclaration des globales. Il suffit d’utiliser une col-
lection de procédures pour effectuer l’initialisation
du composant interne.
2  Créer un composant interne
3  Partager des composants internes (via le GDS)
2.1 Les différentes étapes Remarque : Les éléments du composant interne
accessibles (ou "public") seront automatiquement
Pour créer un composant interne : Les composants internes peuvent être partagés interne sera automatiquement présent dans le
proposés par la complétion. Ils pourront être uti-
1. Sous le volet "Projet", dans le groupe "Configu- lisés par les éléments présents dans le projet ou entre projets grâce au GDS. GDS.
ration de projet", déroulez "Nouvelle configuration" depuis un autre composant interne. Les éléments Pour partager un composant interne via le GDS, il • soit d’importer dans le GDS un projet contenant
et sélectionnez l’option "Composant Interne". L’as- non accessibles (ou "privés") pourront être manipu- est nécessaire que le projet contenant le compo- un ou plusieurs composants internes. Les com-
sistant création d’un composant interne se lance. lés uniquement par un autre élément du compo- sant interne soit dans le GDS. Il est possible : posants internes seront alors automatiquement
2. Indiquez les caractéristiques du composant sant interne (la complétion proposera ces éléments • soit de créer le composant interne à partir d’un intégrés dans le GDS.
interne : "privés" uniquement depuis les éléments d’un com- projet présent dans le GDS. Le composant
• son nom. Le nom du composant interne sera posant interne).
utilisé pour le fichier WCI correspondant à la 5. Indiquez le mode de gestion des données et
description du composant interne. Ce nom des contextes d’exécution. Trois modes de gestion
sera également utilisé pour créer un sous-ré- des données et des contextes d’exécution sont
pertoire dans votre projet contenant tous les disponibles :
éléments du composant interne. • Utiliser l’analyse du projet ou aucune analyse
• son libellé. (partage complet) : Le composant interne
• sa description. accède aux fichiers de données du projet.
3. Indiquez les éléments à intégrer dans le Le composant interne utilise également les
composant interne. Un composant interne peut mêmes contextes d’exécution que le projet.
contenir tous les types d’éléments présents dans Ce mode correspond au mode par défaut si le
un projet : fenêtres, états, modèles, collections de composant interne n’utilise pas d’analyse.
procédures, ... • Utiliser l’analyse du projet avec contexte
4. Indiquez les éléments du composant interne d’exécution différent (mode avancé) : Le com-
qui seront directement accessibles dans le code posant interne accède aux fichiers de don-
et dans les actions prédéfinies du projet accueil- nées du projet. Le composant interne utilise
lant le composant interne. des contextes d’exécution distincts de ceux
du projet. Ce mode est à utiliser dans des cas
très spécifiques.

72 Partie 2 : Environnement de développement Partie 2 : Environnement de développement 73


Composant
Contenu

Composant externe en pratique


externe
1  Présentation
Un composant externe est un ensemble d’éléments WINDEV  : fenêtres, états, analyse, ... Cet
ensemble d’éléments effectue une fonctionnalité précise. Par exemple, un composant externe
peut correspondre à une des fonctionnalités suivantes : 1.1 Définition sont accessibles depuis la page d’accueil de
WINDEV (option "Ouvrir un exemple").
• Envoi de SMS, Un composant externe est un ensemble d’éléments
WINDEV : fenêtres, états, analyse, ... Cet ensemble 1.2 De quoi est constitué un composant
• Envoi d’emails, d’éléments effectue une fonctionnalité précise. Par externe ?
• ... exemple, un composant externe peut correspondre
à une des fonctionnalités suivantes : Un composant est défini et généré à partir d’un
Un composant externe WINDEV peut être redistribué à d’autres développeurs WINDEV (gratuite- projet WINDEV existant. Il peut être ensuite intégré
• Envoi de fax
ment ou non). Ces développeurs pourront ainsi intégrer simplement la fonctionnalité proposée par dans d’autres projets WINDEV.
• Envoi d’emails, ...
le composant externe dans leur application. Le composant externe sera donc intégré à l’applica- Tous les éléments du composant sont totalement
tion et distribué avec l’application. Remarques : indépendants du projet dans lequel le composant
• Pour optimiser l’organisation de vos projets, il est intégré. Le composant peut avoir sa propre
est possible d’utiliser des composants internes. analyse, ses fenêtres, ses états, ses fichiers de
Projet WINDEV Pour plus de détails, consultez "Composant données, ... Lors de la création de la génération du
interne en pratique", page 72 composant, il suffit d’indiquer si ces éléments pour-
1 Développement
du composant • Dans la suite de ce chapitre, le terme "compo- ront être manipulés ou non dans le projet WINDEV
intégrant ce composant.
sant" signifie "composant externe".
2 Génération du Le composant est constitué de trois fichiers :
composant Un composant externe peut être redistribué à
d’autres développeurs WINDEV (gratuitement ou < N o m C o m - Fichier composant. Contient
p o s a n t > . tous les éléments du compo-
Fichier .WDK non). Ces développeurs pourront ainsi intégrer
simplement la fonctionnalité proposée par le com- WDK sant. Ce fichier est nécessaire à
posant dans leur application. Le composant sera l’intégration du composant dans
Créé dans le répertoire EXE
donc intégré à l’application et distribué avec l’appli- un projet. Ce fichier doit égale-
cation. ment être livré dans la procédure
d’installation de l’application
Lors de la création du composant, l’auteur spéci- utilisant le composant.
fie :
3 Importation du
• la provenance des éléments du composant. Le < N o m C o m - Description du composant (uni-
composant posant>.WDI quement pour le développement
développeur peut construire un composant à
partir d’un projet WINDEV lié à un projet WEB- d’applications). Ce fichier est
DEV et/ou un projet WINDEV Mobile. nécessaire à l’intégration du
composant dans un projet. Ce
• les éléments du composant visibles ou non par
Projet WINDEV Projet WINDEV Projet WINDEV fichier ne doit pas être livré dans
l’utilisateur du composant. Les éléments visibles la procédure d’installation de
seront accessibles dans l’explorateur du projet
4 4 4
Utilisation du Utilisation du Utilisation du l’application utilisant le compo-
composant composant composant
ou par programmation. sant.
• le mode d’utilisation du composant (com-
ment utiliser le composant, les paramètres <Nom du Fichier optionnel
permettant d’accéder aux fonctionnalités du composant>. Fichier au format texte contenant
composant, ...). Une documentation succincte WDO la liste des différents éléments
(à compléter) est automatiquement générée et (fichier livrés en plus avec le composant
associée au composant. optionnel) (fichiers de données, fichiers .INI,
...). Pour plus de détails, consul-
Remarque : Des exemples de composants sont tez "Le fichier WDO", page 80.
livrés en standard avec WINDEV. Ces composants

74 Partie 2 : Environnement de développement Partie 2 : Environnement de développement 75


1.3 Que contient un composant externe ? Remarque : Par défaut, si un composant utilise 3.3 Distribution simple d’un composant Ce mode d’installation permet de gérer automati-
une analyse, des fichiers de données, ... les fonc- quement :
Un composant contient : tions WLangage de gestion HFSQL manipuleront La distribution simple d’un composant consiste
à fournir uniquement les fichiers nécessaires au • le fichier WDO et l’installation des fichiers spé-
• les différents éléments à redistribuer (fenêtres, ces éléments dans un contexte indépendant. Ces cifiques (fichiers de données, ...) utilisés par le
états, ...). Ces éléments peuvent être acces- paramètres peuvent être modifiés dans les options fonctionnement du composant par simple copie.
Les fichiers sont copiés dans un répertoire spéci- composant.
sibles ou non lors de l’importation du compo- avancées du composant. Pour plus de détails,
sant dans un projet WINDEV. fique. Ce répertoire peut par exemple être présent • l’installation d’outils spécifiques (MDAC, driver
consultez l’aide en ligne. ODBC pour HFSQL, ...)
• une brève description du composant. sur un serveur réseau.
Lors de l’importation du composant dans un pro- • la mise à jour automatique des fichiers de don-
• une aide permettant de ré-utiliser ce compo- nées utilisés par le composant (si nécessaire).
sant. Cette aide est générée à partir des com- jet WINDEV, il suffit de sélectionner le fichier WDI
mentaires de code. correspondant au composant dans le répertoire de • la désinstallation du composant.
distribution. Pour proposer une procédure d’installation pour un
Pour distribuer un composant, il est nécessaire de composant :
2  Créer et générer un composant externe fournir : 1. Créez la procédure d’installation du compo-
• Les fichiers automatiquement générés par WIN- sant : sous le volet "Projet", cliquez sur "Procédure
La création d’un composant doit être effectuée à La création d’un composant se fait en plusieurs DEV (fichier <NomComposant>.WDK et fichier d’installation".
partir d’un projet contenant tous les éléments né- étapes : <NomComposant>.WDI). 2. Dans les différents plans de l’assistant, spéci-
cessaires au fonctionnement du composant. Il est 1. Développement des éléments du composant. • Si nécessaire, les fichiers spécifiques manipulés fiez :
donc conseillé d’utiliser un projet spécifique pour 2. Création du composant. par le composant (fichiers de données, fichiers • le support d’installation du composant
créer chaque composant. d’initialisation, ...) ainsi que le fichier <NomCom- • les langues proposées dans la procédure
3. Définition des options avancées du composant. posant>.WDO.
4. Génération du composant. d’installation
Le fichier texte <NomComposant>.WDO contient • le répertoire d’installation par défaut du com-
Le composant peut alors être distribué et ré-utilisé. la liste des fichiers qui doivent être fournis avec posant
le composant. Pour plus de détails sur ce fichier,
consultez le paragraphe Le fichier WDO. • les modules optionnels à installer. Il est pos-
sible de modifier la liste des fichiers à distri-
3  Distribuer un composant externe buer avec le composant. Le fichier WDO sera
3.4 Distribution grâce à une procédure
d’installation automatiquement créé à partir de cette liste.
3.1 Présentation 3.2 Utilisation directe du composant • ...
La diffusion des composants à l’aide d’une
procédure d’installation consiste à fournir un Par défaut, les fichiers nécessaires à l’installation
Lorsque le composant a été créé, testé et généré, il Le composant est créé et utilisé sur le même poste.
programme d’installation aux utilisateurs du d’un composant sont créés dans le sous-répertoire
peut être mis à disposition des développeurs. Plu- Lors de l’importation du composant dans un projet
composant WINDEV. Ce programme installe tous INSTALL COMPO du projet.
sieurs méthodes sont possibles : WINDEV, il suffit de sélectionner le fichier WDI cor-
les fichiers nécessaires à l’utilisation du composant Rappel : Lors de la création de l’installation d’une
• utilisation directe du composant respondant au composant. Ce fichier est disponible
dans le répertoire spécifié par l’utilisateur. application, les fichiers nécessaires sont créés
Exemple : le composant est directement utilisé dans le répertoire EXE du projet composant.
dans le répertoire INSTALL du projet.
sur le poste du développeur qui a créé le com- Attention : Si le composant utilise des fichiers
posant. spécifiques (fichiers de données, fichiers texte, ...),
• distribution simple, en fournissant directement il est nécessaire de créer un fichier <NomCompo- 4  Utiliser un composant externe dans une application
les fichiers nécessaires. sant>.WDO après la génération du composant. Ce
Exemple : le composant est destiné à être utilisé fichier contient la liste des fichiers externes (fichiers
Un composant peut être ré-utilisé à tout moment Si le composant a été publié et importé via le GDS,
à l’intérieur d’une même société, par plusieurs de données, fichiers texte, ...) utilisés par le com-
dans n’importe quelle application WINDEV : il suffit les mises à jour sont proposées à l’ouverture du
développeurs. Dans ce cas, les fichiers néces- posant.
de connaître le répertoire des fichiers du compo- projet utilisant le composant.
saires peuvent être copiés sur un disque réseau. Ces fichiers référencés dans le fichier <NomCompo- sant et de l’importer dans le projet. L’importation
• procédure d’installation du composant (avec sant>.WDO seront automatiquement recopiés dans du composant peut également se faire via le GDS.
une procédure d’installation du composant iden- le répertoire EXE du projet utilisant le composant La création de l’exécutable (utilisant le composant)
tique à celle utilisée pour les applications). WINDEV. Lorsqu’une nouvelle version d’un composant est se fait de la même manière que pour une applica-
Exemple : Ce mode de distribution est conseillé disponible, il suffit d’installer les nouveaux fichiers tion classique WINDEV. Les DLLs nécessaires au
si le composant est destiné à être vendu ou à de cette mise à jour dans le répertoire d’installation fonctionnement du composant sont automatique-
être distribué à grande échelle, avec des mises du composant (selon le mode d’installation utilisé). ment détectées.
à jour régulières. Pour plus de détails sur les différents modes d’ins-
tallation d’un composant, consultez "Distribuer un
composant externe", page 76.

76 Partie 2 : Environnement de développement Partie 2 : Environnement de développement 77


5  Déploiement d’une application utilisant un composant externe La gestion de la compatibilité est une étape impor- Si le composant installé avec l’application est
tante dans la modification d’un composant. Il existe d’une version inférieure à celle utilisée par l’ap-
2 types de compatibilité : plication, l’application refusera de fonctionner.
5.1 Présentation Pour plus de détails sur la gestion de la compatibi- • la compatibilité descendante : la version du • la compatibilité ascendante : l’utilisation d’une
lité entre l’application et son composant, consultez composant utilisée (fichier .WDK) pour compiler nouvelle version d’un composant avec les pro-
Le déploiement d’une application utilisant un ou
l’aide en ligne. les applications utilisant ce composant doit être jets compilés avec une ancienne version peut
plusieurs composants se fait de la même façon
toujours supérieure ou égale à la version actuel- être interdite. Il est donc nécessaire de recom-
que le déploiement d’une application classique Pour mettre à jour un composant en clientèle, lement utilisée en déploiement. piler les projets pour utiliser correctement la
(option "Procédure d’installation" sous le volet "Pro- deux possibilités existent : Cette compatibilité est automatiquement gérée. nouvelle version du composant.
jet").
1. La recompilation du projet hôte
Lors du déploiement d’une application utilisant un
Recompilez le projet qui utilise le composant et
composant, les fichiers suivants sont automatique-
redistribuez l’application avec le composant. Dans 7  Caractéristiques avancées d’un composant
ment installés sur le poste de l’utilisateur :
ce cas, aucun problème de version ou de com-
• <NomComposant>.WDK, patibilité ne sera rencontré. La recompilation est
• <NomApplication>.EXE, nécessaire dans les cas suivants : 7.1 Documentation automatique A quel moment la documentation
est-elle générée ?
• les fichiers nécessaires au fonctionnement du • De nouvelles fonctions ont été ajoutées Un composant doit absolument être accompagné
composant et de l’application. d’une documentation pour permettre sa réutilisa- La documentation du composant est générée lors
dans le composant et doivent être prises en
tion. de la première génération du composant (option
compte.
5.2 Mise à jour des composants et des exé- "Générer" sous le volet "Projet").
• Les paramètres de certaines procédures ont WINDEV simplifie la réalisation de cette documen-
cutables déployés tation en proposant : Lors de cette génération de la documentation :
été modifiés.
Lors de la mise à jour d’un composant et/ou d’un • une présentation générale du composant. Cette • les commentaires existants dans le code sont
• Incompatibilité de la nouvelle version avec les
exécutable déployé, il est possible d’installer sur le présentation générale est saisie lors de la géné- utilisés pour créer la documentation.
anciennes versions du composant.
poste de l’utilisateur final : ration du composant. Lors de l’utilisation du • si aucun commentaire n’existe, WINDEV
• ...
• soit l’exécutable de l’application, le composant composant dans une application WINDEV, cette documentera automatiquement les éléments
2. Distribution directe du fichier .WDK accessibles du composant en précisant les
et les fichiers nécessaires à leur fonctionne- présentation sera visible lors du choix du com-
Fournissez directement une mise à jour du com- paramètres attendus en entrée et en sortie de
ment. posant à importer dans le projet.
posant (fichier .WDK) en clientèle sans recompila- chaque élément. Les commentaires correspon-
• soit uniquement l’exécutable de l’application et tion du projet. • une génération automatique de la documenta-
les fichiers nécessaires au fonctionnement de tion technique à partir des commentaires insé- dants sont automatiquement créés dans les
Cette possibilité s’applique en général lorsque : différents éléments.
l’application. rés dans le code des éléments du composant.
• La nouvelle version sert à corriger un ou des
• soit uniquement le composant et les éventuels dysfonctionnements d’une version antérieure. Quels sont les commentaires de code Remarque : A chaque re-génération du composant,
fichiers nécessaires à son fonctionnement. pris en compte ? il est possible de re-générer la documentation as-
• De nouvelles fonctions ont été ajoutées dans
Les commentaires pris en compte automatique- sociée au composant (bouton "Regénérer" dans la
le composant mais ne sont pas nécessaires
ment pour la documentation du composant sont : fenêtre "Historique du composant").
au bon fonctionnement de l’application.
• Les commentaires placés en tête des procé- Attention : Si vous utilisez le bouton "Regénérer",
dures WLangage les modifications effectuées sous l’assistant de
6  Modifier un composant externe génération seront supprimées.
Comment disposer de la documenta-
tion d’un composant ?
6.1 Présentation 6.2 Les différents types de compatibilité La présentation générale du composant et la docu-
A tout moment, un composant créé et généré peut La gestion de la compatibilité est liée aux versions mentation technique du composant sont dispo-
être modifié. Cette modification peut correspondre : d’un composant. En effet, si des modifications ont nibles :
• soit à l’ajout d’éléments dans le composant. été apportées au composant, les applications qui • lors de l’intégration d’un composant dans un
• soit à la suppression d’éléments du composant. utilisent le composant en déploiement peuvent ren- • Les commentaires placés en tête des traite- projet : sous le volet "Projet", dans le groupe
contrer des problèmes d’exécution si elles ne sont ments suivants : "Projet", déroulez "Importer" et sélectionnez
• soit à la modification des droits sur les éléments
pas en phase avec ce composant. • Code d’initialisation des fenêtres, l’option "Importer un composant externe".
du composant.
• Code d’initialisation des états, • à tout moment, lors d’un double-clic sur l’icône
• soit à la modification d’un des éléments du
du composant présent dans le volet "Explorateur
composant. • Code d’initialisation des classes, de projets" ou par l’option "Description" du menu
Dans tous les cas, après cette modification, le com- • Code d’initialisation des collections de procé- contextuel du composant.
posant doit être re-généré pour prendre en compte dures.
les modifications effectuées.

78 Partie 2 : Environnement de développement Partie 2 : Environnement de développement 79


La documentation spécifique à un élément du Si le composant utilise des éléments supplémen- Lors de l’intégration du composant, l’arborescence Diffusion d’un composant avec WDO
composant peut être obtenue en double-cliquant taires (fichiers de données, ...), il est nécessaire spécifiée dans le WDO sera conservée et repro- Pour diffuser un composant utilisant un fichier
sur cet élément dans le volet "Explorateur de pro- d’ajouter dans le répertoire EXE du projet : duite dans le répertoire EXE du projet. Pour plus de WDO :
jet" ou en appuyant sur la touche F2 depuis le code • un fichier <NomComposant>.WDO : ce fichier détails, consultez le paragraphe Utiliser un compo- • Si vous n’utilisez pas de procédures d’instal-
de cet élément. contient la liste des fichiers externes (fichiers de sant externe dans une application. lation pour le composant, il est nécessaire de
données, fichiers texte, ...) utilisés par le compo- Exemple : Le composant "Code Postal" utilise un fournir :
7.2 Visibilité d’un élément d’un composant sant. Ces fichiers doivent être livrés et installés fichier de données "Cedex" (fichiers Cedex.fic et Ce- • le fichier WDK,
Lors de la création d’un composant, il est possible avec le composant. dex.ndx). Dans le projet de création du composant, • le fichier WDI,
de définir les éléments du composant qui seront • les fichiers devant être redistribués avec le com- ce fichier de données est présent dans le répertoire
accessibles ou non par l’utilisateur du composant. posant. Ces fichiers peuvent être placés selon • le fichier WDO,
EXE du projet.
• Si l’élément est accessible, l’utilisateur du une sous-arborescence spécifique. Dans ce cas, • tous les fichiers nécessaires référencés dans
Pour que le composant soit livré et installé avec le
composant verra cet élément dans la liste des le code du composant doit gérer l’accès à ces le fichier WDO.
fichier de données, il faut créer le fichier WDO dans
éléments du projet. Il pourra manipuler ces élé- fichiers selon cette même arborescence. le répertoire EXE du projet de création du compo- • Si vous utilisez une procédure d’installation pour
ments par programmation (comme s’il s’agissait Qu’est-ce que le fichier WDO ? sant. Ce fichier doit contenir les lignes suivantes : le composant, le fichier WDO sera automatique-
d’un élément créé dans le projet). ment créé lors de la création de la procédure
Le fichier <NomComposant>.WDO est un fichier .\CEDEX.Fic
Remarque : Le code de cet élément n’est cepen- d’installation du composant.
au format TXT, pouvant être créé et modifié à tout .\CEDEX.NDX
dant pas visible. Il suffit pour cela dans l’assistant de :
moment. Ce fichier peut par exemple être créé et
• Si l’élément n’est pas accessible, l’utilisateur ne modifié avec l’éditeur de texte standard de Win- 1. Demander la modification des fichiers à instal-
saura même pas que cet élément existe. dows, NotePad. ler (option "Modifier la liste des fichiers à instal-
ler" dans les "modules additionnels").
Attention : Selon le mode de déclaration des élé- Ce fichier contient la liste des fichiers externes (fi-
chiers de données, fichiers texte, ...) utilisés par le 2. Sélectionner les fichiers supplémentaires à
ments du projet (classe, collection de procédures,
composant et devant être livrés et installés avec le installer.
...), les éléments accessibles ou non peuvent varier.
composant. Ces fichiers doivent être recopiés dans Le fichier WDO sera automatiquement créé et
7.3 Le fichier WDO le répertoire EXE des projets utilisant le composant. installé avec le composant.
Lors de la génération du composant, deux fichiers Ce fichier ".WDO" peut contenir :
sont automatiquement créés dans le répertoire • soit le nom complet du fichier.
EXE du projet en cours : Par exemple : C:\Composants\ComposantSélec-
teur\EtatInitial.INI
< N o m C o m - Contient tous les éléments à
• soit le nom du fichier. Ce fichier sera recherché
p o s a n t > . redistribuer (fenêtres, états, ...)
dans le répertoire en cours du composant.
WDK avec le composant
Par exemple : EtatInitial.INI
< N o m C o m - Interface du composant. Ce • soit un nom de fichier utilisant un chemin rela-
posant>.WDI fichier contient : tif.
• une aide pour l’utilisation du Les syntaxes possibles sont :
composant lors de sa réinté- • Répertoire\NomFichier.xxx pour indiquer un
gration sous-répertoire du répertoire en cours
• les éléments à l’utilisation du • .\NomFichier.xx pour indiquer le répertoire en
composant dans le projet (in- cours
formation de compilation, ...) • ..\NomFichier.xx pour indiquer le répertoire
Lors de la diffusion du composant, ces deux fi- parent Par exemple : \ComposantSélecteur\
chiers doivent être redistribués. EtatInitial.INI
Ce fichier sera utilisé lors de l’intégration du com-
posant dans le projet. Les chemins précisés dans
le WDO doivent correspondre aux chemins où les
fichiers sont installés sur le poste de développe-
ment du composant.

80 Partie 2 : Environnement de développement Partie 2 : Environnement de développement 81


Modes de
Contenu

génération
Applications et DLL d’assemblage DotNet
WINDEV permet la génération d’applications et d’assemblages pour la pla-
teforme DotNet de Microsoft. Un assemblage DotNet généré avec WINDEV
pourra être importé dans une application DotNet développée dans un autre
Au-delà des applications Windows, WINDEV vous permet de générer de nombreux autres types de langage d’une façon similaire à un composant externe entre deux applica-
projets. tions WINDEV.
Applications
Les applications sont le mode de génération le plus fréquemment utilisé.
Applications et Applets Java
Les applications construites avec WINDEV peuvent cibler les plateformes
d’exécution suivantes : Windows (en 32 ou 64 bits) et Linux. WINDEV permet de générer des applications Java ainsi que des Applets.
Les applications Java peuvent ensuite être exécutées sur n’importe quelle
machine possédant une machine virtuelle Java, quel que soit son système
Services d’exploitation. Il est possible de cette façon de construire des applications
WINDEV permet de générer des services pour Windows (en 32 ou 64 bits) fonctionnant indifféremment sous Windows, Mac OS ou même Solaris par
et pour Linux (sous Linux, les services sont habituellement appelés des dae- exemple.
mons). Un service est une forme particulière d’application, lancée en même Une Applet Java est une application destinée à fonctionner à l’intérieur d’un
temps que le système d’exploitation et ne comportant pas d’IHM. navigateur Web.

Bibliothèques et patchs Applications Windows Store Apps


Une bibliothèque est un fichier unique rassemblant plusieurs éléments d’un
projet WINDEV : des fenêtres, des états, etc. Il est possible de générer des WINDEV permet de générer des applications Windows Store Apps. Ces ap-
bibliothèques autonomes pouvant être utilisées par d’autres applications plications peuvent être utilisées en mode tuile ou distribuées via Windows
ainsi que des patchs correctifs pour une application en clientèle évitant Store.
d’avoir à réinstaller l’application complète pour une correction mineure.

Composants externes
Les composants externes sont des briques applicatives permettant de par-
tager une ou plusieurs fonctionnalités spécifiques entre différentes appli-
cations. Un composant externe généré avec WINDEV peut également être
utilisé dans un projet WEBDEV ou WINDEV Mobile.

Webservices SOAP ou REST


A partir d’un projet WINDEV, il est possible de générer un Webservice (éga-
lement appelé service Web XML). Un Webservice expose un ensemble de
fonctions (généralement une ou plusieurs collections de procédures) et les
rend accessibles à travers le Web (ou un réseau privé) en utilisant les proto-
coles standards de communication HTTP, SOAP et REST.
Remarque : Un Webservice doit être déployé sur un Serveur d’Application
WEBDEV pour être utilisable.

82 Partie 2 : Environnement de développement Partie 2 : Environnement de développement 83


Création de l’exécutable en pratique Application Java en pratique
Lorsque votre application est totalement décrite de lancer l’application depuis WINDEV.
(fenêtre, états, ...), il est nécessaire de créer le pro- Lorsque le programme exécutable est créé, il est
gramme exécutable correspondant. possible de déployer l’application chez vos utilisa-
1  Présentation
Le programme exécutable (fichier ".EXE") pourra teurs finaux en créant le programme d’installation.
être directement exécuté : il ne sera pas nécessaire WINDEV permet de générer des applications Java 1.2 Pourquoi développer une application
sans pour autant connaître le langage Java. Tout Java avec WINDEV ?
le développement de l’application se fait en WLan-
Vous possédez une application WINDEV qui fonc-
1  Créer le programme exécutable d’une application WINDEV gage, comme pour toute application créée avec
tionne sous Windows et vous voulez la rendre ac-
WINDEV.
cessible quel que soit le système d’exploitation ?
Pour créer un programme exécutable : • le message d’erreur qui sera affiché si une 1.1 Qu’est-ce qu’une application Java ? Générez une application Java et ainsi les utilisa-
1. Sélectionnez si nécessaire la configuration de erreur de programmation survient. teurs travaillant sous un système MAC OS X par
projet correspondant à l’exécutable à créer : • l’utilisation des mises à jour par Patch. Il suf- Une application JAVA est entièrement compilée exemple pourront également utiliser votre applica-
fira alors de copier le fichier correspondant au en JAVA. Si cette application manipule une base tion.
• Configuration de projet pour un exécutable
Patch dans le répertoire de l’exécutable. de données, cette base doit disposer d’un driver Vous pourrez ainsi partager vos applications ré-
Windows 32 bits
JDBC (MySQL, Oracle,...). Ce driver est spécifique à seau.
• Configuration de projet pour un exécutable • les langues gérées par l’exécutable.
chaque base de données (et peut être trouvé sur le
Windows 64 bits • les fichiers contenus dans la bibliothèque (si site de l’éditeur de la base de données). 1.3 Principe de génération d’une application
• Configuration de projet pour un exécutable elle est utilisée).
L’accès à une base de données HFSQL se fait nati- Java avec WINDEV
Linux • l’intégration des composants utilisés dans le vement (uniquement sous Windows et Linux) via
projet à l’exécutable. Comme indiqué ci-dessus, il n’est pas nécessaire
2. Sous le volet "Projet", cliquez sur "Générer". les fonctions SQL du WLangage. Aucun pilote sup-
de connaître le langage Java pour développer une
3. L’assistant de création de l’exécutable s’ouvre. • l’emplacement des fichiers de données du plémentaire n’est requis.
application Java avec WINDEV. Vous développez
4. Spécifiez : groupware utilisateur (uniquement si votre Une application Java correspond à un fichier ".jar" votre application en WLangage comme toute autre
application gère le groupware utilisateur). et nécessite le runtime Java pour pouvoir être exé-
• les options générales de l’exécutable (nom de application WINDEV et lors de la compilation du
l’exécutable, icône du programme exécutable, • l’emplacement des fichiers de données à uti- cutée. projet, les fenêtres et les fonctions du WLangage
Splash screen ...). liser par l’exécutable. sont automatiquement converties en Java.
Pour compiler (en Java) un projet Java réalisé avec
• le mode de fonctionnement de l’exécutable : • les informations de version. Ces informations
WINDEV, il est nécessaire d’installer sur le poste Remarque : le nombre de fonctions WLangage utili-
seront affichées dans l’onglet "Version" de la
• Multi-instance : Ce programme pourra de développement le J2SDK de Oracle (version sables dans un projet Java est limité dans cette ver-
fenêtre des propriétés de l’exécutable (acces-
être lancé plusieurs fois depuis un même 1.4.2 ou supérieure nécessaire). Une version est sion. Ce nombre de fonctions est amené à croître
sibles depuis l’explorateur Windows). Le nu-
poste : plusieurs instances seront ouvertes disponible sur le CD d’installation de WINDEV. Il est régulièrement.
méro de version peut être automatiquement
en même temps. également possible de télécharger ce programme
incrémenté à chaque création d’exécutable.
• Mono-instance : Ce programme pourra sur le site de Oracle.
• le mode d’utilisation du framework WINDEV
être lancé une seule fois depuis un même (utilisation du framework propre à l’applica-
poste : une seule instance sera ouverte en
même temps. Si le développeur tente de
tion ou du framework commun à toutes les 2  Fonctionnalités pour un projet Java
applications WINDEV installées sur le poste).
lancer une autre instance du programme,
l’instance déjà en cours sera activée. • le manifeste à utiliser (pour une exécution
sous Windows Vista et supérieur unique- 2.1 Création d’un projet Java Par défaut, un projet WINDEV pour Java cor-
• le mode d’utilisation de la bibliothèque. La ment). respond à une configuration spécifique du
bibliothèque est optionnelle. Elle peut être La création d’un projet Java est effectuée de la
• s’il est nécessaire de réaliser une sauvegarde projet. Il est possible de modifier à tout mo-
créée dans un fichier séparé (extension même façon que tout autre projet WINDEV :
du projet. ment le type de génération du projet. Il suffit
".WDL") ou intégrée dans l’exécutable. 1. Cliquez sur parmi les boutons d’accès de créer une nouvelle configuration de projet.
L’intégration de la bibliothèque dans le pro- 5. Validez la description de l’exécutable. L’exé- rapide de WINDEV. La fenêtre de création d’un Dès que le projet est configuré comme un projet
gramme exécutable a l’avantage de n’avoir cutable est automatiquement généré selon les nouvel élément s’affiche : cliquez sur "Projet". Java, tous les outils disponibles avec WINDEV sont
qu’un seul fichier à installer ou à mettre à informations fournies. Il est possible de lancer 2. L’assistant de création de projet se lance. automatiquement paramétrés pour le projet Java :
jour, mais cela augmente la taille du fichier directement l’exécutable après sa création.
3. Dans un des premiers écrans de l’assistant, • Le RAD fenêtre ou le RAD application com-
".EXE" créé. vous pouvez choisir le type de génération de votre plète est spécifique à une base de données
projet. Il suffit de sélectionner "Java" et de suivre manipulée par une application Java.
l’assistant.

84 Partie 2 : Environnement de développement Partie 2 : Environnement de développement 85


• Le compilateur indique si votre projet contient apparaissent en violet dans le volet "Erreurs de
Centre de Suivi
Contenu

des fonctions ou champs non utilisables en


Java. Un message apparaît en violet dans le
volet "Erreurs de compilation".
compilation".
Pour plus de détails sur les éléments WINDEV
non disponibles dans une application Java,
de Projets
• La création de l’archive permet de générer un consultez l’aide en ligne.
fichier ".jar" dans le répertoire EXE du projet. Remarque : comme indiqué dans la partie "Qu’est- Pour optimiser la gestion de vos projets de développement, WINDEV vous propose d’utiliser le
• Le module d’installation manipule unique- ce qu’une application Java ?", il est nécessaire
d’installer le J2SDK de Sun sur le poste de déve- Centre de Suivi de Projets. Le Centre de Suivi de Projets permet de :
ment les fichiers nécessaires au déploiement
de l’application Java. loppement pour compiler votre projet en Java. • Gérer les exigences d’un projet,
Remarque : il est conseillé de créer un nouveau 2.5 Créer une archive Java • Gérer le suivi d’un projet (planning des tâches à réaliser),
projet WINDEV pour développer une application • Gérer les bugs et les évolutions signalés sur un projet.
Java plutôt que de transformer une application WINDEV permet de :
WINDEV en Java. • créer et compiler sous un compilateur Java les Le Centre de Suivi de Projets utilise une base de données (HFSQL Classic ou Client/Serveur) : la
différents fichiers Java nécessaires à l’applica- base de données des Centres de Contrôle. Cette base de données est partagée par de nombreux
2.2 RAD JAVA tion outils disponibles dans WINDEV :
Comme sur tout projet associé à une analyse, vous • créer une archive Java directement exécutable :
- Tâches
pouvez utiliser le RAD pour générer les fenêtres de • une application Java classique, - Exigences
votre application. • une applet Java, - Qualité

Le RAD prend en compte toutes les spécificités de • une application Java Web Start. Centre de
la génération Java (champs, traitements, fonctions Suivi de Projets
utilisables dans une application WINDEV générée • utiliser les fenêtres du projet depuis vos propres
en Java). fichiers sources Java. Dans ce cas, il est pos-
sible de générer le projet Eclipse correspondant.
Quel que soit le type de fenêtre à générer, le pre-
mier écran de l’assistant permet de spécifier le Pour créer l’archive Java, il suffit de lancer la créa-
type de connexion à la base de données : tion de l’exécutable : sous le volet "Projet", dans
• HFSQL (sous Windows et Linux) : l’assistant clas- le groupe "Génération", cliquez sur "Générer". Un
sique de création de fenêtres est proposé. assistant vous guide alors dans la création de l’ar-
• JDBC : vous pouvez alors spécifier les para- chive Java.
mètres de connexion à la base de données utili- 2.6 Déployer une application Java
sant le driver JDBC.
Comme pour toute application, WINDEV permet Fenêtre de login
2.3 Test d’un projet Java sous l’éditeur de créer un programme d’installation pour une Base de données des
de WINDEV

application Java. Cette procédure d’installation Centres de Contrôle


Lors du test d’un projet Java ( ), le projet est
compilé et lancé sous Windows. Le projet n’est pas n’est actuellement disponible que pour Windows.
compilé en Java. Le programme d’installation sera un exécutable et
permettra d’installer les fichiers nécessaires ainsi
Pour exécuter l’application Java, il est nécessaire que le runtime Java (JRE). Pour les autres plate-
de lancer le fichier ".Jar" présent dans le répertoire formes, il est actuellement nécessaire de déployer
EXE de votre projet. vos fichiers manuellement. Messagerie Catalogue d’images
Règles Métier Tests automatiques
Pour lancer l’assistant de création d’installation, autonome (WDBAL) (images personnelles)
2.4 Compiler un projet Java sous WINDEV
sous le volet "Projet", dans le groupe "Génération",
La compilation d’un projet Java permet de : cliquez sur "Procédure d’installation".
• connaître les erreurs de programmation pré- Pour plus de détails, consultez l’aide en ligne (mot-
sentes dans le code WLangage clé : "Java").
• visualiser les champs, traitements, fonctions
WLangage non disponibles en Java. Ces erreurs
Remarque : Lors de l’installation de WINDEV , le programme d’installation propose :
• soit de créer la base des Centres de Contrôle (base de données du Centre de Suivi de Projets).
Cette base sera automatiquement créée au format HFSQL Classic dans le répertoire spécifié.
• soit de partager une base de données des Centres de Contrôle existante.

86 Partie 2 : Environnement de développement Partie 2 : Environnement de développement 87


Gestion des
Contenu
Gestion des
Contenu

exigences tâches
Le Centre de Suivi de Projets permet à un chef de projet de gérer un projet de développement. Le Centre de Suivi de Projets permet aux différents intervenants d’un projet de gérer leur planning
Il suffit pour cela de : des tâches. Ces tâches peuvent être liées à des exigences et correspondre à plusieurs projets.
• définir les différents intervenants du projet.
• définir les exigences (avec les différents éléments qui leur sont associés).
Chaque développeur effectue les différentes tâches qui lui sont affectées.
Le chef de projet peut à tout moment suivre l’état d’avancement du projet.

Chef de Projet Développeur

1 Création des exigences


composées de : 2 Réalisations des
exigences :

Centre de
Tâches Suivi de Projets

Après avoir listé l’ensemble des tâches d’un projet, le Centre de Suivi de Projets s’occupe de tout.
La saisie du temps passé est quasi automatique, elle ne demande aucune action spécifique et ne
génère aucune contrainte particulière.
Incidents

Lors de l’ouverture du projet concerné, le Centre de Suivi de Projets demande ou indique la tâche
en cours. Dès qu’une tâche est réalisée, il suffit d’indiquer que cette tâche est terminée et de
spécifier la nouvelle tâche.

Volet des
Règles Métier
Règles Métier Une tâche peut être reliée à un élément du projet (fenêtre, état, ...). Chaque fois que l’élément
concerné est ouvert, le temps passé sur cet élément est décompté et mémorisé dans le Centre de
Suivi de Projets. Inversement, depuis la liste des tâches, il est possible d’ouvrir automatiquement

3
l’élément correspondant à la tâche que vous voulez réaliser.
Suivi des exigences (Centre de Suivi de Projets) :
Chaque développeur peut également visualiser directement sa liste de tâches dans le volet
"Centre de Suivi de Projets" présent sous l’éditeur.

Gestion des
exigences

88 Partie 2 : Environnement de développement Partie 2 : Environnement de développement 89


Gestion des suggestions
Contenu
Gestion des
Contenu

et des incidents règles métier


Les Centres de Contrôle permettent également de gérer les retours client sur vos applications. WINDEV permet de gérer des règles métier. Une règle métier permet de définir un mode opératoire
Si votre application contient un menu d’aide automatique (menu ’?’ avec l’option "Envoyer des précis ou de préciser un traitement particulier. Par exemple : le calcul d’un taux de TVA avec ses
suggestions ..."), les utilisateurs de votre application peuvent simplement vous envoyer des sug- particularités, les règles de changement de statut d’un client, la formule de calcul d’un montant
gestions, des incidents ou des règles métier. de frais de port, une commission commerciale, un taux de remise, un coefficient de vétusté, ...
Une règle métier peut être simple ou élaborée.
Les règles métier peuvent provenir :
• du cahier des charges (correspondant aux exigences).
Utilisateur final
• de suggestions faites par les utilisateurs de l’application.

Utilisation du composant
Feedback (mode connecté
Définition des exigences
ou par emails)

Règles Métier Suggestions ou bugs

Spool de retours client Définition des


Règles Métier

Suggestions de Règles
Bugs liés Tâches liées Application des Règles Métier par les utilisateurs
au projet de au projet de Métier dans le projet (menu “?” et composant
l’application l’application
Feedback)

Utilisation de l’application
Volet de gestion Centre de Suivi
des Règles Métier de Projets

Pendant le développement, les règles métier associées au projet sont affichées directement dans
le volet "Règles métier" de l’environnement de développement. Ce volet affiche le nombre d’élé-
ments du projet auxquels les règles s’appliquent et le pourcentage de règles actuellement réalisé.
Développeurs

Remarque : en cas d’erreur fatale pendant l’exécution de l’application, un rapport d’erreur peut
être automatiquement généré et envoyé au développeur en utilisant le composant "Feedback"
livré en standard avec WINDEV.

90 Partie 2 : Environnement de développement Partie 2 : Environnement de développement 91


PARTIE 3

Bases de
données

92 Partie 2 : Environnement de développement


Analyse : Structure de la
Contenu

base de données
Lorsqu’un projet WINDEV, WEBDEV ou WINDEV Mobile utilise des fichiers de données, ce projet
doit être associé à une analyse. Une analyse permet de décrire les structures de données (fichiers
de données, rubriques, ...) utilisées dans votre projet.
L’éditeur d’analyses permet de créer très simplement une analyse.

Fournisseur Produit Commande Client


Nom, Prénom, ... Description, Prix, ... Date, ... Nom, Prénom, ...

Système étudié

Analyse correspondante

L’analyse d’un projet WINDEV, WEBDEV ou WINDEV Mobile correspond au MLD (Modèle Logique
des données). Toute la structure et l’organisation des données sont décrites : les données sont
regroupées par fichier. Chaque fichier contient plusieurs données appelées rubrique.

Dans l’analyse, il est possible de lier la description d’un fichier de données à un type de fichier
(HFSQL, HFSQL Client/Serveur, SQLite, ...).

94 Partie 3 : Bases de données Partie 3 : Bases de données 95


L’analyse en pratique • si le fichier de données possède une rubrique
de type "Identifiant automatique". La valeur
4. Sélectionnez les tables ou les fichiers de don-
nées dont la description doit être importée et
de cette rubrique est unique pour chaque validez.
enregistrement et est automatiquement cal- 5. Le fichier de données importé est automatique-
culée par WINDEV. ment inséré dans l’analyse en cours.
1  Présentation
• le type de la base de données associée au
fichier. Selon le type choisi, ce fichier de don- Solution 2 : Depuis l’explorateur de Windows
Lorsqu’un projet utilise des fichiers de données, (c’est-à-dire un Modèle Logique des Données nées sera manipulé par le moteur HFSQL, par "Dropez" directement la description du fichier de
ce projet doit être associé à une analyse. Une ana- (MLD)). un pilote OLE DB ou par un des accès natifs données de l’explorateur Windows vers l’éditeur
lyse permet de décrire les structures de données • 2ème méthode : Création du Modèle Concep- de WINDEV (SQL Server, Oracle, ...). d’analyses.
(fichiers, rubriques, ...) utilisées dans votre projet. tuel des Données (MCD), puis création automa- Par exemple :
4. Le fichier de données créé devient le fichier en
Pour décrire une analyse, deux méthodes sont pos- tique de l’analyse à partir du MCD. Pour plus de cours. La fenêtre de description des rubriques du
sibles : détails, consultez l’aide en ligne. fichier s’ouvre automatiquement. Vous pouvez
• 1ère méthode : Création directe de l’analyse Ce chapitre présente la première méthode. décrire les rubriques du fichier de données.
Pour importer une description de fichier de don-
nées prédéfinie :
2  Création d’un MLD (Modèle Logique des Données) 1. Sous le volet "Analyse", dans le groupe "Créa-
tion", cliquez sur "Nouveau fichier". L’assistant de
Dans WINDEV, les termes "MLD" et "Analyse" sont 2.2 Ajouter un fichier de données dans une création des fichiers de données se lance.
utilisés indifféremment pour définir la structure de analyse 2. Sélectionnez l’option "Sélectionner une descrip-
la base de données associée à un projet. tion parmi des fichiers de données prédéfinis".
L’analyse permet de décrire la structure des fi-
2.1 Créer une analyse (ou MLD) chiers de données utilisés par le projet. Un fichier 3. Choisissez le fichier de données prédéfini à
de données présent dans l’analyse peut être : créer (il est possible d’en sélectionner plusieurs). Ici, une base de données Oracle, sur le serveur. Il
Pour créer un MLD : Ce fichier de données sera importé dans l’analyse suffit de faire glisser le nom de la base pour en
• Un nouveau fichier de données.
en cours. Ce fichier de données pourra être modi- transférer la description sous l’éditeur d’analyses.
1. Cliquez sur parmi les boutons d’accès • Un fichier de données prédéfini, livré avec
rapide. La fenêtre de création d’un nouvel élé- WINDEV. fié par la suite.
ment s’affiche : cliquez sur "Données" puis sur • Un fichier de données importé depuis une base 4. Sélectionnez les rubriques du fichier de don-
"Analyse". L’assistant de création de l’analyse est existante (utilisant par exemple un format spé- nées à conserver. Ces rubriques pourront être
lancé. cifique). modifiées par la suite.
2. Spécifiez : 5. Le fichier de données importé est automatique-
Les paragraphes suivants détaillent comment ment inséré dans l’analyse en cours.
• le nom et le répertoire de l’analyse. L’analyse créer un fichier de données.
correspond à un fichier ".WDA". Par défaut, ce Remarque : Pour modifier un fichier de données ou
fichier sera créé dans le répertoire de l’ana- Pour créer un nouveau fichier de données :
les rubriques d’un fichier de données :
lyse du projet (répertoire <Nom du projet>. 1. Sous le volet "Analyse", dans le groupe "Créa-
tion", cliquez sur "Nouveau fichier". L’assistant de 1. Sélectionnez le fichier de données.
ANA). Ce répertoire doit être accessible en
lecture et en écriture. création des fichiers de données se lance. 2. Dans le menu contextuel, sélectionnez l’option
2. Sélectionnez l’option "Créer une nouvelle des- "Description du fichier de données" ou l’option
• le libellé de l’analyse décrivant succincte-
cription d’un fichier de données". "Description des rubriques".
ment le sujet de l’analyse.
• si l’analyse doit être associée au projet en 3. Spécifiez : Pour importer une description de fichier existante,
cours. • le nom du fichier de données. Ce nom est le deux solutions sont possibles :
• le type de la base de données manipulée par nom logique du fichier de données. Il sera uti- Solution 1 : Depuis l’éditeur d’analyses
le projet. lisé pour manipuler le fichier de données.
1. Sous le volet "Analyse", dans le groupe "Créa-
3. La création du premier fichier de données est • le libellé du fichier de données résumant suc- tion", cliquez sur "Nouveau fichier". L’assistant de
automatiquement proposée. cinctement le sujet du fichier de données. création des fichiers de données se lance.
4. Créez l’ensemble des éléments (fichiers de don- • la représentation d’un enregistrement dans 2. Sélectionnez l’option "Utiliser des fichiers de
nées, rubriques et liaisons) de votre analyse. le fichier de données. Cette représentation données d’une base existante", puis sélectionnez
permet d’améliorer la lisibilité des questions le type de la base de données.
posées lors de la description des liaisons.
Cette option doit être précédée d’un article 3. Spécifiez la base de données source contenant
indéfini (UN ou UNE). les descriptions à importer et le type de cette
base de données source. Selon le type choisi, ren-
seignez les informations demandées.

96 Partie 3 : Bases de données Partie 3 : Bases de données 97


2.3 Créer une rubrique Pour créer une liaison : 3.2 Les cardinalités • chaque "Personne" a au moins un "Club" : Oui/
1. Sous le volet "Analyse", dans le groupe "Créa- Non ?
Pour créer une rubrique : Les cardinalités permettent de dénombrer les liens
tion", cliquez sur "Nouvelle liaison". Le curseur de entre les fichiers de données. • chaque "Personne" peut avoir plusieurs "Club" :
1. Double-cliquez sur le fichier de données dans la souris se transforme en crayon. Oui/Non ?
lequel la rubrique doit être créée. La fenêtre de La cardinalité est définie en fonction des réponses
description des rubriques du fichier de données 2. Sélectionnez les deux fichiers de données à aux deux questions suivantes : Exemple de cardinalités :
s’ouvre. relier. La fenêtre de description de liaison s’ouvre
automatiquement. 1. Pour chaque enregistrement du fichier de Cet exemple présente deux cardinalités diffé-
2. Cliquez sur la première ligne vide du tableau données, à combien d’enregistrements de l’autre rentes :
des rubriques. 3. Pour définir les cardinalités entre les deux fichier de données au minimum cet enregistre-
fichiers de données : ment est-il relié ?
3. Spécifiez le nom, le libellé et le type de la
rubrique directement dans le tableau. • soit sélectionnez directement les cardinalités La réponse fournit la première partie de la cardi-
parmi celles proposées (0,1 ; 1,1 ; 0,N ; 1,N). nalité (cardinalité minimale) :
4. Indiquez dans la partie droite de l’écran les dé-
tails concernant la nouvelle rubrique (type, taille, • soit répondez aux questions posées. Les • si la réponse est "aucun", la cardinalité est du
valeur par défaut, sens de parcours, ...). cardinalités seront mises à jour automatique- type 0,X. • Cardinalité 0,1 : Une personne peut être inscrite
ment. • si la réponse est "un seul", la cardinalité est à un seul club de sport. Cette personne n’est
5. Indiquez dans la partie basse de l’écran les
détails concernant les informations partagées. 4. Pour décrire des cardinalités avancées, cochez du type 1,X. pas obligée d’être inscrite à un club de sport.
l’option "Afficher les cardinalités avancées" et 2. Pour chaque enregistrement du fichier de • Cardinalité 0,N : Un club peut avoir aucune ou
6. Validez la description de la rubrique. répondez aux questions posées. données, à combien d’enregistrements de l’autre plusieurs personnes inscrites.
Remarque : il est également possible de créer 5. Saisissez le libellé de la liaison en décrivant fichier de données au maximum cet enregistre-
une rubrique à partir des méta-types proposés par succinctement le sujet de la liaison. ment est-il relié ? 3.3 Les cardinalités avancées
WINDEV. Pour cela, il suffit de cliquer sur le bouton 6. Spécifiez les clés à relier. La réponse fournit la deuxième partie de la cardi- Il est possible de définir avec plus de précision les
"+?M" à droite du tableau. La liste des méta-types 7. Précisez les règles d’intégrité. Ces règles per- nalité (cardinalité maximale) : cardinalités. On parle alors de cardinalités avan-
disponibles apparaît. mettent d’assurer la cohérence des données lors • si la réponse est "un seul", la cardinalité est cées.
2.4 Créer une liaison de la modification ou lors de la suppression d’une du type X,1. Ces cardinalités permettent de préciser exacte-
des clés de la relation. • si la réponse est "plusieurs", la cardinalité est ment la cardinalité minimale et la cardinalité maxi-
Il est possible de créer différents types de liaison 8. Validez. La liaison est automatiquement créée. du type X,N. male.
entre les fichiers. Pour plus de détails sur les liai-
La réponse à ces deux questions définit la cardina- Pour définir les cardinalités avancées, cochez
sons, consultez le paragraphe "Caractéristiques
lité qui peut être de type : 0,1 ; 0,N ; 1,1 ; 1,N l’option "Affichez les cardinalités avancées" dans la
des liaisons définies dans une analyse", page
La description des cardinalités est fondamentale : description de la liaison.
98.
elle est la base du respect de l’intégrité référen- Exemple de cardinalités avancées :
tielle de la base de données.
Cet exemple présente deux cardinalités diffé-
3  Caractéristiques des liaisons définies dans une analyse Pour plus de clarté, ces deux questions peuvent rentes :
être décomposées en quatre questions. Par
exemple, pour décrire une liaison entre le fichier
3.1 Fichier propriétaire et fichier membre Par exemple, la clé du fichier Fournisseur est co- Club et le fichier Personne :
piée dans chaque enregistrement du fichier Pro-
Dans le cas de liaison entre deux fichiers de don-
duit. Plusieurs enregistrements du fichier Produit
nées, il existe un fichier propriétaire et un fichier
peuvent avoir la même clé du fichier Fournisseur :
membre : • Cardinalité 0,1 : Une personne peut être inscrite
• le fichier propriétaire est Fournisseur,
• le fichier propriétaire est propriétaire de la clé. à un seul club de sport. Cette personne n’est
• le fichier membre est Produit. pas obligée d’être inscrite à un club de sport.
• le fichier membre est un membre des fichiers de
l’analyse contenant une copie de la clé. La représentation d’une telle liaison est la sui- • Cardinalité 0,10 : Un club peut avoir aucune ou
vante : jusqu’à 10 personnes inscrites.
Pour gérer la liaison entre deux fichiers de don-
nées, la clé du fichier propriétaire est copiée dans
le fichier membre.

• chaque "Club" a au moins un "Personne" : Oui/


Non ?
• chaque "Club" peut avoir plusieurs "Personne" :
Oui/Non ?

98 Partie 3 : Bases de données Partie 3 : Bases de données 99


3.4 L’intégrité référentielle Le parallélisme des enregistrements dans le fichier Liaison partagée
est respecté si les opérations suivantes sont exécu- Dans le cas d’une liaison partagée, un même
L’intégrité référentielle d’une base de données cor- tées simultanément sur les deux fichiers :
respond au respect des contraintes impliquées par enregistrement dans un fichier de données (Four-
les liaisons entre les fichiers de données. • création d’un enregistrement nisseur) peut être partagé par plusieurs enregistre-
• suppression d’un enregistrement ments dans un autre fichier de données (Produit).
L’intégrité référentielle consiste à vérifier par Liaison partagée de cardinalité 1,N - 1,1
exemple que : • réindexation avec compactage Pour gérer une liaison partagée, la clé du fichier
Fournisseur est copiée dans le fichier Produit. Elle Avec ce type de liaison :
• si un enregistrement est supprimé dans le pro- Liaison facultative
devient clé multiple pour accélérer la vérification de • chaque propriétaire a au moins un membre
priétaire, les enregistrements correspondants Dans le cas d’une liaison facultative : l’intégrité.
dans les membres sont également supprimés, (chaque fournisseur a au moins un produit).
• Chaque enregistrement d’un fichier de données Le fichier propriétaire est Fournisseur, le fichier • chaque membre a un seul propriétaire (chaque
• si un enregistrement est ajouté dans un (Catégorie) n’a aucun enregistrement ou un seul membre est Produit.
membre, il existe un enregistrement correspon- produit a un seul fournisseur).
enregistrement associé dans un autre fichier de
dant dans le propriétaire, Selon la cardinalité, il est possible de distinguer
données (Groupe).
quatre types de liaisons partagées :
• si un enregistrement est modifié dans un pro- • Chaque enregistrement de l’autre fichier de
priétaire, la clé unique n’est pas modifiée, ... • Liaison partagée de cardinalité 0,n - 0,1
données (Groupe) n’a aucun enregistrement ou
La vérification de l’intégrité référentielle dépend de un seul enregistrement associé dans le premier • Liaison partagée de cardinalité 0,n - 1,1
la nature de la liaison entre les fichiers de données. fichier de données (Catégorie). • Liaison partagée de cardinalité 1,n - 0,1
Liaison complexe
Pour plus de détails sur le contrôle de l’intégrité • Liaison partagée de cardinalité 1,n - 1,1
Dans le cas d’une liaison "complexe", il est néces-
référentielle, consultez l’aide en ligne. Liaison partagée de cardinalité 0,N - 0,1 saire de gérer un fichier de liaison, appelé fichier
3.5 Les différents types de liaisons de relation.
Le fichier de relation sera automatiquement créé. Il
Les liaisons entre fichiers de données peuvent être Une liaison facultative est réalisée en copiant contiendra une clé unique composée des deux clés
de plusieurs types : l’identifiant de chacun des fichiers dans l’autre fi- des fichiers de données reliés.
• parallèle chier.
Avec ce type de liaison : Le fichier de relation peut également contenir des
• facultative Liaison de complément informations spécifiques à la liaison.
• un propriétaire peut ne pas avoir de membre (un
• de complément Dans le cas d’une liaison de complément : fournisseur n’a pas obligatoirement de produit). Une liaison complexe se décompose alors en deux
• partagée • Chaque enregistrement d’un fichier de données • un membre peut ne pas avoir de propriétaire (un liaisons de type partagé.
• complexe (Produit) n’a aucun enregistrement ou un seul produit n’a pas obligatoirement de fournisseur). Exemple de liaison complexe
enregistrement associé dans un autre fichier de
Liaison parallèle Liaison partagée de cardinalité 0,N - 1,1 Une commande (fichier Commande) peut contenir
données (Détail).
Dans le cas d’une liaison parallèle, chaque enregis- un ou plusieurs produits. Un produit (fichier Produit)
• Chaque enregistrement de l’autre fichier de
trement d’un fichier de données (Produit) est relié peut être utilisé dans plusieurs commandes.
données (Détail) a nécessairement un enre-
à un enregistrement dans un autre fichier de don- Dans ce cas, il faut avoir un fichier de liaison (fi-
gistrement associé dans le premier fichier de
nées (Information), et réciproquement. chier LigneCommande).
données (Produit).
Avec ce type de liaison : Le fichier LigneCommande contient :
• un propriétaire peut ne pas avoir de membre (un • une clé unique composée des clés de Produit et
fournisseur peut avoir aucun produit). de Commande.
• chaque membre a un seul propriétaire (chaque • le nombre de produits commandés.
Pour gérer une liaison parallèle, l’identifiant du fi- Les liaisons de complément sont assez fréquentes.
Elles sont notamment utilisées lorsqu’un enregis- produit a un seul fournisseur). Les liaisons entre les fichiers de données sont les
chier Produit est copié dans le fichier Information. suivantes :
Cet identifiant est également clé unique dans le fi- trement peut avoir des compléments d’informa- Remarque : Ce type de liaison est fréquent. WIN-
chier Information. tions optionnels. DEV permet de créer automatiquement les fenêtres
Le fichier propriétaire est alors Produit et le fichier Pour gérer une liaison de complément, la clé du permettant de gérer les fichiers de données liés par
membre est Information. fichier Produit est copiée dans le fichier Détail. Pour une liaison de type 0,N - 1,1.
Remarque : Ce type de liaison est rare car les deux assurer la cardinalité maximale de 1, elle reste clé Liaison partagée de cardinalité 1,N - 0,1
fichiers peuvent être regroupés en un seul. unique. L’unicité de cette clé interdit l’insertion de
plus d’un enregistrement dans Détail pour un enre- Avec ce type de liaison :
gistrement de Produit. • chaque propriétaire a au moins un membre (un
Le fichier propriétaire est Produit, le fichier membre fournisseur a au moins un produit).
est Détail. • un membre peut ne pas avoir de propriétaire (un
produit peut avoir aucun fournisseur).

100 Partie 3 : Bases de données Partie 3 : Bases de données 101


4  Manipulations possibles sur une analyse Entre deux versions figurent des "petits rectangles" Attention : Les fichiers de données correspondant
qui signifient : à une analyse de numéro de version supérieur à la
• un rectangle : il y a eu peu de modifications version restaurée ne pourront plus être ouverts. Il
WINDEV permet de réaliser les manipulations sui- WINDEV permet de réaliser les manipulations sui- faut alors également restaurer des fichiers de don-
vantes sur une analyse : vantes sur une rubrique d’un fichier de données effectuées entre les deux versions.
• plusieurs rectangles : il y a eu plusieurs modifi- nées correspondant à la version de l’analyse res-
• Dupliquer/Copier un MLD : La duplication d’un présent dans l’éditeur d’analyses : taurée ou supprimer les fichiers de données exis-
MLD permet de disposer de deux MLD iden- • Dupliquer/Copier une rubrique. cations effectuées entre les deux versions.
tants pour qu’ils soient recréés.
tiques de nom différent. • Supprimer une rubrique. Pour visualiser le détail des modifications effec-
• Supprimer un MLD. • Renommer une rubrique. tuées entre deux versions : Double-cliquez sur la 6.2 Annulation de la dernière génération
• Renommer un MLD. ligne contenant les "petits rectangles" ou cliquez L’annulation de la dernière génération de l’analyse
Pour plus de détails, consultez l’aide en ligne. sur le bouton [Modifications].
• Associer un MLD à un projet. permet de restaurer l’analyse dans son état avant
• Agrandir ou réduire l’affichage d’un MLD sous la dernière génération. Les modifications effec-
l’éditeur. Les options disponibles dans le gestionnaire de tuées depuis ne sont pas appliquées.
• Déplacer l’affichage du MLD sous l’éditeur. versions sont :
6.3 Remettre à 1 le numéro de la version
• Restauration d’une analyse.
• Annulation de la dernière génération. Il est possible de remettre le numéro de génération
WINDEV permet de réaliser les manipulations sui- de l’analyse à "1" : sous le volet "Analyse", dans le
vantes sur un fichier de données présent dans • Remettre à 1 le numéro de version.
groupe "Analyse", déroulez "Génération" et sélec-
l’éditeur d’analyses : tionnez l’option "Remettre à 1 la version de l’ana-
6.1 Restauration d’une analyse
• Dupliquer/Copier un fichier de données. lyse".
• Supprimer un fichier de données. Pour restaurer une analyse à partir du gestionnaire
Dans ce cas le numéro de version de l’analyse est
de versions :
• Renommer un fichier de données. remis à un. Aucune action spécifique n’est réalisée
1. Sélectionnez la version à restaurer. sur les fichiers de données.
2. Il est possible de :
5  Génération de l’analyse (MLD) • soit restaurer la version dans le répertoire
spécifié. Une analyse indépendante est créée
La génération de l’analyse intervient avant la phase Pour lancer la génération de l’analyse, sous le volet correspondant à la version choisie. Cette
de programmation et après la phase de description "Analyse", dans le groupe "Analyse", cliquez sur option est sélectionnée par défaut.
des fichiers de données. Cette génération permet "Génération". • soit écraser l’analyse en cours.
de : La génération comporte trois étapes : 3. Validez. La restauration est effectuée.
• valider les modifications effectuées sur l’analyse • Vérification des modifications effectuées et
(MLD). génération des fichiers de la description de
• créer les modules nécessaires à la programma- l’analyse.
tion. • Modification automatique des fichiers de don-
• mettre à jour automatiquement les fichiers de nées accessibles (fichiers présents dans le
données si nécessaire. répertoire "EXE" du projet).
Tant que l’analyse (le MLD) n’a pas été générée, la • Synchronisation du projet.
description de l’analyse (les fichiers de données)
ne pourra pas être utilisée dans le projet.

6  Gestion des versions de l’analyse

WINDEV permet de gérer les différentes versions Remarque : lorsqu’une analyse est endommagée,
de l’analyse : il est possible de sélectionner directement l’ana-
1. Sous le volet "Analyse", dans le groupe "Ana- lyse endommagée pour restaurer par exemple une
lyse", déroulez "Génération". des versions précédentes.
2. Sélectionnez l’option "Gestion des versions". Toutes les versions de l’analyse sont visualisées
3. Dans l’assistant, indiquez si vous voulez tra- sous forme d’un graphique. Le carré jaune indique
vailler sur l’analyse en cours ou sur une analyse le numéro de version de l’analyse, le libellé à droite
spécifique. rappelle la date de la génération.

102 Partie 3 : Bases de données Partie 3 : Bases de données 103


Les différents types de
Contenu

fichiers accessibles
WEBDEV, WINDEV et WINDEV Mobile proposent un accès simple à la majorité des bases de don-
nées du marché.

104 Partie 3 : Bases de données Partie 3 : Bases de données 105


HFSQL
Contenu
HFSQL Client /
Contenu

Classic Serveur
HFSQL Classic est un puissant système de gestion de bases de données relationnelles (SGBD/R) HFSQL Client/Serveur est un puissant système de gestion de bases de données relationnelles
utilisable en monoposte ou en réseau local. HFSQL Classic ne requiert pas l’installation d’un ser- (SGBD/R) en mode Client/Serveur.
veur de bases de données.
Les caractéristiques de HFSQL Classic sont les suivantes : Les caractéristiques de HFSQL Client/Serveur sont les suivantes :
• Une application HFSQL Classic peut être exécutée sur différents postes utilisateurs répartis en • Une application HFSQL Client/Serveur peut être exécutée sur différents postes utilisateur
réseau local. (appelés machines clientes) qui communiquent à travers le réseau avec le serveur de base de
• Les fichiers de données sont présents dans un répertoire accessible par les postes utilisateurs données.
(par exemple, un répertoire partagé sur le réseau). Chaque poste utilisateur accède physique- • Les fichiers de données sont présents sur un poste serveur. Seul le serveur accède physique-
ment aux fichiers de données. ment aux fichiers de données.
• Les traitements (requête, lecture/ajout dans un fichier de données, ...) sont réalisés sur • L’ensemble des traitements (requête, lecture/ajout dans un fichier de données, ...) est réalisé
chaque poste utilisateur. sur le serveur.

Utilisateur 1 Poste Client 1

Application WINDEV Application WINDEV

Poste Client 2 Serveur HFSQL


Utilisateur 2 Windows ou Linux
Bases de données
HFSQL Classic réseau Serveur Manta

Application WINDEV Application WINDEV

(répertoire partagé) Bases de données


Utilisateur n Poste Client n HFSQL
Client/Serveur

Application WINDEV
Application WINDEV

106 Partie 3 : Bases de données Partie 3 : Bases de données 107


Cluster HFSQL
Contenu
HFSQL : les fichiers créés
Contenu

Client/Serveur physiquement
HFSQL Cluster est une extension du modèle de base de données de HFSQL Client/Serveur. Dans L’éditeur d’analyses permet de décrire la structure des fichiers de données.
un cluster de bases de données, les différents serveurs HFSQL contiennent tous une copie des Selon les informations saisies sous l’éditeur d’analyses, différents fichiers sont créés physique-
bases de données et sont synchronisés en temps réel. ment.
• La charge en lecture peut être équilibrée entre différents serveurs.
• La configuration physique peut évoluer sans interruption pour les postes clients.
• En cas de crash d’un des serveurs, le client est automatiquement redirigé vers un serveur opé- Caractéristiques Fichiers créés
rationnel. du fichier (Analyse) physiquement

Fichier HFSQL Classic ou Fichier “.fic”


Client/Serveur Fichier de données

Poste Client Une ou plusieurs clés de


Fichier ”.ndx”
parcours (unique ou avec
Fichier d’index
doublons)
Application WINDEV
Fichier “.ftx”
Un ou plusieurs index full-text
Fichier d’index full-text

Accès aux données Une ou plusieurs rubriques Fichier “.mmo”


“Mémo” Fichier mémo

Cluster

Remarque : Ce schéma présente uniquement les principaux fichiers créés. D’autres fichiers spéci-
fiques peuvent être créés si le fichier de données utilise la journalisation, les transactions ou en-
core la réplication.
Poste serveur HFSQL Poste serveur HFSQL
Client/Serveur Client/Serveur

Report des modifications

Poste serveur HFSQL Poste serveur HFSQL


Client/Serveur Client/Serveur

108 Partie 3 : Bases de données Partie 3 : Bases de données 109


Associer les champs
Contenu

Liaison champ / variable


et les données
Une fenêtre peut afficher des informations provenant :
• d’une base de données : les champs sont directement liés aux rubriques des fichiers de don-
nées ou des requêtes disponibles dans la base de données.
• de variables présentes dans le code de l’application (variables globales à la fenêtre ou au pro-
jet ou paramètres passés à la fenêtre). EcranVersFichier Variable liée FichierVersEcran

Champ simple
Pour afficher ces informations dans une fenêtre, il est nécessaire de lier les champs de cette Liaison avec :
- Variable simple
fenêtre avec : - Instance d’un membre de
classe ou de structure
• les différentes rubriques de la base de données. - Propriété d’un objet dynamique

• les différentes variables WLangage disponibles. Liste, Table, Combo, ...


Liaison avec :
- Tableau de classes ou de struc-
tures
La méthode d’affichage et de récupération des informations est très simple : - Types avancés (par exemple
xlsLigne, xlsColonne)
• La liaison d’un champ avec une rubrique ou une variable est définie sous l’éditeur de fenêtres,
lors de la description du champ (onglet "Liaison"). .
• La fonction EcranVersFichier permet de mettre à jour soit l’enregistrement, soit la variable avec
les données présentes à l’écran.
• La fonction FichierVersEcran permet de mettre à jour les données affichées à l’écran avec soit
les informations enregistrées dans le fichier de données, soit les informations enregistrées
dans la variable.

Liaison champ / rubrique

EcranVersFichier FichierVersEcran

Base de données

110 Partie 3 : Bases de données Partie 3 : Bases de données 111


Les
Contenu
Les requêtes
Contenu

requêtes intégrées
Une requête sert à interroger une base de données pour visualiser, insérer, modifier ou supprimer Les champs d’une fenêtre peuvent être liés à un fichier de données ou à une requête existante, ...
des données. La structure de la requête définit les données manipulées. Il est également possible de lier ces champs à une requête créée lors de la conception du champ.
Une requête peut interroger un ou plusieurs fichiers de données.

L’éditeur de requêtes permet de créer très simplement des requêtes, sans avoir à programmer.

Sources Utilisations possibles


Fenêtres et champs
d’une fenêtre Requête intégrée :
Données en provenance
MaFenêtre_1$Requête
d’un ou de plusieurs fichiers
(HFSQL, Oracle, ...) Etats
Le résultat d’une
requête se manipule
Programmation
comme un fichier
(utilisation dans les
fonctions WLangage)

Requêtes

Remarque : En programmation, une requête peut être manipulée de la même façon qu’un fichier
de données. En particulier, elle peut être associée à un champ d’affichage (un champ Table par
exemple) qui présentera les données retournées par la requête.
Requête intégrée :
MaFenêtre_2$Requête

Dans ce cas, la requête est intégrée à la fenêtre. Elle est présente dans le fichier WDW correspon-
dant à la fenêtre. Si le fichier WDW est copié (dans un autre projet par exemple), les requêtes inté-
grées utilisées par cette fenêtre seront également copiées.

112 Partie 3 : Bases de données Partie 3 : Bases de données 113


Les champs Table/
Contenu

Champ Table "Mémoire"


Zone Répétée Un champ Table mémoire permet d’afficher directement des données chargées en mémoire. Les
données sont ajoutées dans le champ Table par programmation (par exemple avec la fonction
TableAjouteLigne).
Les champs Table/Zone répétée peuvent être utilisés pour afficher un ensemble d’informations
(par exemple, le contenu d’un fichier de données). Le contenu de ces champs peut être issu de
trois sources différentes :
• Champs Table/Zone Répétée "Fichier accès direct",
• Champs Table/Zone Répétée "Mémoire",
Données en
• Champs Table/Zone Répétée "Fichier chargé en mémoire". mémoire

Remarque : Ces trois modes de remplissage vont être détaillés dans cette page pour le champ Les données étant présentes en mémoire, le champ Les données étant présentes en mémoire, le
Table. Les mêmes concepts s’appliquent au champ Zone Répétée. champ Table permet toutes les manipulations sur les données (tri sur n’importe quelle colonne,
recherche dans les colonnes, ...).
Champ Table "Fichier accès direct"
Champ Table "Fichier chargé en mémoire"
Un champ Table fichier de type accès direct permet d’afficher directement les données provenant
Les champs Table fichier chargé en mémoire combinent les avantages des champs Table fichier à
d’un fichier de données ou d’une requête. La structure du fichier de données a été décrite sous
accès direct et ceux des champs Table mémoire.
l’éditeur d’analyses et les données ont été saisies par exemple dans l’application. Un parcours
du fichier de données permet d’afficher les données dans le champ Table. Pour chaque ligne affi- Le champ Table est lié au fichier de données, mais le contenu du fichier de données est totale-
chée, le fichier de données est lu : l’enregistrement lu est affiché dans une ligne du champ Table. ment chargé en mémoire. Le tri et la recherche sont disponibles sur toutes les colonnes.
Les données non liées au fichier de données sont conservées lors de la manipulation de l’ascen-
seur (colonne de type Interrupteur par exemple).
Les enregistrements du fichier de données étant chargés en mémoire, ce type de champ est
conseillé pour les fichiers de données de moins de 100 000 enregistrements (pour éviter une
saturation mémoire).

Fichier
Client
Les données affichées non liées au fichier de données ne sont pas conservées lors des rafraîchis-
sements d’affichage du champ Table (en cas de scrolling par exemple). Fichier
Client
Il est possible de limiter les enregistrements affichés dans le champ en utilisant un filtre (fonction
HFiltre utilisée dans le code d’initialisation du champ). Fichier chargé
Plusieurs fonctions du WLangage permettent de manipuler les champs de type "Table fichier". Ces en mémoire
fonctions commencent toutes par "Table".
Pour ajouter un enregistrement dans le champ Table, ajoutez l’enregistrement dans le fichier de
données HFSQL correspondant (fonction HAjoute), puis ré-affichez le champ Table avec la fonc-
tion TableAffiche.
Pour supprimer un enregistrement dans le champ Table, supprimez l’enregistrement dans le
fichier de données HFSQL correspondant (fonction HSupprime), puis ré-affichez le champ Table
avec la fonction TableAffiche.
Remarque : Les différents modes de remplissage (mémoire, fichier, fichier chargé en mémoire)
sont disponibles pour les champs Liste, Combo, Table, Zone répétée, ...

114 Partie 3 : Bases de données Partie 3 : Bases de données 115


Réplication
Contenu
Architecture
Contenu

universelle 3-tiers
La réplication universelle permet de maintenir à jour des bases de données de formats identiques L’architecture 3-tiers (le terme "tier" vient de l’anglais et signifie "niveau") est un modèle d’archi-
ou différents (HFSQL, Oracle, SQL Server, ...). Il est par exemple possible de réaliser une synchroni- tecture d’application.
sation entre une base de données HFSQL Classic et une base de données Oracle. Son principe de base consiste à séparer trois couches logicielles contenues dans une application :
La réplication universelle utilise un modèle centralisé : toutes les bases de données se synchro- • la couche présentation : correspondant à l’affichage,
nisent avec une base de données maître. La base de données maître répercute ensuite les modi- • la couche traitements ou application : correspondant aux processus métiers de l’application,
fications vers les autres bases de données. • la couche d’accès aux données persistantes.
Cette séparation a pour but de rendre indépendante chacune des couches afin de faciliter la
maintenance et les évolutions futures de l’application. Elle assure une sécurité plus importante
car l’accès à la base de données n’est autorisé que par la couche de traitements. Elle a égale-
ment l’avantage d’optimiser le travail en équipe et le développement multi-cibles.

Réplication
Universelle

Il est possible d’adapter la synchronisation à des cas particuliers. Par exemple, il est possible de
récupérer uniquement les enregistrements concernant un produit spécifié ou les enregistrements
réalisés à une certaine date, de gérer les conflits, d’afficher une fenêtre de paramétrage, ...
L’architecture 3-tiers est totalement compatible avec le développement d’applications en utilisant
Ces adaptations doivent être effectuées par programmation grâce à la fonction HRplProcédure- WINDEV.
Filtre.

116 Partie 3 : Bases de données Partie 3 : Bases de données 117


PARTIE 4

Concepts
avancés

118 Partie 3 : Bases de données


RAD
Contenu

RID
Le RAD (Rapid Application Development) et le RID (Rapid graphical Interface Design) permettent
de créer des fenêtres à partir :
• de l’analyse liée au projet,
• des patterns RAD standards ou personnalisés,
• des gabarits.
En génération RAD, les fenêtres générées contiennent tout le code nécessaire à leur fonctionne-
ment. Ces fenêtres peuvent être testées immédiatement, avec les données présentes sur le poste
de développement.
En génération RID, les fenêtres générées contiennent uniquement les champs liés aux rubriques
de l’analyse. Tout le code nécessaire au fonctionnement de ces fenêtres reste à la charge du
développeur. Seul le code nécessaire au fonctionnement des éléments annexes du pattern est
ajouté. Vous pouvez directement saisir votre code personnalisé.

Analyse du Pattern
RAD Gabarit
projet

RAD Application Complète


RAD ou RID Fenêtre

Exemple de fenêtre générée


par le RAD ou le RID

120 Partie 4 : Concepts avancés Partie 4 : Concepts avancés 121


Le modèle
Contenu

Le modèle UML en pratique


UML
1  Présentation
WINDEV permet de créer neuf types de modèle UML :
• Diagramme de classes : décrit de manière générale la structure d’un système. L’objectif principal d’une équipe de développement WINDEV permet de créer ces neuf types de modèle
est de créer des applications optimisées, capables UML :
• Diagramme de cas d’utilisation : représente les fonctionnalités du système du point de vue de
de satisfaire les besoins en constante évolution de • Diagramme de classes,
l’utilisateur. leurs utilisateurs. • Diagramme de cas d’utilisation,
• Diagramme d’objet : représente un ensemble d’objets et leurs relations à un moment donné. La modélisation d’une application permet de spé- • Diagramme d’objet,
• Diagramme de composants : décrit l’architecture physique et statique d’une application infor- cifier la structure et le comportement attendus
d’un système, de comprendre son organisation, de • Diagramme de composants,
matique. • Diagramme d’activité,
déceler les possibilités de simplification et de réuti-
• Diagramme d’activité : représente le comportement d’une méthode ou le déroulement d’un lisation et de gérer les risques encourus. • Diagramme de séquences,
cas d’utilisation. Un modèle est la simplification de la réalité. Il per- • Diagramme de collaboration,
• Diagramme de séquences : représente l’ordre chronologique des messages envoyés et reçus met de mieux comprendre le système à développer. • Diagramme d’états-transitions,
par un ensemble d’objets. Un diagramme est la représentation graphique • Diagramme de déploiement.
• Diagramme de collaboration : présente l’organisation structurelle des objets qui envoient et d’un ensemble d’éléments qui constituent un sys- Ce chapitre ne fait que présenter de manière glo-
tème. Pour visualiser un système sous différentes
reçoivent des messages. bale la modélisation UML. Pour plus de détails sur
perspectives, le langage UML (Unified Modeling le langage UML, nous vous conseillons de consulter
• Diagramme d’états-transitions : présente un automate à états finis. Language) propose neuf diagrammes, représen- des ouvrages spécifiques.
• Diagramme de déploiement : montre la répartition des matériels (les nœuds) utilisés dans un tant chacun un état du système.
système et l’association des programmes exécutables à ces matériels.
2  Les différents diagrammes UML

2.1 Diagramme de classes Par exemple, le diagramme suivant présente la ges-


tion des stocks :
Un diagramme de classes permet de modéliser la
structure d’un système grâce à des classes et à
des relations entre ces classes.
Les diagrammes de classes sont les diagrammes
les plus courants dans la modélisation des sys-
tèmes orientés objet.

122 Partie 4 : Concepts avancés Partie 4 : Concepts avancés 123


Un diagramme de classes est composé des élé- • Cas d’utilisation : décrit une séquence d’actions • Paquetage : divise et organise la représentation
ments suivants : exécutées par l’application. Par exemple, Passer du diagramme (de la même manière que les
• Classe : représente les structures de l’applica- une commande, Saisir une facture, Créer une répertoires organisent les fichiers). Chaque
tion. Chaque classe est divisée en trois compar- nouvelle fiche client, ... paquetage peut contenir des acteurs et des cas
timents : Un cas d’utilisation décrit ce que fait une appli- d’utilisation.
• le nom de la classe indique ce que la classe cation mais ne précise pas comment l’applica-
tion le fait. 2.3 Diagramme d’objets
est et non ce qu’elle fait.
• les attributs de la classe donnent les caracté- • Relation : décrit le comportement des acteurs Un diagramme d’objets représente un ensemble
ristiques de la classe. par rapport aux cas d’utilisation. Trois types de d’objets et leurs relations à un moment donné.
relations existent : Un diagramme d’objets est utilisé pour montrer
• les opérations de la classe représentent les
actions possibles sur la classe. • Association : Relation structurelle entre deux un contexte (avant ou après une interaction entre
éléments reliés. objets par exemple).
Par exemple, la classe Stock contient l’attribut Lis-
teProduits. Cette classe regroupe aussi les opé- • Dépendance : Relation qui établit qu’un Par exemple, le diagramme suivant présente une
rations AjouteProduit et RetireProduit. Ces opéra- élément en utilise un autre. Par exemple, le partie de la structure générale des motos :
tions sont applicables aux instances de la classe. Client d’une banque peut retirer de l’argent
• Paquetages : permettant de diviser et d’orga- dans un distributeur automatique. Dans
Remarque : Le langage UML définit trois niveaux niser la représentation du diagramme (de la
de visibilité pour les attributs et les opérations : ce cas, l’action Retrait d’argent dépend du
même manière que les répertoires organisent Client.
• Public : l’élément est visible par toutes les les fichiers). Chaque paquetage peut contenir Pour pouvoir retirer de l’argent, le Client doit
autres classes. des classes et des relations. préalablement saisir son code confidentiel.
• Protégé : l’élément est visible par la classe Grâce à la génération d’un diagramme de classes, Dans ce cas, l’action Retrait d’argent dépend
elle-même et par les sous-classes. il est possible de créer la structure des classes de la Saisie du mot de passe.
• Privé : l’élément est visible uniquement par WINDEV utilisées dans votre application.
la classe.
2.2 Diagramme de cas d’utilisation
• Relation : décrit le comportement des classes
entre elles. Trois types de relations existent : Un diagramme de cas d’utilisation permet de visua-
Un diagramme d’objets est composé des éléments
• Association : Relation structurelle entre liser le comportement d’un système de telle sorte
suivants :
classes. Par exemple, la classe Commande que : • Généralisation : Relation permettant d’organi- • objet : représente une instance d’une classe.
est liée aux classes Produit et Client. Un • l’utilisateur puisse comprendre comment utiliser ser les éléments selon une hiérarchie. Remarque : Si un diagramme de classes est
Client peut passer plusieurs Commandes. chaque élément. Par exemple : ouvert, il est possible de créer un objet à partir
Une commande est constituée de plusieurs • le développeur puisse implémenter ces élé- • l’acteur Client peut être de deux types : d’une classe présente dans ce diagramme (drag
produits. Une commande doit obligatoirement ments. Client individuel ou Client d’entreprise. and drop à partir du volet "Analyse UML").
contenir au moins un produit. Par exemple, il est possible de décrire le compor- • la vérification de l’identité d’un utilisateur • objet composite : représente de manière
• Dépendance : Relation d’utilisation qui tement d’un téléphone portable à l’aide d’un dia- peut être effectuée de deux façons : saisie visuelle un objet formé d’autres objets. Par
établit que les instances d’une classe sont gramme de cas d’utilisation. du mot de passe ou vérification de l’em- exemple : une fenêtre qui contient des ascen-
reliées aux instances d’un autre élément. preinte digitale. seurs, des boutons, ...
Par exemple, la classe Commande utilise la
classe Stock : avant d’ajouter un produit dans • lien : représente les relations entre les différents
une commande, il est nécessaire de vérifier objets.
que ce produit est en stock. 2.4 Diagramme de composants
• Généralisation : Relation entre une classe
générale (parent) et une classe spécifique (en- Un diagramme de composants décrit l’architecture
fant) qui en dérive. Par exemple, les classes physique et statique d’une application informa-
Bateau à voile et Bateau à moteur sont déri- tique. Par exemple : fichiers sources, librairies, exé-
vées de la classe Bateau. cutables, ...
Par exemple, le diagramme suivant présente le
fonctionnement d’un programme permettant de se
Un diagramme de cas d’utilisation est composé loguer en mode texte sous Unix.
des éléments suivants :
• Acteur : représente le rôle des utilisateurs de
l’application. Par exemple, une personne qui tra-
vaille dans une banque sera le Gestionnaire de
prêts. Si cette personne à un compte dans cette
banque, elle jouera aussi le rôle de Client.
124 Partie 4 : Concepts avancés Partie 4 : Concepts avancés 125
• barre de synchronisation : permet de synchroni- • message : représente, grâce à des flèches Par exemple, le diagramme suivant présente les
ser les différentes activités : horizontales, les messages échangés entre les différentes étapes d’une machine à laver les voi-
• soit en indiquant les activités à effectuer différents objets. Ces flèches sont orientées tures :
avant une certaine activité. Par exemple : de l’émetteur du message vers le destinataire.
"Appuyer sur l’embrayage" et "Enclencher une L’ordre d’envoi des messages est donné par la
vitesse" avant de "Relâcher l’embrayage". position des flèches sur l’axe vertical.
• soit en indiquant les activités à effectuer en Par exemple : "Décroche", "Sonnerie", ...
parallèle. 2.7 Diagramme de collaboration
• objet : permet de rattacher des activités à l’objet
qui réalise ces activités. Par exemple, les activi- Un diagramme de collaboration présente l’orga-
tés "Commander" et "Payer" sont rattachées à nisation structurelle des objets qui envoient et re-
l’objet "Client"; les activités "Enseigner", "Contrô- çoivent des messages.
Un diagramme de composants est composé des ler les connaissances" sont rattachées à l’objet Par exemple, le diagramme suivant montre l’utilisa-
éléments suivants : "Enseignant". tion d’un ascenseur par une personne :
• module : représente les différents éléments phy- • émission de signal : représente l’envoi d’un
siques constituant une application informatique. signal vers un objet.
Par exemple : un fichier, une librairie, ...
• attente de signal : représente l’attente d’un
Un module peut être représenté :
signal en provenance d’un objet.
• soit par une spécification qui montre l’inter-
• transition : représente le passage d’une acti- Un diagramme d’états-transitions est composé des
face du module. Cette spécification peut être
vité terminée à une autre. Par exemple : "Trop éléments suivants :
générique dans le cas de classes paramé-
d’eau", "Assez d’argent", ... • état : représente la valeur des attributs d’un
trables.
• soit par son corps qui présente l’implémenta- 2.6 Diagramme de séquence objet à un instant donné.
tion du module. • état initial : représente l’état au démarrage du
Un diagramme de séquence représente l’ordre système.
• tâche : représente un composant ayant son chronologique des messages envoyés et reçus par
propre flot (thread) de contrôle. • état final : représente l’état dans lequel se
un ensemble d’objets.
• programmes principaux de l’application infor- Un diagramme de collaboration est composé des trouve le système à la fin du fonctionnement.
Par exemple, le diagramme suivant représente le éléments suivants :
matique. • super-état : permet de structurer le diagramme
début d’une communication téléphonique :
• sous-programmes : regroupent les procédures • objet : représente les différents objets utilisés. en indiquant plusieurs niveaux de distinction
et les fonctions qui n’appartiennent pas à des • acteur : représente un élément externe du sys- entre les états.
classes. tème. Par exemple une personne. • historique : représente le dernier état actif d’un
• message : représente les messages échangés super-état.
2.5 Diagramme d’activité entre les différents objets. • souche : permet de symboliser les états conte-
Un diagramme d’activité représente le comporte- nus dans un super-état. Il est ainsi possible de
ment d’une méthode ou le déroulement d’un cas 2.8 Diagramme d’états-transitions relier ces états à d’autres états n’appartenant
d’utilisation. Un diagramme d’états-transitions présente un pas au super-état.
Par exemple, le diagramme suivant présente le automate à états finis. Il permet ainsi de décrire • transition : représente le passage d’un état à
déroulement d’un barrage : les changements d’états d’un objet ou d’un com- un autre.
posant.
Un état se caractérise par sa durée et sa stabilité.
Un diagramme de séquence est composé des élé-
Une transition représente le passage instantané
ments suivants :
d’un état vers un autre.
• objet : représente les différents objets utilisés.
Une transition est déclenchée :
Chaque objet est représenté par un carré sur-
montant une ligne en pointillé. Cette ligne repré- • soit par un événement.
sente la durée de vie de l’objet. Par exemple : • soit automatiquement lorsqu’aucun événement
"Appelant", "Appelé", ... déclencheur n’est spécifié.
Un diagramme d’activité est composé des élé-
ments suivants : • période d’activation d’un objet : sur la ligne
de vie d’un objet, il est possible d’insérer des
• activité : représente une étape particulière dans périodes d’activation de l’objet. Ces périodes
l’exécution d’un mécanisme. Par exemple : "Eta- représentent les moments où l’objet est actif.
blir un devis", "Ouvrir la fenêtre", ...

126 Partie 4 : Concepts avancés Partie 4 : Concepts avancés 127


2.9 Diagramme de déploiement Un diagramme de déploiement est composé des
Groupware
Contenu

Un diagramme de déploiement montre la répar-


tition physique des matériels (les nœuds) utilisés
dans un système et l’association des programmes
éléments suivants :
• classe de nœuds : représente une classe de res-
source matérielle. Par exemple : un serveur, un
utilisateur
exécutables à ces matériels. PC, une imprimante, ...
Par exemple, le diagramme suivant présente les • instance d’un nœud : représente une ressource Le Groupware Utilisateur permet d’inclure simplement une gestion des utilisateurs et de leurs
différents matériels utilisés dans une entreprise : matérielle. Par exemple : le serveur numéro 3, droits dans une application WINDEV.
l’imprimante numéro 7, ...
• connexion : décrit le support de communication Deux types d’utilisateurs sont pris en compte :
entre deux nœuds. Par exemple : liaison RNIS • utilisateur simple, utilisant directement l’application.
ou TCP/IP. • superviseur, pouvant configurer les utilisateurs et leurs droits.

Utilisateur

1 Lancement de l’application

3 Manipulation
de l’application

2 Identification

Utilisation Vérification
des droits des droits
Superviseur

HFSQL Classic,
Client/Serveur,
Accès Natif,
LDAP

Base de données
du Groupware Utilisateur

Configuration des
droits et des utilisateurs

4 Menu du
superviseur

Historique
des connexions

128 Partie 4 : Concepts avancés Partie 4 : Concepts avancés 129


Le groupware utilisateur en pratique 3  Mise en place du groupware utilisateur

3.1 Ajouter le groupware utilisateur dans Lancement du Groupware Utilisateur


1  Présentation une application Deux modes de lancement du groupware utilisa-
Pour mettre en place le groupware utilisateur dans teur sont disponibles :
Une application nécessite la définition du rôle des Selon l’utilisateur les accès possibles sont diffé- une application WINDEV, une seule option suf-
différents intervenants. Il est souvent nécessaire rents. Quelques exemples : fit : sous le volet "Projet", dans le groupe "Projet",
de prévoir différents niveaux d’accès selon les cliquez sur "Groupware Utilisateur". La fenêtre de
• les secrétaires peuvent consulter le tarif et créer
fonctions de l’utilisateur. paramétrage du groupware utilisateur permet de
des commandes
définir :
En effet, tous les utilisateurs n’ont pas les mêmes • les commerciaux peuvent consulter le tarif et
fonctions, ni les mêmes besoins. Leur domaine • Le mode d’intégration du groupware utilisateur.
établir les commandes, gérer de nouveaux
d’action doit donc être plus ou moins limité. clients. • Le type de lancement du groupware utilisateur. • Lancement automatique : La fenêtre de login
Prenons un exemple simple : lors de la mise en • les directeurs commerciaux ont accès à toutes • L’emplacement des fichiers de données du du groupware utilisateur est lancée avant toute
place d’une gestion commerciale, l’application pro- les options. groupware utilisateur. autre fenêtre de l’application. Le code d’initiali-
pose les fonctionnalités suivantes : Pour gérer ces niveaux d’accès dans vos applica- • Le mode d’identification de l’utilisateur. sation du projet est exécuté après l’ouverture et
• Consultation du tarif, tions WINDEV, il suffit d’intégrer le groupware utili- Mode d’intégration du Groupware la validation de la fenêtre de login.
• Modification du tarif, sateur à votre application. Quelques clics de souris Utilisateur • Lancement manuel : La fenêtre de login ne
• Saisie des commandes, suffisent à transformer une application classique Plusieurs modes d’intégration du groupware utilisa- sera ouverte que si la fonction gpwOuvre est
en une application gérant de nombreux niveaux teur sont disponibles : utilisée. Cette option permet d’exécuter le code
• Saisie des clients.
d’accès. La mise en place est instantanée. d’initialisation du projet par exemple, avant
Lors de l’exécution de l’application, le responsable d’ouvrir la fenêtre de login. Il est ainsi possible
pourra créer des utilisateurs (identifiés par leur par exemple d’afficher une fenêtre demandant
login et leur mot de passe) et leur donner accès à la langue d’exécution de l’application.
l’une ou l’autre des fonctionnalités de l’application. Login automatique en mode test
Vous pouvez indiquer le login et le mot de passe à
2  Comment fonctionne le groupware utilisateur ? utiliser en mode "Test automatique". Ces informa-
tions seront utilisées si un test automatique est
réalisé sur l’application.
Une application utilisant le groupware utilisateur a La fenêtre de configuration permet au superviseur • Groupware utilisateur automatique : toute la
deux niveaux d’utilisation : de : Fichiers de données du Groupware
programmation du groupware utilisateur est Utilisateur
• le niveau utilisateur • lancer l’application. automatiquement intégrée à votre application.
Aucune personnalisation n’est possible. Le Le groupware utilisateur utilise plusieurs fichiers
• le niveau superviseur • configurer le groupware. de données spécifiques. Ces fichiers de données
La configuration du groupware consiste à créer gabarit du projet est automatiquement appliqué
2.1 Le niveau utilisateur à toutes les fenêtres utilisées par le groupware permettent notamment de gérer les utilisateurs,
des utilisateurs, des groupes et d’associer des uti- les groupes, les droits et les éléments de l’appli-
L’utilisateur se connecte à l’application grâce à une lisateurs aux groupes, à gérer les droits de chaque utilisateur.
Ce mode d’intégration permet de suivre auto- cation.
fenêtre de login et accède aux fonctionnalités qui utilisateur (ou groupe) sur chacune des fenêtres de Le groupware utilisateur peut être utilisé :
lui sont autorisées. l’application. Les droits sont définissables au ni- matiquement les éventuelles évolutions du
veau des options de menu, des groupes de champs groupware utilisateur. • soit avec des fichiers de données HFSQL Clas-
Remarque : Le groupware utilisateur peut per- sic. Dans ce cas, l’onglet "Fichiers" permet
mettre de se connecter en utilisant un annuaire et des champs. Le superviseur peut rendre ces élé- • Groupware utilisateur personnalisé : toute la
ments grisés, inactifs ou invisibles. Ces configura- programmation du groupware utilisateur est de spécifier si nécessaire l’emplacement des
LDAP. fichiers de données.
tions sont prioritaires sur toute configuration effec- automatiquement intégrée à votre application
2.2 Le niveau superviseur tuée dans le programme. via un composant interne. Toutes les fenêtres • soit avec des fichiers de données HFSQL Client/
Pour plus de détails sur la configuration du nécessaires à la gestion du groupware utili- Serveur. Dans ce cas, l’onglet "Fichiers" permet
Le superviseur se connecte à l’application par une sateur (login et gestion des utilisateurs) sont de définir les paramètres d’accès à la base de
fenêtre de login et accède à un menu avancé lui groupware par le superviseur, consultez le pa-
ragraphe Paramétrer l’application utilisant le automatiquement ajoutées à votre projet. Vous données HFSQL Client/Serveur, ainsi que le
permettant de configurer les utilisateurs et leurs pouvez ainsi personnaliser totalement toutes les répertoire des fichiers.
droits, ou bien de lancer l’application. groupware utilisateur.
fenêtres utilisées par le groupware utilisateur.
Remarque : Toutes les informations concernant les
utilisateurs et leurs droits sont stockées dans des Le détail des différentes fenêtres du Groupware Uti-
fichiers de données au format HFSQL (Classic ou lisateur est présenté dans l’aide en ligne.
Client/Serveur).

130 Partie 4 : Concepts avancés Partie 4 : Concepts avancés 131


Le mot de passe des fichiers de données Identification à partir d’un annuaire LDAP 3.2 Tester l’application 3.3 Créer l’exécutable WINDEV
Par défaut, les fichiers de données du groupware Si votre client utilise un annuaire LDAP au sein Lors du test d’une application gérant le groupware Lors de la création de l’exécutable gérant le
utilisateur ont un mot de passe spécifique. Ce mot de son entreprise, il est possible de brancher le utilisateur, la première fenêtre apparaissant est au- groupware utilisateur (option "Générer" sous le
de passe est : "PCSGPW2001". groupware utilisateur sur cet annuaire. Il suffit de tomatiquement la fenêtre de login (quelle que soit volet "Accueil"), un écran spécifique au groupware
Pour changer ce mot de passe, saisissez le nou- préciser dans l’onglet "Identification" les caractéris- la première fenêtre définie dans votre application). utilisateur est affiché.
veau mot de passe dans l’onglet "Fichiers" de la tiques de l’annuaire LDAP (serveur, port, base, ...).
Ainsi, le compte et le mot de passe présent dans Par défaut, un seul utilisateur existe : le supervi- Vous pouvez ainsi définir l’emplacement des
fenêtre de description du groupware utilisateur. seur. Pour se connecter en tant que superviseur, il fichiers de données du groupware utilisateur.
Les caractères saisis apparaissent sous forme l’annuaire LDAP seront automatiquement deman-
dés à l’utilisateur. suffit de saisir les informations suivantes dans la
d’étoiles. fenêtre de login : 3.4 Installer une application utilisant le
Deux modes sont disponibles : groupware utilisateur
• Nom : SUPERVISEUR
• Sans gestion des droits : Dans ce cas, aucun
• Mot de passe : SUPERVISEUR L’installation d’une application utilisant le
fichier de données du groupware ne sera créé.
Vous pouvez alors soit tester votre application, soit groupware utilisateur se fait comme pour toute ap-
Si le lancement est automatique, la fenêtre de
configurer le fonctionnement du groupware. plication : sous le volet "Projet", il suffit de cliquer
login demandera à l’utilisateur de s’identifier. Si
sur "Procédure d’installation".
l’utilisateur est bien enregistré dans l’annuaire Remarques :
LDAP, l’application se lancera, sinon elle se fer- Un écran spécifique au groupware utilisateur per-
mera. Il n’est pas possible à un superviseur de • Pour que la première fenêtre de votre applica- met de configurer l’emplacement des fichiers de
paramétrer les droits sur les fenêtres. tion ne soit pas la fenêtre de login, sélectionnez données propres au groupware utilisateur.
l’option "Lancement manuel" dans l’onglet
• Avec gestion des droits : Seuls les utilisateurs "Exécution" des options du Groupware Utilisa- Remarques :
Remarque : Ce mot de passe est utilisé par présents dans l’annuaire LDAP pourront se teur. Il suffira d’utiliser la fonction du WLangage • Si vous avez paramétré les fichiers de données
exemple lors de la ré-indexation ou de l’ouverture connecter. Le paramétrage des droits sur les gpwOuvre pour ouvrir la fenêtre de login. du groupware utilisateur pour votre client, il est
des fichiers de données avec l’outil WDMAP. fenêtres est disponible. nécessaire de les sélectionner lors de la prépa-
• Les fenêtres de gestion du groupware utilisateur
Pour plus de détails sur ces fichiers de données Pour plus de détails, consultez l’aide en ligne. sont exécutées avant le code d’initialisation du ration de l’installation. Il est donc nécessaire
et leur configuration (répertoire d’installation, ...), Remarque : Le groupware utilisateur fonctionne projet. de personnaliser la liste des fichiers de l’instal-
consultez l’aide en ligne. avec Active Directory. Il ne fonctionne pas avec lation.
• La première fenêtre de votre application définie
Identification openLDAP. dans le projet sera lancée après la fenêtre de • Si vous n’avez pas paramétré les fichiers de don-
login (lorsque l’utilisateur n’est pas le supervi- nées du groupware, lors du premier lancement
Le groupware utilisateur propose plusieurs types
seur). de l’application, seul l’utilisateur Superviseur
d’identification des utilisateurs :
existera dans l’application.
• Identification gérée par le groupware utilisateur • Pour ne pas lancer le groupware utilisateur lors
de WINDEV. des tests de l’application, il suffit de sélection- Conseil : Si vous ne configurez pas les différents
• Identification à partir d’un annuaire LDAP. ner l’option "Pas de groupware utilisateur" dans niveaux d’utilisation du groupware utilisateur pour
l’onglet "Intégration" des options du groupware vos clients, il est conseillé de leur fournir un docu-
• Identification de Windows. utilisateur. ment reprenant tous les champs de vos fenêtres
Si vous rebranchez le groupware utilisateur par la pour obtenir une configuration optimisée.
Identification gérée par le groupware utilisateur suite, les fichiers de données utilisés précédem-
Les login et mot de passe sont enregistrés dans les ment pour le groupware utilisateur ne seront pas
fichiers de données du groupware utilisateur. Authentification Windows effacés.
Dans ce cas, les login et mot de passe corres-
pondent à ceux définis pour utiliser Windows.
Remarque : il est possible d’utiliser une authenti-
fication unique. Dans ce cas, le login et le mot de
passe seront demandés une seule fois par session.

132 Partie 4 : Concepts avancés Partie 4 : Concepts avancés 133


4  Paramétrer l’application utilisant le groupware utilisateur Les utilisateurs peuvent être rassemblés en Les états disponibles pour chaque élément sont
groupes. les suivants :
Lorsque l’application est déployée, le paramétrage 3. La fenêtre de gestion du groupware utilisateur Pour associer un utilisateur à un groupe, il suffit de • Défaut : le comportement de l’élément corres-
du groupware utilisateur est réalisé par le supervi- s’affiche. Cette fenêtre permet de : réaliser un "Drag and Drop" de l’utilisateur vers le pond au comportement par défaut, défini dans
seur de l’application. groupe choisi. l’application.
• gérer les utilisateurs et les groupes
Ce paramétrage consiste à créer des utilisateurs, Un utilisateur peut être associé à plusieurs • Inactif : l’élément est affiché mais toute saisie
• gérer les droits groupes. est impossible.
des groupes d’utilisateurs et à leur attribuer pour • afficher les statistiques
chaque champ de chaque fenêtre de l’application Remarques : • Grisé : l’élément est affiché mais grisé. Toute
certains droits. Ces droits consistent à rendre vi- • migrer les données provenant d’un groupware • Il est conseillé de changer le mot de passe du saisie est impossible.
sible, invisible ou grisé des champs, des groupes utilisateur version 17 et antérieure. superviseur dès la première utilisation. • Invisible : l’élément n’est pas affiché.
de champs, des options de menus. 4.1 Gérer les utilisateurs • Si vous utilisez un annuaire LDAP, vous avez la
Pour paramétrer le groupware utilisateur, il suffit possibilité d’importer les utilisateurs présents 4.3 Afficher les statistiques
de : La gestion des utilisateurs consiste à : dans l’annuaire pour pouvoir gérer les droits de Pour chaque application, il est possible d’obtenir
1. Lancer l’application (exécutable ou test depuis • créer des utilisateurs, ces utilisateurs. des statistiques d’utilisation selon l’utilisateur,
WINDEV) et se connecter en tant que supervi- • créer des groupes, pour une période spécifique.
seur : • associer des utilisateurs à des groupes.
4.2 Gérer les droits
Pour chaque utilisateur (ou groupe d’utilisateurs), 4.4 Migrer des données
• Nom : SUPERVISEUR
• Mot de passe : SUPERVISEUR le superviseur peut gérer leurs droits sur les diffé- A partir de la version 18, le groupware utilisateur
rents éléments des fenêtres du projet. a évolué. Les fichiers de données utilisés par le
Pour chaque association utilisateur / fenêtre, il est groupware utilisateur ne sont plus les mêmes.
possible de définir un état spécifique pour tous les L’administrateur du groupware utilisateur peut
éléments de la fenêtre. migrer les données existantes au nouveau format
Les éléments gérés dans les fenêtres, les fenêtres et ainsi récupérer automatiquement les données
internes et les modèles de fenêtres sont les sui- utilisées dans des versions précédentes. Cette
vants : migration peut être effectuée quel que soit le for-
• les champs mat des données : HFSQL Classic, HFSQL Client/
Serveur, Accès Natif.
• les groupes de champs
• les options de menu
La création d’un nouvel utilisateur consiste à don-
ner les informations suivantes :
• le nom de l’utilisateur. 5  Conseils pour une application gérant le groupware utilisateur
• le prénom de l’utilisateur.
2. Choisir l’option "Configurer le groupware".
• le login de l’utilisateur (obligatoire). Ce login cor-
respond à l’identifiant de l’utilisateur lors de sa 5.1 Utilisation de groupes de champs 5.2 Visibilité des champs
connexion à l’application. Pour simplifier le paramétrage de la gestion du Lors du développement de votre application, vous
• le mot de passe de l’utilisateur. Ce mot de passe groupware utilisateur en fonction des utilisateurs, pouvez définir les caractéristiques de visibilité des
n’est pas obligatoire et peut être saisi par l’utili- il est conseillé de regrouper les champs par groupe différents éléments de vos fenêtres :
sateur lui-même lors de sa première connexion de champs. • soit lors de la description de l’élément (fenêtre
(cochez l’option correspondante). Il est par exemple possible de créer dans vos fe- à 7 onglets)
nêtres des groupes de champs correspondant aux • soit par programmation (propriétés ..Etat ou
Il est possible de définir l’utilisateur comme étant
champs à afficher pour un type d’utilisateur. ..Visible)
un superviseur de l’application.
La possibilité d’associer un champ à plusieurs Lors de la configuration du groupware utilisateur, le
Il est bien entendu possible de modifier ou de
groupes de champs augmente les combinaisons superviseur peut définir d’autres caractéristiques
supprimer un utilisateur. La suppression d’un utili-
disponibles. de visibilité. Les caractéristiques définies par le
sateur permet soit de supprimer entièrement l’utili-
sateur, soit de supprimer uniquement ses droits. Ces groupes de champs peuvent être créés dans superviseur sont prioritaires.
votre application uniquement en vue d’une gestion Par exemple, un bouton permet de rendre un
du groupware, sans programmation spécifique de champ actif. Or ce champ a été grisé par le super-
votre part. viseur. Votre code ne sera pas pris en compte et le
champ ne sera pas actif.

134 Partie 4 : Concepts avancés Partie 4 : Concepts avancés 135


5.3 Définition des droits
Applications
Contenu

Pour obtenir une définition des droits correspon-


dant aux fonctionnalités de votre application, il est
conseillé :
multilingues
• soit d’effectuer la configuration des droits vou-
lue par l’utilisateur de votre application avant de Une application multilingue est une application qui pourra être diffusée dans plusieurs langues.
créer la procédure d’installation. Il suffit alors WINDEV Mobile prend en compte les différentes langues de l’application à toutes les étapes du
d’ajouter les fichiers de données du groupware développement d’une application.
lors de la création de l’installation de l’applica-
tion. Pour développer une application multilingue, les principales étapes sont les suivantes :
• soit de livrer un dossier de programmation per-
mettant de donner les noms des champs, des

1
groupes de champs et des options à gérer selon Choix des langues
le niveau d’utilisation de l’application.
- Projet
- Analyse

2 Traduction des éléments


du projet
- Traduction directe
- Traduction via WDMSG, WDINT,
WDTRAD, ...

3 Programmation
- Choix de la langue de l’application
Fichiers de données
- Choix de l’alphabet
(fonction Nation) (fonction ChangeAlphabet)
- Choix de l’alphabet - Prise en compte de l’alphabet à la
(fonction ChangeAlphabet) création des fichiers (fonction HCréation*)
- Choix de la langue du clavier - Prise en compte de l’alphabet lors de
(fonction ChangeClavier) la réindexation (fonction HRéindexe)

4 Exécutable
Choix des langues de la
bibliothèque

5 Programme d’installation
- Langues proposées
- Traduction du programme
d’installation

136 Partie 4 : Concepts avancés Partie 4 : Concepts avancés 137


Applications multilingues en pratique Lors de la création d’un champ de saisie ou d’une
colonne de table affichant des données de type
3. Sélectionnez l’onglet "International" de la
fenêtre de description de l’analyse.
numérique (nombre, monétaire, date, heure, ...), le Les différentes langues configurées dans l’analyse
masque de saisie utilisé sera automatiquement le seront proposées :
masque défini dans les options de langue du pro-
1  Présentation jet. Cette option est disponible dans les fenêtres.
• lors de la configuration des informations parta-
gées des rubriques. Vous pouvez saisir la des-
En exécution, lorsqu’un champ de saisie ou une cription des champs liés aux rubriques (options,
Une application multilingue pourra être diffusée Remarques : colonne de table a pour masque "Défini par le pro- libellés, ...) dans les différentes langues gérées
dans plusieurs langues. Les différentes langues de • Si le système d’exploitation du poste en cours jet", le masque de saisie / d’affichage s’adaptera par l’analyse. Lors de la génération d’un "RAD
l’application seront prises en compte lors des diffé- gère plusieurs langues (Hébreux, Arabe, automatiquement selon les options choisies dans application complète" ou d’un RAD fenêtre, ces
rentes étapes du développement. Grec, ...), lors de la saisie des traductions dans le projet pour la langue affichée en exécution. informations seront automatiquement prises en
Pour développer une application multilingue, les ces langues, l’alphabet correspondant sera Remarque : Les options linguistiques permettent compte pour toutes les langues communes à
étapes sont les suivantes : automatiquement utilisé. également de définir le sens d’écriture et l’alpha- l’analyse et au projet.
1. Choix des langues gérées par le projet et l’ana- • Si votre application est multilingue, il est néces- bet utilisé (option "divers"). • pour les informations imprimées dans le dossier
lyse. saire de gérer cette fonctionnalité dans les Programme exécutable de l’analyse (notes du fichier de données ou de
2. Saisie des différents éléments du projet fenêtres du groupware utilisateur et les fenêtres la rubrique).
Lors de la création du programme exécutable, il
(fenêtre, code, ...) dans les différentes langues du de gestion automatique des erreurs HFSQL.
est possible de spécifier la ou les langues prises • pour les informations gérées par "Etats et
projet. Pour plus de détails, consultez l’aide en ligne.
en compte dans l’exécutable. Il est ainsi possible Requêtes". En effet, si le logiciel "Etats et Re-
3. Détermination de la langue du projet par pro- • La gestion de l’Unicode est disponible dans les de créer par exemple, un programme exécutable quêtes" est livré avec votre application WINDEV,
grammation. fichiers de données HFSQL, les champs des différent pour chaque langue gérée par le projet. il est possible de traduire le nom du fichier de
4. Gestion des alphabets spécifiques dans les fenêtres et le code WLangage. données et le nom de chaque rubrique. Ainsi,
Cette fonctionnalité permet de diminuer la taille de
fichiers de données. l’exécutable. l’utilisateur pourra utiliser les noms correspon-
5. Création de l’exécutable et du programme dant à sa langue lors de la création de ses états
d’installation. 2.2 Langues gérées par l’analyse et requêtes. Ces informations peuvent être
saisies dans l’onglet "Etats et Requêtes" de la
Si votre projet utilise une analyse, le choix des diffé-
description de fichier de données et de la des-
rentes langues gérées par l’analyse se fait directe-
2  Choix des langues gérées par le projet et l’analyse ment sous l’éditeur d’analyses. En effet, une même
cription de rubriques.
analyse peut être partagée entre différents projets 2.3 Langues gérées par les différents élé-
ne proposant pas tous les mêmes langues. Ainsi, le ments du projet
2.1 Langues gérées par le projet Les différentes langues sélectionnées seront pro- nombre de langues défini pour l’analyse peut être
posées pour toutes les informations des différents supérieur à celui défini pour le projet. Par défaut, les différents éléments du projet (fe-
Les différentes langues gérées par le projet sont
éléments ou objets pouvant être traduites (libellés nêtres, états, code, classes, collections de procé-
définies dans la description du projet : Pour configurer les différentes langues gérées par
des champs, options de menus, messages d’aide dures, ...) gèrent les mêmes langues que le projet
1. Sous le volet "Projet", dans le groupe "Projet", l’analyse :
associés à un champ, ...). dans lequel ils ont été créés.
cliquez sur "Description". La fenêtre de description 1. Affichez l’analyse de votre projet sous l’éditeur.
du projet s’affiche. Lors de la modification des différentes langues du Il est possible qu’un élément gère plus de langues
2. Affichez la fenêtre de description de l’analyse : que le projet (par exemple si l’élément est partagé
2. Dans l’onglet "Langues", il est possible d’ajou- projet, les modifications seront automatiquement sous le volet "Analyse", dans le groupe "Elément
prises en compte : entre plusieurs projets gérant des langues diffé-
ter ou de supprimer les langues gérées par le courant", cliquez sur "Description". rentes).
projet. • pour tout nouvel élément ou objet créé sous
l’éditeur de WINDEV,
• pour tout élément ou objet ouvert sous l’éditeur 3  Saisie de l’interface dans les différentes langues
de WINDEV.
La langue principale correspond à la langue utilisée Lorsque les différentes langues gérées par l’appli- • L’utilisation de fenêtres spécifiques (groupware
par défaut en exécution. cation ont été sélectionnées, il est nécessaire de utilisateur, gestion automatique des erreurs HF-
Options linguistiques saisir toutes les informations affichées par l’appli- SQL, aperçu avant impression)
L’onglet "Langues" de la description du projet per- cation dans ces différentes langues. • Les messages affichés par programmation.
met également de définir toutes les options spéci- Pour saisir l’interface dans différentes langues, plu-
fiques à une langue : nombre, monétaire, date, ... sieurs éléments doivent être pris en compte :
Par défaut, les paramètres utilisés sont ceux défi- • Le mode de traduction choisi.
nis dans les options linguistiques de Windows • Les langues gérées (langues utilisant un alpha-
(accessibles depuis le panneau de configuration de bet spécifique ou non)
Windows).

138 Partie 4 : Concepts avancés Partie 4 : Concepts avancés 139


3.1 Mode de traduction choisi En effet, dès que le caret (curseur de saisie de Lors de l’intégration personnalisée, les différents 3.4 Traduction des messages présents dans
WINDEV propose plusieurs modes de traduction :
la souris) est positionné dans une zone de saisie éléments du groupware utilisateur sont intégrés via le code WLangage
d’une langue utilisant un alphabet spécifique, la un composant interne.
• Traduction automatique des interfaces à l’aide langue d’entrée (alphabet utilisé par le clavier) cor- Dans votre code, diverses fonctions du WLangage
Il ne restera plus qu’à traduire ces éléments lors de vous permettent de communiquer avec l’utilisateur
d’un outil de traduction spécifique, présent sur respondante est automatiquement activée. la traduction du projet.
le poste de développement. Cette traduction est au moyen de chaînes de caractères. Ces messages
Ainsi, si vous saisissez un libellé dans la zone Remarque : Si nécessaire, lors du paramétrage du doivent être eux aussi traduits dans les différentes
réalisée directement sous l’éditeur de WINDEV. Russe de la description du libellé, l’alphabet utilisé groupware utilisateur, dans l’onglet "Exécution", langues de votre application.
• Export de tous les messages à traduire à l’aide par le clavier sera automatiquement le russe. sélectionnez l’option "Lancement manuel" : vous
de WDMSG et réintégration après traduction. Pour traduire une chaîne de caractères saisie dans
Rappel : Pour utiliser des alphabets spécifiques, pourrez ainsi afficher une fenêtre de sélection de l’éditeur de code :
Traduction des interfaces il est nécessaire d’installer les fichiers correspon- la langue de l’application avant de lancer la fenêtre
dants aux alphabets voulus dans les options régio- de login. 1. Sélectionnez la chaîne de caractères à traduire.
Pour chaque élément, différentes zones multi-
lingues sont affichées dans les fenêtres de des- nales de Windows (panneau de configuration). 2. Dans le menu contextuel de la sélection, choi-
Aperçu avant impression sissez l’option "Traduire". La fenêtre de traduction
cription de l’élément. Ces zones multilingues per- Par défaut, la fenêtre d’aperçu avant impression
mettent de saisir les informations dans les diffé- 3.3 Traductions des fenêtres spécifiques des messages s’affiche.
est disponible en anglais et français. 3. Saisissez la traduction et validez. La ligne de
rentes langues gérées par le projet. Gestion des erreurs HFSQL Pour traduire la fenêtre d’aperçu avant impression, code apparaît sous l’éditeur de code :
Pour traduire ces informations depuis WINDEV : Par défaut, les fenêtres de gestion des erreurs HFS- il est nécessaire d’intégrer les fenêtres correspon-
1. Affichez les options de WINDEV pour configurer QL sont fournies en anglais et en français. Pour les dant à l’aperçu avant impression dans votre appli-
les options de traduction du logiciel utilisé : sous traduire dans une autre langue, il est nécessaire cation. Ces fenêtres sont fournies (avec leur code
le volet "Accueil", dans le groupe "Environnement", de : WLangage), dans le répertoire \Programmes\Don-
déroulez "Options" et sélectionnez "Options géné- 1. Intégrer les fenêtres d’erreur par défaut dans nees\Fenêtres prédéfinies\Apercu. Pour plus de
rales de WINDEV". votre projet. Les fenêtres sont fournies (avec leur détails, consultez l’aide en ligne. Le drapeau indique que des traductions existent
2. Dans l’onglet "Traduction", il est possible de code WLangage) à titre d’exemple dans le réper- Il ne restera plus qu’à traduire ces fenêtres. pour cette chaîne de caractères. Pour afficher la
définir : toire \Programmes\Données\Fenêtres prédéfi- fenêtre de traduction, il suffit de cliquer sur ce dra-
Menus système peau.
• l’outil de traduction par défaut (et les moda- nies\HFSQL - Fenêtres assistance automatique.
lités de transmission du texte à traduire/ Pour les champs de saisie ou les champs de type Le chiffre (2 dans notre exemple) indique le nombre
2. Personnaliser la gestion des erreurs pour uti-
traduit). Table, WINDEV propose un menu contextuel par de traductions saisies pour cette chaîne de carac-
liser les fenêtres HFSQL de gestion des erreurs
défaut. Ce menu permet à l’utilisateur de réaliser tères.
• les langues source et destination. (fonction HSurErreur).
simplement diverses opérations.
3. Si un outil de traduction est précisé, dans 3. Traduire les différents messages (voir para- Remarque : Pour transformer tous les messages de
Pour traduire ces menus, il est nécessaire de pos- votre code en messages multilingues, sous le volet
chaque élément contenant des informations à graphe précédent).
séder WDINT. "Code", dans le groupe "Langues", déroulez "Tra-
traduire, un bouton "Traduire" sera affiché. Ce Gestion automatique des erreurs
bouton permettra de traduire le texte sélectionné duire les chaînes" et sélectionnez l’option "Conver-
Par défaut, les fenêtres de gestion automatique tir les chaînes simples en messages multilingues".
en utilisant l’outil de traduction spécifié.
des erreurs sont fournies en anglais et en français.
4. Pour effectuer la traduction, il suffit de sélec- Pour les traduire dans une autre langue, il est né-
tionner le texte à traduire et cliquer sur le bouton cessaire de : 4  Choix de la langue par programmation
"Traduire".
1. Intégrer les fenêtres d’erreur par défaut dans
Export et réintégration des informa- votre application. Ces fenêtres sont fournies (avec Une application multilingue est une application • de prévoir une option (option de menu ou
tions à traduire leur code WLangage) à titre d’exemple, dans le qui pourra être diffusée dans plusieurs langues. bouton par exemple) permettant à l’utilisateur
L’outil WDMSG, disponible séparément, permet répertoire \Programmes\Donnees\Fenêtres pré- L’utilisateur pourra choisir la langue d’exécution de de changer de langue en cours d’exécution de
d’extraire tous les messages d’un projet (libellé des définies\Assertion - Erreur - Exception. l’application. Il est possible par exemple : l’application.
champs, ...), puis de les réintégrer après traduction. 2. Traduire les différents messages (voir para- • de demander la langue d’exécution au premier
Contactez le service commercial de PC SOFT pour graphe précédent). lancement de l’application
plus de détails sur les conditions d’utilisation de ce Groupware utilisateur
produit.
Par défaut, le groupware utilisateur est livré en an-
3.2 Langues utilisant un alphabet spécifique glais et en français.
Pour traduire une application utilisant le groupware
Si votre application gère des langues utilisant utilisateur, il est nécessaire de choisir une inté-
des alphabets spécifiques (Grec, Russe, ...), il est gration personnalisée lors du paramétrage du
nécessaire de saisir la traduction des différents groupware utilisateur dans votre application. Rap-
messages multilingues en utilisant ces alphabets pel : Pour paramétrer le groupware utilisateur, sous
spécifiques. le volet "Projet", dans le groupe "Projet", cliquez sur
WINDEV permet de gérer automatiquement l’utili- "Groupware Utilisateur".
sation des alphabets spécifiques sous l’éditeur.
140 Partie 4 : Concepts avancés Partie 4 : Concepts avancés 141
5  Gérer des alphabets spécifiques dans des fichiers de données
Optimiser une
Contenu

HFSQL
application
Lorsqu’une application permet d’afficher ou d’enre- Si l’application est utilisée dans un pays utilisant
gistrer des données dans des fichiers de données un alphabet spécifique, il est nécessaire de gérer
HFSQL, ces données sont saisies dans la langue en cet alphabet également au niveau des fichiers de Pour optimiser vos applications, WINDEV propose plusieurs méthodes :
cours. données. Ainsi, les recherches, les tris, ... seront
Si l’application est utilisée dans un pays utilisant effectués en fonction de l’alphabet choisi. • L’analyseur de performances qui permet de visualiser rapidement les traitements
des alphabets latins, aucune gestion spécifique les plus gourmands en temps. Il suffit ensuite d’optimiser le traitement voulu.
n’est nécessaire.

Test de l’application
6  Gestion de l’Unicode et des alphabets spécifiques
Analyse des performances de l’appli-
WINDEV propose deux modes de gestion : La configuration du mode de gestion de l’Unicode cation durant un test, visualisation
• le mode mono alphabet : Dans ce mode, si est réalisée dans les options de la configuration en des traitements les plus longs pour
votre application gère des langues utilisant des cours (onglet "Unicode" de la fenêtre de description une optimisation immédiate du code.
alphabets spécifiques (grec, coréen, ...), il est de la configuration). Pour lancer l’analyseur de perfor-
possible de changer par programmation : mances, sous le volet "Projet", dans
Important le groupe "Audit et performances",
• l’alphabet utilisé par toutes les polices écran Si vous choisissez de passer vos projets en mode déroulez "Analyser les performances"
(fonction ChangeAlphabet). Cet alphabet UNICODE, la cohabitation ANSI / Unicode génère et sélectionnez "Analyser les perfor-
pourra également être utilisé pour les don- toutefois des contraintes : il faut traduire les don- mances".
nées enregistrées dans les fichiers HFSQL. nées lors du passage d’un système de codage à
Pour plus de détails, consultez l’aide en ligne l’autre. L’échange de chaînes texte avec l’extérieur
(mot-clé : Multilingue). de l’application doit être adapté pour prendre en
• la langue du clavier manipulé par les utilisa- compte la nouvelle représentation mémoire des
teurs de l’application (fonction ChangeCla- chaînes (en Unicode, 1 caractère est codé sur
vier). 2 octets alors qu’en ANSI il est codé sur 1 seul
• le support complet de Unicode : Ce mode per- octet) : appel d’API, lecture ou écriture sur disque
met de gérer les alphabets non latins. Dans ce pour échange de données, lecture ou écriture de • L’Audit statique du projet qui signale les problèmes potentiels de programmation
mode, les fonctions ChangeAlphabet et Change- sockets contenant des chaînes, ... (groupes vides, éléments orphelins, etc.) ainsi que les fichiers volumineux pouvant
Clavier sont inutiles. Le changement d’alphabet Si vous choisissez de passer vos projets en mode entraîner des temps de chargement anormalement longs.
est réalisé automatiquement selon les options UNICODE, un assistant mesurant l’impact du pas-
de langue définies dans la description du projet. sage à Unicode est déclenché sur le projet lors du
Il est également possible de mélanger les diffé- passage à la norme Unicode. Audit statique
rents alphabets.
Rapport d’audit signalant les pro-
blèmes rencontrés, analyse de la bi-
bliothèque (pour détecter les fichiers
volumineux) et analyse du pack d’ins-
tallation.
Pour lancer l’audit statique, sous le
volet "Projet", dans le groupe "Audit et
performances", déroulez "Audit d’édi-
tion" et sélectionnez l’option "Déclen-
cher l’audit d’édition".

142 Partie 4 : Concepts avancés Partie 4 : Concepts avancés 143


• L’Audit dynamique du projet qui détectera les pertes de ressources, les erreurs mal
Livrer"Etats
Contenu

traitées, les lenteurs de l’application dans son environnement de production.


et Requêtes"
Audit dynamique
Avec le logiciel "Etats et Requêtes" librement redistribuable avec vos applications, les utilisateurs
Analyse des performances de pourront personnaliser selon leurs souhaits les états que vous leur proposez. Bien sûr, seuls les
l’application durant un test, vi- états que vous aurez choisis seront personnalisables.
sualisation des traitements
contenant des exceptions ou Projet WINDEV

1
des erreurs mal traitées.
Description du projet
Pour lancer l’audit dynamique,
sous le volet "Projet", déroulez
"Mode test" et sélectionnez l’op-
tion "Déboguer le projet avec
l’audit activé".

Etats / Requêtes

2 Description des états et des requêtes

Programmation
Fonction LanceEtatsEtRequêtes

3 Lancement du logiciel “Etats et Requêtes”


(optionnel)
Utilisation du menu “?” (automatique)

Lancement depuis l’aperçu (par défaut)

Exécutable

4 Création de l’exécutable

Création Installation

5 Installation du logiciel “Etats et Requêtes”

144 Partie 4 : Concepts avancés Partie 4 : Concepts avancés 145


MCU : Macro Code
Contenu

Macro Code Utilisateur : MCU en pratique


Utilisateur
1  Qu’est-ce que le MCU ?
Le Macro Code Utilisateur (MCU) permet à l’utilisateur final de saisir directement du code WLan-
gage et le greffer sur une application existante. Le MCU est une option permettant aux utilisateurs De nombreuses fonctionnalités du WLangage
avancés de réaliser leurs propres traitements sont accessibles à l’utilisateur et des restrictions
dans l’application. L’utilisateur final peut saisir du peuvent être appliquées par le développeur. Par
Considérons le cas suivant : code WLangage et le greffer sur une application exemple interdire l’utilisation des fonctions de
Une fenêtre de saisie d’une fiche client nécessite la présence d’une adresse email, mais ne véri- existante. gestion des fichiers. Afin d’assurer l’intégrité des
fie pas son format. L’utilisateur souhaite au moins vérifier la présence du caractère "@" dans Il est possible de faire remonter au développeur données, les ordres de modification ou d’ajout
l’adresse. les traitements ajoutés afin que ceux-ci soient inté- d’enregistrement ne sont pas disponibles pour
grés dans les sources de l’application. l’utilisateur.

2  Comment activer/désactiver le MCU ?


Il est bien sûr possible de débrancher cette fonc- • Autoriser l’utilisation des ordres HFSQL (HLitPre-
tionnalité, par fenêtre ou pour l’application entière mier, HFiltre, HAjoute, ...).
si vous le désirez. • Accepter les suggestions faites par les utilisa-
Pour désactiver le MCU sur une fenêtre, il faut co- teurs.
cher l’option "Interdire l’utilisation du M.C.U." dans Cette deuxième option permet l’envoi d’un email
l’onglet "Détail" de la description d’une fenêtre. par l’application lorsque l’utilisateur crée un macro
Pour gérer le MCU sur le projet : code. Le fichier "*.MCU" correspondant à la macro
Une icône située en haut de la fenêtre permet à 1. Affichez la fenêtre de description du projet : code est envoyé en pièce jointe. Vous récupérez
l’utilisateur de personnaliser les traitements. ainsi facilement les suggestions des clients et les
sous le volet "Projet", dans le groupe "Projet", cli-
quez sur "Description". intégrer automatiquement dans votre projet ! WIN-
2. Affichez l’onglet "Avancé". En cliquant sur le DEV dispose en effet d’une option d’importation
La fenêtre de configuration du MCU apparaît. bouton "Macro Code Utilisateur", vous avez la des fichiers "*.MCU" (sous le volet "Projet", dans le
L’utilisateur peut ajouter une nouvelle action groupe "Projet", déroulez "Importer" et sélectionnez
pour cette fenêtre. Dans ce cas, l’utilisateur possibilité d’autoriser la saisie de Macro Code
ajoute la vérification de l’adresse email. Utilisateur ou de l’interdire pour l’application com- l’option "Des Macro-Codes Utilisateurs ...").
plète. Si vous l’autorisez, deux options sont alors
disponibles :

L’utilisateur saisit le code WLangage. L’aide du


WLangage peut être lancée grâce à la touche F1.

Pour activer cette fonctionnalité (qui est désactivée par défaut), il suffit d’indiquer que le projet
accepte le MCU :
• soit dans la description du projet,
• soit lors de la création de l’exécutable.

146 Partie 4 : Concepts avancés Partie 4 : Concepts avancés 147


Les différents tests
Contenu
Le
Contenu

disponibles débogueur
WINDEV propose plusieurs méthodes pour tester votre application. Le tableau ci-dessous pré- Pour mettre au point votre code, un débogueur est livré en standard avec WINDEV.
sente ces différents modes. Le débogueur permet une exécution pas à pas de vos applications, en visualisant le code WLan-
Type de test Description gage exécuté, le contenu des variables, ...
Test de l’ensemble du projet Simule le lancement de l’application par l’exécutable. Per-
met de tester l’application dans son ensemble, même si
son développement n’est pas terminé.
Dès qu’un problème apparaît dans l’exécution du projet,
vous pouvez lancer le débogueur pour connaître et solu-
tionner le problème rencontré.
Test de l’élément en cours Permet de tester le fonctionnement de cet élément dès
que son développement est terminé.
Pour les états ou les fenêtres, il est possible de lancer le
débogueur dès qu’un problème est rencontré.
Test d’un projet pas à pas Permet de lancer le débogueur au lancement de l’applica-
(grâce au débogueur) tion. Cette solution permet de suivre méticuleusement le
déroulement de l’application à l’aide du débogueur.
Il est également possible de débogueur un exécutable
spécifique, un exécutable déjà lancé ou un exécutable
lancé sur un autre poste.
Test unitaire Permet de tester les fenêtres, les procédures et les Débogage du projet en cours
classes d’une application à différents niveaux de dévelop-
1. Utilisation d’un point d’arrêt, placé dans l’éditeur de code.
pement.
Lorsque la ligne précédée d’un point d’arrêt sera exécutée, le débogueur sera automatiquement
Les scénarios de test sont automatiquement générés en
lancé.
WLangage à partir du test de l’application ou du test d’un
élément. Les scénarios peuvent être directement modifiés Pour poser un point d’arrêt, il suffit de cliquer devant la ligne de code : une puce rouge apparaît.
sous l’éditeur de code.
Test de non-régression Permet de tester la non-régression d’un élément entre les
différentes versions d’une application.
Il suffit de sélectionner (ou de créer) le scénario de test à
exécuter.

148 Partie 4 : Concepts avancés Partie 4 : Concepts avancés 149


2. Utilisation du mot-clé STOP du WLangage dans le code WLangage
Tests unitaires/Tests
Contenu

Le débogueur sera automatiquement lancé dès que cette ligne de code sera exécutée.
3. Utilisation de l’option "Tracer le projet"
automatiques
Le débogueur est lancé en même temps que le test de l’application. L’option "Tracer le projet" est
disponible sous le volet "Projet", en déroulant "Mode test". Les tests unitaires (appelés également tests automatiques) permettent de tester les fenêtres, les
procédures et les classes d’une application à différents niveaux de développement.
4. Utilisation des touches Ctrl + [PAUSE] pendant le test de la fenêtre ou du projet
Il suffit de sélectionner (ou de créer) le scénario de test à exécuter.
Le débogueur est lancé lors de la prochaine action effectuée après l’utilisation des touches Ctrl +
Ces scénarios sont générés en WLangage et peuvent être directement modifiés.
[PAUSE].
Ces scénarios sont regroupés dans l’Editeur de Tests. L’Editeur de Tests analyse le résultat des
tests unitaires et calcule le taux de validation de l’application.
Débogage d’un exécutable
WINDEV permet également de déboguer directement l’exécutable associé au projet en cours sous Utilisation d’un scénario de test
WINDEV. Cet exécutable peut : Création d’un scénario de test (classes et procédures)

• être lancé depuis WINDEV, sur le poste de développement. 1 Fenêtre WINDEV sous l’éditeur 1 Affichage de l’éditeur de tests

• être déjà en cours d’exécution sur le poste de développement.


• être lancé depuis WINDEV, sur un poste distant.
• être déjà en cours d’exécution sur un poste distant.

Débogage d’un composant 2 Enregistrement du scénario de test 2 Lancement du test

Le débogage d’un composant est réalisé à partir du projet du composant. Il est possible de :
• Tester le composant depuis le projet du composant.
• Tester le composant en exécutant un autre projet présent sur le poste de développement. Il est
Correction
ainsi possible de tester le composant à partir du projet qui l’utilise.
• Tester le composant en exécutant un exécutable présent sur le poste de développement. Il est 3 Code WLangage du scénario de test 3 Résultat du test
ainsi possible de tester le composant directement à partir de l’exécutable qui l’utilise.

Pour créer un test unitaire sur la fenêtre en cours, sous le volet "Tests automatiques", dans le
groupe "Tests", déroulez "Nouveau" et sélectionnez "Enregistrer un nouveau test".
Pour créer un test unitaire sur une procédure ou une classe, sélectionnez cette procédure ou
cette classe dans le volet "Explorateur de projet" et sélectionnez l’option "Tests unitaires .. Créer
un test unitaire" du menu contextuel.

150 Partie 4 : Concepts avancés Partie 4 : Concepts avancés 151


Tests unitaires sur
Contenu

Test d’une application en pratique


l’exécutable
1  Présentation
Il est possible de passer les tests unitaires créés avec WINDEV sur un exécutable déployé, grâce
à l’automate de tests. WINDEV propose plusieurs méthodes pour tester Le test d’une requête seule permet d’exécuter uni-
vos applications : quement la requête en cours. Vous pouvez ainsi
choisir de tester le fonctionnement d’une requête
1
Configuration de • test de l’ensemble du projet,
l’automate de tests • test d’une fenêtre seule, dès que son développement est terminé.
4
Enregistrement du résultat
dans la base de données • test d’une requête seule (consultez le livre "Etats Le test d’un état seul permet d’exécuter unique-
Automate de tests des Centres de Contrôle et Requêtes" pour plus de détails), ment l’état en cours. Vous pouvez ainsi choisir de
tester le fonctionnement d’un état dès que son
• test d’un état seul (consultez le livre "Etats et développement est terminé. Comme pour le test du
- Chemin de l’exécutable Requêtes" pour plus de détails),
- Chemin des données de tests projet, il est possible de lancer le débogueur dès
• exécution du projet pas à pas, qu’un problème est rencontré.
• test des performances de votre application, L’exécution du projet pas à pas permet de lancer
• test de non-régression/test automatique. le débogueur au lancement de l’application. Cette
3 Résultats des tests
Le test de l’ensemble du projet permet de simuler
solution permet de suivre méticuleusement le dé-
roulement de l’application.
le lancement de l’application par l’exécutable. Il est
WD2XXTest.DLL ainsi possible de tester l’application dans son en- Le test des performances de votre application per-
semble, même si son développement n’est pas ter- met de vérifier et d’optimiser le temps d’exécution
miné. Dès qu’un problème apparaît, vous pouvez de votre application.

2
Lancement de l’exécutable Le test de non-régression (ou test automatique)
déployé en mode test. Les
lancer le débogueur pour connaître et solutionner
le problème rencontré. est basé sur l’exécution de scripts. Il permet de
données de tests sont utilisées.
Le test d’une fenêtre permet d’exécuter unique- vérifier que lors de l’exécution de vos applications,
ment la fenêtre en cours. Vous pouvez ainsi choisir les fonctionnalités existantes sont toujours suppor-
de tester votre projet à partir d’une fenêtre donnée, tées.
Exécutable déployé Données de tests
ou de tester le fonctionnement d’une fenêtre dès Pour compléter ces différentes méthodes, WINDEV
avec : avec : propose également de connaître le "Code cove-
- Son framework
que son développement est terminé. Comme pour
- La bibliothèque de tests (WDL) rage" de l’application, c’est-à-dire la mesure de la
- Ses fichiers de données - Les données de test (répertoire “Données
le test du projet, il est possible de lancer le débo-
de tests automatiques”) gueur dès qu’un problème est rencontré. couverture des tests réalisés sur une application.
- Les fichiers de données utilisés pour les Pour plus de détails, consultez l’aide en ligne.
tests (si nécessaire)

2  Tester et déboguer un projet WINDEV (poste de développement)

2.1 Présentation • Lancement et débogage de l’exécutable corres-


pondant au projet en cours.
Le test de l’ensemble du projet WINDEV permet
de simuler le lancement de l’application par l’exé- • Débogage d’un exécutable déjà lancé sur le
cutable. Il est ainsi possible de tester l’application poste de développement.
dans son ensemble, même si son développement Remarque : Le test d’un projet peut être lancé quel
n’est pas terminé. Dès qu’un problème apparaît que soit l’élément en cours sous l’éditeur.
dans l’exécution du projet, vous pouvez lancer le
débogueur pour connaître et solutionner le pro- 2.2 Tester et déboguer le projet en cours
blème rencontré. Pour tester un projet depuis l’éditeur, sous le volet
WINDEV présente une palette complète de tests "Projet", déroulez "Mode test" et sélectionnez l’op-
sur une application pouvant être réalisés à partir tion "Déboguer le projet" (combinaison de touches
du poste de développement : Ctrl + F9). L’éditeur est automatiquement réduit en
• Test et débogage du projet en cours sous l’édi- icône et le projet s’exécute.
teur.

152 Partie 4 : Concepts avancés Partie 4 : Concepts avancés 153


2.3 Lancer l’exécutable et le déboguer sur le 2.4 Débogage d’un exécutable déjà lancé 4.2 Arrêter le test d’une fenêtre • 2ème méthode :
poste de développement sur le poste de développement Pour arrêter le test, plusieurs méthodes sont pos- • Revenez dans l’éditeur avec la barre des
Certains problèmes ne peuvent être reproduits que Certains problèmes ne peuvent être reproduits que sibles : tâches ou avec Alt + Tab.
lors d’un test de l’exécutable en condition d’utilisa- lors d’un test de l’exécutable en condition d’utilisa- • 1ère méthode : • Confirmez l’arrêt du test. WINDEV affiche
tion réelle. Ce mode de test permet par exemple de tion réelle. Fermez l’application en cours de test. WINDEV l’éditeur en cours au moment du lancement
déboguer un exécutable après l’avoir installé sur le Ce mode de test permet par exemple de trouver un affiche l’éditeur en cours au moment du lance- du test.
poste de développement. problème qui se produirait uniquement dans l’exé- ment du test.
Dans ce cas, le code exécuté provient directement cutable (et non en tests).
des bibliothèques (et non du code présent dans les Le principe est simple :
éléments présents sur le poste). Le code peut donc • Le développeur lance l’exécutable sur son poste
5  Tracer un projet
être déphasé entre le code du projet en cours et le et se positionne directement à l’endroit voulu
code de l’exécutable : le code déphasé est surligné dans l’application.
en rose lors du débogage. 5.1 Principes du débogage 5.4 Déboguer sans le débogueur
• Dans WINDEV, le développeur ouvre le projet
Ce mode de test permet de lancer un exécutable correspondant à l’exécutable et demande à Le débogage d’une application consiste à : Dans certains cas, l’exécution d’un programme
spécifique installé sur le poste de développement s’attacher à l’exécutable lancé. • vérifier le bon fonctionnement d’un traitement, avec ou sans le débogueur peut être différente.
et de le déboguer directement. En effet, le débogueur introduit des pauses dans
• Le débogueur sous WINDEV permet de suivre • comprendre le fonctionnement d’un programme
Pour plus de détails, consultez l’aide en ligne. l’exécution du programme pas à pas. existant, l’exécution du traitement, durant lesquelles Win-
• vérifier la valeur des variables, dows effectue certaines tâches.
Dans ce cas, le code exécuté provient directement
des bibliothèques (et non du code présent dans les • vérifier le bon fonctionnement de cas particu- Ainsi, le débogueur ne peut pas être utilisé dans
éléments présents sur le poste). Le code peut donc liers dans une application. une procédure appelée par timer ou dans le code
être déphasé entre le code du projet en cours et le de l’ascenseur.
code de l’exécutable : le code déphasé est surligné Le débogueur permet de réaliser ces opérations. Remarque : Pour connaître l’ensemble des limites
en rose lors du débogage. Remarque : WINDEV met également à votre dispo- du débogueur, consultez l’aide en ligne.
Pour plus de détails, consultez l’aide en ligne. sition divers outils de trace (fenêtre de trace, boîte Pour déboguer ces applications, il peut être né-
d’information, ...). Pour plus de détails, consultez le cessaire par exemple de suivre l’évolution d’une
paragraphe Déboguer sans le débogueur. valeur, le passage dans différentes procédures, ...
3  Tester et déboguer un projet WINDEV sur le poste de l’utilisateur Ces informations peuvent être :
5.2 Présentation du débogueur • affichées à l’écran.
WINDEV offre plusieurs possibilités pour tester et • Lancement et débogage de l’exécutable sur une Le débogueur permet de tracer les programmes en • stockées dans un fichier de trace.
déboguer un projet directement sur le poste de dé- machine distante WLangage afin de faciliter la mise au point de pro-
veloppement. Mais dans certains cas, il est néces- • Débogage d’une application en cours d’exécu- grammes. Attention : Si les informations sont affichées à
saire de déboguer directement sur le poste de l’uti- tion sur une machine distante. l’écran, elles doivent être affichées uniquement
Le code source exécuté est visualisé à l’écran. Les
lisateur final (connecté par réseau ou par Internet). lors des tests de l’application.
Pour ces deux fonctionnalités, une configuration différents traitements exécutés sont hiérarchisés
Il est ainsi possible de déboguer, depuis votre spécifique de la machine distante est nécessaire. dans le volet "Débogueur". Afficher des informations
bureau de Paris, une application qui s’exécute à Remarque : pour déboguer une application WIN- La valeur des variables peut être visualisée : Deux outils permettent d’afficher des informations :
Taïwan. Le débogage est effectué sans se déplacer, DEV à distance, l’application WINDEV doit inclure la • individuellement dans la bulle d’aide de survol • les boîtes d’information : fonction Info du WLan-
directement sur la configuration du client. librairie WD240CPL.DLL dans son framework. de chaque variable. gage.
Deux fonctionnalités sont disponibles : Pour plus de détails, consultez l’aide en ligne. Attention : L’affichage d’une boîte d’information
• dans le volet "Débogueur".
est bloquant.
5.3 Fonctionnalités du débogueur • la fenêtre de trace : fonction Trace du WLan-
4  Tester une fenêtre Le débogueur permet de : gage.
• connaître la pile des appels, La fenêtre de trace s’affiche en haut à gauche de
l’écran, sans interrompre le déroulement du pro-
4.1 Tester la fenêtre depuis l’éditeur Lors du test, l’ensemble des fonctionnalités de la • visualiser le contenu des variables ou des gramme.
fenêtre pourra être exécuté. Il sera possible par expressions,
Pour tester une fenêtre depuis l’éditeur : exemple d’ouvrir d’autres fenêtres. • exécuter pas à pas avec possibilité de sauter Gérer l’affichage des informations de
1. ouvrez la fenêtre à tester. débogage
des blocs,
2. Cliquez sur parmi les boutons d’accès L’affichage à l’écran des informations de débogage
• utiliser des points d’arrêt conditionnels,
rapide (ou F9). L’éditeur est automatiquement est utile uniquement en mode test.
• modifier le code tout en continuant l’exécution,
réduit en icône et la fenêtre s’exécute. Avant de diffuser une application, il est donc néces-
• ... saire de supprimer tout affichage superflu.

154 Partie 4 : Concepts avancés Partie 4 : Concepts avancés 155


ModeDebug = Vrai
Pour éviter tout oubli, il est conseillé de gérer l’affi-
FIN
6  Test de performances
chage des informations de débogage à l’aide d’une
procédure globale. Par exemple :
SI ModeDebug = Vrai ALORS
PROCEDURE MaTrace(ChaîneATracer) Trace(ChaîneATracer)
6.1 Présentation • l’onglet "Appels" permet de visualiser le détail
SI EnModeTest() = Vrai ALORS SINON des opérations réalisées dans un traitement.
L’analyseur de performances est un outil permet-
Trace(ChaîneATracer) Fichier = fOuvre(CheminFichier, tant de vérifier et d’optimiser le temps d’exécution Pour chaque traitement, les informations suivantes
FIN foCréationSiInexistant + foEcriture + de votre application. sont affichées :
foAjout)
Dans ce code, selon le résultat de la fonction En- Son principe est simple : Fonction Fonction, traitement ou
SI Fichier <> -1 ALORS
ModeTest, la fenêtre de trace apparaît uniquement DateHeureTrace est un DateHeure
Vous testez votre application. Pendant ce test, procédure exécutée.
lors d’un test de l’application. DateTrace est une Date l’analyseur de performances répertorie toutes les
Temps Total Temps d’exécution de la
Une telle procédure permet de laisser l’appel aux HeureTrace est une Heure actions effectuées et les traitements correspon-
fonction.
fenêtres de trace dans le code de l’application, DateHeureTrace = DateHeureSys() dants exécutés.
sans risque d’apparition en clientèle. DateTrace = Madate..PartieDate A la fin du test, l’analyseur de performances vous NB appels Nombre d’appels effec-
HeureTrace = Madate..Par présente : tués à la fonction (procé-
L’appel à cette procédure de trace est iden- dure ou traitement).
tieHeure • les 10 manipulations qui ont pris le plus de
tique à l’utilisation de la fonction Trace :
fEcritLigne(Fichier, temps Temps 1 appel Temps d’exécution d’un
MaTrace("Client : "+ ... DateVersChaîne(DateTrace) + ...
• toutes les actions effectuées dans l’application appel à la fonction (procé-
Client.NumClient) " - " +
testée, triées par durée (de l’action la plus dure ou traitement).
HeureVersChaîne(HeureTrace))
Créer un fichier de trace fEcritLigne(Fichier, ChaîneA longue à l’action la moins longue). % code Pourcentage de code
Lors de traitements longs (traitements Batchs, ...), Tracer) Il est alors possible de sélectionner un traitement exécuté hors appel à une
pour contrôler le bon déroulement du programme, fEcritLigne(Fichier, " ") afin d’analyser les causes de son temps de traite- fonction WLangage ou à
il est nécessaire de conserver une trace physique fFerme(Fichier) ment pour l’optimiser. un appel d’une fonction
des traitements effectués (un fichier texte par FIN ou une procédure person-
exemple). FIN 6.2 Lancer l’analyseur de performances nelle.
La procédure suivante permet de gérer par exemple Remarques : Pour lancer l’analyseur de performances, sous Parent Traitement qui a appelé la
l’affichage de la trace : • Le fichier de trace est créé par défaut dans le le volet "Projet", dans le groupe "Audit et perfor- fonction.
• soit à l’écran (paramètre /DEBUG en ligne de répertoire des données de l’utilisateur. Ce fichier mances", déroulez "Analyser les performances" et
commande). a pour nom le nom du projet. Ce fichier contient sélectionnez l’option "Analyser les performances". Remarques :
• soit dans un fichier texte (mode par défaut). les informations à tracer durant l’exécution du Le projet est alors automatiquement exécuté en • Le libellé "Exécution complète" représente le
programme. mode test. Vous pouvez exécuter le traitement à temps complet de l’exécution du test de l’appli-
PROCEDURE MaTrace(ChaîneATracer) Les informations sont complétées par la date et optimiser dans votre application. cation réalisé avec l’analyseur de performances.
CheminFichier est une chaîne l’heure de chaque "Trace". Il est ainsi possible Pour revenir sous l’éditeur, il suffit de fermer votre • Le libellé "Total Fenêtre XXX" représente le
CheminFichier = fRepDonnéesUtilisa de déterminer un éventuel dysfonctionnement application. L’analyseur de performances affiche temps complet de l’exécution de la fenêtre XXX
teur() + ProjetInfo(piNomProjet) + ".
durant le traitement. alors le résultat de l’analyse. (de son ouverture à sa fermeture).
txt"
Fichier est un entier • Exemple de contenu du fichier de trace : Remarque : Il est conseillé d’utiliser l’analyseur
ModeDebug est un booléen = Faux de performances pour optimiser votre application 6.4 Choisir un traitement à optimiser
01/12/2015 - 10:53:25:20
SI Position(LigneCommande(), "/ Nom de client : Martin
(avant sa diffusion par exemple). Le choix du traitement à optimiser se fait en fonc-
DEBUG") > 0 ALORS tion de plusieurs critères :
6.3 Lire le résultat de l’analyseur de perfor-
mances • le temps d’exécution du traitement. Les traite-
ments les plus longs doivent bien entendu être
L’analyseur de performances présente le résultat optimisés.
de l’analyse dans plusieurs onglets :
• le pourcentage de temps passé dans le traite-
• l’onglet "Synthèse" présente les dix traitements ment de la fonction ou de la procédure. Plus ce
qui ont pris le plus de temps. pourcentage est important, plus le code peut
• l’onglet "Cartographie" présente une vision gra- contenir des traitements pouvant être optimisés.
phique des traitements les plus importants.
Remarque : Si le traitement correspond à une fonc-
• l’onglet "Détail" présente tous les traitements
tion WLangage, il est relativement difficile de l’opti-
lancés lors du test de l’application (classés du
miser.
plus long au plus rapide).

156 Partie 4 : Concepts avancés Partie 4 : Concepts avancés 157


7  Tests de non-régression PARTIE 5
7.1 Présentation Les tests et le code associé ne sont pas intégrés
à l’exécutable et ne sont pas livrés en clientèle. Le
Pour tester une fenêtre depuis l’éditeur :
nombre de tests d’une application n’a donc aucune
1. ouvrez la fenêtre à tester. incidence sur la taille de l’application livrée en
2. Cliquez sur parmi les boutons d’accès clientèle.
rapide (ou F9). L’éditeur est automatiquement Pour plus de détails, consultez l’aide en ligne (mot-
réduit en icône et la fenêtre s’exécute. clé : "Test automatique").
Lors du test, l’ensemble des fonctionnalités de la
fenêtre pourra être exécuté. Il sera possible par 7.3 L’utilitaire WDTest
exemple d’ouvrir d’autres fenêtres. WDTest est un utilitaire permettant d’enregistrer

Installation
7.2 Tests automatiques et d’exécuter automatiquement des scripts de test
d’applications (WINDEV ou non WINDEV).
Chaque test est composé d’un scénario directe- Un script de test (appelé également "macro")
ment éditable dans l’interface du produit. Ce scé- contient principalement les différentes manipula-
nario est écrit en WLangage et peut être modifié à tions (position de la souris, clic de souris et touche
n’importe quel moment. du clavier utilisé) effectuées sur une application.
Ces tests peuvent être lancés par exemple avant Après avoir été enregistré, le script de test peut être
chaque création d’exécutable pour vérifier le bon exécuté à volonté. Lorsqu’un script est exécuté, un
fonctionnement d’une application après diverses script de résultat est automatiquement généré. Les
modifications. différences existantes entre les deux scripts (script
Les éléments suivants peuvent être testés : d’origine et script de résultat) sont signalées.
• les fenêtres WINDEV. Il est ainsi possible par exemple de vérifier le fonc-
• les collections de procédures. tionnement de vos applications WINDEV entre deux
• les classes. mises à jour.
• les exécutables WINDEV. WDTest permet donc d’automatiser les procédures
de test de vos applications.
Chaque test est associé à un code WLangage : le
scénario du test. Ce scénario est visible sous l’édi- Important : Pour effectuer un test avec succès, il
teur de code. Le code des tests peut être modifié. est nécessaire d’utiliser exactement la même confi-
guration :
• sur le poste où le test est créé.
• sur le poste sur lequel le test est exécuté.
Pour plus de détails, consultez l’aide en ligne (mot-
clé : "WDTest").

158 Partie 4 : Concepts avancés


Le Framework
Contenu

WINDEV
Le Framework WINDEV est l’ensemble des librairies (fichiers .DLL) nécessaires au fonctionnement
d’une application WINDEV.
Lors de la création de l’exécutable, vous pouvez choisir d’utiliser :
• le Framework à côté de l’exécutable,
• le Framework intégré à l’exécutable,
• le Framework WINDEV commun.

Utilisation d’un Framework à côté de l’exécutable


Dans le cas de l’utilisation d’un Framework à côté de l’exécutable, les librairies sont installées
dans le répertoire de chaque application. De cette façon, chaque application WINDEV utilise sa
propre version des librairies. Il est possible de renommer les librairies dans le cas de l’utilisation
d’un Framework à côté de l’exécutable.

Avantages du Framework à côté de l’exécutable :


• Chaque application peut exploiter une version différente des DLL du Framework.
• La mise à jour du Framework d’une application peut être faite sans perturber le fonctionne-
ment des autres applications.
• Le Framework peut être renommé.

Utilisation du Framework intégré à l’exécutable


Dans le cas de l’utilisation du Framework intégré à l’exécutable, l’exécutable est autonome. Les
DLL du Framework ne sont pas extraites au lancement de l’exécutable.

Avantages du Framework intégré à l’exécutable :


• Exécutable autonome.
• Pas d’extraction de DLL du Framework.
Remarque : Selon les fonctionnalités utilisées par l’application, l’utilisation du Framework intégré
à l’exécutable peut ne pas être possible.

160 Partie 5 : Installation Partie 5 : Installation 161


Utilisation du Framework WINDEV commun
Les différents modes d’ins-
Contenu

Dans le cas de l’utilisation du Framework commun, les librairies sont installées dans un répertoire
commun. Ces librairies sont partagées par toutes les applications WINDEV installées sur le même
tallation d’une application
poste.

Avantages du Framework commun : Installation individuelle


• L’espace disque utilisé par le Framework (environ 30 Mo) est mutualisé entre les applications. L’installation individuelle consiste à créer un programme d’installation qui sera installé sur
• La mise à jour du Framework ne se fait qu’une fois pour toutes les applications installées. chaque poste utilisateur grâce à un support d’installation.
• Le Framework commun peut être renommé.

Remarque : Dans le cadre de l’utilisation du Framework commun, il est possible de remplacer une
ou plusieurs DLL (par exemple si une version particulière est nécessaire). Poste de Poste
développement Utilisateur 1
Création de
Installation
l’exécutable

Support
Création du d’installation
Utilisation de
programme (CD-ROM,
l’application
d’installation clé USB, ...)

Ce mode d’installation est compatible aussi bien avec :


• des fichiers de données au format HFSQL Classic installés en local sur le poste utilisateur,
• des fichiers de données au format HFSQL Classic installés en réseau et accessibles depuis le
poste utilisateur,
• des fichiers de données au format HFSQL Client/Serveur installés sur un serveur.

162 Partie 5 : Installation Partie 5 : Installation 163


Installation réseau (avec mise à jour automatique) Installation HTTP (avec mise à jour automatique)
L’installation réseau consiste à créer un programme d’installation qui sera installé sur un poste
Serveur. Tous les postes utilisateur voulant installer l’application, lanceront directement l’installa- L’installation HTTP consiste à créer un programme d’installation qui sera installé sur un Serveur
tion de l’application par le réseau. Web.
Tous les postes utilisateur voulant installer l’application, lanceront directement l’installation de
l’application par une URL HTTP.
Si une mise à jour est disponible sur le serveur Web, la mise à jour de l’application sur le poste
utilisateur sera proposée au lancement de l’application.
Poste de Poste
développement Utilisateur 1
Création de Utilisation de
l’exécutable l’application
Poste de Poste
développement Utilisateur 1
Création de
Création du
l’exécutable
programme
d’installation
Utilisation de
l’application

Création du
programme
d’installation
Installation de
l’application
Installation Serveur par le réseau
via support
d’installation d’application
Installation
de la version
de référence Serveur Installation de
Web
(installation Installation
cliente) via support l’application
d’installation par Internet
Si une mise à jour est disponible sur le serveur d’application, la mise à jour de l’application sur le Installation
de la version
poste utilisateur sera proposée au lancement de l’application. de référence
(installation
cliente)
Une installation réseau permet un contrôle fin des postes utilisateurs (versions déployées, mises
à jour obligatoires, déconnexion des utilisateurs, etc.)

Ce mode d’installation est compatible aussi bien avec :


• des fichiers de données au format HFSQL Classic installés en local sur le poste utilisateur,
• des fichiers de données au format HFSQL Classic installés en réseau et accessibles depuis le
poste utilisateur,
• des fichiers de données au format HFSQL Client/Serveur installés sur un serveur.

164 Partie 5 : Installation Partie 5 : Installation 165


Installation multi-sites (avec mise à jour automatique) Installation réseau de type Push
L’installation multi-sites permet d’installer une application sur plusieurs sites différents (un site L’installation réseau consiste à créer un programme d’installation qui sera installé sur un poste
représentant par exemple une filiale d’une entreprise). Serveur.
L’installation multi-sites consiste à créer un programme d’installation qui sera installé sur un ser- L’installation sera effectuée depuis le poste Serveur, par l’administrateur réseau sur les postes
veur Web. Utilisateur sélectionnés grâce à WD2xxAdminExe.
Tous les sites voulant installer l’application lanceront directement l’installation de l’application
par une URL HTTP. Dans ce cas, le programme d’installation sera alors installé sur un poste Ser-
veur du site.
Tous les postes utilisateurs voulant installer l’application, lanceront l’installation directement par Poste de Poste
le réseau. développement Utilisateur 1
Cette installation combine les avantages de l’installation réseau et de l’installation HTTP en per-
mettant un déploiement à grande échelle et un contrôle fin des installations locales. Création de
l’exécutable
Poste de Poste
développement Utilisateur 1 Utilisation de
l’application
Création de
l’exécutable
Création du
programme
Utilisation de d’installation
l’application
Création du
programme
d’installation

Serveur
Installation
d’application Installation de
Installation Serveur Serveur Installation de
via support l’application
via support
Web Installation d’application l’application Installation de la
d’installation par le réseau d’installation sur le poste
par Internet version de
utilisateur
Installation Installation référence
de la version de la version par le réseau
de référence de référence (installation cliente)
(installation (installation
cliente) cliente)
Demande d’installation WDAdminExe :
(via une page web) Exécution de
l’installation sur
un des postes
utilisateurs
Si une mise à jour est disponible sur le serveur Web, la mise à jour de l’application sur le serveur
d’application est automatiquement réalisée.

Administrateur réseau

Une installation en Push peut ensuite être mise à jour soit en Push, soit dans le cadre d’une ins-
tallation réseau.

166 Partie 5 : Installation Partie 5 : Installation 167


Déploiement d’une application WINDEV 1.2 Outils pour créer le programme d’instal-
lation
Lors du développement d’une application, une des • dans les différents modes d’installation dispo- Différents outils sont disponibles pour créer le pro-
phases importantes consiste à déployer cette appli- nibles (installation monoposte ou réseau). gramme d’installation, le maintenir et le personna-
cation sur les postes des utilisateurs. liser.
Ce chapitre décrit rapidement les différents types
WINDEV optimise ce déploiement en offrant un d’installation proposés par WINDEV et leurs spéci-
large choix : ficités.
• dans les supports d’installation. Pour plus de détails sur la création du programme Assistant WDINST, Personnalisation
• dans les outils disponibles pour créer le pro- d’installation, consultez l’aide en ligne. éditeur de
gramme d’installation.
d’installation WDSETUP
Créer un programme d’installation X (conseillé) X
1  Installation : Tableau récapitulatif standard (en français et anglais par
défaut)
1.1 Support d’installation Maintenir un programme d’installa- X X
tion
En fonction du support d’installation utilisé (Inter-
net, Réseau interne, ...), WINDEV offre plusieurs Personnaliser un programme d’ins- X X
modes de génération de l’installation. tallation (le programme qui est lancé (installation multi-
Pour optimiser votre installation, choisissez le chez le client) lingue par exemple)
mode de génération conseillé.
Mode de lancement Sous le volet Sous le volet Projet WDSETUP dis-
"Projet", dans le "Outils", dans ponible dans le sous-
groupe "Géné- le groupe "Utili- répertoire "Exemples"
ral", cliquez sur taires", cliquez du répertoire d’instal-
"Procédure d’ins- sur "WDInst". lation de WINDEV.
tallation".
Modes de génération de l’installation proposés par WINDEV
réalisée en deux étapes :
1.3 Les différents types d’installation
Exécutable Répertoires Répertoire CD ROM • L’application de référence est installée sur
Auto- à la taille de unique DVD ROM Deux types d’installations sont disponibles dans le serveur. L’application de référence corres-
Extractible disquettes WINDEV : pond au programme d’installation de l’appli-
Installation individuelle : conseillée pour les cation sur les postes utilisateur.
Internet X (conseillé) applications monopostes. • L’application finale est installée sur chaque
Le programme d’installation installe l’applica- poste utilisateur, en exécutant le programme
CD ROM / X X (conseillé)
d’installation

tion directement sur le poste utilisateur. d’installation présent sur le serveur. Les
Supports

DVD ROM Autorun mises à jour seront ensuite effectuées auto-


• Installation avec mise à jour automatique :
possible conseillée pour les applications multi-postes. matiquement lorsque l’application de réfé-
L’installation avec mise à jour automatique est rence évoluera sur le serveur.
Réseau X X (conseillé) X
interne
2  Création du programme d’installation

Installation individuelle • Installation compacte


Différents types d’installation sont possibles : Une installation standard est effectuée. Cepen-
• Installation standard dant, le programme d’installation est moins
Le programme d’installation est indépendant important en taille car il n’utilise pas de DLL
de l’application. Tous les fichiers nécessaires spécifiques et certaines options de personnali-
à l’application sont installés sur chacun des sation ne sont pas disponibles.
postes utilisateurs. Pour prendre en compte une
mise à jour, cette mise à jour doit être exécutée
sur chacun des postes utilisateurs.
168 Partie 5 : Installation Partie 5 : Installation 169
• Installation par un package MSI Cette installation permet notamment de : 2.2 Installer une application WINDEV Pour installer une mise à jour de votre application :
Une installation standard utilisant les fonction- • gérer la mise à jour automatique de l’applica- 1. Lancez votre mise à jour d’installation sur le
nalités de l’installateur intégré de Windows est tion installée sur un serveur HTTP. . Installation standard, compacte ou poste serveur. Les fichiers de l’application de
effectuée. MSI
• paramétrer l’emplacement des fichiers néces- référence modifiés par la mise à jour sont rem-
Pour installer votre application, il suffit de lancer placés. Il est possible de sauvegarder ces fichiers
Installation avec mise à jour auto- saires à l’application. Il est possible de gérer
matique le programme d’installation de l’application sur le remplacés.
différents cas, par exemple :
poste utilisateur. Les fichiers nécessaires à l’appli-
Différents types d’installation sont possibles : • Installation de tous les fichiers de l’applica- 2. Lors du lancement de l’application depuis le
cation s’installent dans le répertoire d’installation
• Installation en réseau local (LAN), avec prise tion sur le serveur. poste d’un utilisateur, la mise à jour de l’applica-
spécifié.
en charge possible du "Push". Une première • Installation de la base de données sur tion est automatiquement proposée.
Pour installer une mise à jour de votre application,
installation de l’application sera réalisée sur le le serveur et des fichiers nécessaires à il suffit de lancer le programme d’installation de la Installation avec mise à jour automa-
réseau, dans un répertoire partagé. Ce réper- l’exécution de l’application (".EXE", ".WDL", mise à jour sur le poste utilisateur. Les fichiers de tique en mode PUSH
toire contiendra le programme d’installation ".DLL", ...) sur chaque poste utilisateur. l’application modifiés par la mise à jour sont rem- Pour installer votre application en mode PUSH :
utilisé par les utilisateurs finaux et la version de • Installation d’une partie de la base de don- placés. 1. Lancez votre programme d’installation sur le
référence permettant de gérer les mises à jour. nées sur le serveur et d’une autre partie poste serveur. Les fichiers nécessaires à l’appli-
Cette installation permet de : Installation avec mise à jour auto-
sur chaque poste utilisateur. Les fichiers matique cation de référence s’installent dans le répertoire
• gérer la mise à jour automatique de l’applica- nécessaires à l’exécution de l’application d’installation spécifié. L’application de référence
tion installée en réseau. (".EXE", ".WDL", ".DLL", ...) sont également Pour installer votre application :
correspond à un programme d’installation client.
• connaître les caractéristiques des utilisa- installés sur chaque poste utilisateur. 1. Lancez votre programme d’installation sur le
2. Le programme d’administration des applica-
teurs connectés à l’application à un moment • Installation multisite. Cette installation est la poste serveur. Les fichiers nécessaires à l’appli-
tions réseau se lance automatiquement.
donné. combinaison d’une installation réseau local et cation de référence s’installent dans le répertoire
d’installation spécifié. L’application de référence 3. Sélectionnez le poste du réseau sur lequel l’ins-
• paramétrer l’emplacement des fichiers néces- d’une installation HTTP. L’installation HTTP est tallation doit être effectuée.
utilisée pour la mise à jour de l’installation de correspond à un programme d’installation client.
saires à l’application. Il est possible de gérer
différents cas, par exemple : référence sur le réseau local. 2. Exécutez le programme d’installation client à Pour installer une mise à jour de votre application
partir de chaque poste utilisateur. Les fichiers en mode PUSH :
• Installation de tous les fichiers de l’applica-
2.1 Créer un programme d’installation nécessaires à l’application client sont installés 1. Lancez votre mise à jour d’installation sur le
tion sur le serveur.
Pour créer un programme d’installation permettant dans le répertoire d’installation spécifié. poste serveur. Les fichiers de l’application de
• Installation de la base de données sur
le serveur et des fichiers nécessaires à de : référence modifiés par la mise à jour sont rem-
l’exécution de l’application (".EXE", ".WDL", • déployer une application WINDEV, il est pos- placés. Il est possible de sauvegarder ces fichiers
".DLL", ...) sur chaque poste utilisateur. sible : remplacés.
• Installation d’une partie de la base de don- • soit d’utiliser l’assistant de création du pro- 2. Lancez le programme d’administration des
nées sur le serveur et d’une autre partie gramme d’installation directement depuis applications réseau.
sur chaque poste utilisateur. Les fichiers WINDEV (sous le volet "Projet", dans le 3. Sélectionnez le poste du réseau sur lequel la
nécessaires à l’exécution de l’application groupe "Génération", cliquez sur "Procédure mise à jour doit être effectuée.
(".EXE", ".WDL", ".DLL", ...) sont également d’installation"). Cet assistant permet de créer
installés sur chaque poste utilisateur. facilement les différents types de programme
• Si la prise en charge du "Push" est utilisée, d’installation.
cette installation permet également de : • soit d’utiliser l’éditeur d’installation WDINST
• déployer une nouvelle application sur un (sous le volet "Outils", dans le groupe "Uti-
réseau depuis un unique poste d’adminis- litaires", cliquez sur "WDInst"). Cet éditeur
tration. permet de personnaliser entièrement le pro-
• déployer une mise à jour de l’application gramme d’installation.
sur un réseau depuis un unique poste • fournir d’autres fichiers, il est nécessaire
d’administration. d’utiliser l’assistant de création du programme
• Installation par HTTP (sur un serveur proprié- d’installation lancé depuis l’éditeur d’installa-
taire ou dans le CLOUD). Une première installa- tion WDINST (option "Fichier .. Nouveau" depuis
tion de l’application sera réalisée sur un serveur WDINST).
HTTP. Les utilisateurs pourront se connecter à Rappel : Pour lancer l’éditeur d’installation
une page Web pour télécharger le programme WDINST, sous le volet "Outils", dans le groupe
d’installation de l’application. "Utilitaires", cliquez sur "WDInst".

170 Partie 5 : Installation Partie 5 : Installation 171


Surveillez vos
Contenu

PARTIE 6
applications
Une application dépend souvent de nombreux paramètres extérieurs : site Web, Serveur HFSQL,
réseau, ... Pour optimiser la gestion des incidents, WINDEV propose d’utiliser un robot de surveil-
lance.
Composé de trois exécutables lancés sur différents postes, le robot de surveillance permet d’exé-
cuter différents tests : vérification de la connectivité Internet, tests réseau, ...
En cas de problèmes lors du passage d’un test, le robot de surveillance peut vous avertir de diffé-
rentes façons :
• Message envoyé dans la messagerie PC SOFT (WDBAL).
• Email.
Communication
• Exécution d’un programme tiers.
De plus, une alerte sonore peut être mise en place sur le moniteur.

Configure
Poste Utilisateur : Poste 1 :
Moniteur Robot de surveillance
- Gère les tests - Exécute régulièrement les tests
- Configure les robots - Envoie un message en cas de
- Peut effectuer directement problème
les tests

Test de
Configure
surveillance
Poste 2 :
Contre Robot

- Teste régulièrement le robot de surveillance


- Envoie un message en cas de problème

Types de tests disponibles

Test Internet Test de serveurs Test réseau


(test d’un site Web) HFSQL Client/Serveur (SNMP)

Test serveur Test serveur Test Application


FTP de news WINDEV

Test personnalisé
...
(en WLangage)

172 Partie 5 : Installation


Gestion des
Contenu

emails
WINDEV permet de gérer les emails grâce à plusieurs méthodes :
• les protocoles POP3 ou IMAP et SMTP (méthode la plus courante)
• l’API "Simple Mail API (appelé aussi SMAPI ou Simple MAPI)"

Protocoles POP3 ou IMAP et SMTP


Ces protocoles sont les standards Internet pour la gestion des emails. Ils sont normalisés par les
documents RFC 1939, 3501 et 5321. Ces protocoles vous permettent de dialoguer directement
avec le serveur, disponible chez votre fournisseur d’accès.

Poste local Serveur d’emails


(Utilisateur) (Hébergeur)
Service
Application WINDEV POP3 / IMAP

Protocole Service SMTP


Protocole SMTP
Envoi d’emails POP3 / IMAP
Réception d’emails

Accès distant

• POP3 (Post Office Protocol) est un protocole de lecture d’emails.


• IMAP (Internet Message Access Protocol) est un protocole de lecture d’emails à distance.
• SMTP (Simple Mail Transfer Protocol) est un protocole d’envoi d’emails.

174 Partie 6 : Communication Partie 6 : Communication 175


API "Simple Mail API (appelé aussi SMAPI ou Simple MAPI)"
Transfert de fichiers
Contenu

Ce mode de gestion des emails est utilisé par la plupart des applications Microsoft et principale-
ment MS Exchange.
par FTP
Le FTP (File Transfer Protocol) est un protocole de transfert de fichiers d’un site vers un autre site
distant. Ce protocole permet d’échanger des fichiers par TCP/IP ou Internet.

Poste local Serveur d’emails Principe d’utilisation


(Utilisateur) (Hébergeur) Pour manipuler des fichiers sur un serveur FTP depuis une application WINDEV, il est nécessaire
de suivre les règles suivantes :
Service POP3
1. Connexion à un serveur FTP (fonction FTPConnecte).
Application WINDEV

Service SMTP

Poste utilisateur Serveur FTP


Simple MAPI
Connexion
Application WINDEV Compte FTP

Profile Anonymous
utilisateur

2. Transmission et récupération des fichiers (selon le mode de connexion établi). En cas de


connexion passive, l’application WINDEV doit demander l’autorisation au serveur FTP avant
chaque manipulation de fichiers sur le serveur. Il est également possible de :
• obtenir des caractéristiques sur des fichiers présents sur un serveur FTP : attributs, taille, ...
• manipuler des fichiers présents sur un serveur FTP : création, suppression, ...
• lister les fichiers d’un répertoire présent sur un serveur FTP en lançant une procédure effec-
tuant un traitement pour chaque fichier trouvé.

176 Partie 6 : Communication Partie 6 : Communication 177


Gestion des
Contenu

sockets
Poste utilisateur Serveur FTP WINDEV met à votre disposition des fonctions qui permettent de réaliser une gestion avancée des

1
Demande
d’autorisation sockets.
Connexion passive Connexion passive
(Firewall sur le serveur FTP) (Firewall sur le serveur FTP)
Un socket est une ressource de communication utilisée par les applications pour dialoguer d’une
machine à une autre sans se soucier du type de réseau.

2
Application WINDEV Ce mode de communication peut par exemple être utilisé pour établir une communication entre
Validation
des postes reliés par Internet.

Différentes possibilités
3 Action Une application WINDEV peut gérer les sockets selon différents modes :
• Application WINDEV Cliente : l’application se connecte à un serveur quelconque et échange
des données via un socket.
Action • Application WINDEV "Serveur simplifié" : l’application WINDEV est un serveur, échangeant des
Connexion active Connexion active informations via un socket avec un seul poste client.
Application WINDEV • Application WINDEV "Serveur standard" : l’application WINDEV est un serveur, échangeant des
informations par sockets avec plusieurs postes clients quelconques.

Principe d’une application cliente


3. Fermeture de la connexion avec le serveur (fonction FTPDéconnecte). Une application cliente d’un serveur de sockets se connecte à un serveur quelconque pour échan-
ger des informations par l’intermédiaire d’un socket.
Exemple : Une application WINDEV cliente peut se connecter à un serveur de news standard sur
Internet.

Poste utilisateur Serveur FTP Etape 1  : Connexion au serveur


Déconnexion
Pour se connecter à un socket du serveur, utilisez la fonction SocketConnecte. Cette fonction
Application WINDEV
permet d’effectuer une demande de connexion au serveur. Le socket est identifié par son port et
par son adresse.
Etape 2  : Échange de données
Lorsque deux postes ont connecté leur socket, un flux de communication s’établit entre ces deux
postes. Il est alors possible pour ces deux postes de lire et d’écrire des chaînes de caractères sur
le socket.
Pour lire et écrire sur le socket du poste serveur, l’application cliente WINDEV doit utiliser les fonc-
tions SocketLit et SocketEcrit.
Etape 3  : Fin de la communication
Pour terminer la communication, il suffit de fermer le socket depuis le poste client avec la fonction
SocketFerme.

178 Partie 6 : Communication Partie 6 : Communication 179


Les différentes étapes peuvent être représentées de la façon suivante :
WINDEV et la
Contenu

téléphonie
WINDEV permet de gérer simplement les appels téléphoniques entrants et sortants grâce aux
Poste Client Poste Serveur
1
fonctions WLangage de téléphonie. Ces fonctions permettent par exemple de gérer une boîte vo-
Connexion
cale, un répondeur, ... directement dans une application WINDEV.
Fonction SocketConnecte

2
Lecture/
Ecriture
Fonctions SocketEcrit
et SocketLit

Fonction SocketFerme
Déconnexion
3 Poste Client
Application
WINDEV - Détection d’appel
- Identification du numéro appelant
Remarque : les fonctions SocketXXX permettent aussi de gérer des sockets sécurisés selon le pro-
tocole SSL. Il faut pour cela utiliser les fonctions SocketCréeSSL et SocketConnecteSSL.
Modem

Numérotation automatique

Configuration nécessaire :
Pour pouvoir utiliser les fonctionnalités de la téléphonie, il est nécessaire de posséder :
• un modem.
Pour enregistrer et jouer des enregistrements, ce modem doit gérer la voix.
Pour avoir les caractéristiques de la personne qui appelle, le modem doit posséder l’option
"Notification du numéro appelant" (caller Id).
• le protocole Tapi 2.0.

180 Partie 6 : Communication Partie 6 : Communication 181


Les
Contenu

PARTIE 7
Webservices
WINDEV vous permet d’utiliser très simplement des Webservices (ou services Web XML). Un Web-
service est une application disponible sur le Web. WINDEV permet d’accéder à des Webservices
SOAP (Simple Object Access Protocol) comme à des Webservices REST (Representational State
Transfer).
Toute application WINDEV peut utiliser un Webservice existant.
Pour utiliser un Webservice SOAP, il suffit de connaître l’adresse du Webservice et d’importer sa

Annexes
description dans l’application.

Poste de Serveur
développement Web
Importation de
la description
du service

Webservice
Utilisation du SOAP
Webservice
Exécutable WINDEV

Pour utiliser un Webservice REST, il suffit de connaître les caractéristiques du Webservice et d’uti-
liser la fonction RESTEnvoie.

Remarque : il est également possible d’exposer une ou plusieurs collections de procédures d’une
application WINDEV sous la forme d’un Webservice SOAP ou REST. Il faut pour cela :
• créer une configuration de projet dédiée à cet usage,
• dans le cas d’un Webservice REST, créer une description du Webservice REST,
• générer le Webservice,
• le déployer sur un Serveur d’Application WEBDEV.

182 Partie 6 : Communication


Composants livrés
Contenu

avec WINDEV
WINDEV est livré en standard avec projets correspondants à des composants. Ces projets
contiennent :
• une configuration de projet correspondant au composant.
• une configuration de projet correspondant à l’utilisation du composant.
• un composant interne.

Voici la liste des principaux composants livrés avec WINDEV :

WD BGInfo Permet d’écrire des informations sur le fond d’écran d’un ordi-
nateur (adresse IP, Nom de la machine, Date du jour etc...).
WD Communication Permet de faire communiquer deux applications distinctes.
Ces deux applications peuvent être :
• soit sur des postes distants.
• soit sur le même poste.
WD DerniersDocuments Permet de proposer une option de menu permettant d’ouvrir
les derniers documents ouverts dans l’application.
WD Ecran Tactile Permet l’interfaçage d’un clavier tactile pouvant remplacer le
clavier standard. Ce clavier permet par exemple d’utiliser une
application WINDEV sur un poste ne disposant pas de clavier.  
WD Envoi Fax Permet de gérer l’édition et l’envoi de fax (fonctionne unique-
ment sous Windows 2000 et Windows XP).
WD Explorer Bar Permet de gérer une barre d’adresse similaire à la barre
d’adresse de l’explorateur de Windows Vista.
WD Extraction Permet d’extraire et de stocker le contenu de divers docu-
ments (Open Office, Word 2007, ...) afin de les retrouver grâce
à la recherche full-text.
WD Fenêtres furtives Permet d’afficher des informations temporaires à l’utilisateur
sans perturber son travail.
WD FileImpression Détermine la liste des imprimantes les moins sollicitées pour
effectuer un ou plusieurs travaux d’impression.
WD Gestion Logs Permet de définir, pour une application, un paramétrage des
logs d’exécution :
• nombre de fichiers de log qui doivent être conservés.
• taille maximale par fichier de log.
• informations qui doivent être logguées.
Cet exemple simule différents traitements pour observer la
gestion des fichiers de logs (fichiers .wlog).

184 Partie 7 : Annexes Partie 7 : Annexes 185


WD Glossaire Permet de classer et de conserver des formulations écrites WD Pays du Monde Contient la liste de tous les pays du monde et certaines infor-
qu’un client réutilise régulièrement. mations :
Il est ainsi possible de proposer en permanence au client un • code ISO de chaque pays.
accès à un "Glossaire" qu’il personnalise aisément. Toutes • liste des régions, états ou pays constituant un pays (avec le
les entrées du glossaire peuvent être classées en catégories décalage horaire pour chaque état, région ou pays).
arborescentes. • décalage horaire (GMT).
WD Importation de page Permet d’importer des pages HTML avec les fonctions WLan- • monnaie principale du pays.
HTML gage. • principales langues parlées.
WD InfoSysteme Propose trois catégories de fonctions permettant de rassem- • drapeau de chaque pays.
bler les informations sur le poste en cours, l’utilisateur et le • capitale.
réseau auquel est connecté le poste en cours. • indicatif téléphonique.
WD Jauges Permet de gérer automatiquement dans vos projets une jauge WD Photocopieur Permet de réaliser des photocopies de documents à l’aide
simple ou double qui affiche le temps restant ou le nombre d’un scanner et d’une imprimante.
d’étapes d’un traitement.
WD Popup Graphique Dans de nombreux logiciels de retouche d’images, il est pos-
WD JournalEvenement Permet de : sible de sélectionner une forme à dessiner, de choisir une
• Lister et lire les événements enregistrés dans le journal des épaisseur pour cette forme, et ceci via une combo popup gra-
événements de Windows. phique avancée.
• Ajouter un événement dans le journal des événements de Ce type de combo popup graphique offre en effet une prévi-
Windows. sualisation en temps réel de la forme à l’épaisseur choisie.
WD Limitation Permet de limiter une application par différents moyens : Ce composant permet d’intégrer une telle interface dans une
• Limitation de durée (Application limitée à 30 jours) application WINDEV.
• Limitation à 1 poste (Application n’a le droit de s’exécuter WD Saisie email Permet de faciliter la saisie des emails.
que sur un seul poste) WD Select RTF Permet d’effectuer tous types de recherches dans un champ
• Limitation du nombre d’utilisateurs (Une application ne peut RTF. Vous pouvez par exemple rechercher :
pas être exécutée par plus de n utilisateurs) • capitale.
WD ModeleImpression Permet de gérer des profils d’impression. • les mots en caractères gras.
WD Paramètres Impressions Permet d’utiliser la fonction iParamètre. Cette fonction permet • les mots en italique.
de récupérer les différents paramètres définis pour une impri- • les mots d’une couleur spécifique.
mante donnée. L’imprimante utilisée est définie grâce à la • une chaîne de caractères ayant des mots spécifiques.
fonction iConfigure(Nom de l’imprimante).
WD Signature Permet d’intégrer facilement dans vos applications WINDEV un
Ce composant permet de modifier différents paramètres :
champ ‘Signature’ prêt à l’emploi. Ce champ est notamment
• L’orientation du papier très pratique pour les applications qui sont destinées à des
• L’échelle terminaux tactiles, TabletPC sous Windows XP, bornes interac-
• La gestion des polices TrueType tives, ...
• Le nombre de copies WD Simplexe Permet de réaliser des calculs à partir de l’algorithme du Sim-
• La gestion de la couleur (impression couleur ou mono- plexe.
chrome) WD Sockets Cet exemple propose un composant pour faire dialoguer facile-
• Le recto-verso ment deux applications en utilisant des sockets.
• Le style de sortie des feuilles (assemblées par copies ou par
numéro de page)

186 Partie 7 : Annexes Partie 7 : Annexes 187


Exemples livrés
Contenu

avec WINDEV
WD Trace Socket Permet de tracer tout ce qui passe sur une communication
via socket, sur une adresse donnée, sur un port donné. Cela
permet de comprendre ce qu’il se passe dans un dialogue via
socket entre deux applications.
Ainsi, dans des applications qui dialoguent via socket, même Les exemples livrés avec WINDEV présentent de manière didactique les différentes fonctionnali-
si les développeurs n’ont pas prévu d’option de trace, il sera
tés de WINDEV.
possible de voir l’ensemble des échanges effectués sur la
socket. Leur code source est commenté et détaillé.
Cet exemple peut également permettre de mieux comprendre Ces exemples sont présents dans le sous-répertoire "Exemples" du répertoire d’installation de
le fonctionnement des protocoles réseau basés sur les soc- WINDEV et peuvent être ouverts directement depuis la fenêtre d’accueil de WINDEV.
kets : POP3, SMTP, FTP, HTTP, etc.
WD ValidationAdresse Cet exemple permet de valider une adresse postale (rue, code Différents types d’exemples sont livrés avec WINDEV :
FRANCE postal et ville). • Exemples complets : ces exemples correspondent à des applications complètes, qui peuvent
être utilisées sans adaptation.
• Exemples didactiques : ces exemples illustrent une fonctionnalité spécifique.

Voici les fonctionnalités de quelques exemples livrés avec WINDEV.

Exemples complets
eCommerce BackOffice Cet exemple est une application de back-office pour le site
eCommerce. Il utilise le webservice eCommerce afin de :
• gérer les produits.
• gérer les commandes.
• modérer les avis.
• ...
WBSetup Cet exemple peut être utilisé pour personnaliser l’installation
par média physique d’un site WEBDEV.
WD Agenda Permet de synchroniser des rendez-vous entre vos agendas
Outlook, Lotus Notes et Google.
WD Bureautique Editeur Cet exemple complet illustre le fonctionnement du champ Edi-
d’images teur d’images de WINDEV.
WD Bureautique LecteurPDF Cet exemple illustre le fonctionnement du champ Lecteur PDF
de WINDEV.
WD Bureautique Tableur Cet exemple illustre le fonctionnement du champ Tableur de
WINDEV.
WD Bureautique Traitement Cet exemple illustre le fonctionnement du champ Traitement
de texte de Texte de WINDEV.
WD Conges et RTT Gestion complète des congés et des RTT des collaborateurs
d’une société.
Chaque utilisateur dispose d’un tableau de bord de l’état de
ses congés et RTT.

188 Partie 7 : Annexes Partie 7 : Annexes 189


WD Emprunt Permet de simuler des emprunts et notamment de : WD MotDePasse Présente un "coffre" à mot de passe. Peut être utilisé pour gé-
• calculer le montant des mensualités à partir du montant rer les mots de passe créés lors de l’utilisation de sites Internet
emprunté donné. (ou d’applications) ou des mots de passe de la vie courante
• calculer le montant empruntable à partir d’une mensualité (digicodes, codes de cartes bancaires, etc.) .
donnée. Peut également être utilisé comme un générateur de mot de
• calculer le rapport d’un placement à partir d’un apport men- passe pour produire des mots de passe particulièrement sûrs.
suel. WD Multimedia Permet de lire et de jouer :
Pour chaque cas, il est possible d’imprimer le tableau d’amor- • des vidéos (AVI, MPEG...).
tissement correspondant à vos paramètres. • des fichiers sons (MP3, WAV).
WD Gantt Présente une utilisation avancée d’un diagramme de Gantt. • des CD Audio.
Permet de créer un diagramme de Gantt complet avec tâches, • des animations Flash.
liaisons, tâches cumulatives et jalons. WD Outlook Permet de lire et écrire dans les dossiers de Outlook :
Les tâches peuvent être éditées dans une fenêtre spécifique. • Messagerie.
Le diagramme créé peut être sauvegardé dans un fichier pour • Calendrier.
être rechargé par la suite.
• Contacts.
WD Gestion Commerciale Présente une application de gestion commerciale, "ten- • Tâches.
dance",  qui se présente sous forme d’onglets dynamiques, Cet exemple est conçu pour fonctionner avec la version stan-
avec ruban. dard de Outlook livrée avec Office.
WD Gestion Contacts Permet de gérer des contacts et de leur envoyer des emails. WD Planning Permet de réaliser un planning comportant des zones cli-
Il est également possible de synchroniser ces contacts avec cables.
ceux présents sur le terminal mobile relié au PC et avec ceux
de Outlook. WD Proxy HTTP Cet exemple est un proxy HTTP simplifié. Il est possible d’enre-
gistrer les connexions et de connaître les pages consultées.
WD Gestion de Parc informa- Permet de gérer un parc informatique. Pour chaque poste du
parc, ses caractéristiques, ses composants et ses utilisateurs WD ProxyPOP3 Cet exemple présente un proxy POP3. Dans cet exemple, le
tique
peuvent être définis. proxy est utilisé pour archiver automatiquement dans une base
HFSQL les emails récupérés.
Ces fonctionnalités sont mises en œuvre grâce à l’utilisation de
requêtes, d’états et de combos. WD Recherche sur Internet Permet de piloter différents moteurs de recherche sur Inter-
net (Yahoo, Alta Vista, Voilà, Lycos, Excite, Nomade, Google,
WD Gestionnaire de tache Permet de lister les applications et les processus grâce à des Euroseek, etc.). Le résultat de la recherche est affiché grâce
DOTNET fonctions .NET. à un ActiveX.
Permet d’effectuer différents traitements sur les applications
et sur les processus. WD Répondeur Téléphonique Utilise les fonctionnalités de téléphonie pour la gestion d’un
répondeur téléphonique. Ce répondeur est interrogeable et
WD Graveur Lite Permet de graver des CD de données, DVD ou disques Blue- paramétrable à distance grâce à un menu.
Ray.
WD Scanner - TWAIN Permet de :
WD Graveur Permet de graver des CD Audio et des CD de données, DVD ou • Prévisualiser une partie d’un document.
disques Blue-Ray.
• Numériser un document (format GIF, JPEG, BMP).
WD Lecteur RSS Présente l’utilisation de classes permettant de lire des flux RSS • Numériser un document et le placer dans le presse-papiers.
WD Loupe Permet de zoomer une partie de l’écran grâce à une loupe vi- • Numériser un document et l’imprimer.
suelle. Il est possible de zoomer jusqu’à 8 fois.
WD Synchronisation de Permet de synchroniser deux répertoires de fichiers.
WD Mail Cette application est un client mail complet. Il s’appuie sur les fichiers Après synchronisation, le répertoire de destination est iden-
objets Email. Ce client mail permet de récupérer et d’envoyer tique au répertoire source. La comparaison est effectuée sur la
des emails en utilisant les protocoles POP, IMAP et SMTP. présence et la date des fichiers.
WD Messagerie Instantanée Présente les différentes fonctions de gestion des sockets.

190 Partie 7 : Annexes Partie 7 : Annexes 191


WD Téléphonie Utilise les fonctions téléphonie de WINDEV pour : WD Bluetooth Cet exemple montre l’utilisation des fonctions Bluetooth :
• Composer un numéro de téléphone. • pour lister les périphériques Bluetooth accessibles.
• Détecter et identifier des appels entrants. • pour lister les services offerts par un périphérique.
WD Télésurveillance Permet de transmettre des images filmées par une Web Ca- • pour se connecter à un périphérique Bluetooth.
méra à travers un réseau (Internet, Intranet, etc.). • pour envoyer un fichier à un périphérique via les fonctions
"OBEX" du WLangage.
WD Transfert de fichiers par Permet de transférer des fichiers :
FTP • d’un serveur FTP vers le poste local. WD Champ Recherche Cet exemple montre comment gérer un champ de saisie per-
• du poste local vers un serveur FTP. mettant de réaliser des recherches Full-Text de type "google"
dans votre base de données.
WD Visioconférence Permet d’entrer en conférence avec un utilisateur distant.
WD Changement Gabarits Cet exemple présente une solution de changement dynamique
Permet d’envoyer un fichier à un correspondant et de dialoguer de gabarits par les utilisateurs.
avec lui.
WD Client Webservice Cet exemple illustre l’utilisation des WebServices. Il montre
WD WebCam Présente l’intégration d’une Web Caméra dans une fenêtre
comment récupérer, à partir d’un WebService, des images en
WINDEV.
fonction de mots clés.
Il est possible de :
• Visualiser l’image retransmise par la caméra. WD Coloration Recherche Cet exemple présente comment mettre en évidence les mots
recherchés dans les résultats d’une recherche Full-Text.
• Effectuer une capture instantanée.
• Capturer la scène retransmise sous forme d’animation Win- WD Coloration Syntaxique Cet exemple propose une classe de base permettant d’effec-
dows (Fichier "AVI"). tuer une coloration syntaxique classique sur du texte.
WD Zip Permet de créer et de lire des archives compressées au format WD ContrôleADistance Permet de mettre en application le contrôle à distance d’une
"WDZ" (ZIP WINDEV). application WINDEV.
WDSETUP Cet exemple illustre la possibilité de réaliser une procédure WD Controles de saisie Effectue la vérification des données saisies par l’utilisateur
d’installation personnalisée pour son application avec WINDEV. (nom, société, code postal, ville, adresse e-mail, etc.) dans une
fenêtre de type formulaire.
WD DataBinding L’exemple "WD DataBinding" présente comment lier un champ
Exemples didactiques à une variable du WLangage.
WD Active Directory DotNet Permet la visualisation du contenu d’un Active Directory. Cette WD Découverte MVP - Partie 1 Cet exemple didactique présente la mise en oeuvre d’une ar-
visualisation est effectuée grâce à des objets .NET contenus chitecture MVP (Modèle Vue Présentation) dans un projet.
dans l’assembly System.DirectoryServices. WD Découverte MVP - Partie 2 Cet exemple didactique présente la mise en oeuvre d’une ar-
WD Analyseur Explain HFSQL Représente visuellement le détail du plan d’exécution d’une chitecture MVP (Modèle Vue Présentation) dans un projet pour
requête SQL grâce à la commande SQL EXPLAIN. une analyse simple (Client - Commande - Ligne de commande
- Produit).
WD APISystemes Montre l’utilisation des Apis Windows.
WD Délégué DOTNET Cet exemple didactique montre comment interagir avec les
WD Appels JAVA Illustre l’appel aux méthodes des classes d’une archive JAR
délégués DOTNET
grâce à la fonction WLangage JavaExécuteFonction.
Montre également le remplissage d’une table mémoire (iden- WD Dessin sur Graphe Cet exemple repose sur l’utilisation d’un composant interne
tique en mode Java et en mode Windows). permettant de dessiner des éléments sur un champ graphe :
Zones min/max, Zones diverses, Drapeaux, Plots et trackers
WD Application Interactive Montre l’utilisation des fonctions FenEdXXX dans une applica- de suivi,...
tion interactive.
Cette application permet de gérer une maison connectée (allu- WD Detection Erreurs HFSQL Présente le module de gestion assistée des erreurs HFSQL :
mer les lumières, connaître la température). • le fonctionnement par défaut.
• les différentes possibilités de personnalisation.
WD Assistant Gère une fenêtre de type "Assistant".
WD DirectX Cet exemple permet d’utiliser DirectX 9.0 dans vos applications
WINDEV.

192 Partie 7 : Annexes Partie 7 : Annexes 193


WD Duplication Cet exemple didactique montre comment il est possible de du- WD Grapheur Java Cet exemple montre comment réaliser des graphes grâce à aux
pliquer une base de données sur un serveur. fonctions de dessin.
WD Ecran de veille Permet de réaliser un économiseur d’écran grâce à la gestion Trois types de graphe sont présentés : histogramme, nuage de
des timers et des événements Windows. points, courbe.
WD Etats Cet exemple montre les différentes méthodes pour réaliser un WD Groupware Utilisateur Présente le fonctionnement du Groupware Utilisateur.
état : WD GroupwareCS Présente le groupware utilisateur avec une base de données
• impressions basées sur différentes sources de données HFSQL Client/Serveur.
(requêtes, variables, ...). WD HotKey Permet de définir vos propres raccourcis clavier.
• impressions basées sur des champs (Table, Tableur, TCD,
...). WD ImpRectoVerso Cet exemple présente une solution d’impression recto-verso
qu’il est possible de désactiver, c’est-à-dire que les versos
• impression d’états composés.
peuvent ne pas être imprimés.
• impressions spécifiques (portrait / paysage, état avec fili-
grane, état avec code-barres, ...). WD Impression de Tree View Permet d’imprimer un Treeview. Cet exemple utilise une classe
"TreeImp" facilement réutilisable pour n’importe quel champ
WD Exemple de test unitaire Cet exemple présente l’utilisation de l’éditeur de test unitaire Treeview.
intégré de WINDEV dans deux cas concrets :
WD JavaMail Permet de créer une applet, utilisable dans une page Internet.
• le test d’une fenêtre.
Cette applet permet de lire et envoyer des emails.
• le test d’une procédure globale.
WD Jump lists JumpList sous Windows 7
WD Export HTML Gère des fichiers externes. Présente également la manipula-
tion des fichiers au format HTML. Une JumpList est un menu accessible via le menu Démarrer ou
l’icône de l’application dans la barre des tâches.
WD ExtractionMIME Permet d’extraire les pièces contenues dans un email.
WD Langage Externe Cet exemple illustre l’utilisation de fenêtres faites avec WINDEV
WD Fichier externe Présente comment manipuler des fichiers non décrits dans dans une application en C ++ (Visual Studio 2005) et MFC.
l’analyse.
WD Lasso Utilise un lasso de sélection dans un champ Image pour réali-
WD Génération PowerPoint Cet exemple présente comment générer une présentation ser un zoom dans un champ de prévisualisation.
PowerPoint à partir :
WD Lien reflexif Utilise un lien "réflexif" pour gérer des arbres généalogiques :
• de données contenues dans une application WINDEV, telles
chaque personne a plusieurs parents et plusieurs enfants.
que les données de tables, de graphes.
Tous ces enregistrements sont stockés dans le même fichier.
• et d’un document PowerPoint .pptx de base.
WD Limitation de duree d Permet de limiter l’utilisation d’une application à une période
WD Gestion Auto Erreurs Cet exemple est un exemple didactique sur la gestion automa- utilisation donnée (période d’essai).
tique des erreurs.
Cet exemple montre le cas des erreurs fatales, non fatales, sur WD ListeChaînée Fournit les outils pour construire des listes chaînées à chaî-
plusieurs niveaux. nage simple. Une liste à chaînage simple permet de stocker et
parcourir de manière ordonnée une collection de valeurs quel-
WD Gestion des erreurs Java Cet exemple didactique permet de comprendre le fonctionne- conques.
ment et la mise en œuvre du mécanisme de gestion des er-
reurs de WINDEV. WD Mailing par emails Permet d’envoyer un "mailing" par Internet.
WD Gestion Erreurs HFSQL Cet exemple présente de façon didactique la gestion des er- WD Manipulation du champ Exemple simple d’utilisation du champ Agenda. Les fonction-
reurs HFSQL (doublon, intégrité). Agenda nalités utilisées sont les suivantes : Création d’un rendez-vous,
Sauvegarde d’un agenda, Restauration d’un agenda
Cet exemple montre comment personnaliser le traitement
lorsqu’une erreur est levée. WD Menu Animé Cet exemple propose différentes animations de menu.
WD Graphe Cet exemple didactique présente diverses utilisations du WD Menu Pure Cet exemple propose un menu personnalisable au travers d’un
champ graphe. Tous les types de graphe disponibles sont pré- modèle de champ.
sentés. WD Multi-Fenetrage Permet de comprendre les bases de la gestion du Multi-fenê-
trage avec WINDEV.

194 Partie 7 : Annexes Partie 7 : Annexes 195


WD Multitouch Cet exemple utilise un composant interne permettant d’uti- WD Pilotage de Excel Permet de piloter Excel via OLE Automation. Toutes les fonc-
liser les fonctionnalités Windows Touch dans une application tions d’Excel peuvent ainsi être utilisées.
WINDEV. WD Pilotage de IE Permet de piloter IE via OLE Automation. Toutes les fonctions
WD OAuth Cet exemple propose didactiquement de se connecter à Google de IE peuvent ainsi être utilisées.
et Microsoft grâce à la fonction Auth-Identifie et au type OAuth- WD Pilotage de OpenOffice Cet exemple propose une classe permettant de manipuler faci-
2Paramètre. lement une base Open Office sans avoir à aucun moment à
Base
WD Objets Graphiques Cet exemple est un éditeur d’objets graphiques. manipuler des objets OLE.
Il est possible de : WD Pilotage de OpenOffice Cet exemple didactique illustre le pilotage du tableur OpenOf-
• déplacer, redimensionner les objets. Calc fice.org. Il est en effet possible de créer, ouvrir et manipuler
• effectuer des sélections au lasso ou à la souris. des classeurs ouverts dans OpenOffice.org depuis une appli-
• couper/copier/coller des objets. cation WINDEV.
• supprimer/dupliquer des objets. WD Pilotage de OpenOffice Cet exemple didactique illustre le pilotage de OpenOffice Wri-
• enregistrer les documents créés et de les imprimer. Writer ter. Il est en effet possible de créer, ouvrir et manipuler des
documents ouverts dans OpenOffice Writer depuis une appli-
WD ObservateurRépertoire Cet exemple montre l’utilisation des delegates .NET (événe- cation WINDEV.
ments .NET) en WLangage.
WD Pilotage de Outlook Permet de piloter Outlook via OLE Automation. Toutes les fonc-
WD Office 365 Cet exemple simple illustre la connexion aux API Microsoft Of- tions de Outlook peuvent ainsi être utilisées.
fice 365 et permet de manipuler les contacts Outlook.
WD Pilotage de Tableurs Cet exemple illustre le pilotage du tableur OpenOffice Calc et
WD OLEDB Cet exemple montre l’utilisation des delegates .NET (événe- du tableur Excel, avec un code générique.
ments .NET) en WLangage.
WD Pilotage de Word Permet de piloter Word via OLE Automation. Toutes les fonc-
WD OPC Montre l’implémentation du protocole OPC en WINDEV. tions de Word peuvent ainsi être utilisées.
WD OpenGL Permet d’interfacer OpenGL et WINDEV. OpenGL est une inter- WD Pilotage traitement de Le but de cet exemple est de proposer une interface univer-
face logicielle destinée à dessiner des objets tridimensionnels texte selle, permettant de piloter ces applications, sans se soucier
(3D). de l’application à piloter.
WD Organigramme Cet exemple permet de créer des organigrammes. WD PlanningAvecRupture L’exemple "WD PlanningAvecRupture" propose une solution
WD OSD OSD signifie : On-Screen Display. C’est le nom donné aux in- pour gérer des "ruptures" dans un champ Planning
terfaces qui apparaissent sur les écrans d’ordinateur ou des WD Plugin WDSETUP Ce projet contient les éléments nécessaires à la réalisation
téléviseurs par exemple. Ils servent souvent à effectuer des d’un plugin (ou "extension") d’installation pour WDSETUP.
réglages. Ces types de menus ont comme particularité d’être
affichés par-dessus tout ce qui se trouve à l’écran. Cet exemple WD POO Simple Exemple sur la POO avec WINDEV.
montre comment réaliser ce type d’interface sous WINDEV. WD Presse-Papiers Multiple Cet exemple gère automatiquement un presse-papiers multi-
WD Ouverture Périphérique Cet exemple permet d’ajouter ou supprimer une application du niveaux entre toutes les applications WINDEV lancées sur le
système d’ouverture automatique pour les périphériques amo- poste.
vibles par programmation. WD Pyramide Des Ages Montre comment créer un graphique de type "Pyramide des
WD PartageMemoire Cet exemple montre comment utiliser les fonctions de partage âges" à partir de deux histogrammes.
de mémoire. WD Qui bloque Signale aux utilisateurs d’une base de données HF-SQL en
WD PC Infos Permet de connaître la langue du poste sur lequel l’application réseau quelle est la personne qui bloque un enregistrement
s’exécute. inaccessible.
WD Persistance Cet exemple montre l’utilisation des fonctions InitParamètre, WD Recherche par cle com- Présente l’utilisation des filtres et l’utilisation des clés compo-
ChargeParamètre, SauveParamètre. posee sées afin d’optimiser les temps de recherche sur un fichier de
données HFSQL.
Ces fonctions permettent de configurer la sauvegarde de
champs, de variables et de tout autre paramètre.

196 Partie 7 : Annexes Partie 7 : Annexes 197


WD RechercheRuban L’exemple "WD RechercheRuban" propose une solution pour WD Trigger Permet de saisir les notes de frais des collaborateurs d’une
rechercher un élément d’un champ Ruban à partir de son li- société. Deux modes sont utilisables :
bellé et de sa bulle d’aide - Consultation avec possibilité de modification (lecture/écri-
WD Réplication Universelle Montre comment synchroniser les données de différents sites ture)
en utilisant la réplication universelle. - Consultation uniquement
WD Requetes Permet d’effectuer des calculs, de passer des paramètres ou Ce sont les triggers qui permettent de contrôler l’accès aux
d’imprimer le résultat d’une requête SQL sur un fichier de don- fichiers en fonction du mode choisi.
nées HFSQL. WD Utilisation de DOTNET Permet de convertir des devises dans d’autres devises.
WD Riak WD Riak présente un exemple d’utilisation de la base de don- La base de ce projet (la classe cEuro) est utilisée pour créer un
nées Riak en WLangage. assemblage DotNet.
WD Serveur Webservice Cet exemple illustre l’utilisation des WebServices. Il montre WD Utilisation des classes Permet d’utiliser des classes DOTNET en WLangage. Permet
comment créer un WebService fournissant des images en fonc- DotNET de :
tion de mots clés. - analyser une chaîne de caractères,
WD Service Cet exemple illustre la création d’une application de type "ser- - configurer les boîtes de dialogue affichées.
vice" avec WINDEV. WD Utilisation des sockets Présente l’utilisation des sockets en mode client/serveur.
WD Sharepoint Cet exemple détaille la méthode d’authentification auprès du Chaque socket est manipulée au travers d’un thread.
Webservice ainsi que l’utilisation de la recherche. WD WindowsUpdate Cet exemple montre comment gérer les mises à jour dispo-
WD Tableau de bord L’exemple "WD Tableau de bord" est un exemple didactique sur nibles sur Windows Update.
l’utilisation du champ Tableau de bord. WD WMI DOTNET Le WMI (Windows Management Instrumentation) permet une
WD TableauCroiséDynamique Cet exemple illustre l’utilisation du champ Tableau croisé dyna- administration exhaustive des applications et des périphé-
mique. riques. Le WMI peut être comparé à une base de données re-
Ce champ tableau croisé dynamique permet d’afficher des sta- groupant de multiples informations sur un poste
tistiques dynamiques en effectuant des regroupements. Ces
statistiques sont calculées à partir de la base de données. Des exemples supplémentaires seront livrés avec la Lettre du Support Technique (LST) ou seront
WD Text-To-Speech Cet exemple montre comment effectuer une synthèse vocale disponibles sur notre site (www.pcsoft.fr).
dans une application WINDEV en utilisant la classe Speech-
Synthesizer du framework DOTNET.
WD Timeline Propose un composant interne permettant de manipuler un
modèle de champ ‘Timeline’. Une timeline permet d’afficher de
façon linéaire une série d’événements qui se sont déroulés sur
une période donnée de temps.
WD Trames reseau L’analyse des trames circulant sur le réseau permet aux admi-
nistrateurs d’auditer ce dernier et de détecter certaines inco-
hérences. Pour écouter le réseau, l’application se base sur
l’API Winsock 2 et les RAW Socket.
WD Transaction Illustre le fonctionnement des transactions lors du passage
d’une commande.
WD TreeMap Utilise le champ TreeMap afin de visualiser le contenu d’un
répertoire et la place prise par chaque fichier constituant ce
répertoire.
WD Trigger serveur Cet exemple permet de montrer comment utiliser des triggers
serveur.

198 Partie 7 : Annexes Partie 7 : Annexes 199


200 Partie 7 : Annexes

Vous aimerez peut-être aussi