Beruflich Dokumente
Kultur Dokumente
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, ...)
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 2011 : 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ésentes 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
4 Introduction Sommaire 5
Partie 4 - déveloPPemeNt d’aPPlicatioNs : coNcePts avaNcés
RAD RID .............................................................................................................................121
Le modèle UML ................................................................................................................ 122
Groupware utilisateur ...................................................................................................... 129
Applications multilingues .................................................................................................139
Optimiser une application ................................................................................................144
Livrer "Etats et Requêtes".................................................................................................146
MCU : Macro Code Utilisateur ..........................................................................................147
Les différents tests disponibles .......................................................................................149
Le débogueur ....................................................................................................................150
Tests unitaires Tests automatiques .................................................................................152
Partie 1
Tests unitaires sur l’exécutable .......................................................................................153
Notions de base
Partie 5 - iNstallatioN
Le Framework WinDev ......................................................................................................163
Les différents modes d’installation d’une application ...................................................164
Surveillez vos applications ...............................................................................................173
Partie 6 - commuNicatioN
Gestion des emails ...........................................................................................................177
Transfert de fichiers par FTP ............................................................................................179
Gestion des sockets..........................................................................................................181
WinDev et la téléphonie....................................................................................................183
Les Webservices .............................................................................................................. 184
Partie 7 - aNNexes
Composants livrés avec WinDev ......................................................................................187
Exemples livrés avec WinDev ...........................................................................................191
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, … dont l’assemblage permet de réaliser une application Windows.
Une Analyse WinDev regroupe la description des fichiers de données de l’application.
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.
• 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 :
13 La barre de message
Il est possible d’afficher dans la barre de message Le message sera affiché dans la barre de mes-
d’une fenêtre : sage lorsque l’utilisateur sélectionnera le champ.
• un message d’information lié au champ en • un message d’information spécifique. Ce mes-
cours. Ce message est saisi dans l’onglet sage est affiché par programmation grâce à la
"Aide" de la fenêtre de description du champ. fonction Message.
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
Combo
Afficher le contenu d’un fichier de données en table (liste
de clients, détail d’une commande, ...).
Liste
Liste
Potentiomètre
rotatif
Spin
Range Slider
Conférence Tiroir
Bouton
Arbre
Table Agenda
hiérarchique
Graphe
TreeMap
Jauge
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.
Partie 2
Environnement de
développement
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.
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.
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.
Contenu du Contenu du
perso-dossier Commande perso-dossier Collaborateur
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".
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.
Le Gestionnaire de Sources permet très simple- avant la déconnexion les différents éléments qui
ment de travailler en mode déconnecté ou nomade. vont être modifiés (ainsi, ces éléments seront
Ce mode permet par exemple à un développeur "déjà extraits" pour les autres utilisateurs). Vous
utilisant un portable de continuer à travailler sur pourrez travailler en local sur votre projet. Les
un projet présent dans la base de sources tout en différents éléments du projet sont manipulables
étant déconnecté de la base de source. directement.
Le principe est simple : • à la reconnexion, il suffit d’utiliser l’option "GDS
• avant la déconnexion, il suffit d’utiliser l’option .. Travail à distance .. Se reconnecter et synchro-
"GDS .. Travail à distance .. Se déconnecter pour niser". Il suffit alors de réintégrer les éléments
une utilisation nomade". Il est conseillé d’extraire modifiés.
Pour plus de détails, consultez l’aide en ligne.
6 Administrateur du GDS
L’administrateur du GDS permet de manipuler di- • lancer certains outils (options, maintenances, …).
rectement les différents projets inclus dans le ges- • restaurer une version d’un projet.
tionnaire de sources. • voir les historiques et les différences de versions
Il permet par exemple de : de sources.
• gérer les bases de sources (création, connexion à • d’annuler les extractions (en mode administra-
une base de sources). teur).
• gérer les branches.gérer les fichiers et les réper- • de purger une base, la sauvegarder, la restau-
toires présents dans un projet de la base de rer, ...
sources (Ajouter, supprimer, renommer, … des • d’ajouter des fichiers de tout type dans la base
fichiers et des répertoires). (.doc, .xls, .pdf, ...).
• gérer les différents fichiers de la base de sources
(extraction, réintégration, partage, …).
Les éléments d’un composant interne peuvent être privés ou publics :
• Les éléments privés ne pourront être manipulés que par les autres éléments du
composant.
• Les éléments publics pourront être manipulés par les éléments du projet utilisant le
composant interne.
5.2 Mise à jour des composants et des exé- 1. La recompilation du projet hôte
cutables déployés Recompilez le projet qui utilise le composant et re- 7.1 Documentation automatique lisés pour créer la documentation.
distribuez l’application avec le composant. Dans ce Un composant doit absolument être accompagné • si aucun commentaire n’existe, WinDev docu-
Lors de la mise à jour d’un composant et/ou d’un mentera automatiquement les éléments acces-
cas, aucun problème de version ou de compatibi- d’une documentation pour permettre sa ré-utilisa-
exécutable déployé, il est possible d’installer sur le sibles du composant en précisant les paramètres
lité ne sera rencontré. La recompilation est néces- tion.
poste de l’utilisateur final : attendus en entrée et en sortie de chaque élé-
saire dans les cas suivants : WinDev simplifie la réalisation de cette documenta-
• soit l’exécutable de l’application, le composant ment. Les commentaires correspondants sont
• De nouvelles fonctions ont été ajoutées dans le tion en proposant :
et les fichiers nécessaires à leur fonctionnement. automatiquement créés dans les différents élé-
composant et doivent être prises en compte. • une présentation générale du composant. Cette
• soit uniquement l’exécutable de l’application et ments.
• Les paramètres de certaines procédures ont été présentation générale est saisie lors de la géné-
les fichiers nécessaires au fonctionnement de
modifiés. ration du composant. Lors de l’utilisation du com- Remarque : A chaque re-génération du composant,
l’application.
• Incompatibilité de la nouvelle version avec les posant dans une application WinDev, cette pré- il est possible de re-générer la documentation as-
• soit uniquement le composant et les éventuels sociée au composant (bouton "Regénérer" dans la
anciennes versions du composant. sentation sera visible lors du survol du compo-
fichiers nécessaires à son fonctionnement. fenêtre "Historique du composant").
• ... sant affiché dans le volet "Assistants, Exemples
Pour plus de détails sur la gestion de la compatibi- et Composants". Pour plus de détails, consultez Attention : Si vous utilisez le bouton "Regénérer",
lité entre l’application et son composant, consultez 2. Distribution directe du fichier .WDK l’aide en ligne. les modifications effectuées sous l’assistant de
l’aide en ligne. Fournissez directement une mise à jour du compo- • une génération automatique de la documenta- génération seront supprimées.
sant (fichier .WDK) en clientèle sans recompilation tion technique à partir des commentaires insérés
du projet. Comment disposer de la documenta-
dans le code des éléments du composant. tion d’un composant ?
Cette possibilité s’applique en général lorsque :
Quels sont les commentaires de code La présentation générale du composant est auto-
• La nouvelle version sert à corriger un ou des dys- pris en compte ? matiquement affichée lors du survol du composant
fonctionnements d’une version antérieure. présent dans le volet "Assistants, Exemples et Com-
Les commentaires pris en compte automatique-
• De nouvelles fonctions ont été ajoutées dans le ment pour la documentation du composant sont : posants".
composant mais ne sont pas nécessaires au bon
• Les commentaires placés en tête des procédures La documentation technique du composant est
fonctionnement de l’application.
WLangage disponible :
• lors de l’intégration d’un composant dans un pro-
6 Modifier un composant externe jet (option "Atelier .. Composant Externe .. Impor-
ter un composant dans le projet").
• à tout moment, lors d’un double-clic sur l’icône
6.1 Présentation contrer des problèmes d’exécution si elles ne sont du composant présent dans le volet "Assistants,
pas en phase avec ce composant. Exemples et Composants" ou par l’option "Des-
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- cription" du menu contextuel du composant.
tante dans la modification d’un composant. Il existe • à tout moment, dans la description des com-
• soit à l’ajout d’éléments dans le composant.
2 types de compatibilité : • Les commentaires placés en tête des traite- posants intégrés dans le projet (option "Atelier
• soit à la suppression d’élément du composant. .. Composant Externe .. Liste des composants
• la compatibilité descendante : la version du ments suivants :
• soit à la modification des droits sur les éléments composant utilisée (fichier .WDK) pour compiler intégrés dans le projet"). Le bouton "Description"
du composant. • Code d’initialisation des fenêtres
les applications utilisant ce composant doit être permet d’obtenir les informations et la documen-
• soit à la modification d’un des éléments du com- • Code d’initialisation des états tation du composant.
toujours supérieure ou égale à la version actuel-
posant. lement utilisée en déploiement. • Code d’initialisation des classes
La documentation spécifique à un élément du
Cette compatibilité est automatiquement gérée. • Code d’initialisation des collections de procé-
Dans tous les cas, après cette modification, le com- composant peut être obtenue :
Si le composant installé avec l’application est dures.
posant doit être re-généré pour prendre en compte • soit en double-cliquant sur cet élément (volet
d’une version inférieure à celle utilisée par l’ap-
les modifications effectuées. A quel moment la documentation "Explorateur de projet" ou graphe du projet) ou en
plication, l’application refusera de fonctionner. est-elle générée ? appuyant sur la touche [F2] depuis le code de cet
6.2 Les différents types de compatibilité • la compatibilité ascendante : l’utilisation d’une La documentation du composant est générée lors élément.
nouvelle version d’un composant avec les projets de la première génération du composant (option
La gestion de la compatibilité est liée aux versions compilés avec une ancienne version peut être • soit directement dans la liste des composants
d’un composant. En effet, si des modifications ont "Atelier .. Composant Externe .. Générer un compo- intégrés au projet (option "Atelier .. Composant
interdite. Il est donc nécessaire de recompiler les sant").
été apportées au composant, les applications qui projets pour utiliser correctement la nouvelle ver- Externe .. Liste des composants intégrés dans le
utilisent le composant en déploiement peuvent ren- sion du composant. Lors de cette génération de la documentation : projet").
• les commentaires existants dans le code sont uti-
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.
2.3 Test d’un projet Java sous l’éditeur 2.6 Déployer une application Java
Lors du test d’un projet Java (icône ), le projet Comme pour toute application, WinDev permet de
est compilé et lancé sous Windows. Le projet n’est créer un programme d’installation pour une appli-
pas compilé en Java. cation Java. Cette procédure d’installation n’est
Pour exécuter l’application Java, il est nécessaire actuellement disponible que pour Windows. Le
de lancer le fichier ".Jar" présent dans le répertoire programme d’installation sera un exécutable et
EXE de votre projet. permettra d’installer les fichiers nécessaires ainsi
que le runtime Java (JRE). Pour les autres plate-
2.4 Compiler un projet Java sous WinDev formes, il est actuellement nécessaire de déployer
vos fichiers manuellement.
La compilation d’un projet Java permet de :
Pour lancer l’assistant de création d’installation,
• connaître les erreurs de programmation pré-
sélectionnez l’option "Atelier .. Créer la procédure
sentes dans le code WLangage
d’installation".
• visualiser les champs, traitements, fonctions
Pour plus de détails, consultez l’aide en ligne (mot-
WLangage non disponibles en Java. Ces erreurs
clé : "Java").
apparaissent en violet dans le volet "Erreurs de
compilation".
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é.
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 données à un type de
fichier de données (HyperFileSQL, Oracle, ...).
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 duit. Plusieurs enregistrements du fichier Produit • Cardinalité 0,10 : Un club peut avoir aucune ou
peuvent avoir la même clé du fichier Fournisseur : jusqu’à 10 personnes inscrites.
Dans le cas de liaison entre deux fichiers de don-
nées, il existe un fichier propriétaire et un fichier • le fichier propriétaire est Fournisseur,
3.4 L’intégrité référentielle
membre : • le fichier membre est Produit.
• le fichier propriétaire est propriétaire de la clé. La représentation d’une telle liaison est la sui- L’intégrité référentielle d’une base de données cor-
vante : respond au respect des contraintes impliquées par
• le fichier membre est un membre des fichiers de
les liaisons entre les fichiers de données.
l’analyse contenant une copie de la clé.
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" : exemple que :
nées, la clé du fichier propriétaire est copiée dans Oui/Non ?
• si un enregistrement est supprimé dans le pro-
le fichier membre. • chaque "fournisseur" peut avoir plusieurs "pro- priétaire, les enregistrements correspondants
Par exemple, la clé du fichier Fournisseur est co- duits" : Oui/Non ? dans les membres sont également supprimés,
piée dans chaque enregistrement du fichier Pro- • chaque "produit" a au moins un "fournisseur" : • si un enregistrement est ajouté dans un membre,
La génération de l’analyse intervient avant la phase Tant que l’analyse (le MLD) n’a pas été générée, la
de programmation et après la phase de description description de l’analyse (les fichiers de données)
des fichiers de données. Cette génération permet ne pourra pas être utilisée dans le projet.
de : La génération (option "Analyse .. Génération") com-
• valider les modifications effectuées sur l’analyse porte trois étapes :
(MLD). • vérification des modifications effectuées et géné-
• créer les modules nécessaires à la programma- ration des fichiers de la description de l’analyse.
tion. • modification automatique des fichiers de don-
• mettre à jour automatiquement les fichiers de nées accessibles (fichiers présents dans le réper-
données si nécessaire. toire "EXE" du projet).
• Synchronisation du projet.
WinDev permet de gérer les différentes versions de Entre deux versions figurent des "petits rectangles"
l’analyse (option "Analyse .. Gestion des versions"). qui signifient :
Il est alors possible de travailler sur l’analyse en • un rectangle : il y a eu peu de modifications effec-
cours ou sur une analyse spécifique. tuées entre les deux versions.
Remarque : lorsqu’une analyse est endommagée, • plusieurs rectangles : il y a eu plusieurs modifica-
il est possible de sélectionner directement l’ana- tions effectuées entre les deux versions.
lyse endommagée pour restaurer par exemple une
des versions précédentes. Pour visualiser le détail des modifications effec-
tuées entre deux versions : Double-cliquez sur la
Toutes les versions de l’analyse sont visualisées ligne contenant les "petits rectangles" ou cliquez
sous forme d’un graphique. Le carré jaune indique sur le bouton [Modifications].
le numéro de version de l’analyse , le libellé à droite
rappelle la date de la génération.
Utilisateur 1
Utilisateur 3
Application
WinDev Application
WinDev
Utilisateur 2
Application
WinDev
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.
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.
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.
Répétée les données (tri sur n’importe quelle colonne, recherche dans les colonnes, ...).
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).
Les fonctions WLangage commençant par "Table" permettent de manipuler les tables
fichier à accès direct. L’ajout ou la suppression d’une ligne dans la table entraîne l’ajout
ou la suppression de l’enregistrement dans le fichier de données lié.
Table "Mémoire"
Une table mémoire permet d’afficher directement des données chargées en mémoire.
Remarque : ces différents modes de remplissage sont également disponibles pour les
Les données sont ajoutées dans la table par programmation (par exemple avec la fonc-
listes et les combos.
tion TableAjouteLigne).
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.
120 Partie 4 : Développement d'applications : concepts avancés Partie 4 : Développement d'applications : concepts avancés 121
Le modèle
Le modèle UML en pratique
UML
WinDev permet de créer neuf types de modèle UML : 1 Présentation
• Diagramme de classes : décrit de manière générale la structure d’un système.
• Diagramme de cas d’utilisation : représente les fonctionnalités du système du point L’objectif principal d’une équipe de développement WinDev permet de créer ces neuf types de modèle
de vue de l’utilisateur. est de créer des applications optimisées, capables UML :
de satisfaire les besoins en constante évolution de • Diagramme de classes
• Diagramme d’objet : représente un ensemble d’objets et leurs relations à un mo-
leurs utilisateurs. • Diagramme de cas d’utilisation
ment donné.
La modélisation d’une application permet de spé- • Diagramme d’objet
• Diagramme de composants : décrit l’architecture physique et statique d’une appli- cifier la structure et le comportement attendus
cation informatique. d’un système, de comprendre son organisation, de • Diagramme de composants
• Diagramme d’activité : représente le comportement d’une méthode ou le déroule- déceler les possibilités de simplification et de ré-uti- • Diagramme d’activité
ment d’un cas d’utilisation. lisation et de gérer les risques encourus. • Diagramme de séquences
• Diagramme de séquences : représente l’ordre chronologique des messages envoyés Un modèle est la simplification de la réalité. Il per- • Diagramme de collaboration
met de mieux comprendre le système à développer. • Diagramme d’états-transitions
et reçus par un ensemble d’objets.
• Diagramme de collaboration : présente l’organisation structurelle des objets qui Un diagramme est la représentation graphique • Diagramme de déploiement
envoient et reçoivent des messages. d’un ensemble d’éléments qui constituent un sys- Ce chapitre ne fait que présenter de manière glo-
tème. Pour visualiser un système sous différentes
• Diagramme d’états-transitions : présente un automate à états finis. bale la modélisation UML. Pour plus de détails sur
perspectives, le langage UML (Unified Modeling le langage UML, nous vous conseillons de consulter
• Diagramme de déploiement : montre la répartition des matériels (les nœuds) utili- Language) propose neuf diagrammes, représen- des ouvrages spécifiques.
sés dans un système et l’association des programmes exécutables à ces matériels. tant chacun un état du système.
122 Partie 4 : Développement d'applications : concepts avancés Partie 4 : Développement d'applications : concepts avancés 123
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-
ListeProduits. Cette classe regroupe aussi les tion mais ne précise pas comment l’application
le fait. • Paquetage : divise et organise la représenta-
opérations AjouteProduit et RetireProduit. Ces tion du diagramme (de la même manière que
opérations sont applicables aux instances de la • Relation : décrit le comportement des acteurs les répertoires organisent les fichiers). Chaque
classe. par rapport aux cas d’utilisation. Trois types de paquetage peut contenir des acteurs et des cas
Remarque : Le langage UML définit trois niveaux • Paquetages : permettant de diviser et d’orga- relations existent : d’utilisation.
de visibilité pour les attributs et les opérations : niser la représentation du diagramme (de la • Association : Relation structurelle entre deux
• Public : l’élément est visible par toutes les même manière que les répertoires organisent les éléments reliés. 2.3 Diagramme d’objets
autres classes. fichiers). Chaque paquetage peut contenir des • Dépendance : Relation qui établit qu’un élé- Un diagramme d’objets représente un ensemble
• Protégé : l’élément est visible par la classe elle- classes et des relations. ment en utilise un autre. Par exemple, le Client d’objets et leurs relations à un moment donné.
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 diagramme d’objets est utilisé pour montrer
• 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 un contexte (avant ou après une interaction entre
classe. Dev utilisées dans votre application. Retrait d’argent dépend du Client. objets par exemple).
Pour pouvoir retirer de l’argent, le Client doit
• Relation : décrit le comportement des classes 2.2 Diagramme de cas d’utilisation préalablement saisir son code confidentiel. Par exemple, le diagramme suivant présente une
entre elles. Trois types de relations existent : Dans ce cas, l’action Retrait d’argent dépend partie de la structure générale des motos :
• 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) - la vérification de l’identité d’un utilisateur peut
qui en dérive. Par exemple, les classes Bateau être effectuée de deux façons : saisie du mot Un diagramme d’objets est composé des éléments
à voile et Bateau à moteur sont dérivées de la de passe ou vérification de l’empreinte digitale. suivants :
classe Bateau. • objet : représente une instance d’une classe.
Remarque : Si un diagramme de classes est
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, ...
124 Partie 4 : Développement d'applications : concepts avancés Partie 4 : Développement d'applications : concepts avancés 125
• 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", ...
126 Partie 4 : Développement d'applications : concepts avancés Partie 4 : Développement d'applications : concepts avancés 127
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.
128 Partie 4 : Développement d'applications : concepts avancés Partie 4 : Développement d'applications : concepts avancés 129
Le groupware utilisateur en pratique 3 Mise en place du groupware utilisateur
3.1 Ajouter le groupware utilisateur dans fenêtre de login. Il est ainsi possible par exemple
1 Présentation une application d’afficher une fenêtre demandant la langue
d’exécution de l’application.
Pour mettre en place le groupware utilisateur dans
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 : Login automatique en mode test
différents intervenants. Il est souvent nécessaire rents. Quelques exemples : "Atelier .. Paramétrer le groupware utilisateur". La
Vous pouvez indiquer le login et le mot de passe
de prévoir différents niveaux d’accès selon les fonc- fenêtre de paramétrage du groupware utilisateur
• les secrétaires peuvent consulter le tarif et créer à utiliser en mode "Test automatique". Ces infor-
tions de l’utilisateur. permet de définir :
des commandes mations seront utilisées si un test automatique est
En effet, tous les utilisateurs n’ont pas les mêmes • Le mode de gestion du groupware utilisateur. réalisé sur l’application.
• les commerciaux peuvent consulter le tarif et éta-
fonctions, ni les mêmes besoins. Leur domaine blir les commandes, gérer de nouveaux clients. • Le type de lancement du groupware utilisateur.
d’action doit donc être plus ou moins limité. Annuaire LDAP
• les directeurs commerciaux ont accès à toutes • L’emplacement des fichiers de données du
Prenons un exemple simple : lors de la mise en groupware utilisateur. Si votre client utilise un annuaire LDAP au sein
les options. de son entreprise, il est possible de brancher le
place d’une gestion commerciale, l’application pro-
Pour gérer ces niveaux d’accès dans vos applica- Mode d’intégration du Groupware groupware utilisateur sur cet annuaire. Ainsi le
pose les fonctionnalités suivantes : Utilisateur
tions WinDev, il suffit d’intégrer le groupware utili- compte et le mot de passe présent dans l’annuaire
• Consultation du tarif Deux modes d’intégration du groupware utilisateur LDAP seront automatiquement demandés à l’utili-
sateur à votre application. Quelques clics de souris
• Modification du tarif suffisent à transformer une application classique sont disponibles : sateur.
• Saisie des commandes en une application gérant de nombreux niveaux • Intégration par défaut : toute la programmation Deux modes sont disponibles :
• Saisie des clients. d’accès. La mise en place est instantanée. du groupware utilisateur est automatiquement • Sans gestion des droits : Dans ce cas, aucun
Lors de l’exécution de l’application, le responsable intégrée à votre application. fichier de données du groupware ne sera créé. Si
pourra créer des utilisateurs (identifiés par leur Une nouvelle fenêtre est intégrée à votre projet : le lancement est automatique, la fenêtre de login
login et leur mot de passe) et leur donner accès à la fenêtre de login. Elle apparaît lors du lance- demandera à l’utilisateur de s’identifier. Si l’utili-
l’une ou l’autre des fonctionnalités de l’application. ment de l’application et permet à l’utilisateur de sateur est bien enregistré dans l’annuaire LDAP,
se connecter à l’application. Vous pouvez ainsi l’application se lancera, sinon elle se fermera. Il
personnaliser cette fenêtre en lui appliquant par n’est pas possible à un superviseur de paramé-
2 Comment fonctionne le groupware utilisateur ? exemple le gabarit de votre application. trer les droits sur les fenêtres.
• Intégration personnalisée : toute la programma- • Avec gestion des droits : Seuls les utilisateurs
tion du groupware utilisateur est automatique- présents dans l’annuaire LDAP pourront se
Une application utilisant le groupware utilisateur a La configuration du groupware consiste à créer des
ment intégrée à votre application. Toutes les connecter. Le paramétrage des droits sur les
deux niveaux d’utilisation : utilisateurs, des groupes, et d’associer des utili-
fenêtres nécessaires à la gestion du groupware fenêtres est disponible.
• le niveau utilisateur sateurs aux groupes, à gérer les droits de chaque
utilisateur (login et gestion des utilisateurs) sont Pour plus de détails, consultez l’aide en ligne.
• le niveau superviseur utilisateur (ou groupe) sur chacune des fenêtres
automatiquement ajoutées à votre projet. Vous
de l’application. Les droits sont définissables au ni- Remarque : Le groupware utilisateur fonctionne
pouvez ainsi personnaliser totalement toutes les
2.1 Le niveau utilisateur veau des options de menu, des groupes de champs avec Active Directory. Il ne fonctionne pas avec
fenêtres utilisées par le groupware utilisateur.
et des champs. Le superviseur peut rendre ces élé- openLDAP.
L’utilisateur se connecte à l’application grâce à une ments grisés, inactifs ou invisibles. Ces configura- Le détail des différentes fenêtres du Groupware
fenêtre de login et accède aux fonctionnalités qui tions sont prioritaires sur toute configuration effec- Fichiers de données du Groupware
Utilisateur est présenté dans le paragraphe "Les Utilisateur
lui sont autorisées. tuée dans le programme. fenêtres WinDev", page 134.
Remarque : le groupware utilisateur peut permettre Deux catégories de fichiers de donnés sont gérées
Pour plus de détails sur la configuration du
de se connecter en utilisant un annuaire LDAP. Démarrage du Groupware Utilisateur par le groupware utilisateur :
groupware par le superviseur consultez le para-
graphe "Paramétrer l’application utilisant le Deux modes de lancement du groupware utilisa- • les fichiers de données permettant d’identifier
2.2 Le niveau superviseur teur sont disponibles : les utilisateurs. Ces fichiers de données peuvent
groupware utilisateur", page 132.
Le superviseur se connecte à l’application par une • Lancement automatique : La fenêtre de login être communs à plusieurs applications.
fenêtre de login et accède à un menu avancé lui Remarque : Toutes les informations concernant les du groupware utilisateur est lancée avant toute • les fichiers de données permettant de gérer les
permettant de configurer les utilisateurs et leurs utilisateurs et leurs droits sont stockées dans des autre fenêtre de l’application. Le code d’initialisa- droits des utilisateurs sur les différentes fenêtres
droits, ou bien de lancer l’application. fichiers de donnéés au format HyperFileSQL. Les tion du projet est exécuté après l’ouverture et la de l’application. Ces fichiers de données sont
fichiers concernant les utilisateurs peuvent être validation de la fenêtre de login. propres à l’application.
La fenêtre de configuration permet au superviseur communs à plusieurs applications. Les fichiers de
de : • Lancement manuel : La fenêtre de login ne sera
données concernant les droits des utilisateurs sur Le mot de passe des fichiers de données
• lancer l’application. ouverte que si la fonction gpwOuvre est utilisée.
les différentes fenêtres de l’application sont spéci- Par défaut, les fichiers de données du groupware
Cette option permet d’exécuter le code d’initia-
• configurer le groupware. fiques à l’application, et ne peuvent pas être par- utilisateur ont un mot de passe spécifique. Ce mot
lisation du projet par exemple, avant d’ouvrir la
tagés. de passe est : "PCSGPW2001".
130 Partie 4 : Développement d'applications : concepts avancés Partie 4 : Développement d'applications : concepts avancés 131
Pour changer ce mot de passe, saisissez le nou- l’option "Atelier .. Paramétrer le Groupware Utili- Pour paramétrer le groupware utilisateur, il suffit Remarques :
veau mot de passe. Les caractères saisis appa- sateur". Si vous re-branchez le groupware utilisa- de : • Il est conseillé de changer le mot de passe du
raissent sous forme d’étoiles. teur par la suite, les fichiers de données utilisés 1. Lancer l’application (exécutable ou test depuis superviseur dès la première utilisation.
Remarque : Ce mot de passe est utilisé par précédemment pour le groupware utilisateur ne WinDev) et se connecter en tant que superviseur : • Le groupe "Défaut" est le groupe proposé par
exemple lors de la ré-indexation ou de l’ouverture seront pas effacés. • Nom : SUPERVISEUR défaut dans le groupware utilisateur. Ce groupe a
des fichiers de données avec l’outil WDMAP. • Mot de passe : SUPERVISEUR par défaut tous les droits sur l’application.
3.3 Créer l’exécutable WinDev
Pour plus de détails sur ces fichiers de données 2. Choisir l’option "Configurer le groupware". • Il n’est pas possible de supprimer le groupe <Au-
et leur configuration (répertoire d’installation, ...), Lors de la création de l’exécutable gérant le cun> et le groupe DEFAUT.
consultez le paragraphe "Les fichiers de données", groupware utilisateur (option "Atelier .. Exécutable 4.1 Gérer les utilisateurs
• Si vous utilisez un annuaire LDAP, vous avez la
page 135. .. Générer l’exécutable"), un écran spécifique au La création d’un nouvel utilisateur consiste à don- possibilité d’importer les utilisateurs présents
groupware utilisateur est affiché. ner les informations suivantes :
3.2 Tester l’application dans l’annuaire pour pouvoir gérer les droits de
Vous pouvez ainsi définir l’emplacement des • le nom de l’utilisateur (obligatoire). ces utilisateurs.
Lors du test d’une application gérant le groupware fichiers de données communs du groupware utili-
• le prénom de l’utilisateur.
utilisateur, la première fenêtre apparaissant est au- sateur (fichiers de données contenant les informa- 4.2 Gérer les droits
tomatiquement la fenêtre de login (quelle que soit tions sur les utilisateurs). • le login de l’utilisateur. Ce login correspond à
l’identifiant de l’utilisateur lors de sa connexion Pour chaque utilisateur (ou groupe d’utilisateurs),
la première fenêtre définie dans votre application). le superviseur peut gérer leurs droits sur les diffé-
3.4 Installer une application utilisant le à l’application.
Par défaut, un seul utilisateur existe : le supervi- groupware utilisateur rents éléments des fenêtres du projet.
seur. Pour se connecter en tant que superviseur, il • le mot de passe de l’utilisateur. Ce mot de passe
n’est pas obligatoire, et peut être saisi par l’uti- Pour chaque association utilisateur / fenêtre, il est
suffit de saisir les informations suivantes dans la L’installation d’une application utilisant le
lisateur lui-même lors de sa première connexion possible de définir un état spécifique pour tous les
fenêtre de login : groupware utilisateur se fait comme pour toute
(cochez l’option correspondante). éléments de la fenêtre.
• Nom : SUPERVISEUR application par l’option "Atelier .. Créer la procédure
d’installation". Les éléments gérés dans les fenêtres, les fenêtres
• Mot de passe : SUPERVISEUR Il est possible de définir l’utilisateur comme étant internes et les modèles de fenêtres sont les sui-
Un écran spécifique au groupware utilisateur per- un superviseur de l’application.
Vous pouvez alors soit tester votre application, soit vants :
met de configurer l’emplacement des fichiers de Il est bien entendu possible de modifier ou de sup-
configurer le fonctionnement du groupware. • les champs
données propres au groupware utilisateur. primer un utilisateur. La suppression d’un utilisa-
Remarques : teur permet soit de supprimer entièrement l’utilisa- • les groupes de champs
Remarques :
• Pour que la première fenêtre de votre appli- teur, soit de supprimer uniquement ses droits. • les options de menu
• Si vous avez paramétré les fichiers de données
cation ne soit pas la fenêtre de login, cochez Les utilisateurs peuvent être rassemblés en Les états disponibles pour chaque élément sont
du groupware utilisateur pour votre client, il est
l’option "Lancement manuel" dans les options groupes. Lors de la création d’un groupe, il est les suivants :
nécessaire de les sélectionner lors de la prépa-
du Groupware Utilisateur. Il suffira d’utiliser la possible de copier les droits précédemment définis
ration de l’installation. Il est donc nécessaire de • Défaut : le comportement de l’élément corres-
fonction du WLangage gpwOuvre pour ouvrir la pour un autre groupe ou un autre utilisateur.
personnaliser la liste des fichiers de l’installation. pond au comportement par défaut, défini dans
fenêtre de login. Il est possible de créer ou de supprimer un groupe.
• Si vous n’avez pas paramétré les fichiers de don- l’application.
• Les fenêtres de gestion du groupware utilisateur Lors de la suppression d’un groupe, il est possible
nées du groupware, lors du premier lancement • Inactif : l’élément est affiché mais toute saisie
sont exécutées avant le code d’initialisation du soit de supprimer le groupe et ses utilisateurs, soit
de l’application, seul l’utilisateur Superviseur est impossible.
projet. de supprimer uniquement le groupe. Dans ce cas,
existera dans l’application. • Grisé : l’élément est affiché mais grisé. Toute sai-
• La première fenêtre de votre application définie les utilisateurs ne sont plus associés à un groupe.
dans le projet sera lancée après la fenêtre de lo- Conseil : si vous ne configurez pas les différents sie est impossible.
gin (lorsque l’utilisateur n’est pas le superviseur). niveaux d’utilisation du groupware utilisateur pour • Invisible : l’élément n’est pas affiché.
• Pour ne pas lancer le groupware utilisateur lors vos clients, il est conseillé de leur fournir un docu-
des tests de l’application, il suffit de décocher ment reprenant tous les champs de vos fenêtres
pour obtenir une configuration optimisée. 5 Conseils pour une application gérant le groupware utilisateur
4 Paramétrer l’application utilisant le groupware utilisateur 5.1 Utilisation de groupes de champs La possibilité d’associer un champ à plusieurs
groupes de champs augmente les combinaisons
Pour simplifier le paramétrage de la gestion du
disponibles.
Lorsque l’application est déployée, le paramétrage Ce paramétrage consiste à créer des utilisateurs, groupware utilisateur en fonction des utilisateurs,
du groupware utilisateur est réalisé par le supervi- des groupes d’utilisateurs, et à leur attribuer pour il est conseillé de regrouper les champs par groupe Ces groupes de champs peuvent être créés dans
seur de l’application. chaque champ de chaque fenêtre de l’application de champs. votre application uniquement en vue d’une gestion
certains droits. Ces droits consistent à rendre vi- du groupware, sans programmation spécifique de
Il est par exemple possible de créer dans vos fe-
sible, invisible ou grisé des champs, des groupes votre part.
nêtres des groupes de champs correspondant aux
de champs, des options de menus. champs à afficher pour un type d’utilisateur.
132 Partie 4 : Développement d'applications : concepts avancés Partie 4 : Développement d'applications : concepts avancés 133
5.2 Visibilité des champs 5.3 Définition des droits Fenêtre Historique des connexions (GPWHisto- Les rubriques de ces fichiers de données sont dé-
riqueConnexion. WDW) taillées dans l’aide en ligne.
Lors du développement de votre application, vous Pour obtenir une définition des droits correspon-
pouvez définir les caractéristiques de visibilité des dant aux fonctionnalités de votre application, il est Cette fenêtre est visualisable dans votre projet uni- Où sont créés ces fichiers de données ?
différents éléments de vos fenêtres : conseillé : quement en mode personnalisé.
• Par défaut, ces fichiers de données (mode Hyper-
• soit lors de la description de l’élément (fenêtre à • soit d’effectuer la configuration des droits vou- Cette fenêtre permet au superviseur de consulter FileSQL Classic) sont créés dans un sous-réper-
7 onglets) lue par l’utilisateur de votre application avant l’historique des connexions (et de purger cet histo- toire de votre projet (répertoire EXE\GPW_<Nom
de créer la procédure d’installation. Il suffit alors rique si nécessaire). du projet>). Lors de l’intégration du groupware
• soit par programmation (propriété ..Etat ou pro-
priété ..Visible) d’ajouter les fichiers de données du groupware 6.2 Les fichiers de données utilisateur, vous pouvez spécifier un répertoire
Lors de la configuration du groupware utilisateur, le lors de la création de l’installation de l’applica- différent pour réaliser les tests de votre applica-
tion. Deux catégories de fichiers de données sont prises tion.
superviseur peut définir d’autres caractéristiques
• soit de livrer un dossier de programmation per- en compte : Lors de la création d’un exécutable WinDev, il
de visibilité. Les caractéristiques définies par le su-
perviseur sont prioritaires. Par exemple, un bouton mettant de donner les noms des champs, des • Les fichiers de données permettant d’identifier est possible de spécifier un répertoire spécifique
permet de rendre un champ actif. Or ce champ a groupes de champs et des options à gérer selon les utilisateurs. Ces fichiers de données peuvent pour ces fichiers de données communs.
été grisé par le superviseur. Votre code ne sera pas le niveau d’utilisation de l’application. être communs à plusieurs applications. • Lors de la préparation de la procédure d’instal-
pris en compte et le champ ne sera pas actif. • Les fichiers de données permettant de gérer les lation, il est possible de permettre à l’utilisateur
droits des utilisateurs sur les différents éléments de paramétrer l’emplacement de ces fichiers de
de l’application. Ces fichiers de données sont données (plan intitulé "Modules additionnels").
6 Les éléments du groupware utilisateur spécifiques à l’application et ne peuvent pas être Il est ainsi possible de sélectionner un réper-
partagés avec une autre application. toire commun à plusieurs applications gérant le
Par défaut, ces fichiers de données sont créés au groupware utilisateur.
6.1 Les fenêtres WinDev format HyperFileSQL Classic, mais il est possible • Si l’option "Lancement manuel" a été sélection-
Fenêtre Association des utilisateurs et des confi- d’utiliser des fichiers de données HyperFileSQL née, la fonction gpwOuvre permet de lancer la
Selon le mode d’intégration du groupware utili- fenêtre de login du groupware utilisateur, mais
gurations (GPWAssociationConfiguration. WDW) Client/Serveur. Pour plus de détails, consultez
sateur dans votre application, une ou plusieurs aussi de personnaliser le répertoire des fichiers
Cette fenêtre est visualisable dans votre projet uni- l’aide en ligne.
fenêtres peuvent être intégrées dans votre projet. de données du groupware utilisateur. Quels que
Ces fenêtres sont les suivantes. quement en mode personnalisé. Mot de passe : Par défaut, les fichiers de données soient les répertoires indiqués dans les diffé-
Remarque : le fonctionnement de ces fenêtres est Cette fenêtre permet au superviseur de gérer les du groupware utilisateur ont un mot de passe spé- rentes étapes de la création et de l’installation
présenté en détail dans le paragraphe "Paramé- utilisateurs, les groupes et les droits des utilisa- cifique. Ce mot de passe est : "PCSGPW2001". de l’application, ce répertoire, s’il est précisé,
trer l’application utilisant le groupware utilisateur", teurs. Pour changer ce mot de passe : sera pris en compte.
page 132. 1. Affichez la fenêtre de configuration du
Fenêtre Détail d’une configuration (GPWDétail-
groupware utilisateur (option "Atelier .. Paramétrer Remarque : si aucun paramétrage spécifique n’est
Fenêtre de login (GPWLOGIN.WDW) Configuration.WDW)
le groupware utilisateur"). effectué, les fichiers de données Utilisateur (mode
Cette fenêtre permet à tous les utilisateurs de Cette fenêtre est visualisable dans votre projet 2. Dans l’onglet "Fichiers", saisissez le nouveau HyperFileSQL Classic) seront créés dans un sous-
l’application de se connecter à l’application. Dans uniquement en mode personnalisé. Cette fenêtre mot de passe. Les caractères saisis apparaissent répertoire du répertoire d’installation de l’exécu-
cette fenêtre, l’utilisateur doit saisir son nom et son permet au superviseur de paramétrer pour chaque sous forme d’étoiles. table nommé \GPW_<Nom du projet>.
mot de passe (optionnel) qui ont été préalablement fenêtre les droits d’un utilisateur (ou d’un groupe)
sur tous les champs, les groupes de champs et les Remarque : Ce mot de passe est utilisé par Fichiers de données des droits
définis par le superviseur de l’application. Dès le
options de menu de la fenêtre. exemple lors de la ré-indexation ou lors de l’ouver-
lancement, il est possible d’utiliser le login "SUPER- Ces fichiers de données sont les suivants :
ture des fichiers de données avec l’outil WDMAP.
VISEUR" et le mot de passe "SUPERVISEUR".
Fenêtre Choix d’une configuration (GPWChoix- GPWConfiguration Fichier contenant les des-
Fichiers de données utilisateur
Fenêtre du menu du superviseur (GPWMenuSu- Configuration. WDW) criptions des configurations
perviseur. WDW) Ces fichiers de données sont les suivants : disponibles. Chaque confi-
Cette fenêtre est visualisable dans votre projet
Cette fenêtre est visualisable dans votre projet uni- uniquement en mode personnalisé. Cette fenêtre GPWUtilisateur Fichier des utilisateurs. guration est associée à un
quement en mode personnalisé. permet au superviseur de copier une configuration Contient toutes les caractéris- groupe d’utilisateurs.
Cette fenêtre permet au superviseur soit de lancer précédemment définie (pour un groupe ou un utili- tiques des utilisateurs (login, GPWConfiguratio- Etat de chaque élément de
l’application, soit de configurer les droits. sateur). nom, prénom, mot de passe, ... nElément l’application pour chaque
Fenêtre Fiche configuration (GPWFicheConfigura- GPWUtilisateur- Fichier des groupes d’utilisa- configuration.
Fenêtre Fiche d’un utilisateur (GPWFicheUtilisa-
tion. WDW) Configuration teurs Par exemple, permet de
teur.WDW)
Cette fenêtre est visualisable dans votre projet uni- G P W L o g C o n - Fichier contenant l’historique stocker si pour l’utilisateur
Cette fenêtre est visualisable dans votre projet uni- "Secrétaire", l’option "Menu
quement en mode personnalisé. quement en mode personnalisé. nexion des connexions. Ce fichier est
présent uniquement si l’his- statistiques" doit être grisé
Cette fenêtre permet au superviseur de saisir un Cette fenêtre permet au superviseur de créer un ou non.
groupe ou un utilisateur. torique des connexions a été
nouvel utilisateur et les renseignements le concer-
demandé.
nant.
134 Partie 4 : Développement d'applications : concepts avancés Partie 4 : Développement d'applications : concepts avancés 135
GPWElément Fichier content les différents est ainsi possible de sélectionner un répertoire // Configuration de la langue Cas particulier : le menu "?" d’une application Win-
éléments de l’application à spécifique pour les fichiers de données des droits Nation(nLangue) Dev :
de l’application. // Lancement de la première fenêtre
configurer (champs des fe- Certaines options du menu automatique sont à
// du groupware utilisateur
nêtres, options de menu, ...). • Si l’option "Lancement manuel" a été sélection- utiliser avec précaution. Ces options sont les sui-
gpwOuvre()
née, la fonction gpwOuvre permet de lancer la vantes :
Les rubriques de ces fichiers de données sont dé- fenêtre de login du groupware utilisateur, mais Pour plus de détails sur les applications multilin- • Optimiser la vitesse d’accès à la base de don-
taillées dans l’aide en ligne. aussi de personnaliser le répertoire des fichiers gues, consultez "Applications multilingues", page nées.
de données du groupware utilisateur. Quels que 139. • Sauvegarder les données.
Où sont créés ces fichiers de données ? soient les répertoires indiqués dans les diffé-
rentes étapes de la création et de l’installation 7.3 Modifier la première fenêtre de l’appli- • Sauvegarder l’application.
• Par défaut, ces fichiers de données (mode Hyper-
FileSQL Classic) sont créés dans un sous-réper- de l’application, ce répertoire, s’il est précisé, cation en fonction de l’utilisateur • Réparation de la base de données.
toire de votre projet (répertoire EXE\GPW_<Nom sera pris en compte. Le fonctionnement de ces options avec le
Pour changer la première fenêtre de l’application
du projet>). groupware utilisateur est le suivant :
Remarque : si aucun paramétrage spécifique n’est en fonction de l’utilisateur, il suffit d’utiliser la fonc-
• Lors de la préparation de la procédure d’instal- effectué, les fichiers de données des droits seront tion gpwRecupInfoUtilisateur dans le code d’initia- • Par défaut, si l’utilisateur n’est pas le supervi-
lation, il est possible de permettre à l’utilisateur créés dans un sous-répertoire du répertoire d’ins- lisation de votre projet. Cette fonction permet d’ob- seur, ces options sont grisées.
de paramétrer l’emplacement de ces fichiers de tallation de l’exécutable nommé \GPW_<Nom du tenir des renseignements sur l’utilisateur comme • Pour qu’un utilisateur non superviseur accède
données (plan intitulé "Modules additionnels"). Il projet>. par exemple son nom, ou son mot de passe. à ces fonctions, il suffit de modifier les droits
En fonction de son nom, il est possible par exemple de la fenêtre interne FI_MenuHWinDevHelp qui
d’ouvrir une fenêtre ou une autre. contient le menu contextuel.
7 Modifier le groupware utilisateur Exemple : 7.6 Configurer les fichiers de données du
SI gpwRecupInfoUtilisateur(... groupware utilisateur
gpwLogin) = "FP" ALORS
7.1 Personnaliser les fenêtres du groupware Pour utiliser le groupware utilisateur dans une ap- Ouvre(Fen_Gestion) Deux types de fichiers de données sont utilisés par
plication multilingue, il faut : SINON le groupware utilisateur :
La fenêtre de login
1. Configurer le groupware utilisateur de la façon Ouvre(Menu) • fichiers de données des utilisateurs.
La fenêtre de login s’affichant pour tout utilisateur suivante : FIN
lançant votre application, il peut être nécessaire de • fichiers de données des droits.
• toutes les fenêtres du groupware utilisateur
la personnaliser. Si vous avez choisi d’intégrer cette 7.4 Lancer la fenêtre de login depuis une L’emplacement de ces fichiers de données peut
doivent être intégrées dans l’application.
fenêtre à votre projet, vous pouvez simplement des fenêtres de l’application être configuré :
lui appliquant le style ou les gabarits utilisés pour • l’option "Lancement manuel" doit être sélection-
née. Lors de l’insertion du groupware utilisateur dans • lors de l’insertion du groupware utilisateur pour
votre application.
2. Traduire les différentes fenêtres du groupware une application, il est possible de choisir ou non les tests.
Attention : il ne faut pas renommer cette fenêtre.
utilisateur. Par défaut, les fenêtres du groupware un lancement automatique du groupware. Cette • lors de la création de l’exécutable.
Toutes les fenêtres du groupware utilisateur utilisateur sont disponibles en français et anglais. option est ensuite modifiable à tout moment. • lors de l’installation de l’application (par la per-
Si vous avez choisi d’intégrer toutes les fenêtres Pour traduire ces fenêtres dans d’autres langues, Par défaut (lancement automatique), la fenêtre de sonne exécutant l’installation).
du groupware utilisateur, vous pouvez toutes les il suffit de traduire les différents libellés, ... (en uti- login est la première fenêtre de l’application. Elle • par programmation.
personnaliser. Cependant, seule la fenêtre de lisant l’outil WDMSG si nécessaire pour extraire les est exécutée avec le code d’initialisation du projet.
login sera visualisée par tous les utilisateurs. Les messages à traduire). Dans certains cas, il est nécessaire d’ouvrir une Pour plus de détails, consultez "Les fichiers de don-
fenêtres de configuration du groupware sont visua- Rappel : WDMSG est un outil optionnel de WinDev fenêtre de configuration avant la fenêtre de login. Il nées", page 135.
lisées uniquement par le superviseur de l’applica- permettant d’extraire et de ré-intégrer tous les mes- suffit pour cela de :
sages à traduire. 7.7 Ré-initialiser les fichiers de données du
tion. 1. Sélectionner l’option "Lancement manuel".
3. Exécuter l’application dans la langue souhaitée. groupware utilisateur
Attention : les fenêtres GPWLOGIN et GPWMenuSu- 2. Ouvrir la fenêtre de login à n’importe quel en-
perviseur ne doivent pas être renommées. Pour cela, il est possible par exemple de : droit du code avec la fonction gpwOuvre. Pour ré-initialiser les fichiers de données du
• Demander si nécessaire à l’utilisateur la langue groupware utilisateur, il suffit de supprimer les
7.2 Groupware utilisateur et application dans laquelle l’application doit s’exécuter (par 7.5 Définir les droits sur les menus fichiers de données spécifiques au groupware utili-
multilingue une fenêtre spécifique par exemple). Pour définir des droits sur les menus contextuels sateur (fichier des utilisateurs et fichier des droits).
• Configurer la langue d’exécution de l’application d’une application WinDev, il est nécessaire d’inté- Ces fichiers de données sont automatiquement re-
Si votre application est multilingue, il est néces-
avec la fonction Nation. grer toutes les fenêtres du groupware utilisateur. créés au lancement de l’application.
saire de gérer cette fonctionnalité également dans
les fenêtres du groupware utilisateur. Par défaut, • Ouvrir la première fenêtre de gestion du Vous pouvez alors modifier la fenêtre de gestion Remarque :
les fenêtres du groupware utilisateur gèrent l’an- groupware utilisateur avec la fonction gpwOuvre. des droits (GPWDétailConfiguration.WDW). • Si seuls les fichiers de données utilisateur sont
glais / américain et le français. // Code d’initialisation du projet Pour obtenir la liste des menus contextuels, il suffit supprimés (GPWUtilisateurConfiguration et
nLangue est un entier = d’utiliser la fonction EnumèreSousElément (avec la GPWUtilisateur), seul le superviseur pourra lan-
Ouvre(Select_Langue) combinaison de constantes enumPremier + enum- cer l’application.
MenuContextuel).
136 Partie 4 : Développement d'applications : concepts avancés Partie 4 : Développement d'applications : concepts avancés 137
Applications
multilingues
• Si seuls les fichiers des données des droits sont Remarque : Ces fichiers de données contiennent
supprimés (GPWConfigurationElément, GPW- des informations confidentielles et sont donc cryp-
Configuration et GPWElément), tous les utilisa- tés.
teurs auront tous les droits sur toute l’applica-
tion. 7.9 Gestion des analyses
Une application multilingue est une application qui pourra être diffusée dans plusieurs
Pour plus de détails sur les différents types de Si une analyse spécifique est ouverte lors du para-
métrage du groupware utilisateur, il est nécessaire langues. WinDev prend en compte les différentes langues de l’application à toutes les
fichiers de données gérés par le groupware utili-
sateur, consultez "Les fichiers de données", page de ré-exécuter la fonction gpwInitAnalyse (permet étapes du développement d’une application.
135. l’ouverture de l’analyse du groupware utilisateur). Pour développer une application multilingue, les principales étapes sont les suivantes :
Rappel : En exécution, il n’est pas possible d’ouvrir
7.8 Modifier les fichiers de données utilisés simultanément plusieurs analyses.
par le groupware utilisateur
Il est impossible de modifier la structure des fi-
chiers de données spécifiques au groupware utili-
sateur.
138 Partie 4 : Développement d'applications : concepts avancés Partie 4 : Développement d'applications : concepts avancés 139
Applications multilingues en pratique créer par exemple, un programme exécutable diffé-
rent pour chaque langue gérée par le projet.
l’analyse et au projet.
• pour les informations imprimées dans le dossier
Cette fonctionnalité permet de diminuer la taille de de l’analyse (notes du fichier de données ou de
l’exécutable. la rubrique).
1 Présentation 2.2 Langues gérées par l’analyse
• pour les informations gérées par "Etats et Re-
quêtes". En effet, si le logiciel "Etats et Requêtes"
Si votre projet utilise une analyse, le choix des diffé- est livré avec votre application WinDev, il est
Une application multilingue pourra être diffusée Remarques : rentes langues gérées par l’analyse se fait directe- possible de traduire le nom du fichier de don-
dans plusieurs langues. Les différentes langues de • Si le système d’exploitation du poste en cours ment sous l’éditeur d’analyses. En effet, une même nées et le nom de chaque rubrique. Ainsi, l’uti-
l’application seront prises en compte lors des diffé- gère plusieurs langues (Hébreux, Arabe, Grec, ...), analyse peut être partagée entre différents projets lisateur pourra utiliser les noms correspondant
rentes étapes du développement. lors de la saisie des traductions dans ces lan- ne proposant pas tous les mêmes langues. Ainsi, le à sa langue lors de la création de ses états et
Pour développer une application multilingue, les gues, l’alphabet correspondant sera automati- nombre de langues défini pour l’analyse peut être requêtes. Ces informations peuvent être saisies
étapes sont les suivantes : quement utilisé. supérieur à celui défini pour le projet. dans l’onglet "Etats et Requêtes" de la descrip-
1. Choix des langues gérées par le projet et l’ana- • Si votre application est multilingue, il est néces- La configuration des différentes langues gérées par tion de fichier de données et de la description de
lyse. saire de gérer cette fonctionnalité dans les fe- l’analyse est effectuée par l’option "Analyse .. Des- rubriques.
2. Saisie des différents éléments du projet (fenêtre, nêtres du groupware utilisateur, et les fenêtres cription de l’analyse .. International".
code, ...) dans les différentes langues du projet. de gestion automatiques des erreurs HyperFileS- 2.3 Langues gérées par les différents élé-
Les différentes langues configurées dans l’analyse ments du projet
3. Détermination de la langue du projet par pro- QL. Pour plus de détails, consultez l’aide en ligne. seront proposées :
grammation. • La gestion de l’Unicode est disponible dans les Par défaut, les différents éléments du projet (fe-
4. Gestion des alphabets spécifiques dans les fi- • lors de la configuration des informations parta-
fichiers de données HyperFileSQL, les champs gées des rubriques. Vous pouvez saisir la des- nêtres, états, code, classes, collections de procé-
chiers de données. des fenêtres. dures, ...) gèrent les mêmes langues que le projet
5. Création de l’exécutable et du programme d’ins- cription des champs liés aux rubriques (options,
libellés, ...) dans les différentes langues gérées dans lequel ils ont été créés.
tallation.
par l’analyse. Lors de la génération d’un "RAD Il est possible qu’un élément gère plus de langues
application complète" ou d’un RAD fenêtre, ces que le projet (par exemple si l’élément est partagé
2 Choix des langues gérées par le projet et l’analyse informations seront automatiquement prises en entre plusieurs projets gérant des langues diffé-
compte pour toutes les langues communes à rentes).
2.1 Langues gérées par le projet Par défaut, les paramètres utilisés sont ceux défi- 3 Saisie de l’interface dans les différentes langues
nis dans les options linguistiques de Windows
Les différentes langues gérées par le projet sont
(accessible depuis le panneau de configuration de
définies dans la description du projet (option "Pro-
Windows). Lorsque les différentes langues gérées par l’appli- Traduction automatique des inter-
jet .. Description du projet .. Langues").
Ce paramétrage s’effectue dans l’onglet "Langues" cation ont été sélectionnées, il est nécessaire de faces
Les différentes langues sélectionnées seront pro- saisir toutes les informations affichées par l’appli-
de la description du projet (option "Projet .. Descrip- Pour chaque objet, différentes zones multilingues
posées pour toutes les informations des différents cation dans ces différentes langues.
tion du projet"). sont affichées dans les fenêtres de description de
éléments ou objets pouvant être traduites (libellés
Lors de la création d’un champ de saisie ou d’une Pour saisir l’interface dans différentes langues, plu- l’objet. Ces zones multilingues permettent de sai-
des champs, options de menus, messages d’aide
colonne de table affichant des données de type sieurs éléments doivent être pris en compte : sir les informations dans les différentes langues
associés à un champ, ...).
numérique (nombre, monétaire, date, heure, ...) le • Le mode de traduction choisi. gérées par le projet.
Lors de la modification des différentes langues du masque de saisie utilisé sera automatiquement le • Les langues gérées (langues utilisant un alpha- Pour traduire ces informations depuis WinDev :
projet, les modifications seront automatiquement masque défini dans les options de langue du pro- bet spécifique ou non) 1. Configurez les options de traduction du logiciel
prises en compte : jet. Cette option est disponible dans les fenêtres. utilisé (option "Outils .. Options .. Options générales
• L’utilisation de fenêtres spécifiques (groupware
• pour tout nouvel élément ou objet créé sous l’édi- En exécution, lorsqu’un champ de saisie ou une de WinDev .. Traduction"). Ces options permettent
utilisateur, Gestion automatique des erreurs Hy-
teur de WinDev, colonne de table a pour masque "Défini par le pro- de définir :
perFileSQL, Aperçu avant impression)
• pour tout élément ou objet ouvert sous l’éditeur jet", le masque de saisie / d’affichage s’adaptera • l’outil de traduction par défaut (et les modalités
• Les messages affichés par programmation.
de WinDev. automatiquement selon les options choisies dans de transmission du texte à traduire/traduit)
La langue principale correspond à la langue utilisée le projet pour la langue affichée en exécution. 3.1 Mode de traduction choisi • les langues source et destination.
par défaut en exécution. Remarque : Les options linguistiques permettent 2. Si un outil de traduction est précisé, dans
WinDev propose plusieurs modes de traduction : chaque élément contenant des informations à tra-
également de définir le sens d’écriture et l’alphabet
Options linguistiques utilisé (option "divers"). • Traduction automatique des interfaces à l’aide duire, un bouton "Traduire" sera affiché. Ce bouton
Il est possible de paramétrer l’affichage des diffé- d’un outil de traduction spécifique, présent sur permettra de traduire le texte sélectionné en utili-
rentes données numériques du projet (nombre, Programme exécutable le poste de développement. Cette traduction est sant l’outil de traduction spécifié.
monétaire, date, ...) dans chaque langue gérée par Lors de la création du programme exécutable, il est réalisée directement sous l’éditeur de WinDev. 3. Pour effectuer la traduction, il suffit de sélec-
le projet. possible de spécifier la ou les langues prises en • Export de tous les messages à traduire à l’aide tionner le texte à traduire et cliquer sur le bouton
compte dans l’exécutable. Il est ainsi possible de de WDMSG et réintégration après traduction. "Traduire".
140 Partie 4 : Développement d'applications : concepts avancés Partie 4 : Développement d'applications : concepts avancés 141
Export et réintégration des informa- Gestion automatique des erreurs 3.4 Traduction des messages présents dans code apparaît sous l’éditeur de code :
tions à traduire Par défaut, les fenêtres de gestion automatique le code WLangage
L’outil WDMSG, disponible séparément, permet des erreurs sont fournies en anglais et en français. Dans votre code, diverses fonctions du WLangage
d’extraire tous les messages d’un projet (libellé des Pour les traduire dans une autre langue, il est né- vous permettent de communiquer avec l’utilisateur
champs, ...), puis de les réintégrer après traduction. cessaire de : au moyen de chaînes de caractères. Ces messages Le drapeau indique que des traductions existent
Contactez le service commercial de PC SOFT pour 1. Intégrer les fenêtres d’erreur par défaut dans doivent être eux aussi traduits dans les différentes pour cette chaîne de caractères. Pour afficher la
plus de détails sur les conditions d’utilisation de ce votre application. Ces fenêtres sont fournies (avec langues de votre application. fenêtre de traduction, il suffit de cliquer sur ce dra-
produit. leur code WLangage) à titre d’exemple, dans le peau.
répertoire \Programmes\Donnees\Fenêtres prédé- Pour traduire une chaîne de caractères saisie dans
l’éditeur de code : Le chiffre (2 dans notre exemple) indique le nombre
3.2 Langues utilisant un alphabet spécifique finies\Assertion - Erreur - Exception. de traductions saisies pour cette chaîne de carac-
2. Traduire les différents messages (voir para- 1. Sélectionnez la chaîne de caractères à traduire.
Si votre application gère des langues utilisant 2. Dans le menu contextuel de la sélection, choisis- tères.
des alphabets spécifiques (Grec, Russe, ...), il est graphe précédent). Remarque : Pour transformer tous les messages de
sez l’option "Traduire". La fenêtre de traduction des
nécessaire de saisir la traduction des différents Groupware utilisateur messages s’affiche. votre code en messages multilingues, sélectionnez
messages multilingues en utilisant ces alphabets 3. Saisissez la traduction et validez. La ligne de l’option "Code .. Messages multilingues .. Convertir
Par défaut, le groupware utilisateur est livré en an- les chaînes simples en messages multilingues".
spécifiques.
glais et en français.
WinDev permet de gérer automatiquement l’utilisa-
Pour traduire une application utilisant le groupware
tion des alphabets spécifiques sous l’éditeur.
En effet, dès que le caret (curseur de saisie de
utilisateur, il est nécessaire de choisir le mode 4 Choix de la langue par programmation
"Personnalisé" lors de l’intégration du groupware
la souris) est positionné dans une zone de saisie utilisateur dans votre application (option "Atelier ..
d’une langue utilisant un alphabet spécifique, la Paramétrer le groupware utilisateur"). Une application multilingue est une application • de prévoir une option (option de menu par
langue d’entrée (alphabet utilisé par le clavier) cor- qui pourra être diffusée dans plusieurs langues. exemple, ou bouton) permettant à l’utilisateur
Les différentes fenêtres du groupware utilisateur
respondante est automatiquement activée. L’utilisateur pourra choisir la langue d’exécution de de changer de langue en cours d’exécution de
seront intégrées dans votre application.
Ainsi, si vous saisissez un libellé dans la zone l’application. Il est possible par exemple : l’application
Il ne restera plus qu’à traduire ces fenêtres.
Russe de la description du libellé, l’alphabet utilisé • de demander la langue d’exécution au premier
par le clavier sera automatiquement le russe. Remarque : Si nécessaire, décochez l’option "lan- lancement de l’application
cement automatique" : vous pourrez ainsi afficher
Rappel : Pour utiliser des alphabets spécifiques,
une fenêtre de sélection de langue avant de lancer
il est nécessaire d’installer les fichiers correspon-
dants aux alphabets voulus dans les options régio-
la fenêtre de login. 5 Gérer des alphabets spécifiques dans des fichiers de données
nales de Windows (panneau de configuration). Aperçu avant impression HyperFileSQL
Par défaut, la fenêtre d’aperçu avant impression
3.3 Traductions des fenêtres spécifiques est disponible en anglais et français. Lorsqu’une application permet d’afficher ou d’enre- Si l’application est utilisée dans un pays utilisant
Gestion des erreurs HyperFileSQL Pour traduire la fenêtre d’aperçu avant impression, gistrer des données dans des fichiers de données un alphabet spécifique, il est nécessaire de gérer
Par défaut, les fenêtres de gestion des erreurs il est nécessaire d’intégrer les fenêtres correspon- HyperFileSQL, ces données sont saisies dans la cet alphabet également au niveau des fichiers
HyperFileSQL sont fournies en anglais et en fran- dant à l’aperçu avant impression dans votre appli- langue en cours. de données. Ainsi, les recherches, les tris, ... se-
çais. Pour les traduire dans une autre langue, il est cation. Ces fenêtres sont fournies (avec leur code Si l’application est utilisée dans un pays utilisant ront effectués en fonction de l’alphabet choisi.
nécessaire de : WLangage), dans le répertoire \Programmes\Don- des alphabets latins, aucune gestion spécifique
nees\Fenêtres prédéfinies\Apercu. Pour plus de n’est nécessaire.
1. Intégrer les fenêtres d’erreur par défaut dans détails, consultez l’aide en ligne.
votre projet. Les fenêtres sont fournies (avec leur
code WLangage) à titre d’exemple dans le réper- Il ne restera plus qu’à traduire ces fenêtres.
toire \Programmes\Données\Fenêtres prédéfi- Menus système
nies\HyperFileSQL - Fenêtres assistance automa- Pour les champs de saisie ou les champs de type
tique. Table, WinDev propose un menu contextuel par
2. Personnaliser la gestion des erreurs pour utiliser défaut. Ce menu permet à l’utilisateur de réaliser
les fenêtres HyperFileSQL de gestion des erreurs simplement diverses opérations.
(fonction HSurErreur).
3. Traduire les différents messages (voir para- Pour traduire ces menus, il est nécessaire de pos-
graphe précédent). séder WDINT.
142 Partie 4 : Développement d'applications : concepts avancés Partie 4 : Développement d'applications : concepts avancés 143
Optimiser une
application
• 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.
• 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.
144 Partie 4 : Développement d'applications : concepts avancés Partie 4 : Développement d'applications : concepts avancés 145
Livrer MCU :
"Etats et Requêtes" Macro Code Utilisateur
Avec le logiciel "Etats et Requêtes" librement redistribuable avec vos applications, les Le Macro Code Utilisateur (MCU) permet à l’utilisateur final de saisir directement du code
utilisateurs pourront personnaliser selon leurs souhaits les états que vous leur proposez. WLangage et le greffer sur une application existante.
Bien sûr, seuls les états que vous aurez choisis seront personnalisables.
Considérons le cas suivant :
Une fenêtre de saisie d’une fiche client nécessite la présence d’une adresse email, mais
ne vérifie pas son format. L’utilisateur souhaite au moins vérifier la présence du carac-
tère "@" dans l’adresse.
Pour activer cette fonctionnalité (qui est désactivée par défaut), il suffit d’indiquer que le
projet accepte le MCU :
• soit dans la description du projet,
• soit lors de la création de l’exécutable.
146 Partie 4 : Développement d'applications : concepts avancés Partie 4 : Développement d'applications : concepts avancés 147
Les différents tests
Macro Code Utilisateur : MCU en pratique disponibles
1 Qu’est-ce que le MCU ? WinDev propose plusieurs méthodes pour tester votre application. Le tableau ci-dessous
présente ces différents modes.
Le MCU est une option permettant aux utilisateurs De nombreuses fonctionnalités du WLangage
avancés de réaliser leurs propres traitements dans sont accessibles à l’utilisateur et des restrictions
l’application. L’utilisateur final peut saisir du code peuvent être appliquées par le développeur. Par Type de test Description
WLangage, et le greffer sur une application exis- exemple interdire l’utilisation des fonctions de
Simule le lancement de l’application par l’exé-
tante. gestion des fichiers. Afin d’assurer l’intégrité des Test de l’ensemble du projet
données, les ordres de modification ou d’ajout cutable. Permet de tester l’application dans son
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- ensemble, même si son développement n’est
dans les sources de l’application. lisateur. pas terminé.
Dès qu’un problème apparaît dans l’exécution
du projet, vous pouvez lancer le débogueur pour
2 Comment activer/désactiver le MCU ? connaître et solutionner le problème rencontré.
Il est bien sûr possible de débrancher cette fonc- • Accepter les suggestions faites par les utilisa- Permet de tester le fonctionnement de cet élé-
tionnalité, par fenêtre ou pour l’application entière teurs. Test de l’élément en cours
ment dès que son développement est terminé.
si vous le désirez. Cette deuxième option permet l’envoi d’un email Pour les états ou les fenêtres, il est possible de
Pour désactiver le MCU sur une fenêtre il faut co- par l’application lorsque l’utilisateur crée un macro
cher l’option "Interdire l’utilisation du M.C.U." dans code. Le fichier "*.MCU" correspondant à la macro lancer le débogueur dès qu’un problème est ren-
l’onglet "Détail" de la description d’une fenêtre. code est envoyé en pièce jointe. Vous récupérez contré.
Lors de la création de l’exécutable, vous avez la ainsi facilement les suggestions des clients et les
possibilité d’autoriser la saisie de Macro Code Utili- intégrer automatiquement dans votre projet ! Win- Test d’un projet pas à pas Permet de lancer le débogueur au lancement
sateur ou de l’interdire pour l’application complète. Dev dispose en effet d’une option d’importation (grâce au débogueur) de l’application. Cette solution permet de suivre
Si vous l’autorisez, deux options sont alors dispo- des fichiers "*.MCU" (option de menu "Fichier .. méticuleusement le déroulement de l’application
nibles : Importer .. Des Macro-Codes Utilisateurs ..."). à l’aide du débogueur.
• Autoriser l’utilisation des ordres HyperFileSQL Il est également possible de débogueur un exé-
(HLitPremier, HFiltre, HAjoute, ...). cutable spécifique, un exécutable déjà lancé ou
un exécutable lancé sur un autre poste.
148 Partie 4 : Développement d'applications : concepts avancés Partie 4 : Développement d'applications : concepts avancés 149
Le
débogueur
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 "Projet .. Mode Test .. Tracer le projet"
Le débogueur est lancé en même temps que le test de l’application.
Pour mettre au point votre code, un débogueur est livré en standard avec WinDev.
Le débogueur permet une exécution pas à pas de vos applications, en visualisant le code 4. Utilisation des touches [CTRL] + [PAUSE] pendant le test de la fenêtre ou du projet
WLangage exécuté, le contenu des variables, ... Le débogueur est lancé lors de la prochaine action effectuée après l’utilisation des
touches [CTRL] + [PAUSE].
150 Partie 4 : Développement d'applications : concepts avancés Partie 4 : Développement d'applications : concepts avancés 151
Tests unitaires Tests unitaires sur
Tests automatiques l’exécutable
Les tests unitaires (appelés également tests automatiques) permettent de tester les Il est possible de passer les tests unitaires créés avec WinDev sur un exécutable déployé,
fenêtres, les procédures et les classes d’une application à différents niveaux de dévelop- grâce à l’automate de tests.
pement. Il suffit de sélectionner (ou de créer) le scénario de test à exécuter.
Ces scénarios sont générés en WLangage et peuvent être directement modifiés.
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 :
• affiche le taux de validation de l’application.
• indique les éléments modifiés et non testés.
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.
152 Partie 4 : Développement d'applications : concepts avancés Partie 4 : Développement d'applications : concepts avancés 153
Test d’une application en pratique déboguer un exécutable après l’avoir installé sur le
poste de développement.
Ce mode de test permet par exemple de trouver un
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 :
1 Présentation éléments présents sur le poste). Le code peut donc • Le développeur lance l’exécutable sur son poste
être déphasé entre le code du projet en cours et le et se positionne directement à l’endroit voulu
code de l’exécutable : le code déphasé est surligné dans l’application.
WinDev propose plusieurs méthodes pour tester le test du projet, il est possible de lancer le débo- en rose lors du débogage. • Dans WinDev, le développeur ouvre le projet cor-
vos applications : gueur dès qu’un problème est rencontré. Ce mode de test permet de lancer un exécutable respondant à l’exécutable et demande à s’atta-
• test de l’ensemble du projet, Le test d’une requête seule permet d’exécuter uni- spécifique installé sur le poste de développement cher à l’exécutable lancé.
• test d’une fenêtre seule, quement la requête en cours. Vous pouvez ainsi et de le déboguer directement. • Le débogueur sous WinDev permet de suivre
• test d’une requête seule (consultez le livre "Etats choisir de tester le fonctionnement d’une requête Pour plus de détails, consultez l’aide en ligne. l’exécution du programme pas à pas.
et Requêtes" pour plus de détails), dès que son développement est terminé.
2.4 Débogage d’un exécutable déjà lancé Dans ce cas, le code exécuté provient directement
• test d’un état seul (consultez le livre "Etats et Le test d’un état seul permet d’exécuter unique- des bibliothèques (et non du code présent dans les
ment l’état en cours. Vous pouvez ainsi choisir de sur le poste de développement
Requêtes" pour plus de détails), éléments présents sur le poste). Le code peut donc
tester le fonctionnement d’un état dès que son Certains problèmes ne peuvent être reproduits que être déphasé entre le code du projet en cours et le
• exécution du projet pas à pas, développement est terminé. Comme pour le test du lors d’un test de l’exécutable en condition d’utilisa- code de l’exécutable : le code déphasé est surligné
• test des performances de votre application. projet, il est possible de lancer le débogueur dès tion réelle. en rose lors du débogage.
• test de non régression / test automatique qu’un problème est rencontré.
L’exécution du projet pas à pas permet de lancer Pour plus de détails, consultez l’aide en ligne.
Le test de l’ensemble du projet permet de simuler
le lancement de l’application par l’exécutable. Il est le débogueur au lancement de l’application. Cette
solution permet de suivre méticuleusement le dé-
ainsi possible de tester l’application dans son en-
roulement de l’application.
3 Tester et déboguer un projet WinDev sur le poste de l’utilisateur
semble, même si son développement n’est pas ter-
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 WinDev offre plusieurs possibilités pour tester et Deux fonctionnalités sont disponibles :
le problème rencontré. de votre application. déboguer un projet directement sur le poste de dé- • Lancement et débogage de l’exécutable sur une
Le test de non régression (ou test automatique) est veloppement. Mais dans certains cas, il est néces- machine distante
Le test d’une fenêtre permet d’exécuter unique-
basé sur l’exécution de scripts. Il permet de vérifier saire de déboguer directement sur le poste de l’uti- • Débogage d’une application en cours d’exécution
ment la fenêtre en cours. Vous pouvez ainsi choisir
que lors de l’exécution de votre application, ... les lisateur final (connecté par réseau ou par Internet). sur une machine distante.
de tester votre projet à partir d’une fenêtre donnée,
ou de tester le fonctionnement d’une fenêtre dès fonctionnalités existantes sont toujours suppor- Il est ainsi possible de déboguer, depuis votre Pour ces deux fonctionnalités, une configuration
que son développement est terminé. Comme pour tées. bureau de Paris, une application qui s’exécute à spécifique de la machine distante est nécessaire.
Taïwan. Le débogage est effectué sans se déplacer,
directement sur la configuration du client. Remarque : pour déboguer une application Win-
Dev à distance, l’application WinDev doit inclure la
2 Tester et déboguer un projet WinDev sur le poste de développement librairie WD170CPL.DLL dans son framework.
Pour plus de détails, consultez l’aide en ligne.
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 4 Tester une fenêtre
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 4.1 Tester la fenêtre depuis l’éditeur 4.2 Arrêter le test d’une fenêtre
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, sélectionnez Pour tester une fenêtre depuis l’éditeur : Pour arrêter le test, plusieurs méthodes sont pos-
débogueur pour connaître et solutionner le pro- l’option "Projet .. Mode Test ..Déboguer le projet" 1. Ouvrez la fenêtre à tester. sibles :
blème rencontré. (combinaison de touches [Ctrl] + [F9]). L’éditeur est 2. Sélectionnez l’option "Code .. Tester la fenêtre" • 1ère méthode :
WinDev présente une palette complète de tests sur automatiquement réduit en icone et le projet s’exé- (icône , ou [F9]). L’éditeur est automatiquement Fermez l’application en cours de test. WinDev
une application pouvant être réalisés à partir du cute. réduit en icône et la fenêtre s’exécute. affiche l’éditeur en cours au moment du lance-
poste de développement : Lors du test, l’ensemble des fonctionnalités de la ment du test.
2.3 Lancer l’exécutable et le déboguer sur le fenêtre pourra être exécuté. Il sera possible par • 2ème méthode :
• Test et débogage du projet en cours sous l’édi- poste de développement
teur. exemple d’ouvrir d’autres fenêtres. • Revenez dans l’éditeur avec la barre des tâches
• Lancement et débogage de l’exécutable corres- Certains problèmes ne peuvent être reproduits que ou avec [Alt] + [Tab].
pondant au projet en cours. lors d’un test de l’exécutable en condition d’utilisa- • Confirmez l’arrêt du test. WinDev affiche l’édi-
tion réelle. Ce mode de test permet par exemple de teur en cours au moment du lancement du test.
154 Partie 4 : Développement d'applications : concepts avancés Partie 4 : Développement d'applications : concepts avancés 155
Fichier = fOuvre(...
5 Tracer un projet L’appel à cette procédure de trace est identique à
CheminFichier, ...
l’utilisation de la fonction Trace :
MaTrace("Client : "+ ... foCréationSiInexistant+...
Client.NumClient) foEcriture + foAjout)
5.1 Principes du débogage Ainsi, le débogueur ne peut pas être utilisé dans SI Fichier <> -1 ALORS
une procédure appelée par timer ou dans le code DateHeureTrace est un DateHeure
Le débogage d’une application consiste à :
de l’ascenseur. Créer un fichier de trace DateTrace est une Date
• vérifier le bon fonctionnement d’un traitement, HeureTrace est une Heure
Remarque : Pour connaître l’ensemble des limites Lors de traitements longs (traitements Batchs, ...),
• comprendre le fonctionnement d’un programme du débogueur, consultez l’aide en ligne. pour contrôler le bon déroulement du programme, DateHeureTrace = DateHeureSys()
existant, il est nécessaire de conserver une trace physique DateTrace = Madate..PartieDate
• vérifier la valeur des variables, Pour déboguer ces applications, il peut être né- des traitements effectués (un fichier texte par HeureTrace = Madate..PartieHeure
cessaire par exemple de suivre l’évolution d’une exemple). fEcritLigne(Fichier,...
• vérifier le bon fonctionnement de cas particuliers
valeur, le passage dans différentes procédures, ... DateVersChaîne(DateTrace)+...
dans une application. La procédure suivante permet de gérer par exemple " - "+HeureVersChaîne(HeureTrace))
Ces informations peuvent être : l’affichage de la trace :
Le débogueur permet de réaliser ces opérations. fEcritLigne(Fichier, ChaîneATracer)
• affichées à l’écran. • soit à l’écran (paramètre /DEBUG en ligne de fEcritLigne(Fichier, " ")
Remarque : WinDev met également à votre dispo- • stockées dans un fichier de trace. commande). fFerme(Fichier)
sition divers outils de trace (fenêtre de trace, boîte • soit dans un fichier texte (mode par défaut). FIN
Attention : Si les informations sont affichées à
d’information, ...). Pour plus de détails, consultez le FIN
l’écran, elles doivent être affichées uniquement PROCEDURE MaTrace(ChaîneATracer)
paragraphe "Déboguer sans le débogueur", page
lors des tests de l’application. CheminFichier est une chaîne
156. CheminFichier = ... Remarques :
Afficher des informations fRepDonnéesUtilisateur()+...
5.2 Présentation du débogueur Deux outils permettent d’afficher des informations :
• Le fichier de trace est créé par défaut
ProjetInfo(piNomProjet)+".txt" dans le répertoire des données de l’utilisa-
Le débogueur permet de tracer les programmes en • les boîtes d’informations : fonction Info du WLan- Fichier est un entier
teur. Ce fichier a pour nom le nom du pro-
WLangage afin de faciliter la mise au point de pro- gage. ModeDebug est un booléen = Faux
jet. Ce fichier contient les informations à
grammes. Attention : L’affichage d’une boîte d’information SI Position(LigneCommande(),...
"/DEBUG") > 0 ALORS
tracer durant l’exécution du programme.
Le code source exécuté est visualisé à l’écran. Les est blocante. Les informations sont complétées par la date et
ModeDebug = Vrai
différents traitements exécutés sont hiérarchisés • la fenêtre de trace : fonction Trace du WLangage. l’heure de chaque "Trace". Il est ainsi possible
FIN
dans le volet "Débogueur". La fenêtre de trace s’affiche en haut à gauche de déterminer un éventuel dysfonctionnement
SI ModeDebug = Vrai ALORS
La valeur des variables peut être visualisée : de l’écran, sans interrompre le déroulement du Trace(ChaîneATracer) durant le traitement.
• individuellement dans la bulle d’aide de survol programme. SINON • Exemple de contenu du fichier de trace :
de chaque variable. 01/12/2001 - 10:53:25:20
Gérer l’affichage des informations de Nom de client : Martin
• dans le volet "Débogueur". débogage
5.3 Fonctionnalités du débogueur L’affichage à l’écran des informations de débogage
est utile uniquement en mode test. 6 Test de performances
Le débogueur permet de : Avant de diffuser une application, il est donc néces-
• 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- 6.1 Présentation à l’action la moins longue).
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 : L’analyseur de performances est un outil permet- Il est alors possible de sélectionner un traitement
blocs. PROCEDURE MaTrace(ChaîneATracer) tant de vérifier et d’optimiser le temps d’exécution afin d’analyser les causes de son temps de traite-
SI EnModeTest()=Vrai ALORS de votre application. ment pour l’optimiser.
• utiliser des points d’arrêt conditionnels
Trace(ChaîneATracer) Son principe est simple :
• modifier le code tout en continuant l’exécution, 6.2 Lancer l’analyseur de performances
FIN Vous testez votre application. Pendant ce test,
• ...
Dans ce code, selon le résultat de la fonction En- l’analyseur de performances répertorie toutes les Pour lancer l’analyseur de performances, sélection-
5.4 Déboguer sans le débogueur ModeTest, la fenêtre de trace apparaît uniquement actions effectuées et les traitements correspon- nez l’option "Projet .. Analyseur de performances".
lors d’un test de l’application. dants exécutés. Le projet est alors automatiquement exécuté en
Dans certains cas, l’exécution d’un programme A la fin du test, l’analyseur de performances vous
avec ou sans le débogueur peut être différente. Une telle procédure permet de laisser l’appel aux mode test. Vous pouvez exécuter le traitement à
fenêtres de trace dans le code de l’application, présente : optimiser dans votre application.
En effet, le débogueur introduit des pauses dans sans risque d’apparition en clientèle. • les 10 manipulations qui ont pris le plus de
l’exécution du traitement, durant lesquelles Win- Pour revenir sous l’éditeur, il suffit de fermer votre
temps application.
dows effectue certaines tâches.
• toutes les actions effectuées dans l’application L’analyseur de performances affiche alors le résul-
testée, triées par durée (de l’action la plus longue tat de l’analyse.
156 Partie 4 : Développement d'applications : concepts avancés Partie 4 : Développement d'applications : concepts avancés 157
Remarque : Il est conseillé d’utiliser l’analyseur Remarques : Les tests et le code associé ne sont pas intégrés à Après avoir été enregistré, le script de test peut être
de performances pour optimiser votre application • Le libellé "Exécution complète" représente le l’exécutable, et ne sont pas livrés en clientèle. Le exécuté à volonté. Lorsqu’un script est exécuté, un
(avant sa diffusion par exemple). temps complet de l’exécution du test de l’appli- nombre de tests d’une application n’a donc aucune script de résultat est automatiquement généré. Les
cation réalisé avec l’analyseur de performances. incidence sur la taille de l’application livrée en différences existantes entre les deux scripts (script
6.3 Lire le résultat de l’analyseur de perfor- clientèle. d’origine et script de résultat) sont signalées.
mances • Le libellé "Total Fenêtre XXX" représente le temps
complet de l’exécution de la fenêtre XXX (de son Pour plus de détails, consultez l’aide en ligne (mot- Il est ainsi possible par exemple de vérifier le fonc-
L’analyseur de performances présente le résultat ouverture à sa fermeture). clé : "Test automatique"). tionnement de vos applications WinDev entre deux
de l’analyse dans deux onglets : mises à jour.
• l’onglet "Synthèse" présente les 20 traitements 6.4 Choisir un traitement à optimiser 7.3 L’utilitaire WDTest WDTest permet donc d’automatiser les procédures
qui ont pris le plus de temps. Le choix du traitement à optimiser se fait en fonc- WDTest est un utilitaire permettant d’enregistrer de test de vos applications.
• l’onglet "Détails" présente tous les traitements tion de plusieurs critères : et d’exécuter automatiquement des scripts de test Important : Pour effectuer un test avec succès, il
lancés lors du test de l’application (classés du • le temps d’exécution du traitement. Les traite- d’applications (WinDev ou non WinDev). est nécessaire d’utiliser exactement la même confi-
plus long au plus rapide). ments les plus longs doivent bien entendu être Un script de test (appelé également "macro") guration :
Pour chaque traitement, les informations suivantes optimisés. contient principalement les différentes manipula- • sur le poste où le test est créé.
sont affichées : • le pourcentage de temps passé dans le trai- tions (position de la souris, clic de souris et touche • sur le poste sur lequel le test est exécuté.
tement de la fonction ou de la procédure. Plus du clavier utilisé) effectuées sur une application.
Pour plus de détails, consultez l’aide en ligne (mot-
Fonction Fonction, traitement ou procédure ce pourcentage est important, plus le code peut clé : "WDTest").
exécutée. contenir des traitements pouvant être optimisés.
Temps Total Temps d’exécution de la fonction.
Remarque : Si le traitement correspond à une fonc-
Nb appels Nombre d’appels effectués à la fonction tion WLangage, il est relativement difficile de l’opti-
(procédure ou traitement). miser.
Temps 1 Temps d’exécution d’un appel à la fonction
appel (procédure ou traitement).
% code Pourcentage de code exécuté hors
appel à une fonction WLangage ou à un
appel d’une fonction ou une procédure
personnelle.
Parent Traitement qui a appelé la fonction.
7 Tests de non-régression
158 Partie 4 : Développement d'applications : concepts avancés Partie 4 : Développement d'applications : concepts avancés 159
Partie 5
Installation
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.
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.
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.
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.
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).
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.
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)
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
Calcul statistiques Hyper- Permet de maintenir les statistiques d’index HyperFileSQL à jour sans
FileSQL programmation.
Codes postaux France Permet la recherche et la sélection d’une ville sans modifier l’analyse.
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.
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.
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. Gestion Commerciale Cette application est composée de 5 projets permettant de gérer
tous les aspects d’une gestion commerciale (clients, fournisseurs,
produits, stock).
WIFI Permet de :
- lister les cartes réseaux disponibles sur le poste en cours WD Active Directory DotNet Permet la visualisation du contenu d’un Active Directory.
- lister les réseaux WIFI disponibles
WD Agenda Permet de synchroniser des rendez-vous entre vos agendas Out-
- connaître la qualité du signal WIFI
look, Lotus Notes et Google.
- récupérer des informations sur une connexion WIFI établie
WD Album HTML Permet de générer un album photo HTML.
Zone mémoire Permet de visualiser dans une fenêtre le contenu entier d’une zone
mémoire. Permet également de modifier et d’ajouter des valeurs dans la WD Calculette Euro Présente la conversion multi-devise grâce à une calculette.
zone mémoire.
WD Client de la messagerie Messagerie utilisant les fonctionnalités RPC de WinDev pour le
dialogue avec le serveur de messages. Cet exemple est associé à
l’exemple "WD Serveur de la messagerie".
Deux sous-répertoires sont spécifiques à chacun de ces exemples :
• le sous-répertoire "<NomDuComposant>-Exemple" contient un exemple de projet utili- WD Comptabilité Utilise des filtres et des requêtes.
sant le composant, Propose également une utilisation particulière des états : les états
• le sous-répertoire "<NomDuComposant>-Source" contient le projet du composant. sur table.
WD Congés et RTT Gestion complète des congés et des RTT des collaborateurs d’une
Des composants supplémentaires seront livrés avec la Lettre du Support Technique société.
(LST) ou disponibles sur notre site (www.pcsoft.fr). Chaque utilisateur dispose d’un tableau de bord de l’état de ses
congés et RTT.
WD Editeur RTF Permet d’éditer du texte avec mise en forme RTF. WD LDAP Exploreur Permet de visualiser le contenu de tout annuaire LDAP et de modi-
fier les données LDAP.
WD Emprunt Permet de simuler des emprunts et notamment de :
WD Lecteur RSS Présente l’utilisation de classes permettant de lire des flux RSS
- calculer le montant des mensualités à partir du montant emprun-
té donné
WD Loupe Permet de zoomer une partie de l’écran grâce à une loupe visuelle.
- calculer le montant empruntable à partir d’une mensualité don- Il est possible de zoomer jusqu’à 8 fois.
née
- calculer le rapport d’un placement à partir d’un apport mensuel WD Mail Cette application est un client mail complet. Il s’appuie sur les
Pour chaque cas, il est possible d’imprimer le tableau d’amortisse- objets Email. Ce client mail permet de récupérer et d’envoyer des
ment correspondant à vos paramètres. emails en utilisant les protocoles POP, IMAP et SMTP.
WD Frais de port Gère les calculs de frais de port de colis. WD Messagerie instantanée Présente les différentes fonctions de gestion des sockets.
WD Génération de données Génère des données de tests pour vos applications. Ces données WD MotDePasse Présente un "coffre" à mot de passe. Il peut être utilisé pour gérer
sont stockées dans des fichiers de données externes à l’applica- les mots de passe créés lors de l’utilisation de sites Internet mais
tion. Pour manipuler ces fichiers de données, il n’est pas néces- également dans des applications ou des mots de passe de la vie
saire d’associer une analyse au projet. courante (digicodes, codes de cartes bancaires, etc.) .
WD Gestion Contacts Permet de gérer des contacts et de leur envoyer des emails. WD Multimédia Permet de lire et de jouer :
Il est également possible de synchroniser ces contacts avec ceux - des vidéos (AVI, MPEG...),
présents sur le terminal mobile relié au PC, et avec ceux de Outlook - des fichiers sons (MP3, WAV),
- des CD Audio,
WD Gestion de commandes Gestion de commandes/factures simplifiée. - des animations Flash.
Permet de :
- créer/modifier/supprimer un produit, WD Outlook Permet de lire et écrire dans les dossiers de Outlook :
- créer/modifier/supprimer un client, - Messagerie
- contacter un client par email, - Calendrier
- voir l’historique des actions effectuées auprès d’un client, - Contacts
- effectuer une commande, imprimer un bon de commande, - Tâches.
- facturer une commande, imprimer une facture, envoyer automati- Cet exemple est conçu pour fonctionner avec la version standard
quement une facture au client par email au format PDF. de Outlook livrée avec Office.
WD Gestion de parc informatique Permet de gérer un parc informatique. Pour chaque poste du parc, WD Planning Permet de réaliser un planning comportant des zones clicables.
ses caractéristiques, ses composants et ses utilisateurs peuvent
être définis. WD Proxy HTTP Cet exemple est un proxy HTTP simplifié. Il est possible d’enregis-
Ces fonctionnalités sont mises en œuvre grâce à l’utilisation de trer les connexions et de connaître les pages consultées.
requêtes, d’états et de combos.
WD ProxyPOP3 Cet exemple présente un proxy POP3. Dans cet exemple, le proxy
WD Gestionnaire de tâches DOT- Permet de lister les applications et les processus grâce à des fonc- est utilisé pour archiver automatiquement dans une base HyperFi-
NET tions .NET. leSQL les emails récupérés.
Permet d’effectuer différents traitements sur les applications et sur
les processus. WD Puzzle Montre comment utiliser les fonctions Drag&Drop ainsi que les
fonctions de manipulation d’images en WLangage.
WD Graveur Permet de graver des CD Audio et des CD de données, DVD ou WD Recherche sur Internet Permet de piloter différents moteurs de recherche sur Internet
disques Blue-Ray. (Yahoo, Alta Vista, Voilà, Lycos, Excite, Nomade, Google, Euroseek,
etc.). Le résultat de la recherche est affiché grâce à un ActiveX.
WD Graveur Lite Permet de graver des CD de données, DVD ou disques Blue-Ray.
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.
WD VisuTIF Petit éditeur d’image conçu avec WinDev mais uniquement pour le WD Arbre Doublons Cet exemple permet de manipuler les doublons dans un arbre
format d’image TIF. grâce aux fonctions WLangage ArbreID et ArbreSelect.
WD VisuTif permet d’ouvrir une image et d’afficher les différentes
pages de l’image WD Assistant Gère une fenêtre de type "Assistant".
- soit en mode MDI (dans plusieurs fenêtres filles),
- soit en mode diaporama. WD BGInfo Cet exemple montre comment écrire des informations sur le fond
d’écran d’un ordinateur (adresse IP, Nom de la machine, Date du
WD WebCam Présente l’intégration d’une Web Caméra dans une fenêtre WinDev. jour etc...).
Il est possible de :
WD Bluetooth Cet exemple montre l’utilisation des fonctions Bluetooth :
- Visualiser l’image retransmise par la caméra
- pour lister les périphériques Bluetooth accessibles
- Effectuer une capture instantanée
- pour lister les services offerts par un périphérique
- Capturer la scène retransmise sous forme d’animation Windows
(Fichier "AVI") - pour se connecter à un périphérique Bluetooth
- pour envoyer un fichier à un périphérique via les fonctions
"OBEX" du WLangage.
WD Classe XLS Cet exemple didactique a pour but d’offrir une première ap- WD Correcteur orthographe Permet de lancer le correcteur orthographique de Word à partir
proche, simple, de la manipulation des types avancés xlsDocu- d’une application WinDev.
ment, xlsColonne, xlsLigne et xlsCellule. Ce programme établit pour cela une connexion OLE avec Word.
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 Cryptage de données Présente les différentes méthodes de cryptage de données (sur
des chaînes de caractères ou des fichiers textes).
WD Client Java Cet exemple est une application Java développée avec WinDev.
Cet exemple présente notamment : WD Data Binding L’exemple "WD DataBinding" présente comment lier un champ à
- les ordres Hxxx gérés en Java sur HyperFileSQL (les ordres Hxxx une variable du WLangage.
sont disponibles en Java sur MySQL et SQL Server également)
WD Dessin sur Graphe Cet exemple repose sur l’utilisation d’un composant interne per-
- les champs avec des liaisons fichiers
mettant de dessiner des éléments sur un champ graphe : Zones
min/max, Zones diverses, Drapeaux, Plots et trackers de suivi,...
WD Détection erreurs Présente le module de gestion assistée des erreurs HyperFileS- WD Export Table Exporte le contenu d’une table vers :
QL : - Word
- le fonctionnement par défaut, - Excel
- les différentes possibilités de personnalisation. - Le presse-papiers Windows
- Un fichier texte
WD DirectX Cet exemple permet d’utiliser DirectX 9.0 dans vos applications
WinDev. WD Expressions régulières Présente deux types d’utilisation des expressions régulières :
- vérification du format d’une saisie
WD DndTableH Cet exemple montre l’utilisation du drag & drop programmé dans
une table hiérachique. - extraction des différents éléments respectant le format d’une
saisie.
WD Drag and Drop Windows Propose un catalogue d’images. Les images peuvent être ajou-
tées dans le catalogue par drag and drop depuis l’explorateur de WD Extraction MIME Permet d’extraire les pièces contenues dans un email.
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 :
WD Ecran de veille Permet de réaliser un économiseur d’écran grâce à la gestion - La fermeture d’une session Windows
des timers et des événements Windows. - L’arrêt et le redémarrage du poste
WD Envoi touches Illustre l’envoi de séquences clavier à une application avec les WD Fichier externe Présente comment manipuler des fichiers non décrits dans l’ana-
fonctions WLangage. lyse.
WD Etats Présente les différentes sources de données d’un état : WD Fichiers Texte Gère des fichiers externes (création, suppression, modification
du contenu d’un fichier externe).
- Etat à partir d’une table mémoire
- Etat à partir d’une zone mémoire WD Génération PowerPoint Cet exemple présente comment générer une présentation Power-
- Etat à partir d’une vue Point à partir :
- Etat à partir d’une requête - de données contenues dans une application WinDev, telles que
- Etat étiquette avec code-barres les données de tables, de graphes ..
- Etat à partir d’un fichier texte (gestion automatique ou parpro- - et d’un document PowerPoint .pptx de base.
grammation)
WD Gestion des erreurs Java Cet exemple didactique permet de comprendre le fonctionne-
- Etat avec passage de paramètres
ment et la mise en œuvre du mécanisme de gestion des erreurs
WD Etats avancés Présente différents types d’états. Permet d’illustrer : de WinDev.
- les états internes,
- le champ graphe,
- l’impression dans un fichier RTF, HTML ou PDF.
WD Grapheur Java Cet exemple montre comment réaliser des graphes grâce à aux WD Lien réflexif Utilise un lien "réflexif" pour gérer des arbres généalogiques :
fonctions de dessin. chaque personne a plusieurs parents, et plusieurs enfants. Tous
Trois types de graphe sont présentés : histogramme, nuage de ces enregistrements sont stockés dans le même fichier.
points, courbe.
WD Limitation de durée d’utilisation Permet de limiter l’utilisation d’une application à une période
WD Groupware utilisateur Présente le fonctionnement du Groupware Utilisateur. donnée (période d’essai).
WD JavaMail Permet de créer une applet, utilisable dans une page Internet. WD Masque de saisie avancé Cet exemple illustre les masques de saisie avancés :
Cette applet permet de lire et envoyer des emails. - Format des positifs/négatifs dans un champ de saisie numé-
rique
- Apparence des négatifs dans un champ de saisie numérique
WD Jump Lists JumpList sous Windows 7 - Apparence de la valeur 0 dans un champ de saisie numérique
Une JumpList est un menu accessible via le menu Démarrer ou - Expression régulière pour empêcher la saisie d’autres carac-
l’icône de l’application dans la barre des tâches. 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 Langage Externe Cet exemple illustre l’utilisation de fenêtres faites avec WinDev plaque d’immatriculation français.
dans une application en C++ (Visual Studio 2005) et MFC.
WD Multi fenêtrage Permet de comprendre les bases de la gestion du Multi-fenêtrage WD Persistance Cet exemple montre l’utilisation des fonctions InitParamètre,
avec WinDev. ChargeParamètre, SauveParamètre.
Ces fonctions permettent de configurer la sauvegarde de
WD Multitouch Cet exemple utilise un composant interne permettant d’utiliser champs, de variables et de tout autre paramètre.
les fonctionnalités Windows Touch dans une application WinDev.
WD Phonétique Permet d’effectuer une recherche phonétique sur le nom d’une
WD Nombre en lettres Permet de convertir une valeur numérique en lettres. personne. Cette recherche permet de retrouver un enregistre-
Cette conversion est alors affichée dans un état de type "Lettre ment dont on ne connaît pas l’orthographe exacte.
chèque".
WD Pilotage de Excel Permet de piloter Excel via OLE Automation. Toutes les fonctions
WD Objets graphiques Utilise la programmation orientée objet. d’Excel peuvent ainsi être utilisées.
Cet exemple est un éditeur d’objets graphiques.
Il est possible de : WD Pilotage de IE Permet de piloter IE via OLE Automation. Toutes les fonctions de
IE peuvent ainsi être utilisées.
- déplacer, redimensionner les objets
- effectuer des sélections au lasso ou à la souris WD Pilotage de Open Office Base Cet exemple propose une classe permettant de manipuler facile-
- couper/copier/coller des objets ment une base Open Office sans avoir à aucun moment à mani-
- supprimer/dupliquer des objets puler des objets OLE.
- enregistrer les documents créés et de les imprimer.
WD Pilotage de OpenOffice Calc Cet exemple didactique illustre le pilotage du tableur OpenOffice.
WD Observateur Répertoire Cet exemple montre l’utilisation des delegates .NET (événements org. Il est en effet possible de créer, ouvrir et manipuler des clas-
.NET) en WLangage. seurs ouverts dans OpenOffice.org depuis une application Win-
Dev.
WD OLE DB Permet d’accéder à des bases de données externes via OLE DB.
WD Pilotage de OpenOffice Writer Cet exemple didactique illustre le pilotage de OpenOffice Writer. Il
WD OPC Montre l’implémentation du protocole OPC en WinDev. est en effet possible de créer, ouvrir et manipuler des documents
ouverts dans OpenOffice Writer depuis une application WinDev.
WD OpenGL Permet d’interfacer OpenGL et WinDev. OpenGL est une interface
logicielle destinée à dessiner des objets tridimensionnels (3D). WD Pilotage de Outlook Permet de piloter Outlook via OLE Automation. Toutes les fonc-
tions de Outlook peuvent ainsi être utilisées.
WD Organigramme Cet exemple permet de créer des organigrammes.
WD Pilotage de Tableurs Cet exemple illustre le pilotage du tableur OpenOffice Calc et du
WD OSD OSD signifie : On-Screen Display. C’est le nom donné aux inter- tableur Excel, avec un code générique.
faces qui apparaissent sur les écrans d’ordinateur ou des télévi-
seurs par exemple. Ils servent souvent à effectuer des réglages. WD Pilotage de Word Permet de piloter Word via OLE Automation. Toutes les fonctions
Ces types de menus ont comme particularité d’être affichés par de Word peuvent ainsi être utilisées.
dessus tout ce qui se trouve à l’écran. Cet exemple montre com-
ment réaliser ce type d’interface sous Windev. WD Pilotage traitement de texte Le but de cet exemple est de proposer une interface universelle,
permettant de piloter ces applications, sans se soucier de l’appli-
cation à piloter.
WD Recherche par clé composée Présente l’utilisation des filtres et l’utilisation des clés compo- WD Tables Ruptures Montre comment utiliser des "ruptures" dans une table.
sées afin d’optimiser les temps de recherche sur un fichier de
données HyperFileSQL. WD Tachymètre Un tachymètre (ou "speedometer") est une jauge qui peut
prendre la forme d’un compte-tours, d’un compteur kilomètre.
WD Regroupement de liste des Permet de regrouper l’ensemble des tâches réparties sur plu- Cet exemple didactique présente les jauges circulaires.
tâches sieurs projets.
WD Text-To-Speech Cet exemple montre comment effectuer une synthèse vocale
WD Réplication Universelle Montre comment synchroniser les données de différents sites en dans une application WinDev en utilisant la classe Speech-
utilisant la réplication universelle. Synthesizer du framework DOTNET.
WD Requêtes Permet d’effectuer des calculs, de passer des paramètres ou WD Threads Java Cet exemple didactique Java montre comment utiliser les
d’imprimer le résultat d’une requête SQL sur un fichier de don- threads. Section critique, sémaphore, tous les points essentiels
nées HyperFileSQL. du développement multi-threads sont abordés ici.
WD Rotation Avancée Permet d’effectuer la rotation d’une image à partir d’un point WD Timeline Propose un composant interne permettant de manipuler un
quelconque qui servira de centre de rotation. modèle de champ ‘Timeline’. Une timeline permet d’afficher de
façon linéaire une série d’événements qui se sont déroulés sur
WD SAP Permet donc d’accéder à vos données SAP directement depuis une période donnée de temps.
vos applications WinDev grâce aux fonctions SAP.
WD Touches clavier Permet de détecter et d’identifier l’appui sur une touche du cla-
WD Serveur SOAP Illustre l’utilisation des fonctions SOAP disponibles en WLangage. vier.
Aborde deux thèmes principaux :
- Exécution d’une requête SOAP
- Récupération du résultat d’une requête SOAP
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é).
WD TSL Java Permet de définir une couleur à l’aide de ses composantes TSL
(Teinte, Saturation, Luminosité), puis de générer une archive
Java.
WD Utilisation des classes DotNet Permet d’utiliser des classes DOTNET en WLangage. Permet de :
- analyser une chaîne de caractères,
- configurer les boîtes de dialogue affichées.