Académique Documents
Professionnel Documents
Culture Documents
2 0
TDF TECH 2007
Tour de France Technique
9 Présentation
10 WinDev
Rapide présentation de WinDev et de ses fonctionnalités
12 WinDev Mobile
Rapide présentation de WinDev Mobile et de ses fonctionnalités
14 WebDev
Rapide présentation de WebDev et de ses fonctionnalités
20 Champ Carrousel
Le champ carrousel sans .Net
21 Manipulation d’éditeurs
7 manipulations étonnantes pour vous faire gagner encore plus de temps
22 Timers Automatiques
Gestion des timers automatiques dans WinDev
26 PersoMenu
Définissez et paramétrez un menu personnalisé directement dans WinDev
27 Aide en ligne
Utilisation avancée de l’aide en ligne
28 Clé USB
Une application complète sur clé USB
29 Bande magnétique
Lecture d’une bande magnétique de carte
41 Composants
Publication et utilisation des composants via le GDS
45 WLangage
Quelques syntaxes méconnues et l’utilisation des infos de compilation
46 Sécurité
Principe et utilisation des clés de hashage
47 64 Bits
Comment générer une application 64 bits ?
51 Test de procédures
Comment créer un test efficace sur une procédure ou sur une méthode de classe ?
53 AutoMate de tests
Utiliser l’automate de tests pour valider une application (.exe)
57 Surcharge d’IHM
Utilisation de la surcharge d’IHM
58 Modèles de Champs
Principe et fonctionnement des modèles de champs
63 Splash screen
Choisir et paramétrer un splash screen
64 Champ Table
Quelques astuces pour l’IHM de vos tables
66 FAA
Création de minuteries par l’utilisateur
67 Champ tirroir
Utilisation du champ “Tirroir”
70 Etats et Requêtes
Utilisation, intégration et déploiement d’une application exploitant “Etats et Requêtes”
80 Requêtes WLangage
Des requêtes utilisant le WLangage
81 Requêtes Multi-bases
Une requête sur Hyper File et Oracle
87 Boîtes de dialogue
Réaliser des boîtes de dialogues et de saisie dans un navigateur
88 GFI
Un GFI en WebDev
89 Ergonomie
Améliorer l’ergonomie des sites grâce à Ajax
97 Centres de contrôles
Accès distants aux centres de contrôles
102 Outlook
Vos applications interagissent avec Outlook
105 Ancrages
Les ancrages dans vos sites WebDev
107 Honolulu
Nouvelle version du portail Intranet / Extranet : Honolulu
111 Débogage
Le débogage d’une application sur le mobile
I Sommaire
II Annexe A
Quelques commandes du W-Langage
IV Annexe B
Les principales touches de raccourci
Les outils
Des outils facilitant le développement sont
également fournis (WDMAP, WDOUTIL,
WDVERSION, ...) ainsi que de nombreux
exemples et assistants réutilisables.
Des centres de contrôle permettent la
gestion du cycle de vie de vos applica-
tions ainsi que leur administration.
Une aide en ligne vous guide tout au long
du développement de votre application.
Cette aide inclut également une aide à la
correction d’erreurs.
Les différents éditeurs seront utilisés,
depuis la définition d’une analyse jusqu’à
l’installation, en passant par toutes les
phases du développement (création des
fenêtres, des états, des traitements...),
sans oublier les sauvegardes.
Les bases de
données
Le moteur Hyper File sera utilisé pour les
WinDev est un AGL (Atelier de Génie · Un éditeur d’analyses permettant l’ac- fichiers de données des applications. La
Logiciel). cès à tout type de base de données (Hyper base de données Hyper File est disponible
File, Hyper File Client/Serveur, xBase, en mode Classic ou Client/Serveur et est
L’éditeur d’IHM de AS/400*, Oracle*, SQL Server*, Access**, librement diffusable avec les applications
WinDev ODBC, OLE DB, ... ) WinDev.
· Un éditeur UML permettant une modé-
WinDev permet de développer simple- lisation objet de vos données et traite- L’utilisation d’autres moteurs de base de
ment tout type d’applications Windows ments. données est également possible sur le
dans les domaines de la gestion, de l’in- · Un éditeur d’IHM avec correcteur d’in- même principe.
dustrie, du médical, etc. terface en temps réel.
Les applications développées peuvent · Un éditeur de code évolué (avec assis-
inclure l’accès à des bases de données. tants, vérification du code saisi, colo-
WinDev propose un puissant moteur de ration syntaxique, aide contextuelle …)
base de données : Hyper File. incluant un puissant débogueur.
Il est conseillé d’utiliser Hyper File · Un éditeur de requêtes pour les sélec-
pour vos applications afin d’obtenir les tions d’enregistrements dans les fichiers.
meilleures performances dans vos traite- · Un éditeur d’états.
ments de fichiers. Une version Hyper File · Un éditeur d’aide permettant de géné-
Client/Serveur est aussi disponible. rer des fichiers d’aide au format CHM.
· Un éditeur d’installation.
L’environnement de développement inté-
· Un éditeur de dossier technique repre-
gré de WinDev se compose de différents
nant intégralement toutes les informa-
éditeurs :
tions techniques de votre projet.
· Un éditeur de projet permettant de
* accès natif optionnel, ** accès natif inclus.
visualiser et d’agir sur le graphe du pro-
jet.
Il est conseillé d’utiliser Hyper File Une aide en ligne vous guide tout au long
pour vos applications afin d’obtenir les du développement de votre application.
meilleures performances dans vos traite- Cette aide inclut également une aide à la
ments de fichiers. Une version Hyper File correction d’erreurs.
Client/Serveur est aussi disponible.
WinDev Mobile permet également d’accé- Le moteur Hyper File Mobile sera utilisé
der aux bases de données CEDB, bases de pour les fichiers de données de l’appli-
données standard des Pockets PC. cation.
Les Concepts
Internet
Les différents services de l’In-
ternet
Internet est un réseau mondial d’ordina-
teurs pouvant dialoguer entre eux. Ces
ordinateurs peuvent être de types diffé-
rents (micros, minis, …) et fonctionner
sur des systèmes d’exploitation différents
(Windows, Linux, MacOS, Unix, …).
Tous ces ordinateurs sont reliés par le
biais du protocole TCP/IP.
WWW (World Wide Web) ou “toile d’arai-
gnée mondiale” a été créé en 1990. Il
peut véhiculer des pages pouvant conte-
nir du texte, des images, du son, de la
vidéo. Un regroupement de pages consti-
tue un site.
Le terme Internet regroupe plusieurs ser-
vices d’utilisation différente :
WebDev est un AGL (Atelier de ration syntaxique, aide contextuelle …) • FTP (File Transfer Protocol) est un ser-
Génie Logiciel) orienté développe- incluant un puissant débogueur. vice permettant de transférer des fichiers
ment de sites Intranet et Internet. • Un éditeur de styles incluant police, d’un ordinateur vers un autre à travers
couleur, position, etc. Internet.
WebDev permet de développer
• Un éditeur de requêtes pour les sélec- • SMTP (Simple Mail Transfer Protocol)
tout type de sites dynamiques
tions d’enregistrements dans les fichiers. permet d’envoyer des messages ou mails
incluant l’accès à des bases de • Un éditeur d’états. à un utilisateur défini. Chaque utilisateur
données. Il permet aussi de déve- • Un éditeur de dossier technique repre- doit disposer d’une adresse Email qui lui
lopper des sites semi-dynamiques nant intégralement toutes les informa- sert de boîte aux lettres.
et statiques. tions techniques de votre projet. • HTTP (Hypertext Transfer Protocol).
• Un éditeur d’installation. HTTP est un protocole de niveau appli-
Présentation de * accès natif optionnel, ** accès natif inclus cation qui est utilisé pour le transfert de
WebDev L’éditeur d’installation assure la mise en pages sur Internet.
WebDev est composé de différents édi- place des sites créés, ainsi que leur main- Chacun de ces services nécessite un ges-
teurs : tenance. Cet outil permet de réaliser une tionnaire de services installé sur un ser-
• Un éditeur de projet permettant de installation sur le serveur via FTP ou par veur :
visualiser et d’agir sur le graphe du pro- média physique (CD, Zip, etc.). • Le gestionnaire de services FTP gère
jet. Des outils facilitant le développement sont l’hébergement des fichiers, les droits
• Un éditeur de pages. également fournis (WDMAP, WDOUTIL, d’utilisation des fichiers et la réponse
• Un éditeur d’analyses permettant l’ac- WDSQL, etc.) ainsi que de nombreux aux demandes en provenance des autres
cès à tout type de base de données (Hyper exemples et assistants réutilisables. postes.
File, Hyper File Client/Serveur, xBase, Les principaux éditeurs sont utilisés, • Le gestionnaire de services SMTP prend
AS/400*, Oracle*, SQL Server*, Access**, depuis la définition d’une analyse jus- en charge les demandes d’envoi de mes-
OLE DB, etc.). qu’à l’installation, en passant par toutes sages et le routage vers les serveurs POP
• Un éditeur de code évolué (avec assis- les phases du développement (création (réception des messages) concernés.
tants, vérification du code saisi, colo- de pages, traitements, états, etc.), sans • Le gestionnaire Web (www) permet
• Optimisation du code
60 secondes
Disponible sur le DVD
le répertoire du projet”.
TDF TECH 2007
Tour de France Technique
• Manipulation d’éditeur
• Gain de temps
Et sous Windows 98 ?
Si l’utilisateur de votre application utilise
Windows 98, une liste image s’affichera
automatiquement au lieu du carrousel.
• Manipulation d’éditeur
• Gain de temps
7 manipulations étonnantes
pour vous faire gagner encore Projet Associé
plus de temps
Disponible sur le DVD
l’interface ouverts.
• Une configuration pour le débogage.
Quelques raccourcis
utiles
• Ctrl+Shift+W : fermer tous les éléments
ouverts
• F9 : tester l’élément en cours (équiva-
lent au Go de fenêtre).
• Ctrl+F9 : tester le projet (équivalent au
Go du projet).
• Automatisation
• Gain de code
• Centralisation des
erreurs
Illustration de la
fonctionnalité
Dans ce chapitre, nous allons voir com-
ment mettre en place une gestion auto-
matique des erreurs sur un exemple sim-
ple : la fenêtre “Fen_Sauvegarde”.
Cette fenêtre permet de faire une sauve- d’écri- Pour cela, il suffit d’indiquer à la
garde de l’application et de ses données ture, la sauvegarde ne peut pas être réa- procédure SauvegardeApplication, que si
vers un fichier ZIP. lisée. Actuellement, un message avertit elle rencontre une erreur, elle doit “remon-
l’utilisateur et l’application “sort” du ter” cette erreur, c’est-à-dire transmet-
La partie du code qui nous intéresse traitement. tre cette erreur au traitement appelant.
pour cet exemple est le code du bouton
“Sauvegarder”. Analysons donc plus pré- • Avec la gestion automatique des Il est donc possible de :
cisément ce traitement. erreurs, nous allons donc choisir l’option • Supprimer le code de gestion des
1. Dans ce code, les erreurs sont traitées “Afficher l’erreur et retourner en saisie erreurs
“à la main” (par programmation). dans la fenêtre courante”.
Nous retrouvons le test manuel du compte
// Sauvegarde de la base de données
“Afficher l’erreur”, signifie que WinDev
rendu de l’ouverture du fichier Zip et
SauvegardeBaseDeDonnées()
va automatiquement afficher un message
l’affichage d’un message en cas d’erreur. clair sur l’erreur survenue. Par exemple // Sauvegarde des plugins de
Nous allons alléger et simplifier le code, “Vous n’avez pas les droits d’écriture”, // l’application
en utilisant la nouvelle gestion automati- etc. SauvegardePlugins()
que des erreurs de WinDev. • Maintenant que la gestion automatique
Cette gestion des erreurs est centralisée est mise en place, vous pouvez supprimer // Sauvegarde de la configuration de
dans le bandeau, en haut. Actuellement, le code de gestion manuelle des erreurs. // l’application
s’il y a une erreur, elle est traitée par SauvegardeConfiguration()
programmation.
Extensions aux procédures
RENVOYER Vrai
WLangage
2. Un clic sur le bandeau permet de sélec-
Le mécanisme de gestion des erreurs
tionner une action à réaliser en cas d’er- • Modifier la procédure SauvegardeApp
fonctionne également sur les fonctions et
reur. Les actions prédéfinies permettent lication pour qu’elle génère une erreur
les procédures WLangage.
de gérer la plupart des cas d’erreurs. exploitable par le mécanisme de gestion
Par exemple, dans le traitement du bou-
automatique.
ton “Sauvegarder”, au lieu de traiter sa
Mise en oeuvre valeur de retour et de retourner en sai-
Analysons le code existant pour trouver sie, il faudrait exploiter la gestion des
l’action correspondante : erreurs.
• Si la fonction ZipOuvre échoue, par
exemple si l’application n’a pas les droits
Dans cette procédure, le traitement d’er- Il suffit de faire de même avec les autres
reur est toujours le même et il est dupli- procédures.
qué trois fois. Nous allons l’automatiser
comme précédemment grâce à la gestion Remarque : Il est préférable d’afficher
des erreurs. les messages d’erreurs au niveau le plus
Pour cela, cliquez dans le bandeau, mais haut possible, c’est-à-dire dans le code
cette fois, choisissez d’exécuter le mode des champs par exemple.
“CAS ERREUR”. Cela permet d’avoir un message générique
et clair pour l’utilisateur. L’utilisateur ne
WinDev ajoute alors une étiquette CAS veut pas savoir que le fichier de configu-
ERREUR à la fin de la procédure. ration n’a pas pu être ajouté à l’archive
ZIP parce qu’il n’a pas pu créer le réper-
Il suffit alors de déplacer le code à exécu- toire relatif dans l’archive.
ter en cas d’erreur dans ce traitement :
CAS ERREUR:
// Fermeture de l’archive
zipFerme(“MonArchive”)
RENVOYER Faux
• Gain de temps
• Utilisation de macros
Définissez et paramétrez un
menu personnalisé directement Projet Associé
dans WinDev
Notre conseil
Vous pouvez, plus simplement, faire un
glisser-déplacer (DragNDrop) de votre
exécutable dans la fenêtre de configura-
tion du PersoMenu: tous les paramètres
sont alors automatiquement remplit.
• Filtrage de l’aide
• Gestion de plateforme
L’aide contient toutes les fonc- Windows et Linux, assurez-vous que les
tionnalités de WinDev, WebDev et filtres correspondant soient activés.
WinDev Mobile. Elle est commune Pour la base de données
aux 3 produits. Si votre application fonctionne en Hyper
Vous pouvez cependant n’afficher File Client/serveur et utilise les procé-
que l’aide qui vous intéresse à
un instant donné. Par exemple,
Aujourd’hui, vous travaillez sur une
application WinDev, et vous sou-
haitez donc n’afficher que l’aide
des fonctionnalités de WinDev.
Filtres prédéfinis
Vous disposez tout d’abord de filtres pré-
définis par produit. Vous travaillez sous
WinDev, vous pouvez donc sélectionner
“WinDev” dans la combo.
Filtres personnalisés
Vous pouvez ensuite affiner les filtres de
l’aide pour :
• La plateforme et des langages
• La base de données.
Pour la plateforme
Si votre application va fonctionner sous
• Application autonome
• Gestion déconnexion
Principe
Création de l’exécutable
En fait, c’est simple. Il suffit de compiler
l’application comme d’habitude.
Vous avez tous dans votre porte- fait le reste. Vous pouvez ensuite bien sûr découper la
feuille des cartes avec une piste • Validez l’assistant : WinDev a généré chaîne obtenue pour récupérer les infor-
magnétique, que ce soit des car- tout le code nécessaire pour piloter le mations que vous voulez. Cet exemple
lecteur. vous a permis de piloter un lecteur de
tes de fidélité, des cartes bancai-
• Lancez votre application par un GO. carte. Le principe reste le même pour
res, une carte du club de gym,
• Passez une carte disposant d’une piste piloter :
etc... magnétique dans le lecteur : vous obte- • une caisse enregistreuse
Avec WinDev, il est possible de lire nez le contenu «brut» lu sur la piste • une badgeuse
le contenu de ces pistes magnéti- magnétique. • une pointeuse
ques. Pour cela, vous devez dispo- Dans ce contenu, vous pouvez retrouver • un contrôle d’accès
ser d’un lecteur de carte, qui lit numéro de client, points de fidélité, par- • une machine-outil.
les pistes magnétiques et qui doit fois le nom, etc...
être relié à votre PC par le port
COM.
□□□
la somme de : ..................... Euros
□ Je règle par Carte Bancaire. Cryptogramme :
□□□□□□□□□□□□□□□□ □□ □□□□
Numéro complet de la carte : la carte expire : mois année
Notre astuce
Si vous êtes en mode “chef de projet”,
le nombre de bugs affiché correspond au
nombre de bugs pour toute l’équipe.
Si vous êtes en mode «développeur», le
nombre de bugs affiché correspond aux
bugs qui vous sont affectés, à vous.
Optimisation des requêtes WinDev intègre une messagerie interne Vous pouvez voir si votre projet est dans
qui vous permet d’avoir les messages spé- un GDS, ainsi que les développeurs qui
cifiques à vos développements. Cet indi- travaillent dessus. Mais vous pouvez éga-
cateur affiche le nombre de messages. lement voir les éléments qui sont actulle-
ment extraits du GDS. Dans ce projet, 5
fichiers sont extraits.
Les règles
Les messages
Notre astuce
Le paramétrage du tableau de bord est
stocké dans le fichier “ParamTBP.dat”
dans le répertoire de votre projet
Vous pouvez partager ce fichier de
paramétrage entre développeurs, et aussi
pour plusieurs de vos projets.
Bonus
Vous pouvez même paramétrer l’appa-
rence du tableau de bord :
Faites un clic droit sur le Tableau de bord,
choisissez l’option “Apparence” et vous
changez l’apparence de votre tableau de
bord.
□□□
la somme de : ..................... Euros
□ Je règle par Carte Bancaire. Cryptogramme :
□□□□□□□□□□□□□□□□ □□ □□□□
Numéro complet de la carte : la carte expire : mois année
• Utilisation du GDS
• Extraction / Réinté-
intégré au GDS
Le GDS (Gestionnaire de Sources) est disponible • Le treeview.
depuis les versions 10. Avant de détailler certaines • Ou depuis l’administrateur du GDS
fonctionnalités spécifiques dans les prochains sujets, Le GDS ouvre alors la fenêtre d’extraction, et propose de sélec-
voici un rappel rapide (issu du TDF Tech 2006) du tionner parmi trois modes d’extractions.
fonctionnement du GDS et de ces principales fonc- • L’extraction “Exclusive” : Personne ne pourra extraire cet élé-
tionnalités. ment tant qu’il n’aura pas été réintégré dans la base de sources
• L’extraction “pour test” : Vous pourrez modifier cet élément,
l’IHM, le code …, mais ces modifications ne pourront pas être
Modification d’une fenêtre réintégrées dans la base de sources. Cette extraction est utile,
Pour illustrer la modification d’une fenêtre, vous pouver utili- par exemple, pour une modification ponctuelle et spécifique
ser la fenêtre principale d’un projet exemple : ici “PC Liste des pour tester une nouvelle fonctionnalité.
tâches”. • L’extraction “multiple” : Il sera possible pour d’autres
développeurs d’extraire cet élément et de le modifier en paral-
Ouvrez la fenêtre principale de notre exemple d’application : la lèle. A la réintégration dans le GDS, il sera alors nécessaire de
fenêtre n’est pas extraite du GDS, comme le montre le libellé fusionner les modifications des différents développeurs. Ce type
rouge en haut. d’extraction ne doit être utilisé que dans des cas très particu-
liers.
• Maintenance évolutive
et corrective.
• Partage de composants
• Versions de composants
bilité”.
• Cochez “Publier le composant dans le
répertoire suivant du GDS”.
• Cliquez sur le bouton de sélection “...”
pour indiquer l’emplacement du compo-
sant dans votre GDS. Sélectionnez par
exemple “projets WinDev”.
• Cliquez sur “nouveau répertoire”.
• Saisissez le nom du répertoire qui
contiendra vos composants, par exemple
«Composants».
Importation de
composant
Pour importer un composant, qui est dans
le GDS, dans un projet :
• Utilisez le menu “Atelier .. Composant
.. Importer un composant dans le projet
.. À partir du GDS”.
• Cliquez sur “rechercher” : WinDev 11
liste tous les composants présents dans
le GDS.
• Sélectionnez alors le composant que
vous souhaitez importer.
□□□
la somme de : ..................... Euros
□ Je règle par Carte Bancaire. Cryptogramme :
□□□□□□□□□□□□□□□□ □□ □□□□
Numéro complet de la carte : la carte expire : mois année
• Réduction du code et
du risque d’erreur
La syntaxe d’itération POUR TOUT, Il suffit de mettre les valeurs qui compo- les requêtes, les vues et les sources de
apparue en version 10, offrent de sent cette clé entre crochets. données. Ces syntaxes améliorent signi-
nombreuses possibilités. Plusieurs // Parcours de tous les ficativement la lisibilité de votre code
// enregistrements du fichier par rapport à l’utilisation des fonctions
groupes de POUR TOUT peuvent
// client sur une clé composée: HLitPremier, HLitSuivant.
être différenciés.
// AuteurModifDateModifNumClient
// Parcours tous les clients
• Amélioration de code
• Astuces
compilation
Disponible sur le DVD
Dans le WLangage, certaines syn- Les mots clés “FIN :” sion. Ce recalcul du nombre d’occurence
taxes, parfois méconnues permet- prend du temps et n’a ici aucune utilité.
tent de simplifier votre code.
et “RETOUR”
Le mot-clé “Fin :” permet d’exécuter du Dans le deuxième exemple, la boucle
code à la sortie d’une procédure, et ce suit le même principe avec la propriété
L’échange de quel que soit la ligne de code où la sortie Occurrence. C’est ce code que WinDev
suggère d’optimiser et pour lequel il
variables est effectuée.
donne un conseil d’optimisation des per-
FIN:
Pour échanger les valeurs de deux varia- formances.
// on revient à la position
bles, il suffit d’utiliser l’opérateur // précédente
“<=>”. HRetourPosition(nPosition) Pour optimiser cette boucle, il vous suf-
fit de déclarer un entier, et de l’affecter
i est un entier = 5
j est un entier = 10 Une autre syntaxe permet d’avoir un avant la boucle. Ainsi le calcul n’est fait
comportement similaire : l’affectation qu’une seule fois.
// Echange des valeurs du mot-clé RETOUR permet de définir la
i <=> j valeur qui va être renvoyée par la procé-
Dans cet exemple, la variable i vaut dure. Cette syntaxe peut être très utile, Notre astuce
maintenant 10 et la variable j vaut 5. puisque le code situé après le «RETOUR» Une autre solution, plus simple, consiste
Cela évite donc de passer par une varia- sera toujours exécuté. à utiliser la syntaxe POUR TOUT présen-
ble intermédiaire. // On va retourner le nom tée dans un précédent sujet.
// du client
RETOUR = CLIENT.NomClient
Les intervalles
// on revient à la position
Les intervalles peuvent être utilisés dans // précédente
la syntaxe SELON : HRetourPosition(nPosition)
SELON i
// La valeur i est comprise
// entre 0 et 5 Les informations de
CAS 0 A 5
// Traitement
compilation
FIN En version 11, le compilateur de projet
Autre syntaxe de l’intervalle : il est pos- a évolué pour vous aider à optimiser au
sible de personnaliser l’inclusion et l’ex- mieux votre code.
clusion. • Ouvrez la fenêtre “FEN_Information”,
SELON i Ici, dans le volet “Code” (du kouglof),
// Syntaxe personnalisée une information de compilation est affi-
// (pour personnaliser chée pour mon projet : “Pour optimiser
// l’inclusion et l’exclusion votre boucle POUR, utilisez plutôt comme
// des bornes) borne maximale une variable locale de
CAS 0 <= * < 5
type entier ou réel.”
// Traitement
FIN • Cliquez sur l’information de compila-
tion : vous accédez directement à la sec-
Cette ligne traite donc le cas où i est tion de code correspondante.
supérieur ou égal à 0, et strictement
inférieur à 5. Dans ce code, la boucle permet de par-
Les intervalles peuvent être également courir toutes les lignes de la table.
utilisés dans la syntaxe SI ALORS SINON. A chaque itération de la boucle, le nom-
bre d’occurrence de la table est recal-
Si i est compris entre 0 et 5 alors mon culé, alors qu’aucune modification n’a
traitement sera exécuté. été faite sur la table : ni ajout ni suppres-
• Cryptage
• Sécurité
□□□
la somme de : ..................... Euros
□ Je règle par Carte Bancaire. Cryptogramme :
□□□□□□□□□□□□□□□□ □□ □□□□
Numéro complet de la carte : la carte expire : mois année
• Test d’interface
• Test de surface
Exécution du test
Vous pouvez rejouer ce test avec un sim-
ple GO : WinDev rejoue automatiquement
le scénario.
Une fois le test terminé, un compte rendu
s’affiche sous l’éditeur. Dans la fenêtre
des résultats, vous pouvez voir que ce
test est passé avec succès.
Ce test vous a permis de contrôler l’IHM
de la fenêtre. Mais vous pouvez égale-
ment vérifier si les traitements se sont
bien déroulés.
Test de fonctionnalité
Ouvrez la fenêtre “FEN_Fiche_client”
Sur cette fenêtre, il peut être utile de
vérifier que le traitement d’ajout d’un
client dans la base de données s’effectue
correctement. Un test d’ajout de client
dans la base est déjà préparé.
Pour vérifier que l’ajout s’est bien passé,
Les tests unitaires vous permettent Faites un test simple :
• Sélectionnez un client. affichez le code du test et ajoutez un trai-
d’enregistrer et de rejouer des
• Affichez le détail de ses informations. tement après l’exécution du scénario.
tests sur vos éléments du projet : Par exemple, saisissez “HLitRecherche”
• Fermez le détail puis fermez la fenê-
vos fenêtres, vos procédures, vos dans le code “après test”.
tre.
classes. Et ce, en cours de déve- Il est également possible de mettre du
loppement. De retour sous l’éditeur, WinDev vous code “avant le test”.
L’avantage méthodologique est propose de saisir une description pour ce Cela peut être utile, par exemple, pour :
test.
l’intégration au plus tôt de tests définir une base de données de test ou
> Saisissez : «Ce test teste l’IHM de ma
dans le cycle de vie de l’applica- remettre des paramètres à leur valeur
fenêtre». par défaut.
tion. WinDev a généré le scénario de test direc-
tement en code WLangage.
Ce scénario utilise des nou-
Test de surface velles fonctions WLangage
Ouvrez la fenêtre “Fen_AjoutClient”. de la version 11 :
• PiloteSouris pour piloter
Cette fenêtre permet de lister des clients.
la souris
Pour tester son IHM, vous pouvez créer un
• PiloteDialogue pour pilo-
test unitaire.
ter une fenêtre de dialo-
Enregistrement du test gue.
Pour cela, utilisez le menu “Tests Point important pour la
Automatiques .. Enregistrer un nouveau personnalisation des tests,
test”. vous pouvez, si vous le sou-
La fenêtre se lance automatiquement. À haitez, modifier ce code, et
partir de maintenant, toutes les actions même rajouter votre pro-
que vous allez effectuer seront enregis- pre code WLangage dans ce
trées dans le scénario de test. scénario.
• Test et validation de
traitements
méthode de classe ?
Disponible sur le DVD
• Couverture de tests
La stratégie de tests
Projet Associé
test unitaire
(.exe)
Disponible sur le DVD
Notre astuce
Vous pouvez lancer l’automate de tests
depuis WinDev : cliquez sur le menu
“Tests automatiques .. Lancer l’automate
de tests”.
□□□
la somme de : ..................... Euros
□ Je règle par Carte Bancaire. Cryptogramme :
□□□□□□□□□□□□□□□□ □□ □□□□
Numéro complet de la carte : la carte expire : mois année
• Partage d’IHM
• Partage de traitements
Notre astuce
Une fenêtre peut hériter de plusieurs
modèles.
• Personnalisation sans
suppression du lien de
Utilisation de la surcharge mise à jour
Notre astuce
La surcharge permet de person- Dans cette fenêtre, le bouton “Annuler” Dans le code du bouton, vous faites ce
naliser les propriétés d’un champ sert simplement à “Fermer” la fenêtre. que vous voulez. Vous pouvez mettre
et même son code, et ce tout en Il faut donc modifier son libellé. du code avant et/ou après la fonction
•Surchargez le bouton «Annuler» comme ExécuteAncêtre.
restant lié au modèle.
décrit précédemment. Vous pouvez aussi complètement la sup-
• Modifiez son libellé en “Fermer” dans primer, pour dissocier totalement le code
Surcharge d’IHM l’onglet “Général” de la fenêtre de des- du champ du code du modèle.
cription du bouton.
La fenêtre qui a été précédemment créée
est une fenêtre de consultation avec une
• Faites un GO pour visualiser le résul- Autre astuce
tat.
liste de clients : le bouton “Valider” est Vous pouvez voir la liste des propriétés
Maintenant, le libellé du bouton, et sa
donc ici inutile. surchargées pour les champs. Faites un
position (X et Y) ne sont plus reliés au
clic droit sur le champs puis sélection-
Pour surcharger le bouton “Valider”, fai- modèle, mais les autres propriétés et le
nez “Propriétés surchargées”. Vous pou-
tes un clic droit sur le bouton, puis sélec- code du bouton restent reliés au modèle.
vez également annuler les propriétés
tionnez “Surcharger le champ”.
surchargées : IHM et code. Sélectionnez
Le petit carré en haut à gauche du bouton
les propriétés et cliquez sur le bouton
est passé de jaune à bleu : la couleur bleu
signifie que le bouton est surchargé. Surcharge de code “Supprimer”.
Pour que le bouton “Valider” ne soit pas A la fermeture de la fenêtre, il peut être
visible, ouvrez sa fenêtre de description utile de demander à l’utilisateur une
et décocher la propriété “Visible” dans confirmation de fermeture.
l’onglet IHM.
En version 11, vous disposez des Plutôt que de recréer, pour chacune des Notre astuce
modèles de champs. fenêtres, ce groupe de champs avec le
code, et plutôt que d’utiliser le super- Vous pouvez utiliser plusieurs fois un
Un modèle de champs est un même modèle de champs dans une même
champ livré avec WinDev, vous allez créer
ensemble de champs avec leurs fenêtre.
et utiliser un modèle de champs :
codes, réutilisable dans plusieurs
• Ajoutez le SuperChamps “Saisie d’une
fenêtres. période” depuis le volet “SuperChamps”.
• Sélectionnez le SuperChamps et sélec-
Notre conseil
Il peut être apparenté au super- tionner l’option “Champs .. Refactoring .. Quelques conseils pour choisir la meilleure
champ, mais il est beaucoup plus Défaire le SuperChamps”. technologie : à la place des superchamps,
évolué, avec notamment : • Sélectionnez le groupe de champs utilisez des modèles de champs.
• La surcharge nécessaires à la définition d’un inter- Si vous prévoyez d’utiliser une fenêtre
• L’héritage valle, puis coupez-le. interne plus de 3 fois, utilisez les modè-
• Un partage facilité : puisque le • Créez ensuite un modèle de champs : les de champs.
modèle de champs est un fichier utilisez le menu “Fichier .. Nouveau ..
Modèle de champ”.
physique, vous pouvez le mettre à
• Collez les champs, puis adaptez la
disposition de vos développeurs
taille du modèle : faites un clic droit sur
comme n’importe quel autre le modèle, et cliquez sur “Adaptez la
fichier. taille”.
Dans l’application exemple, un intervalle Votre modèle de champs est créé : don-
de dates doit être saisi dans plusieurs nez-lui un nom.
fenêtres.
Notez que vous pouvez utiliser des modè-
> Ouvrez la fenêtre “Fen_liste Commande” les de champs dans un autre modèle de
du projet “Gestion Commerciale”. champs.
Maintenant que vous disposez d’un
modèle de champs pour définir un inter-
□□□
la somme de : ..................... Euros
□ Je règle par Carte Bancaire. Cryptogramme :
□□□□□□□□□□□□□□□□ □□ □□□□
Numéro complet de la carte : la carte expire : mois année
• Corrections orthogra-
phiques
Notre Astuce
Pour vos applications mutlilingues, vous
pouvez, bien sûr, activer le dictionnaire à
utiliser, en fonction de la langue de votre
application. Pour cela, utilisez la fonction
WLangage ParamètreOrthographe, avec
la constante orthographeNation et la
langue à utiliser.
Choisir et paramétrer un
splash screen Projet Associé
Gain Utilisateur
Deuxième type de
splash screen : le
splash screen animé
Vous pouvez lui aussi le paramétrer :
• Choisissez le texte qui s’animera dans
votre splash screen.
• Cliquez sur le bouton «options» pour
afficher les options avancées
• Choisissez le type d’animation : Etoile
• Choisissez la couleur “Argent”
• Choisissez si le splash screen doit être
affiché en plein écran ou pas
• Choisissez si le splash screen ne doit
s’afficher qu’une fois par jour.
• Cliquez sur «voir l’animation» et admi-
rez le splash screen animé que vous avez
créé.
Vous savez sûrement que la pre- • Choisissez un splash screen dans le
mière impression que l’on donne catalogue.
Notre conseil
est importante. Il en va de même Lequel utiliser, dans quel cas ?
pour vos applications : le splash
Notre conseil
Si vous avez un traitement d’initialisation
Pensez à prendre une image de poids rai-
screen donne cette première de votre application, qui prend un peu de
sonnable : inutile de prendre une image
impression. temps, utilisez le splash screen classique.
de 5Mo !
Dans WinDev 11, il existe 2 types Il vous permet d’afficher des messages
de splash screen automatiques Autre Conseil pendant l’initialisation du projet.
que nous allons détailler dans ce Pour une question d’ergonomie, il est
sujet. conseillé d’avoir un splash screen de
taille inférieure à la taille de la première
fenêtre de l’application.
Premier type de
splash screen : • Cliquez sur le bouton “Avancé” afin
de paramétrer votre splash screen. Vous
le splash screen pouvez afficher dans le splash screen :
classique • le nom de votre application,
• son numéro de version,
Pour définir votre splash screen, lancez
• et surtout des messages qui s’affiche-
l’assistant de création de l’exécutable.
ront au cours de l’initialisation de l’ap-
La sélection du splash screen se fait sur
plication.
le deuxième plan de cet assistant
• Cochez “splash classique” : vous pouvez Pour afficher ces messages d’initilisa-
choisir votre splash screen dans le catalo- tion, il vous suffit d’utiliser, dans le code
gue fourni par WinDev, ou même choisir d’initialisation du projet, la fonction
votre propre image. WLangage Message et de lui passer en
• Amélioration graphique
• Opacité
Voici quelques astuces pour per- • Le clic droit avec la sélection des colon-
Image en transparence
sonnaliser et améliorer l’IHM de nes
Une autre astuce pour agrémenter vos
vos tables. • L’export automatique vers Word, Excel,
tables, consiste à mettre une image sous
XML.
Créez une nouvelle fenêtre : cliquez sur la table et utiliser la propriété d’opacité
• ...
le menu “Fichier .. Nouveau .. Fenêtre”. de la table.
• FAA
• Automatisation
Notre astuce
Pour bénéficier de cette fonctionna-
lité sur les fenêtres systèmes : OuiNon,
Confirmer, etc... pensez à cocher “appli-
quer le gabarit sur les fenêtres systèmes”
Avec WinDev 11, l’utilisateur peut lui- dans la fenêtre de description du projet,
Vous connaissez sûrement déjà le
même rajouter une minuterie au bouton. onglet “Style”.
“bouton minuterie” : il s’agit d’un • Faites un clic droit sur le bouton Autrement, ces fenêtres systèmes seront
bouton qui va se “valider” tout “Oui”. des boîtes purement Windows et le bou-
seul après un certain nombre de • Sélectionnez “Validation automati- ton minuterie ne pourra pas s’appliquer.
secondes. que”.
• Indiquez le temps en secondes qui
Avant la version 11, le développeur s’écoulera avant l’exécution du traite-
pouvait déjà mettre facilement ment du bouton.
une minuterie sur un bouton. Par exemple : “Valider automatiquement
Avec la version 11, l’utilisateur le bouton après 10 secondes”.
Votre bouton est devenu un bouton minu-
final peut maintenant le faire lui-
terie.
même !
Si l’utilisateur ne fait rien au bout de 10
Mise en oeuvre
La fenêtre “FEN_TABLEAUBORD” lance un
très long calcul de stats sur plusieurs mil-
liards d’enregistrements, qui dure plus de
30 minutes. Le traitement est long, donc
l’application prévient l’utilisateur que
sa machine sera bloquée et lui demande
confirmation.
Premier point
Second Point
Le champ tirroir est un des nou- enrouler/dérouler le tiroir. L’enroulé/déroulé est géré automatique-
veaux champs de la version 11. Il • Donnez un libellé à votre tiroir : par ment par WinDev. Et lors de l’enroulé,
est utilisé pour gagner de la place exemple “détail de la recherche”. l’espace libéré par le champ tiroir est
automatiquement réutilisé par les autres
et pour une meilleure lisibilité.
Ensuite, de façon tout à fait classique, champs du dessous.
vous pouvez placer dans le tiroir tous les
Création d’un champs que vous désirez :
• champs de saisie
champ tirroir • champs option, sélecteur, etc..
Testez la fenêtre “Fen_Tiroir” par un GO
de fenêtre. Dans la partie gauche de la
fenêtre, des tiroirs ont été utilisés : un Création d’un
par groupe d’options. second champ tirroir
Créez maintenant un deuxième champ
Dans ce sujet, vous allez constater que
tiroir en dessous du premier.
créer et gérer un champ tiroir avec
• Ajoutez des champs à ce nouveau
WinDev est très simple :
tiroir.
• Créez une nouvelle fenête.
• Faites un GO de fenêtre, et testez l’en-
• Cliquez sur le bouton “Champ Tiroir”
roulé/déroulé des champs tiroir.
de la barre d’outils “Champ” : WinDev a
généré automatiquement le bouton pour
• Hiérarchisation
Notre Astuce
Pour récupérer la ligne en cours, vous
pouvez utiliser :
• Soit directement le nom du champ,
Le champ table hiérarchique est Gestion de la hierarchie • Soit la fonction TableSelect.
une nouveauté de la version 11, Ouvrez la fenêtre de description de la
mais qu’est ce qu’une table hié- table hiérarchique (faites un clic droit Style
rarchique ? En fait, une table hié- sur le champ puis “Description”) : dans
Pour indiquer les différents pictos utilisés
rarchique est un mélange de table la description de la table hiérarchique,
suivant les lignes, utilisez les propriétés
vous pour définir et modifier les colonnes
et de treeview. Cela vous permet ImageEnroulée et ImageDéroulée :
exactement comme dans les tables.
d’organiser les données de la • “ImageEnroulée” permet de définir le
table de manière arborescente. La colonne qui servira pour la hiérarchie picto lorsque la ligne est enroulée.
L’utilisateur peut ainsi : des données peut être définie dans le • “ImageDéroulée” permet de définir le
champ “N° de la colonne hiérachique”. picto lorsque la ligne est déroulée.
• Regrouper les données,
Dans cet exemple, la colonne hiérarchi- TABLEH_TableVisites..ImageDéroulée =...
• Ne voir que la partie qui l’inté-
que est la 1ère colonne. “MaintenanceGlobale.png”
resse,
• Enrouler dérouler les lignes... Remplir une table hiérarchique Ces pictos sont définis pour toutes les
prochaines lignes ajoutées à la table, tant
Ouvrez la procédure “InitVisites” : cette
que vous ne les modifiez pas à nouveau.
procédure permet de remplir la table
Comment gérer une hiérarchique. Pour remplir une table Notre Astuce
table hiérarchique ? hiérarchique, vous utilisez les fonctions Pensez à ajouter ces images à la liste des
TableXXX du WLangage : TableAjoute, éléments du projet. Cela peut être fait
Ouvrez la fenêtre “FEN_
TableAjouteLigne, … par le menu : “Projet .. Liste des élé-
TablesHiérarchiques”.
Ces fonctions vont ajouter une ligne à la ments du projet.”
mise à jour
Disponible sur le DVD
• Etats et Requêtes
• Personnalisation par
□□□
la somme de : ..................... Euros
□ Je règle par Carte Bancaire. Cryptogramme :
□□□□□□□□□□□□□□□□ □□ □□□□
Numéro complet de la carte : la carte expire : mois année
• Windows Vista
• Manifest
Sous Windows Vista, le mécanisme • A la racine du disque d’installation de Il est donc nécessaire d’apporter une
de l’UAC (User Account Control) a Windows attention particulière à la localisation
fait son apparition. • Dans le répertoire de Windows de vos fichiers par programmation avec
• Dans le répertoire « Program Files » les fonctions fRepExe, fRepEnCours,
• Dans tous les répertoires systèmes HSubstRep, HChangeRep notamment.
Une nouvelle gestion des droits
• Et dans certaines parties de la base de
utilisateurs a également fait son registres.
apparition. Exemple
En fait, cette gestion des droits Si vos applications écrivent dans l’un de Si vos utilisateurs installent votre appli-
existe depuis Windows 2000 mais ces répertoires, Windows Vista va auto- cation dans “Program Files”, la fonction
les applications ne l’utilisaient matiquement rediriger votre écriture fRepExe renvoit alors le répertoire d’ins-
pas. dans un autre répertoire sans vous pré- tallation de votre application. Par défaut,
venir. C’est ce qu’on appelle la « virtua- votre application n’y possède pas les
lisation ». droits d’écriture.
Windows Vista force à respecter
cette gestion des droits de l’utili- Utilisez les fonctions WLangage fRepDon-
sateur. Comment faire pour que vos néesCommun et fRepDonnéesUtilisa-
applications WinDev fonc- teurs pour connaître le répertoire à utili-
tionnent correctement sous ser pour vos données.
Principe Windows Vista ? sRépertoire est une chaîne
Suivant le profil de l’utilisateur qui est sRépertoire =
connecté, il y a des parties du disque Il y a en fait deux grandes règles à res- fRepDonnéesUtilisateur() +
où vos applications n’ont pas le droit pecter : [“\”] + “MonApplication”
d’écrire librement : 1. Ne jamais écrire dans les répertoires
□□□
la somme de : ..................... Euros
□ Je règle par Carte Bancaire. Cryptogramme :
□□□□□□□□□□□□□□□□ □□ □□□□
Numéro complet de la carte : la carte expire : mois année
• Centralisation du code
• Optimisation
Hyper File Client/Serveur
Une procédure stockée est un trai- ple “MaProcédureStockée”.
tement, une procédure exécutée • Ecrivez le code de votre procédure. Exemple :
sur le poste serveur de la base • Sauvegardez votre analyse et lancez la nNbProduit est un entier
génération de votre analyse. nNbProduit = ...
de données (sur le serveur Hyper
• Suivez ensuite l’assistant de modifica- HExécuteProcédure(...
File).
tion automatique des fichiers de données. MaConnexion, ...
Cet assistant vous permettra de mettre “MaProcédureStockée”)
une procédure
stockée ?
Nous venons de voir comment déporter
sur un serveur, un traitement existant
déjà codé, déjà testé, par l’intermédiaire
d’une procédure stockée.
Vous devez ensuite cocher “utiliser le Pensez aussi à bien regénérer l’analyse
fichier à l’emplacement sélectionné” : de quand vous avez fini, pour remettre à jour
cette façon, la procédure sera toujours la procédure stockée sur le serveur .
à jour
Notre conseil
Dans certains cas particuliers, vous pour-
riez avoir besoin de déboguer sur le ser- 8
2 0
TDF TECH 2007
Tour de France Technique
• Lisibilité
• Souplesse
• Traitement multi-bases
Utilisation
Par exemple, nous possédons un fichier
CLIENT en Hyper File Client / Serveur et
un fichier COMMANDE en Oracle.
Nous souhaitons récupérer les comman-
des des clients du département 34.
• Optimisation
• Dimensionnement
Statistiques
Pour activer la gestion des statistiques
sur votre serveur
• Lancez le Centre de Contrôle Hyper File Logs des requêtes Vous aurez ainsi la liste des opérations qui
et choisissez votre serveur. ont été effectuées sur votre base de don-
En version 11, le Centre de Contrôle
• Sélectionnez l’onglet “Configuration”, nées (Qui ?, quand ?, combien de fois ?,
Hyper File permet aussi d’analyser a pos-
puis sélectionnez “Statistiques d’acti- Combien de temps ? ...)
teriori les requêtes exécutées. Cela vous
vité”. permet, par exemple, de savoir quelles Vous avez ainsi une trace de tous les évé-
• Cochez l’option “Activer les statistiques requêtes sont souvent exécutées dans vos nements sur vos bases Hyper File Client/
d’activités du serveur”. applications, et ainsi connaître les requê- Serveur.
Pour visualiser les statistiques enregis- tes à surveiller de près. Remarques : L’activation des logs sur
trées, sélectionnez l’onglet “Statistiques” votre Serveur Hyper File ne ralentit en
dans le Centre de Contrôle Hyper File. Pour cela, il suffit d’activer les “logs” sur rien ses performances.
votre serveur.
□□□
la somme de : ..................... Euros
□ Je règle par Carte Bancaire. Cryptogramme :
□□□□□□□□□□□□□□□□ □□ □□□□
Numéro complet de la carte : la carte expire : mois année
• Vitesse
• Ergonomie
• Fonctionnalités
• Ergonomie
• Ergonomie
Un GFI en WebDev
Projet Associé
WebDev_Ajax
LST 68
• Ergonomie
Réalisation
Pour chaque fichier à sauvegarder, la fonc-
tion WLangage “AJAXExécuteAsynchrone”
est appelée avec 3 paramètres :
1. Le nom de la procédure serveur per-
mettant d’effectuer la sauvegarde
2. Le nom de la procédure navigateur qui
sera exécutée à la fin du traitement ser-
veur
3. Le nom du fichier à sauvegarder
La sauvegarde du fichier est exécutée sur
Lorsqu’un internaute effectue une Les procédures AJAX “Synchrones” atten- le serveur. Puisque l’exécution est effec-
recherche sur un site, la recher- dent la fin de l’exécution de la procédure tuée en mode « Asynchrone », le poste du
che peut prendre plus ou moins pour redonner la main au navigateur. navigateur n’est pas bloqué.
de temps. Les procédures AJAX “Asynchrones” n’at- Dans notre exemple, on peut alors affi-
Pendant ce temps, aucune jauge tendent pas la fin de l’exécution de la cher une jauge et le nom du fichier en
de progression n’est affichée. procédure et redonnent immédiatement cours de sauvegarde.
L’internaute ne sait donc pas : la main au navigateur. Cependant, une
procédure navigateur peut être exécutée Lorsque la sauvegarde du fichier est ter-
• si la recherche est en cours.
lorsque le traitement AJAX est terminé. minée, la procédure navigateur est auto-
• si le navigateur est bloqué. matiquement appelée.
• si la recherche est “plantée”.
Exemple Cette procédure navigateur passe au
Rien de plus énervant que de ne fichier suivant et relance le traitement
Ouvrez la page PAGE_Ajax. Lancez le test
pas savoir ! de sauvegarde, jusqu’à ce qu’il n’y ait
de cette page.
Voyons comment remédier à cette plus de fichier à sauvegarder.
Le lien “Sauvegarder la base” permet
problématique grâce à WebDev d’effectuer une sauvegarde des fichiers
11 et aux procédures AJAX de données de la base : cliquez sur le lien
Asynchrones. “Sauvegarder la base”. Une jauge de pro-
gression est affichée et le nom de chaque
fichier sauvegardé est affiché.
Les procédures AJAX
Vous pourrez également constater que
Asynchrones votre navigateur n’est pas figé et que
Les procédures AJAX sont des procédures vous pouvez même déplacer la fenêtre
“serveur” exécutées dans un code naviga- de progression.
teur. Grâce à AJAX, la page n’a pas besoin
d’être réaffichée. Explication
□□□
la somme de : ..................... Euros
□ Je règle par Carte Bancaire. Cryptogramme :
□□□□□□□□□□□□□□□□ □□ □□□□
Numéro complet de la carte : la carte expire : mois année
• Régles métiers
• Liens automatiques
Lien automatique
Pour tester votre nouvelle règle, il vous
suffit de créer un élément qui correspond
aux critères de celle-ci.
• Créez une nouvelle fenêtre : utilisez le
menu “Fichier .. Nouveau .. Fenêtre”
Une règle métier définit par exem- Définition d’une • Créez un champ de saisie dont le libellé
ple comment est réalisé un traite-
ment, un calcul de stats, une IHM
règle est “email” (ou tout autre libellé définit
précédemment dans les critères de la
et surtout pourquoi ce traitement Par exemple, dans votre application, il règle) : WinDev vous indique automati-
est réalisé de cette façon et non existe une procédure qui contrôle la vali- quement par une popup qu’une règle
d’une autre. dité d’une adresse email. Cette procé- s’applique à ce champ.
dure doit donc être appelée partout où
Maintenant, dès que vous créerez un
une adresse email doit être saisie.
Cela vous est déjà certainement champ de saisie, avec un libellé “email”,
arrivé de reprendre un traitement Vous allez donc définir une règle métier. dans 1 semaine, dans 1 mois, dans 6 mois,
écrit il y a plusieurs mois, Le but est que chaque développeur qui WinDev vous indiquera qu’une règle est
et de vous demander pourquoi travaille sur le projet applique cette définie pour ce champ.
règle, et que personne ne l’oublie.
tel traitement était codé ainsi, • Cliquez sur le bouton «Règles métiers»
pourquoi tel calcul s’effectuait de pour ouvrir le volet correspondant.
• Ouvrez le volet des règles métiers : uti-
cette façon,etc ... lisez le menu “Affichage .. Barre d’outils
• Double-cliquez sur la règle que vous
avez précédemment définie.
.. Règles métier”.
Il vous faut alors rechercher à nou- Vous voyez, de suite, quelle norme vous
• Cliquez sur le bouton “Nouvelle règle”.
devez respecter pour coder ce champ,
veau, refaire le travail de réflexion, • Saisissez le texte de la règle. Par exem-
avant même de commencer le codage.
pour comprendre ce qui a amené ple : “Tout champ de saisie portant sur
à cette méthode de calcul. une adresse email doit être validé, en
• Vérifiez que la règle doit effectivement
appelant la procédure de validation de
s’appliquer sur votre champ. Si tel est le
Avec les règles métiers, vous sai- l’email sur le champ.”
cas, dans votre code, faites appel à la
sissez ces informations, ces règles, procédure de validation d’email de votre
Votre règle possède maintenant sa des-
dès la phase de conception, ou à projet.
cription. L’intérêt de la règle est de savoir
tout moment pendant le dévelop- • Indiquez ensuite que, pour ce champ, la
sur quel(s) élément(s) elle s’applique.
pement, directement dans WinDev règle est réalisée. Pour cela, positionnez-
11. vous sur l’onglet «liens automatiques».
□□□
la somme de : ..................... Euros
□ Je règle par Carte Bancaire. Cryptogramme :
□□□□□□□□□□□□□□□□ □□ □□□□
Numéro complet de la carte : la carte expire : mois année
• Partage distant
Notre Astuce
Quand vous utiliser le CC Feedback, vous
devez définir le chemin d’accès aux don-
nées des centres de contrôle.
Ce chemin a changé, vous devez donc le
modifier dans la fonction «configure».
Autre astuce
Par précaution, mettez votre ancien
répertoire de données des Centre de
Contrôle en lecture seule.
En version 11, les données de vos distant, vous pouvez bien sûr l’utiliser.
centres de contrôle sont mainte- • Cliquez sur le bouton “assistant d’im-
nant accessibles à distance. portation”.
• Indiquez la machine serveur sur laquelle
Vous pouvez ainsi gérer à dis- se trouve votre serveur Hyper File.
tance et partager à distance : • Donnez un nom à la base de données.
votre planning, les messages, les • Saisissez le nom et le mot de passe de
fiches de bugs, … l’administrateur de la base.
• Cliquez sur le bouton «Importer».
Comment faire pour passer vos
données actuelles des Centres WinDev importe les données actuelles des
de contrôle en mode distant ? Centres de Contrôle et les met sur votre
serveur. Il crée une base partagée acces-
Pour passer vos Centres de contrôles en sible à distance. Ensuite, dans WinDev,
mode distant : rien ne change ! Vous travaillez avec vos
• Utilisez le menu “Outils .. Options de centres de contrôle comme vous l’avez
WinDev”. toujours fait.
• Cliquez sur “Paramètres des centres de
contrôle” 8
spécifique.
TDF TECH 2007
Tour de France Technique
□□□
la somme de : ..................... Euros
□ Je règle par Carte Bancaire. Cryptogramme :
□□□□□□□□□□□□□□□□ □□ □□□□
Numéro complet de la carte : la carte expire : mois année
HChangeConnexion(“*”,...
“MaConnexionMySQL”)
Pour le reste, vous développez comme
d’habitude, en WLangage, sans rien
connaître de Java,…ni de MySQL
d’ailleurs!
// Rechercher l’identifiant
// du client dans le cas d’une
// requête
Avec WinDev, vous pouvez déve- d’un pilote d’accès. Ce pilote d’accès est
HLitRecherchePremier(...
lopper une application Java, sans livré avec la base elle-même ou est dispo-
Client, NumClient, ...
connaître Java. Vous programmez nible sur le site de l’éditeur.
ColIdentifiant)
en WLangage et WinDev génère Exemple sur MySQL // Initialiser les différents
pour vous du Java. Voyons comment faire pour utiliser une // champs avec la valeur
base MySQL avec les ordres Hxx. // de l’enregistrement en cours
Une nouveauté en version 11, les D’abord, vous devez décrire explicite- FichierVersEcran()
ordres Hxx sont maintenant dis- ment la connexion par programmation. Maintenant que votre application est
ponibles en Java sur Hyper File, Par exemple dans le code d’initialisation développée, vous devez générer l’exécu-
MySQL, et SQL Server. du projet. table Java.
• Cliquez sur le menu “Atelier .. Java ..
Affichez le code du projet (menu “Projet Générer l’archive Java”.
Sur Hyper File .. Code du projet”). • Avancez jusqu’au plan du driver (cli-
quez sur le bouton Suivant deux fois pour
Sur Hyper File, vous faites vos La connexion est décrite avec la fonction y parvenir).
HLitRecherche, HLitSuivant : vous déve- “HDécritConnexion”.
loppez comme à votre habitude. Plusieurs paramètres lui sont passés : Dans cet exemple, vous accédez à MySQL
• le nom de la connexion, par JDBC: il vous faut donc inclure le dri-
Sur MySQL et • le nom de l’utilisateur, ver JDBC dans l’archive java à générer.
SQLServer • le mot de passe,
• l’Url de connexion à la base de don-
• Ajoutez le driver MySQL.
• Cliquez sur le bouton “Terminer”.
Sur MySQL et SQLServer, il existe quelques nées, WinDev génère l’archive Java, le .JAR de
particularités. Pour ces bases, il faut uti- • le type d’accès : ici JDBC pour MySQL votre application.
liser un driver JDBC : il s’agit simplement • le nom complet du driver JDBC à uti-
• Interaction avec un
existant
• Interaction avec un
existant
mContact.Nom + [“ “] + ...
mContact.Prénom, ...
mContact.Email)
// Passe au contact suivant
ContactSuivant(...
gnIDSessionOutlook)
SI ZR_CONTACTS..Occurrence >
1000 ALORS SORTIR
FIN
Vous passez au contact suivant avec la
fonction ContactSuivant.
Enfin, vous fermez la session avec la
fonction EmailFermeSession.
// Fermeture de la session
EmailFermeSession(...
gnIDSessionOutlook)
la fonction ZoneRépétéeAjouteLigne.
Vous pouvez préciser le nom du profil à
2 0
TDF TECH 2007
Tour de France Technique
utiliser.
// Tant qu’on est pas endehors
gnIDSessionOutlook est un TANTQUE PAS mContact.EnDehors
entier // On ajoute le contact et son
// Ouverture de la session // adresse mail dans la zone
// outlook // répétée
gnIDSessionOutlook = ... ZoneRépétéeAjouteLigne(...
EmailOuvreSessionOutlook(“”) ZR_CONTACTS,...
• AWP
• Référencement
Comment référencer
efficacement votre site Projet Associé
WebDev ?
Solution 1 :
Si la page à afficher n’attend pas de para-
mètres, utilisez les actions prédéfinies
de WebDev. Pour cela, ouvrez la fenêtre
de propriétés du champ lien (clic droit,
“Description”) et sélectionnez l’option
“Afficher la page XXXX” (où XXXX est le
nom de la page à afficher) dans la combo
“Actions” de l’onglet “Général”.
Solution 2 :
Si la page à afficher attend des paramè-
tres, utilisez la propriété WLangage ..URL
dans le code d’initialisation du champ ou
de la page.
Exemple :
MONLIEN..Url = ...
“page.awp?param=valeur”
Quatrième conseil :
ajoutez un texte
alternatif sur les
images
Tous les textes de la page sont référencés
Premier conseil : En effet, les noms de pages intervien-
par les moteurs de recherche :
nent dans le référencement. Les noms de
utiliser le mode AWP pages sont utilisés comme mots-clés par
• Contenu texte de votre page
• Nom de la page
de WebDev les moteurs de recherche
• Titre de la page
L’intérêt majeur du mode AWP est qu’il Troisième conseil : • Bulles d’aide
• Textes alternatifs sur les images
n’y a pas de contexte. Chaque page est
adressable directement. L’URL de la page
évitez d’écrire Le texte alternatif des images est le texte
reste la même, elle est donc facilement du code dans qui est affiché si l’image n’est pas acces-
référençable par les moteurs de recher-
che.
l’événement “clic sible par le navigateur. Mais ce texte est
également référencé par les moteurs
Pour indiquer qu’une page est en serveur” des liens de recherche. Pensez donc à remplir le
mode AWP, il suffit de cocher l’option champ “Texte alternatif” de vos champs
Pour les liens qui affichent d’autres pages
“Génération en mode AWP” dans la fenê- images (onglet “Détails” de la fenêtre de
de votre site, n’utilisez pas la fonction
tre de description de la page. propriétés des champs image).
WLangage “PageAffiche”.
Retrouvez toutes les informations sur
le mode AWP de WebDev dans l’aide en
En effet, si vous écrivez du code serveur Remarques
ou navigateur sur champ de type « Lien »,
ligne, au mot-clé “AWP (Active WebDev Les balises “META” qui permettent d’ajou-
une procédure JavaScript permettant
Page), Présentation”. ter des mots-clés à vos pages ne sont plus
d’exécuter ce code sera associée au lien.
Son URL n’est alors pas référençable par uniquement nécessaires. Aujourd’hui tous
Deuxième conseil : les moteurs de recherche. les moteurs de recherche se basent sur
utilisez des noms de le contenu réel de vos pages, et non plus
seulement sur les balises “META”.
page “intelligibles”
• Ancrage en hauteur
• Ancrage en largeur
au milieu.
• La zone fixe ne “bougera” pas.
• La zone ancrée s’agrandira à 100% en
hauteur.
Les différentes zones de la page sont
donc maintenant définies.
Centrage du titre
Le bandeau vert du haut de page s’agran-
dit à 100% en largeur et reste fixe en
hauteur. Dans ce bandeau vert, un champ
libellé est placé en son centre.
Cliquez sur le bandeau vert (champ
“CELL_Cellule1”).
Vous remarquez alors une règle en bas de
ce champ. Cette règle permet de définir
les ancrages à l’intérieur de cette cel-
lule.
Cette cellule est découpée en trois
zones :
• Une partie à gauche du champ
• Le champ
• Une partie à droite du champ
• Vignettes
• Ajax
Les sources de
Honolulu seront dis-
ponibles prochaine-
ment sur notre site
Internet. Vous pour-
rez ainsi modifier et
personnaliser ce por-
tail selon vos propres
besoins.
□□□
la somme de : ..................... Euros
□ Je règle par Carte Bancaire. Cryptogramme :
□□□□□□□□□□□□□□□□ □□ □□□□
Numéro complet de la carte : la carte expire : mois année
Notre astuce
Le framework .NET pour PC et le
framework .NET pour mobile sont diffé-
rents. Donc, si vous devez développer en
.NET pour mobile, attention d’installer
Les fonctionnalités spécifiques .NET est orienté objet. Vous retrouvez le bon framework .NET sur votre PC : il
du terminal “Pidion” sont gérées donc la liste des classes, des membres et s’agit du “Compact Framewok”.
par un composant WinDev Mobile des méthodes importés par l’assemblage
dans le volet WinDev.
livré sur le DVD.
Autre astuce
Le pilotage de ses fonctionnali- Et ensuite, vous pouvez utiliser ces clas-
Pensez aussi à vérifier que le framework
tés est également possible avec ses, ces méthodes… comme toute autre
.NET est installé sur le Pocket PC.
un assemblage .NET, fourni par le classe de votre projet.
La fonction WLangage .NETVersion per-
fabriquant de ce matériel. met de le faire.
• Tests de fonctionnalités
spécifiques
mobile.
Vous retrouvez votre application sur le
terminal.
• Cliquez sur le bouton où le point d’arrêt
a été ajouté.
• Le débogueur s’arrête sur le point d’ar-
rêt que vous avez indiqué.
Astuce
Pensez à bien placer vos points d’arrêt,
pour arriver rapidement dans le code
que vous voulez tracer. L’exécution et le
débogage sont en effet effectués sur le
terminal mobile, et sont donc forcément
un peu plus lents.
Vous pouvez :
• Exécuter en pas à pas : utilisez la tou-
che F7.
• Afficher le contenu des variables : sur-
volez-les avec votre curseur
• Placer un autre point d’arrêt et exécu-
ter jusqu’à ce point,
• Évaluer des expressions, ….
• Définir l’instruction suivante à exécu-
ter….
Avec WinDev Mobile, vous pouvez • Vous accédez aux applica-
tester directement l’application tions standard embarquées sur le En fait, vous avez accès à l’ensemble des
mobile sur le PC, grâce au simula- Pocket PC : par exemple Outlook. fonctionnalités du débogueur tel que vous
teur livré en standard. l’utilisez dans WinDev, et ça directement
sur le terminal mobile.
L’avantage est que vous n’avez Comment déboguer
pas besoin du terminal mobile :
cela vous permet de tester vos sur le terminal
interfaces, vos traitements classi- • Ouvrez une fenêtre d’un projet
ques facilement. WinDev Mobile.
• Affichez, par exemple, le code d’un
Mais dans certains cas, vous
bouton (faites un clic droit sur la bouton,
avez besoin de tester et débo- puis cliquez sur “Code”) et positionnez-
guer directement sur le terminal vous sur le code de clic de ce bouton.
mobile, parce que vous utilisez un • Mettez un point d’arrêt au début du
périphérique ou une particularité code du clic.
du matériel qui n’existe pas dans Un nouveau mode de test (GO) est dispo-
le simulateur. Par exemple : nible en version 11 : “déboguer le projet
• Vous utilisez le lecteur RFID d’un sur le terminal”.
matériel industriel, • Lancez votre application par ce nou-
• Vous utilisez les fonctions veau mode.
Téléphonie sur des Pocket
Phone… WinDev Mobile copie les éléments
nécessaires au débogage sur le terminal
□□□
la somme de : ..................... Euros
□ Je règle par Carte Bancaire. Cryptogramme :
□□□□□□□□□□□□□□□□ □□ □□□□
Numéro complet de la carte : la carte expire : mois année
• Téléphonie
// entrant 4
LIB_ETATLIGNE = ... 2
IMG_ETAT = IMG_APPEL
CAS telInformationAppel
// Les informations sur l’appel
// sont arrivées,
// On récupère le numéro de
// l’appelant
sNuméroAppelant = ...
□□□
la somme de : ..................... Euros
□ Je règle par Carte Bancaire. Cryptogramme :
□□□□□□□□□□□□□□□□ □□ □□□□
Numéro complet de la carte : la carte expire : mois année
Attention : Le lexique ci-dessous n’est qu’un extrait des possibilités du langage de WinDev, WebDev et WinDev Mobile. La
lecture des manuels fournis reste incontournable. Ne sont présentées ici que les commandes nécessaires à la bonne compréhension de
cette formation.
Autres commandes
Commande / Syntaxe But
Les commandes sont indiquées avec la syntaxe utilisée dans les exemples réalisés.
Certaines fonctions acceptent d’autres paramètres ; se référer à l’aide en ligne pour plus de
d’informations.
La liste ci-dessous présente les touches de fonction et les combinaisons de touches permettant d’accéder directement à une fonction-
nalité de WinDev. Cette liste n’est pas exhaustive.
Important : Sous WinDev, dans l’éditeur de fenêtres, comme dans l’éditeur de code, il est possible d’accéder simplement aux diffé-
rentes actions disponibles grâce au menu contextuel (Il suffit de faire un clic droit à la position de la souris).
F1 Aide en ligne.
F5 Visualiser l’ordre de saisie (ordre de tabulation).
F6 Visualiser le nom des champs.
CTRL Permet de sélectionner plusieurs champs à la souris.
CTRL+C, CTRL+V, CTRL+X Copier, Coller, Couper un champ, avec ses propriétés et son
code associé.
CTRL+R Affiche ou rend invisible les règles d’alignement.
SHIFT+F9 Tester l’IHM d’une fenêtre sans exécuter les traitements.
F1 Aide en ligne.
F2 Accéder au code d’une procédure en étant positionné sur le nom
de la procédure auparavant (CTRL + F2 pour revenir).