Vous êtes sur la page 1sur 103

WinDev - Concepts

Version 18 - (1) 10-2012 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’appren-
tissage 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, ...)

Le livre "WLangage" présente la programmation en WLangage. Pour chaque thème de


programmation, vous trouverez une description de la fonctionnalité associée et la liste
Adresse e-mail du Support Technique Gratuit : supportgratuit@pcsoft.fr. des fonctions du WLangage correspondantes.

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


Conseil : Pour recevoir directement des mises à jour intermédiaires et des conseils WinDev permet de trouver rapidement la syntaxe d’une fonction du WLangage, d’obtenir
d’utilisation, abonnez-vous à la LST (revue trimestrielle + DVD), en français. une aide sur l’interface, ...

Remarque : En cas de divergence entre le manuel 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 2012 : 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 cer- Projet et Analyse ................................................................................................................... 9
taines 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 ...........................................................................................................48
Edition : Les états ...............................................................................................................49
Modèles d’états ..................................................................................................................50

PARTIE 2 - ENVIRONNEMENT DE DÉVELOPPEMENT


Les éditeurs de WinDev ......................................................................................................53
Page concept Tableau de bord du projet .................................................................................................. 57
WinDev/WebDev/WinDev Mobile : 100% compatible .....................................................58
Configuration de projet .......................................................................................................59
Génération multiple ............................................................................................................60
Perso-dossiers : Organisez votre projet ............................................................................. 61
Gestionnaire de sources (GDS) ..........................................................................................62
Composant interne .............................................................................................................69
Composant externe .............................................................................................................72
Modes de génération ..........................................................................................................80
Les Centres de Contrôle .....................................................................................................85
Gestion des exigences ........................................................................................................86
Centre de Suivi de Projets .................................................................................................. 87
Gestion des suggestions et des incidents ........................................................................88
Gestion des règles métier ..................................................................................................89

PARTIE 3 - BASES DE DONNÉES


Page de mise en pratique Analyse : Structure de la base de données ......................................................................93
Les différents types de fichiers accessibles ...................................................................102
HyperFileSQL Classic ........................................................................................................104
HyperFileSQL Client/Serveur ...........................................................................................105
Cluster HyperFileSQL Client/Serveur ..............................................................................106
HyperFileSQL : les fichiers créés physiquement .............................................................107
Associer les champs et les données ...............................................................................108
Les requêtes ......................................................................................................................110
Les requêtes intégrées .....................................................................................................111
Les champs Table/Zone Répétée ....................................................................................112
Réplication universelle .....................................................................................................114
Architecture 3-tier .............................................................................................................115

4 Introduction Sommaire 5
PARTIE 4 : CONCEPTS AVANCÉS
RAD RID .............................................................................................................................119
Le modèle UML ................................................................................................................ 120
Groupware utilisateur .......................................................................................................127
Applications multilingues .................................................................................................135
Optimiser une application ................................................................................................141
Livrer "Etats et Requêtes".................................................................................................143
MCU : Macro Code Utilisateur ..........................................................................................144
Les différents tests disponibles .......................................................................................146
Le débogueur ....................................................................................................................147
Tests unitaires Tests automatiques .................................................................................149
PARTIE 1
Tests unitaires sur l’exécutable .......................................................................................150

PARTIE 5 : INSTALLATION
Le Framework WinDev ......................................................................................................159 Notions de base
Les différents modes d’installation d’une application ...................................................160
Surveillez vos applications ...............................................................................................169

PARTIE 6 : COMMUNICATION
Gestion des emails ...........................................................................................................173
Transfert de fichiers par FTP ............................................................................................175
Gestion des sockets..........................................................................................................177
WinDev et la téléphonie....................................................................................................179
Les Webservices ...............................................................................................................180

PARTIE 7 : ANNEXES
Composants livrés avec WinDev ......................................................................................183
Exemples livrés avec WinDev ...........................................................................................187

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 regroupe la description des fichiers de données de 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.

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


Le projet en pratique passent du vert au rouge à chaque fois qu’une par-
tie du projet nécessite une intervention.
nêtres, états, requêtes, …) et leurs enchaînements.
Pour afficher le graphe de votre projet :
Pour afficher le tableau de bord de votre projet : 1. Affichez le menu contextuel du projet dans la
1. Affichez le menu contextuel du projet dans la barre des documents ouverts.
1 Présentation barre des documents ouverts. 2. Sélectionnez l’option "Afficher le graphe du pro-
2. Sélectionnez l’option "Afficher le tableau de jet".
bord".
La première étape de la description d’une applica- du projet spécifiées lors de la création du projet 3.3 Les éléments du projet
tion consiste à créer un projet. pourront être modifiées par la suite. Le projet est composé de fenêtres, d’états, de re-
Lors de la création d’un projet, plusieurs questions Remarque : Les analyses sont présentées en détail quêtes, de collections de procédures, …
vous sont posées afin que votre projet corresponde dans le chapitre "Analyse : Structure de la base de Pour connaître la liste des éléments d’un projet,
à toutes vos attentes. Toutes les caractéristiques données", page 93. sous le volet "Projet", dans le groupe "Projet", cli-
quez sur .
Cette option permet de :
2 Création du projet • ajouter à votre projet des éléments appartenant
à des projets accessibles depuis votre poste. Les
Pour créer un projet : les noms de champs, de fenêtres, … fichiers correspondants ne seront pas déplacés
Pour plus de détails, consultez le paragraphe “Ta- dans le répertoire de votre projet.
1. Cliquez sur parmi les boutons d’accès rapide • la charte graphique.
bleau de bord du projet”, page 57. • supprimer des éléments de votre projet. Les
de WinDev. Dans la roue qui s’affiche, cliquez sur • les langues gérées. Ces langues seront propo-
fichiers correspondants ne sont pas supprimés
"Projet". L’assistant de création de projet se lance. sées par défaut dès qu’une option pourra être
3.2 Graphe du projet physiquement.
2. Spécifiez les différentes options du projet. Les traduite dans un champ, une fenêtre, un état, ...
principales options sont les suivantes : 3. Indiquez si le projet doit afficher une fenêtre de L’éditeur de projet permet de visualiser de manière Pour rechercher rapidement un élément de votre
type "Le saviez-vous". graphique les différents éléments du projet (fe- projet, utilisez la combinaison de touches "CTRL +
• le nom et l’emplacement. Ces options ne seront
4. Indiquez si le projet doit utiliser une base de E" depuis n’importe quel éditeur.
pas modifiables. Le projet correspond à un fichier
".WDP". Tous les éléments associés au projet se- données ou non. Si oui, la base de données peut
ront créés dans le répertoire spécifié. exister ou être nouvelle.
5. Validez l’assistant. Le projet créé devient le pro- 4 Manipulations du projet
• le type de projet. De nombreuses possibilités
sont offertes : application, composant, applica- jet en cours.
tion Java, … Ces options sont détaillées plus tard. Remarques : Voici les principales manipulations pouvant être • Copier ou supprimer un projet.
En règle générale, un projet permet de générer réalisées sur un projet : • Renommer un projet.
• Si vous avez demandé la création d’une base
une application (exécutable). de données, l’assistant correspondant se lance • Archiver un projet. Pour plus de détails sur ces fonctionnalités, consul-
• si le projet va être manipulé par plusieurs déve- automatiquement. • Restaurer un projet. tez l’aide en ligne.
loppeurs. Il est possible d’utiliser le groupware • L’ensemble des informations fournies peut être • Dupliquer un projet.
développeur ou le gestionnaire de sources (GDS) modifié dans la description du projet. Pour affi-
pour partager le projet. cher la fenêtre de description du projet, sous le
• la charte de programmation. Cette charte per- volet "Projet", dans le groupe "Projet", cliquez sur 5 Dossier du projet
met de préfixer automatiquement les variables, "Description".
WinDev permet d’imprimer différents dossiers 5.1 Type de dossier
détaillant l’ensemble des éléments (fenêtre, état,
3 Tableau de bord et graphe du projet fichier de données, rubrique, …) du projet. Pour
Plusieurs types de dossier sont proposés :
imprimer ces dossiers : • Dossier Analyse / Fichier de données / Re-
quêtes : Contient les informations sur l’analyse,
• sous le volet "Accueil", dans le groupe "Général",
3.1 Tableau de bord Le responsable fonctionnel cherche à savoir
déroulez l’icône et sélectionnez l’option "Im-
les fichiers de données et les requêtes du projet.
quelles sont les évolutions demandées par les uti- • Dossier IHM (Interface Homme Machine) :
Tout responsable de projet cherche à avoir une vi- primer le dossier du projet". Le dossier peut
lisateurs. Contient uniquement la représentation des fe-
sion globale et synthétique de l’état d’avancement contenir l’ensemble des caractéristiques du pro-
des projets qu’il dirige. Le développeur cherche à lancer directement et jet. nêtres et des états, ainsi que leur enchaînement.
rapidement les éléments du projet, les codes les • Dossier Code : Contient l’ensemble des traite-
Tout responsable qualité veut connaître le nombre • sous le volet "Accueil", dans le groupe "Général",
plus utilisés, … ments de tous les objets du projet.
et l’importance des bogues des projets et en suivre cliquez sur l’icône . Le dossier est alors
l’évolution. Le tableau de bord permet de répondre à tous ces constitué uniquement des caractéristiques de • Dossier Technique : Contient les traitements et
souhaits. Le tableau de bord propose différents l’élément (fenêtre, état, requête, …) en cours. les descriptions techniques de tous les objets du
voyants permettant d’obtenir une vision globale projet.
des différents indicateurs. Les différents voyants
10 Partie 1 : Notions de base Partie 1 : Notions de base 11
• Dossier Complet : Contient toutes les informa- 3. A l’aide de la souris :
tions du projet. Ce dossier correspond à la fusion • déplacez ces bordures à l’endroit désiré en main-
de tous les types de dossiers. tenant le bouton de la souris enfoncé (la couleur
du curseur de la souris est noire).
Type d’édition du dossier
• choisissez le nombre de pages sur lesquelles la
Le dossier peut au choix être : représentation graphique doit être imprimée (le
• imprimé, curseur de la souris se transforme en double-
• exporté vers un document RTF, vers un fichier flèche Nord-Ouest / Sud-Est).
XML,
Si le format d’impression est modifié (passage de
• exporté vers un fichier HTML (un navigateur inter- A4 à A3 par exemple dans les propriétés de l’im-
net doit être installé sur le poste en cours), primante), il est possible d’adapter le format des
• exporté vers un fichier texte. pages du dossier. Pour cela :
1. Définissez des zones d’impression.
5.2 Zones d’impression 2. Affichez les options de mise en page du dossier :
Si des représentations graphiques (graphe du pro- sous le volet "Accueil", dans le groupe "Général",
jet, MLD, diagrammes UML, …) doivent être impri- déroulez l’icône et sélectionnez l’option "Mise
mées, il est nécessaire de configurer les zones en page du dossier".
d’impression avant d’imprimer le dossier. 3. Cochez l’option "Adapter la taille des zones d’im-
pression des documents ouverts".
Pour spécifier les zones d’impression de la repré- 4. Lancez l’impression du dossier.
sentation graphique en cours :
1. Sous le volet "Affichage", dans le groupe "Edi-
tion", cochez l’option "Zones d’impression". Des
bordures représentant les zones imprimables dans
le dossier apparaissent sous l’éditeur en cours.
2. Réduisez l’affichage de la représentation gra-
phique (option "Zoom" du volet "Affichage" ou [Ctrl]
+ Roulette de la souris) pour visualiser l’ensemble
du graphe.

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 :

Détail des différentes phases :


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

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

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.
• Dans la roue qui s’affiche, survolez "Fenêtre" et cliquez 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élec-


tion de fichiers est définie.

2. Utilisation d’une fenêtre interne.


Dans cet exemple, chaque fenêtre de description d’un polo permet d’ouvrir la fenêtre de Pour utiliser une fenêtre interne :
description d’un autre polo. Toutes les fenêtres ouvertes restent accessibles.
• Créez un champ de type fenêtre interne.
• Dans la fenêtre de description du champ,
Fenêtres MDI
sélectionnez la fenêtre interne à utiliser.
Dans une application MDI, toutes les fenêtres de l’application sont affichées dans une • Validez la fenêtre de description du
seule et même fenêtre principale : la fenêtre mère MDI. Les fenêtres des applications champ.
MDI peuvent donc être de deux types :
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 program-
mation 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 rec-
affichée dans la fenêtre mère. C’est dans tangulaire et aucune surcharge n’est
ces fenêtres que l’utilisateur pourra saisir possible. Pour réaliser des surcharges,
des informations. il est conseillé d’utiliser des modèles de
champs.

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


Modèles de
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 27.
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- 6. Spécifiez le nom de la fenêtre. La fenêtre corres-
nêtres : pond à un fichier ".WDW". Par défaut, ce fichier sera
• Fenêtres vierges, sans aucun champ. créé dans le répertoire principal du projet. Ce nom
• Fenêtres créées par le RAD / RID. sera utilisé pour manipuler la fenêtre.
7. Créez les champs dans la fenêtre.
• Fenêtres internes. Ces fenêtres pourront être
utilisées dans des champs de type "Fenêtre In- Remarque : Les principales caractéristiques des
terne". fenêtres sont détaillées dans l’aide en ligne. Les
différents types de champs sont présentés dans le
• Fenêtres basées sur un modèle de fenêtres. chapitre “Les champs en pratique”, page 39.
• Fenêtres importées à partir d’une application
non WinDev. 1.2 Fenêtre interne
Ce paragraphe détaille uniquement la création de Une fenêtre interne est une fenêtre sans barre de
Utilisation du modèle dans plusieurs fenêtres. fenêtres vierges, internes ou basées sur un mo- titre, ni barre de message qui sera directement in-
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. cluse dans les autres fenêtres de votre application
grâce au champ "Fenêtre interne".
1.1 Création de fenêtres vierges Ainsi, il est possible d’inclure une fenêtre (et son
Remarque : La programmation associée aux éléments du modèle peut être directement Pour créer une fenêtre vierge : code) dans une autre fenêtre.
réalisée dans le modèle. 1. Cliquez sur parmi les boutons d’accès ra- Pour créer une fenêtre interne :
Les caractéristiques des éléments peuvent être désolidarisées du modèle. Par exemple, pide de WinDev. Dans la roue qui s’affiche, cliquez 1. Cliquez sur parmi les boutons d’accès ra-
désolidariser la position d’un champ du modèle pour positionner le champ ailleurs tout sur "Fenêtre". L’assistant de création de fenêtre se pide de WinDev. Dans la roue qui s’affiche, cliquez
lance. sur "Fenêtre". L’assistant de création de fenêtre se
en conservant les autres évolutions sur le champ (code, style, …). On parle alors d’héri- 2. Choisissez le type "Vierge". lance.
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. 2. Sélectionnez l’onglet "Fenêtre interne".
4. Validez la création de la fenêtre. Une fenêtre 3. Sélectionnez le type de fenêtre voulu et le gaba-
vierge est créée. rit associé.
5. Enregistrez la fenêtre (CTRL + S). 4. Validez.

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


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

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


Lors du redimensionnement de la fenêtre, seules 4.3 Fenêtre détourée 6 Grisage automatique des fenêtres
les zones 2, 4, 6, 8 et 5 changent de taille pour oc-
cuper 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
Le mode 9 images permet de gérer le fonctionne- effectuée dans l’onglet "Image" de la fenêtre de
ment de chaque zone lors du redimensionnement description de la fenêtre.
de la fenêtre. Etape 2 : Une fenêtre vous demande de confirmer
Pour chaque zone : ou d’annuler ces modifications. La fenêtre princi-
pale (en arrière-plan) est devenue inaccessible. Elle
• soit en répétant l’image qui compose la zone,
s’est grisée automatiquement. Vous savez immé-
• soit en étirant l’image qui compose la zone. diatement quelle fenêtre doit être utilisée.
Les fonctionnalités du GFI sont disponibles au ni-
5 Ouvrir une fenêtre "popup" veau du projet ou personnalisables au niveau de
chaque fenêtre.
Etape 1 : Vous modifiez des informations concer- Il est également possible d’agir sur le GFI par pro-
5.1 Présentation Par exemple : nant un client puis vous cliquez sur le bouton "Vali- grammation.
der". Pour plus de détails, consultez l’aide en ligne.
WinDev permet d’ouvrir des fenêtres de type "po-
pup".
Une fenêtre "popup" correspond à une fenêtre de 7 Fenêtre interne
taille réduite s’ouvrant au-dessus de la fenêtre en
cours. Généralement, cette fenêtre permet à l’uti-
lisateur de réaliser une sélection. Cette fenêtre Les fenêtres internes permettent de partager dyna- nêtres de votre application grâce au champ de type
renvoie donc à la fenêtre principale la valeur sélec- miquement une même partie d’interface au sein "Fenêtre interne".
tionnée par l’utilisateur. Cette fenêtre se ferme au- d’une ou de plusieurs applications. Remarque : La fenêtre à fusionner peut être issue
Remarque : Les caractéristiques d’une fenêtre po-
tomatiquement dès qu’un clic gauche de souris est L’interface à utiliser plusieurs fois est créée dans d’un composant.
pup sont les suivantes :
effectué (à l’intérieur ou non de la fenêtre popup). une fenêtre de type "Fenêtre Interne".
• ouverture par défaut sous le champ qui ouvre la Pour plus de détails, consultez l’aide en ligne.
fenêtre (ou au-dessus ou à gauche du champ si la Cette interface est utilisée dans les différentes fe-
place disponible sous le champ est insuffisante).
La position d’ouverture peut être modifiée par
programmation. 8 Modèles de fenêtres
• fermeture automatique dès que la fenêtre n’a
plus le focus ou dès l’appel de la fonction Ferme. WinDev permet de créer des modèles de fenêtres. Un modèle de fenêtres permet de respecter la
• seule l’icône de fermeture apparaît dans la barre Ces modèles contiennent tous les éléments gra- charte graphique définie pour une application.
de titre de la fenêtre (si la barre de titre a été défi- phiques et le code communs à l’ensemble des L’utilisation de modèles de fenêtres dans vos appli-
nie dans le style). fenêtres de votre application. cations permet de :
Les modifications effectuées dans un modèle de • simplifier la création des fenêtres de l’applica-
fenêtres sont automatiquement reportées sur tion.
toutes les fenêtres utilisant ce modèle. • simplifier la mise en page des fenêtres de l’appli-
cation.
26 Partie 1 : Notions de base Partie 1 : Notions de base 27
• simplifier la mise à jour de la charte graphique de Par défaut, toute modification effectuée dans le Il est ainsi possible de gérer par exemple : • le bouton droit enfoncé, relâché, avec double-clic,
l’application. modèle est reportée dans les fenêtres l’utilisant. • le survol du champ par la souris, • la roulette de la souris, …
Il est cependant possible dans une fenêtre spéci- • le bouton gauche enfoncé, relâché, avec double-
Un modèle de fenêtres se crée aussi simplement fique de gérer des cas particuliers en surchargeant
qu’une fenêtre. Pour créer une fenêtre en utilisant clic,
les éléments du modèle.
un modèle, il suffit de choisir l’option "basée sur un
modèle". Pour plus de détails, consultez l’aide en ligne.
10 Les menus contextuels
9 Traitements associés aux fenêtres Un menu contextuel peut être ouvert par l’utilisa-
teur grâce à un clic droit de la souris. Ce menu Par exemple :
permet aux utilisateurs d’accéder plus facilement
9.1 Traitements gérés par défaut • l’utilisateur a cliqué sur une autre fenêtre de aux fonctionnalités spécifiques d’un champ d’une
l’application, fenêtre ou d’une fenêtre.
WinDev gère par défaut les traitements suivants
(ordre d’apparition sous l’éditeur de code) : • la fonction RepriseSaisie a été exécutée depuis WinDev permet de gérer deux types de menu
une autre fenêtre de l’application. contextuel :
• Déclarations globales :
Ce traitement ne sera pas exécuté : • les menus contextuels systèmes gérés par Win-
Déclaration des variables globales à la fenêtre
• si la fonction RepriseSaisie vers une autre dows. Ces menus contextuels s’affichent lors
• Initialisation :
fenêtre a été exécutée dans le code d’initialisa- d’un clic droit sur certains types de champs
Exécuté lors de l’ouverture de la fenêtre, avant le
tion de la fenêtre, (champ de saisie, table, …). Pour plus de détails,
code de prise de focus. Le traitement d’initialisa-
tion des champs de la fenêtre est exécuté après • si la fonction Ferme est appelée dans le code consultez le paragraphe "Menu contextuel sys-
ce code. d’initialisation de la fenêtre, tème par défaut", page 30.
• Fermeture : • si l’utilisateur clique sur une fenêtre d’un autre • les menus contextuels personnalisés gérés par
Exécuté lors de la fermeture de la fenêtre. programme puis re-clique sur la fenêtre initiale. WinDev. Ces menus sont créés sous l’éditeur de 10.1 Fenêtres d’édition des menus contex-
Remarque : une reprise de saisie sur un des • Modification de la taille : fenêtres et peuvent être manipulés par program- tuels
champs de la fenêtre dans ce code empêche la Exécuté dans les cas suivants : mation. WinDev permet de créer et de modifier des menus
fenêtre de se fermer. • iconisation de la fenêtre, WinDev permet de créer des menus contextuels contextuels personnalisés dans une fenêtre d’édi-
• Prise de focus : • agrandissement ou changement de taille de la personnalisés et d’associer ces menus contex- tion particulière. Pour mieux comprendre la gestion
Exécuté lorsque la fenêtre prend le focus (sa fenêtre, tuels : des menus contextuels personnalisés, voici le voca-
barre de titre est active) et qu’une autre fenêtre bulaire lié à cette fenêtre d’édition :
• restauration de la fenêtre après iconisation. • soit à un ou plusieurs champs d’une fenêtre.
de l’application perd le focus :
• A chaque modification : • soit à une fenêtre.
• l’utilisateur a cliqué sur une autre fenêtre de Exécuté lorsqu’un des champs de la fenêtre est
l’application, modifié (saisie effectuée par l’utilisateur par
• la fonction RepriseSaisie a été exécutée depuis exemple).
une autre fenêtre de l’application. • Affectation de la propriété ..Valeur (fenêtre
Ce traitement ne sera pas exécuté : interne uniquement)
• lors de l’ouverture de la première fenêtre du Exécuté lors de l’utilisation de la propriété ..Va-
projet, leur en affectation sur le champ Fenêtre Interne.
• lors de l’exécution de la fonction OuvreFille ou • Récupération de la propriété ..Valeur (fenêtre
OuvreSoeur à partir de la fenêtre en cours, interne uniquement)
• si la fonction Ferme est appelée dans le code Exécuté lors de l’utilisation de la propriété ..Va-
d’initialisation de la fenêtre, leur en lecture sur le champ Fenêtre Interne.
• si l’utilisateur clique sur une fenêtre d’un autre
programme puis re-clique sur la fenêtre initiale.
9.2 Traitements optionnels
• Perte de focus : Plusieurs traitements optionnels peuvent être gé-
Exécuté lorsque la fenêtre perd le focus lors du rés.
passage à une autre fenêtre. Ce traitement est Pour gérer un traitement optionnel, il suffit de le
toujours appelé avant le traitement de prise de sélectionner dans la barre d’icônes de la fenêtre de
focus d’une autre fenêtre dans les cas suivants : code.
• fermeture de la fenêtre (avant le traitement de
fermeture),

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
contextuel personnalisé n’est associé au champ) : Remarque : Le menu contextuel système affiché
• un champ de saisie : dépend de l’ActiveX associé au champ.

• un champ HTML :

Pour plus de détails sur la traduction de ce 11.2 Vocabulaire associé aux menus prin-
menu, consultez l’aide en ligne. cipaux
• une 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-
tique que le menu soit un menu contextuel ou un lées par programmation grâce aux propriétés dis-
12.2 Manipuler les options de menu sous Le type de la case permet d’afficher :
menu principal. ponibles sur les cases des barres de message.
l’éditeur • 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
les utiliser en fonction de l’opération à réaliser : Calendrier
Vous voulez… Utilisez un champ…
Afficher du texte, un titre, …
Afficher une image (Photo, …), une animation ou utiliser
Libellé
des fonctions de dessin

Sélectionner une valeur parmi une liste (Pays, Ville, …) Image


Sélecteur

Combo
Afficher le contenu d’un fichier de données en table (liste
de clients, détail d’une commande, ...).
Liste

Sélectionner plusieurs valeurs parmi une liste (les destina-


taires d’un message, …)
Interrupteur
Table

Liste

Sélectionner une ou plusieurs valeurs parmi une liste gra-


phique (Trombinoscope, …)
Répéter des champs dans une fenêtre (Catalogue produits
avec la photo, …)
Liste Image

Sélectionner une valeur dans une plage prédéfinie Zone répétée


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


Champ de Afficher un code-barres
saisie

Programmer une action dans une fenêtre (afficher une


autre fenêtre, lancer une impression, …) Code-barres

Bouton

Afficher des événements sur une période de temps


Afficher des informations hiérarchisées (répertoire)

Arbre

Table hiérar- Agenda


chique

Afficher un histogramme, une courbe, un camembert, …

Représenter des données de manière pondérée

Graphe

TreeMap

Afficher une progression

Jauge

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


Saisir ou afficher des données HTML
Champ de
Les champs en pratique
saisie HTML 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.
Champ HTML champs peuvent être créés directement par le volet
"Création" du ruban WinDev.
Permettre la sélection d’intervalle ou de zoom Range slider
1 Créer un champ
Afficher un contrôle ActiveX
ActiveX
1.1 Les différents types de champs d’une 1.2 Créer un nouveau champ
fenêtre Pour créer un champ :
Les champs disponibles sous l’éditeur de fenêtres 1. Sélectionnez le type de champ à créer grâce à
de WinDev sont les suivants : l’icône correspondante dans le volet "Création" du
• Champ de saisie, • Table, menu de WinDev.
2. La forme du nouveau champ apparaît sous le
• Libellé, • Table hiérarchique,
curseur de la souris.
• Bouton, • Arbre, 3. Cliquez dans la fenêtre à la future position de
• Image, • Organigramme, création du champ. Le champ est automatique-
• Sélecteur, • Jauge, ment créé.
• Interrupteur, • Zone répétée, Remarque : D’autres modes de création sont dis-
• Liste, • Zone multiligne, ponibles. Pour plus de détails, consultez l’aide en
ligne.
• Combo, • Ascenseur,
• Liste image, • Potentiomètre, 1.3 Créer un champ associé à une rubrique
• Boîte à outils, • Spin, Tous les champs d’une fenêtre peuvent être asso-
• Tiroir, • TimeLine, ciés à une rubrique de fichier de données, SAUF :
• Web Caméra, • Onglet, • Bouton • Xaml
• Champ Conférence, • Ruban, • Forme • Carrousel
• Champ OLE, • Champ fenêtre • Onglet • Cube
• ActiveX, interne,
• Barre d’outils • Champ HTML
• Forme, • Barre d’outils,
• Code-barres, • Séparateur, Pour créer un champ associé à une rubrique (ou
• Champ HTML, • Graphe, récupérer une rubrique), plusieurs méthodes sont
• Superchamp, • Carrousel, disponibles :
• Agenda, • Cube, • Drag and Drop depuis le volet "Analyse".
• Planning, • Xaml, • Utilisation de l’onglet "Fichier" de la fenêtre de
• Calendrier, description du champ.
• Notation,
• Tableau croisé dyna- • Fenêtre interne,
mique, • Modèle de champs.

Tous les champs peuvent bien sûr être manipulés


par programmation.
Pour plus de détails sur chaque type de champ,
leurs principales caractéristiques, ainsi que leur
programmation en WLangage, consultez l’aide en
ligne.

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 3 Manipuler les champs sous l’éditeur
• 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é- 3.1 Les poignées des champs • Les poignées noires permettent de visualiser et
ristiques présentes dans les différents onglets, de redimensionner un champ.
Lorsqu’un champ vient d’être créé ou lorsqu’il est
consultez l’aide contextuelle des fenêtres de des- sélectionné, il s’affiche avec des poignées. Les poi- • Les poignées blanches permettent unique-
cription. gnées permettent de : ment de visualiser un champ. Par exemple, lors
de la sélection de plusieurs champs, les poi-
• visualiser la taille d’un champ,
gnées blanches indiquent qu’il est impossible
• modifier la taille d’un champ. de modifier la taille des champs sélectionnés.
Les couleurs des poignées permettent de connaître Ce type de poignées est aussi affiché lorsqu’une
les actions réalisables : fenêtre est en lecture seulement pour le déve-

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


loppeur : les champs ne peuvent pas être modi- • Utiliser un champ hors fenêtre. Ce champ sera Par exemple, dans le cas d’une fenêtre :
fiés. visible uniquement en édition et ne sera pas vi- Repères
• Les poignées grises indiquent que le premier sible en exécution.
champ sélectionné lors d’une sélection multiple.
Ce champ sera le champ de référence.
Repères
3.2 Manipulations disponibles de bor-
dure
L’éditeur de fenêtres permet de :
• Sélectionner un ou plusieurs champs (par Guides
exemple à l’aide du lasso)
• Regrouper des champs sélectionnés
• Déplacer un champ
• Modifier le libellé d’un champ
• Afficher une bulle d’aide avancée lors du survol Remarque : Un champ "hors fenêtre" permet par
d’un champ, contenant : le nom du champ, sa exemple de :
position, sa taille, son ancrage, son état initial. • conserver un champ d’une fenêtre sans le visua-
liser lors de l’exécution. Il est ainsi possible d’uti- déplacé avec les champs présents dans la fenêtre.
liser le contenu du champ en programmation Afficher les règles
(comme une variable). Pour afficher les règles, sous le volet "Affichage", 4.4 Correcteur d’interface avancé
• afficher de nouveaux champs dans une fenêtre dans le groupe "Aide à l’édition", cochez l’option
Le correcteur d’interface avancé est un outil per-
lors de la modification de la taille de cette fe- "Règles". Deux types de guides peuvent alors être
mettant d’harmoniser la disposition des champs
nêtre. utilisés :
dans les différentes fenêtres d’une application.
• les guides, permettant d’aligner et de disposer
Le correcteur d’interface avancé propose pour la
les champs à l’intérieur des fenêtres.
4 Alignement des champs fenêtre en cours ou uniquement pour les champs
• les guides de bordure, permettant de déterminer sélectionnés, d’appliquer des règles de présen-
une bordure de taille identique de chaque côté tation d’interface issues du standard Windows :
L’alignement des champs permet d’obtenir des in- 4.1 Les règles de la fenêtre. alignement des champs, normalisation de la taille
terfaces "professionnelles" et harmonieuses. Pour Remarque : L’option "Guide visible" du menu des boutons, …
Sous l’éditeur de fenêtres, il est possible de faire contextuel des règles permet de visualiser la fe-
vous aider à concevoir des interfaces standard,
apparaître des règles d’alignement. nêtre avec ou sans ses guides. Visibles ou non, les 4.5 Les options d’alignement
WinDev vous propose les outils suivants :
Dans ces règles, des guides magnétiques sont guides sont toujours actifs : un champ déplacé vers
• les règles. Pour aligner plusieurs champs, WinDev met à votre
affichés : tout champ approché d’un guide est auto- un repère est automatiquement accolé à celui-ci.
• la grille. matiquement "attiré" par celui-ci. Ce magnétisme disposition :
• le correcteur d’interface en temps réel (proposé permet d’utiliser les guides pour faciliter le posi- Manipuler les repères • soit un alignement prédéfini (disponible sous le
automatiquement lors d’un positionnement d’un tionnement, l’alignement ou le redimensionnement Les repères sont facilement manipulables à l’aide volet "Alignement" ou sous le volet "Modification",
champ). des champs de la fenêtre. de la souris dans l’éditeur. Lorsque la souris sur- dans le groupe "Alignement").
• le correcteur d’interface avancé. vole un repère, le curseur se transforme en une • soit un alignement personnalisé (disponible sous
• les options d’alignement. double flèche. le volet "Alignement", dans le groupe "Autres ali-
gnements").
• le zoom paramétrable. 4.2 Grille magnétique L’alignement personnalisé permet d’utiliser des
La grille magnétique permet de placer des repères propriétés spécifiques d’alignement. Lors de l’ali-
(verticaux et horizontaux) dans la fenêtre. Les gnement personnalisé, il est possible de définir :
champs créés viennent se placer contre ces re- • l’alignement horizontal ou vertical : les champs
pères, comme si les champs et les repères étaient peuvent être alignés à gauche en fonction du dé-
magnétisés. La grille magnétique permet ainsi but du champ ou du début de la zone de saisie.
d’aligner les champs selon les repères. Ils peuvent aussi être alignés à droite en fonction
de la fin du champ ou de la fin de la zone de sai-
4.3 Correcteur d’interface en temps réel sie.
Lors du déplacement d’un champ dans une • l’espacement uniforme : l’espacement entre
fenêtre, le correcteur d’interface en temps réel les champs est adapté pour être le même entre
affiche automatiquement des guides. Ces guides chaque champ (horizontalement ou verticale-
sont magnétisés et permettent d’aligner le champ ment).

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


• la taille : la taille des champs sélectionnés est choix : Ces paramètres peuvent être configurés : Hauteur : Le champ s’étire vers le bas
automatiquement adaptée pour obtenir des • le premier champ sélectionné (celui qui a les • sous l’éditeur de fenêtres. lorsque la hauteur de la fenêtre s’agran-
champs de même hauteur et/ou de même lar- poignées blanches) • par programmation grâce aux propriétés WLan- dit. Pour faire varier la vitesse d’étire-
geur. • le dernier champ sélectionné gage. ment du champ par rapport à la fenêtre,
• le champ de référence : pour l’alignement et la • le plus grand champ sélectionné utilisez le taux d’ancrage en hauteur.
taille des champs, le champ de référence est au
• le champ situé le plus en haut à gauche des Largeur et Hauteur : Le champ s’étire
champs sélectionnés vers la droite et vers le bas lorsque la
fenêtre s’agrandit. Pour faire varier la vi-
tesse d’étirement du champ par rapport
5 Options d’édition des champs dans une fenêtre à la fenêtre, utilisez le taux d’ancrage en
hauteur et le taux d’ancrage en largeur.

Les options d’édition permettent de paramétrer : 5.2 Verrouiller / Déverrouiller un champ Hauteur et Droite : Le champ s’étire
• les options d’affichage. vers le bas et se déplace vers la droite
Pour verrouiller / déverrouiller un champ sous l’édi- lorsque la fenêtre s’agrandit.
• le magnétisme des champs. teur de fenêtres : Pour que le champ se déplace plus ou
• les opérations de clic et de double-clic sur les 1. Sélectionnez le champ sous l’éditeur. moins vite, utilisez le taux d’ancrage à
champs. 2. Sous le volet "Modification", cochez/décochez droite.
• les options de sélection des champs. l’option "Verrouillé". Pour faire varier la vitesse d’étirement
• la position de la fenêtre à son ouverture. Un champ verrouillé est un champ qui ne peut pas La taille des champs ancrés est automatiquement modifiée. du champ par rapport à la fenêtre, utili-
être sélectionné au lasso. Il est intéressant par sez le taux d’ancrage en hauteur.
Ces options d’affichage permettent de personnali-
exemple de verrouiller un onglet. Lorsque plusieurs
ser la manipulation des champs sous l’éditeur de Répartition Verticale : Cette option
sélections au lasso des champs affichés dans l’on- 6.1 Ancrer un champ sous l’éditeur
fenêtres. n’est disponible que lorsque plusieurs
glet sont effectuées, l’onglet n’est pas sélectionné
Pour afficher ces options, sous le volet "Affichage", automatiquement. Pour ancrer un champ : champs sont sélectionnés. Les options
cliquez sur l’icône de regroupement du groupe 1. Sélectionnez un ou plusieurs champs à ancrer. d’ancrage permettent alors de conser-
Toutes les autres manipulations sont possibles sur ver une répartition verticale des champs
"Options". 2. Définissez l’ancrage du / des champs :
un champ verrouillé. sélectionnés lorsque la fenêtre s’agran-
5.1 Rendre visible / invisible un champ • soit dans l’onglet "IHM" de la fenêtre de descrip-
5.3 Encadrer ou non un champ dit en hauteur.
tion du champ (option "Description" du menu
Pour rendre visible / invisible un champ sous l’édi- contextuel du champ). Bas : Le champ se déplace vers le bas
Pour encadrer ou non un champ sous l’éditeur de
teur de fenêtres : • soit grâce à l’option "Ancrage" du menu contex- lorsque la fenêtre est agrandie vers le
fenêtres :
1. Sélectionnez le champ sous l’éditeur. tuel (clic droit) du champ. bas. Pour que le champ se déplace plus
1. Sélectionnez le champ sous l’éditeur.
2. Sous le volet "Modification", dans le groupe "Aide 3. Dans cette fenêtre, choisissez le type d’ancrage ou moins vite, utilisez le taux d’ancrage
2. Sous le volet "Modification", cochez/décochez
à l’édition", cochez/décochez l’option "Visible (édi- à utiliser. Les options les plus courantes sont pré- en bas.
l’option "Encadré".
teur)". sentées sous forme d’icônes :
L’encadrement d’un champ permet de visualiser Largeur et Bas : Le champ s’étire vers la
plus facilement l’ensemble des champs présents Aucun ancrage : Le champ n’est pas droite et se déplace vers le bas lorsque
dans une fenêtre (notamment pour les champs modifié lorsque la taille de la fenêtre est la fenêtre s’agrandit.
image). modifiée. Aucune option d’ancrage n’est Pour que le champ se déplace plus ou
sélectionnée. moins vite, utilisez le taux d’ancrage
en bas.
Largeur : Le champ s’étire vers la droite
6 Ancrage des champs lorsque la fenêtre s’agrandit. Pour faire
Pour faire varier la vitesse d’étirement
du champ par rapport à la fenêtre, utili-
varier la vitesse d’étirement du champ
sez le taux d’ancrage en largeur.
Les fenêtres d’une application WinDev peuvent Le champ peut se déplacer vers la gauche et ou par rapport à la fenêtre, utilisez le taux
être redimensionnables à l’exécution. Grâce au vers le bas, s’agrandir en largeur et/ou en hau- d’ancrage en largeur. Droite et Bas : Le champ se déplace
mécanisme d’ancrage, la taille et la position des teur, … Droite : Le champ se déplace vers la vers la droite et vers le bas lorsque la
champs s’adaptent automatiquement lors d’un • le taux d’ancrage : paramètre permet de gérer le droite lorsque la fenêtre s’agrandit. Pour fenêtre s’agrandit. Pour que le champ
redimensionnement de la fenêtre. pourcentage de déplacement ou d’étirement du que le champ se déplace plus ou moins se déplace plus ou moins vite, utilisez
champ. Grâce à ce paramètre, il est possible par vite, utilisez le taux d’ancrage à droite. le taux d’ancrage en bas et le taux d’an-
La gestion de l’ancrage d’un champ est constituée crage à droite.
de deux paramètres : exemple de :
Centré en largeur : Le champ reste cen-
• l’ancrage du champ : ce paramètre permet de • laisser un champ centré en largeur dans la tré en largeur dans la fenêtre quelle que
définir la modification à appliquer au champ en fenêtre quelle que soit sa taille. soit la largeur de la fenêtre.
fonction du changement de la taille de la fenêtre. • agrandir proportionnellement certains champs
de la fenêtre.

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


Centré horizontal en bas : Le champ 6.2 Exemple de paramétrage de l’ancrage 7 Exécution automatique d’un bouton
reste centré en largeur dans la fenêtre des champs
quelle que soit la largeur de la fenêtre. Pour illustrer les possibilités d’ancrage des champs
Cependant, le champ est ancré en bas Pour forcer une action sur une fenêtre, il suffit de 7.2 Programmation
dans les fenêtres, voici un exemple détaillé. définir un bouton de cette fenêtre en mode "Exé-
et se déplace vers le bas lorsque la fe- Il est possible également de définir un bouton de
nêtre s’agrandit. Fenêtre originale : cution automatique". Le principe est très simple,
validation automatique grâce à la fonction DélaiA-
si au bout d’une certaine durée, aucun bouton de
Pour que le champ se déplace plus ou vantFermeture.
la fenêtre n’a été utilisé, le traitement du bouton
moins vite, utilisez le taux d’ancrage en "Exécution automatique" sera automatiquement 7.3 FAA : Fonctionnalité Automatique de
bas. exécuté. En exécution, la durée est automatique- l’Application
Centré en hauteur : Le champ reste cen- ment décrémentée. A zéro, le code du bouton est
automatiquement exécuté. Cette fonctionnalité est également directement ac-
tré en hauteur dans la fenêtre quelle cessible à l’utilisateur. Il peut demander à ce qu’un
que soit la hauteur de la fenêtre. 7.1 Mise en place bouton de l’application s’exécute automatiquement
Répartition Horizontale : Cette option au bout d’une durée spécifique.
Pour exécuter automatiquement un bouton d’une
n’est disponible que lorsque plusieurs fenêtre :
champs sont sélectionnés. Les options 1. Déterminez quel bouton de votre fenêtre doit
d’ancrage permettent alors de conserver être exécuté automatiquement.
une répartition horizontale des champs Fenêtre agrandie : 2. Dans la description de la fenêtre (onglet "Détail"
sélectionnés lorsque la fenêtre s’élargit. de la fenêtre de description), indiquez :
Centré vertical à droite : Le champ • le temps avant l’exécution automatique du bou-
reste centré en hauteur dans la fe- ton.
nêtre quelle que soit la hauteur de • le bouton à exécuter.
la fenêtre. Cependant, le champ est 3. En exécution, le temps restant est automatique-
ancré à droite et se déplace vers la ment affiché.
droite lorsque la fenêtre est élargie.
Pour que le champ se déplace plus ou
moins vite, utilisez le taux d’ancrage à
droite.
Centré : Le champ reste centré en hau-
teur et en largeur dans la fenêtre quelle
que soit la taille de la fenêtre.
4. Définissez si nécessaire les différents taux d’an-
crage. Pour obtenir ce résultat :
5. Validez. Si l’option "Ancrage" est activée (sous 1. Sélectionnez les boutons [<<] et [>>] : ces
le volet "Affichage", dans le groupe "Voir (tous les champs doivent être centrés en hauteur et en lar-
champs)"), les signes d’ancrage apparaissent auto- geur (option ).
matiquement dans le champ (flèches rouges). 2. Sélectionnez les deux listes : ces champs
Astuce : Si WinDev détecte un problème d’ancrage doivent être ancrés à droite, en largeur et en hau-
dans une fenêtre, un conseil est automatiquement teur (options "à droite", "en largeur" et "en hauteur"
affiché dans l’environnement de développement. cochées).
L’acceptation de ce conseil vous permet d’optimi- 3. Sélectionnez les 3 boutons : ces champs doivent
ser automatiquement l’interface de vos fenêtres s’étirer à droite proportionnellement (option
redimensionnables. ).
.

Remarque : Par programmation, il est possible de


configurer l’ancrage des champs grâce à diverses
propriétés WLangage.

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


Modèles de Edition :
champs Les états
WinDev permet de créer des modèles de champs. Un modèle de champs est un en- Un état permet d’obtenir une vue personnalisée d’informations : données saisies dans
semble de champs, réutilisable dans plusieurs fenêtres. la base de données, données présentes dans un fichier texte, données provenant d’un
Les modifications effectuées dans un modèle de champs sont automatiquement repor- champ Table, …
tées sur toutes les fenêtres utilisant ce modèle. Un état peut être affiché à l’écran, enregistré dans un fichier HTML, directement édité
Un modèle de champs permet de : sur une imprimante, …
• regrouper un ensemble de champs dans un but précis.
Un état offre la possibilité de résumer et de synthétiser les données.
• rendre les champs indépendants de la fenêtre les accueillant.
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 :
Définition d’un modèle de champs.
Le modèle est encadré d’un trait vert sous l’éditeur. • les données à imprimer sont issues d’une source de données (fichier décrit dans
une analyse, vue HyperFileSQL, requête, zone mémoire ou un fichier texte).
• l’état regroupe, trie et met en forme les données.
• l’exécution de l’état peut être dirigée vers l’écran, un fichier HTML, RTF, … ou vers
une imprimante.

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


Modèles
d’états
Dans une société, bien souvent, les impressions utilisent un look et une mise en page
unifiés : date en haut à droite dans un format spécifique, pied de page avec heure d’im-
pression et nom du fichier, logo en haut à gauche, …
Les modèles d’états permettent d’uniformiser simplement la mise en page de vos états.

PARTIE 2

Environnement de
développement
Définition d’un modèle d’états
sous l’éditeur d’états.

Utilisation du modèle dans différents états.


Les éléments appartenant au modèle sont identifiés par un carré jaune.
Les éléments du modèle surchargés sont identifiés par un carré bleu.

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. Dans ce cas, les éléments sont identifiés par un carré bleu.

50 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.

52 Partie 2 : Environnement de développement Partie 2 : Environnement de développement 53


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
Ces différents éditeurs vont permettre de créer les • de construire un modèle UML par rétro-analyse permettent d’améliorer l’ergonomie de vos fenêtres
• éditeur de requêtes. différents éléments (fenêtres, états, base de don- de votre projet. et de rendre vos applications conviviales.
• éditeur de fenêtres. nées, programmes, …) manipulés par l’application.
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. consultez le chapitre "Les fenêtres en pratique",
UML, consultez le chapitre "Le modèle UML", page
120. 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
(MCD) puis génération automatiquement de • Génération automatique d’une classe ou d’un telle qu’elle apparaîtra à l’utilisateur.
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.
Voici quelques caractéristiques de l’éditeur d’ana- champs.
• il permet de visualiser rapidement l’ensemble • Zoom sur l’éditeur d’UML.
des éléments d’un projet (principalement fe- lyses : • "Drag and Drop" permettant de copier, de coller
• Insertion de commentaires dans un modèle UML. ou de déplacer des champs d’une fenêtre à une
nêtres, états et requêtes). • Editeur WYSIWYG ("What You See Is What You
• Interaction des différents volets avec les diffé- autre.
• il permet de visualiser et de créer les enchaîne- Get"). Vous visualisez directement tous les fi-
rents éléments du modèle UML. • Gabarits de fenêtres et styles de champs pré-dé-
ments entre les fenêtres et les états. chiers de données et les liaisons de votre projet.
finis.
Voici quelques caractéristiques de l’éditeur de pro-
• Création et description des fichiers de données 2.4 Editeur de requêtes
et de leurs rubriques. • Présence de plusieurs catalogues d’icônes per-
jet : L’éditeur de requêtes permet de créer automati- mettant 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
• Récupération simplifiée de la description d’une Un assistant permet de créer une requête : il suffit • Saisie des libellés des champs directement dans
complet.
base de données externe (SQL Server, Oracle, ...). de choisir les rubriques à intégrer et de saisir les la zone de travail de l’éditeur.
• Création et visualisation des enchaînements
• Description indépendante des fichiers de don- conditions de sélection à l’aide de l’assistant. La • Gestion de l’aide contextuelle dans les fenêtres.
entre plusieurs éléments (fenêtres, états, ...) de
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.
• Cryptage des fichiers de données. SQL optimisé) et peut être testée immédiatement. • Interaction des différents volets avec les diffé-
• 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.
nées en cas de modification de la structure des les requêtes dans le "Guide de l’éditeur d’états et
2.2 Editeur d’analyses fichiers. de requêtes". 2.6 Editeur d’états
L’éditeur d’analyses permet de décrire les caracté- • 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. • Génération automatique de l’analyse. quêtes : des états à imprimer.
L’éditeur d’analyses supporte la méthode Merise • Zoom sur l’éditeur d’analyses. • Editeur WYSIWYG ("What You See Is What You Vous trouverez toutes les informations concernant
(MCD et MLD). Get"). Vous visualisez directement la requête et la création d’états imprimés dans le "Guide de l’édi-
• Insertion de commentaires dans le graphe de
son résultat. teur d’états et de requêtes".
L’éditeur d’analyses permet principalement deux l’analyse.
types de descriptions d’une base de données : • Interaction des différents volets avec les diffé-
• description directe de l’analyse liée au projet (ap- rents éléments de l’analyse.
pelée aussi Modèle Logique des Données (MLD))
54 Partie 2 : Environnement de développement Partie 2 : Environnement de développement 55
Tableau de bord
du projet
Voici quelques caractéristiques de l’éditeur d’états : • Compilation incrémentale.
• Editeur WYSIWYG ("What You See Is What You • Visualisation des différents traitements d’une
Get"). Vous visualisez directement les états tels fenêtre, d’un champ ou d’un état du projet.
qu’ils seront à l’impression. • Insertion de traitements spécifiques à l’utilisa-
• Création simplifiée d’un état sans une seule ligne tion de la souris ou du clavier. Le tableau de bord du projet est un élément indispensable à la gestion de projets Win-
de code. • Gestion de l’historique des modifications du code 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 avec possibilité de revenir en arrière.
ou de déplacer des champs d’un état à un autre.
cement d’un projet.
• Ouverture de plusieurs fenêtres de code (pour ef-
• Gabarits d’états et styles de champs pré-définis. fectuer des comparaisons de code par exemple).
• Correcteur d’interface en temps réel permettant • Zoom sur l’éditeur de code.
Le tableau de bord propose deux modes de visualisation du projet :
de simplifier le positionnement des champs. • Interaction des différents volets avec les diffé-
• Le mode Développeur.
• Utilisation d’un formulaire en fond d’un état. rents éléments de l’éditeur. • Le mode Chef de projet.
• Création d’étiquettes multi-colonnes. Pour plus de détails sur l’éditeur de code, nous Le tableau de bord en mode Développeur est composé :
• Edition d’un état au format HTML (pour le publier vous recommandons de lire le manuel "WLangage".
• de boutons s’allumant progressivement : Si les boutons ne sont pas allumés, tout va
sur Internet par exemple), ou au format RTF (pour
l’éditer avec un traitement de texte par exemple). 2.8 Editeur d’aide bien. Les boutons allumés en rouge signalent un problème potentiel.
• Zoom sur l’éditeur d’états. L’éditeur d’aide permet de créer un ensemble de • de listes d’éléments, permettant un accès rapide aux principales options du projet.
pages d’aide (fichier "CHM") documentant tout ou • de compteurs, permettant de gérer les nouveautés, les demandes, ...
2.7 Editeur de code partie de votre projet.
L’éditeur de code permet de saisir tous les traite- Pour chaque fenêtre de votre projet, une page
ments en WLangage (le langage de programmation d’aide est créée. Ces pages permettent de décrire
intégré à WinDev). Il permet par exemple de saisir les différentes manipulations pouvant être réali-
le code source : sées par les utilisateurs.
• des champs, Voici quelques caractéristiques de l’éditeur d’aide :
• des fenêtres, • Editeur WYSIWYG ("What You See Is What You
• des états Get"). Vous visualisez directement les pages
• des procédures locales et globales, d’aide de votre projet.
• des classes et des méthodes, ... • Compilation des pages d’aide et création d’un
CHM.
Voici quelques caractéristiques de l’éditeur de • Création d’un index et d’un sommaire.
code :
• Insertion d’images.
• Mise en forme automatique des informations sai-
sies. • Insertion de liens entre les pages d’aide.
• Complétion automatique. • Possibilité d’affichage des titres de pages dans
un bandeau.
• Glossaire sur les fonctions.
• Zoom sur l’éditeur d’aide.
• Détection immédiate des erreurs de frappe et
aide à la correction.

Le tableau de bord en mode Chef de projet permet d’obtenir des informations graphiques
sur l’état d’avancement du projet et la qualité du projet. Ce mode est recommandé lors
de l’utilisation du Suivi de Projets avec une gestion des exigences.

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


WinDev/WebDev/WinDev Configuration de
Mobile : 100% compatible 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 PDA ou de Smartphones, 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.

Lorsque vous ouvrez un projet dans un produit dif-


férent de celui qui a permis de le créer, un assis-
tant s’affiche, permettant de créer une configura-
tion 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
tous les éléments nécessaires au site WebDev.

Dans les phases d’utilisation de l’environnement,


il est possible de visualiser depuis chaque environ-
nement les éléments de chaque cible. Un projet
sous WinDev affiche les vignettes des pages Web-
Dev et 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.

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


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",
Fenêtres, états, requêtes se rapportant Fenêtres, états, requêtes se rapportant
cliquez sur "Génération Multiple". 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".

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


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
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
projets.

Si un élément (fenêtre, état, ...) du projet est extrait, ce même élément ne pourra pas être
Il est possible de partager les éléments présents dans le GDS : extrait une seconde fois.
• via un réseau local Après modification des éléments extraits, il est nécessaire de réintégrer ces éléments
• via Internet pour que le projet de base prenne en compte ces modifications. En effet, la base de
• en mode déconnecté. Dans ce cas, les éléments sur lesquels un travail spécifique sources conserve un historique de tous les éléments du projet depuis leur création.
devra être effectué seront extraits du GDS par exemple lors de la connexion du por-
table au système général. A chaque réintégration d’un élément, le numéro de version du projet de base est incré-
menté de 1.

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


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

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


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

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


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

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é-
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.
un projet présent dans la base de sources tout en Les différents éléments du projet sont manipu-
étant déconnecté de la base de source. lables directement.
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-
le groupe "Autres actions", déroulez "Travail à tance" et sélectionnez l’option "Se reconnecter
distance" et sélectionnez l’option "Se déconnec- et synchroniser". Il suffit alors de réintégrer les
ter pour une utilisation nomade". Il est conseillé éléments modifiés.
Pour plus de détails, consultez l’aide en ligne.

6 Administrateur du GDS

L’administrateur du GDS permet de manipuler di- (extraction, réintégration, partage, …).


rectement les différents projets inclus dans le ges- • lancer certains outils (options, maintenances, …).
tionnaire de sources. • restaurer une version d’un projet.
Il permet par exemple de : • voir les historiques et les différences de versions
• gérer les bases de sources (création, connexion à de sources.
une base de sources). • d’annuler les extractions (en mode administra-
• gérer les branches. teur).
• gérer les fichiers et les répertoires présents dans • de purger une base, la sauvegarder, la restau-
un projet de la base de sources (Ajouter, sup- rer, ...
primer, renommer, … des fichiers et des réper- • d’ajouter des fichiers de tout type dans la base
toires). Les éléments d’un composant interne peuvent être privés ou publics :
(.doc, .xls, .pdf, ...). • Les éléments privés ne pourront être manipulés que par les autres éléments du
• gérer les différents fichiers de la base de sources
composant.
• Les éléments publics pourront être manipulés par les éléments du projet utilisant le
composant interne.

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


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.

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


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 ront être manipulés ou non dans le projet WinDev
possible d’utiliser des composants internes. Pour intégrant ce composant.
plus de détails, consultez "Composant interne en Le composant est constitué de trois fichiers :
pratique", page 70.
• 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.
Ce fichier est nécessaire à
Un composant externe peut être redistribué à l’intégration du composant dans
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
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
cation. sant>.WDI (uniquement pour le
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-
tir d’un projet WinDev lié à un projet WebDev et / tion de l’application utilisant
le composant.
ou un projet WinDev Mobile.
• 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
par programmation. nel) (fichiers de données, fichiers
• le mode d’utilisation du composant (comment .INI, ...). Consultez "Le fichier
WDO", page 78.
utiliser le composant, les paramètres permettant
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 le volet "Assistants, un projet WinDev.
Exemples et Composants" (option "Composants"). • une brève description du composant.
72 Partie 2 : Environnement de développement Partie 2 : Environnement de développement 73
• une aide permettant de ré-utiliser ce composant. tions WLangage de gestion HyperFileSQL manipu- la liste des fichiers qui doivent être fournis avec Pour proposer une procédure d’installation pour un
Cette aide est générée à partir des commen- leront ces éléments dans un contexte indépendant. le composant. Pour plus de détails sur ce fichier, composant :
taires de code. Ces paramètres peuvent être modifiés dans les op- consultez le paragraphe "Le fichier WDO", page 1. Créez la procédure d’installation du composant :
Remarque : Par défaut, si un composant utilise tions avancées du composant. Pour plus de détails, 78. sous le volet "Projet", cliquez sur "Procédure d’ins-
une analyse, des fichiers de données, ... les fonc- consultez l’aide en ligne. tallation".
3.4 Distribution grâce à une procédure 2. Dans les différents plans de l’assistant, spéci-
d’installation fiez :
2 Créer et générer un composant externe La diffusion des composants à l’aide d’une pro- • le support d’installation du composant
cédure d’installation consiste à fournir aux utilisa- • les langues proposées dans la procédure d’ins-
teurs du composant WinDev, un programme d’ins- tallation
La création d’un composant doit être effectuée à La création d’un composant se fait en plusieurs
tallation. Ce programme installe tous les fichiers • le répertoire d’installation par défaut du compo-
partir d’un projet contenant tous les éléments né- étapes :
nécessaires à l’utilisation du composant dans le sant
cessaires au fonctionnement du composant. Il est 1. Développement des éléments du composant.
répertoire spécifié par l’utilisateur.
donc conseillé d’utiliser un projet spécifique pour 2. Création du composant. • les modules optionnels à installer. Il est possible
créer chaque composant. 3. Définition des options avancées du composant. Ce mode d’installation permet de gérer automati- de modifier la liste des fichiers à distribuer avec
4. Génération du composant. quement : le composant. Le fichier WDO sera automatique-
• le fichier WDO et l’installation des fichiers spé- ment créé à partir de cette liste.
Le composant peut alors être distribué et ré-utilisé. cifiques (fichiers de données, ...) utilisés par le • ...
composant.
• l’installation d’outils spécifiques (MDAC, driver Par défaut, les fichiers nécessaires à l’installation
3 Distribuer un composant externe d’un composant sont créés dans le sous-répertoire
ODBC pour HyperFileSQL, ...)
INSTALL COMPO du projet.
• la mise à jour automatique des fichiers de don-
nées utilisés par le composant (si nécessaire). Rappel : Lors de la création de l’installation d’une
3.1 Présentation il est nécessaire de créer un fichier <NomCompo- application, les fichiers nécessaires sont créés
sant>.WDO après la génération du composant. Ce • la désinstallation du composant.
Lorsque le composant a été créé, testé et généré, il dans le répertoire INSTALL du projet.
fichier contient la liste des fichiers externes (fichiers
peut être mis à disposition des développeurs. Plu-
de données, fichiers texte, ...) utilisés par le com-
sieurs méthodes sont possibles :
• utilisation directe du composant
posant. 4 Utiliser un composant externe dans une application
Ces fichiers référencés dans le fichier <NomCompo-
Exemple : le composant est directement utilisé
sant>.WDO seront automatiquement recopiés dans
sur le poste du développeur qui a créé le com- Un composant peut être ré-utilisé à tout moment tallation d’un composant, consultez "Distribuer un
le répertoire EXE du projet utilisant le composant
posant. dans n’importe quelle application WinDev : il suffit composant externe", page 74.
WinDev.
• distribution simple, en fournissant directement de connaître le répertoire des fichiers du compo- Si le composant a été publié et importé via le GDS,
les fichiers nécessaires. 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
Exemple : le composant est destiné à être utilisé du composant peut également se faire via le GDS. projet utilisant le composant.
à l’intérieur d’une même société, par plusieurs La distribution simple d’un composant consiste
à fournir uniquement les fichiers nécessaires au Lorsqu’une nouvelle version d’un composant est La création de l’exécutable (utilisant le composant)
développeurs. Dans ce cas, les fichiers néces-
fonctionnement du composant par simple copie. disponible, il suffit d’installer les nouveaux fichiers se fait de la même manière que pour une applica-
saires peuvent être copiés sur un disque réseau.
Les fichiers sont copiés dans un répertoire spéci- de cette mise à jour dans le répertoire d’installation tion classique WinDev. Les DLLs nécessaires au
• procédure d’installation du composant (avec une fique. Ce répertoire peut par exemple être présent du composant (selon le mode d’installation utilisé). fonctionnement du composant sont automatique-
procédure d’installation du composant identique sur un serveur réseau. Pour plus de détails sur les différents modes d’ins- ment détectées.
à celle utilisée pour les applications).
Exemple : Ce mode de distribution est conseillé Lors de l’importation du composant dans un pro-
si le composant est destiné à être vendu ou à jet WinDev, il suffit de sélectionner le fichier WDI
être distribué à grande échelle, avec des mises correspondant au composant dans le répertoire de 5 Déploiement d’une application utilisant un composant externe
à jour régulières. distribution.
Pour distribuer un composant, il est nécessaire de
3.2 Utilisation directe du composant 5.1 Présentation Lors du déploiement d’une application utilisant un
fournir :
composant, les fichiers suivants sont automatique-
Le composant est créé et utilisé sur le même poste. • Les fichiers automatiquement générés par Win- Le déploiement d’une application utilisant un ou
ment installés sur le poste de l’utilisateur :
Lors de l’importation du composant dans un projet Dev (fichier <NomComposant>.WDK et fichier plusieurs composants se fait de la même façon
que le déploiement d’une application classique • <NomComposant>.WDK,
WinDev, il suffit de sélectionner le fichier WDI cor- <NomComposant>.WDI).
respondant au composant. Ce fichier est disponible (option "Procédure d’installation" sous le volet "Pro- • <NomApplication>.EXE,
• Si nécessaire, les fichiers spécifiques manipulés
dans le répertoire EXE du projet composant. jet"). • les fichiers nécessaires au fonctionnement du
par le composant (fichiers de données, fichiers
d’initialisation, ...) ainsi que le fichier <NomCom- composant et de l’application.
Attention : Si le composant utilise des fichiers
posant>.WDO.
spécifiques (fichiers de données, fichiers texte, ...),
Le fichier texte <NomComposant>.WDO contient
74 Partie 2 : Environnement de développement Partie 2 : Environnement de développement 75
5.2 Mise à jour des composants et des exé- cas, aucun problème de version ou de compatibi- 7 Caractéristiques avancées d’un composant
cutables déployés lité ne sera rencontré. La recompilation est néces-
saire dans les cas suivants :
Lors de la mise à jour d’un composant et/ou d’un
exécutable déployé, il est possible d’installer sur le • De nouvelles fonctions ont été ajoutées dans le 7.1 Documentation automatique • si aucun commentaire n’existe, WinDev docu-
poste de l’utilisateur final : composant et doivent être prises en compte. mentera automatiquement les éléments acces-
• Les paramètres de certaines procédures ont été Un composant doit absolument être accompagné
• soit l’exécutable de l’application, le composant sibles du composant en précisant les paramètres
modifiés. d’une documentation pour permettre sa réutilisa-
et les fichiers nécessaires à leur fonctionnement. attendus en entrée et en sortie de chaque élé-
tion.
• Incompatibilité de la nouvelle version avec les ment. Les commentaires correspondants sont
• soit uniquement l’exécutable de l’application et WinDev simplifie la réalisation de cette documenta-
anciennes versions du composant. automatiquement créés dans les différents élé-
les fichiers nécessaires au fonctionnement de tion en proposant :
• ... ments.
l’application. • une présentation générale du composant. Cette
• soit uniquement le composant et les éventuels 2. Distribution directe du fichier .WDK présentation générale est saisie lors de la géné- Remarque : A chaque re-génération du composant,
fichiers nécessaires à son fonctionnement. ration du composant. Lors de l’utilisation du com- il est possible de re-générer la documentation as-
Fournissez directement une mise à jour du compo-
posant dans une application WinDev, cette pré- sociée au composant (bouton "Regénérer" dans la
Pour plus de détails sur la gestion de la compatibi- sant (fichier .WDK) en clientèle sans recompilation
sentation sera visible lors du survol du compo- fenêtre "Historique du composant").
lité entre l’application et son composant, consultez du projet.
sant affiché dans le volet "Assistants, Exemples Attention : Si vous utilisez le bouton "Regénérer",
l’aide en ligne. Cette possibilité s’applique en général lorsque :
et Composants". Pour plus de détails, consultez les modifications effectuées sous l’assistant de
Pour mettre à jour un composant en clientèle, • La nouvelle version sert à corriger un ou des dys- l’aide en ligne. génération seront supprimées.
deux possibilités existent : fonctionnements d’une version antérieure.
• une génération automatique de la documenta- Comment disposer de la documenta-
• De nouvelles fonctions ont été ajoutées dans le tion technique à partir des commentaires insérés
1. La recompilation du projet hôte composant mais ne sont pas nécessaires au bon tion d’un composant ?
dans le code des éléments du composant. La présentation générale du composant est auto-
Recompilez le projet qui utilise le composant et re- fonctionnement de l’application.
distribuez l’application avec le composant. Dans ce Quels sont les commentaires de code matiquement affichée lors du survol du composant
pris en compte ? présent dans le volet "Assistants, Exemples et Com-
Les commentaires pris en compte automatique- posants".
6 Modifier un composant externe ment pour la documentation du composant sont : La documentation technique du composant est
• Les commentaires placés en tête des procédures disponible :
WLangage • lors de l’intégration d’un composant dans un pro-
6.1 Présentation contrer des problèmes d’exécution si elles ne sont jet : sous le volet "Projet", dans le groupe "Pro-
pas en phase avec ce composant. jet", déroulez "Importer" et sélectionnez l’option
A tout moment, un composant créé et généré peut
être modifié. Cette modification peut correspondre : La gestion de la compatibilité est une étape impor- "Importer un composant externe".
tante dans la modification d’un composant. Il existe • à tout moment, lors d’un double-clic sur l’icône
• soit à l’ajout d’éléments dans le composant.
2 types de compatibilité : du composant présent dans le volet "Assistants,
• soit à la suppression d’élément du composant.
• la compatibilité descendante : la version du Exemples et Composants" ou par l’option "Des-
• soit à la modification des droits sur les éléments composant utilisée (fichier .WDK) pour compiler cription" du menu contextuel du composant.
du composant. les applications utilisant ce composant doit être
• soit à la modification d’un des éléments du com- toujours supérieure ou égale à la version actuel- La documentation spécifique à un élément du
posant. lement utilisée en déploiement. • Les commentaires placés en tête des traite- composant peut être obtenue en double-cliquant
Cette compatibilité est automatiquement gérée. ments suivants : sur cet élément (volet "Explorateur de projet" ou
Dans tous les cas, après cette modification, le com- graphe du projet) ou en appuyant sur la touche [F2]
Si le composant installé avec l’application est • Code d’initialisation des fenêtres
posant doit être re-généré pour prendre en compte depuis le code de cet élément.
d’une version inférieure à celle utilisée par l’ap- • Code d’initialisation des états
les modifications effectuées.
plication, l’application refusera de fonctionner.
• Code d’initialisation des classes 7.2 Visibilité d’un élément d’un composant
6.2 Les différents types de compatibilité • la compatibilité ascendante : l’utilisation d’une
• Code d’initialisation des collections de procé-
nouvelle version d’un composant avec les projets Lors de la création d’un composant, il est possible
La gestion de la compatibilité est liée aux versions dures. de définir les éléments du composant qui seront
compilés avec une ancienne version peut être
d’un composant. En effet, si des modifications ont accessibles ou non par l’utilisateur du composant.
interdite. Il est donc nécessaire de recompiler les A quel moment la documentation
été apportées au composant, les applications qui projets pour utiliser correctement la nouvelle ver- est-elle générée ? • Si l’élément est accessible, l’utilisateur du
utilisent le composant en déploiement peuvent ren- sion du composant. La documentation du composant est générée lors composant verra cet élément dans la liste des
de la première génération du composant (option éléments du projet. Il pourra manipuler ces élé-
"Générer" sous le volet "Projet"). ments par programmation (comme s’il s’agissait
Lors de cette génération de la documentation : d’un élément créé dans le projet).
Remarque : Le code de cet élément n’est cepen-
• les commentaires existants dans le code sont uti-
dant pas visible.
lisés pour créer la documentation.

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


• Si l’élément n’est pas accessible, l’utilisateur ne Ce fichier ".WDO" peut contenir : • Si vous utilisez une procédure d’installation pour taller (option "Modifier la liste des fichiers à ins-
saura même pas que cet élément existe. • soit le nom complet du fichier. le composant, le fichier WDO sera automatique- taller" dans les "modules additionnels").
Par exemple : C:\Composants\ComposantSélec- ment créé lors de la création de la procédure 2. Sélectionner les fichiers supplémentaires à
Attention : Selon le mode de déclaration des élé- d’installation du composant. installer.
ments du projet (classe, Collection de procédures, teur\EtatInitial.INI
• soit le nom du fichier. Ce fichier sera recher- Il suffit pour cela dans l’assistant de : Le fichier WDO sera automatiquement créé et
...), les éléments accessibles ou non peuvent varier. 1. Demander la modification des fichiers à ins- installé avec le composant.
Le tableau présent sur la page suivante récapitule ché dans le répertoire en cours du composant.
les différentes façons d’accéder à un élément en Par exemple : EtatInitial.INI
fonction de son mode de déclaration. • soit un nom de fichier utilisant un chemin relatif.
Les syntaxes possibles sont :
7.3 Le fichier WDO • Répertoire\NomFichier.xxx pour indiquer un
Lors de la génération du composant, deux fichiers sous répertoire du répertoire en cours
sont automatiquement créés dans le répertoire • .\NomFichier.xx pour indiquer le répertoire en
EXE du projet en cours : cours
<NomComposant>. Contient tous les éléments à • ..\NomFichier.xx pour indiquer le répertoire
WDK redistribuer (fenêtres, états, ...) parent Par exemple : \ComposantSélecteur\
avec le composant EtatInitial.INI
<NomComposant>. Interface du composant. Ce fichier Ce fichier sera utilisé lors de l’intégration du com-
WDI contient :
- une aide pour l’utilisation du posant dans le projet. Les chemins précisés dans
composant lors de sa réintégration le WDO doivent correspondre aux chemins où les
- les éléments à l’utilisation fichiers sont installés sur le poste de développe-
du composant dans le projet ment du composant.
(information de compilation, ...)
Lors de l’intégration du composant, l’arborescence
spécifiée dans le WDO sera conservée et repro-
Lors de la diffusion du composant, ces deux fi- duite dans le répertoire EXE du projet. Pour plus de
chiers doivent être redistribués. détails, consultez le paragraphe "Utiliser un compo-
Si le composant utilise des éléments supplémen- sant externe dans une application", page 75.
taires (fichiers de données, ...), il est nécessaire
d’ajouter dans le répertoire EXE du projet : Exemple : Le composant "Code Postal" utilise un
• un fichier <NomComposant>.WDO : ce fichier fichier de données "Cedex" (fichiers Cedex.fic et Ce-
contient la liste des fichiers externes (fichiers de dex.ndx). Dans le projet de création du composant,
données, fichiers texte, ...) utilisés par le compo- ce fichier de données est présent dans le répertoire
sant. Ces fichiers doivent être livrés et installés EXE du projet.
avec le composant. Pour que le composant soit livré et installé avec le
• les fichiers devant être redistribués avec le com- fichier de données, il faut créer le fichier WDO dans
posant. Ces fichiers peuvent être placés selon le répertoire EXE du projet de création du compo-
une sous-arborescence spécifique. Dans ce cas, sant. Ce fichier doit contenir les lignes suivantes :
le code du composant doit gérer l’accès à ces .\CEDEX.Fic
fichiers selon cette même arborescence. .\CEDEX.NDX

Qu’est-ce que le fichier WDO ?


Le fichier <NomComposant>.WDO est un fichier Diffusion d’un composant avec WDO
au format TXT, pouvant être créé et modifié à tout Pour diffuser un composant utilisant un fichier
moment. Ce fichier peut par exemple être créé et WDO :
modifié avec l’éditeur de texte standard de Win- • Si vous n’utilisez pas de procédures d’installation
dows, NotePad. pour le composant, il est nécessaire de fournir :
Ce fichier contient la liste des fichiers externes (fi- • le fichier WDK
chiers de données, fichiers texte, ...) utilisés par le • le fichier WDI
composant et devant être livrés et installés avec le • le fichier WDO
composant. Ces fichiers doivent être recopiés dans
le répertoire EXE des projets utilisant le composant. • tous les fichiers nécessaires référencés dans le
fichier WDO.

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


Modes de
génération Applications et DLL d’assemblage DotNet
WinDev permet la génération d’applications et d’assemblages pour
la plate-forme DotNet de Microsoft. Un assemblage DotNet généré
Au-delà des applications Windows, WinDev vous permet de générer de nombreux autres avec WinDev pourra être importé dans une application DotNet dé-
types de projets. veloppée dans un autre langage d’une façon similaire à un compo-
sant 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,
plates-formes d’exécution suivantes : Windows (en 32 ou 64 bits) quel que soit son système d’exploitation. Il est possible de cette
et 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-
plication, lancée en même temps que le système d’exploitation et
ne comportant pas d’IHM.

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 Mo-
bile.

Webservices
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 et SOAP.
Remarque : Un Webservice doit être déployé sur un Serveur d’Appli-
cation WebDev pour être utilisable.

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


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 finals 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 : sateur final pourra créer ses propres macro pour 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 modifier l’application. teurs travaillant sous un système MAC OS X par
projet correspondant à l’exécutable à créer : • l’utilisation des mises à jour par Patch. Il suffira Une application JAVA est entièrement compilée exemple pourront également utiliser votre applica-
• Configuration de projet pour un exécutable Win- alors de copier le fichier correspondant au Patch en JAVA. Si cette application manipule une base tion.
dows 32 bits dans le répertoire de l’exécutable. de données, cette base doit disposer d’un driver Vous pourrez ainsi partager vos applications ré-
JDBC (MySQL, Oracle,...). Ce driver est spécifique à seau.
• Configuration de projet pour un exécutable Win- • les langues gérées par l’exécutable.
chaque base de données (et peut être trouvé sur le
dows 64 bits • les fichiers contenus dans la bibliothèque (si elle 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 est utilisée).
L’accès à une base de données HyperFileSQL se Java avec WinDev
2. Sous le volet "Projet", cliquez sur "Générer". • l’intégration des composants utilisés dans le pro- fait nativement (uniquement sous Windows et
3. L’assistant de création de l’exécutable s’ouvre. jet à l’exécutable. Comme indiqué ci-dessus, il n’est pas nécessaire
Linux) via les fonctions SQL du WLangage. Aucun
4. Spécifiez : de connaître le langage Java pour développer une
• l’emplacement des fichiers de données du pilote supplémentaire n’est requis.
• les options générales de l’exécutable (nom de application Java avec WinDev. Vous développez
groupware utilisateur (uniquement si votre appli- Une application Java correspond à un fichier ".jar"
l’exécutable, icône du programme exécutable, votre application en WLangage comme toute autre
cation gère le groupware utilisateur). et nécessite le runtime Java pour pouvoir être exé-
Splash screen ...). application WinDev et lors de la compilation du pro-
• l’emplacement des fichiers de données à utiliser cutée. jet, les fenêtres et les fonctions du WLangage sont
• le mode de fonctionnement de l’exécutable : par l’exécutable.
Pour compiler (en Java) un projet Java réalisé avec automatiquement converties en Java.
• Multi-instance : Ce programme pourra être • les informations de version. Ces informations
lancé plusieurs fois depuis un même poste : WinDev, il est nécessaire d’installer sur le poste de Remarque : le nombre de fonctions WLangage utili-
seront affichées dans l’onglet "Version" de la fe-
plusieurs instances seront ouvertes en même développement le J2SDK de Oracle (version 1.4.2 sables dans un projet Java est limité dans cette ver-
nêtre des propriétés de l’exécutable (accessibles
temps. ou supérieure nécessaire). Une version est dispo- sion. Ce nombre de fonctions est amené à croître
depuis l’explorateur Windows). Le numéro de
nible sur le CD d’installation de WinDev. Il est éga- régulièrement.
• Mono-instance : Ce programme pourra être lan- version peut être automatiquement incrémenté
lement possible de télécharger ce programme sur
cé une seule fois depuis un même poste : une à chaque création d’exécutable.
le site de Oracle.
seule instance sera ouverte en même temps. • le mode d’utilisation du framework WinDev (uti-
Si le développeur tente de lancer une autre ins- lisation du framework propre à l’application ou
tance du programme, l’instance déjà en cours du framework commun à toutes les applications 2 Fonctionnalités pour un projet Java
sera activée. WinDev installées sur le poste).
• le mode d’utilisation de la bibliothèque. La biblio- • le manifeste à utiliser (pour une exécution sous
thèque est optionnelle. Elle peut être créée dans Windows Vista et supérieur uniquement). 2.1 Création d’un projet Java sible de modifier à tout moment le type de généra-
un fichier séparé (extension ".WDL") ou intégrée • si l’exécutable doit être enregistré dans le centre tion du projet. Il suffit de créer une nouvelle confi-
dans l’exécutable. La création d’un projet Java est effectuée de la
de ré-utilisabilité. guration de projet.
L’intégration de la bibliothèque dans le pro- même façon que tout autre projet WinDev :
gramme exécutable a l’avantage de n’avoir qu’un • s’il est nécessaire de réaliser une sauvegarde du Dès que le projet est configuré comme un projet
projet. 1. Cliquez sur le bouton présent parmi les bou- Java, tous les outils disponibles avec WinDev sont
seul fichier à installer ou à mettre à jour, mais tons d’accès rapide de WinDev. Dans la roue qui
cela augmente la taille du fichier ".EXE" créé. 5. Validez la description de l’exécutable. L’exécu- automatiquement paramétrés pour le projet Java :
table est automatiquement généré selon les infor- s’affiche, cliquez sur "Projet".
• le message d’erreur qui sera affiché si une erreur • Le RAD fenêtre ou le RAD application complète
mations fournies. Il est possible de lancer directe- 2. L’assistant de création de projet se lance.
de programmation survient. est spécifique à une base de données manipulée
ment l’exécutable après sa création. 3. Dans un des premiers écrans de l’assistant,
par une application Java.
• la prise en compte ou non de la saisie de Macro vous pouvez choisir le type de génération de votre
Code Utilisateur (MCU). Si le MCU est actif, l’utili- projet. Il suffit de sélectionner "Java" et de suivre • Le compilateur indique si votre projet contient
l’assistant. des fonctions ou champs non utilisables en Java.
Un message apparaît en violet dans le volet "Er-
Par défaut, un projet WinDev pour Java correspond
reurs de compilation".
à une configuration spécifique du projet. Il est pos-

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


Les Centres
de Contrôle
• La création de l’archive permet de générer un compilation".
fichier ".jar" dans le répertoire EXE du projet. Pour plus de détails sur les éléments WinDev non
• Le module d’installation manipule uniquement disponibles dans une application Java, consultez
les fichiers nécessaires au déploiement de l’ap- l’aide en ligne.
plication Java. Remarque : comme indiqué dans la partie "Qu’est-
ce qu’une application Java ?", page 83, il est né-
Pour gérer le cycle de vie de vos projets de développement, WinDev vous propose d’utili-
Remarque : il est conseillé de créer un nouveau
projet WinDev pour développer une application cessaire d’installer le J2SDK de Sun sur le poste de ser les Centres de Contrôle. Les Centres de Contrôle forment un ensemble d’outils des-
Java plutôt que de transformer une application Win- développement pour compiler votre projet en Java. tinés à prendre en charge :
Dev en Java. • les exigences d’un projet (formalisation des besoins)
2.5 Créer une archive Java
• les tâches de développement, de test et de documentation
2.2 RAD JAVA WinDev permet de : • le suivi des incidents et des demandes d’évolutions signalés par les utilisateurs
Comme sur tout projet associé à une analyse, vous • créer et compiler sous un compilateur Java les • les règles métier utilisées par l’entreprise dans ses développements
pouvez utiliser le RAD pour générer les fenêtres de différents fichiers Java nécessaires à l’applica-
votre application. tion Les Centres de Contrôle fonctionnent autour d’une base de données (HyperFileSQL Clas-
Le RAD prend en compte toutes les spécificités de • créer une archive Java directement exécutable : sic ou Client/Serveur) partagée par de nombreux outils disponibles dans WinDev mais
la génération Java (champs, traitements, fonctions • une application Java classique aussi avec WebDev et WinDev Mobile si vous les utilisez :
utilisables dans une application WinDev générée • une applet Java
en Java).
• une application Java Web Start
Quel que soit le type de fenêtre à générer, le pre-
mier écran de l’assistant permet de spécifier le • utiliser les fenêtres du projet depuis vos propres
type de connexion à la base de données : fichiers sources Java. Dans ce cas, il est possible
de générer le projet Eclipse correspondant.
• HyperFileSQL (sous Windows et Linux) : l’assis-
tant classique de création de fenêtres est pro- Pour créer l’archive Java, il suffit de lancer la créa-
posé. tion de l’exécutable (option "Générer" sous le volet
• JDBC : vous pouvez alors spécifier les paramètres "Projet"). Un assistant vous guide alors dans la
de connexion à la base de données utilisant le création de l’archive Java.
driver JDBC.
2.6 Déployer une application Java
2.3 Test d’un projet Java sous l’éditeur Comme pour toute application, WinDev permet de
Lors du test d’un projet Java (icône ), le projet créer un programme d’installation pour une appli-
est compilé et lancé sous Windows. Le projet n’est cation Java. Cette procédure d’installation n’est
pas compilé en Java. actuellement disponible que pour Windows. Le
Pour exécuter l’application Java, il est nécessaire programme d’installation sera un exécutable et
de lancer le fichier ".Jar" présent dans le répertoire permettra d’installer les fichiers nécessaires ainsi
EXE de votre projet. que le runtime Java (JRE). Pour les autres plate-
formes, il est actuellement nécessaire de déployer
2.4 Compiler un projet Java sous WinDev vos fichiers manuellement.
Pour lancer l’assistant de création d’installation,
La compilation d’un projet Java permet de :
sous le volet "Projet", cliquez sur "Procédure d’ins-
• connaître les erreurs de programmation pré- tallation".
sentes dans le code WLangage
Pour plus de détails, consultez l’aide en ligne (mot-
• visualiser les champs, traitements, fonctions clé : "Java").
WLangage non disponibles en Java. Ces erreurs
apparaissent en violet dans le volet "Erreurs de

Dès l’installation de WinDev, il vous sera proposé :


• soit de créer la base des Centres de Contrôle. Cette base sera automatiquement
créée au format HyperFileSQL Classic dans le répertoire spécifié.
• soit de partager une base de données des Centres de Contrôle existante.

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


Gestion des Centre de Suivi
exigences de Projets
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 à
Les Centres de Contrôle permettent à un chef de projet de gérer les exigences d’un projet plusieurs projets.
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.

Fonctionnement du Centre de 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 et ne demande aucune action
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.
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. Inversement, depuis la liste des tâches, il est possible 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".

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


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é, ...

Une règle métier peut être simple ou


élaborée.

Les règles métier peuvent provenir :


• du cahier des charges (corres-
pondant aux exigences).
• de suggestions faites par les utili-
sateurs de 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é.

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.

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


PARTIE 3

Bases de
données

90 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.

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 (HyperFileSQL, Oracle, ...).

92 Partie 3 : Bases de données Partie 3 : Bases de données 93


L’analyse en pratique • si le fichier de données possède une rubrique
de type "Identifiant automatique". La valeur de
"Description des rubriques".

Pour importer une description de fichier existante,


cette rubrique est unique pour chaque enregis-
trement et est automatiquement calculée par deux solutions sont possibles :
WinDev. Solution 1 : Depuis l’éditeur d’analyses
1 Présentation • le type de la base de données pour laquelle le 1. Sous le volet "Analyse", dans le groupe "Créa-
fichier de données va être créé. Selon le type tion", cliquez sur "Nouveau fichier". L’assistant de
Lorsqu’un projet utilise des fichiers de données, (c’est-à-dire un Modèle Logique des Données choisi, ce fichier de données sera manipulé par création des fichiers de données se lance.
ce projet doit être associé à une analyse. Une ana- (MLD)). le moteur HyperFileSQL, par un pilote OLE DB ou 2. Sélectionnez l’option "Utiliser des fichiers de
lyse permet de décrire les structures de données • 2ème méthode : Création du Modèle Conceptuel par un des accès natifs de WinDev (SQL Server, données d’une base existante", puis sélectionnez
(fichiers, rubriques, ...) utilisées dans votre projet. des Données (MCD), puis création automatique Oracle, ...). le type de la base de données.
Pour décrire une analyse, deux méthodes sont pos- de l’analyse à partir du MCD. Pour plus de dé- • si la taille du fichier de données peut dépasser 3. Précisez le format des données utilisé par votre
sibles : tails, consultez l’aide en ligne. 2 Go. Cette option est utilisable uniquement projet. Il est possible de conserver le format actuel
si le système des fichiers de données du poste ou de migrer les fichiers de données au format Hy-
• 1ère méthode : Création directe de l’analyse Ce chapitre présente la première méthode. perFileSQL.
en cours et des postes sur lesquels l’application
va être déployée est au format NTFS (Windows 4. Si nécessaire, sélectionnez l’analyse WinDev
2000, NT ou XP). dans laquelle la description doit être importée
2 Création d’un MLD (Modèle Logique des Données) Attention : Si cette option est cochée, il ne sera (analyse existante ou nouvelle analyse).
pas possible d’ouvrir ce fichier sous Windows 95, 5. Spécifiez la base de données source contenant
98 ou Me. les descriptions à importer et le type de cette base
Dans WinDev, les termes "MLD" et "Analyse" sont 2.2 Ajouter un fichier de données dans une de données source. Selon le type choisi, renseignez
utilisés indifféremment pour définir la structure de analyse • si le fichier de données doit gérer la réplication. les informations demandées.
la base de données associée à un projet. Cette option permet de gérer les mises à jour au- 6. Sélectionnez les tables ou fichiers de données
L’analyse permet de décrire la structure des fi-
chiers de données utilisés par le projet. Un fichier tomatiques de bases de données identiques et dont la description doit être importée et validez.
2.1 Créer une analyse (ou MLD) distantes. Pour plus de détails sur la réplication,
de données présent dans l’analyse peut être : 7. Le fichier de données importé est automatique-
Pour créer un MLD : consultez l’aide en ligne. ment inséré dans l’analyse en cours.
• Un nouveau fichier de données. 4. Le fichier de données créé devient le fichier en
1. Cliquez sur parmi les boutons d’accès ra-
pide. Dans la roue qui s’affiche, survolez "Données" • Un fichier de données prédéfini, livré avec Win- cours. La fenêtre de description des rubriques du Solution 2 : Depuis l’explorateur de Windows
puis cliquez sur "Analyse (MLD)". L’assistant de Dev. fichier s’ouvre automatiquement. Vous pouvez dé- "Droppez" directement la description du fichier de
création de l’analyse est lancé. • Un fichier de données importé depuis une base crire les rubriques du fichier de données. données de l’explorateur Windows vers l’éditeur
2. Spécifiez : existante (utilisant par exemple un format spéci- d’analyses.
fique). Pour importer une description de fichier de don-
• le nom et le répertoire de l’analyse. L’analyse nées pré-défini : Par exemple :
correspond à un fichier ".WDA". Par défaut, ce Les paragraphes suivants détaillent comment 1. Sous le volet "Analyse", dans le groupe "Créa-
fichier sera créé dans le répertoire de l’analyse créer un fichier de données. tion", cliquez sur "Nouveau fichier". L’assistant de
du projet (répertoire <Nom du projet>.ANA). Ce création des fichiers de données se lance.
répertoire doit être accessible en lecture et en Pour créer un nouveau fichier de données : 2. Cochez l’option "Sélectionner une description
écriture. 1. Sous le volet "Analyse", dans le groupe "Créa- parmi des fichiers de données pré-définis".
• le libellé de l’analyse décrivant succinctement le tion", cliquez sur "Nouveau fichier". L’assistant de 3. Choisissez le fichier de données pré-défini. Ce
sujet de l’analyse. création des fichiers de données se lance. fichier de données sera importé dans l’analyse en
2. Cochez l’option "Créer une nouvelle description cours. Ce fichier de données pourra être modifié
• si l’analyse doit être associée au projet en cours. d’un fichier de données".
• si l’analyse doit être protégée par un mot de par la suite.
3. Spécifiez : 4. Sélectionnez les rubriques du fichier de données
passe. Ce mot de passe sera demandé lors de • le nom logique du fichier de données. Ce nom
l’ouverture de l’analyse (avec les outils de Win- à conserver. Ces rubriques pourront être modifiées
sera utilisé pour manipuler le fichier de données. par la suite.
Dev ou en programmation).
• le libellé du fichier de données résumant suc- 5. Spécifiez si les liaisons doivent être automati- Ici, une base de données Oracle, sur le serveur. Il
• le ou les type(s) de bases de données manipu- cinctement le sujet du fichier de données. quement recherchées. Si cette option est cochée, suffit de faire glisser le nom de la base ...
lées par le projet. les rubriques de même nom seront reliées.
3. La création du premier fichier de données est • la représentation d’un enregistrement dans le
fichier de données. Cette représentation permet 6. Le fichier de données importé est automatique-
automatiquement proposée. ment inséré dans l’analyse en cours.
4. Créez l’ensemble des éléments (fichiers de don- d’améliorer la lisibilité des questions posées lors
nées, rubriques et liaisons) de votre analyse. de la description des liaisons. Cette option doit Remarque : Pour modifier un fichier de données ou
être précédée d’un article indéfini (UN ou UNE). les rubriques d’un fichier de données :
1. Sélectionnez le fichier de données.
2. Dans le menu contextuel, sélectionnez l’option
"Description du fichier de données" ou l’option

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


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

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


• si un enregistrement est ajouté dans un membre, fichier de données (Catégorie). Liaison partagée de cardinalité 0,N - 0,1 Liaison partagée de cardinalité 1,N - 1,1
il existe un enregistrement correspondant dans Avec ce type de liaison :
le propriétaire, • chaque propriétaire a au moins un membre
• si un enregistrement est modifié dans un proprié- (chaque fournisseur a au moins un produit).
taire, la clé unique n’est pas modifiée, ... Une liaison facultative est réalisée en copiant • chaque membre a un seul propriétaire (chaque
La vérification de l’intégrité référentielle dépend de l’identifiant de chacun des fichiers dans l’autre Avec ce type de liaison : produit a un seul fournisseur).
la nature de la liaison entre les fichiers de données. fichier. • un propriétaire peut ne pas avoir de membre (un
Pour plus de détails sur le contrôle de l’intégrité fournisseur n’a pas obligatoirement de produit).
référentielle, consultez l’aide en ligne. Liaison de complément • un membre peut ne pas avoir de propriétaire (un
Dans le cas d’une liaison de complément : produit n’a pas obligatoirement de fournisseur).
3.5 Les différents types de liaisons • Chaque enregistrement d’un fichier de données Liaison complexe
(Produit) n’a aucun enregistrement ou un seul Liaison partagée de cardinalité 0,N - 1,1
Les liaisons entre fichiers de données peuvent être Dans le cas d’une liaison "complexe", il est néces-
de plusieurs types : enregistrement associé dans un autre fichier de saire de gérer un fichier de liaison, appelé fichier
données (Détail). de relation.
• parallèle
• Chaque enregistrement de l’autre fichier de don- Le fichier de relation sera automatiquement créé. Il
• facultative
nées (Détail) a nécessairement un enregistre- contiendra une clé unique composée des deux clés
• de complément ment associé dans le premier fichier de données Avec ce type de liaison :
des fichiers de données reliés.
• partagée (Produit). • un propriétaire peut ne pas avoir de membre (un
Le fichier de relation peut également contenir des
• complexe fournisseur peut avoir aucun produit).
informations spécifiques à la liaison.
• chaque membre a un seul propriétaire (chaque
Liaison parallèle Une liaison complexe se décompose alors en deux
produit a un seul fournisseur).
Dans le cas d’une liaison parallèle, chaque enregis- liaisons de type partagé.
Les liaisons de complément sont assez fréquentes. Remarque : Ce type de liaison est fréquent. Win-
trement d’un fichier de données (Produit) est relié Elles sont notamment utilisées lorsqu’un enregis- Dev permet de créer automatiquement les fenêtres Exemple de liaison complexe
à un enregistrement dans un autre fichier de don- trement peut avoir des compléments d’informa- permettant de gérer les fichiers de données liés par Une commande (fichier Commande) peut contenir
nées (Information), et réciproquement. tions optionnels. une liaison de type 0,N - 1,1. un ou plusieurs produits. Un produit (fichier Produit)
Pour gérer une liaison de complément, la clé du peut être utilisé dans plusieurs commandes.
Liaison partagée de cardinalité 1,N - 0,1
fichier Produit est copiée dans le fichier Détail. Pour Dans ce cas, il faut avoir un fichier de liaison (fichier
assurer la cardinalité maximale de 1, elle reste clé Avec ce type de liaison :
LigneCommande).
unique. L’unicité de cette clé interdit l’insertion de • chaque propriétaire a au moins un membre (un
Pour gérer une liaison parallèle, l’identifiant du fi- Le fichier LigneCommande contient :
plus d’un enregistrement dans Détail pour un enre- fournisseur a au moins un produit).
chier Produit est copié dans le fichier Information. gistrement de Produit. • une clé unique composée des clés de Produit et
• un membre peut ne pas avoir de propriétaire (un
Cet identifiant est également clé unique dans le de Commande.
Le fichier propriétaire est Produit, le fichier membre produit peut avoir aucun fournisseur).
fichier Information. • le nombre de produits commandés.
est Détail.
Le fichier propriétaire est alors Produit et et le fi- Les liaisons entre les fichiers de données sont les
chier membre est Information. Liaison partagée suivantes :
Remarque : Ce type de liaison est rare car les deux Dans le cas d’une liaison partagée, un même
fichiers peuvent être regroupés en un seul. enregistrement dans un fichier de données (Four-
Le parallélisme des enregistrements dans le fichier nisseur) peut être partagé par plusieurs enregistre-
est respecté si les opérations suivantes sont exécu- ments dans un autre fichier de données (Produit).
tées simultanément sur les deux fichiers : Pour gérer une liaison partagée, la clé du fichier 4 Manipulations possibles sur une analyse
• création d’un enregistrement Fournisseur est copiée dans le fichier Produit. Elle
devient clé multiple pour accélérer la vérification de
• suppression d’un enregistrement WinDev permet de réaliser les manipulations sui- WinDev permet de réaliser les manipulations sui-
l’intégrité.
• réindexation avec compactage vantes sur une analyse : vantes sur un fichier de données présent dans
Le fichier propriétaire est Fournisseur, le fichier
membre est Produit. • Dupliquer / Copier un MLD : La duplication d’un l’éditeur d’analyses :
Liaison facultative
Selon la cardinalité, il est possible de distinguer MLD permet de disposer de deux MLD identiques • Dupliquer / Copier un fichier de données.
Dans le cas d’une liaison facultative :
quatre types de liaisons partagées : de nom différent. • Supprimer un fichier de données.
• Chaque enregistrement d’un fichier de données
• Liaison partagée de cardinalité 0,n - 0,1 • Supprimer un MLD. • Renommer un fichier de données.
(Catégorie) n’a aucun enregistrement ou un seul
enregistrement associé dans un autre fichier de • Liaison partagée de cardinalité 0,n - 1,1 • Renommer un MLD.
données (Groupe). • Liaison partagée de cardinalité 1,n - 0,1 • Associer un MLD à un projet.
• Chaque enregistrement de l’autre fichier de don- • Liaison partagée de cardinalité 1,n - 1,1 • Agrandir ou réduire l’affichage d’un MLD sous
nées (Groupe) n’a aucun enregistrement ou un l’éditeur.
seul enregistrement associé dans le premier • Déplacer l’affichage du MLD sous l’éditeur.
98 Partie 3 : Bases de données Partie 3 : Bases de données 99
WinDev permet de réaliser les manipulations sui- • Supprimer une rubrique. 6.2 Annulation de la dernière génération 6.3 Remettre à 1 le numéro de la version
vantes sur une rubrique d’un fichier de données • Renommer une rubrique.
présent dans l’éditeur d’analyses : L’annulation de la dernière génération de l’analyse Il est possible de remettre le numéro de génération
Pour plus de détails, consultez l’aide en ligne. permet de restaurer l’analyse dans son état avant de l’analyse à "1" : sous le volet "Analyse", dans le
• Dupliquer / Copier une rubrique. la dernière génération. Les modifications effec- groupe "Analyse", déroulez "Génération" et sélec-
tuées depuis ne sont pas appliquées. tionnez l’option "Remettre à 1 la version de l’ana-
lyse".
5 Génération de l’analyse (MLD)
Dans ce cas le numéro de version de l’analyse est
remis à un. Aucune action spécifique n’est réalisée
La génération de l’analyse intervient avant la phase Pour lancer la génération de l’analyse, sous le volet sur les fichiers de données.
de programmation et après la phase de description "Analyse", dans le groupe "Analyse", cliquez sur
des fichiers de données. Cette génération permet "Génération".
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 de Les options disponibles dans le gestionnaire de
l’analyse : versions sont :
1. Sous le volet "Analyse", dans le groupe "Ana- • Restauration d’une analyse
lyse", déroulez "Génération". • Annulation de la dernière génération
2. Sélectionnez l’option "Gestion des versions".
3. Dans l’assistant, indiquez si vous voulez travail- • Remettre à 1 le numéro de version
ler sur l’analyse en cours ou sur une analyse spé- 6.1 Restauration d’une analyse
cifique.
Remarque : lorsqu’une analyse est endommagée, Pour restaurer une analyse à partir du gestionnaire
il est possible de sélectionner directement l’ana- de versions :
lyse endommagée pour restaurer par exemple une 1. Sélectionnez la version à restaurer.
des versions précédentes. 2. Il est possible de :
Toutes les versions de l’analyse sont visualisées • soit restaurer la version dans le répertoire spé-
sous forme d’un graphique. Le carré jaune indique cifié. Une analyse indépendante est créée cor-
le numéro de version de l’analyse, le libellé à droite respondant à la version choisie. Cette option est
rappelle la date de la génération. sélectionnée par défaut.
Entre deux versions figurent des "petits rectangles" • soit écraser l’analyse en cours.
qui signifient : 3. Validez. La restauration est effectuée.
• un rectangle : il y a eu peu de modifications effec- Attention : Les fichiers de données correspondant
tuées entre les deux versions. à une analyse de numéro de version supérieur à la
• plusieurs rectangles : il y a eu plusieurs modifica- version restaurée ne pourront plus être ouverts. Il
tions effectuées entre les deux versions. faut alors également restaurer des fichiers de don-
nées correspondant à la version de l’analyse res-
Pour visualiser le détail des modifications effec- taurée ou supprimer les fichiers de données exis-
tuées entre deux versions : Double-cliquez sur la tants pour qu’ils soient recréés.
ligne contenant les "petits rectangles" ou cliquez
sur le bouton [Modifications].

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


Les différents types de
fichiers accessibles
WinDev, WebDev et WinDev Mobile proposent un accès simple à la majorité des bases
de données du marché.

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


HyperFileSQL HyperFileSQL
Classic Client/Serveur
HyperFileSQL Classic est un puissant système de gestion de bases de données relation- HyperFileSQL Client/Serveur est un puissant système de gestion de bases de données
nelles (SGBD/R) utilisable en monoposte ou en réseau local. HyperFileSQL Classic ne relationnelles (SGBD/R) en mode Client/Serveur.
requière pas l’installation d’un serveur de bases de données.
Les caractéristiques de HyperFileSQL Client/Serveur sont les suivantes :
Les caractéristiques de HyperFileSQL Classic sont les suivantes : • Une application HyperFileSQL Client/Serveur peut être exécutée sur différents
• Une application HyperFileSQL Classic peut être exécutée sur différents postes utili- postes utilisateur (appelés machines clientes) qui communiquent à travers le réseau
sateurs répartis en réseau local. avec le 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éali- est réalisé sur le serveur.
sés sur chaque poste utilisateur.

Utilisateur 1
Utilisateur 3
Application
WinDev Application
WinDev

Utilisateur 2

Application
WinDev

Utilisateur n Bases de données


HyperFileSQL réseau
(répertoire partagé)
Application
WinDev

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


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

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.

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


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.
• les différentes variables WLangage disponibles.

La méthode d’affichage et de récupération des informations est très simple :


• La liaison d’un champ avec une rubrique ou une variable est définie sous l’éditeur
de fenêtres, lors de la description du champ (onglet "Liaison").
• La fonction EcranVersFichier permet de mettre à jour soit l’enregistrement, soit la
variable avec les données présentes à l’écran.
• La fonction FichierVersEcran permet de mettre à jour les données affichées à
l’écran avec soit les informations enregistrées dans le fichier de données, soit les
informations enregistrées dans la variable.

Liaison champ / rubrique

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


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.

Requête intégrée :
MaFenêtre_1$Requête

Requête intégrée :
MaFenêtre_2$Requête

Remarque : En programmation, une requête peut être manipulée de la même façon Dans ce cas, la requête est intégrée à la fenêtre. Elle est présente dans le fichier WDW
qu’un fichier de données. En particulier, elle peut être associée à un champ d’affichage correspondant à la fenêtre. Si le fichier WDW est copié (dans un autre projet par exemple),
(une table par exemple) qui présentera les données retournées par la requête. les requêtes intégrées utilisées par cette fenêtre seront également copiées.

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


Les champs Table/ Table "Mémoire"
Zone Répétée Une table mémoire permet d’afficher directement des données chargées en mémoire.
Les données sont ajoutées dans la table par programmation (par exemple avec la fonc-
tion 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 :
• Table/Zone Répétée "Fichier accès direct"
• Table/Zone Répétée "Mémoire"
• Table/Zone Répétée "Fichier chargée en mémoire"

Remarque : Ces trois modes de remplissage vont être détaillés dans cette page pour le Les données étant présentes en mémoire, la table permet toutes les manipulations sur
champ Table. Les mêmes concepts s’appliquent au champ Zone Répétée. les données (tri sur n’importe quelle colonne, recherche dans les colonnes, ...).

Table "Fichier accès direct" Table "Fichier chargée en mémoire"


Une table fichier de type accès direct permet d’afficher directement les données prove- Les tables fichier chargées en mémoire combinent les avantages des tables fichier à
nant d’un fichier de données ou d’une requête. La structure du fichier de données a été accès direct et ceux des tables mémoire.
décrite sous l’éditeur d’analyses et les données ont été saisies par exemple dans l’appli- La table est liée au fichier de données, mais le contenu du fichier de données est totale-
cation. Un parcours du fichier de données permet d’afficher les données dans la table. ment chargé en mémoire. Le tri et la recherche sont disponibles sur toutes les colonnes.
Pour chaque ligne affichée, le fichier de données est lu : l’enregistrement lu est affiché Les données non liées au fichier de données sont conservées lors de la manipulation de
dans une ligne de la table. l’ascenseur (colonne de type Interrupteur par exemple).
Les enregistrements du fichier de données étant chargés en mémoire, ce type de table
est conseillé pour les fichiers de données de moins de 100 000 enregistrements (pour
éviter une saturation mémoire).

Les données affichées non liées au fichier de données ne sont pas conservées lors des
rafraîchissements d’affichage de la table (en cas de scrolling par exemple).
Il est possible de limiter les enregistrements affichés dans le champ en utilisant un filtre
(fonction HFiltre utilisée dans le code d’initialisation du champ).
Plusieurs fonctions du WLangage permettent de manipuler les tables fichier. Ces fonc-
tions commencent toutes par "Table".
Pour ajouter un enregistrement dans la table, ajoutez l’enregistrement dans le fichier de
données HyperFileSQL correspondant (fonction HAjoute), puis ré-affichez la table avec
la fonction TableAffiche.
Pour supprimer un enregistrement dans la table, supprimez l’enregistrement dans le
fichier de données HyperFileSQL correspondant (fonction HSupprime), puis ré-affichez la
table avec la fonction TableAffiche.

Remarque : Les différents modes de remplissage (mémoire, fichier, fichier chargé en


mémoire) sont disponibles pour les listes, les combos, les tables, les zones répétées, ...

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


Réplication Architecture
universelle 3-tier
La réplication universelle permet de maintenir à jour des bases de données de formats L’architecture 3-tier (le terme "tier" vient de l’anglais et signifie "niveau") est un modèle
identiques ou différents (HyperFileSQL, Oracle, SQL Server, ...). Il est par exemple pos- d’architecture d’application.
sible de réaliser une synchronisation entre une base de données HyperFileSQL Classic Son principe de base consiste à séparer trois couches logicielles contenues dans une
et une base de 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.

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

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


PARTIE 4

Concepts
avancés

116 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é.

118 Partie 4 : Concepts avancés Partie 4 : Concepts avancés 119


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.

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


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

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


• lien : représente les relations entre les différents 2.5 Diagramme d’activité 2.6 Diagramme de séquence 2.7 Diagramme de collaboration
objets.
Un diagramme d’activité représente le comporte- Un diagramme de séquence représente l’ordre Un diagramme de collaboration présente l’orga-
2.4 Diagramme de composants ment d’une méthode ou le déroulement d’un cas chronologique des messages envoyés et reçus par nisation structurelle des objets qui envoient et re-
d’utilisation. un ensemble d’objets. çoivent des messages.
Un diagramme de composants décrit l’architecture
Par exemple, le diagramme suivant présente le dé- Par exemple, le diagramme suivant représente le Par exemple, le diagramme suivant montre l’utilisa-
physique et statique d’une application informa-
roulement d’un barrage : début d’une communication téléphonique : tion d’un ascenseur par une personne :
tique. Par exemple : fichiers sources, librairies, exé-
cutables, ...
Par exemple, le diagramme suivant présente le
fonctionnement d’un programme permettant de se
loguer en mode texte sous Unix.

Un diagramme d’activité est composé des élé- Un diagramme de séquence est composé des élé- Un diagramme de collaboration est composé des
ments suivants : ments suivants : éléments suivants :
• activité : représente une étape particulière dans • objet : représente les différents objets utilisés. • objet : représente les différents objets utilisés.
l’exécution d’un mécanisme. Par exemple : "Eta- Chaque objet est représenté par un carré sur- • acteur : représente un élément externe du sys-
blir un devis", "Ouvrir la fenêtre", ... montant une ligne en pointillé. Cette ligne repré- tème. Par exemple une personne.
Un diagramme de composants est composé des • barre de synchronisation : permet de synchroni- sente la durée de vie de l’objet. Par exemple : • message : représente les messages échangés
éléments suivants : ser les différentes activités : "Appelant", "Appelé", ... entre les différents objets.
• module : représente les différents éléments • soit en indiquant les activités à effectuer avant • période d’activation d’un objet : sur la ligne de
physiques constituant une application informa- une certaine activité. Par exemple : "Appuyer vie d’un objet, il est possible d’insérer des pé- 2.8 Diagramme d’états-transitions
tique. Par exemple : un fichier, une librairie, ... sur l’embrayage" et "Enclencher une vitesse" riodes d’activation de l’objet. Ces périodes repré-
Un diagramme d’états-transitions présente un
Un module peut être représenté : avant de "Relâcher l’embrayage". sentent les moments où l’objet est actif.
automate à états finis. Il permet ainsi de décrire
• soit par une spécification qui montre l’interface • soit en indiquant les activités à effectuer en • message : représente, grâce à des flèches les changements d’états d’un objet ou d’un com-
du module. Cette spécification peut être géné- parallèle. horizontales, les messages échangés entre posant.
rique dans le cas de classes paramétrables. • objet : permet de rattacher des activités à l’objet les différents objets. Ces flèches sont orien-
Un état se caractérise par sa durée et sa stabilité.
qui réalise ces activités. Par exemple, les activi- tées de l’émetteur du message vers le destina-
• soit par son corps qui présente l’implémenta- Une transition représente le passage instantané
tés "Commander" et "Payer" sont rattachées à taire. L’ordre d’envoi des messages est donné
tion du module. d’un état vers un autre.
l’objet "Client"; les activités "Enseigner", "Contrô- par la position des flèches sur l’axe vertical.
• tâche : représente un composant ayant son Par exemple : "Décroche", "Sonnerie", ... Une transition est déclenchée :
propre flot (thread) de contrôle. ler les connaissances" sont rattachées à l’objet
"Enseignant". • soit par un événement.
• programmes principaux de l’application informa- • soit automatiquement lorsqu’aucun événement
tique. • émission de signal : représente l’envoi d’un si-
gnal vers un objet. déclencheur est spécifié.
• sous-programmes : regroupent les procédures
et les fonctions qui n’appartiennent pas à des • attente de signal : représente l’attente d’un si-
classes. gnal en provenance d’un objet.
• transition : représente le passage d’une activité
terminée à une autre. Par exemple : "Trop d’eau",
"Assez d’argent", ...

124 Partie 4 : Concepts avancés Partie 4 : Concepts avancés 125


Groupware
utilisateur
Par exemple, le diagramme suivant présente les 2.9 Diagramme de déploiement
différentes étapes d’une machine à laver les voi-
tures : 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.

Un diagramme d’états-transitions est composé des


éléments suivants :
• état : représente la valeur des attributs d’un ob-
jet à un instant donné.
• état initial : représente l’état au démarrage du Un diagramme de déploiement est composé des
système. éléments suivants :
• état final : représente l’état dans lequel se trouve • classe de nœuds : représente une classe de res-
le système à la fin du fonctionnement. source matérielle. Par exemple : un serveur, un
• super-état : permet de structurer le diagramme pc, une imprimante, ...
en indiquant plusieurs niveaux de distinction • instance d’un nœud : représente une ressource
entre les états. matérielle. Par exemple : le serveur numéro 3,
• historique : représente le dernier état actif d’un l’imprimante numéro 7, ...
super-état. • connexion : décrit le support de communication
• souche : permet de symboliser les états conte- entre deux nœuds. Par exemple : liaison RNIS ou
nus dans un super-état. Il est ainsi possible de TCP/IP.
relier ces états à d’autres états n’appartenant
pas au super-état.
• transition : représente le passage d’un état à un
autre.

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


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

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

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


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

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


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

5 Conseils pour une application gérant le groupware utilisateur


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

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


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
groupes de champs et des options à gérer selon
le niveau d’utilisation de l’application.

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


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

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


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

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


Optimiser une
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


application
• le mode mono alphabet : Dans ce mode, si votre est réalisée dans les options de la configuration en Pour optimiser vos applications, WinDev propose plusieurs méthodes :
application gère des langues utilisant des alpha- cours (onglet "Unicode" de la fenêtre de description
bets spécifiques (grec, coréen, ...), il est possible de la configuration).
de changer par programmation : • Les Aides Automatiques au Développement (AAD) qui suggèrent des améliorations
Important de code ou d’interface lors du développement de l’application.
• l’alphabet utilisé par toutes les polices écran Si vous choisissez de passer vos projets en mode
(fonction ChangeAlphabet). Cet alphabet pour- UNICODE, la cohabitation ANSI / Unicode génère
ra également être utilisé pour les données en- toutefois des contraintes : il faut traduire les don-
registrées dans les fichiers HyperFileSQL. Pour nées lors du passage d’un système de codage à Développement de l’application
plus de détails, consultez l’aide en ligne (mot- l’autre. L’échange de chaînes texte avec l’extérieur
clé : Multilingue). de l’application doit être adapté pour prendre en
• la langue du clavier manipulé par les utilisa- compte la nouvelle représentation mémoire des Optimisations de vos
teurs de l’application (fonction ChangeClavier). chaînes (en Unicode, 1 caractère est codé sur requêtes, améliora-
• le support complet de Unicode : Ce mode per- 2 octets alors qu’en ANSI il est codé sur 1 seul tion des ancrages
met de gérer les alphabets non latins. Dans ce octet) : appel d’API, lecture ou écriture sur disque dans vos fenêtres, ...
mode, les fonctions ChangeAlphabet et Change- pour échange de données, lecture ou écriture de Ces suggestions sont
Clavier sont inutiles. Le changement d’alphabet sockets contenant des chaînes, ... régulièrement propo-
est réalisé automatiquement selon les options Si vous choisissez de passer vos projets en mode sées lors du dévelop-
de langue définies dans la description du projet. UNICODE, un assistant mesurant l’impact du pas- pement de vos appli-
Il est également possible de mélanger les diffé- sage à Unicode est déclenché sur le projet lors du cations.
rents alphabets. passage à la norme Unicode.

• L’analyseur de performances qui permet de visualiser rapidement les traitements


les plus gourmands en temps. Il suffit ensuite d’optimiser le traitement voulu.

Test de l’application
Analyse des performances de
l’application durant un test, vi-
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".

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


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-
lyse de la bibliothèque (pour
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
d’édition" et sélectionnez
l’option "Déclencher l’audit
d’édition".

• 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.

Audit dynamique
Analyse des performances de
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-
tion "Déboguer le projet avec
l’audit activé".

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


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- teurs.


tionnalité, par fenêtre ou pour l’application entière Cette deuxième option permet l’envoi d’un email
si vous le désirez. par l’application lorsque l’utilisateur crée un macro
Pour désactiver le MCU sur une fenêtre, il faut co- code. Le fichier "*.MCU" correspondant à la macro
cher l’option "Interdire l’utilisation du M.C.U." dans code est envoyé en pièce jointe. Vous récupérez
l’onglet "Détail" de la description d’une fenêtre. ainsi facilement les suggestions des clients et les
Une icône située en haut de la fenêtre permet à Lors de la création de l’exécutable, vous avez la intégrer automatiquement dans votre projet ! Win-
l’utilisateur de personnaliser les traitements. possibilité d’autoriser la saisie de Macro Code Utili- Dev dispose en effet d’une option d’importation
sateur ou de l’interdire pour l’application complète. des fichiers "*.MCU" (sous le volet "Projet", dans le
Si vous l’autorisez, deux options sont alors dispo- groupe "Projet", déroulez "Importer" et sélectionnez
nibles : l’option "Des Macro-Codes Utilisateurs ...").I
La fenêtre de configuration du MCU apparaît.
L’utilisateur peut ajouter une nouvelle action • Autoriser l’utilisation des ordres HyperFileSQL
pour cette fenêtre. Dans ce cas, l’utilisateur (HLitPremier, HFiltre, HAjoute, ...).
ajoute la vérification de l’adresse email.
• Accepter les suggestions faites par les utilisa-

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.

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


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-dessous
Le débogueur permet une exécution pas à pas de vos applications, en visualisant le code
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
Débogage du projet en cours
à l’aide du débogueur.
Il est également possible de débogueur un exé- 1. Utilisation d’un point d’arrêt, placé dans l’éditeur de code.
cutable spécifique, un exécutable déjà lancé ou Lorsque la ligne précédée d’un point d’arrêt sera exécutée, le débogueur sera automa-
un exécutable lancé sur un autre poste. tiquement lancé.
Pour poser un point d’arrêt, il suffit de cliquer devant la ligne de code : une puce rouge
Test unitaire Permet de tester les fenêtres, les procédures et apparaît.
les classes d’une application à différents niveaux
de développement.
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.

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


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.
Lors de la création de l’exécutable de l’application, WinDev :
Débogage d’un exécutable • affiche le taux de validation de l’application.
• indique les éléments modifiés et non testés.
WinDev permet également de déboguer directement l’exécutable associé au projet en
cours sous WinDev. Cet exécutable peut :
• être lancé depuis WinDev, sur le poste de développement.
• ê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


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-
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-
table qui l’utilise.

Pour créer un test unitaire sur la fenêtre en cours, cliquez sur l’icône .
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" puis l’option "Créer un test
unitaire" du menu contextuel.

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


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éployé, 1 Présentation
grâce à l’automate de tests.
WinDev propose plusieurs méthodes pour tester le test du projet, il est possible de lancer le débo-
vos applications : gueur dès qu’un problème est rencontré.
• test de l’ensemble du projet, Le test d’une requête seule permet d’exécuter uni-
• test d’une fenêtre seule, quement la requête en cours. Vous pouvez ainsi
• test d’une requête seule (consultez le livre "Etats choisir de tester le fonctionnement d’une requête
et Requêtes" pour plus de détails), dès que son développement est terminé.
• test d’un état seul (consultez le livre "Etats et Le test d’un état seul permet d’exécuter unique-
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
• exécution du projet pas à pas, développement est terminé. Comme pour le test du
• test des performances de votre application. projet, il est possible de lancer le débogueur dès
• test de non-régression / test automatique qu’un problème est rencontré.
Le test de l’ensemble du projet permet de simuler L’exécution du projet pas à pas permet de lancer
le lancement de l’application par l’exécutable. Il est le débogueur au lancement de l’application. Cette
ainsi possible de tester l’application dans son en- solution permet de suivre méticuleusement le dé-
semble, même si son développement n’est pas ter- roulement de l’application.
miné. Dès qu’un problème apparaît, vous pouvez Le test des performances de votre application per-
lancer le débogueur pour connaître et solutionner met de vérifier et d’optimiser le temps d’exécution
le problème rencontré. de votre application.
Le test d’une fenêtre permet d’exécuter unique- Le test de non-régression (ou test automatique) est
ment la fenêtre en cours. Vous pouvez ainsi choisir basé sur l’exécution de scripts. Il permet de vérifier
de tester votre projet à partir d’une fenêtre donnée, que lors de l’exécution de votre application, ... les
ou de tester le fonctionnement d’une fenêtre dès fonctionnalités existantes sont toujours suppor-
que son développement est terminé. Comme pour tées.

2 Tester et déboguer un projet WinDev sur le poste de développement

2.1 Présentation • Débogage d’un exécutable déjà lancé sur le


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

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


déboguer un exécutable après l’avoir installé sur le Ce mode de test permet par exemple de trouver un 5 Tracer un projet
poste de développement. problème qui se produirait uniquement dans l’exé-
Dans ce cas, le code exécuté provient directement cutable (et non en tests).
des bibliothèques (et non du code présent dans les Le principe est simple : 5.1 Principes du débogage Ainsi, le débogueur ne peut pas être utilisé dans
éléments présents sur le poste). Le code peut donc • Le développeur lance l’exécutable sur son poste une procédure appelée par timer ou dans le code
être déphasé entre le code du projet en cours et le et se positionne directement à l’endroit voulu Le débogage d’une application consiste à :
de l’ascenseur.
code de l’exécutable : le code déphasé est surligné dans l’application. • vérifier le bon fonctionnement d’un traitement,
Remarque : Pour connaître l’ensemble des limites
en rose lors du débogage. • Dans WinDev, le développeur ouvre le projet cor- • comprendre le fonctionnement d’un programme du débogueur, consultez l’aide en ligne.
Ce mode de test permet de lancer un exécutable respondant à l’exécutable et demande à s’atta- existant,
spécifique installé sur le poste de développement cher à l’exécutable lancé. • vérifier la valeur des variables, Pour déboguer ces applications, il peut être né-
et de le déboguer directement. cessaire par exemple de suivre l’évolution d’une
• Le débogueur sous WinDev permet de suivre • vérifier le bon fonctionnement de cas particuliers
Pour plus de détails, consultez l’aide en ligne. valeur, le passage dans différentes procédures, ...
l’exécution du programme pas à pas. dans une application.
Ces informations peuvent être :
2.4 Débogage d’un exécutable déjà lancé Dans ce cas, le code exécuté provient directement Le débogueur permet de réaliser ces opérations.
des bibliothèques (et non du code présent dans les • affichées à l’écran.
sur le poste de développement • stockées dans un fichier de trace.
éléments présents sur le poste). Le code peut donc Remarque : WinDev met également à votre dispo-
Certains problèmes ne peuvent être reproduits que être déphasé entre le code du projet en cours et le sition divers outils de trace (fenêtre de trace, boîte
lors d’un test de l’exécutable en condition d’utilisa- Attention : Si les informations sont affichées à
code de l’exécutable : le code déphasé est surligné d’information, ...). Pour plus de détails, consultez le
tion réelle. l’écran, elles doivent être affichées uniquement
en rose lors du débogage. paragraphe "Déboguer sans le débogueur", page
lors des tests de l’application.
Pour plus de détails, consultez l’aide en ligne. 153.
Afficher des informations
5.2 Présentation du débogueur Deux outils permettent d’afficher des informations :
3 Tester et déboguer un projet WinDev sur le poste de l’utilisateur Le débogueur permet de tracer les programmes en • les boîtes d’information : fonction Info du WLan-
WLangage afin de faciliter la mise au point de pro- gage.
grammes. Attention : L’affichage d’une boîte d’information
WinDev offre plusieurs possibilités pour tester et Deux fonctionnalités sont disponibles :
Le code source exécuté est visualisé à l’écran. Les est bloquante.
déboguer un projet directement sur le poste de dé- • Lancement et débogage de l’exécutable sur une différents traitements exécutés sont hiérarchisés • la fenêtre de trace : fonction Trace du WLangage.
veloppement. Mais dans certains cas, il est néces- machine distante dans le volet "Débogueur". La fenêtre de trace s’affiche en haut à gauche
saire de déboguer directement sur le poste de l’uti- • Débogage d’une application en cours d’exécution
lisateur final (connecté par réseau ou par Internet). La valeur des variables peut être visualisée : de l’écran, sans interrompre le déroulement du
sur une machine distante. programme.
Il est ainsi possible de déboguer, depuis votre • individuellement dans la bulle d’aide de survol
Pour ces deux fonctionnalités, une configuration de chaque variable.
bureau de Paris, une application qui s’exécute à spécifique de la machine distante est nécessaire. Gérer l’affichage des informations de
Taïwan. Le débogage est effectué sans se déplacer, • dans le volet "Débogueur". débogage
directement sur la configuration du client. Remarque : pour déboguer une application Win-
Dev à distance, l’application WinDev doit inclure la 5.3 Fonctionnalités du débogueur L’affichage à l’écran des informations de débogage
librairie WD180CPL.DLL dans son framework. est utile uniquement en mode test.
Le débogueur permet de : Avant de diffuser une application, il est donc néces-
Pour plus de détails, consultez l’aide en ligne.
• connaître la pile des appels, saire de supprimer tout affichage superflu.
• visualiser le contenu des variables ou des expres- Pour éviter tout oubli, il est conseillé de gérer l’affi-
4 Tester une fenêtre sions, chage des informations de débogage à l’aide d’une
• exécuter pas à pas avec possibilité de sauter des procédure globale. Par exemple :
blocs, PROCEDURE MaTrace(ChaîneATracer)
4.1 Tester la fenêtre depuis l’éditeur 4.2 Arrêter le test d’une fenêtre • utiliser des points d’arrêt conditionnels, SI EnModeTest()=Vrai ALORS
Trace(ChaîneATracer)
Pour tester une fenêtre depuis l’éditeur : Pour arrêter le test, plusieurs méthodes sont pos- • modifier le code tout en continuant l’exécution,
FIN
1. Ouvrez la fenêtre à tester. sibles : • ...
2. Cliquez sur parmi les boutons d’accès rapide Dans ce code, selon le résultat de la fonction En-
• 1ère méthode :
(ou [F9]). L’éditeur est automatiquement réduit en 5.4 Déboguer sans le débogueur ModeTest, la fenêtre de trace apparaît uniquement
Fermez l’application en cours de test. WinDev
icône et la fenêtre s’exécute. lors d’un test de l’application.
affiche l’éditeur en cours au moment du lance- Dans certains cas, l’exécution d’un programme
Lors du test, l’ensemble des fonctionnalités de la ment du test. avec ou sans le débogueur peut être différente. Une telle procédure permet de laisser l’appel aux
fenêtre pourra être exécuté. Il sera possible par fenêtres de trace dans le code de l’application,
• 2ème méthode : En effet, le débogueur introduit des pauses dans
exemple d’ouvrir d’autres fenêtres. sans risque d’apparition en clientèle.
• Revenez dans l’éditeur avec la barre des tâches l’exécution du traitement, durant lesquelles Win-
ou avec [Alt] + [Tab]. dows effectue certaines tâches.
• Confirmez l’arrêt du test. WinDev affiche l’édi-
teur en cours au moment du lancement du test.
152 Partie 4 : Concepts avancés Partie 4 : Concepts avancés 153
L’appel à cette procédure de trace est identique à Fichier = fOuvre(... Pour revenir sous l’éditeur, il suffit de fermer votre % code Pourcentage de code exécuté hors
l’utilisation de la fonction Trace : CheminFichier, ... application. appel à une fonction WLangage ou à un
MaTrace("Client : "+ ... foCréationSiInexistant +... appel d’une fonction ou une procédure
L’analyseur de performances affiche alors le résul- personnelle.
Client.NumClient) foEcriture + foAjout)
SI Fichier <> -1 ALORS
tat de l’analyse.
Parent Traitement qui a appelé la fonction.
DateHeureTrace est un DateHeure Remarque : Il est conseillé d’utiliser l’analyseur
Créer un fichier de trace DateTrace est une Date de performances pour optimiser votre application
Lors de traitements longs (traitements Batchs, ...), HeureTrace est une Heure (avant sa diffusion par exemple). Remarques :
pour contrôler le bon déroulement du programme, DateHeureTrace = DateHeureSys() • Le libellé "Exécution complète" représente le
il est nécessaire de conserver une trace physique DateTrace = Madate..PartieDate 6.3 Lire le résultat de l’analyseur de perfor-
mances temps complet de l’exécution du test de l’appli-
des traitements effectués (un fichier texte par HeureTrace = Madate..PartieHeure
cation réalisé avec l’analyseur de performances.
fEcritLigne(Fichier,...
exemple). L’analyseur de performances présente le résultat • Le libellé "Total Fenêtre XXX" représente le temps
DateVersChaîne(DateTrace) +...
La procédure suivante permet de gérer par exemple de l’analyse dans deux onglets : complet de l’exécution de la fenêtre XXX (de son
" -
l’affichage de la trace : "+ HeureVersChaîne(HeureTrace)) • l’onglet "Synthèse" présente les 20 traitements ouverture à sa fermeture).
• soit à l’écran (paramètre /DEBUG en ligne de fEcritLigne(Fichier, ChaîneATracer) qui ont pris le plus de temps.
commande). fEcritLigne(Fichier, " ") • l’onglet "Détails" présente tous les traitements 6.4 Choisir un traitement à optimiser
• soit dans un fichier texte (mode par défaut). fFerme(Fichier) lancés lors du test de l’application (classés du Le choix du traitement à optimiser se fait en fonc-
FIN plus long au plus rapide). tion de plusieurs critères :
PROCEDURE MaTrace(ChaîneATracer)
FIN
CheminFichier est une chaîne Pour chaque traitement, les informations suivantes • le temps d’exécution du traitement. Les traite-
CheminFichier = ... sont affichées : ments les plus longs doivent bien entendu être
fRepDonnéesUtilisateur()+... Remarques : optimisés.
ProjetInfo(piNomProjet) + ".txt" • Le fichier de trace est créé par défaut Fonction Fonction, traitement ou procédure • le pourcentage de temps passé dans le trai-
Fichier est un entier dans le répertoire des données de l’utilisa- exécutée. tement de la fonction ou de la procédure. Plus
ModeDebug est un booléen = Faux teur. Ce fichier a pour nom le nom du pro- Temps Total Temps d’exécution de la fonction. ce pourcentage est important, plus le code peut
SI Position(LigneCommande(),... jet. Ce fichier contient les informations à Nb appels Nombre d’appels effectués à la fonction contenir des traitements pouvant être optimisés.
"/DEBUG") > 0 ALORS
tracer durant l’exécution du programme. (procédure ou traitement).
ModeDebug = Vrai Remarque : Si le traitement correspond à une fonc-
Les informations sont complétées par la date et
FIN Temps 1 Temps d’exécution d’un appel à la fonction tion WLangage, il est relativement difficile de l’opti-
l’heure de chaque "Trace". Il est ainsi possible appel (procédure ou traitement).
SI ModeDebug = Vrai ALORS miser.
Trace(ChaîneATracer)
de déterminer un éventuel dysfonctionnement
SINON durant le traitement.
• Exemple de contenu du fichier de trace :
01/12/2001 - 10:53:25:20
7 Tests de non-régression
Nom de client : Martin

7.1 Présentation nario est écrit en WLangage et peut être modifié à


6 Test de performances Soucieux de la qualité des applications, plusieurs
n’importe quel moment.
outils de tests sont à votre disposition : Ces tests peuvent être lancés par exemple avant
chaque création d’exécutable pour vérifier le bon
• Le mode test (Go de projet ou Go de fenêtre) qui
6.1 Présentation testée, triées par durée (de l’action la plus longue fonctionnement d’une application après diverses
permet de tester immédiatement une modifica-
à l’action la moins longue). modifications.
L’analyseur de performances est un outil permet- tion dans votre application. Ces tests peuvent
être enregistrés en tant que tests automatiques. Les éléments suivants peuvent être testés :
tant de vérifier et d’optimiser le temps d’exécution Il est alors possible de sélectionner un traitement
de votre application. • L’utilitaire WDTest qui permet par exemple de • les fenêtres WinDev.
afin d’analyser les causes de son temps de traite-
Son principe est simple : créer des tests de validation et de non-régression • les collections de procédures.
ment pour l’optimiser.
en WinDev. • les classes.
Vous testez votre application. Pendant ce test,
l’analyseur de performances répertorie toutes les 6.2 Lancer l’analyseur de performances Pour automatiser ces tests et augmenter la qualité • les exécutables WinDev.
actions effectuées et les traitements correspon- de vos applications, vous pouvez faire des tests Chaque test est associé à un code WLangage : le
Pour lancer l’analyseur de performances, sous
dants exécutés. unitaires automatiques. Grâce à ces tests, il est scénario du test. Ce scénario est visible sous l’édi-
le volet "Projet", dans le groupe "Audit et perfor-
encore plus simple de contrôler toutes les fonction- teur de code. Le code des tests peut être modifié.
A la fin du test, l’analyseur de performances vous mances", déroulez "Analyser les performances" et
nalités proposées par vos applications.
présente : sélectionnez l’option "Analyser les performances". Les tests et le code associé ne sont pas intégrés
• les 10 manipulations qui ont pris le plus de Le projet est alors automatiquement exécuté en 7.2 Tests automatiques à l’exécutable et ne sont pas livrés en clientèle. Le
temps mode test. Vous pouvez exécuter le traitement à nombre de tests d’une application n’a donc aucune
optimiser dans votre application. Chaque test est composé d’un scénario directe- incidence sur la taille de l’application livrée en
• toutes les actions effectuées dans l’application ment éditable dans l’interface du produit. Ce scé- clientèle.

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


Pour plus de détails, consultez l’aide en ligne (mot- différences existantes entre les deux scripts (script
clé : "Test automatique"). d’origine et script de résultat) sont signalées.
Il est ainsi possible par exemple de vérifier le fonc-
7.3 L’utilitaire WDTest tionnement de vos applications WinDev entre deux
WDTest est un utilitaire permettant d’enregistrer mises à jour.
et d’exécuter automatiquement des scripts de test WDTest permet donc d’automatiser les procédures
d’applications (WinDev ou non WinDev). de test de vos applications.
Un script de test (appelé également "macro") Important : Pour effectuer un test avec succès, il
contient principalement les différentes manipula- est nécessaire d’utiliser exactement la même confi-
tions (position de la souris, clic de souris et touche guration :
du clavier utilisé) effectuées sur une application.
Après avoir été enregistré, le script de test peut être
• sur le poste où le test est créé.
• sur le poste sur lequel le test est exécuté.
PARTIE 5
exécuté à volonté. Lorsqu’un script est exécuté, un
Pour plus de détails, consultez l’aide en ligne (mot-
script de résultat est automatiquement généré. Les
clé : "WDTest").

Installation

156 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 :
• soit le Framework WinDev commun,
• soit un Framework personnalisé.

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
installées sur le même poste.

Avantages du Framework commun :


• L’espace disque utilisé par le Framework (environ 30 Mo) est mutualisé entre les
applications.
• La mise à jour du Framework ne se fait qu’une fois pour toutes les applications ins-
tallées

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).

Utilisation d’un Framework personnalisé


Dans le cas de l’utilisation d’un Framework personnalisé, les librairies sont installées
dans le répertoire de chaque application. De cette façon, chaque application WinDev uti-
lise sa propre version des librairies. Il est également possible de renommer les librairies
dans le cas de l’utilisation d’un Framework personnalisé.

Avantages du Framework personnalisé :


• 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é.

158 Partie 5 : Installation Partie 5 : Installation 159


Les différents modes d’ins-
tallation d’une application
Installation réseau
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 di-
rectement l’installation de l’application par le réseau.

Installation classique
L’installation classique consiste à créer un programme d’installation qui sera installé sur
chaque poste utilisateur grâce à un support d’installation.

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.

Une installation réseau permet un contrôle fin des postes utilisateurs (versions dé-
Ce mode d’installation est compatible aussi bien avec : ployées, mises à jour obligatoires, déconnexion des utilisateurs, etc.)
• des fichiers de données au format HyperFileSQL Classic installé en local sur le poste
utilisateur, Ce mode d’installation est compatible aussi bien avec :
• des fichiers de données au format HyperFileSQL Classic installé en réseau et acces- • des fichiers de données au format HyperFileSQL Classic installés en local sur le
sible depuis le poste utilisateur, poste utilisateur,
• des fichiers de données au format HyperFileSQL Client/Serveur installé sur un ser- • des fichiers de données au format HyperFileSQL Classic installés en réseau et
veur. accessible depuis le poste utilisateur,
• des fichiers de données au format HyperFileSQL Client/Serveur installés sur un ser-
veur.

160 Partie 5 : Installation Partie 5 : Installation 161


Installation HTTP Installation multi-sites
L’installation multi-sites permet d’installer une application sur plusieurs sites différents
L’installation HTTP consiste à créer un programme d’installation qui sera installé sur un (un site représentant par exemple une filiale d’une entreprise).
Serveur Web. L’installation multi-sites consiste à créer un programme d’installation qui sera installé
Tous les postes utilisateur voulant installer l’application, lanceront directement l’installa- sur un serveur Web.
tion de l’application par une URL HTTP. 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.
Cette installation combine les avantages de l’installation réseau et de l’installation HTTP
en permettant un déploiement à grande échelle et un contrôle fin des installations lo-
cales.

Si une mise à jour est disponible sur le serveur Web, la mise à jour de l’application sur le 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. serveur d’application est automatiquement réalisée.

162 Partie 5 : Installation Partie 5 : Installation 163


Installation Push
L’installation réseau consiste à créer un programme d’installation qui sera installé sur
Déploiement d’une application WinDev
un poste Serveur. Lors du développement d’une application, une des • dans les différents modes d’installation dispo-
L’installation sera effectuée depuis le poste Serveur, par l’administrateur réseau sur les phases importantes consiste à déployer cette appli- nibles (installation monoposte ou réseau).
postes Utilisateur sélectionnés grâce à WD1xxAdminExe. cation sur les postes des utilisateurs.
Ce chapitre décrit rapidement les différents types
WinDev optimise ce déploiement en offrant un d’installation proposés par WinDev et leurs spéci-
large choix : ficités.
• dans les supports d’installation. Pour plus de détails sur la création du programme
• dans les outils disponibles pour créer le pro- d’installation, consultez l’aide en ligne.
gramme d’installation.

1 Installation : Tableau récapitulatif

1.1 Support d’installation


En fonction du support d’installation utilisé (Inter-
net, Réseau interne, …), WinDev offre plusieurs
modes de génération de l’installation.
Pour optimiser votre installation, choisissez le
mode de génération conseillé.

Modes de génération de l’installation proposés par WinDev


Exécutable Répertoires Répertoire CD ROM
Auto- à la taille de unique DVD ROM
Extractible disquettes
Internet X (conseillé)
CD ROM / X X (conseillé)

d’installation
Supports
DVD ROM Autorun
possible

Réseau X X (conseillé) X
interne

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

164 Partie 5 : Installation Partie 5 : Installation 165


1.2 Outils pour créer le programme d’instal- effectuée. tion WDINST (option "Fichier .. Nouveau" depuis
lation • Installation avec mise à jour automatique (ins- WDINST).
tallation réseau) Rappel : Pour lancer l’éditeur d’installation
Différents outils sont disponibles pour créer le pro- WDINST, sous le volet "Outils", dans le groupe
gramme d’installation, le maintenir et le personna- Cette installation permet de :
• gérer la mise à jour automatique de l’applica- "Utilitaires", cliquez sur "WDInst".
liser.
tion installée en réseau. 2.2 Installer une application WinDev
• connaître les caractéristiques des utilisateurs
Assistant WDINST, Personnalisation connectés à l’application à un moment donné. Installation standard, compacte ou
éditeur de MSI
d’installation WDSETUP • paramétrer l’emplacement des fichiers néces-
saires à l’application. Il est possible de gérer Pour installer votre application, il suffit de lancer
différents cas, par exemple : le programme d’installation de l’application sur le
Créer un programme d’installation X (conseillé) X poste utilisateur. Les fichiers nécessaires à l’appli-
standard (en français et anglais par - Installation de tous les fichiers de l’applica- cation s’installent dans le répertoire d’installation
défaut) tion sur le serveur. spécifié.
- Installation de la base de données sur le
Maintenir un programme d’installa- X X Pour installer une mise à jour de votre application,
tion serveur et des fichiers nécessaires à l’exécu- il suffit de lancer le programme d’installation de la
tion de l’application (".EXE", ".WDL", ".DLL", ...) mise à jour sur le poste utilisateur. Les fichiers de
Personnaliser un programme d’ins- X X sur chaque poste utilisateur. l’application modifiés par la mise à jour sont rem-
tallation (le programme qui est lancé (installation multi- - Installation d’une partie de la base de don- placés.
chez le client) lingue par exemple) nées sur le serveur et d’une autre partie sur
chaque poste utilisateur. Les fichiers néces- Installation avec mise à jour auto-
Mode de lancement Sous le volet Sous le volet Projet WDSETUP dis- saires à l’exécution de l’application (".EXE", matique
"Projet", dans le "Outils", dans ponible dans le sous- ".WDL", ".DLL", ...) sont également installés Pour installer votre application :
groupe "Géné- le groupe "Utili- répertoire "Exemples" sur chaque poste utilisateur. 1. Lancez votre programme d’installation sur le
ral", cliquez sur taires", cliquez du répertoire d’instal- • Installation avec mise à jour automatique (ins- poste serveur. Les fichiers nécessaires à l’appli-
"Procédure d’ins- sur "WDInst". lation de WinDev. tallation réseau en mode PUSH) cation de référence s’installent dans le répertoire
tallation". Cette installation permet en plus de l’installation d’installation spécifié. L’application de référence
réseau de : correspond à un programme d’installation client.
2. Exécutez le programme d’installation client à
• déployer une nouvelle application sur un ré-
1.3 Les différents types d’installation L’installation est réalisée en deux étapes : seau depuis un unique poste d’administration.
partir de chaque poste utilisateur. Les fichiers né-
• L’application de référence est installée sur le cessaires à l’application client sont installés dans
Deux types d’installations sont disponibles dans • déployer une mise à jour de l’application sur le répertoire d’installation spécifié.
WinDev : serveur. L’application de référence correspond un réseau depuis un unique poste d’adminis-
au programme d’installation de l’application tration. Pour installer une mise à jour de votre application :
• Installation autonome : conseillée pour les appli-
sur les postes utilisateur. 1. Lancez votre mise à jour d’installation sur le
cations monopostes.
Le programme d’installation installe l’application • L’application finale est installée sur chaque 2.1 Créer un programme d’installation poste serveur. Les fichiers de l’application de réfé-
directement sur le poste utilisateur. poste utilisateur, en exécutant le programme rence modifiés par la mise à jour sont remplacés. Il
Pour créer un programme d’installation permettant
d’installation présent sur le serveur. Les mises est possible de sauvegarder ces fichiers remplacés.
• Installation "réseau avec gestion des utilisa- de :
à jour seront ensuite effectuées automatique- 2. Lors du lancement de l’application depuis le
teurs" : conseillée pour les applications multi- ment lorsque l’application de référence évo- • déployer une application WinDev, il est possible : poste d’un utilisateur, la mise à jour de l’application
postes. luera sur le serveur. • soit d’utiliser l’assistant de création du pro- est automatiquement proposée.
gramme d’installation directement depuis
WinDev (sous le volet "Projet", dans le groupe
Installation avec mise à jour automa-
2 Création du programme d’installation "Génération", cliquez sur "Procédure d’installa-
tique en mode PUSH
tion"). Cet assistant permet de créer facilement
les différents types de programme d’installa- Pour installer votre application en mode PUSH :
Différents types d’installation sont possibles : • Installation compacte tion. 1. Lancez votre programme d’installation sur le
• Installation standard Une installation standard est effectuée. Cepen-
• soit d’utiliser l’éditeur d’installation WDINST poste serveur. Les fichiers nécessaires à l’appli-
Le programme d’installation est indépendant dant, le programme d’installation est moins
(sous le volet "Outils", dans le groupe "Uti- cation de référence s’installent dans le répertoire
de l’application. Tous les fichiers nécessaires à important en taille car il n’utilise pas de DLL spé-
litaires", cliquez sur "WDInst"). Cet éditeur d’installation spécifié. L’application de référence
l’application sont installés sur chacun des postes cifiques et certaines options de personnalisation
permet de personnaliser entièrement le pro- correspond à un programme d’installation client.
utilisateurs. Pour prendre en compte une mise à ne sont pas disponibles.
gramme d’installation. 2. Le programme d’administration des applications
jour, cette mise à jour doit être exécutée sur cha- • Installation par un package MSI réseau se lance automatiquement.
cun des postes utilisateurs. Une installation standard utilisant les fonction- • fournir d’autres fichiers, il est nécessaire d’uti-
liser l’assistant de création du programme 3. Sélectionnez le poste du réseau sur lequel l’ins-
nalités de l’installateur intégré de Windows est tallation doit être effectuée.
d’installation lancé depuis l’éditeur d’installa-

166 Partie 5 : Installation Partie 5 : Installation 167


Surveillez vos
Pour installer une mise à jour de votre application
en mode PUSH :
1. Lancez votre mise à jour d’installation sur le
applications
poste serveur. Les fichiers de l’application de réfé-
rence modifiés par la mise à jour sont remplacés. Il Une application dépend souvent de nombreux paramètres extérieurs : site Web, Serveur
est possible de sauvegarder ces fichiers remplacés. HyperFileSQL, réseau, ... Pour optimiser la gestion des incidents, WinDev propose d’utili-
2. Lancez le programme d’administration des appli- ser un robot de surveillance.
cations réseau. Composé de trois exécutables lancés sur différents postes, le robot de surveillance per-
3. Sélectionnez le poste du réseau sur lequel la
mise à jour doit être effectuée. 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.

168 Partie 5 : Installation Partie 5 : Installation 169


PARTIE 6

Communication

170 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.

• 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.

172 Partie 6 : Communication Partie 6 : Communication 173


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
nécessaire de suivre les règles suivantes :
1. Connexion à un serveur FTP (fonction FTPConnecte).

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é.

174 Partie 6 : Communication Partie 6 : Communication 175


Gestion des
sockets
WinDev met à votre disposition des fonctions qui permettent de réaliser une gestion
avancée des sockets.
Une socket est une ressource de communication utilisée par les applications pour dialo-
guer d’une machine à une autre sans se soucier du type de réseau.
Ce mode de communication peut par exemple être utilisé pour établir une communica-
tion entre des postes reliés par Internet.

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

Principe d’une application cliente


Une application cliente d’un serveur de sockets se connecte à un serveur quelconque
pour échanger des informations par l’intermédiaire d’une socket.
Exemple : Une application WinDev cliente peut se connecter à un serveur de news stan-
3. Fermeture de la connexion avec le serveur (fonction FTPDéconnecte). dard sur Internet.
Etape 1 : Connexion au serveur
Pour se connecter à une socket du serveur, utilisez la fonction SocketConnecte. Cette
fonction permet d’effectuer une demande de connexion au serveur. La socket est identi-
fiée par son port et par son adresse.
Etape 2 : Échange de données
Lorsque deux postes ont connecté leur socket, un flux de communication s’établit entre
ces deux postes. Il est alors possible pour ces deux postes de lire et d’écrire des chaînes
de caractères sur la socket.
Pour lire et écrire sur la 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 la socket depuis le poste client avec
la fonction SocketFerme.

176 Partie 6 : Communication Partie 6 : Communication 177


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 grâce
aux fonctions WLangage de téléphonie. Ces fonctions permettent par exemple de gérer
une boîte vocale, un répondeur, ... directement dans une application WinDev.

Remarque : les fonctions SocketXXX permettent aussi de gérer des sockets sécurisées
selon le protocole SSL. Il faut pour cela utiliser les fonctions SocketCréeSSL et Socket-
ConnecteSSL.
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.

Remarque : Cette technologie est utilisable sur tous les systèmes, cependant, il est né-
cessaire :
• si le système utilisé est Windows NT4, d’installer le service pack 4 minimum,
• si le système est Windows 95, de mettre à jour le système (mise à jour disponible à
l’adresse ftp://ftp.microsoft.com/developr/tapi/tapi2195.zip).
(note : adresse valide à la date de rédaction de cette documentation)

178 Partie 6 : Communication Partie 6 : Communication 179


Les
Webservices
WinDev vous permet d’utiliser très simplement des Webservices (ou services Web XML).
Un Webservice est une application disponible sur le web et à laquelle on accède en uti-
lisant le protocole SOAP (Simple Object Access Protocol).

Toute application WinDev peut utiliser un Webservice existant. Pour cela, il suffit de
connaître l’adresse du Webservice et d’importer sa description dans l’application.
PARTIE 7

Annexes

Remarque : il est également possible d’exposer une ou plusieurs collections de procé-


dures d’une application WinDev sous la forme d’un Webservice. Il faut pour cela créer
une configuration de projet dédiée à cet usage, générer le Webservice et le déployer sur
un Serveur d’Application WebDev.

180 Partie 6 : Communication


Composants livrés
avec WinDev
WinDev est livré en standard avec de nombreux composants. Ces composants sont livrés
avec leurs sources et avec un exemple d’utilisation.
Voici la liste des principaux composants livrés avec WinDev :

Nom du composant Description


AfficheImage Permet d’annoter une image (Hard copy par exemple). Il est possible d’in-
sérer du texte, des traits, etc.
Agent Permet de gérer un Agent (ou Compagnon).
Aide furtive Permet d’afficher des informations temporaires à l’utilisateur sans per-
turber son travail.
Balloon tip Permet de gérer l’affichage d’une BalloonTip (bulle d’aide avancée, affi-
chée au-dessus de la barre des tâches).

Calculs statistiques Hy- Permet de maintenir les statistiques d’index HyperFileSQL à jour sans
perFileSQL programmation.

Codes postaux France Permet la recherche et la sélection d’une ville sans modifier l’analyse.

Communication Permet de faire communiquer deux applications distinctes. Ces deux


applications peuvent être :
- Soit sur des postes distants. La communication est effectuée via soc-
kets.
- Soit sur le même poste. La communication est effectuée grâce aux mes-
sages Windows.

Connexion SQL Se charge d’effectuer la connexion à la base de données, via les informa-
tions que l’utilisateur fournira lors de l’affichage d’une fenêtre de para-
métrage de la connexion.

Derniers documents Permet de proposer une option de menu permettant d’ouvrir les derniers
documents ouverts dans l’application.

Diagramme Gantt Permet de créer un diagramme de Gantt à partir d’une liste des tâches.

Ecran Tactile Ce composant permet l’interfaçage d’un clavier tactile pouvant rempla-
cer le clavier standard. Ce clavier permet par exemple d’utiliser une appli-
cation WinDev sur un poste ne disposant pas de clavier.

Email Saisie assistée Assiste la saisie de l’utilisateur pour enregistrer un email.

182 Partie 7 : Annexes Partie 7 : Annexes 183


Envoi d’Email Permet de : Le Saviez Vous Permet d’afficher des trucs et astuces à partir des diverses sources (As-
- créer des messages prédéfinis pour des envois ultérieurs tuces prédéfinies dans le code ou à partir d’un fichier).
- créer des contacts et des listes de destinataires
- créer des messages et envoyer des emails Limitation Permet de limiter une application par différents moyens :
- Limitation de durée (Application limitée à 30 jours)
Envoi de SMS Ce composant permet l’envoi de SMS à partir d’une connexion internet - Limitation à 1 poste (Application n’a le droit de s’exécuter que sur un
simple. seul poste)
- Limitation du nombre d’utilisateurs (Une application ne peut pas être
Explorer bar Permet de gérer une barre d’adresse similaire à la barre d’adresse de exécutée par plus de n utilisateurs)
l’explorateur de Windows Vista.
ListeGraphique Permet de gérer une liste graphique dans une fenêtre interne.
Extraction Ce composant permet d’extraire et de stocker le contenu de divers docu-
ments (Open Office, Word 2007, ...) afin de les retrouver grâce à la re- Modèle impression Permet de gérer des profils d’impression.
cherche full-text.
Moteur de recherche Permet d’indexer des documents (texte, vidéos, sons, …) selon un iden-
Fax Permet de gérer l’édition et l’envoi de fax (fonctionne uniquement sous tifiant géré par l’utilisateur (pouvant provenir d’un fichier de données Hy-
Windows 2000 et Windows XP). perFileSQL, …) et des mots-clés (texte contenu dans un document, nom
de fichier, …).
File impression Détermine la liste des imprimantes les moins sollicitées pour effectuer Il permet également d’effectuer des recherches sur les documents ainsi
un ou plusieurs travaux d’impression. indexés et de générer des statistiques d’indexation (mots-clés inutilisés,
nombre de documents par mots-clés, …).
Gestion Login Centralise la gestion des utilisateurs et de leurs mots de passe.
Paiement sécurisé Permet d’effectuer des transactions bancaires en ligne, telles que :
Gestion Logs Permet de définir, pour une application, un paramétrage des logs d’exé- - faire une demande de prélèvement par carte bancaire
cution : - effectuer un remboursement par carte bancaire
- nombre de fichiers de log qui doivent être conservés, - annuler une transaction bancaire
- taille maximale par fichier de log, - faire une demande d’autorisation de prélèvement
- informations qui doivent être logguées. - ...
Cet exemple simule différents traitements pour observer la gestion des
fichiers de logs (fichiers .wlog). Pays du monde Contient la liste de tous les pays du monde et certaines informations :
- code ISO de chaque pays
Glossaire Permet de classer et de conserver des formulations écrites qu’un client - liste des régions, états ou pays constituant un pays (avec le décalage
réutilise régulièrement. horaire pour chaque état, région ou pays)
Il est ainsi possible de proposer en permanence au client un accès à un - décalage horaire (GMT)
"Glossaire" qu’il personnalise aisément. Toutes les entrées du glossaire - monnaie principale du pays
peuvent être classées en catégories arborescentes.
- principales langues parlées
InfoSysteme Propose trois catégories de fonctions permettant de rassembler les - drapeau de chaque pays
informations sur le poste en cours, l’utilisateur et le réseau auquel est - capitale
connecté le poste en cours. - indicatif téléphonique

JournalEvenement Permet de : Photocopieur Permet de réaliser des photocopies de documents à l’aide d’un scanner
et d’une imprimante.
- Lister et lire les événements enregistrés dans le journal des événements
de Windows.
Recherche RTF Permet d’effectuer tout type de recherches dans un champ RTF.
- Ajouter un événement dans le journal des événements de Windows.
Saisie assistée de réper- Permet d’assister la saisie d’un chemin de répertoire ou de fichier dans
JoursFériés Permet : toire un champ de saisie.
- d’afficher un calendrier et de sélectionner une date
- de gérer les jours fériés dans un calendrier Scanner Permet de numériser un document à l’aide d’une interface intuitive.

184 Partie 7 : Annexes Partie 7 : Annexes 185


Exemples livrés
Sélecteurs Regroupe tous les sélecteurs disponibles en WLangage. Chaque sélec-
teur mémorise automatiquement le dernier chemin sélectionné dans la
base de registres. Ceci évite à l’utilisateur de re-parcourir tous les dos-
avec WinDev
siers à la recherche du ou des fichiers/répertoires qu’il souhaite sélec-
tionner. Les exemples livrés avec WinDev présentent de manière didactique les différentes fonc-
Signature Permet d’intégrer facilement dans vos applications WinDev un champ ‘Si- tionnalités de WinDev.
gnature’ prêt à l’emploi. Ce champ est notamment très pratique pour les Leur code source est commenté et détaillé.
applications qui sont destinées à des terminaux tactiles, TabletPC sous Ces exemples sont présents dans le sous-répertoire "Exemples" du répertoire d’installa-
Windows XP, bornes interactives, ... tion de WinDev et peuvent être ouverts directement depuis le volet "Assistants, Exemples
et Composants".
Simplexe Permet de réaliser des calculs à partir de l’algorithme du Simplexe.

SOAP GMT Permet de récupérer l’heure et la date système d’un poste distant grâce Différents types d’exemples sont livrés avec WinDev :
au protocole SOAP. • Exemples complets : ces exemples correspondent à des applications complètes, qui
peuvent être utilisées sans adaptation.
Socket Client Simplifie l’utilisation des fonctions de serveur de socket. Ce composant
gère la connexion à un serveur. Seul le dialogue avec le serveur reste à • Exemples didactiques : ces exemples illustrent une fonctionnalité spécifique.
votre charge.
Voici les fonctionnalités de quelques exemples livrés avec WinDev.
Socket Serveur Simplifie l’utilisation des fonctions de serveur de socket. Ce composant
gère le lancement du serveur et l’acceptation des connexions clientes.
Seul le dialogue avec les applications clientes reste à votre charge. Exemples complets
Table Etendue Egalement appelées "TableView", les tables étendues permettent d’affi-
cher des informations hiérarchiques dans une table. Ces tables étendues CRM Permet de gérer des clients, d’établir des commandes et des devis,
sont souvent utilisées dans les logiciels de messagerie pour lister, par et de gérer une liste de tâches et un planning.
exemple, les messages et leurs réponses, ainsi que la date, l’heure et
l’auteur des messages. eCommerce (Back office) Cet exemple est une application de back-office pour le site eCom-
merce. Il utilise le webservice eCommerce afin de :
WIFI Permet de : - gérer les produits
- lister les cartes réseaux disponibles sur le poste en cours - gérer les commandes
- lister les réseaux WIFI disponibles - modérer les avis
- connaître la qualité du signal WIFI - ...
- récupérer des informations sur une connexion WIFI établie Gestion Commerciale Cette application est composée de 5 projets permettant de gérer
tous les aspects d’une gestion commerciale (clients, fournisseurs,
Zone mémoire Permet de visualiser dans une fenêtre le contenu entier d’une zone produits, stock).
mémoire. Permet également de modifier et d’ajouter des valeurs dans la
zone mémoire. WB Setup Cet exemple peut être utilisé pour personnaliser l’installation par
média physique d’un site WebDev ou d’un WebService.
Pour éditer le projet, il est nécessaire de disposer de WinDev.
Deux sous-répertoires sont spécifiques à chacun de ces exemples : L’exécutable généré pourra être spécifié comme installeur dans
l’assistant de création d’installation d’un site ou d’un WebService.
• le sous-répertoire "<NomDuComposant>-Exemple" contient un exemple de projet utili-
sant le composant,
WD Active Directory DotNet Permet la visualisation du contenu d’un Active Directory.
• le sous-répertoire "<NomDuComposant>-Source" contient le projet du composant.
WD Agenda Permet de synchroniser des rendez-vous entre vos agendas Out-
Des composants supplémentaires seront livrés avec la Lettre du Support Technique look, Lotus Notes et Google.
(LST) ou seront disponibles sur notre site (www.pcsoft.fr). WD Album HTML Permet de générer un album photo HTML.
WD Calculette Euro Présente la conversion multi-devise grâce à une calculette.

186 Partie 7 : Annexes Partie 7 : Annexes 187


WD Client de la messagerie Messagerie utilisant les fonctionnalités RPC de WinDev pour le WD Gestion de parc informatique Permet de gérer un parc informatique. Pour chaque poste du parc,
dialogue avec le serveur de messages. Cet exemple est associé à ses caractéristiques, ses composants et ses utilisateurs peuvent
l’exemple "WD Serveur de la messagerie". être définis.
Ces fonctionnalités sont mises en œuvre grâce à l’utilisation de
WD Comptabilité Utilise des filtres et des requêtes. requêtes, d’états et de combos.
Propose également une utilisation particulière des états : les états
sur table. WD Gestionnaire de tâches DOT- Permet de lister les applications et les processus grâce à des fonc-
NET tions .NET.
WD Congés et RTT Gestion complète des congés et des RTT des collaborateurs d’une Permet d’effectuer différents traitements sur les applications et sur
société. les processus.
Chaque utilisateur dispose d’un tableau de bord de l’état de ses
congés et RTT. WD Graveur Permet de graver des CD Audio et des CD de données, DVD ou
disques Blue-Ray.
WD Dictaphone Propose les fonctionnalités d’un magnétophone. Il permet d’enre-
gistrer un son au format "WAV" et de le réécouter. WD Graveur Lite Permet de graver des CD de données, DVD ou disques Blue-Ray.

WD Editeur RTF Permet d’éditer du texte avec mise en forme RTF. WD JaugeFTP Présente l’utilisation d’une fenêtre interne pour avoir une jauge
avancée.
WD Emprunt Permet de simuler des emprunts et notamment de : WD LDAP Exploreur Permet de visualiser le contenu de tout annuaire LDAP et de modi-
- calculer le montant des mensualités à partir du montant emprun- fier les données LDAP.
té donné
- calculer le montant empruntable à partir d’une mensualité don- WD Lecteur RSS Présente l’utilisation de classes permettant de lire des flux RSS
née
- calculer le rapport d’un placement à partir d’un apport mensuel WD Loupe Permet de zoomer une partie de l’écran grâce à une loupe visuelle.
Pour chaque cas, il est possible d’imprimer le tableau d’amortisse- Il est possible de zoomer jusqu’à 8 fois.
ment correspondant à vos paramètres.
WD Mail Cette application est un client mail complet. Il s’appuie sur les
objets Email. Ce client mail permet de récupérer et d’envoyer des
WD Frais de port Gère les calculs de frais de port de colis.
emails en utilisant les protocoles POP, IMAP et SMTP.
WD Génération de données Génère des données de tests pour vos applications. Ces données WD Messagerie instantanée Présente les différentes fonctions de gestion des sockets.
sont stockées dans des fichiers de données externes à l’applica-
tion. Pour manipuler ces fichiers de données, il n’est pas néces- WD MotDePasse Présente un "coffre" à mot de passe. Il peut être utilisé pour gérer
saire d’associer une analyse au projet. les mots de passe créés lors de l’utilisation de sites Internet mais
WD Gestion Contacts Permet de gérer des contacts et de leur envoyer des emails. également dans des applications ou des mots de passe de la vie
courante (digicodes, codes de cartes bancaires, etc.) .
Il est également possible de synchroniser ces contacts avec ceux
présents sur le terminal mobile relié au PC et avec ceux de Outlook. WD Multimédia Permet de lire et de jouer :
WD Gestion de commandes Gestion de commandes/factures simplifiée. - des vidéos (AVI, MPEG...),
Permet de : - des fichiers sons (MP3, WAV),
- créer/modifier/supprimer un produit, - des CD Audio,
- créer/modifier/supprimer un client, - des animations Flash.
- contacter un client par email, WD Outlook Permet de lire et écrire dans les dossiers de Outlook :
- voir l’historique des actions effectuées auprès d’un client, - Messagerie
- effectuer une commande, imprimer un bon de commande, - Calendrier
- facturer une commande, imprimer une facture, envoyer automati- - Contacts
quement une facture au client par email au format PDF.
- Tâches.
Cet exemple est conçu pour fonctionner avec la version standard
de Outlook livrée avec Office.

188 Partie 7 : Annexes Partie 7 : Annexes 189


WD Planning Permet de réaliser un planning comportant des zones clicables. WD VisuTIF Petit éditeur d’image conçu avec WinDev mais uniquement pour le
format d’image TIF.
WD Proxy HTTP Cet exemple est un proxy HTTP simplifié. Il est possible d’enregis- WD VisuTif permet d’ouvrir une image et d’afficher les différentes
trer les connexions et de connaître les pages consultées. pages de l’image
- soit en mode MDI (dans plusieurs fenêtres filles),
WD ProxyPOP3 Cet exemple présente un proxy POP3. Dans cet exemple, le proxy - soit en mode diaporama.
est utilisé pour archiver automatiquement dans une base HyperFi-
leSQL les emails récupérés.
WD WebCam Présente l’intégration d’une Web Caméra dans une fenêtre WinDev.
WD Puzzle Montre comment utiliser les fonctions Drag&Drop ainsi que les Il est possible de :
fonctions de manipulation d’images en WLangage. - Visualiser l’image retransmise par la caméra
- Effectuer une capture instantanée
WD Recherche sur Internet Permet de piloter différents moteurs de recherche sur Internet
(Yahoo, Alta Vista, Voilà, Lycos, Excite, Nomade, Google, Euroseek, - Capturer la scène retransmise sous forme d’animation Windows
etc.). Le résultat de la recherche est affiché grâce à un ActiveX. (Fichier "AVI")

WD Répondeur Téléphonique Utilise les fonctionnalités de téléphonie pour la gestion d’un répon- WD WMI DOTNET Le WMI (Windows Management Instrumentation) permet une ad-
deur téléphonique. Ce répondeur est interrogeable et paramétrable ministration exhaustive des applications et des périphériques. Le
à distance grâce à un menu. WMI peut être comparé à une base de données regroupant de mul-
tiples informations sur un poste.
WD Scanner - Twain Permet de : Il est en effet possible de lister les périphériques installés (réseaux,
- Prévisualiser une partie d’un document cartes vidéos, processeurs) comme les applications (du système
- Numériser un document (format GIF, JPEG, BMP) d’exploitation à une application "normale").
- Numériser un document et le placer dans le presse-papiers
WD Zip Permet de créer et de lire des archives compressées au format
- Numériser un document et l’imprimer "WDZ" (ZIP WinDev).
WD Serveur de la messagerie Serveur de messagerie à utiliser avec l’exemple WD Client de la
messagerie.
WD Synchronisation de fichiers Permet de synchroniser deux répertoires de fichiers. Exemples didactiques
Après synchronisation, le répertoire de destination est identique au
répertoire source. La comparaison est effectuée sur la présence et WD Agent Intègre un "compagnon" dans une application WinDev grâce à un
la date des fichiers. ActiveX.
WD Téléphonie Utilise les fonctions téléphonie de WinDev pour : WD Alarme Affiche un message d’alerte dans la barre de titre de la fenêtre
- Composer un numéro de téléphone active (quelle que soit l’application). Ce message peut éventuelle-
- Détecter et identifier des appels entrants ment s’accompagner d’une alarme sonore.

WD Télésurveillance Permet de transmettre des images filmées par une Web Caméra à WD Animated Présente les principales animations réalisables sur un champ
travers un réseau (Internet, Intranet, etc.). Image.
Cet exemple propose :
WD Threads FTP Permet le transfert simultané via FTP de plusieurs fichiers se trou- - des animations sans aucun code,
vant dans un même répertoire.
- des animations programmées.
WD Transfert de fichiers par FTP Permet de transférer des fichiers : WD APISystemes Montre l’utilisation des Apis Windows.
- d’un serveur FTP vers le poste local,
- du poste local vers un serveur FTP. WD Appels JAVA Cet exemple illustre l’appel aux méthodes des classes d’une
archive JAR grâce à la fonction WLangage JavaExécuteFonction.
WD Visioconférence Permet d’entrer en conférence avec un utilisateur distant. Cet exemple montre également le remplissage d’une table mé-
Permet d’envoyer un fichier à un correspondant et de dialoguer moire (identique en mode Java et en mode Windows)
avec lui.

190 Partie 7 : Annexes Partie 7 : Annexes 191


WD Arbre Doublons Cet exemple permet de manipuler les doublons dans un arbre WD Changements Gabarits Cet exemple présente une solution de changement dynamique
grâce aux fonctions WLangage ArbreID et ArbreSelect. de gabarits par les utilisateurs.

WD Assistant Gère une fenêtre de type "Assistant". WD Classe XLS Cet exemple didactique a pour but d’offrir une première ap-
proche, simple, de la manipulation des types avancés xlsDocu-
WD BGInfo Cet exemple montre comment écrire des informations sur le fond ment, xlsColonne, xlsLigne et xlsCellule.
d’écran d’un ordinateur (adresse IP, Nom de la machine, Date du
jour etc.). WD Clic sur Graphe Cet exemple propose une solution pour excentrer les parts d’un
graphe de type secteur sur un simple clic utilisateur.
WD Bluetooth Cet exemple montre l’utilisation des fonctions Bluetooth :
WD Client Java Cet exemple est une application Java développée avec WinDev.
- pour lister les périphériques Bluetooth accessibles
Cet exemple présente notamment :
- pour lister les services offerts par un périphérique
- les ordres Hxxx gérés en Java sur HyperFileSQL (les ordres Hxxx
- pour se connecter à un périphérique Bluetooth sont disponibles en Java sur MySQL et SQL Server également)
- pour envoyer un fichier à un périphérique via les fonctions - les champs avec des liaisons fichiers
"OBEX" du WLangage.
WD Client Soap Cet exemple illustre l’utilisation des fonctions SOAP disponibles
WD Calculs sur les dates et heures Effectue différents calculs sur les dates et les heures, à l’aide de en WLangage
procédures :
- Calculer la durée écoulée entre deux instants (dates et heures) WD Client Webservice Cet exemple illustre l’utilisation des WebServices
- Effectuer une somme de durées
- Effectuer une moyenne de durées WD CodeBarre Permet de créer des produits et de leur associer un code-barres
existant grâce à un lecteur de code-barres. Ces produits peuvent
WD CalculsPersonnalisés Propose une solution pour qu’un utilisateur puisse saisir une for- être imprimés sous forme d’étiquettes.
mule de calcul dans une colonne de table.
WD Coloration Recherche Cet exemple présente comment mettre en évidence les mots
WD Caractères Ce programme réalisé avec WinDev permet d’insérer des carac- recherchés dans les résultats d’une recherche full-text.
tères spéciaux dans un champ RTF et de visualiser les codes
WD Coloration Syntaxique Cet exemple propose une classe de base permettant d’effectuer
ASCII et ANSI
une coloration syntaxique classique sur du texte.
WD Carrousel Cet exemple montre l’utilisation du champ carrousel de WinDev. WD Commandes vocales Par défaut, une application WinDev répond déjà à la voix, lorsque
Il se manipule exactement comme un champ Liste Image. l’on dicte dans un champ de saisie, ou lorsque l’on énonce le
libellé d’un bouton.
WD Carte clicable Présente une application de cartographie grâce à l’utilisation
Il est également possible de programmer une commande vocale
d’une carte routière MICHELIN (autorisation n°9905251).
spécifique pour effectuer une action particulière.
Dans la partie gauche de la fenêtre, la carte est affichée en en-
tier avec un quadrillage. Lors du clic dans un des rectangles du WD Compilation dynamique Présente :
quadrillage, la région correspondante se dessine dans la partie
droite de la fenêtre. - La compilation dynamique de code WLangage
- L’exécution de code compilé dynamiquement
WD Champ Recherche Cet exemple montre comment gérer un champ de saisie permet- - Le traitement des éventuelles erreurs d’exécution
tant de réaliser des recherches FullText de type "google" dans
votre base de données. WD ContrôleADistance Permet de mettre en application le contrôle à distance d’une
WD Champs Java Présente quelques champs gérés en Java : application WinDev.
- le champ "jauge"
WD Contrôles de saisie Effectue la vérification des données saisies par l’utilisateur (nom,
- le champ "splitter" société, code postal, ville, adresse e-mail, etc.) dans une fenêtre
- le champ "liste image" de type formulaire.
- les actions prédéfinies
- le look Vista grâce au gabarit Vista livré en standard avec Win-
Dev.

192 Partie 7 : Annexes Partie 7 : Annexes 193


WD Conversion RTF Présente comment transformer un texte au format RTF (avec WD Envoi touches Illustre l’envoi de séquences clavier à une application avec les
mise en forme) en un format "texte brut" (pour la réalisation de fonctions WLangage.
traitements) ou HTML (pour une utilisation dans un email ou un
site Internet par exemple) WD Etats Présente les différentes sources de données d’un état :
- Etat à partir d’une table mémoire
WD Correcteur orthographe Permet de lancer le correcteur orthographique de Word à partir - Etat à partir d’une zone mémoire
d’une application WinDev. - Etat à partir d’une vue
Ce programme établit pour cela une connexion OLE avec Word. - Etat à partir d’une requête
- Etat étiquette avec code-barres
WD Cryptage de données Présente les différentes méthodes de cryptage de données (sur - Etat à partir d’un fichier texte (gestion automatique ou par pro-
des chaînes de caractères ou des fichiers textes). grammation)
- Etat avec passage de paramètres
WD Data Binding L’exemple "WD DataBinding" présente comment lier un champ à
une variable du WLangage. WD Etats avancés Présente différents types d’états. Permet d’illustrer :
- les états internes,
WD Dessin sur Graphe Cet exemple repose sur l’utilisation d’un composant interne per- - le champ graphe,
mettant de dessiner des éléments sur un champ graphe : Zones
- l’impression dans un fichier RTF, HTML ou PDF.
min/max, Zones diverses, Drapeaux, Plots et trackers de suivi,...
WD Etats clicables L’exemple liste les clients et permet d’imprimer cette liste de
WD Dessiner Met en évidence des parties d’un document scanné ou annote clients.
des images grâce aux fonctions de dessin du WLangage. Lors de l’aperçu avant impression, un clic sur le nom du client
ouvre la fiche du client sélectionné.
WD Dessiner Java Présente l’utilisation des fonctions de dessin du WLangage pour
la génération d’une application Java. WD Exemple de test unitaire Cet exemple présente l’utilisation de l’éditeur de test unitaire
Dans cet exemple, nous abordons deux thèmes principaux : intégré de WinDev dans deux cas concrets :
- la création de formes graphiques - le test d’une fenêtre
- la création de texte dans des zones graphiques - le test d’une procédure globale
WD DessinGraphique Cet exemple montre l’utilisation du dessin pour générer une WD Export HTML Gère des fichiers externes. Présente également la manipulation
interface interactive. Il permet d’afficher des objets sous forme des fichiers au format HTML.
d’image, de les redimensionner, de les déplacer, de les déformer.
WD Export Table Exporte le contenu d’une table vers :
WD Détection erreurs Présente le module de gestion assistée des erreurs HyperFileS- - Word
QL :
- Excel
- le fonctionnement par défaut,
- Le presse-papiers Windows
- les différentes possibilités de personnalisation.
- Un fichier texte
WD DirectX Cet exemple permet d’utiliser DirectX 9.0 dans vos applications
WD Expressions régulières Présente deux types d’utilisation des expressions régulières :
WinDev.
- vérification du format d’une saisie
WD DndTableH Cet exemple montre l’utilisation du drag & drop programmé dans - extraction des différents éléments respectant le format d’une
une table hiérarchique. saisie.

WD Drag and Drop Windows Propose un catalogue d’images. Les images peuvent être ajou- WD Extraction MIME Permet d’extraire les pièces contenues dans un email.
tées dans le catalogue par drag and drop depuis l’explorateur de
Windows. WD Fax Permet d’envoyer des fax contenant du texte mis en forme grâce
au RTF.
WD Duplication Cet exemple didactique montre comment il est possible de dupli-
quer une base de données sur un serveur. WD Fermeture Windows Permet :
- La fermeture d’une session Windows
WD Ecran de veille Permet de réaliser un économiseur d’écran grâce à la gestion - L’arrêt et le redémarrage du poste
des timers et des événements Windows.

194 Partie 7 : Annexes Partie 7 : Annexes 195


WD Fichier externe Présente comment manipuler des fichiers non décrits dans l’ana- WD Impression directe Permet d’imprimer directement sur l’imprimante matricielle
lyse. connectée au port parallèle de votre choix.

WD Fichiers Texte Gère des fichiers externes (création, suppression, modification WD Jauges Permet de créer différents types de jauges.
du contenu d’un fichier externe).
WD JavaMail Permet de créer une applet, utilisable dans une page Internet.
WD Génération PowerPoint Cet exemple présente comment générer une présentation Power- Cette applet permet de lire et envoyer des emails.
Point à partir :
- de données contenues dans une application WinDev, telles que
les données de tables, de graphes .. WD Jump Lists JumpList sous Windows 7
- et d’un document PowerPoint .pptx de base. Une JumpList est un menu accessible via le menu Démarrer ou
l’icône de l’application dans la barre des tâches.
WD Gestion des erreurs Java Cet exemple didactique permet de comprendre le fonctionne-
ment et la mise en œuvre du mécanisme de gestion des erreurs WD Langage Externe Cet exemple illustre l’utilisation de fenêtres faites avec WinDev
de WinDev. dans une application en C ++ (Visual Studio 2005) et MFC.

WD Graphe Cet exemple didactique présente diverses utilisations du champ WD Lasso Utilise un lasso de sélection dans un champ image pour réaliser
graphe. Les graphes présentés sont : Hémicycle, Beignet (ou un zoom dans un champ de prévisualisation.
donut), Secteur (ou camembert), Courbe, Nuage de points, Histo-
gramme, Radar, Aire. WD Licence Permet d’afficher un texte important à un utilisateur. Il peut par
exemple s’agir d’un texte de licence affiché à l’utilisateur lors de
WD Graphe boursier Présente les fonctionnalités du grapheur sur les graphes bour- la première exécution d’un programme. La lecture du texte est
siers. WinDev gère sans programmation les types de graphes rendue obligatoire, en activant le choix de validation de la fenêtre
boursiers suivants : BarCharts, Chandeliers japonais, Courbe, uniquement lorsque le champ d’affichage du texte a été consulté
Histogramme, Minimum/Maximum. dans sa totalité.
WD Lien réflexif Utilise un lien "réflexif" pour gérer des arbres généalogiques :
WD Grapheur Java Cet exemple montre comment réaliser des graphes grâce à aux
chaque personne a plusieurs parents et plusieurs enfants. Tous
fonctions de dessin.
ces enregistrements sont stockés dans le même fichier.
Trois types de graphe sont présentés : histogramme, nuage de
points, courbe. WD Limitation de durée d’utilisation Permet de limiter l’utilisation d’une application à une période
donnée (période d’essai).
WD Groupware utilisateur Présente le fonctionnement du Groupware Utilisateur.
WD Lissage de courbes Permet de lisser un graphe de type "courbe" en utilisant un algo-
WD GroupwareCS Présente le groupware utilisateur avec une base de données Hy- rithme de "splines cubiques".
perFileSQL Client/Serveur.
WD ListeChaînée Fournit les outils pour construire des listes chaînées à chaînage
WD Hotkey Permet de définir vos propres raccourcis clavier. simple. Une liste à chaînage simple permet de stocker et parcou-
rir de manière ordonnée une collection de valeurs quelconques.
WD Image PDF Cet exemple utilise le principe d’état avec source de données
programmée pour proposer la création d’un document PDF re- WD Mailing par emails Permet d’envoyer un "mailing" par Internet.
groupant une sélection d’images.
WD Manipulation de figures Permet de :
WD Importation de page HTML Sauvegarde une page HTML présente sur un site Web. Cette - Tracer de rectangles, des cercles et des losanges
page est alors analysée afin d’importer toutes ses dépendances - Déplacer les éléments créés
(images, applets, etc.). - Sélectionner les couleurs des éléments à dessiner
- Capturer le double-clic sur un élément afin d’obtenir ses carac-
WD ImpRectoVerso Cet exemple présente une solution d’impression recto-verso qu’il téristiques
est possible de désactiver, c’est-à-dire que les versos peuvent ne - Appeler un menu contextuel sur un élément
pas être imprimés.
- Sélectionner des couleurs par clic sur une forme
WD Impression de Tree View Permet d’imprimer un Treeview. Cet exemple utilise une classe
"TreeImp" facilement réutilisable pour n’importe quel champ
Treeview

196 Partie 7 : Annexes Partie 7 : Annexes 197


WD Manipulation du champ Agenda Exemple simple d’utilisation du champ Agenda. Les fonctionnali- WD OLE DB Permet d’accéder à des bases de données externes via OLE DB.
tés utilisées sont les suivantes : Création d’un rendez-vous, Sau-
vegarde d’un agenda, Restauration d’un agenda WD OPC Montre l’implémentation du protocole OPC en WinDev.

WD MapStatique Cet exemple illustre l’interaction entre une application WinDev WD OpenGL Permet d’interfacer OpenGL et WinDev. OpenGL est une interface
et le service Google Maps API, afin d’afficher une carte géogra- logicielle destinée à dessiner des objets tridimensionnels (3D).
phique, politique ou routière d’un endroit donné sur la planète.
WD Organigramme Cet exemple permet de créer des organigrammes.
WD Masque de saisie avancé Cet exemple illustre les masques de saisie avancés :
- Format des positifs/négatifs dans un champ de saisie numé- WD OSD OSD signifie : On-Screen Display. C’est le nom donné aux inter-
rique faces qui apparaissent sur les écrans d’ordinateur ou des télévi-
- Apparence des négatifs dans un champ de saisie numérique seurs par exemple. Ils servent souvent à effectuer des réglages.
Ces types de menus ont comme particularité d’être affichés par-
- Apparence de la valeur 0 dans un champ de saisie numérique dessus tout ce qui se trouve à l’écran. Cet exemple montre com-
- Expression régulière pour empêcher la saisie d’autres carac- ment réaliser ce type d’interface sous Windev.
tères que les chiffres 1, 2, 3, 4, 5 et 6.
- Expression régulière pour "réguler" la saisie d’un numéro de WD Ouverture Périphérique Cet exemple permet d’ajouter ou supprimer une application du
plaque d’immatriculation français. système d’ouverture automatique pour les périphériques amo-
vibles par programmation.
WD Menu Animé Cet exemple propose différentes animations de menu.
WD Paramètres Impressions Illustre la fonction iParamètre.
WD Menu Pure Cet exemple propose un menu personnalisable au travers d’un
modèle de champ. WD PartageMemoire Cet exemple montre comment utiliser les fonctions de partage
WD Mise en évidence Permet de mettre en place une mise en évidence du champ en de mémoire.
cours de saisie, par changement de son style.
3 types de mise en évidence sont disponibles : WD PC Infos Permet de connaître la langue du poste sur lequel l’application
s’exécute.
- Encadrement du champ,
- Changement de couleur de fond, WD Persistance Cet exemple montre l’utilisation des fonctions InitParamètre,
- Changement de la police. ChargeParamètre, SauveParamètre.
Ces fonctions permettent de configurer la sauvegarde de
WD Multi fenêtrage Permet de comprendre les bases de la gestion du Multi-fenêtrage champs, de variables et de tout autre paramètre.
avec WinDev.
WD Phonétique Permet d’effectuer une recherche phonétique sur le nom d’une
WD Multitouch Cet exemple utilise un composant interne permettant d’utiliser personne. Cette recherche permet de retrouver un enregistre-
les fonctionnalités Windows Touch dans une application WinDev. ment dont on ne connaît pas l’orthographe exacte.
WD Nombre en lettres Permet de convertir une valeur numérique en lettres. WD Pilotage de Excel Permet de piloter Excel via OLE Automation. Toutes les fonctions
Cette conversion est alors affichée dans un état de type "Lettre d’Excel peuvent ainsi être utilisées.
chèque".
WD Pilotage de IE Permet de piloter IE via OLE Automation. Toutes les fonctions de
WD Objets graphiques Utilise la programmation orientée objet. IE peuvent ainsi être utilisées.
Cet exemple est un éditeur d’objets graphiques.
Il est possible de : WD Pilotage de Open Office Base Cet exemple propose une classe permettant de manipuler facile-
- déplacer, redimensionner les objets ment une base Open Office sans avoir à aucun moment à mani-
puler des objets OLE.
- effectuer des sélections au lasso ou à la souris
- couper/copier/coller des objets WD Pilotage de OpenOffice Calc Cet exemple didactique illustre le pilotage du tableur OpenOffice.
- supprimer/dupliquer des objets org. Il est en effet possible de créer, ouvrir et manipuler des clas-
- enregistrer les documents créés et de les imprimer. seurs ouverts dans OpenOffice.org depuis une application Win-
Dev.
WD Observateur Répertoire Cet exemple montre l’utilisation des delegates .NET (événements
.NET) en WLangage.

198 Partie 7 : Annexes Partie 7 : Annexes 199


WD Pilotage de OpenOffice Writer Cet exemple didactique illustre le pilotage de OpenOffice Writer. Il WD Réplication Universelle Montre comment synchroniser les données de différents sites en
est en effet possible de créer, ouvrir et manipuler des documents utilisant la réplication universelle.
ouverts dans OpenOffice Writer depuis une application WinDev.
WD Requêtes Permet d’effectuer des calculs, de passer des paramètres ou
WD Pilotage de Outlook Permet de piloter Outlook via OLE Automation. Toutes les fonc- d’imprimer le résultat d’une requête SQL sur un fichier de don-
tions de Outlook peuvent ainsi être utilisées. nées HyperFileSQL.

WD Pilotage de Tableurs Cet exemple illustre le pilotage du tableur OpenOffice Calc et du WD Rotation Avancée Permet d’effectuer la rotation d’une image à partir d’un point
tableur Excel, avec un code générique. quelconque qui servira de centre de rotation.

WD Pilotage de Word Permet de piloter Word via OLE Automation. Toutes les fonctions WD SAP Permet donc d’accéder à vos données SAP directement depuis
de Word peuvent ainsi être utilisées. vos applications WinDev grâce aux fonctions SAP.

WD Pilotage traitement de texte Le but de cet exemple est de proposer une interface universelle, WD Serveur SOAP Illustre l’utilisation des fonctions SOAP disponibles en WLangage.
permettant de piloter ces applications, sans se soucier de l’appli- Aborde deux thèmes principaux :
cation à piloter. - Exécution d’une requête SOAP
- Récupération du résultat d’une requête SOAP
WD Poignées Permet de gérer les poignées de redimensionnement ou de dé-
placement d’un élément graphique.
WD Serveur Webservice Cet exemple illustre l’utilisation des WebServices.
WD Pool de threads Met en place une suite ("pool") de threads.
WD Service Cet exemple illustre la création d’une application de type "ser-
Pour illustrer ce fonctionnement, les threads sont matérialisés vice" avec WinDev.
par des bulles de savon qui s’élèvent sur la fenêtre. Lorsqu’une
bulle touche un bord de la fenêtre, elle est détruite et le thread WD SNMP Cet exemple affiche des informations sur la machine du réseau
qui lui était associé est détruit également. spécifiée : l’adresse IP de la machine, son adresse MAC, son sys-
tème …
WD Popup Graphique Dans de nombreux logiciels de retouche d’images, il est possible
Cet exemple interroge la machine pour obtenir ces informations
de sélectionner une forme à dessiner, de choisir une épaisseur
grâce aux fonctions SNMP du WLangage.
pour cette forme, et ceci via une combo popup graphique avan-
cée. Ce type de combo popup graphique offre en effet une pré-
visualisation en temps réel de la forme à l’épaisseur choisie. WD Sockets Java Cet exemple présente une utilisation des fonctions "socket" et
L’exemple présente comment intégrer une telle interface dans permet de générer un .jar.
une application WinDev.
WD Statistiques Présente un ensemble de calculs statistiques.
WD Processus Cet exemple montre l’utilisation des fonctions de gestion des
processus mémoires de WinDev (liste des processus, mémoire WD Table Hiérarchique Les tables hiérarchiques permettent de combiner l’affichage d’un
consommée, listes des DLL utilisées, localisation). treeview avec une table WinDev.
Cet exemple illustre l’utilisation du champ Table Hiérarchique.
WD Pyramide Des Ages Montre comment créer un graphique de type "Pyramide des
WD Table Hiérarchique Java Permet de développer des applications Java sans avoir besoin de
âges" à partir de deux histogrammes.
connaître Java.
WD Qui bloque Signale aux utilisateurs d’une base de données HyperFileSQL
WD Tables et Combos Permet de sélectionner un produit dans une combo et d’en affi-
en réseau quelle est la personne qui bloque un enregistrement
cher les informations dans une table.
inaccessible.
La description de chaque produit est mise en forme grâce au RTF
WD Recherche par clé composée Présente l’utilisation des filtres et l’utilisation des clés compo- et est illustrée d’une image.
sées afin d’optimiser les temps de recherche sur un fichier de
données HyperFileSQL. WD Tables Ruptures Montre comment utiliser des "ruptures" dans une table.

WD Tachymètre Un tachymètre (ou "speedometer") est une jauge qui peut


WD Regroupement de liste des Permet de regrouper l’ensemble des tâches réparties sur plu-
prendre la forme d’un compte-tours, d’un compteur kilomètre.
tâches sieurs projets.
Cet exemple didactique présente les jauges circulaires.

200 Partie 7 : Annexes Partie 7 : Annexes 201


WD Text-To-Speech Cet exemple montre comment effectuer une synthèse vocale WD TSL Java Permet de définir une couleur à l’aide de ses composantes TSL
dans une application WinDev en utilisant la classe Speech- (Teinte, Saturation, Luminosité), puis de générer une archive
Synthesizer du framework DOTNET. Java.

WD Threads Java Cet exemple didactique Java montre comment utiliser les WD Utilisation de DOTNET Permet de convertir des devises dans d’autres devises.
threads. Section critique, sémaphore, tous les points essentiels La base de ce projet (la classe cEuro) est utilisée pour créer un
du développement multi-threads sont abordés ici. assemblage DotNet.

WD Timeline Propose un composant interne permettant de manipuler un WD Utilisation des alias Permet de manipuler un même fichier de données physique au
modèle de champ ‘Timeline’. Une timeline permet d’afficher de travers de plusieurs alias.
façon linéaire une série d’événements qui se sont déroulés sur
une période donnée de temps. WD Utilisation des classes DotNet Permet d’utiliser des classes DOTNET en WLangage. Permet de :
- analyser une chaîne de caractères,
WD Touches clavier Permet de détecter et d’identifier l’appui sur une touche du cla- - configurer les boîtes de dialogue affichées.
vier.
WD Utilisation des sockets Présente l’utilisation des sockets en mode client/serveur.
WD Tracé de courbes Permet de tracer la courbe d’une fonction paramétrée (fonction
Chaque socket est manipulée au travers d’un thread.
mathématique).
Il est possible d’utiliser des fonctions prédéfinies ou de créer ses WD Verrou Présente comment utiliser les fonctions de verrouillage automa-
propres fonctions. tique d’une application.

WD Trace Socket Permet de tracer tout ce qui passe sur une communication via WD Visualisateur PDF Présente la gestion d’un PDF dans un champ Image d’une fe-
socket, sur une adresse donnée, sur un port donné. nêtre.

WD Trames réseau L’analyse des trames circulant sur le réseau permet aux admi- WD WindowsUpdate Cet exemple montre comment gérer les mises à jour disponibles
nistrateurs d’auditer ce dernier et de détecter certaines incohé- sur Windows Update.
rences. Pour écouter le réseau, l’application se base sur l’API
Winsock 2 et les RAW Socket. WD XML Permet d’importer un fichier XML au format HyperFileSQL et d’ex-
porter des fichiers au format XML (eXtensible Markup Language).
WD Transaction Illustre le fonctionnement des transactions lors du passage
d’une commande. WD XML Java Cet exemple montre l’utilisation des fonctions XML dans un pro-
jet WinDev Java.
WD TreeMap Utilise le champ TreeMap afin de visualiser le contenu d’un réper-
toire et la place prise par chaque fichier constituant ce répertoire. WD Zone de clicage Gère des zones de clicage sur des formes non rectangulaires.
Lors d’un clic sur la carte, la région sélectionnée est affichée en
WD TreeView Présente l’utilisation et la manipulation des champs Arbre. bas de l’écran.
WD Trigger Permet de saisir les notes de frais des collaborateurs d’une so-
ciété. Deux modes sont utilisables : Des exemples supplémentaires seront livrés avec la Lettre du Support Technique (LST)
- Consultation avec possibilité de modification (lecture/écriture) ou seront disponibles sur notre site (www.pcsoft.fr).
- Consultation uniquement
Ce sont les triggers qui permettent de contrôler l’accès aux fi-
chiers en fonction du mode choisi.

WD Trigger serveur Cet exemple permet de montrer comment utiliser des triggers
serveur.
WD TSL Permet de définir une couleur à l’aide de ses composantes TSL
(Teinte, Saturation, Luminosité).

202 Partie 7 : Annexes Partie 7 : Annexes 203


204 Partie 7 : Annexes