Vous êtes sur la page 1sur 102

WINDEV - Concepts

Version 23 - (1) 10-2017 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’ap-
prentissage suivant :

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

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

3
Test des exemples
Visitez régulièrement le site www.pcsoft.fr, espace téléchargement, pour vérifier si des  Testez les différents exemples livrés avec WINDEV dans les domaines qui vous
mises à jour sont proposées. intéressent (gestion commerciale, planning, ...)

L’aide en ligne, accessible par Internet à l’adresse http://doc.pcsoft.fr ou installée avec


Adresse e-mail du Support Technique Gratuit : supportgratuit@pcsoft.fr. WINDEV 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 fonctionnalité associée et la liste des fonctions du WLangage corres-
Conseil : Pour recevoir directement des mises à jour intermédiaires et des conseils pondantes.
d’utilisation, abonnez-vous à la LST (revue trimestrielle + DVD), en français.
Remarque : En cas de divergence entre les manuels et l’aide en ligne, suivez les instruc-
tions de l’aide en ligne.

Cette documentation n’est pas contractuelle. Des modifications ont pu intervenir dans
le logiciel depuis la parution de ce manuel. Veuillez consulter l’aide en ligne. Nous vous souhaitons une agréable prise en main de WINDEV.

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 2017 : Aucune reproduction intégrale ou partielle du présent ouvrage sur quelque support que ce
soit ne peut être effectué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 Partie 1 - Notions de base
WINDEV performante. Certains concepts sont suivis d’une partie "Pratique" détaillant Projet et Analyse.................................................................................................................... 9
certaines fonctionnalité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


Les éditeurs de WINDEV......................................................................................................55
Page concept 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

Page de mise en pratique Partie 3 - Bases de données


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 Notions de
Le modèle UML................................................................................................................. 122
Groupware utilisateur....................................................................................................... 129 base
Applications multilingues..................................................................................................137
Optimiser une application.................................................................................................143
Livrer "Etats et Requêtes"..................................................................................................145
MCU : Macro Code Utilisateur...........................................................................................146
Les différents tests disponibles........................................................................................148
Le débogueur.....................................................................................................................149
Tests unitaires/Tests automatiques.................................................................................151
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
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, com-
posants, … 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 regroupe 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 graphe du projet

3.1 Tableau de bord 3.2 Graphe du projet


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

Pour plus de détails, consultez le paragraphe “Ta-


bleau de bord du projet”, page 59.

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 dossier :
Voici les principales manipulations pouvant être • Copier ou supprimer un projet. pages du dossier. sous le volet "Accueil", dans le groupe "Général",
réalisées sur un projet : • Renommer un projet. déroulez l’icône et sélectionnez l’option "Mise
• Archiver un projet. Pour plus de détails sur ces fonctionnalités, consul- en page du dossier".
• Restaurer un projet. tez l’aide en ligne. 3. Cochez l’option "Adapter la taille des zones d’im-
pression des documents ouverts".
• Dupliquer un projet.
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é- XML,
ral", déroulez l’icône et sélectionnez l’option
• exporté vers un fichier HTML (un navigateur inter-
"Imprimer le dossier du projet". Le dossier peut
net doit être installé sur le poste en cours),
contenir l’ensemble des caractéristiques du pro-
jet. • exporté vers un fichier texte.
• sous le volet "Accueil", dans le groupe "Géné- 5.2 Zones d’impression
ral", cliquez sur l’icône . Le dossier est alors
constitué uniquement des caractéristiques de Si des représentations graphiques (graphe du pro-
l’élément (fenêtre, état, requête, …) en cours. jet, MLD, diagrammes UML, …) doivent être impri-
mées, il est nécessaire de configurer les zones
5.1 Type de dossier d’impression 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 dans
Contient uniquement la représentation des fe- le dossier apparaissent sous l’éditeur en cours.
nêtres et des états, ainsi que leur enchaînement. 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
du graphe.
• Dossier Technique : Contient les traitements et 3. A l’aide de la souris :
les descriptions techniques de tous les objets du
projet. • déplacez ces bordures à l’endroit désiré en main-
tenant le bouton de la souris enfoncé (la couleur
• Dossier Complet : Contient toutes les informa- du curseur de la souris est noire).
tions du projet. Ce dossier correspond à la fusion
de tous les types de dossiers. • choisissez le nombre de pages sur lesquelles la
représentation graphique doit être imprimé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
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

Test et débogage
Cahier des charges Création du projet Génération de l’installation
de l’application

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

Détail des différentes phases : Phase de tests et génération : WINDEV offre toute une panoplie d’outils de tests automa-
tiques pour garantir la fiabilité des applications et assurer la non-régression entre les
Phase de conception : Il est possible de concevoir une application à partir d’un simple phases de développement.
cahier des charges, d’une modélisation UML des traitements ou même à partir de fi-
chiers de données préexistants. Phase de déploiement : Le déploiement d’une application WINDEV peut se faire de nom-
breuses façons : téléchargement, via un réseau local (y compris en mode Push) ou via
Phase de développement : La création du projet et de l’analyse est réalisée à l’aide Internet. Dans tous les cas, les fichiers de données HFSQL seront automatiquement mis
d’assistants très complets. Le développement peut être effectué en mode RAD (Rapid à jour en fonction des évolutions de l’application.
Development Application) avec génération automatique du code et des IHM ou être le
résultat d’une création manuelle des différents éléments du projet.

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


IHM : Fenêtres modales, non
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
De nombreuses fonctionnalités permettent d’obtenir simplement des applications intui- fenêtres déjà ouvertes (s’il y en a). Les fenêtres modales sont généralement utilisées
tives et agréables d’utilisation : comme :
• des champs puissants et variés, • fenêtres principales d’une application,
• un mécanisme d’ancrages permettant à l’IHM de s’adapter automatiquement à la • boîtes de dialogue dont la validation provoque une action.
taille de l’affichage, Avec WINDEV, lorsqu’une fenêtre modale s’ouvre, une ombre grise apparaît sur les fe-
• un système de compilation de l’IHM avec détection des erreurs (titres vides, libellés nêtres en arrière-plan : c’est le GFI ou Grisage des Fenêtres Inaccessibles.
non traduits, chevauchements, …),
• …

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


Fenêtre
interne
Fenêtres non modales
Une fenêtre non modale s’ouvre en parallèle des autres fenêtres de l’application. Cha-
cune des fenêtres reste accessible et manipulable. Les fenêtres non modales servent
généralement :
Le champ Fenêtre interne permet d’inclure une fenêtre (et son code) dans une autre fe-
• de palettes d’outils,
nêtre. A l’exécution, la fenêtre interne sera dynamiquement fusionnée à la fenêtre hôte.
• de boîtes de dialogue dont la modification affecte directement la fenêtre principale.
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
2. Utilisation d’une fenêtre interne.
description d’un autre polo. Toutes les fenêtres ouvertes restent accessibles.
Pour utiliser une fenêtre interne :
Fenêtres MDI • Créez un champ de type fenêtre interne.
Dans une application MDI, toutes les fenêtres de l’application sont affichées dans une • Dans la fenêtre de description du champ,
seule et même fenêtre principale : la fenêtre mère MDI. Les fenêtres des applications sélectionnez la fenêtre interne à utiliser.
MDI peuvent donc être de deux types : • Validez la fenêtre de description du champ.
Fenêtre mère MDI : Toutes les autres fe-
nêtres de l’application sont affichées dans
cette fenêtre. Cette fenêtre permet à l’uti-
lisateur 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 interne".
Fenêtre fille MDI : Fenêtre de l’application • Limitations : La zone d’accueil est rectan-
affichée dans la fenêtre mère. C’est dans gulaire et aucune surcharge n’est possible.
ces fenêtres que l’utilisateur pourra saisir Pour réaliser des surcharges, il est conseillé
des informations. d’utiliser des modèles de champs.

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


Modèles de
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
WINDEV permet de créer des modèles de fenêtres. Ces modèles contiennent tous les provenir de fichiers de données d’une analyse, de pratique”, page 39.
éléments graphiques communs à l’ensemble des fenêtres de votre application. fichiers externes, de requêtes, … Ce chapitre traite les sujets suivants :
Les modifications effectuées dans un modèle de fenêtres sont automatiquement repor- WINDEV propose plusieurs solutions pour créer les • “Création d’une fenêtre”, page 21.
tées sur toutes les fenêtres utilisant ce modèle. fenêtres d’un projet : • “Manipulations simples sur une fenêtre depuis
• Créer une fenêtre vierge avec l’assistant. l’éditeur”, page 22.
Un modèle de fenêtres facilite le respect de la charte graphique d’une application. • 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.
• 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 standard. • “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êtres”, 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”, 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 6. Validez l’enregistrement de la fenêtre.
utilisées dans des champs de type "Fenêtre In- 7. Créez les champs dans la fenêtre.
terne".
Remarque : Les principales caractéristiques des
• Fenêtres basées sur un modèle de fenêtres. fenêtres sont détaillées dans l’aide en ligne. Les
• Fenêtres importées à partir d’une application différents types de champs sont présentés dans le
non WINDEV. chapitre “Les champs en pratique”, page 39.
Ce paragraphe détaille uniquement la création de 1.2 Fenêtre interne
Utilisation du modèle dans plusieurs fenêtres. fenêtres vierges, internes ou basées sur un mo-
Les éléments appartenant au modèle sont identifiés par un carré jaune. dèle. Pour plus de détails, consultez l’aide en ligne. Une fenêtre interne est une fenêtre sans barre de
titre, ni barre de message qui sera directement in-
1.1 Création de fenêtres vierges cluse dans les autres fenêtres de votre application
Pour créer une fenêtre vierge : grâce au champ "Fenêtre interne".
Remarque : La programmation associée aux éléments du modèle peut être directement
Ainsi, il est possible d’inclure une fenêtre (et son
réalisée dans le modèle. 1. Cliquez sur parmi les boutons d’accès ra- code) dans une autre fenêtre.
Les caractéristiques des éléments peuvent être désolidarisées du modèle. Par exemple, pide. La fenêtre de création d’un nouvel élément
s’affiche : cliquez sur "Fenêtre" puis sur "Fenêtre". Pour créer une fenêtre interne :
désolidariser la position d’un champ du modèle pour positionner le champ ailleurs tout
L’assistant de création d’une fenêtre se lance. 1. Cliquez sur parmi les boutons d’accès ra-
en conservant les autres évolutions sur le champ (code, style, …). On parle alors d’héri- 2. Choisissez le type "Vierge". pide. La fenêtre de création d’un nouvel élément
tage de champ. Dans ce cas, les éléments sont identifiés par un carré bleu. 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 sauve- 2. Sélectionnez l’onglet "Fenêtre interne".
garde apparaît automatiquement. 3. Sélectionnez le type de fenêtre et le gabarit as-

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


socié. pide. La fenêtre de création d’un nouvel élément projets). Pour plus de détails, consultez le cha- • soit sélectionnez l’option "Description" du menu
4. Validez. La fenêtre de sauvegarde apparaît auto- s’affiche : cliquez sur "Fenêtre" puis sur "Fenêtre". pitre "Applications multilingues", page 137. contextuel de la fenêtre (clic droit de la souris).
matiquement. L’assistant de création d’une fenêtre se lance. • se griser automatiquement si elle devient inac- • soit sélectionnez la fenêtre et utilisez le raccourci
2. Sélectionnez l’onglet "Basée sur un modèle". cessible. Cette fonctionnalité s’appelle GFI pour clavier [Alt] + [Entrée].
1.3 Fenêtre basée sur un modèle 3. Sélectionnez le modèle voulu et le gabarit asso- Grisage des Fenêtres Inaccessibles. Pour plus de
cié. détails, consultez le paragraphe “Grisage auto- 3.4 Caractéristiques par onglet
WINDEV permet également de créer une fenêtre
4. Validez. La fenêtre de sauvegarde apparaît auto- matique des fenêtres”, page 27. Ce paragraphe présente rapidement les différentes
basée sur un modèle de fenêtres. Dans ce cas, il
matiquement. • autoriser le drag and drop. Pour plus de détails catégories de caractéristiques affichées par onglet.
suffit de sélectionner le modèle de fenêtres voulu.
Les modifications effectuées dans un modèle de sur le drag and drop et sa programmation, Pour plus de détails sur chacune des caracté-
Les modèles de fenêtres contiennent tous les
fenêtres sont automatiquement reportées sur consultez l’aide en ligne. ristiques présentes dans les différents onglets,
éléments graphiques et le code communs à l’en-
toutes les fenêtres utilisant ce modèle. • autoriser la modification de l’interface par l’utili- consultez l’aide en ligne.
semble des fenêtres de votre application.
Un modèle de fenêtres permet de respecter la sateur final. Pour plus de détails, consultez l’aide
Pour créer une fenêtre basée sur un modèle : charte graphique définie pour une application. en ligne. Onglet Général
1. Cliquez sur parmi les boutons d’accès ra- L’onglet "Général" permet de spécifier le nom de la
Remarque : Pour forcer une action sur une fenêtre, fenêtre et son titre.
il suffit de définir un bouton de cette fenêtre en
Onglet IHM
2  Manipulations simples sur une fenêtre depuis l’éditeur mode "Exécution automatique". Pour plus de dé-
L’onglet "IHM" permet de définir les différents para-
tails, consultez le paragraphe “Exécution automa-
tique d’un bouton”, page 47. mètres de l’interface de la fenêtre :
L’éditeur de fenêtres permet de réaliser les mani- • Sauvegarder et copier une fenêtre. • visibilité de la fenêtre,
pulations suivantes sur les fenêtres : • Importer et exporter une fenêtre. 3.2 Fenêtre de description • position de la fenêtre,
• Ouvrir une fenêtre sous l’éditeur : Il suffit de • Modifier l’ordre de navigation. La fenêtre de description est une fenêtre à onglets, • gestion du clic droit, du curseur de la souris,
double-cliquer sur le nom de la fenêtre affiché Pour plus de détails sur ces manipulations, consul- regroupant toutes les caractéristiques paramé- • association à un menu contextuel, …
dans le volet "Explorateur de projet". tez l’aide en ligne. trables de la fenêtre.
• Modifier la taille d’une fenêtre. Remarque : Il est également possible de visualiser Onglet Détail
et/ou de modifier les caractéristiques d’une fenêtre L’onglet "Détail" permet de définir les différents
dans le modifieur. Pour plus de détails, consultez paramètres de la fenêtre :
3  Principales caractéristiques d’une fenêtre l’aide en ligne. • modication de l’interface par l’utilisateur final,
3.3 Affichage des caractéristiques • animation,
3.1 Caractéristiques • avoir un menu déroulant : ce menu permettra • fermeture automatique.
Pour afficher la fenêtre de description :
aux utilisateurs d’accéder plus rapidement aux
Une fenêtre peut accueillir tous les types de • soit double-cliquez sur le fond de la fenêtre.
principales fonctionnalités de l’application. Pour
champs disponibles. Une fenêtre peut :
créer un menu déroulant dans une fenêtre, sous
• être redimensionnable  : l’utilisateur pourra le volet "Fenêtres", dans le groupe "Barres et me-
agrandir ou diminuer la taille de la fenêtre. Selon nus", déroulez "Menu principal" et sélectionnez
les caractéristiques d’ancrage définies pour cha- l’option "Ajouter le menu principal". La première
cun des champs, la position des champs dans la option apparaît dans la fenêtre. Les options
fenêtre pourra varier lors de ce redimensionne- peuvent être manipulées grâce au menu contex-
ment (pour plus de détails sur l’ancrage, consul- tuel des options. Les options de menu peuvent
tez “Ancrage des champs”, page 45). ensuite être manipulées par programmation.
• avoir une image de fond : cette image est Pour plus de détails, consultez “Les menus”,
affichée en fond de la fenêtre et les champs page 29.
viennent se superposer à cette image. Il est • avoir une barre de message : cette barre de mes-
également possible de définir des caractéris- sage affichera les messages d’aide associés aux
tiques de redimensionnement grâce au mode 9 différents champs de la fenêtre. Cette barre de
images. Pour plus de détails, consultez “Fenêtre message permet également d’afficher des infor-
et image”, page 24. mations supplémentaires. Pour plus de détails,
• être détourée : la fenêtre aura ainsi une forme consultez “La barre de message”, page 33.
originale (fenêtre en forme de cercle, d’ordina- • être multilingue : toutes les langues définies
teur, …). Pour plus de détails, consultez le para- pour la fenêtre seront disponibles pour tous les
graphe “Fenêtre détourée”, page 26. 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 l’espace du champ Image. Symétrie
Cet onglet permet de paramétrer : (dossier du projet, dossier de la fenêtre, …). • Répété : l’image est affichée à 100% et répétée Les options de symétrie permettent de changer
• l’image de fond de la fenêtre, Onglet Aide dans le champ Image pour occuper tout l’espace l’orientation de l’image contenue dans le fichier
• l’image de la poignée de redimensionnement, du champ. image. Ces options seront conservées même si
L’onglet "Aide" permet d’associer un fichier d’aide l’image est modifiée par programmation (propriété
• l’icône de la fenêtre. contextuelle à la fenêtre. Ce fichier d’aide contient • Homothétique : l’image est agrandie proportion-
nellement pour être affichée entièrement dans le ..Image).
les pages d’aide contextuelle affichées par chaque
Onglet Langues champ. champ Image. Image originale :
Cet onglet permet de connaître les langues gérées • Homothétique étendu : l’image est proportion-
par la fenêtre, ainsi que la langue affichée sous Onglet Style nellement agrandie pour que le plus petit côté de
l’éditeur. Il est possible d’ajouter, de modifier ou de L’onglet "Style" permet de définir le style de la fe- l’image soit affiché entièrement dans le champ
supprimer des langues. nêtre : Image.
Onglet Notes • Présence de la barre de titre. • Homothétique centré : l’image est homothétique
• Présence des différentes icônes. et centrée dans le champ Image. Les options sont les suivantes :
L’onglet "Notes" permet de décrire le fonctionne-
ment détaillé de la fenêtre. Ces informations seront • Présence de la barre de message, … • Homothétique centré étendu : l’image est éten- Symétrie Symétrie Symétrie
due et centrée dans le champ Image. verticale horizontale horizontale
• Homothétique sans agrandissement : si l’image et verticale
4  Fenêtre et image peut être affichée entièrement dans la fenêtre,
elle est affichée à 100%. Si l’image est plus
grande que la fenêtre, elle est automatiquement
4.1 Présentation Les options possibles sur l’image sont : réduite proportionnellement pour être affichée
entièrement.
Pour optimiser le look de vos écrans, WINDEV per- • Gestion des images multilingues.
• Homothétique centré sans agrandissement : Mode 9 images
met d’utiliser : • Mode d’affichage.
l’image est centrée et homothétique sans agran- Si cette option est sélectionnée, le mode 9 images
• des couleurs de fond. De nombreuses couleurs • Position. dissement.
standard peuvent être utilisées. La couleur de sera utilisé sur l’image de fond de la fenêtre.
• Transparence. L’option "Affichage Haute Qualité" permet en mode
fond est configurée dans l’onglet "Style" de la Le mode 9 images consiste à découper l’image de
• Symétrie. homothétique d’améliorer la qualité de l’image
fenêtre de description de la fenêtre. fond en 9 zones.
• Mode 9 images. lorsque celle-ci est réduite par rapport à sa taille
• des images dans vos fenêtres. Ces images sont initiale. Pour chaque zone, il est possible de définir si
• Détourage de la fenêtre selon l’image de fond. la partie de l’image correspondant à la zone doit
utilisées en image de fond de la fenêtre. Vos
champs sont superposés sur cette image. La Gestion des images multilingues Position être affichée ou non (il suffit de cocher le nom de
configuration de l’image de fond est réalisée Une image de fond différente peut être affichée Ce paramètre permet de définir la position du point la zone pour l’afficher). Si la partie de l’image n’est
dans l’onglet "Image" de la fenêtre. selon la langue d’exécution du programme. Les ca- haut gauche de l’image par rapport à la surface de pas affichée, elle sera remplacée par la couleur de
Remarques : ractéristiques d’affichage peuvent être spécifiques la fenêtre. fond de la fenêtre.
• Si nécessaire, WINDEV offre également la possi- à chaque langue. Ces options seront conservées même si l’image est Les marges permettent de définir la taille de
bilité d’utiliser le look et le thème XP/Vista dans modifiée par programmation (propriété ..Image). chaque zone.
Pour définir une image de fond multilingue :
vos fenêtres. Pour plus de détails, consultez
1. Cliquez sur l’icône présente à droite du nom de Transparence
l’aide en ligne.
l’image de fond. Les options de transparence de l’image de fond
• Pour personnaliser vos fenêtres, vous pouvez 2. Sélectionnez l’option "Multi-langues". sont les suivantes :
également utiliser un gabarit ou un modèle de 3. Pour chaque langue définie dans votre fenêtre,
fenêtres. • Magenta transparent : Le magenta présent dans
choisissez l’image appropriée. l’image sera transparent à l’affichage sous l’édi-
4. Validez. Le libellé "Valeur multilangue" apparaît teur comme en exécution.
4.2 Configuration de l’image de fond dans le champ de définition des images de fond.
La configuration est effectuée dans l’onglet "Image" Transparence : aucune Magenta transparent
Mode d’affichage
de la description de la fenêtre.
Une image peut être affichée dans une fenêtre se-
Vous pouvez sélectionner directement le fichier
lon plusieurs modes d’affichage. Ces modes d’affi-
correspondant à l’image de fond ou sélectionner
chage permettent d’obtenir différents effets :
une image du catalogue. Les principaux formats
d’image pouvant être affichés sont les suivants : • 100% : l’image est affichée à 100% à partir du
coin haut gauche du champ Image. • Point haut gauche : tous les points ayant la
BMP, JPEG, TIFF ou GIF. même couleur que celle du point haut gauche de
Il est également possible de réaliser directement • Centré : l’image est affichée à 100% et centrée l’image seront transparents.
un Drag and Drop du fichier image présent dans dans le champ Image.
Ces options seront conservées même si l’image est
l’explorateur vers la fenêtre WINDEV. • Etiré : l’image est déformée pour occuper tout modifiée par programmation (propriété ..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
La forme de la fenêtre est définie par une image. celle à utiliser ?
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.
Attention : Les bordures de cette image doivent Par exemple :
ê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
effectuée dans l’onglet "Image" de la fenêtre de Etape 2 : Une fenêtre vous demande de confirmer
Le mode 9 images permet de gérer le fonctionne- ou d’annuler ces modifications. La fenêtre princi-
description de la fenêtre.
ment de chaque zone lors du redimensionnement pale (en arrière-plan) est devenue inaccessible. Elle
de la fenêtre. s’est grisée automatiquement. Vous savez immé-
Pour chaque zone : diatement quelle fenêtre doit être utilisée.
• 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" grammation.
Etape 1 : Vous modifiez des informations concer-
nant un client puis vous cliquez sur le bouton "Vali- Pour plus de détails, consultez l’aide en ligne.
5.1 Présentation Par exemple : der".

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- nêtres de votre application grâce au champ de type
cours. Généralement, cette fenêtre permet à l’uti-
miquement une même partie d’interface au sein "Fenêtre interne".
lisateur de réaliser une sélection. Cette fenêtre
d’une ou de plusieurs applications. Remarque : La fenêtre à fusionner peut être issue
renvoie donc à la fenêtre principale la valeur sélec-
tionnée par l’utilisateur. Cette fenêtre se ferme au- L’interface à utiliser plusieurs fois est créée dans d’un composant.
tomatiquement dès qu’un clic gauche de souris est une fenêtre de type "Fenêtre Interne".
Remarque : Les caractéristiques d’une fenêtre po- Pour plus de détails, consultez l’aide en ligne.
effectué (à l’intérieur ou non de la fenêtre popup). pup sont les suivantes : Cette interface est utilisée dans les différentes fe-
• ouverture par défaut sous le champ qui ouvre la
fenêtre (ou au-dessus ou à gauche du champ si la
place disponible sous le champ est insuffisante).
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éfi-
nie 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 l’appli- Un menu contextuel peut être ouvert par l’utilisa- Par exemple :
Ces modèles contiennent tous les éléments gra- cation. 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 de permet aux utilisateurs d’accéder plus facilement
fenêtres de votre application. 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 de tuels
fenêtres et peuvent être manipulés par program-
9  Traitements associés aux fenêtres mation. 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- des menus contextuels personnalisés, voici le voca-
9.1 Traitements gérés par défaut • Affectation de la propriété ..Valeur (fenêtre 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 le leur en lecture sur le champ Fenêtre Interne.
code de prise de focus. Le traitement d’initialisa-
tion des champs de la fenêtre est exécuté après 9.2 Traitements optionnels
ce code.
Plusieurs traitements optionnels peuvent être gé-
• Fermeture : rés. Il suffit de :
Exécuté lors de la fermeture de la fenêtre. 1. Cliquer sur les "..." présents dans le traitement
Remarque : une reprise de saisie sur un des "Autres traitements" de l’éditeur de code.
champs de la fenêtre dans ce code empêche la 2. La fenêtre des traitements optionnels s’affiche.
fenêtre de se fermer. 3. Sélectionner le ou les traitements optionnels à
• Demande de mise à jour de l’affichage : ajouter et valider.
Permet de regrouper le code de mise à jour des 4. Les traitements sélectionnés sont automatique-
champs de la fenêtre : contenu des champs, état ment ajoutés à la suite des traitements proposés
(visible, grisé, ...), libellé à mettre à jour, ... par défaut.
Ce traitement est lancé sur demande grâce aux
fonctions : Il est ainsi possible de gérer par exemple :
• DemandeMiseAJourIHM : Exécute le traitement • la prise et la perte de focus,
à la fin du traitement en cours (lancement asyn- • la modification d’un des champs de la fenêtre,
chrone). • la modification de la taille de la fenêtre,
• ExécuteMiseAJourIHM : Exécute immédiate- • le survol de la fenêtre par la souris,
ment le traitement. • 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é exis-
tant à 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
• Editer un menu contextuel personnalisé. titre de la fenêtre sous WINDEV. En règle générale,
• Afficher la fenêtre de description d’un menu les applications contiennent une fenêtre menu.
contextuel personnalisé. Cette fenêtre contient uniquement un menu prin-
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 Remarque : Le menu contextuel système affiché
contextuel personnalisé n’est associé au champ) : dépend de l’ActiveX associé au champ.
• un champ de saisie :
• un champ HTML :

Pour plus de détails sur la traduction de ce 11.2 Vocabulaire associé aux menus princi-
menu, consultez l’aide en ligne. paux
• une colonne de table : Pour manipuler simplement un menu principal,
il est nécessaire de connaître le vocabulaire sui-
vant :

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

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


Les différents types de
champs standard Sélectionner une date

WINDEV met à votre disposition de nombreux champs livrés en standard. Voici comment
Calendrier
les utiliser en fonction de l’opération à réaliser :

Vous voulez… Utilisez un champ…


Afficher du texte, un titre, …

Libellé Afficher une image (Photo, …), une animation ou utiliser


des 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 destina- Table


taires d’un message, …)

Interrupteur, Liste

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


Sélectionner une ou plusieurs valeurs parmi une liste gra- avec la photo, …)
phique (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 Code-barres


autre fe­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, Tous les champs peuvent bien sûr être manipulés
facilement intégrables dans vos fenêtres. Ces par programmation.
champs peuvent être créés directement par le volet
TreeMap "Création" du ruban WINDEV.

1  Créer un champ

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

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


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

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 • Déplacer un champ "Règles". Deux types de guides peuvent alors être vole un repère, le curseur se transforme en une
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- • Afficher une bulle d’aide avancée lors du survol 4.2 Grille magnétique
les champs à l’intérieur des fenêtres.
gnées permettent de : d’un champ, contenant : le nom du champ, sa
position, sa taille, son ancrage, son état initial. • les guides de bordure, permettant de déterminer La grille magnétique permet de placer des repères
• visualiser la taille d’un champ, une bordure de taille identique de chaque côté
• Utiliser un champ hors fenêtre. Ce champ sera (verticaux et horizontaux) dans la fenêtre. Les
• modifier la taille d’un champ. de la fenêtre. champs créés viennent se placer contre ces re-
visible uniquement en édition et ne sera pas vi-
Les couleurs des poignées permettent de connaître Remarque : L’option "Guide visible" du menu pères, comme si les champs et les repères étaient
sible en exécution.
les actions réalisables : contextuel des règles permet de visualiser la fe- magnétisés. La grille magnétique permet ainsi
• Les poignées noires permettent de visualiser et nêtre avec ou sans ses guides. Visibles ou non, les d’aligner les champs selon les repères.
de redimensionner un champ. guides sont toujours actifs : un champ déplacé vers
• Les poignées blanches permettent unique- un repère est automatiquement accolé à celui-ci.
ment de visualiser un champ. Par exemple, lors
de la sélection de plusieurs champs, les poi- Par exemple, dans le cas d’une fenêtre :
gnées blanches indiquent qu’il est impossible
de modifier 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 que le premier Remarque : Un champ "hors fenêtre" permet par
champ sélectionné lors d’une sélection multiple. exemple de :
Ce 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 fe-
• Regrouper des champs sélectionnés nê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 standard,
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.
• le zoom paramétrable.

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 1. Sélectionnez le champ sous l’éditeur.
sont magnétisés et permettent d’aligner le champ peuvent être alignés à gauche en fonction du dé- 2. Sous le volet "Modification", cochez/décochez Pour encadrer ou non un champ sous l’éditeur de
déplacé avec les champs présents dans la fenêtre. but du champ ou du début de la zone de saisie. l’option "Verrouillé". fenêtres :
Ils peuvent aussi être alignés à droite en fonction 1. Sélectionnez le champ sous l’éditeur.
de la fin du champ ou de la fin de la zone de sai- Un champ verrouillé est un champ qui ne peut pas
4.4 Correcteur d’interface avancé être sélectionné au lasso. Il est intéressant par
2. Sous le volet "Modification", cochez/décochez
sie. l’option "Encadré".
Le correcteur d’interface avancé est un outil per- exemple de verrouiller un onglet. Lorsque plusieurs
• l’espacement uniforme  : l’espacement entre sélections au lasso des champs affichés dans l’on- L’encadrement d’un champ permet de visualiser
mettant d’harmoniser la disposition des champs
les champs est adapté pour être le même entre glet sont effectuées, l’onglet n’est pas sélectionné plus facilement l’ensemble des champs présents
dans les différentes fenêtres d’une application.
chaque champ (horizontalement ou verticale- automatiquement. dans une fenêtre (notamment pour les champs
Le correcteur d’interface avancé propose pour la ment). image).
fenêtre en cours ou uniquement pour les champs
• 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 :
champs de même hauteur et/ou de même lar- 6  Ancrage des champs
alignement des champs, normalisation de la taille
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 "Modification", • le dernier champ sélectionné. La gestion de l’ancrage d’un champ est constituée
dans le groupe "Alignement"). • le plus grand champ sélectionné. de deux paramètres :
• soit un alignement personnalisé (disponible sous • le champ situé le plus en haut à gauche des • l’ancrage du champ : permet de définir la modi-
le volet "Alignement", dans le groupe "Autres ali- champs sélectionnés. fication à appliquer au champ en fonction du
gnements"). 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 pourcen-
tage de déplacement ou d’étirement du champ.
Les options d’édition permettent de paramétrer : Pour afficher ces options, sous le volet "Affichage", Grâce à ce paramètre, il est possible par exemple
cliquez sur l’icône de regroupement du groupe de :
• les options d’affichage.
"Options". • laisser un champ centré en largeur dans la
• le magnétisme des champs.
fenêtre quelle que soit sa taille.
• les opérations de clic et de double-clic sur les 5.1 Rendre visible / invisible un champ • agrandir proportionnellement certains champs
champs.
Pour rendre visible / invisible un champ sous l’édi- de la fenêtre.
• les options de sélection des champs.
teur de fenêtres : Ces paramètres peuvent être configurés :
• la position de la fenêtre à son ouverture. 1. Sélectionnez le champ sous l’éditeur. • sous l’éditeur de fenêtres.
Ces options d’affichage permettent de personnali- 2. Sous le volet "Modification", dans le groupe "Aide • par programmation grâce aux propriétés WLan-
ser la manipulation des champs sous l’éditeur de à l’édition", cochez/décochez l’option "Visible (édi- gage.
fenêtres. teur)".

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


6.1 Ancrer un champ sous l’éditeur Répartition Verticale  : Cette option Cependant, le champ est ancré à Fenêtre agrandie :
Pour ancrer un champ : n’est disponible que lorsque plusieurs droite et se déplace vers la droite
1. Sélectionnez un ou plusieurs champs à ancrer. champs sont sélectionnés. Les options lorsque la fenêtre est élargie.
2. Définissez l’ancrage du / des champs : d’ancrage permettent alors de conser- Pour que le champ se déplace plus ou
ver une répartition verticale des champs moins vite, utilisez le taux d’ancrage à
• soit dans l’onglet "IHM" de la fenêtre de descrip- sélectionnés lorsque la fenêtre s’agran- droite.
tion du champ (option "Description" du menu dit en hauteur.
contextuel du champ). Centré : Le champ reste centré en hau-
• soit grâce à l’option "Ancrage" du menu contex- Bas : Le champ se déplace vers le bas teur et en largeur dans la fenêtre quelle
tuel (clic droit) du champ. lorsque la fenêtre est agrandie vers le que soit la taille de la fenêtre.
3. Dans cette fenêtre, choisissez le type d’ancrage bas. Pour que le champ se déplace plus
ou moins vite, utilisez le taux d’ancrage 4. Définissez si nécessaire les différents taux d’an-
à utiliser. Les options les plus courantes sont pré- crage.
sentées sous forme d’icônes : en bas.
5. Validez. Si l’option "Ancrage" est activée (sous
Aucun ancrage : Le champ n’est pas Largeur et Bas : Le champ s’étire vers la le volet "Affichage", dans le groupe "Voir (tous les
modifié lorsque la taille de la fenêtre est droite et se déplace vers le bas lorsque champs)"), les signes d’ancrage apparaissent auto-
modifiée. Aucune option d’ancrage n’est la fenêtre s’agrandit. matiquement dans le champ (flèches rouges).
sélectionnée. Pour que le champ se déplace plus ou
moins vite, utilisez le taux d’ancrage 6.2 Exemple de paramétrage de l’ancrage
Largeur : Le champ s’étire vers la droite en bas. des champs
lorsque la fenêtre s’agrandit. Pour faire Pour faire varier la vitesse d’étirement
varier la vitesse d’étirement du champ Pour illustrer les possibilités d’ancrage des champs Pour obtenir ce résultat :
du champ par rapport à la fenêtre, utili- dans les fenêtres, voici un exemple détaillé. 1. Sélectionnez les boutons [<-] et [->] : ces champs
par rapport à la fenêtre, utilisez le taux sez le taux d’ancrage en largeur.
d’ancrage en largeur. Fenêtre originale : doivent être centrés en hauteur et en largeur (op-
Droite et Bas : Le champ se déplace tion ).
Droite : Le champ se déplace vers la
droite lorsque la fenêtre s’agrandit. Pour vers la droite et vers le bas lorsque la 2. Sélectionnez les deux listes  : ces champs
que le champ se déplace plus ou moins fenêtre s’agrandit. Pour que le champ doivent être ancrés à droite, en largeur et en hau-
vite, utilisez le taux d’ancrage à droite. se déplace plus ou moins vite, utilisez teur (options "à droite", "en largeur" et "en hauteur"
le taux d’ancrage en bas et le taux d’an- cochées).
Centré en largeur : Le champ reste cen- crage à droite. 3. Sélectionnez les 3 boutons : ces champs doivent
tré en largeur dans la fenêtre quelle que s’étirer à droite proportionnellement (option
soit la largeur de la fenêtre. Centré horizontal en bas : Le champ
reste centré en largeur dans la fenêtre ).
Hauteur : Le champ s’étire vers le bas quelle que soit la largeur de la fenêtre. Remarque : Par programmation, il est possible de
lorsque la hauteur de la fenêtre s’agran- Cependant, le champ est ancré en bas configurer l’ancrage des champs grâce à diverses
dit. Pour faire varier la vitesse d’étire- et se déplace vers le bas lorsque la fe-
ment du champ par rapport à la fenêtre, propriétés WLangage.
nêtre s’agrandit.
utilisez le taux d’ancrage en hauteur.
Pour que le champ se déplace plus ou
Largeur et Hauteur : Le champ s’étire moins vite, utilisez le taux d’ancrage en
vers la droite et vers le bas lorsque la bas.
fenêtre s’agrandit. Pour faire varier la vi-
Centré en hauteur : Le champ reste cen-
7  Exécution automatique d’un bouton
tesse d’étirement du champ par rapport
à la fenêtre, utilisez le taux d’ancrage en tré en hauteur dans la fenêtre quelle
hauteur et le taux d’ancrage en largeur. que soit la hauteur de la fenêtre. Pour forcer une action sur une fenêtre, il suffit de 7.1 Mise en place
Répartition Horizontale : Cette option définir un bouton de cette fenêtre en mode "Exé-
Hauteur et Droite : Le champ s’étire Pour exécuter automatiquement un bouton d’une
n’est disponible que lorsque plusieurs cution automatique". Le principe est très simple,
vers le bas et se déplace vers la droite fenêtre :
champs sont sélectionnés. Les options si au bout d’une certaine durée, aucun bouton de
lorsque la fenêtre s’agrandit. 1. Déterminez quel bouton de votre fenêtre doit
d’ancrage permettent alors de conserver la fenêtre n’a été utilisé, le traitement du bouton
Pour que le champ se déplace plus ou être exécuté automatiquement.
une répartition horizontale des champs "Exécution automatique" sera automatiquement
moins vite, utilisez le taux d’ancrage à 2. Dans la description de la fenêtre (onglet "Détail"
sélectionnés lorsque la fenêtre s’élargit. exécuté. En exécution, la durée est automatique-
droite. de la fenêtre de description), indiquez :
ment décrémentée. A zéro, le code du bouton est
Pour faire varier la vitesse d’étirement Centré vertical à droite : Le champ reste automatiquement exécuté. • le temps avant l’exécution automatique du bou-
du champ par rapport à la fenêtre, utili- centré en hauteur dans la fenêtre quelle ton.
sez le taux d’ancrage en hauteur. que soit la hauteur de la fenêtre. • le bouton à exécuter.

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


Modèles de
champs
3. En exécution, le temps restant est automatique- 7.2 Programmation
ment affiché.
Il est possible également de définir un bouton de
validation automatique grâce à la fonction DélaiA-
vantFermeture.
WINDEV permet de créer des modèles de champs. Un modèle de champs est un en-
7.3 FAA : Fonctionnalité Automatique de semble de champs, réutilisable dans plusieurs fenêtres.
l’Application
Les modifications effectuées dans un modèle de champs sont automatiquement repor-
Cette fonctionnalité est également directement ac- tées sur toutes les fenêtres utilisant ce modèle.
cessible à l’utilisateur. Il peut demander à ce qu’un
bouton de l’application s’exécute automatiquement Un modèle de champs permet de :
au bout d’une durée spécifique. • regrouper un ensemble de champs dans un but précis.
• rendre les champs indépendants de la fenêtre les accueillant.

Définition d’un modèle de champs.


Le modèle est encadré d’un trait vert sous l’éditeur.

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ésolidariser 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éri-
tage 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 : Modèles
Les états d’états
Un état permet d’obtenir une vue personnalisée d’informations : données saisies dans Dans une société, bien souvent, les impressions utilisent un look et une mise en page
la base de données, données présentes dans un fichier texte, données provenant d’un unifiés : date en haut à droite dans un format spécifique, pied de page avec heure d’im-
champ Table, … pression et nom du fichier, logo en haut à gauche, …
Un état peut être affiché à l’écran, enregistré dans un fichier HTML, directement édité Les modèles d’états permettent d’uniformiser simplement la mise en page de vos états.
sur une imprimante, …
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
• l’exécution de l’état peut être dirigée vers l’écran, un fichier HTML, RTF, … ou vers sous l’éditeur d’états.
une imprimante.

Sources de Modes
l’état d’impression

Champ Table Fichiers HTML,


XML, ...

Champ Zone
Fichiers XLS, PDF,
mémoire
...
Utilisation du modèle dans différents états.
Les éléments appartenant au modèle sont identifiés par un carré jaune.
Requête Les éléments du modèle surchargés sont identifiés par un carré bleu.
Etat Fichier Texte
(Editeur d’états)

Fichier Texte Remarque : La programmation associée aux éléments du modèle peut être directement
Fichier PCL
réalisée dans le modèle.
Les caractéristiques des éléments peuvent être désolidarisées du modèle. Par exemple,
Données
Imprimante désolidariser 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éri-
Variable WLangage
tage. Dans ce cas, les éléments sont identifiés par un carré bleu.
Aperçu avant
impression

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


Partie 2

Environnement
de
développement

52 Partie 1 : Notions de base


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

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


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

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 Configuration de
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
Par exemple, pour un ERP destiné à fonctionner sous Windows, il est fort probable qu’en "cibles" différentes.
plus de l’application qui sera le socle de la solution applicative, des commerciaux seront Vous pouvez ainsi créer à partir d’un même projet par exemple :
équipés de Mobiles iOS ou Android, les magasiniers utiliseront des terminaux mobiles • des exécutables qui ne contiennent pas les mêmes éléments, qui ont des noms dif-
pour la gestion des stocks et qu’un site Intranet et un site Internet seront mis en place. férents, …
• différents composants
Tous les éléments, hormis l’IHM (pages et fenêtres) sont 100% compatibles et parta- • des Webservices
geables 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 A tout moment, vous pouvez travailler sur une configuration spécifique : les éléments
entre plusieurs projets. n’appartenant pas à cette configuration apparaissent grisés dans le graphe de projet.

Quel que soit le produit avec lequel un projet a été créé, il est possible de l’ouvrir avec
les autres produits.
Projet WINDEV
Lorsque vous ouvrez un projet dans un produit dif-
férent de celui qui a permis de le créer, un assistant
s’affiche, permettant de créer une configuration de
projet spécifique au produit 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 Configurations du Projet
tous les éléments nécessaires au site WEBDEV.

Dans les phases d’utilisation de l’environnement, il


est possible de visualiser depuis chaque environne-
ment les éléments de chaque cible. Un projet sous Config 1. Config 2. Config 3. Config 4. Config 5.
Exécutable Assemblage Composant Archive Webservice
WINDEV affiche les vignettes des pages WEBDEV et WINDEV DotNet Java
les fenêtres WINDEV Mobile par exemple. Cliquer
sur une page WEBDEV depuis l’éditeur de projet
WINDEV ouvre la page WEBDEV (WEBDEV doit être
installé sur le poste).

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

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


Génération Perso-dossiers :
multiple Organisez votre projet
Les configurations de projet permettent de définir simplement les différentes "Cibles" Tous les éléments qui composent un projet sont listés dans le volet "Explorateur de Pro-
de votre projet. Vous pouvez ainsi définir pour un même projet, des exécutables, biblio- jet". Par défaut, les éléments sont triés en fonction de leur type : fenêtres, états, classes...
thèques, Webservices, assemblages DotNet, … Dans les projets de taille importante, il est souvent plus pertinent de regrouper les élé-
ments qui ont trait à la même fonctionnalité : gestion du stock ou traitement des com-
Pour générer le résultat de chaque configuration, vous pouvez bien entendu sélectionner mandes par exemple.
une à 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 Des éléments peuvent être communs à plusieurs "perso-dossiers".
seule opération 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.

Contenu du Contenu du
perso-dossier Commande perso-dossier Collaborateur

Pour lancer une génération multiple, sous le volet "Projet", dans le groupe "Génération",
cliquez sur "Génération Multiple".
Fenêtres, états, requêtes se rapportant Fenêtres, états, requêtes se rapportant
aux commandes aux collaborateurs

Remarques :
• Pour ranger, organiser vos projets, mais aussi pour partager un ensemble d’élé-
ments entre différents projets, WINDEV met également à votre disposition les com-
posants internes.
• Les "perso-dossiers" sont affichés dans le graphe du projet et dans le volet "Explora-
teur du projet".

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


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

Présentation
Pour simplifier vos développements en équipe, WINDEV propose un gestionnaire de Poste Local 1

2
sources. Ce gestionnaire de sources permet à plusieurs développeurs de travailler simul-
tanément sur le même projet et de partager aisément des éléments entre différents
Extraction 9h57
projets. Projet A Projet A
Version 1 Version 1

Réseau
3 Modification

Projet A Réintégration 10h41 Projet A


(intranet) Version 2 Version 2

4
ADSL Poste Local 2 Projet A
Version 3

(internet) 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
en clientèle Projet A Version 2 à 14h28
Il est possible de partager les éléments présents dans le GDS :
Projet A Réintégration 18h32
• via un réseau local, Version 3
Poste Nomade
Réintégration de la fenêtre Beta modifiée
• via Internet,
• 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 por-
table 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 Serveur GDS Développeur Voici donc une série de conseils qui s’appliquent au
• le groupware développeur. Son utilisation est 1 EXTRACTION
WINDEV unique en partageant les différentes res- D’UN ÉLÉMENT Réseau local serveur qui hébergera vos sources :
conservée pour compatibilité avec les versions
sources (requêtes, classes, ...) manipulées. • Utilisez un serveur dédié avec un disque de taille
précédentes. Pour plus de détails, consultez Projet
local confortable (au moins 200 Go).
l’aide en ligne (mot-clé  : "Groupware déve- Projet de 3 RÉINTÉGRATION 2 MODIFICATION

loppeur"). référence • Utilisez plutôt le Gestionnaire de Sources (GDS)


Développeur en mode Client/Serveur.
SYNCHRONISATION ADSL (Internet)
4 • Les disques durs peuvent avoir des problèmes
1  Le Gestionnaire de Sources physiques : utilisez si possible un système RAID I

SY
Projet

N
4 local

CH
sur votre serveur (plusieurs disques stockant les

RO
N
mêmes informations en double).

IS
Développeur

AT
IO
1.1 Présentation 1.2 Principe d’utilisation Déconnecté
• Protégez l’alimentation de votre serveur par un

N
Installation
Projet onduleur.
WINDEV innove dans la gestion du travail en groupe local

avec le gestionnaire de sources (appelé également • Faites des sauvegardes régulières de la base
COPIE LOCALE
GDS). Serveur GDS de sources (1 sauvegarde par semaine au mini-
Projet
local
Développeur mum).
Réseau local
Totalement intégré à l’environnement, le gestion- • Placez le serveur dans une zone "sécurisée", en
COPIE LOCALE
naire de sources (GDS) permet : utilisant un firewall.
Projet de Développeur
• un développement performant en équipe, Projet
local ADSL (Internet)
référence
• l’historique des modifications et des versions, COPIE LOCALE

• l’automatisation de la sauvegarde des sources Projet Développeur 2  Créer une base de sources pour le GDS
local Déconnecté
des membres de l’équipe développement.
Dimensionné pour des équipes de 1 à 100 déve- Tous les éléments du projet sont enregistrés dans 2.1 Présentation • le nom et le mot de passe d’un administrateur
loppeurs, le GDS favorise et normalise sans la base de sources (sur le serveur). Cette opération de la base HFSQL.
contrainte les échanges entre développeurs (même est effectuée à la création du projet ou lors de l’im- Pour partager un projet grâce au gestionnaire de
en développant seul, le GDS est utile car il contient portation d’un projet existant dans le Gestionnaire 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). de Sources. 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.
Chaque développeur utilisant le Gestionnaire de
Le GDS utilise une base de sources : procédures, Le système d’exploitation et le système de fichiers WINDEV permet de créer cette base de sources à
Sources récupère une copie du projet en local.
classes, fenêtres, états, composants, analyses, … sur lequel est installée la base du GDS doivent sa- différents moments :
Cette base peut être installée à votre choix sur un Utilisation voir gérer les fichiers de plus de 4 Go. • lors de l’installation de WINDEV.
serveur (en mode HFSQL Classic ou HFSQL Client/ Pour travailler sur un élément du projet (fenêtre, Il est possible de créer la base de sources : • lors de la création d’un projet utilisant le GDS.
Serveur) ou sur un poste du réseau dans un réper- état, …), le développeur doit extraire l’élément de • dans un répertoire partagé sur le réseau : • lors de l’importation d’un projet dans le gestion-
toire partagé. la base de sources, le modifier, puis le réintégrer. tous les utilisateurs du GDS doivent avoir naire de sources.
Le GDS permet un fonctionnement connecté en Si l’élément est déjà extrait, le développeur peut tous les droits sur ce répertoire. La base • directement dans l’administrateur du GDS.
local et à distance, via Internet ou une liaison HTTP demander à la personne ayant extrait de réintégrer de sources sera au format HFSQL Classic.
ou HTTPS. Il est ainsi possible de travailler sur un l’élément (par l’intermédiaire de la messagerie inté- Lorsque la base de sources est créée, il est pos-
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 grée). base de sources doit être créée.
sans crainte de perte des modifications effectuées. les projets WINDEV à partager.
• sur un serveur HFSQL Client/Serveur : la base de
Le GDS permet également un fonctionnement dé- sources sera au format HFSQL Client/Serveur. 2.3 Sauvegardes
connecté (train, avion, …). 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 teur de projet.
Les différents modes d’extraction Pour réintégrer un élément, il suffit de sélectionner
l’option "Réintégrer" dans le menu contextuel de
Pour utiliser un projet existant avec le gestionnaire • la base Le GDS propose deux modes d’extraction des élé-
l’élément (dans le graphe du projet ou dans le volet
de sources, quelques manipulations sont néces- • le port utilisé ments du projet :
"Explorateur de projet").
saires. • le nom et le mot de passe d’un administrateur • le mode classique : si vous affichez un élément
Lors de la réintégration d’un élément, un écran
de la base HFSQL. du GDS non extrait, un panneau indique que cet
3.1 Ajouter un projet dans le GDS s’affiche permettant d’effectuer les actions sui-
élément doit être extrait pour être modifié. Vous
• une base de sources GDS Drive. Indiquez les ren- vantes avant de réintégrer l’élément :
Pour ajouter un projet local dans le GDS : pouvez extraire immédiatement l’élément (bou-
seignements d’identification à votre GDS Drive : • connaître les modifications effectuées.
1. Ouvrez votre projet sous WINDEV. ton d’extraction présent dans le panneau).
email, mot de passe et équipe. • comparer l’élément de la base de sources avec
2. Sous le volet "GDS", dans le groupe "Projet", cli- • le mode automatique : si vous tentez de modifier
• une base de sources située dans PCS Cloud. Indi- l’élément local (extrait).
quez sur "Ajouter le projet". un élément du GDS non extrait, le GDS propose
quez le nom de la plateforme cloud utilisée et le • accéder à l’historique de l’élément dans la base
3. Dans l’assistant qui s’affiche, sélectionnez la automatiquement d’extraire cet élément. Après
projet à ouvrir. de sources.
base de sources à utiliser. la validation de l’extraction, l’élément peut être
4. Dans l’assistant qui s’affiche, sélectionnez la Remarque : Si vous n’avez pas encore créé de base modifié.
de sources, cliquez sur le bouton "Créer une base". Il est possible de réintégrer les modifications effec-
base de sources à utiliser. Indiquez si vous voulez Remarque : ce mode est déconseillé lors d’une
5. Validez l’assistant. Le projet est ajouté au GDS. tuées dans l’élément, tout en conservant l’élément
utiliser : utilisation du GDS avec une connexion Internet
extrait (option "Garder le fichier extrait").
• une base de sources située sur un partage lente.
3.2 Partage de ressources
réseau (base de sources au format HFSQL Clas- Pour changer le mode d’extraction : 4.4 Modes de gestion du projet
sic). Donnez le répertoire de la base de sources Vous avez importé dans le gestionnaire de sources 1. Sous le volet "Accueil", dans le groupe "Environ-
un premier projet. Ce projet contient des éléments Deux modes de gestion du projet sont disponibles
(poste du réseau ou répertoire partagé). nement", déroulez "Options" et sélectionnez l’op-
partagés avec d’autres projets (classes, fenêtres, avec le GDS :
• une base de sources située sur un serveur HF- tion "Options générales de WINDEV".
procédures, feuilles de styles, analyse, …). 2. Dans l’onglet "Général", l’option "Extraction des • Gestion du projet en mode Maître / Invité.
SQL Client/Serveur. La base de sources sera au
format HFSQL Client/Serveur. Dans ce cas, il est Le partage est une notion importante du GDS. Dif- éléments à la première modification" permet de • Gestion du projet en mode automatique (par
nécessaire de préciser : férentes méthodes sont disponibles pour effectuer passer tous les prochains projets ouverts en mode défaut).
• le serveur le partage. Pour plus de détails, consultez l’aide en automatique.
Maître et invité
ligne.
Ouvrir un élément du projet pour Le Gestionnaire de sources considère 2 types d’uti-
modifier ses caractéristiques lisateurs :
4  Travailler avec le GDS Pour modifier les caractéristiques d’un élément • le maître : le maître est l’utilisateur qui a placé le
d’un projet géré par le GDS : projet dans le gestionnaire de sources.
1. Extrayez l’élément du Gestionnaire de sources. • les invités : les invités sont les développeurs qui
2. Sélectionnez le mode d’extraction de l’élément.
4.1 Options d’un projet concernant le GDS ture du projet la liste de tous les éléments actuel- manipulent le projet depuis le gestionnaire de
Le mode d’extraction peut être : sources.
lement extraits, afin de réintégrer certains ou
Plusieurs options permettent de configurer un pro- • exclusif : personne ne pourra extraire cet élé-
tous ces éléments. Il n’est pas obligatoire d’être connecté en mode
jet manipulé avec le Gestionnaire de Sources. Ces ment jusqu’à sa réintégration. L’élément pourra
Par défaut, à la fermeture du projet, les éléments maître sur un projet. Le mode "Maître" est néces-
options sont regroupées dans l’onglet "GDS" de la uniquement être extrait pour test.
extraits ne sont pas réintégrés. saire uniquement pour :
description du projet (option "Description" sous le
• pour test : l’élément pourra être modifié mais les • modifier les caractéristiques du projet et réinté-
volet "Projet"). Ces options sont cochées par défaut. • Extraire/Réintégrer automatiquement le projet : modifications ne pourront pas être réintégrées. grer ces modifications dans la base de sources.
Cette option permet une gestion automatique
• Proposer la récupération de la dernière version • multiple : l’élément pourra également être extrait
du "fichier projet". Si cette option est cochée, le • réintégrer tous les éléments pour faire l’exécu-
des éléments à l’ouverture du projet : par d’autres utilisateurs. Dans ce cas, lors de la
fichier projet est extrait uniquement si l’action table et le programme d’installation de l’applica-
Cette option permet lors de l’ouverture d’un pro- réintégration, il sera possible de visualiser les
réalisée le nécessite. Lorsque l’action sur le pro- tion.
jet présent dans le GDS, de proposer la récupé- différences entre les différentes versions de l’élé-
jet a été effectuée, le fichier projet est automati- Pour passer du mode maître au mode invité, sous
ration de la dernière version des différents élé- ment.
quement réintégré. le volet "GDS", dans le groupe "Projet", déroulez
ments du projet. 3. Validez. L’élément est ouvert. La barre de titre
Cette option permet de ne plus avoir la gestion "Maître / Invité" et sélectionnez l’option "Devenir
Par défaut, la dernière version des éléments est indique que l’élément est extrait.
"Maître / Invité" sur le projet. Il est également invité sur le projet (et tout réintégrer)".
automatiquement récupérée.
possible d’activer cette option sous le volet 4.3 Réintégrer un élément Dans ce cas, le gestionnaire de sources propose la
• Proposer la réintégration des éléments à la fer- "GDS", dans le groupe "Projet", en déroulant réintégration de tous les éléments du projet (y com-
meture du projet : "Maître / Invité" et en sélectionnant "Gérer auto- Les éléments extraits du Gestionnaire de sources
pris le fichier .WDP).
Cette option permet d’afficher lors de la ferme- matiquement l’extraction du projet". apparaissent entourés d’un trait rouge sous l’édi-

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


Composant
interne
Pour passer du mode invité au mode maître, sous Mode automatique
le volet "GDS", dans le groupe "Projet", déroulez Avec le mode automatique, le fichier projet est
"Maître / Invité" et sélectionnez l’option "Devenir extrait uniquement si l’action réalisée le nécessite
maître sur le projet". (quel que soit l’utilisateur). Lorsque l’action sur le
Attention : Modification des options du projet : projet a été effectuée, le fichier projet est automati-
Un composant interne est un regroupement d’éléments d’un projet. Ce regroupement
Tous les utilisateurs du projet (qu’ils soient maîtres quement réintégré.
ou invités) peuvent modifier les caractéristiques
permet de :
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
charte de programmation, ...). Ces modifications éléments 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 (Gestion-
sources uniquement par le maître du projet. naire de Sources).
Les modifications faites par un invité seront per-
dues lors de la mise à jour du projet depuis la base
de données.
GDS
5  Travailler en mode déconnecté avec le GDS

Le Gestionnaire de Sources permet très simple- d’extraire avant la déconnexion les différents élé-
Projet 1
ment de travailler en mode déconnecté ou nomade. ments qui vont être modifiés (ainsi, ces éléments
Ce mode permet par exemple à un développeur seront "déjà extraits" pour les autres utilisateurs).
utilisant un portable de continuer à travailler sur Vous pourrez travailler en local sur votre projet.
1
Projet 2
un projet présent dans la base de sources tout en Les différents éléments du projet sont manipu- Création du
étant déconnecté de la base de source. lables directement. composant interne
Le principe est simple : • à la reconnexion, sous le volet "GDS", dans le
• avant la déconnexion, sous le volet "GDS", dans groupe "Autres actions", déroulez "Travail à dis- Fenêtres
tance" et sélectionnez l’option "Se reconnecter
le groupe "Autres actions", déroulez "Travail à
distance" et sélectionnez l’option "Se déconnec-
ter pour une utilisation nomade". Il est conseillé
et synchroniser". Il suffit alors de réintégrer les
éléments modifiés.
2 Partage du
composant interne
Pour plus de détails, consultez l’aide en ligne. Classes via le GDS

6  Administrateur du GDS Requêtes

L’administrateur du GDS permet de manipuler di- • gérer les différents fichiers de la base de sources
rectement les différents projets inclus dans le ges- (extraction, réintégration, partage, …).
tionnaire de sources. • lancer certains outils (options, maintenances, …).
Il permet par exemple de : • restaurer une version d’un projet.
• gérer les bases de sources (création, connexion à • voir les historiques et les différences de versions Fichier WCI
une base de sources). de sources. Sous-répertoire
(Liste des éléments)
• gérer les branches. du projet
• annuler les extractions (en mode administrateur).
• gérer les fichiers et les répertoires présents dans <MonComposant>
• purger une base, la sauvegarder, la restaurer, ...
un projet de la base de sources (ajouter, sup- • rajouter des fichiers de tout type dans la base
primer, renommer, … des fichiers et des réper- (.doc, .xls, .pdf, ...). Les éléments d’un composant interne peuvent être privés ou publics :
toires).
• Les éléments privés ne pourront être manipulés que par les autres éléments du
composant.
• Les éléments publics pourront être manipulés par les éléments du projet utilisant le
composant 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 composant
interne accède à ses propres fichiers de don-
2.2 Composant interne et analyse : cas de
l’autonomie totale
nées. Le composant interne utilise des contextes
d’exécution distincts de ceux du projet. Un composant interne peut être lié à sa propre ana-
Ce mode correspond au mode par défaut si le lyse. Dans ce cas, le projet accueillant le compo-
1  Présentation composant utilise une analyse. sant interne peut avoir plusieurs analyses :
Dans ce cas, il est nécessaire d’indiquer l’ana- • l’analyse du projet.
Un composant interne est un regroupement d’élé- projet qui l’utilise. lyse utilisée par le composant interne. Il est • l’analyse du ou des composants internes. Cette
ments d’un projet. Ce regroupement permet de : Différence avec un composant externe : Un com- également possible de créer directement une analyse est définie lors de la création du compo-
• Organiser un projet : vous pouvez créer des com- posant interne permet d’intégrer la totalité des nouvelle analyse. Cette analyse sera associée au sant interne. Elle peut être également sélection-
posants internes pour regrouper les éléments éléments du composant dans l’interface du projet composant interne. née depuis la fenêtre de description du compo-
d’un projet par exemple par fonctionnalité. contenant le composant interne. Il est possible de 6. Validez la création du composant interne. A tout sant interne.
manipuler tous les éléments "publiques" du compo- moment, il sera possible de : Les éléments générés par le RAD pour le compo-
• Partager des éléments entre différents projets :
Les éléments présents dans un composant in- sant interne directement sous l’éditeur. • Modifier les caractéristiques du composant in- sant interne seront générés dans le répertoire du
terne peuvent être partagés entre plusieurs pro- Lors de l’utilisation d’un composant externe, les terne grâce à la fenêtre de description du com- composant interne. Bien entendu, si l’analyse du
jets par l’intermédiaire du GDS. éléments "publics" du composant ne peuvent pas posant interne. composant interne est modifiée, une nouvelle gé-
être manipulés directement. Il est nécessaire pour • Manipuler le composant interne et ses éléments. nération par le RAD proposera automatiquement
Un des avantages du composant interne par rap- de générer uniquement les éléments correspon-
port au composant externe est de pouvoir débo- modifier le composant externe d’ouvrir le projet cor- Astuce : Un composant interne n’a pas de code de
respondant. déclaration des globales. Il suffit d’utiliser une col- dants aux modifications.
guer directement le composant interne depuis le
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 Les composants internes peuvent être partagés terne sera automatiquement présent dans le
Pour créer un composant interne :
proposés par la complétion. Ils pourront être uti- entre projets grâce au GDS. GDS.
1. Sous le volet "Projet", dans le groupe "Configura-
lisés par les éléments présents dans le projet ou Pour partager un composant interne via le GDS, il • soit d’importer dans le GDS un projet contenant
tion de projet", déroulez "Nouvelle configuration" et
depuis un autre composant interne. Les éléments est nécessaire que le projet contenant le compo- un ou plusieurs composants internes. Les com-
sélectionnez l’option "Composant Interne". L’assis-
non accessibles (ou "privés") pourront être manipu- sant interne soit dans le GDS. Il est possible : posants internes seront alors automatiquement
tant création d’un composant interne se lance.
lés uniquement par un autre élément du compo- intégrés dans le GDS.
2. Indiquez les caractéristiques du composant • soit de créer le composant interne à partir d’un
sant interne (la complétion proposera ces éléments
interne : projet présent dans le GDS. Le composant in-
"privés" uniquement depuis les éléments d’un com-
• 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 des
description du composant interne. Ce nom sera contextes d’exécution. Trois modes de gestion des
également utilisé pour créer un sous-répertoire données et des contextes d’exécution sont dispo-
dans votre projet contenant tous les éléments du nibles :
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. Le
3. Indiquez les éléments à intégrer dans le compo- composant interne utilise également les mêmes
sant interne. Un composant interne peut contenir contextes d’exécution que le projet.
tous les types d’éléments présents dans un pro- Ce mode correspond au mode par défaut si le
jet : fenêtres, états, modèles, collections de procé- composant interne n’utilise pas d’analyse.
dures, ... • Utiliser l’analyse du projet avec contexte d’exé-
4. Indiquez les éléments du composant interne qui cution différent (mode avancé) : Le composant
seront directement accessibles dans le code et interne accède aux fichiers de données du pro-
dans les actions prédéfinies du projet accueillant le jet. Le composant interne utilise des contextes
composant interne. d’exécution distincts de ceux du projet.
Ce mode est à utiliser dans des cas très spéci-
fiques.

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


Composant
externe Composant externe en pratique
Un composant externe est un ensemble d’éléments WINDEV : fenêtres, états, analyse, 1  Présentation
... Cet ensemble d’éléments effectue une fonctionnalité précise. Par exemple, un compo-
sant peut correspondre à une des fonctionnalités suivantes :
1.1 Définition 1.2 De quoi est constitué un composant
• Envoi de fax, externe ?
• Envoi d’emails, Un composant externe est un ensemble d’éléments
• ... WINDEV : fenêtres, états, analyse, ... Cet ensemble Un composant est défini et généré à partir d’un
d’éléments effectue une fonctionnalité précise. Par projet WINDEV existant. Il peut être ensuite intégré
Un composant externe peut être redistribué à d’autres développeurs WINDEV (gratuite- exemple, un composant externe peut correspondre dans d’autres projets WINDEV.
ment ou non). Ces développeurs pourront ainsi intégrer simplement la fonctionnalité à une des fonctionnalités suivantes : Tous les éléments du composant sont totalement
proposée par le composant externe dans leur application sans pour autant avoir accès • Envoi de fax indépendants du projet dans lequel le composant
au code source correspondant (s’il n’a pas été lui aussi distribué). Le composant externe • Envoi d’emails, ... est intégré. Le composant peut avoir sa propre
sera ensuite intégré à l’application et distribué avec elle. analyse, ses fenêtres, ses états, ses fichiers de
données, ... Lors de la création de la génération du
Remarques : composant, il suffit d’indiquer si ces éléments pour-
• Pour optimiser l’organisation de vos projets, il est
Projet WINDEV possible d’utiliser des composants internes. Pour
ront être manipulés ou non dans le projet WINDEV
intégrant ce composant.
plus de détails, consultez "Composant interne en Le composant est constitué de trois fichiers :
1 Développement pratique", page 72.
du composant • Dans la suite de ce chapitre, le terme "compo- <NomCompo- Fichier composant. Contient
sant" signifie "composant externe". sant>.WDK tous les éléments du composant.

2
Ce fichier est nécessaire à
Génération du l’intégration du composant dans
composant
Un composant externe peut être redistribué à
un projet.
d’autres développeurs WINDEV (gratuitement ou Ce fichier doit également
non). Ces développeurs pourront ainsi intégrer être livré dans la procédure
Fichier .WDK simplement la fonctionnalité proposée par le com- d’installation de l’application
posant dans leur application. Le composant sera utilisant le composant.
donc intégré à l’application et distribué avec l’appli- <NomCompo- Description du composant
Créé dans le répertoire EXE cation. (uniquement pour le
sant>.WDI
développement d’applications).
Lors de la création du composant, l’auteur spéci- Ce fichier est nécessaire à
fie : l’intégration du composant
dans un projet.
• la provenance des éléments du composant. Le Ce fichier ne doit pas être livré
développeur peut construire un composant à par- dans la procédure d’installa-

3 Importation du
composant
tir d’un projet WINDEV lié à un projet WEBDEV et/
ou un projet WINDEV Mobile.
tion de l’application utilisant
le composant.

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

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

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 (volet "Explorateur de projet" ou d’ajouter dans le répertoire EXE du projet : duite dans le répertoire EXE du projet. Pour plus de WDO :
graphe du projet) ou en appuyant sur la touche [F2] • un fichier <NomComposant>.WDO : ce fichier détails, consultez le paragraphe "Utiliser un compo- • Si vous n’utilisez pas de procédures d’installation
depuis le code de cet élément. contient la liste des fichiers externes (fichiers de sant externe dans une application", page 77. pour le composant, il est nécessaire de fournir :
données, fichiers texte, ...) utilisés par le compo- • le fichier WDK,
7.2 Visibilité d’un élément d’un composant sant. Ces fichiers doivent être livrés et installés Exemple : Le composant "Code Postal" utilise un • le fichier WDI,
Lors de la création d’un composant, il est possible avec le composant. fichier de données "Cedex" (fichiers Cedex.fic et Ce-
de définir les éléments du composant qui seront • les fichiers devant être redistribués avec le com- dex.ndx). Dans le projet de création du composant, • le fichier WDO,
accessibles ou non par l’utilisateur du composant. posant. Ces fichiers peuvent être placés selon ce fichier de données est présent dans le répertoire • tous les fichiers nécessaires référencés dans le
• Si l’élément est accessible, l’utilisateur du une sous-arborescence spécifique. Dans ce cas, EXE du projet. fichier WDO.
composant verra cet élément dans la liste des le code du composant doit gérer l’accès à ces Pour que le composant soit livré et installé avec le • Si vous utilisez une procédure d’installation pour
éléments du projet. Il pourra manipuler ces élé- fichiers selon cette même arborescence. fichier de données, il faut créer le fichier WDO dans le composant, le fichier WDO sera automatique-
ments par programmation (comme s’il s’agissait le répertoire EXE du projet de création du compo- ment créé lors de la création de la procédure
Qu’est-ce que le fichier WDO ?
d’un élément créé dans le projet). sant. Ce fichier doit contenir les lignes suivantes : d’installation du composant.
Remarque : Le code de cet élément n’est cepen- Le fichier <NomComposant>.WDO est un fichier .\CEDEX.Fic Il suffit pour cela dans l’assistant de :
dant pas visible. au format TXT, pouvant être créé et modifié à tout .\CEDEX.NDX 1. Demander la modification des fichiers à ins-
moment. Ce fichier peut par exemple être créé et taller (option "Modifier la liste des fichiers à ins-
• Si l’élément n’est pas accessible, l’utilisateur ne
modifié avec l’éditeur de texte standard de Win- taller" dans les "modules additionnels").
saura même pas que cet élément existe.
dows, NotePad. 2. Sélectionner les fichiers supplémentaires à
Attention : Selon le mode de déclaration des élé- Ce fichier contient la liste des fichiers externes (fi- installer.
ments du projet (classe, Collection de procédures, chiers de données, fichiers texte, ...) utilisés par le Le fichier WDO sera automatiquement créé et
...), les éléments accessibles ou non peuvent varier. composant et devant être livrés et installés avec le installé avec le composant.
composant. Ces fichiers doivent être recopiés dans
7.3 Le fichier WDO le répertoire EXE des projets utilisant 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-
<NomComposant>. Contient tous les éléments à teur\EtatInitial.INI
WDK redistribuer (fenêtres, états, ...) • soit le nom du fichier. Ce fichier sera recher-
avec le composant ché dans le répertoire en cours du composant.
<NomComposant>. Interface du composant. Ce fichier Par exemple : EtatInitial.INI
WDI contient : • soit un nom de fichier utilisant un chemin relatif.
- une aide pour l’utilisation du Les syntaxes possibles sont :
composant lors de sa réintégration
- les éléments à l’utilisation • Répertoire\NomFichier.xxx pour indiquer un
du composant dans le projet sous répertoire du répertoire en cours
(information de compilation, ...)
• .\NomFichier.xx pour indiquer le répertoire en
Lors de la diffusion du composant, ces deux fi- cours
chiers doivent être redistribués. • ..\NomFichier.xx pour indiquer le répertoire
parent Par exemple : \ComposantSélecteur\
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
génération Applications et DLL d’assemblage DotNet
WINDEV permet la génération d’applications et d’assemblages
pour la plateforme DotNet de Microsoft. Un assemblage DotNet
Au-delà des applications Windows, WINDEV vous permet de générer de nombreux autres généré avec WINDEV pourra être importé dans une application Dot-
types de projets. Net développée dans un autre langage d’une façon similaire à un
composant externe entre deux applications WINDEV.

Applications et Applets Java


Applications WINDEV permet de générer des applications Java ainsi que des
Les applications sont le mode de génération le plus fréquemment Applets. Les applications Java peuvent ensuite être exécutées sur
utilisé. Les applications construites avec WINDEV peuvent cibler les n’importe quelle machine possédant une machine virtuelle Java,
plateformes d’exécution suivantes : Windows (en 32 ou 64 bits) et quel que soit son système d’exploitation. Il est possible de cette
Linux. façon de construire des applications fonctionnant indifféremment
sous Windows, Mac OS ou même Solaris par exemple.
Services Une Applet Java est une application destinée à fonctionner à l’inté-
WINDEV permet de générer des services pour Windows (en 32 ou rieur d’un navigateur Web.
64 bits) et pour Linux (sous Linux, les services sont habituellement
appelés des daemons). Un service est une forme particulière d’ap- Applications Windows Store Apps
plication, lancée en même temps que le système d’exploitation et WINDEV permet de générer des applications Windows Store Apps.
ne comportant pas d’IHM. Ces applications peuvent être utilisées en mode tuile ou distribuées
via Windows Store.
Bibliothèques et patchs
Une bibliothèque est un fichier unique rassemblant plusieurs élé-
ments d’un projet WINDEV : des fenêtres, des états, etc. Il est pos-
sible de générer des bibliothèques autonomes pouvant être utili-
sées par d’autres applications ainsi que des patchs correctifs pour
une application en clientèle évitant d’avoir à réinstaller l’application
complète pour une correction mineure.

Composants externes
Les composants externes sont des briques applicatives permettant
de partager une ou plusieurs fonctionnalités spécifiques entre dif-
férentes applications. 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 Webser-
vice (également appelé service Web XML). Un Webservice expose
un ensemble de fonctions (généralement une ou plusieurs collec-
tions de procédures) et les rend accessibles à travers le Web (ou un
réseau privé) en utilisant les protocoles standard de communica-
tion HTTP, SOAP et REST.
Remarque : Un Webservice doit être déployé sur un Serveur d’Appli-
cation 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-
1  Créer le programme exécutable d’une application WINDEV Vous possédez une application WINDEV qui fonc-
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 : de programmation survient. 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 • l’utilisation des mises à jour par Patch. Il suffira teurs travaillant sous un système MAC OS X par
projet correspondant à l’exécutable à créer : alors de copier le fichier correspondant au Patch Une application JAVA est entièrement compilée exemple pourront également utiliser votre applica-
• Configuration de projet pour un exécutable Win- dans le répertoire de l’exécutable. en JAVA. Si cette application manipule une base tion.
dows 32 bits de données, cette base doit disposer d’un driver Vous pourrez ainsi partager vos applications ré-
• les langues gérées par l’exécutable.
JDBC (MySQL, Oracle,...). Ce driver est spécifique à seau.
• Configuration de projet pour un exécutable Win- • les fichiers contenus dans la bibliothèque (si elle chaque base de données (et peut être trouvé sur le
dows 64 bits est utilisée). 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 Linux • l’intégration des composants utilisés dans le pro- L’accès à une base de données HFSQL se fait nati- Java avec WINDEV
2. Sous le volet "Projet", cliquez sur "Générer". jet à l’exécutable. vement (uniquement sous Windows et Linux) via
3. L’assistant de création de l’exécutable s’ouvre. Comme indiqué ci-dessus, il n’est pas nécessaire
• l’emplacement des fichiers de données du les fonctions SQL du WLangage. Aucun pilote sup-
4. Spécifiez : de connaître le langage Java pour développer une
groupware utilisateur (uniquement si votre appli- plémentaire n’est requis.
• les options générales de l’exécutable (nom de application Java avec WINDEV. Vous développez
cation gère le groupware utilisateur). Une application Java correspond à un fichier ".jar"
l’exécutable, icône du programme exécutable, votre application en WLangage comme toute autre
• l’emplacement des fichiers de données à utiliser et nécessite le runtime Java pour pouvoir être exé- application WINDEV et lors de la compilation du
Splash screen ...). par l’exécutable. cutée. projet, les fenêtres et les fonctions du WLangage
• le mode de fonctionnement de l’exécutable : • les informations de version. Ces informations
Pour compiler (en Java) un projet Java réalisé avec sont automatiquement converties en Java.
• Multi-instance : Ce programme pourra être seront affichées dans l’onglet "Version" de la fe-
lancé plusieurs fois depuis un même poste : WINDEV, il est nécessaire d’installer sur le poste Remarque : le nombre de fonctions WLangage utili-
nêtre des propriétés de l’exécutable (accessibles
plusieurs instances seront ouvertes en même de développement le J2SDK de Oracle (version sables dans un projet Java est limité dans cette ver-
depuis l’explorateur Windows). Le numéro de
temps. 1.4.2 ou supérieure nécessaire). Une version est sion. Ce nombre de fonctions est amené à croître
version peut être automatiquement incrémenté
disponible sur le CD d’installation de WINDEV. Il est régulièrement.
• Mono-instance : Ce programme pourra être lan- à chaque création d’exécutable.
également possible de télécharger ce programme
cé une seule fois depuis un même poste : une • le mode d’utilisation du framework WINDEV (uti- sur le site de Oracle.
seule instance sera ouverte en même temps. lisation du framework propre à l’application ou
Si le développeur tente de lancer une autre ins- du framework commun à toutes les applications
tance du programme, l’instance déjà en cours WINDEV installées sur le poste). 2  Fonctionnalités pour un projet Java
sera activée. • le manifeste à utiliser (pour une exécution sous
• le mode d’utilisation de la bibliothèque. La biblio- Windows Vista et supérieur uniquement).
thèque est optionnelle. Elle peut être créée dans • s’il est nécessaire de réaliser une sauvegarde du 2.1 Création d’un projet Java Par défaut, un projet WINDEV pour Java correspond
un fichier séparé (extension ".WDL") ou intégrée projet. à une configuration spécifique du projet. Il est pos-
dans l’exécutable. La création d’un projet Java est effectuée de la
5. Validez la description de l’exécutable. L’exécu- sible de modifier à tout moment le type de généra-
L’intégration de la bibliothèque dans le pro- même façon que tout autre projet WINDEV :
table est automatiquement généré selon les infor- tion du projet. Il suffit de créer une nouvelle confi-
gramme exécutable a l’avantage de n’avoir qu’un mations fournies. Il est possible de lancer directe- 1. Cliquez sur parmi les boutons d’accès ra- guration de projet.
seul fichier à installer ou à mettre à jour, mais pide de WINDEV. La fenêtre de création d’un nouvel
cela augmente la taille du fichier ".EXE" créé. ment l’exécutable après sa création. Dès que le projet est configuré comme un projet
élément s’affiche : cliquez sur "Projet". Java, tous les outils disponibles avec WINDEV sont
• le message d’erreur qui sera affiché si une erreur 2. L’assistant de création de projet se lance. automatiquement paramétrés pour le projet Java :
3. Dans un des premiers écrans de l’assistant,
• Le RAD fenêtre ou le RAD application complète
vous pouvez choisir le type de génération de votre
est spécifique à une base de données manipulée
projet. Il suffit de sélectionner "Java" et de suivre
par une application Java.
l’assistant.

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


Centre de Suivi
de Projets
• Le compilateur indique si votre projet contient apparaissent en violet dans le volet "Erreurs de
des fonctions ou champs non utilisables en Java. compilation".
Un message apparaît en violet dans le volet "Er- Pour plus de détails sur les éléments WINDEV
reurs de compilation". non disponibles dans une application Java,
• 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 gérer le cycle de vie de vos projets de développement, WINDEV vous propose d’uti-
• Le module d’installation manipule uniquement ce qu’une application Java ?", page 85, il est né- liser le Centre de Suivi de Projets. Le Centre de Suivi de Projets permet de :
les fichiers nécessaires au déploiement de l’ap- cessaire d’installer le J2SDK de Sun sur le poste de • Gérer les exigences d’un projet,
plication Java. développement pour compiler votre projet en Java. • Gérer le suivi d’un projet (planning des tâches à réaliser),
Remarque : il est conseillé de créer un nouveau 2.5 Créer une archive Java • Gérer les bugs et les évolutions signalés par vos utilisateurs sur un projet.
projet WINDEV pour développer une application Le Centre de Suivi de Projets utilise une base de données (HFSQL Classic ou Client/Ser-
Java plutôt que de transformer une application WINDEV permet de : veur) : la base de données des Centres de Contrôle. Cette base de données est partagée
WINDEV en Java. • créer et compiler sous un compilateur Java les par de nombreux outils disponibles dans WINDEV :
différents fichiers Java nécessaires à l’applica-
2.2 RAD JAVA tion
- Tâches
Comme sur tout projet associé à une analyse, vous • créer une archive Java directement exécutable : - Exigences
pouvez utiliser le RAD pour générer les fenêtres de • une application Java classique, - Qualité
votre application. • une applet Java, Centre de
Le RAD prend en compte toutes les spécificités de • une application Java Web Start. Suivi de Projets
la génération Java (champs, traitements, fonctions
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 possible
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 paramètres chive Java.
de connexion à la base de données utilisant le 2.6 Déployer une application Java
driver JDBC.
Comme pour toute application, WINDEV permet Fenêtre de login
de WINDEV
2.3 Test d’un projet Java sous l’éditeur de créer un programme d’installation pour une Base de données des
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
2.4 Compiler un projet Java sous WINDEV Pour lancer l’assistant de création d’installation, Règles Métier
autonome (WDBAL)
Tests automatiques
(images personnelles)
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 Gestion des
exigences tâches
Une exigence est un besoin sur ce qu’un produit (ou un service) devrait faire. Le Centre de Suivi de Projets permet aux différents intervenants d’un projet de gérer leur
planning des tâches. Ces tâches peuvent être liées à des exigences et correspondre à
Le Centre de Suivi de Projets permet à un chef de projet de gérer les exigences d’un plusieurs projets.
projet de développement.

Il suffit pour cela de :


• 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 ac-
Incidents
tion spécifique et ne génère aucune contrainte particulière.

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

3 Suivi des exigences (Centre de Suivi de Projets) :


d’ouvrir automatiquement l’élément correspondant à la tâche que vous voulez réaliser.
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 et Gestion des
des incidents règles métier
Les Centres de Contrôle permettent également de gérer les retours client sur vos appli- WINDEV permet de gérer des règles métier. Une règle métier permet de définir un mode
cations. opératoire précis ou de préciser un traitement particulier. Par exemple : le calcul d’un
Si votre application contient un menu d’aide automatique (menu ’?’ avec l’option "En- taux de TVA avec ses particularités, les règles de changement de statut d’un client, la
voyer des suggestions ..."), les utilisateurs de votre application peuvent simplement vous formule de calcul d’un montant de frais de port, une commission commerciale, un taux
envoyer des suggestions, des incidents ou des règles métier. de remise, un coefficient de vétusté, ...

Définition des exigences


Utilisateur final Une règle métier peut être simple
ou élaborée.

Les règles métier peuvent provenir :


Utilisation du composant Définition des
Feedback (mode connecté
Règles Métier
• du cahier des charges (corres-
ou par emails)
pondant aux exigences).
Règles Métier Suggestions ou bugs
• de suggestions faites par les utili-
sateurs de l’application.
Suggestions de Règles
Application des Règles Métier par les utilisateurs
Spool de retours client Métier dans le projet (menu “?” et composant
Feedback)

Utilisation de l’application

Bugs liés Tâches liées


au projet de au projet de
l’application l’application

Pendant le développement, les règles métier associées au projet sont affichées direc-
tement 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 pourcen-
tage de règles actuellement réalisé.
Volet de gestion Centre de Suivi
des Règles Métier de Projets

Développeurs

Remarque : en cas d’erreur fatale pendant l’exécution de l’application, un rapport d’er-


reur peut être automatiquement généré et envoyé au développeur en utilisant le compo-
sant "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
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, rubriques, ...) utilisées dans votre projet.

Fournisseur Produit Commande Client


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

Système étudié

Analyse correspondante

L’éditeur d’analyses permet de créer très simplement une analyse.


L’analyse d’un projet WINDEV 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 de données. Chaque fichier de données 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 de données (HFSQL, Oracle, ...).

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 de
4. Sélectionnez les tables ou les fichiers de don-
nées dont la description doit être importée et vali-
cette rubrique est unique pour chaque enregis- dez.
trement et est automatiquement calculée par 5. Le fichier de données importé est automatique-
WINDEV. ment inséré dans l’analyse en cours.
1  Présentation • le type de la base de données associée au fi- Solution 2 : Depuis l’explorateur de Windows
chier. Selon le type choisi, ce fichier de données
Lorsqu’un projet utilise des fichiers de données, (c’est-à-dire un Modèle Logique des Données sera manipulé par le moteur HFSQL, par un pilote "Droppez" directement la description du fichier de
ce projet doit être associé à une analyse. Une ana- (MLD)). OLE DB ou par un des accès natifs de WINDEV données de l’explorateur Windows vers l’éditeur
lyse permet de décrire les structures de données (SQL Server, Oracle, ...). d’analyses.
• 2ème méthode : Création du Modèle Conceptuel
(fichiers, rubriques, ...) utilisées dans votre projet. des Données (MCD), puis création automatique 4. Le fichier de données créé devient le fichier en Par exemple :
Pour décrire une analyse, deux méthodes sont pos- de l’analyse à partir du MCD. Pour plus de dé- cours. La fenêtre de description des rubriques du
sibles : tails, consultez l’aide en ligne. fichier s’ouvre automatiquement. Vous pouvez dé-
• 1ère méthode : Création directe de l’analyse crire les rubriques du fichier de données.
Ce chapitre présente la première méthode.
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
création des fichiers de données se lance.
Dans WINDEV, les termes "MLD" et "Analyse" sont 2.2 Ajouter un fichier de données dans une 2. Sélectionnez l’option "Sélectionner une descrip-
utilisés indifféremment pour définir la structure de analyse tion parmi des fichiers de données prédéfinis".
la base de données associée à un projet. 3. Choisissez le fichier de données prédéfini à
L’analyse permet de décrire la structure des fi-
chiers de données utilisés par le projet. Un fichier créer (il est possible d’en sélectionner plusieurs). Ici, une base de données Oracle, sur le serveur. Il
2.1 Créer une analyse (ou MLD) Ce fichier de données sera importé dans l’analyse
de données présent dans l’analyse peut être : suffit de faire glisser le nom de la base ...
Pour créer un MLD : • Un nouveau fichier de données. en cours. Ce fichier de données pourra être modifié
1. Cliquez sur parmi les boutons d’accès ra- par la suite.
pide. La fenêtre de création d’un nouvel élément • Un fichier de données prédéfini, livré avec WIN- 4. Sélectionnez les rubriques du fichier de données
s’affiche : cliquez sur "Données" puis sur "Analyse". DEV. à conserver. Ces rubriques pourront être modifiées
L’assistant de création de l’analyse est lancé. • Un fichier de données importé depuis une base par la suite.
2. Spécifiez : existante (utilisant par exemple un format spéci- 5. Le fichier de données importé est automatique-
• le nom et le répertoire de l’analyse. L’analyse fique). ment inséré dans l’analyse en cours.
correspond à un fichier ".WDA". Par défaut, ce Les paragraphes suivants détaillent comment Remarque : Pour modifier un fichier de données ou
fichier sera créé dans le répertoire de l’analyse créer un fichier de données. les rubriques d’un fichier de données :
du projet (répertoire <Nom du projet>.ANA). Ce 1. Sélectionnez le fichier de données.
répertoire doit être accessible en lecture et en Pour créer un nouveau fichier de données :
1. Sous le volet "Analyse", dans le groupe "Créa- 2. Dans le menu contextuel, sélectionnez l’option
écriture. "Description du fichier de données" ou l’option
• le libellé de l’analyse décrivant succinctement le tion", cliquez sur "Nouveau fichier". L’assistant de
création des fichiers de données se lance. "Description des rubriques".
sujet de l’analyse.
2. Sélectionnez l’option "Créer une nouvelle des- Pour importer une description de fichier existante,
• si l’analyse doit être associée au projet en cours. cription d’un fichier de données".
• le type de la base de données manipulée par le deux solutions sont possibles :
3. Spécifiez :
projet. Solution 1 : Depuis l’éditeur d’analyses ... pour en transférer la description sous l’éditeur
• le nom du fichier de données. Ce nom est le nom 1. Sous le volet "Analyse", dans le groupe "Créa-
3. La création du premier fichier de données est logique du fichier de données. Il sera utilisé pour d’analyses.
automatiquement proposée. tion", cliquez sur "Nouveau fichier". L’assistant de
manipuler le fichier de données. création des fichiers de données se lance.
4. Créez l’ensemble des éléments (fichiers de don-
nées, rubriques et liaisons) de votre analyse. • le libellé du fichier de données résumant suc- 2. Sélectionnez l’option "Utiliser des fichiers de
cinctement le sujet du fichier de données. données d’une base existante", puis sélectionnez
• la représentation d’un enregistrement dans le le type de la base de données.
fichier de données. Cette représentation permet 3. Spécifiez la base de données source contenant
d’améliorer la lisibilité des questions posées lors les descriptions à importer et le type de cette base
de la description des liaisons. Cette option doit de données source. Selon le type choisi, renseignez
être précédée d’un article indéfini (UN ou UNE). 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 : tion", cliquez sur "Nouvelle liaison". Le curseur de Les cardinalités permettent de dénombrer les liens
1. Double-cliquez sur le fichier de données dans entre les fichiers de données. • chaque "Personne" peut avoir plusieurs "Club" :
la souris se transforme en crayon. Oui/Non ?
lequel la rubrique doit être créée. La fenêtre de 2. Sélectionnez les deux fichiers de données à La cardinalité est définie en fonction des réponses
description des rubriques du fichier de données relier. La fenêtre de description de liaison s’ouvre aux deux questions suivantes : Exemple de cardinalités :
s’ouvre. automatiquement. 1. Pour chaque enregistrement du fichier de don- Cet exemple présente deux cardinalités diffé-
2. Cliquez sur la première ligne vide du tableau des 3. Pour définir les cardinalités entre les deux fi- nées, à combien d’enregistrements de l’autre fi- rentes :
rubriques. chiers de données : chier de données au minimum cet enregistrement
3. Spécifiez le nom, le libellé et le type de la ru- est-il relié ?
brique directement dans le tableau. • soit sélectionnez directement les cardinalités
parmi celles proposées (0,1 ; 1,1 ; 0,N ; 1,N). La réponse fournit la première partie de la cardina-
4. Indiquez dans la partie droite de l’écran les dé- lité (cardinalité minimale) :
tails concernant la nouvelle rubrique (type, taille, • soit répondez aux questions posées. Les cardina-
valeur par défaut, sens de parcours, ...). lités seront mises à jour automatiquement. • si la réponse est "aucun", la cardinalité est du
5. Indiquez dans la partie basse de l’écran les dé- 4. Pour décrire des cardinalités avancées, cochez type 0,X. • Cardinalité 0,1 : Une personne peut être inscrite
tails concernant les informations partagées. l’option "Afficher les cardinalités avancées" et ré- • si la réponse est "un seul", la cardinalité est du à un seul club de sport. Cette personne n’est pas
6. Validez la description de la rubrique. pondez aux questions posées. type 1,X. obligée d’être inscrite à un club de sport.
5. Saisissez le libellé de la liaison en décrivant suc- 2. Pour chaque enregistrement du fichier de don- • Cardinalité 0,N : Un club peut avoir aucune ou
Remarque : il est également possible de créer cinctement le sujet de la liaison. plusieurs personnes inscrites.
une rubrique à partir des méta-types proposés par nées, à combien d’enregistrements de l’autre fi-
6. Spécifiez les clés à relier. chier de données au maximum cet enregistrement
WINDEV. Pour cela, il suffit de cliquer sur le bouton 7. Précisez les règles d’intégrité. Ces règles per- 3.3 Les cardinalités avancées
"+ M" à droite du tableau. La liste des méta-types est-il relié ?
mettent d’assurer la cohérence des données lors Il est possible de définir avec plus de précision les
disponibles apparaît. de la modification ou lors de la suppression d’une La réponse fournit la deuxième partie de la cardina-
lité (cardinalité maximale) : cardinalités. On parle alors de cardinalités avan-
des clés de la relation. cées.
2.4 Créer une liaison 8. Validez. La liaison est automatiquement créée. • si la réponse est "un seul", la cardinalité est du
type X,1. Ces cardinalités permettent de préciser exacte-
Il est possible de créer différents types de liaison ment la cardinalité minimale et la cardinalité maxi-
entre les fichiers. Pour plus de détails sur les liai- • si la réponse est "plusieurs", la cardinalité est du
male.
sons, consultez le paragraphe "Caractéristiques type X,N.
des liaisons définies dans une analyse", page Pour définir les cardinalités avancées, cochez
La réponse à ces deux questions définit la cardina-
98. l’option "Affichez les cardinalités avancées" dans la
lité qui peut être de type : 0,1 ; 0,N ; 1,1 ; 1,N
description de la liaison.
La description des cardinalités est fondamentale :
elle est la base du respect de l’intégrité référen- Exemple de cardinalités avancées :
3  Caractéristiques des liaisons définies dans une analyse tielle de la base de données. Cet exemple présente deux cardinalités diffé-
Pour plus de clarté, ces deux questions peuvent rentes :
être décomposées en quatre questions. Par
3.1 Fichier propriétaire et fichier membre Par exemple, la clé du fichier Fournisseur est co- exemple, pour décrire une liaison entre le fichier
piée dans chaque enregistrement du fichier Pro- Club et le fichier Personne :
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 :
• le fichier propriétaire est Fournisseur,
• le fichier propriétaire est propriétaire de la clé. • Cardinalité 0,1 : Une personne peut être inscrite
• le fichier membre est Produit. à un seul club de sport. Cette personne n’est pas
• 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- obligée d’être inscrite à un club de sport.
vante : • Cardinalité 0,10 : Un club peut avoir aucune ou
Pour gérer la liaison entre deux fichiers de don- jusqu’à 10 personnes inscrites.
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
Liaison facultative Fournisseur est copiée dans le fichier Produit. Elle Avec ce type de liaison :
• si un enregistrement est supprimé dans le pro- devient clé multiple pour accélérer la vérification de
priétaire, les enregistrements correspondants Dans le cas d’une liaison facultative : • chaque propriétaire a au moins un membre
l’intégrité. (chaque fournisseur a au moins un produit).
dans les membres sont également supprimés, • 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 membre, (Catégorie) n’a aucun enregistrement ou un seul
membre est Produit. produit a un seul fournisseur).
il existe un enregistrement correspondant dans enregistrement associé dans un autre fichier de
le propriétaire, données (Groupe). Selon la cardinalité, il est possible de distinguer
quatre types de liaisons partagées :
• si un enregistrement est modifié dans un proprié- • Chaque enregistrement de l’autre fichier de don-
taire, la clé unique n’est pas modifiée, ... nées (Groupe) n’a aucun enregistrement ou un • Liaison partagée de cardinalité 0,n - 0,1
La vérification de l’intégrité référentielle dépend de 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. saire de gérer un fichier de liaison, appelé fichier
Liaison partagée de cardinalité 0,N - 0,1 de relation.
3.5 Les différents types de liaisons Le fichier de relation sera automatiquement créé. Il
Une liaison facultative est réalisée en copiant contiendra une clé unique composée des deux clés
Les liaisons entre fichiers de données peuvent être l’identifiant de chacun des fichiers dans l’autre fi-
de plusieurs types : des fichiers de données reliés.
chier.
• parallèle Avec ce type de liaison : Le fichier de relation peut également contenir des
Liaison de complément • un propriétaire peut ne pas avoir de membre (un informations spécifiques à la liaison.
• facultative
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
• de complément liaisons de type partagé.
• Chaque enregistrement d’un fichier de données • un membre peut ne pas avoir de propriétaire (un
• partagée (Produit) n’a aucun enregistrement ou un seul produit n’a pas obligatoirement de fournisseur).
• complexe Exemple de liaison complexe
enregistrement associé dans un autre fichier de
Liaison partagée de cardinalité 0,N - 1,1 Une commande (fichier Commande) peut contenir
Liaison parallèle données (Détail).
un ou plusieurs produits. Un produit (fichier Produit)
Dans le cas d’une liaison parallèle, chaque enregis- • Chaque enregistrement de l’autre fichier de don- peut être utilisé dans plusieurs commandes.
trement d’un fichier de données (Produit) est relié nées (Détail) a nécessairement un enregistre-
Dans ce cas, il faut avoir un fichier de liaison (fichier
à un enregistrement dans un autre fichier de don- ment associé dans le premier fichier de données
LigneCommande).
nées (Information), et réciproquement. (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.
Les liaisons de complément sont assez fréquentes. • chaque membre a un seul propriétaire (chaque • le nombre de produits commandés.
Elles sont notamment utilisées lorsqu’un enregis- produit a un seul fournisseur). Les liaisons entre les fichiers de données sont les
Pour gérer une liaison parallèle, l’identifiant du fi-
chier Produit est copié dans le fichier Information. trement peut avoir des compléments d’informa- Remarque : Ce type de liaison est fréquent. WIN- suivantes :
Cet identifiant est également clé unique dans le fi- tions optionnels. DEV permet de créer automatiquement les fenêtres
chier Information. Pour gérer une liaison de complément, la clé du permettant de gérer les fichiers de données liés par
fichier Produit est copiée dans le fichier Détail. Pour une liaison de type 0,N - 1,1.
Le fichier propriétaire est alors Produit et le fichier
membre est Information. assurer la cardinalité maximale de 1, elle reste clé Liaison partagée de cardinalité 1,N - 0,1
unique. L’unicité de cette clé interdit l’insertion de
Remarque : Ce type de liaison est rare car les deux Avec ce type de liaison :
plus d’un enregistrement dans Détail pour un enre-
fichiers peuvent être regroupés en un seul. • chaque propriétaire a au moins un membre (un
gistrement de Produit.
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 effec- 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- tuées entre les deux versions. faut alors également restaurer des fichiers de don-
vantes sur une analyse : vantes sur une rubrique d’un fichier de données nées correspondant à la version de l’analyse res-
• plusieurs rectangles : il y a eu plusieurs modifica-
• 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-
tions effectuées entre les deux versions.
MLD permet de disposer de deux MLD identiques • Dupliquer/Copier une rubrique. tants pour qu’ils soient recréés.
de nom différent. • Supprimer une rubrique. Pour visualiser le détail des modifications effec-
• Supprimer un MLD. tuées entre deux versions : Double-cliquez sur la 6.2 Annulation de la dernière génération
• Renommer une rubrique.
ligne contenant les "petits rectangles" ou cliquez L’annulation de la dernière génération de l’analyse
• Renommer un MLD.
Pour plus de détails, consultez l’aide en ligne. sur le bouton [Modifications]. permet de restaurer l’analyse dans son état avant
• Associer un MLD à un projet.
Les options disponibles dans le gestionnaire de la dernière génération. Les modifications effec-
• Agrandir ou réduire l’affichage d’un MLD sous tuées depuis ne sont pas appliquées.
l’éditeur. versions sont :
• Déplacer l’affichage du MLD sous l’éditeur. • Restauration d’une analyse. 6.3 Remettre à 1 le numéro de la version
WINDEV permet de réaliser les manipulations sui- • Annulation de la dernière génération.
Il est possible de remettre le numéro de génération
vantes sur un fichier de données présent dans • Remettre à 1 le numéro de version. de l’analyse à "1" : sous le volet "Analyse", dans le
l’éditeur d’analyses : groupe "Analyse", déroulez "Génération" et sélec-
• Dupliquer/Copier un fichier de données.
6.1 Restauration d’une analyse
tionnez l’option "Remettre à 1 la version de l’ana-
• Supprimer un fichier de données. Pour restaurer une analyse à partir du gestionnaire lyse".
• Renommer un fichier de données. de versions : Dans ce cas le numéro de version de l’analyse est
1. Sélectionnez la version à restaurer. remis à un. Aucune action spécifique n’est réalisée
2. Il est possible de : sur les fichiers de données.
• soit restaurer la version dans le répertoire spé-
5  Génération de l’analyse (MLD) cifié. Une analyse indépendante est créée cor-
respondant à la version choisie. Cette option est
La génération de l’analyse intervient avant la phase Pour lancer la génération de l’analyse, sous le volet sélectionnée par défaut.
de programmation et après la phase de description "Analyse", dans le groupe "Analyse", cliquez sur • soit écraser l’analyse en cours.
des fichiers de données. Cette génération permet "Génération". 3. Validez. La restauration est effectuée.
de : La génération comporte trois étapes :
• valider les modifications effectuées sur l’analyse • Vérification des modifications effectuées et géné-
(MLD). ration des fichiers de la description de l’analyse.
• créer les modules nécessaires à la programma- • Modification automatique des fichiers de don-
tion. nées accessibles (fichiers présents dans le réper-
• mettre à jour automatiquement les fichiers de toire "EXE" du projet).
données si nécessaire. • Synchronisation du projet.
Tant que l’analyse (le MLD) n’a pas été générée, la
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 travail- sous forme d’un graphique. Le carré jaune indique
ler sur l’analyse en cours ou sur une analyse spé- le numéro de version de l’analyse, le libellé à droite
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
fichiers accessibles
WEBDEV, WINDEV et WINDEV Mobile proposent un accès simple à la majorité des bases
de données du marché.

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


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

Application WINDEV

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

Application WINDEV
Bases de données
Poste Client n HFSQL
(répertoire partagé) Client/Serveur

Utilisateur n

Application WINDEV

Application WINDEV

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


Cluster HFSQL HFSQL : les fichiers créés
Client/Serveur physiquement
HFSQL Cluster est une extension du modèle de base de données de HFSQL Client/Ser- L’éditeur d’analyses permet de décrire la structure des fichiers de données.
veur. Dans un cluster de bases de données, les différents serveurs HFSQL contiennent Selon les informations saisies sous l’éditeur d’analyses, différents fichiers sont créés
tous une copie des bases de données et sont synchronisés en temps réel. physiquement.
• 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 Caractéristiques Fichiers créés
serveur opérationnel. du fichier (Analyse) physiquement

Fichier HFSQL Classic ou Fichier “.fic”


Client/Serveur Fichier de données

Une ou plusieurs clés de


Fichier ”.ndx”
parcours (unique ou avec
Poste Client doublons)
Fichier d’index

Fichier “.ftx”
Un ou plusieurs index full-text
Application WINDEV Fichier d’index full-text

Une ou plusieurs rubriques Fichier “.mmo”


“Mémo” Fichier mémo
Accès aux données

Cluster

Remarque : Ce schéma présente uniquement les principaux fichiers créés. D’autres fi-
chiers spécifiques peuvent être créés si le fichier de données utilise la journalisation, les
transactions ou encore 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
et les données
Liaison champ / variable

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 donné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 projet ou paramètres passés à la fenêtre).

Pour afficher ces informations dans une fenêtre, il est nécessaire de lier les champs de
cette fenêtre avec :
• les différentes rubriques de la base de données. EcranVersFichier Variable liée FichierVersEcran
• les différentes variables WLangage disponibles.
Champ simple
Liaison avec :
La méthode d’affichage et de récupération des informations est très simple : - Variable simple
• La liaison d’un champ avec une rubrique ou une variable est définie sous l’éditeur - Instance d’un membre de
classe ou de structure
de fenêtres, lors de la description du champ (onglet "Liaison"). - Propriété d’un objet dynamique
• La fonction EcranVersFichier permet de mettre à jour soit l’enregistrement, soit la
Liste, Table, Combo, ...
variable avec les données présentes à l’écran.
Liaison avec :
• La fonction FichierVersEcran permet de mettre à jour les données affichées à - Tableau de classes ou de struc-
l’écran avec soit les informations enregistrées dans le fichier de données, soit les tures
- Types avancés (par exemple
informations enregistrées dans la variable. xlsLigne, xlsColonne)

Liaison champ / rubrique

EcranVersFichier FichierVersEcran

Base de données

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


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

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

Sources Utilisations possibles Requête intégrée :


MaFenêtre_1$Requête
Fenêtres et champs
d’une fenêtre
Données en provenance
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

Requête intégrée :
Remarque : En programmation, une requête peut être manipulée de la même façon MaFenêtre_2$Requête
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. Dans ce cas, la requête est intégrée à la fenêtre. Elle est présente dans le fichier WDW
correspondant à 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/ 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’infor-
mations (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",
• Champs Table/Zone Répétée "Fichier chargé en mémoire". Données en
mémoire
Remarque : Ces trois modes de remplissage vont être détaillés dans cette page pour le
champ Table. Les mêmes concepts s’appliquent au champ Zone Répétée. Les données étant présentes en mémoire, le champ Table permet toutes les manipula-
tions sur les données (tri sur n’importe quelle colonne, recherche dans les colonnes, ...).
Champ Table "Fichier accès direct"
Un champ Table fichier de type accès direct permet d’afficher directement les données
Champ Table "Fichier chargé en mémoire"
provenant d’un fichier de données ou d’une requête. La structure du fichier de données Les champs Table fichier chargé en mémoire combinent les avantages des champs Table
a été décrite sous l’éditeur d’analyses et les données ont été saisies par exemple dans fichier à accès direct et ceux des champs Table mémoire.
l’application. Un parcours du fichier de données permet d’afficher les données dans le Le champ Table est lié au fichier de données, mais le contenu du fichier de données
champ Table. Pour chaque ligne affichée, le fichier de données est lu : l’enregistrement est totalement chargé en mémoire. Le tri et la recherche sont disponibles sur toutes les
lu est affiché dans une ligne du champ Table. colonnes.
Les données non liées au fichier de données sont conservées lors de la manipulation de
l’ascenseur (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îchissements d’affichage du champ Table (en cas de scrolling par exemple). Fichier
Il est possible de limiter les enregistrements affichés dans le champ en utilisant un filtre Client
(fonction HFiltre utilisée dans le code d’initialisation du champ).
Plusieurs fonctions du WLangage permettent de manipuler les champs de type "Table Fichier chargé
fichier". Ces fonctions commencent toutes par "Table". en mémoire

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 fonction 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 Architecture
universelle 3-tiers
La réplication universelle permet de maintenir à jour des bases de données de formats L’architecture 3-tiers (le terme "tier" vient de l’anglais et signifie "niveau") est un modèle
identiques ou différents (HFSQL, Oracle, SQL Server, ...). Il est par exemple possible de d’architecture d’application.
réaliser une synchronisation entre une base de données HFSQL Classic et une base de Son principe de base consiste à séparer trois couches logicielles contenues dans une
données Oracle. application :
• la couche présentation : correspondant à l’affichage,
La réplication universelle utilise un modèle centralisé : toutes les bases de données se • la couche traitements ou application : correspondant aux processus métiers de
synchronisent avec une base de données maître. La base de données maître répercute l’application,
ensuite les modifications 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 faci-
liter 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 également l’avantage d’optimiser le travail en équipe et le développe-
ment multi-cibles.

Mobile Windows Navigateur

Couche Présentation
Réplication
Universelle

Composants Webservices Serveur d’application


WEBDEV
Couche Application

HFSQL Bases tierces


Classic, Client/Serveur Oracle, AS/400, SQL Server...
Il est possible d’adapter la synchronisation à des cas particuliers. Par exemple, il est
Couche Données
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
Ces adaptations doivent être effectuées par programmation grâce à la fonction HRplPro- en utilisant WINDEV.
cédureFiltre.

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
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 standard ou personnalisés,
• des gabarits.
En génération RAD, les fenêtres générées contiennent tout le code nécessaire à leur
fonctionnement. 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
Le modèle UML en pratique
UML
WINDEV permet de créer neuf types de modèle UML : 1  Présentation
• Diagramme de classes : décrit de manière générale la structure d’un système.
• Diagramme de cas d’utilisation : représente les fonctionnalités du système du point L’objectif principal d’une équipe de développement WINDEV permet de créer ces neuf types de modèle
de vue de l’utilisateur. est de créer des applications optimisées, capables UML :
de satisfaire les besoins en constante évolution de • Diagramme de classes
• Diagramme d’objet : représente un ensemble d’objets et leurs relations à un mo-
leurs utilisateurs. • Diagramme de cas d’utilisation
ment 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 appli- cifier la structure et le comportement attendus
cation informatique. d’un système, de comprendre son organisation, de • Diagramme de composants
• Diagramme d’activité : représente le comportement d’une méthode ou le déroule- déceler les possibilités de simplification et de réuti- • Diagramme d’activité
ment d’un cas d’utilisation. lisation et de gérer les risques encourus. • Diagramme de séquences
• Diagramme de séquences : représente l’ordre chronologique des messages envoyés Un modèle est la simplification de la réalité. Il per- • Diagramme de collaboration
met de mieux comprendre le système à développer. • Diagramme d’états-transitions
et reçus par un ensemble d’objets.
• Diagramme de collaboration : présente l’organisation structurelle des objets qui Un diagramme est la représentation graphique • Diagramme de déploiement
envoient et reçoivent des messages. 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
• Diagramme d’états-transitions : présente un automate à états finis. 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 de déploiement : montre la répartition des matériels (les nœuds) utili- Language) propose neuf diagrammes, représen- des ouvrages spécifiques.
sés dans un système et l’association des programmes exécutables à ces matériels. tant chacun un état du système.

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é- vaille dans une banque sera le Gestionnaire de • Paquetage : divise et organise la représenta-
ments suivants : prêts. Si cette personne à un compte dans cette tion du diagramme (de la même manière que
• Classe : représente les structures de l’applica- banque, elle jouera aussi le rôle de Client. les répertoires organisent les fichiers). Chaque
tion. Chaque classe est divisée en trois compar- • Cas d’utilisation : décrit une séquence d’actions paquetage peut contenir des acteurs et des cas
timents : exécutées par l’application. Par exemple, Passer d’utilisation.
• le nom de la classe indique ce que la classe est une commande, Saisir une facture, Créer une
nouvelle fiche client, ... 2.3 Diagramme d’objets
et non ce qu’elle fait.
• les attributs de la classe donnent les caractéris- Un cas d’utilisation décrit ce que fait une applica- Un diagramme d’objets représente un ensemble
tiques de la classe. tion mais ne précise pas comment l’application d’objets et leurs relations à un moment donné.
le fait. Un diagramme d’objets est utilisé pour montrer
• les opérations de la classe représentent les
actions possibles sur la classe. • Relation : décrit le comportement des acteurs un contexte (avant ou après une interaction entre
Par exemple, la classe Stock contient l’attribut par rapport aux cas d’utilisation. Trois types de objets par exemple).
ListeProduits. Cette classe regroupe aussi les relations existent : Par exemple, le diagramme suivant présente une
opérations AjouteProduit et RetireProduit. Ces • Association : Relation structurelle entre deux partie de la structure générale des motos :
opérations sont applicables aux instances de la éléments reliés.
• Paquetages : permettant de diviser et d’organi-
classe. • Dépendance : Relation qui établit qu’un élé-
ser la représentation du diagramme (de la même
Remarque : Le langage UML définit trois niveaux ment en utilise un autre. Par exemple, le Client
manière que les répertoires organisent les fi-
de visibilité pour les attributs et les opérations : d’une banque peut retirer de l’argent dans un
chiers). Chaque paquetage peut contenir des
• Public : l’élément est visible par toutes les distributeur automatique. Dans ce cas, l’action
classes et des relations.
autres classes. Retrait d’argent dépend du Client.
Grâce à la génération d’un diagramme de classes, Pour pouvoir retirer de l’argent, le Client doit
• Protégé : l’élément est visible par la classe elle- il est possible de créer la structure des classes
même et par les sous-classes. préalablement saisir son code confidentiel.
WINDEV utilisées dans votre application. Dans ce cas, l’action Retrait d’argent dépend
• Privé : l’élément est visible uniquement par la de la Saisie du mot de passe.
classe. 2.2 Diagramme de cas d’utilisation
• Relation : décrit le comportement des classes Un diagramme de cas d’utilisation permet de visua- Un diagramme d’objets est composé des éléments
entre elles. Trois types de relations existent : liser le comportement d’un système de telle sorte suivants :
• Association  : Relation structurelle entre que : • objet : représente une instance d’une classe.
classes. Par exemple, la classe Commande est • l’utilisateur puisse comprendre comment utiliser Remarque : Si un diagramme de classes est
liée aux classes Produit et Client. Un Client peut chaque élément. • Généralisation : Relation permettant d’organi- ouvert, il est possible de créer un objet à partir
passer plusieurs Commandes. Une commande • le développeur puisse implémenter ces élé- ser les éléments selon une hiérarchie. d’une classe présente dans ce diagramme (drag
est constituée de plusieurs produits. Une com- ments. Par exemple : and drop à partir du volet "Analyse UML").
mande doit obligatoirement contenir au moins • l’acteur Client peut être de deux types : Client
un produit. Par exemple, il est possible de décrire le compor- • objet composite : représente de manière visuelle
tement d’un téléphone portable à l’aide d’un dia- individuel ou Client d’entreprise. un objet formé d’autres objets. Par exemple : une
• Dépendance : Relation d’utilisation qui établit gramme de cas d’utilisation. • la vérification de l’identité d’un utilisateur fenêtre qui contient des ascenseurs, des bou-
que les instances d’une classe sont reliées aux peut être effectuée de deux façons : saisie du tons, ...
instances d’un autre élément. Par exemple, la mot de passe ou vérification de l’empreinte
classe Commande utilise la classe Stock : avant • lien : représente les relations entre les différents
digitale. objets.
d’ajouter un produit dans une commande, il est
nécessaire de vérifier que ce produit est en 2.4 Diagramme de composants
stock.
• Généralisation : Relation entre une classe gé- Un diagramme de composants décrit l’architecture
nérale (parent) et une classe spécifique (enfant) physique et statique d’une application informa-
qui en dérive. Par exemple, les classes Bateau tique. Par exemple : fichiers sources, librairies, exé-
à voile et Bateau à moteur sont dérivées de la cutables, ...
classe Bateau. Par exemple, le diagramme suivant présente le
fonctionnement d’un programme permettant de se
loguer en mode texte sous Unix.

Un diagramme de cas d’utilisation est composé


des éléments suivants :
• Acteur : représente le rôle des utilisateurs de
l’application. Par exemple, une personne qui tra-

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 différentes étapes d’une machine à laver les voi-
• soit en indiquant les activités à effectuer avant les différents objets. Ces flèches sont orien- tures :
une certaine activité. Par exemple : "Appuyer tées de l’émetteur du message vers le destina-
sur l’embrayage" et "Enclencher une vitesse" taire. L’ordre d’envoi des messages est donné
avant de "Relâcher l’embrayage". par la 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.
ler les connaissances" sont rattachées à l’objet Par exemple, le diagramme suivant montre l’utilisa-
Un diagramme de composants est composé des
"Enseignant". tion d’un ascenseur par une personne :
éléments suivants :
• module : représente les différents éléments • émission de signal : représente l’envoi d’un si-
physiques constituant une application informa- gnal vers un objet.
tique. Par exemple : un fichier, une librairie, ... • attente de signal : représente l’attente d’un si-
Un module peut être représenté : gnal en provenance d’un objet.
• soit par une spécification qui montre l’interface • transition : représente le passage d’une activité
du module. Cette spécification peut être géné- terminée à une autre. Par exemple : "Trop d’eau", Un diagramme d’états-transitions est composé des
rique dans le cas de classes paramétrables. "Assez d’argent", ... éléments suivants :
• soit par son corps qui présente l’implémenta- • état : représente la valeur des attributs d’un ob-
2.6 Diagramme de séquence jet à un instant donné.
tion du module.
• tâche : représente un composant ayant son Un diagramme de séquence représente l’ordre • état initial : représente l’état au démarrage du
propre flot (thread) de contrôle. chronologique des messages envoyés et reçus par système.
• programmes principaux de l’application informa- un ensemble d’objets. • état final : représente l’état dans lequel se trouve
tique. Par exemple, le diagramme suivant représente le Un diagramme de collaboration est composé des le système à la fin du fonctionnement.
début d’une communication téléphonique : éléments suivants : • super-état : permet de structurer le diagramme
• sous-programmes : regroupent les procédures
et les fonctions qui n’appartiennent pas à des • objet : représente les différents objets utilisés. en indiquant plusieurs niveaux de distinction
classes. • acteur : représente un élément externe du sys- entre les états.
tème. Par exemple une personne. • historique : représente le dernier état actif d’un
2.5 Diagramme d’activité • message : représente les messages échangés super-état.
Un diagramme d’activité représente le comporte- entre les différents objets. • souche : permet de symboliser les états conte-
ment d’une méthode ou le déroulement d’un cas nus dans un super-état. Il est ainsi possible de
d’utilisation. 2.8 Diagramme d’états-transitions relier ces états à d’autres états n’appartenant
Par exemple, le diagramme suivant présente le Un diagramme d’états-transitions présente un pas au super-état.
déroulement d’un barrage : automate à états finis. Il permet ainsi de décrire • transition : représente le passage d’un état à un
les changements d’états d’un objet ou d’un com- 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- • soit par un événement.
montant une ligne en pointillé. Cette ligne repré- • soit automatiquement lorsqu’aucun événement
Un diagramme d’activité est composé des élé- sente la durée de vie de l’objet. Par exemple : déclencheur n’est spécifié.
ments suivants : "Appelant", "Appelé", ...
• activité : représente une étape particulière dans • période d’activation d’un objet : sur la ligne de
l’exécution d’un mécanisme. Par exemple : "Eta- vie d’un objet, il est possible d’insérer des pé-
blir un devis", "Ouvrir la fenêtre", ... riodes d’activation de l’objet. Ces périodes repré-
sentent les moments où l’objet est actif.

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


Groupware
utilisateur
2.9 Diagramme de déploiement
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
exécutables à ces matériels. Le Groupware Utilisateur permet d’inclure simplement une gestion des utilisateurs et de
Par exemple, le diagramme suivant présente les leurs droits dans une application WINDEV.
différents matériels utilisés dans une entreprise : Deux types d’utilisateurs sont pris en compte :
• utilisateur simple, utilisant directement l’application.
• 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
Un diagramme de déploiement est composé des Superviseur
éléments suivants :
• classe de nœuds : représente une classe de res- HFSQL Classic,
source matérielle. Par exemple : un serveur, un Client/Serveur,
Accès Natif,
PC, une imprimante, ... LDAP

• instance d’un nœud : représente une ressource Base de données


matérielle. Par exemple : le serveur numéro 3, du Groupware Utilisateur
l’imprimante numéro 7, ...
• connexion : décrit le support de communication Configuration des
entre deux nœuds. Par exemple : liaison RNIS ou droits et des utilisateurs
TCP/IP.

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 fonc- cliquez sur "Groupware Utilisateur". La fenêtre de
• les secrétaires peuvent consulter le tarif et créer
tions 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 éta-
fonctions, ni les mêmes besoins. Leur domaine • Le mode d’intégration du groupware utilisateur.
blir les commandes, gérer de nouveaux clients.
d’action doit donc être plus ou moins limité. • Le type de lancement du groupware utilisateur. • Lancement automatique : La fenêtre de login du
• les directeurs commerciaux ont accès à toutes
Prenons un exemple simple : lors de la mise en • L’emplacement des fichiers de données du groupware utilisateur est lancée avant toute
les options.
place d’une gestion commerciale, l’application pro- groupware utilisateur. autre fenêtre de l’application. Le code d’initialisa-
pose les fonctionnalités suivantes : Pour gérer ces niveaux d’accès dans vos applica- • Le mode d’identification de l’utilisateur. tion du projet est exécuté après l’ouverture et la
tions WINDEV, il suffit d’intégrer le groupware utili- validation de la fenêtre de login.
• Consultation du tarif,
sateur à votre application. Quelques clics de souris Mode d’intégration du Groupware • Lancement manuel : La fenêtre de login ne sera
• Modification du tarif, suffisent à transformer une application classique Utilisateur ouverte que si la fonction gpwOuvre est utilisée.
• Saisie des commandes, en une application gérant de nombreux niveaux Plusieurs modes d’intégration du groupware utilisa- Cette option permet d’exécuter le code d’initia-
• Saisie des clients. d’accès. La mise en place est instantanée. teur sont disponibles : lisation du projet par exemple, avant d’ouvrir la
Lors de l’exécution de l’application, le responsable fenêtre de login. Il est ainsi possible par exemple
pourra créer des utilisateurs (identifiés par leur d’afficher une fenêtre demandant la langue
login et leur mot de passe) et leur donner accès à 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 infor-
mations 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 au- Utilisateur
• le niveau utilisateur • lancer l’application. tomatiquement intégrée à votre application. Au-
• le niveau superviseur • configurer le groupware. cune personnalisation n’est possible. Le gabarit Le groupware utilisateur utilise plusieurs fichiers
du projet est automatiquement appliqué à toutes de données spécifiques. Ces fichiers de données
La configuration du groupware consiste à créer
2.1 Le niveau utilisateur des utilisateurs, des groupes et d’associer des uti- les fenêtres utilisées par le groupware utilisateur. permettent notamment de gérer les utilisateurs, les
Ce mode d’intégration permet de suivre automa- groupes, les droits et les éléments de l’application.
L’utilisateur se connecte à l’application grâce à une lisateurs aux groupes, à gérer les droits de chaque
fenêtre de login et accède aux fonctionnalités qui utilisateur (ou groupe) sur chacune des fenêtres de tiquement les éventuelles évolutions du Le groupware utilisateur peut être utilisé :
lui sont autorisées. l’application. Les droits sont définissables au ni- groupware utilisateur. • soit avec des fichiers de données HFSQL Classic.
Remarque : Le groupware utilisateur peut per- veau des options de menu, des groupes de champs • Groupware utilisateur personnalisé : toute la Dans ce cas, l’onglet "Fichiers" permet de spéci-
mettre de se connecter en utilisant un annuaire et des champs. Le superviseur peut rendre ces élé- programmation du groupware utilisateur est fier si nécessaire l’emplacement des fichiers de
LDAP. ments grisés, inactifs ou invisibles. Ces configura- automatiquement intégrée à votre application données.
tions sont prioritaires sur toute configuration effec- via un composant interne. Toutes les fenêtres • soit avec des fichiers de données HFSQL Client/
2.2 Le niveau superviseur tuée dans le programme. nécessaires à la gestion du groupware utili- Serveur. Dans ce cas, l’onglet "Fichiers" permet
Pour plus de détails sur la configuration du sateur (login et gestion des utilisateurs) sont de définir les paramètres d’accès à la base de
Le superviseur se connecte à l’application par une
groupware par le superviseur consultez le para- automatiquement ajoutées à votre projet. Vous données HFSQL Client/Serveur, ainsi que le ré-
fenêtre de login et accède à un menu avancé lui
graphe "Paramétrer l’application utilisant le pouvez ainsi personnaliser totalement toutes les pertoire des fichiers.
permettant de configurer les utilisateurs et leurs
groupware utilisateur", page 134. fenêtres utilisées par le groupware utilisateur.
droits, ou bien de lancer l’application.
Remarque : Toutes les informations concernant les Le détail des différentes fenêtres du Groupware Uti-
utilisateurs et leurs droits sont stockées dans des lisateur est présenté dans l’aide en ligne.
fichiers de données au format HFSQL (Classic ou
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 fi-
fenêtre de description du groupware utilisateur. seur. Pour se connecter en tant que superviseur, il chiers 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éé. Si
Vous pouvez alors soit tester votre application, soit groupware utilisateur se fait comme pour toute
le lancement est automatique, la fenêtre de login
configurer le fonctionnement du groupware. application : sous le volet "Projet", il suffit de cliquer
demandera à l’utilisateur de s’identifier. Si l’utili-
sur "Procédure d’installation".
sateur est bien enregistré dans l’annuaire LDAP, Remarques :
l’application se lancera, sinon elle se fermera. Il Un écran spécifique au groupware utilisateur per-
n’est pas possible à un superviseur de paramé- • Pour que la première fenêtre de votre application met de configurer l’emplacement des fichiers de
trer les droits sur les fenêtres. ne soit pas la fenêtre de login, sélectionnez l’op- données propres au groupware utilisateur.
tion "Lancement manuel" dans l’onglet "Exécu-
• Avec gestion des droits : Seuls les utilisateurs tion" des options du Groupware Utilisateur. Il suf- Remarques :
présents dans l’annuaire LDAP pourront se fira d’utiliser la fonction du WLangage gpwOuvre • Si vous avez paramétré les fichiers de données
connecter. Le paramétrage des droits sur les pour ouvrir la fenêtre de login. du groupware utilisateur pour votre client, il est
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, consultez l’aide en ligne. sont exécutées avant le code d’initialisation du ration de l’installation. Il est donc nécessaire de
Remarque : Le groupware utilisateur fonctionne projet. personnaliser la liste des fichiers de l’installation.
avec Active Directory. Il ne fonctionne pas avec • La première fenêtre de votre application définie • Si vous n’avez pas paramétré les fichiers de don-
Remarque : Ce mot de passe est utilisé par openLDAP. dans le projet sera lancée après la fenêtre de lo- nées du groupware, lors du premier lancement
exemple lors de la ré-indexation ou de l’ouverture gin (lorsque l’utilisateur n’est pas le superviseur). de l’application, seul l’utilisateur Superviseur
des fichiers de données avec l’outil WDMAP. existera dans l’application.
• Pour ne pas lancer le groupware utilisateur lors
Pour plus de détails sur ces fichiers de données des tests de l’application, il suffit de sélection- Conseil : Si vous ne configurez pas les différents
et leur configuration (répertoire d’installation, ...), ner l’option "Pas de groupware utilisateur" dans niveaux d’utilisation du groupware utilisateur pour
consultez l’aide en ligne. l’onglet "Intégration" des options du groupware vos clients, il est conseillé de leur fournir un docu-
utilisateur. ment reprenant tous les champs de vos fenêtres
Identification Si vous rebranchez le groupware utilisateur par pour obtenir une configuration optimisée.
Le groupware utilisateur propose plusieurs types la suite, les fichiers de données utilisés précé-
d’identification des utilisateurs : demment pour le groupware utilisateur ne seront
• Identification gérée par le groupware utilisateur pas effacés.
de WINDEV.
Authentification Windows
• Identification à partir d’un annuaire LDAP.
Dans ce cas, les login et mot de passe corres-
• Identification de Windows.
pondent à ceux définis pour utiliser Windows.

Identification gérée par le groupware utilisateur Remarque : il est possible d’utiliser une authentifi-
cation unique. Dans ce cas, le login et le mot de
Les login et mot de passe sont enregistrés dans les
passe seront demandés une seule fois par session.
fichiers de données du groupware utilisateur.

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


4  Paramétrer l’application utilisant le groupware utilisateur Un utilisateur peut être associé à plusieurs Les états disponibles pour chaque élément sont
groupes. les suivants :
Remarques : • Défaut : le comportement de l’élément corres-
Lorsque l’application est déployée, le paramétrage 3. La fenêtre de gestion du groupware utilisateur pond au comportement par défaut, défini dans
• Il est conseillé de changer le mot de passe du
du groupware utilisateur est réalisé par le supervi- s’affiche. Cette fenêtre permet de : l’application.
superviseur dès la première utilisation.
seur de l’application. • gérer les utilisateurs et les groupes
• Si vous utilisez un annuaire LDAP, vous avez la • Inactif : l’élément est affiché mais toute saisie
Ce paramétrage consiste à créer des utilisateurs, • gérer les droits est impossible.
possibilité d’importer les utilisateurs présents
des groupes d’utilisateurs et à leur attribuer pour • afficher les statistiques dans l’annuaire pour pouvoir gérer les droits de • Grisé : l’élément est affiché mais grisé. Toute sai-
chaque champ de chaque fenêtre de l’application
• migrer les données provenant d’un groupware ces utilisateurs. sie est impossible.
certains droits. Ces droits consistent à rendre vi-
sible, invisible ou grisé des champs, des groupes utilisateur version 17 et antérieur. • Invisible : l’élément n’est pas affiché.
4.2 Gérer les droits
de champs, des options de menus. 4.1 Gérer les utilisateurs Pour chaque utilisateur (ou groupe d’utilisateurs), 4.3 Afficher les statistiques
Pour paramétrer le groupware utilisateur, il suffit
de : La gestion des utilisateurs consiste à : le superviseur peut gérer leurs droits sur les diffé- Pour chaque application, il est possible d’obtenir
1. Lancer l’application (exécutable ou test depuis • créer des utilisateurs, rents éléments des fenêtres du projet. des statistiques d’utilisation selon l’utilisateur,
WINDEV) et se connecter en tant que superviseur : • créer des groupes, Pour chaque association utilisateur / fenêtre, il est pour une période spécifique.
• Nom : SUPERVISEUR possible de définir un état spécifique pour tous les
• associer des utilisateurs à des groupes. 4.4 Migrer des données
éléments de la fenêtre.
• Mot de passe : SUPERVISEUR
Les éléments gérés dans les fenêtres, les fenêtres A partir de la version 18, le groupware utilisateur
internes et les modèles de fenêtres sont les sui- a évolué. Les fichiers de données utilisés par le
vants : groupware utilisateur ne sont plus les mêmes.
• les champs L’administrateur du groupware utilisateur peut mi-
• les groupes de champs grer les données existantes au nouveau format et
• les options de menu ainsi récupérer automatiquement les données uti-
lisées dans des versions précédentes. Cette migra-
tion peut être effectuée quel que soit le format des
données : HFSQL Classic, HFSQL Client/Serveur,
Accès Natif.

La création d’un nouvel utilisateur consiste à don- 5  Conseils pour une application gérant le groupware utilisateur
ner les informations suivantes :
• le nom de l’utilisateur.
• le prénom de l’utilisateur. 5.1 Utilisation de groupes de champs 5.2 Visibilité des champs
• le login de l’utilisateur (obligatoire). Ce login cor- Pour simplifier le paramétrage de la gestion du Lors du développement de votre application, vous
2. Choisir l’option "Configurer le groupware". respond à l’identifiant de l’utilisateur lors de sa groupware utilisateur en fonction des utilisateurs, pouvez définir les caractéristiques de visibilité des
connexion à l’application. il est conseillé de regrouper les champs par groupe différents éléments de vos fenêtres :
• le mot de passe de l’utilisateur. Ce mot de passe de champs. • soit lors de la description de l’élément (fenêtre à
n’est pas obligatoire et peut être saisi par l’uti- Il est par exemple possible de créer dans vos fe- 7 onglets)
lisateur lui-même lors de sa première connexion nêtres des groupes de champs correspondant aux
(cochez l’option correspondante). • soit par programmation (propriétés ..Etat ou ..Vi-
champs à afficher pour un type d’utilisateur. sible)
Il est possible de définir l’utilisateur comme étant La possibilité d’associer un champ à plusieurs Lors de la configuration du groupware utilisateur, le
un superviseur de l’application. groupes de champs augmente les combinaisons superviseur peut définir d’autres caractéristiques
Il est bien entendu possible de modifier ou de sup- disponibles. de visibilité. Les caractéristiques définies par le
primer un utilisateur. La suppression d’un utilisa- Ces groupes de champs peuvent être créés dans superviseur sont prioritaires.
teur permet soit de supprimer entièrement l’utilisa- votre application uniquement en vue d’une gestion Par exemple, un bouton permet de rendre un
teur, soit de supprimer uniquement ses droits. du groupware, sans programmation spécifique de champ actif. Or ce champ a été grisé par le super-
Les utilisateurs peuvent être rassemblés en votre part. viseur. Votre code ne sera pas pris en compte et le
groupes. champ ne sera pas actif.
Pour associer un utilisateur à un groupe, il suffit de
réaliser un "Drag and Drop" de l’utilisateur vers le
groupe choisi.

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


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

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

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 1. Sélectionnez la chaîne de caractères à traduire.
Pour chaque élément, différentes zones multi- dants aux alphabets voulus dans les options régio- de login. 2. Dans le menu contextuel de la sélection, choisis-
lingues sont affichées dans les fenêtres de des- nales de Windows (panneau de configuration). Aperçu avant impression sez l’option "Traduire". La fenêtre de traduction des
cription de l’élément. Ces zones multilingues per- Par défaut, la fenêtre d’aperçu avant impression messages s’affiche.
mettent de saisir les informations dans les diffé- 3.3 Traductions des fenêtres spécifiques 3. Saisissez la traduction et validez. La ligne de
est disponible en anglais et français.
rentes langues gérées par le projet. Gestion des erreurs HFSQL code apparaît sous l’éditeur de code :
Pour traduire la fenêtre d’aperçu avant impression,
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 le traduire dans une autre langue, il est nécessaire cation. Ces fenêtres sont fournies (avec leur code
volet "Accueil", dans le groupe "Environnement", dé- de : WLangage), dans le répertoire \Programmes\Don- Le drapeau indique que des traductions existent
roulez "Options" et sélectionnez "Options générales nees\Fenêtres prédéfinies\Apercu. Pour plus de pour cette chaîne de caractères. Pour afficher la fe-
1. Intégrer les fenêtres d’erreur par défaut dans
de WINDEV". détails, consultez l’aide en ligne. nêtre de traduction, il suffit de cliquer sur ce dra-
votre projet. Les fenêtres sont fournies (avec leur
2. Dans l’onglet "Traduction", il est possible de défi- peau.
code WLangage) à titre d’exemple dans le réper- Il ne restera plus qu’à traduire ces fenêtres.
nir :
toire \Programmes\Données\Fenêtres prédéfi- Le chiffre (2 dans notre exemple) indique le nombre
• l’outil de traduction par défaut (et les modalités nies\HFSQL - Fenêtres assistance automatique. Menus système de traductions saisies pour cette chaîne de carac-
de transmission du texte à traduire/traduit). 2. Personnaliser la gestion des erreurs pour utiliser Pour les champs de saisie ou les champs de type tères.
• les langues source et destination. les fenêtres HFSQL de gestion des erreurs (fonction Table, WINDEV propose un menu contextuel par Remarque : Pour transformer tous les messages
3. Si un outil de traduction est précisé, dans HSurErreur). défaut. Ce menu permet à l’utilisateur de réaliser de votre code en messages multilingues, sous le
chaque élément contenant des informations à tra- 3. Traduire les différents messages (voir para- simplement diverses opérations. volet "Code", dans le groupe "Langues", dérou-
duire, un bouton "Traduire" sera affiché. Ce bouton graphe précédent). Pour traduire ces menus, il est nécessaire de pos- lez "Traduire les chaînes" et sélectionnez l’option
permettra de traduire le texte sélectionné en utili- séder WDINT. "Convertir les chaînes simples en messages multi-
sant l’outil de traduction spécifié. Gestion automatique des erreurs
lingues".
4. Pour effectuer la traduction, il suffit de sélec- Par défaut, les fenêtres de gestion automatique
tionner le texte à traduire et cliquer sur le bouton des erreurs sont fournies en anglais et en français.
"Traduire". Pour les traduire dans une autre langue, il est né- 4  Choix de la langue par programmation
cessaire de :
Export et réintégration des informa- 1. Intégrer les fenêtres d’erreur par défaut dans
tions à traduire votre application. Ces fenêtres sont fournies (avec Une application multilingue est une application • de prévoir une option (option de menu ou bouton
L’outil WDMSG, disponible séparément, permet leur code WLangage) à titre d’exemple, dans le qui pourra être diffusée dans plusieurs langues. par exemple) permettant à l’utilisateur de chan-
d’extraire tous les messages d’un projet (libellé des répertoire \Programmes\Donnees\Fenêtres prédé- L’utilisateur pourra choisir la langue d’exécution de ger de langue en cours d’exécution de l’applica-
champs, ...), puis de les réintégrer après traduction. finies\Assertion - Erreur - Exception. l’application. Il est possible par exemple : tion.
Contactez le service commercial de PC SOFT pour 2. Traduire les différents messages (voir para- • de demander la langue d’exécution au premier
plus de détails sur les conditions d’utilisation de ce graphe précédent). lancement de l’application
produit.
Groupware utilisateur
3.2 Langues utilisant un alphabet spécifique Par défaut, le groupware utilisateur est livré en an-
Si votre application gère des langues utilisant glais et en français.
des alphabets spécifiques (Grec, Russe, ...), il est Pour traduire une application utilisant le groupware
nécessaire de saisir la traduction des différents utilisateur, il est nécessaire de choisir une inté-
messages multilingues en utilisant ces alphabets gration personnalisée lors du paramétrage du
spécifiques. groupware utilisateur dans votre application. Rap-
WINDEV permet de gérer automatiquement l’utili- pel : Pour paramétrer le groupware utilisateur, sous
sation des alphabets spécifiques sous l’éditeur. le volet "Projet", dans le groupe "Projet", cliquez sur
"Groupware Utilisateur".

140 Partie 4 : Concepts avancés Partie 4 : Concepts avancés 141


Optimiser une
5  Gérer des alphabets spécifiques dans des fichiers de données
HFSQL application
Lorsqu’une application permet d’afficher ou d’enre- Si l’application est utilisée dans un pays utilisant Pour optimiser vos applications, WINDEV propose plusieurs méthodes :
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
cours. de données. Ainsi, les recherches, les tris, ... se- • Les Aides Automatiques au Développement (AAD) qui suggèrent des améliorations
Si l’application est utilisée dans un pays utilisant ront effectués en fonction de l’alphabet choisi. de code ou d’interface lors du développement de l’application.
des alphabets latins, aucune gestion spécifique
n’est nécessaire.
Développement de l’application
6  Gestion de l’Unicode et des alphabets spécifiques

WINDEV propose deux modes de gestion : La configuration du mode de gestion de l’Unicode Optimisations de vos
est réalisée dans les options de la configuration en requêtes, améliora-
• le mode mono alphabet : Dans ce mode, si votre
cours (onglet "Unicode" de la fenêtre de description tion des ancrages
application gère des langues utilisant des alpha-
de la configuration). dans vos fenêtres, ...
bets spécifiques (grec, coréen, ...), il est possible
Ces suggestions sont
de changer par programmation : Important régulièrement propo-
• l’alphabet utilisé par toutes les polices écran Si vous choisissez de passer vos projets en mode sées lors du dévelop-
(fonction ChangeAlphabet). Cet alphabet UNICODE, la cohabitation ANSI / Unicode génère pement de vos appli-
pourra également être utilisé pour les données toutefois des contraintes : il faut traduire les don- cations.
enregistrées dans les fichiers HFSQL. Pour plus nées lors du passage d’un système de codage à
de détails, consultez l’aide en ligne (mot-clé : l’autre. L’échange de chaînes texte avec l’extérieur
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 ChangeClavier). chaînes (en Unicode, 1 caractère est codé sur • L’analyseur de performances qui permet de visualiser rapidement les traitements
• le support complet de Unicode : Ce mode per- 2 octets alors qu’en ANSI il est codé sur 1 seul les plus gourmands en temps. Il suffit ensuite d’optimiser le traitement voulu.
met de gérer les alphabets non latins. Dans ce octet) : appel d’API, lecture ou écriture sur disque
mode, les fonctions ChangeAlphabet et Change- pour échange de données, lecture ou écriture de
Clavier sont inutiles. Le changement d’alphabet
est réalisé automatiquement selon les options
sockets contenant des chaînes, ...
Test de l’application
Si vous choisissez de passer vos projets en mode
de langue définies dans la description du projet. UNICODE, un assistant mesurant l’impact du pas-
Il est également possible de mélanger les diffé- Analyse des performances de
sage à Unicode est déclenché sur le projet lors du
rents alphabets. l’application durant un test, vi-
passage à la norme Unicode.
sualisation des traitements les
plus longs pour une optimisa-
tion immédiate du code.
Pour lancer l’analyseur de per-
formances, sous le volet "Pro-
jet", dans le groupe "Audit et
performances", déroulez "Analy-
ser les performances" et sélec-
tionnez "Analyser les perfor-
mances".

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


Livrer
"Etats et Requêtes"
• L’Audit statique du projet qui signale les problèmes potentiels de programmation
(groupes vides, éléments orphelins, etc.) ainsi que les fichiers volumineux pouvant
entraîner des temps de chargement anormalement longs.

Avec le logiciel "Etats et Requêtes" librement redistribuable avec vos applications, les
Audit statique utilisateurs pourront personnaliser selon leurs souhaits les états que vous leur proposez.
Bien sûr, seuls les états que vous aurez choisis seront personnalisables.
Rapport d’audit signalant les
problèmes rencontrés, ana- Projet WINDEV

1
lyse de la bibliothèque (pour
Description du projet
détecter les fichiers volumi-
neux) et analyse du pack
d’installation.
Pour lancer l’audit statique,
sous le volet "Projet", dans le
groupe "Audit et perfor-
mances", déroulez "Audit
Etats / Requêtes
d’édition" et sélectionnez
l’option "Déclencher l’audit
d’édition".
2 Description des états et des requêtes

• L’Audit dynamique du projet qui détectera les pertes de ressources, les erreurs mal
traitées, les lenteurs de l’application dans son environnement de production. Programmation
Fonction LanceEtatsEtRequêtes

Audit dynamique
3 Lancement du logiciel “Etats et Requêtes”
(optionnel)
Utilisation du menu “?” (automatique)

Analyse des performances de Lancement depuis l’aperçu (par défaut)


l’application durant un test, vi-
sualisation des traitements
contenant des exceptions ou
des erreurs mal traitées.
Pour lancer l’audit dynamique,
sous le volet "Projet", déroulez
"Mode test" et sélectionnez l’op- Exécutable

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

2  Comment activer/désactiver le MCU ?

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

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 Le
disponibles débogueur
Pour mettre au point votre code, un débogueur est livré en standard avec WINDEV.
WINDEV propose plusieurs méthodes pour tester votre application. Le tableau ci-des-
Le débogueur permet une exécution pas à pas de vos applications, en visualisant le code
sous présente ces différents modes.
WLangage exécuté, le contenu des variables, ...

Type de test Description


Simule le lancement de l’application par l’exé-
Test de l’ensemble du projet
cutable. Permet 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 solutionner le problème rencontré.

Permet de tester le fonctionnement de cet élé-


Test de l’élément en cours
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 ren-
contré.

Test d’un projet pas à pas Permet de lancer le débogueur au lancement


(grâce au débogueur) de l’application. 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é- Débogage du projet en cours
cutable spécifique, un exécutable déjà lancé ou
un exécutable lancé sur un autre poste. 1. Utilisation d’un point d’arrêt, placé dans l’éditeur de code.
Lorsque la ligne précédée d’un point d’arrêt sera exécutée, le débogueur sera automa-
Test unitaire Permet de tester les fenêtres, les procédures et tiquement lancé.
les classes d’une application à différents niveaux Pour poser un point d’arrêt, il suffit de cliquer devant la ligne de code : une puce rouge
de développement. apparaît.
Les scénarios de test sont automatiquement
générés en WLangage à partir du test de l’appli-
cation ou du test d’un élément. Les scénarios
peuvent être directement modifiés 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


Tests unitaires/
Tests automatiques
2. Utilisation du mot-clé STOP du WLangage dans le code WLangage
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"
Le débogueur est lancé en même temps que le test de l’application. L’option "Tracer le Les tests unitaires (appelés également tests automatiques) permettent de tester les
projet" est disponible sous le volet "Projet", en déroulant "Mode test". fenêtres, les procédures et les classes d’une application à différents niveaux de dévelop-
4. Utilisation des touches [CTRL] + [PAUSE] pendant le test de la fenêtre ou du projet pement. 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 Ces scénarios sont générés en WLangage et peuvent être directement modifiés.
touches [CTRL] + [PAUSE]. Ces scénarios sont regroupés dans l’Editeur de Tests. L’Editeur de Tests analyse le résul-
tat des tests unitaires et calcule le taux de validation de l’application.

Débogage d’un exécutable Utilisation d’un scénario de test


WINDEV permet également de déboguer directement l’exécutable associé au projet en Création d’un scénario de test (classes et procédures)
cours sous WINDEV. Cet exécutable peut :
• ê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éveloppe- Correction
ment. Il est 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évelop-
pement. Il est ainsi possible de tester le composant directement à partir de l’exécu-
3 Code WLangage du scénario de test 3 Résultat du test

table 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 scé-
nario".
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
l’exécutable Test d’une application en pratique
Il est possible de passer les tests unitaires créés avec WINDEV sur un exécutable dé- 1  Présentation
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-

1
Configuration de vos applications : quement la requête en cours. Vous pouvez ainsi
l’automate de tests • test de l’ensemble du projet, choisir de tester le fonctionnement d’une requête
4
Enregistrement du résultat
• test d’une fenêtre seule, dès que son développement est terminé.
dans la base de données
Le test d’un état seul permet d’exécuter unique-
Automate de tests des Centres de Contrôle • test d’une requête seule (consultez le livre "Etats
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
- Chemin de l’exécutable • test d’un état seul (consultez le livre "Etats et développement est terminé. Comme pour le test du
- Chemin des données de tests Requêtes" pour plus de détails), 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
le lancement de l’application par l’exécutable. Il est
solution permet de suivre méticuleusement le dé-
roulement de l’application.
ainsi possible de tester l’application dans son en- Le test des performances de votre application per-
WD2XXTest.DLL 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.
lancer le débogueur pour connaître et solutionner Le test de non-régression (ou test automatique)

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

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

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


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

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

Installation
Soucieux de la qualité des applications, plusieurs
nombre de tests d’une application n’a donc aucune
outils de tests sont à votre disposition :
incidence sur la taille de l’application livrée en
• Le mode test (Go de projet ou Go de fenêtre) qui clientèle.
permet de tester immédiatement une modifica-
Pour plus de détails, consultez l’aide en ligne (mot-
tion dans votre application.
clé : "Test automatique").
• Les tests automatiques qui permettent d’enregis-
trer un scénario de test facilement re-jouable. 7.3 L’utilitaire WDTest
• L’utilitaire WDTest qui permet par exemple de WDTest est un utilitaire permettant d’enregistrer
créer des tests de validation et de non-régression et d’exécuter automatiquement des scripts de test
en WINDEV. d’applications (WINDEV ou non WINDEV).
Pour automatiser ces tests et augmenter la qualité Un script de test (appelé également "macro")
de vos applications, vous pouvez faire des tests contient principalement les différentes manipula-
unitaires automatiques. Grâce à ces tests, il est tions (position de la souris, clic de souris et touche
encore plus simple de contrôler toutes les fonction- du clavier utilisé) effectuées sur une application.
nalités proposées par vos applications.
Après avoir été enregistré, le script de test peut être
7.2 Tests automatiques exécuté à volonté. Lorsqu’un script est exécuté, un
script de résultat est automatiquement généré. Les
Chaque test est composé d’un scénario directe- différences existantes entre les deux scripts (script
ment éditable dans l’interface du produit. Ce scé- d’origine et script de résultat) sont signalées.
nario est écrit en WLangage et peut être modifié à
Il est ainsi possible par exemple de vérifier le fonc-
n’importe quel moment.
tionnement de vos applications WINDEV entre deux
Ces tests peuvent être lancés par exemple avant mises à jour.
chaque création d’exécutable pour vérifier le bon
WDTest permet donc d’automatiser les procédures
fonctionnement d’une application après diverses
de test de vos applications.
modifications.
Important : Pour effectuer un test avec succès, il
Les éléments suivants peuvent être testés :
est nécessaire d’utiliser exactement la même confi-
• les fenêtres WINDEV. guration :
• les collections de procédures. • sur le poste où le test est créé.
• les classes. • sur le poste sur lequel le test est exécuté.
• les exécutables WINDEV. Pour plus de détails, consultez l’aide en ligne (mot-
Chaque test est associé à un code WLangage : le clé : "WDTest").
scénario du test. Ce scénario est visible sous l’édi-
teur de code. Le code des tests peut être modifié.

158 Partie 4 : Concepts avancés


Le Framework
WINDEV
Le Framework WINDEV est l’ensemble des librairies (fichiers .DLL) nécessaires au fonc-
tionnement 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
fonctionnement 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 auto-
nome. 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 Fra-


mework intégré à l’exécutable peut ne pas être possible.

160 Partie 5 : Installation Partie 5 : Installation 161


Les différents modes d’ins-
Utilisation du Framework WINDEV commun
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
tallation d’une application
installées sur le même poste.

Avantages du Framework commun : Installation individuelle


• L’espace disque utilisé par le Framework (environ 30 Mo) est mutualisé entre les
L’installation individuelle consiste à créer un programme d’installation qui sera installé
applications.
sur chaque poste utilisateur grâce à un support d’installation.
• La mise à jour du Framework ne se fait qu’une fois pour toutes les applications ins-
tallées.
• 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 utili-
sateur,
• 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 L’installation HTTP consiste à créer un programme d’installation qui sera installé sur un
directement l’installation de l’application par le réseau. Serveur Web.
Tous les postes utilisateur voulant installer l’application, lanceront directement l’installa-
tion 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 du
programme
d’installation Création de
l’exécutable

Utilisation de
l’application
Installation de
l’application Création du
Installation Serveur par le réseau
programme
via support
d’installation d’application d’installation

Installation
de la version
de référence
(installation
cliente)

Serveur
Si une mise à jour est disponible sur le serveur d’application, la mise à jour de l’applica-
tion sur le poste utilisateur sera proposée au lancement de l’application. Installation de
Web
Installation
via support l’application
Une installation réseau permet un contrôle fin des postes utilisateurs (versions dé- d’installation par Internet
ployées, mises à jour obligatoires, déconnexion des utilisateurs, etc.) Installation
de la version
de référence
Ce mode d’installation est compatible aussi bien avec :
(installation
• des fichiers de données au format HFSQL Classic installés en local sur le poste utili- cliente)
sateur,
• 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 L’installation réseau consiste à créer un programme d’installation qui sera installé sur
(un site représentant par exemple une filiale d’une entreprise). un poste Serveur.
L’installation multi-sites consiste à créer un programme d’installation qui sera installé L’installation sera effectuée depuis le poste Serveur, par l’administrateur réseau sur les
sur un serveur Web. postes Utilisateur sélectionnés grâce à WD2xxAdminExe.
Tous les sites voulant installer l’application lanceront directement l’installation de l’appli-
cation par une URL HTTP. Dans ce cas, le programme d’installation sera alors installé sur
un poste Serveur du site.
Tous les postes utilisateurs voulant installer l’application, lanceront l’installation directe-
ment par le réseau. Poste de Poste
Cette installation combine les avantages de l’installation réseau et de l’installation HTTP développement Utilisateur 1
en permettant un déploiement à grande échelle et un contrôle fin des installations lo-
cales. 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
d’installation
Utilisation de
l’application
Création du
programme
d’installation

Serveur
Installation
d’application Installation de
via support l’application
Installation de la
d’installation sur le poste
version de
utilisateur
Installation Serveur Serveur Installation de référence
par le réseau
via support
Web Installation d’application l’application (installation cliente)
d’installation par Internet par le réseau

Installation Installation WDAdminExe :


de la version de la version Exécution de
de référence de référence l’installation sur
(installation (installation
cliente) cliente) un des postes
Demande d’installation utilisateurs
(via une page web)

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 installation 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. Assistant WDINST, Personnalisation
• dans les supports d’installation. Pour plus de détails sur la création du programme
éditeur de
• dans les outils disponibles pour créer le pro- d’installation, consultez l’aide en ligne.
d’installation WDSETUP
gramme d’installation. Créer un programme d’installation X (conseillé) X
standard (en français et anglais par
défaut)
1  Installation : Tableau récapitulatif
Maintenir un programme d’installa- X X
tion
1.1 Support d’installation
Personnaliser un programme d’ins- X X
En fonction du support d’installation utilisé (Inter- tallation (le programme qui est lancé (installation multi-
net, Réseau interne, …), WINDEV offre plusieurs chez le client) lingue par exemple)
modes de génération de l’installation.
Pour optimiser votre installation, choisissez le Mode de lancement Sous le volet Sous le volet Projet WDSETUP dis-
mode de génération conseillé. "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".

réalisée en deux étapes :


Modes de génération de l’installation proposés par WINDEV 1.3 Les différents types d’installation • L’application de référence est installée sur le
Exécutable Répertoires Répertoire CD ROM Deux types d’installations sont disponibles dans serveur. L’application de référence correspond
Auto- à la taille de unique WINDEV : au programme d’installation de l’application
DVD ROM
Extractible disquettes sur les postes utilisateur.
• Installation individuelle : conseillée pour les ap-
plications monopostes. • L’application finale est installée sur chaque
Internet X (conseillé) Le programme d’installation installe l’application poste utilisateur, en exécutant le programme
directement sur le poste utilisateur. d’installation présent sur le serveur. Les mises
CD ROM / X X (conseillé)
d’installation

à jour seront ensuite effectuées automatique-


Supports

DVD ROM Autorun • Installation avec mise à jour automatique : ment lorsque l’application de référence évo-
possible conseillée pour les applications multi-postes. luera sur le serveur.
L’installation avec mise à jour automatique est
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 spé-
de l’application. Tous les fichiers nécessaires à cifiques et certaines options de personnalisation
l’application sont installés sur chacun des postes ne sont pas disponibles.
utilisateurs. Pour prendre en compte une mise à
jour, cette mise à jour doit être exécutée sur cha-
cun des postes utilisateurs.

168 Partie 5 : Installation Partie 5 : Installation 169


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

170 Partie 5 : Installation Partie 5 : Installation 171


Surveillez vos
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 surveillance.
Communication
Composé de trois exécutables lancés sur différents postes, le robot de surveillance per-
met 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
• 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
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 dialo-
guer 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 à dis-
tance.
• SMTP (Simple Mail Transfer Protocol) est un protocole d’envoi d’emails.

174 Partie 6 : Communication Partie 6 : Communication 175


Transfert de fichiers
par FTP
API "Simple Mail API (appelé aussi SMAPI ou Simple MAPI)"
Ce mode de gestion des emails est utilisé par la plupart des applications Microsoft et
principalement MS Exchange.
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.

Principe d’utilisation
Pour manipuler des fichiers sur un serveur FTP depuis une application WINDEV, il est
Poste local Serveur d’emails nécessaire de suivre les règles suivantes :
(Utilisateur) (Hébergeur) 1. Connexion à un serveur FTP (fonction FTPConnecte).

Application WINDEV Service POP3

Service SMTP
Poste utilisateur Serveur FTP
Connexion
Simple MAPI Compte FTP
Application WINDEV

Anonymous
Profile
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 effectuant un traitement pour chaque fichier trouvé.

176 Partie 6 : Communication Partie 6 : Communication 177


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

1
Demande
d’autorisation
Un socket est une ressource de communication utilisée par les applications pour dialo-
Connexion passive Connexion passive guer d’une machine à une autre sans se soucier du type de réseau.
(Firewall sur le serveur FTP) (Firewall sur le serveur FTP) Ce mode de communication peut par exemple être utilisé pour établir une communica-
tion entre des postes reliés par Internet.

2
Application WINDEV
Validation
Différentes possibilités
Une application WINDEV peut gérer les sockets selon différents modes :

3 Action • Application WINDEV Cliente : l’application se connecte à un serveur quelconque et


échange des données via un socket.
• Application WINDEV "Serveur simplifié" : l’application WINDEV est un serveur,
Action échangeant des informations via un socket avec un seul poste client.
Connexion active Connexion active
• Application WINDEV "Serveur standard" : l’application WINDEV est un serveur,
Application WINDEV échangeant des informations par sockets avec plusieurs postes clients quel-
conques.

Principe d’une application cliente


Une application cliente d’un serveur de sockets se connecte à un serveur quelconque
3. Fermeture de la connexion avec le serveur (fonction FTPDéconnecte). pour échanger des informations par l’intermédiaire d’un socket.
Exemple : Une application WINDEV cliente peut se connecter à un serveur de news
standard sur Internet.
Etape 1 : Connexion au serveur
Pour se connecter à un socket du serveur, utilisez la fonction SocketConnecte. Cette
Poste utilisateur Serveur FTP fonction permet d’effectuer une demande de connexion au serveur. Le socket est identi-
fié par son port et par son adresse.
Déconnexion
Application WINDEV 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 fonctions 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


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

WINDEV permet de gérer simplement les appels téléphoniques entrants et sortants


Poste Client Poste Serveur grâce aux fonctions WLangage de téléphonie. Ces fonctions permettent par exemple de

Fonction SocketConnecte
1 Connexion gérer une boîte vocale, un répondeur, ... directement dans une application WINDEV.

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 protocole SSL. Il faut pour cela utiliser les fonctions SocketCréeSSL et Socket- Modem
ConnecteSSL.

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
Partie 7
Webservices
WINDEV vous permet d’utiliser très simplement des Webservices (ou services Web XML).
Un Webservice est une application disponible sur le Web. WINDEV permet d’accéder à
des Webservices SOAP (Simple Object Access Protocol) comme à des Webservices REST
Annexes
(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’im-
porter sa 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 Webser-


vice et d’utiliser 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
avec WINDEV
WINDEV est livré en standard avec projets correspondants à des composants. Ces pro-
jets 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 :

Nom du composant Description

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 CodesPostaux- Permet la recherche et la sélection d’une ville sans modifier
France l’analyse.

WD Communication Permet de faire communiquer deux applications distinctes.


Ces deux applications peuvent être :
- Soit sur des postes distants. La communication est effec-
tuée via sockets.
- Soit sur le même poste. La communication est effectuée
grâce aux messages Windows.

WD Derniersdocu- Permet de proposer une option de menu permettant d’ouvrir


ments 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 fur- Permet d’afficher des informations temporaires à l’utilisateur
tives sans perturber son travail.

184 Partie 7 : Annexes Partie 7 : Annexes 185


WD FileImpression Détermine la liste des imprimantes les moins sollicitées pour WD Paramètres Permet d’utiliser la fonction iParamètre. Cette fonction per-
effectuer un ou plusieurs travaux d’impression. Impressions met de récupérer les différents paramètres définis pour une
imprimante donnée. L’imprimante utilisée est définie grâce à
WD Gestion Logs Permet de définir, pour une application, un paramétrage des la fonction iConfigure(Nom de l’imprimante).
logs d’exécution : Ce composant permet de modifier différents paramètres :
- nombre de fichiers de log qui doivent être conservés, - L’orientation du papier
- taille maximale par fichier de log, - L’échelle
- informations qui doivent être logguées. - La gestion des polices TrueType
Cet exemple simule différents traitements pour observer la - Le nombre de copies
gestion des fichiers de logs (fichiers .wlog). - La gestion de la couleur (impression couleur ou mono-
chrome)
WD Glossaire Permet de classer et de conserver des formulations écrites - Le recto-verso
qu’un client réutilise régulièrement. - Le style de sortie des feuilles (assemblées par copies ou par
Il est ainsi possible de proposer en permanence au client un numéro de page)
accès à un "Glossaire" qu’il personnalise aisément. Toutes
les entrées du glossaire peuvent être classées en catégories WD Pays du monde Contient la liste de tous les pays du monde et certaines infor-
arborescentes. mations :
- code ISO de chaque pays,
WD Importation de Permet d’importer des pages HTML avec les fonctions WLan- - liste des régions, états ou pays constituant un pays (avec le
pages HTML gage. décalage horaire pour chaque état, région ou pays),
- décalage horaire (GMT),
WD InfoSysteme Propose trois catégories de fonctions permettant de rassem-
- monnaie principale du pays,
bler les informations sur le poste en cours, l’utilisateur et le
- principales langues parlées,
réseau auquel est connecté le poste en cours.
- drapeau de chaque pays,
- capitale,
WD Jauges Permet de gérer automatiquement dans vos projets une jauge
- indicatif téléphonique.
simple ou double qui affiche le temps restant ou le nombre
d’étapes d’un traitement.
WD Photocopieur Permet de réaliser des photocopies de documents à l’aide
WD JournalEvene- Permet de : d’un scanner et d’une imprimante.
ment - Lister et lire les événements enregistrés dans le journal des
événements de Windows. WD Popup Dans de nombreux logiciels de retouche d’images, il est pos-
- Ajouter un événement dans le journal des événements de Graphique sible de sélectionner une forme à dessiner, de choisir une
Windows. épaisseur pour cette forme, et ceci via une combo popup gra-
phique avancée.
WD Limitation Permet de limiter une application par différents moyens : Ce type de combo popup graphique offre en effet une prévi-
- Limitation de durée (Application limitée à 30 jours) sualisation en temps réel de la forme à l’épaisseur choisie.
- Limitation à 1 poste (Application n’a le droit de s’exécuter Ce composant permet d’intégrer une telle interface dans une
que sur un seul poste) application WINDEV.
- Limitation du nombre d’utilisateurs (Une application ne peut
pas être exécutée par plus de n utilisateurs) WD Saisie email Permet de faciliter la saisie des emails.

WD ModèleImpres- Permet de gérer des profils d’impression.


sion

186 Partie 7 : Annexes Partie 7 : Annexes 187


Exemples livrés
WD Select RTF Permet d’effectuer tous types de recherches dans un champ
RTF. Vous pouvez par exemple rechercher :
- les mots en caractères gras,
avec WINDEV
- les mots en italique,
Les exemples livrés avec WINDEV présentent de manière didactique les différentes fonc-
- les mots d’une couleur spécifique,
tionnalités de WINDEV.
- une chaîne de caractères ayant des mots spécifiques.
Leur code source est commenté et détaillé.
WD Signature Permet d’intégrer facilement dans vos applications WINDEV Ces exemples sont présents dans le sous-répertoire "Exemples" du répertoire d’instal-
un champ ‘Signature’ prêt à l’emploi. Ce champ est notam- lation de WINDEV et peuvent être ouverts directement depuis la fenêtre d’accueil de
ment très pratique pour les applications qui sont destinées WINDEV.
à des terminaux tactiles, TabletPC sous Windows XP, bornes
interactives, ... Différents types d’exemples sont livrés avec WINDEV :
• Exemples complets : ces exemples correspondent à des applications complètes, qui
WD Simplexe Permet de réaliser des calculs à partir de l’algorithme du Sim- peuvent être utilisées sans adaptation.
plexe. • Exemples didactiques : ces exemples illustrent une fonctionnalité spécifique.

WD Trace Socket Permet de tracer tout ce qui passe sur une communication Voici les fonctionnalités de quelques exemples livrés avec WINDEV.
via socket, sur une adresse donnée, sur un port donné. Cela
permet de comprendre ce qu’il se passe dans un dialogue via Exemples complets
socket entre deux applications.
Ainsi, dans des applications qui dialoguent via socket, même
CRM Permet de gérer des clients, d’établir des commandes
si les développeurs n’ont pas prévu d’option de trace, il sera
et des devis, et de gérer une liste de tâches et un plan-
possible de voir l’ensemble des échanges effectués sur la
ning.
socket.
Cet exemple peut également permettre de mieux comprendre eCommerce (Back office) Cet exemple est une application de back-office pour le
le fonctionnement des protocoles réseau basés sur les soc- site eCommerce. Il utilise le webservice eCommerce
kets : POP3, SMTP, FTP, HTTP, etc. afin de :
- gérer les produits
WD Sockets Permet de faire dialoguer facilement deux applications en uti- - gérer les commandes
lisant des sockets. - modérer les avis
- ...

WD Agenda Permet de synchroniser des rendez-vous entre vos


agendas Outlook, Lotus Notes et Google.

WD Congés et RTT Gestion complète des congés et des RTT des collabora-
teurs 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 Loupe Permet de zoomer une partie de l’écran grâce à une
- calculer le montant des mensualités à partir du mon- loupe visuelle. Il est possible de zoomer jusqu’à 8 fois.
tant emprunté donné
- calculer le montant empruntable à partir d’une men- WD Mail Cette application est un client mail complet. Il s’appuie
sualité donnée sur les objets Email. Ce client mail permet de récupé-
- calculer le rapport d’un placement à partir d’un ap- rer et d’envoyer des emails en utilisant les protocoles
port mensuel POP, IMAP et SMTP.
Pour chaque cas, il est possible d’imprimer le tableau WD Messagerie Présente les différentes fonctions de gestion des soc-
d’amortissement correspondant à vos paramètres. instantanée kets.
WD Gantt Présente une utilisation avancée d’un diagramme de WD MotDePasse Présente un "coffre" à mot de passe. Peut être utilisé
Gantt. pour gérer les mots de passe créés lors de l’utilisation
Permet de créer un diagramme de Gantt complet avec de sites Internet (ou d’applications) ou des mots de
tâches, liaisons, tâches cumulatives et jalons. passe de la vie courante (digicodes, codes de cartes
Les tâches peuvent être éditées dans une fenêtre spé- bancaires, etc.) .
cifique. Peut également être utilisé comme un générateur de
Le diagramme créé peut être sauvegardé dans un fi- mot de passe pour produire des mots de passe parti-
chier pour être rechargé par la suite. culièrement sûrs.
WD Gestion Commerciale Présente une application de gestion commerciale, "ten- WD Multimédia Permet de lire et de jouer :
dance", sous forme d’onglets dynamiques, avec ruban. - des vidéos (AVI, MPEG...),
WD Gestion Contacts Permet de gérer des contacts et de leur envoyer des - des fichiers sons (MP3, WAV),
emails. - des CD Audio,
Il est également possible de synchroniser ces contacts - des animations Flash.
avec ceux présents sur le terminal mobile relié au PC WD Outlook Permet de lire et écrire dans les dossiers de Outlook :
et avec ceux de Outlook. - Messagerie,
WD Gestion de parc infor- Permet de gérer un parc informatique. Pour chaque - Calendrier,
matique poste du parc, ses caractéristiques, ses composants - Contacts,
et ses utilisateurs peuvent être définis. - Tâches.
Ces fonctionnalités sont mises en œuvre grâce à l’utili- Cet exemple est conçu pour fonctionner avec la version
sation de requêtes, d’états et de combos. standard de Outlook livrée avec Office.
WD Planning Permet de réaliser un planning comportant des zones
WD Gestionnaire de tâches Permet de lister les applications et les processus grâce
clicables.
DOTNET à des fonctions .NET.
Permet d’effectuer différents traitements sur les appli- WD Proxy HTTP Cet exemple est un proxy HTTP simplifié. Il est possible
cations et sur les processus. d’enregistrer les connexions et de connaître les pages
consultées.
WD Graveur Permet de graver des CD Audio et des CD de données,
DVD ou disques Blue-Ray. WD ProxyPOP3 Cet exemple présente un proxy POP3. Dans cet
exemple, le proxy est utilisé pour archiver automati-
WD Graveur Lite Permet de graver des CD de données, DVD ou disques quement dans une base HFSQL les emails récupérés.
Blue-Ray.

WD Lecteur RSS Présente l’utilisation de classes permettant de lire des


flux RSS

190 Partie 7 : Annexes Partie 7 : Annexes 191


WD Recherche sur Internet Permet de piloter différents moteurs de recherche sur WD Zip Permet de créer et de lire des archives compressées
Internet (Yahoo, Alta Vista, Voilà, Lycos, Excite, Nomade, au format "WDZ" (ZIP WINDEV).
Google, Euroseek, etc.). Le résultat de la recherche est
affiché grâce à un ActiveX.

WD Répondeur Télépho- Utilise les fonctionnalités de téléphonie pour la gestion Exemples didactiques
nique d’un répondeur téléphonique. Ce répondeur est inter-
rogeable et paramétrable à distance grâce à un menu.
WD Active Directory DotNet Permet la visualisation du contenu d’un Active Direc-
WD Scanner - Twain Permet de : tory. Cette visualisation est effectuée grâce à des
- Prévisualiser une partie d’un document, objets .NET contenus dans l’assembly System.Direc-
- Numériser un document (format GIF, JPEG, BMP), toryServices.
- Numériser un document et le placer dans le presse-
WD Analyseur Explain HFSQL Représente visuellement le détail du plan d’exécu-
papiers,
tion d’une requête SQL grâce à la commande SQL
- Numériser un document et l’imprimer.
EXPLAIN.

WD Synchronisation de Permet de synchroniser deux répertoires de fichiers. WD APISystemes Montre l’utilisation des Apis Windows.
fichiers Après synchronisation, le répertoire de destination est
identique au répertoire source. La comparaison est WD Appels JAVA Illustre l’appel aux méthodes des classes d’une ar-
effectuée sur la présence et la date des fichiers. chive JAR grâce à la fonction WLangage JavaExécu-
teFonction.
WD Téléphonie Utilise les fonctions téléphonie de WINDEV pour : Montre également le remplissage d’une table mé-
- Composer un numéro de téléphone, moire (identique en mode Java et en mode Windows).
- Détecter et identifier des appels entrants.
WD Application Interactive Montre l’utilisation des fonctions FenEdXXX dans
une application interactive.
WD Télésurveillance Permet de transmettre des images filmées par une
Cette application permet de gérer une maison
Web Caméra à travers un réseau (Internet, Intranet,
connectée (allumer les lumières, connaître la tempé-
etc.).
rature).
WD Transfert de fichiers par Permet de transférer des fichiers :
FTP - d’un serveur FTP vers le poste local, WD Assistant Gère une fenêtre de type "Assistant".
- du poste local vers un serveur FTP. WD Bluetooth Cet exemple montre l’utilisation des fonctions Blue-
tooth :
WD Visioconférence Permet d’entrer en conférence avec un utilisateur dis-
- pour lister les périphériques Bluetooth accessibles,
tant.
- pour lister les services offerts par un périphérique,
Permet d’envoyer un fichier à un correspondant et de
- pour se connecter à un périphérique Bluetooth,
dialoguer avec lui.
- pour envoyer un fichier à un périphérique via les
WD WebCam Présente l’intégration d’une Web Caméra dans une fonctions "OBEX" du WLangage.
fenêtre WINDEV.
Il est possible de : WD Champ Recherche Cet exemple montre comment gérer un champ de
- Visualiser l’image retransmise par la caméra, saisie permettant de réaliser des recherches Full-Text
- Effectuer une capture instantanée, de type "google" dans votre base de données.
- Capturer la scène retransmise sous forme d’anima-
tion Windows (Fichier "AVI"). WD Changements Gabarits Cet exemple présente une solution de changement
dynamique de gabarits par les utilisateurs.

192 Partie 7 : Annexes Partie 7 : Annexes 193


WD Coloration Recherche Cet exemple présente comment mettre en évidence WD Ecran de veille Permet de réaliser un économiseur d’écran grâce à
les mots recherchés dans les résultats d’une re- la gestion des timers et des événements Windows.
cherche Full-Text.
WD Etats Cet exemple montre les différentes méthodes pour
WD Coloration Syntaxique Cet exemple propose une classe de base permettant réaliser un état :
d’effectuer une coloration syntaxique classique sur - impressions basées sur différentes sources de don-
du texte. nées (requêtes, variables, ...)
- impressions basées sur des champs (Table, Tableur,
WD ContrôleADistance Permet de mettre en application le contrôle à dis- TCD, ...)
tance d’une application WINDEV. - impression d’états composés
- impressions spécifiques (portrait / paysage, état
WD Contrôles de saisie Effectue la vérification des données saisies par l’uti- avec filigrane, état avec code-barres, ...)
lisateur (nom, société, code postal, ville, adresse e-
mail, etc.) dans une fenêtre de type formulaire. WD Exemple de test unitaire Cet exemple présente l’utilisation de l’éditeur de test
unitaire intégré de WINDEV dans deux cas concrets :
WD DataBinding L’exemple "WD DataBinding" présente comment lier - le test d’une fenêtre
un champ à une variable du WLangage. - le test d’une procédure globale

WD Découverte MVP - Cet exemple didactique présente la mise en oeuvre WD Export HTML Gère des fichiers externes. Présente également la
Partie 1 d’une architecture MVP (Modèle Vue Présentation) manipulation des fichiers au format HTML.
dans un projet.
WD Extraction MIME Permet d’extraire les pièces contenues dans un em-
WD Découverte MVP - Cet exemple didactique présente la mise en oeuvre ail.
Partie 2 d’une architecture MVP (Modèle Vue Présentation)
dans un projet pour une analyse simple (Client - Com- WD Fichier externe Présente comment manipuler des fichiers non dé-
mande - Ligne de commande - Produit). crits dans l’analyse.

WD Délégué DOTNET Cet exemple didactique montre comment interagir WD Génération PowerPoint Cet exemple présente comment générer une présen-
avec les délégués DOTNET tation PowerPoint à partir :
- de données contenues dans une application WIN-
WD Dessin sur Graphe Cet exemple repose sur l’utilisation d’un composant DEV, telles que les données de tables, de graphes ..
interne permettant de dessiner des éléments sur - et d’un document PowerPoint .pptx de base.
un champ graphe : Zones min/max, Zones diverses,
Drapeaux, Plots et trackers de suivi,... WD Gestion Auto Erreurs Cet exemple est un exemple didactique sur la gestion
automatique des erreurs.
WD Detection Erreurs HFSQL Présente le module de gestion assistée des erreurs Cet exemple montre le cas des erreurs fatales, non
HFSQL : fatales, sur plusieurs niveaux.
- le fonctionnement par défaut,
- les différentes possibilités de personnalisation. WD Gestion des erreurs Java Cet exemple didactique permet de comprendre le
fonctionnement et la mise en œuvre du mécanisme
WD DirectX Cet exemple permet d’utiliser DirectX 9.0 dans vos de gestion des erreurs de WINDEV.
applications WINDEV.
WD Gestion Erreurs HFSQL Cet exemple présente de façon didactique la gestion
WD Duplication Cet exemple didactique montre comment il est pos- des erreurs HFSQL (doublon, intégrité).
sible de dupliquer une base de données sur un ser- Cet exemple montre comment personnaliser le traite-
veur. ment lorsqu’une erreur est levée.

194 Partie 7 : Annexes Partie 7 : Annexes 195


WD Graphe Cet exemple didactique présente diverses utilisa- WD Limitation de durée d’uti- Permet de limiter l’utilisation d’une application à une
tions du champ graphe. Tous les types de graphe dis- lisation période donnée (période d’essai).
ponibles sont présentés.
WD ListeChaînée Fournit les outils pour construire des listes chaînées
WD Grapheur Java Cet exemple montre comment réaliser des graphes à chaînage simple. Une liste à chaînage simple per-
grâce à aux fonctions de dessin. met de stocker et parcourir de manière ordonnée
Trois types de graphe sont présentés : histogramme, une collection de valeurs quelconques.
nuage de points, courbe.
WD Mailing par emails Permet d’envoyer un "mailing" par Internet.
WD Groupware utilisateur Présente le fonctionnement du Groupware Utilisa-
teur. WD Manipulation du champ Exemple simple d’utilisation du champ Agenda. Les
Agenda fonctionnalités utilisées sont les suivantes : Création
WD GroupwareCS Présente le groupware utilisateur avec une base de d’un rendez-vous, Sauvegarde d’un agenda, Restau-
données HFSQL Client/Serveur. ration d’un agenda
WD Hotkey Permet de définir vos propres raccourcis clavier. WD Menu Animé Cet exemple propose différentes animations de
menu.
WD ImpRectoVerso Cet exemple présente une solution d’impression
recto-verso qu’il est possible de désactiver, c’est-à- WD Menu Pure Cet exemple propose un menu personnalisable au
dire que les versos peuvent ne pas être imprimés. travers d’un modèle de champ.

WD Impression de Tree View Permet d’imprimer un Treeview. Cet exemple utilise WD Multi fenêtrage Permet de comprendre les bases de la gestion du
une classe "TreeImp" facilement réutilisable pour Multi-fenêtrage avec WINDEV.
n’importe quel champ Treeview.
WD Multitouch Cet exemple utilise un composant interne permet-
WD JavaMail Permet de créer une applet, utilisable dans une page tant d’utiliser les fonctionnalités Windows Touch
Internet. dans une application WINDEV.
Cette applet permet de lire et envoyer des emails.
WD OAuth Cet exemple propose didactiquement de se connec-
WD Jump Lists JumpList sous Windows 7 ter à Google et Microsoft grâce à la fonction Auth-
Une JumpList est un menu accessible via le menu Identifie et au type OAuth2Paramètre.
Démarrer ou l’icône de l’application dans la barre
des tâches. WD Objets graphiques Cet exemple est un éditeur d’objets graphiques.
Il est possible de :
WD Langage Externe Cet exemple illustre l’utilisation de fenêtres faites
- déplacer, redimensionner les objets
avec WINDEV dans une application en C ++ (Visual
- effectuer des sélections au lasso ou à la souris
Studio 2005) et MFC.
- couper/copier/coller des objets
- supprimer/dupliquer des objets
WD Lasso Utilise un lasso de sélection dans un champ Image
- enregistrer les documents créés et de les imprimer.
pour réaliser un zoom dans un champ de prévisua-
lisation. WD Observateur Répertoire Cet exemple montre l’utilisation des delegates .NET
(événements .NET) en WLangage.
WD Lien réflexif Utilise un lien "réflexif" pour gérer des arbres généa-
logiques : chaque personne a plusieurs parents et WD OLE DB Permet d’accéder à des bases de données externes
plusieurs enfants. Tous ces enregistrements sont via OLE DB.
stockés dans le même fichier.

196 Partie 7 : Annexes Partie 7 : Annexes 197


WD OPC Montre l’implémentation du protocole OPC en WIN- WD Pilotage de OpenOffice Cet exemple didactique illustre le pilotage de Ope-
DEV. Writer nOffice Writer. Il est en effet possible de créer, ouvrir
et manipuler des documents ouverts dans OpenOf-
WD OpenGL Permet d’interfacer OpenGL et WINDEV. OpenGL est fice Writer depuis une application WINDEV.
une interface logicielle destinée à dessiner des ob-
jets tridimensionnels (3D).
WD Pilotage de Outlook Permet de piloter Outlook via OLE Automation. Toutes
WD Organigramme Cet exemple permet de créer des organigrammes. les fonctions de Outlook peuvent ainsi être utilisées.

WD OSD OSD signifie : On-Screen Display. C’est le nom donné WD Pilotage de Tableurs Cet exemple illustre le pilotage du tableur OpenOffice
aux interfaces qui apparaissent sur les écrans d’or- Calc et du tableur Excel, avec un code générique.
dinateur ou des téléviseurs par exemple. Ils servent
souvent à effectuer des réglages. Ces types de WD Pilotage de Word Permet de piloter Word via OLE Automation. Toutes
menus ont comme particularité d’être affichés par- les fonctions de Word peuvent ainsi être utilisées.
dessus tout ce qui se trouve à l’écran. Cet exemple
montre comment réaliser ce type d’interface sous WD Pilotage traitement de Le but de cet exemple est de proposer une interface
WINDEV. texte universelle, permettant de piloter ces applications,
sans se soucier de l’application à piloter.
WD Ouverture Périphérique Cet exemple permet d’ajouter ou supprimer une ap-
plication du système d’ouverture automatique pour WD PlanningAvecRupture L’exemple "WD PlanningAvecRupture" propose une
les périphériques amovibles par programmation. solution pour gérer des "ruptures" dans un champ
Planning
WD PartageMemoire Cet exemple montre comment utiliser les fonctions
de partage de mémoire. WD Plugin WDSETUP Ce projet contient les éléments nécessaires à la réali-
sation d’un plugin (ou "extension") d’installation pour
WD PC Infos Permet de connaître la langue du poste sur lequel WDSETUP.
l’application s’exécute.
WD POO Simple Exemple sur la POO avec WINDEV.
WD Persistance Cet exemple montre l’utilisation des fonctions InitPa-
ramètre, ChargeParamètre, SauveParamètre. WD Presse-Papiers Multiple Cet exemple gère automatiquement un presse-pa-
Ces fonctions permettent de configurer la sauvegarde piers multiniveaux entre toutes les applications WIN-
de champs, de variables et de tout autre paramètre. DEV lancées sur le poste.

WD Pilotage de Excel Permet de piloter Excel via OLE Automation. Toutes WD Pyramide Des Ages Montre comment créer un graphique de type "Pyra-
les fonctions d’Excel peuvent ainsi être utilisées. mide des âges" à partir de deux histogrammes.

WD Pilotage de IE Permet de piloter IE via OLE Automation. Toutes les WD Qui bloque Signale aux utilisateurs d’une base de données HF-
fonctions de IE peuvent ainsi être utilisées. SQL en réseau quelle est la personne qui bloque un
enregistrement inaccessible.
WD Pilotage de Open Office Cet exemple propose une classe permettant de ma-
Base nipuler facilement une base Open Office sans avoir à WD Recherche par clé com- Présente l’utilisation des filtres et l’utilisation des clés
aucun moment à manipuler des objets OLE. posée composées afin d’optimiser les temps de recherche
sur un fichier de données HFSQL.
WD Pilotage de OpenOffice Cet exemple didactique illustre le pilotage du tableur
Calc OpenOffice.org. Il est en effet possible de créer, ou-
vrir et manipuler des classeurs ouverts dans OpenOf-
fice.org depuis une application WINDEV.

198 Partie 7 : Annexes Partie 7 : Annexes 199


WD RechercheRuban L’exemple "WD RechercheRuban" propose une solu- WD Transaction Illustre le fonctionnement des transactions lors du
tion pour rechercher un élément d’un champ Ruban passage d’une commande.
à partir de son libellé et de sa bulle d’aide
WD Treemap Utilise le champ TreeMap afin de visualiser le contenu
WD Réplication Universelle Montre comment synchroniser les données de diffé- d’un répertoire et la place prise par chaque fichier con-
rents sites en utilisant la réplication universelle. stituant ce répertoire.

WD Requêtes Permet d’effectuer des calculs, de passer des para- WD Trigger Permet de saisir les notes de frais des collaborateurs
mètres ou d’imprimer le résultat d’une requête SQL d’une société. Deux modes sont utilisables :
sur un fichier de données HFSQL. - Consultation avec possibilité de modification (lec-
ture/écriture)
WD Riak WD Riak présente un exemple d’utilisation de la base - Consultation uniquement
de données Riak en WLangage. Ce sont les triggers qui permettent de contrôler l’ac-
cès aux fichiers en fonction du mode choisi.
WD Service Cet exemple illustre la création d’une application de
type "service" avec WINDEV. WD Trigger serveur Cet exemple permet de montrer comment utiliser
des triggers serveur.
WD Sharepoint Cet exemple détaille la méthode d’authentification
auprès du Webservice ainsi que l’utilisation de la
WD Utilisation de DOTNET Permet de convertir des devises dans d’autres de-
recherche.
vises.
WD Tableau de bord L’exemple "WD Tableau de bord" est un exemple di- La base de ce projet (la classe cEuro) est utilisée
dactique sur l’utilisation du champ Tableau de bord. pour créer un assemblage DotNet.

WD TableauCroiséDynamique Cet exemple illustre l’utilisation du champ Tableau WD Utilisation des classes Permet d’utiliser des classes DOTNET en WLangage.
croisé dynamique. DotNet Permet de :
Ce champ tableau croisé dynamique permet d’affi- - analyser une chaîne de caractères,
cher des statistiques dynamiques en effectuant des - configurer les boîtes de dialogue affichées.
regroupements. Ces statistiques sont calculées à
partir de la base de données. WD Utilisation des sockets Présente l’utilisation des sockets en mode client/
serveur.
WD Text-To-Speech Cet exemple montre comment effectuer une syn- Chaque socket est manipulée au travers d’un thread.
thèse vocale dans une application WINDEV en utili-
sant la classe SpeechSynthesizer du framework DOT- WD Utilisation de Webser- Projet client : Cet exemple montre comment récupé-
NET. vices rer, à partir d’un Webservice, des images en fonction
de mots-clés. Ce projet est le client qui se connecte
WD Timeline Propose un composant interne permettant de mani- au WebService "WD Serveur Webservice".
puler un modèle de champ ‘Timeline’. Une timeline Projet serveur : Cet exemple montre comment créer
permet d’afficher de façon linéaire une série d’événe- un Webservice fournissant des images en fonction
ments qui se sont déroulés sur une période donnée de mots clés. Ce projet est le Webservice qui est uti-
de temps. lisé par le projet WD Client Webservice.
WD Trames réseau L’analyse des trames circulant sur le réseau permet WD WindowsUpdate Cet exemple montre comment gérer les mises à jour
aux administrateurs d’auditer ce dernier et de détec- disponibles sur Windows Update.
ter certaines incohérences. Pour écouter le réseau,
l’application se base sur l’API Winsock 2 et les RAW
Socket.

200 Partie 7 : Annexes Partie 7 : Annexes 201


WD WMI DOTNET Le WMI (Windows Management Instrumentation)
permet une administration exhaustive des applica-
tions et des périphériques. Le WMI peut être com-
paré à une base de données regroupant de multiples
informations sur un poste

Des exemples supplémentaires seront livrés avec la Lettre du Support Technique (LST)
ou seront disponibles sur notre site (www.pcsoft.fr).

202 Partie 7 : Annexes