Vous êtes sur la page 1sur 94

TDF Tech 2008


Support de cours
2 - TDF TECH 2008 - www.pcsoft.fr
Le document que vous avez entre les mains n’a pas
la finalité de remplacer les documentations techni-
ques ou commerciales livrées avec WinDev, WebDev ou
WinDev Mobile.
Ce document n’est pas un cours d’auto-formation, mais
uniquement un support “papier” à la présentation tech-
nique que vous avez suivie.
Ce document a été réalisé par l’équipe de la LST.
Sommaire

TDF Tech 2008


Sommaire du support de cours

4 Sommaire
TDF Tech 2008 Sommaire du support de cours

9 Présentation
10 WinDev
Présentation rapide de WinDev et de ses fonctionnalités

12 WinDev Mobile
Présentation rapide de WinDev Mobile et de ses fonctionnalités

14 WebDev
Présentation rapide de WebDev et de ses fonctionnalités

16 PC SOFT à votre service


• Séminaire de formation,
• Consulting,
• Assistance Directe,...

17 Gains développeurs
18 Champ table
Exploitation des nouvelles fonctionnalités des tables et mise en oeuvre du mode Fichier/Mémoire des tables.

20 Gestion de réseau
Gérer un réseau grâce au protocole SNMP depuis une application WinDev.

21 BlueTooth
Transférer des fichiers entre des périphériques BlueTooth.

22 Reconnaissance vocale
Optimiser le taux de reconnaissance vocale et personnalisation des ordres reconnus.

23 Compilation Just In Time


Exploiter au mieux les optimisations de la compilation JIT.

25 Asus EEEPC
26 Développement spécifique
Développer une application WinDev pour une utilisation sur Asus EEEPC.
Optimiser l'espace utilisé de 40 %

29 Internationalisation
30 Interface / IHM
Gérer plusieurs langues au niveau de l'interface d'une application.

32 Industrialisation / automatisation
Automatiser et/ou externaliser la traduction d'une application.

4 - TDF TECH 2008 - www.pcsoft.fr


Support de cours
34 Base De Données
Gérer le stockage de plusieurs alphabets différents dans une même Base de Données.

37 Réplication
38 Configuration d'une réplication
Définir rapidement une réplication pour des utilisateurs nomades.

40 Optimisation de réplication
Mettre en œuvre une réplication définie dans l'éditeur de réplication.

43 GDS - Versionning
44 Gestionnaire de Sources : Principe
Fonctionnement et utilisation du GDS, l'outil de versionning intégré de WinDev - Rappels.

46 Politique de réintégration
Définir une politique de réintégration dans l'outil de versionning et les interactions avec les centres de contrôles.

48 Gestion des droits


Définir les droits sur une base de sources afin d'en contrôler l'accès.

49 Apple iPhone
50 Développement spécifique iPhone
Accéder en lecture et en écriture aux données de l'entreprise depuis un iPhone.

51 Compatibilité BlackBerry
Accéder aux données d'un site WebDev depuis un BlackBerry

53 Architecture Logicielle
54 Composants Internes
Définir une architecture d'application modulaire à l'aide de composants internes.

55 Modèles, Héritages et surcharges


Homogénéiser une interface grâce aux modèles et aux mécanismes d'héritage et de surcharge.

56 Références
Principales références (hors documentation) sur l'utilisation des modèles et des concepts de surcharge et d'héritage d'in-
terface.

57 Développement RAD
58 Développement rapide
3 astuces pour exploiter au mieux les fonctionnalités du RAD.

TDF TECH 2008 - www.pcsoft.fr - 5


Sommaire (SUITE)

TDF Tech 2008


Sommaire du support de cours

61 Etats élaborés
62 États & PDF
Utiliser un fichier PDF comme base d'un état pré-rempli.

63 Paysage ou portrait ?
Réaliser des états mixant des pages à imprimer en mode paysage et d'autres en mode portrait.

64 Etats & Requêtes


Configurer une application pour permettre la personnalisation de certains états (ou requêtes) par les utilisateurs.

65 Bases de Données
66 Serveur Hyper File
Réaliser une sauvegarde à chaud d'une base de données Hyper File et utiliser les tâches planifiées du moteur Hyper File
SQL.

67 Accès natif
Accéder à une Base de Données Tierce depuis une application WinDev.

68 Accès distant Mobile


Accéder à une base de données tierce depuis un terminal mobile par RPC ou AWP.

70 Procédures Stockées
Mettre en place et utilisation de procédures stockées sur une base de données Hyper File. Rappels.

71 Déboggage et mise au point


72 Débogage
Déboguer des applications distantes,des procédures stockées ou des triggers serveur

74 Analyse d'utilisation
Détecter les actions les plus utilisées par les utilisateurs afin de les optimiser.

75 Gestion de projets
76 Gestion des exigences
Monitorer et planifier un projet grâce à la gestion des exigences et activer le mode "strict".

78 Règles métier
Mettre en place et utiliser des règles métier dans un projet.

79 Autres technologies
80 SAP
Définir une connexion à un serveur SAP et exécuter les BAPI présentes sur ce serveur.

6 - TDF TECH 2008 - www.pcsoft.fr


Support de cours
81 DotNet
Utiliser des delegates DotNet pour gérer des événements DotNet depuis le WLangage.

82 Site PHP
Exploiter les nouveautés PHP de WebDev 12 pour intégrer des fonctionnalités AJAX tout en bénéficiant du débogueur
WebDev.

83 Lien avec un existant


Exploiter des données existantes :
Lotus Notes, Outlook, LDAP...

84 Caméra Dôme
Piloter une caméra dôme depuis une application WinDev : gestion de la vidéo et des ordres de déplacements.

85 WebDev : Utilisation avancée


86 Mode AWP
Rappels sur le principe et le fonctionnement des pages sans sessions de WebDev (mode AWP).

87 Référencement
Améliorer le référencement d'un site : conseils pratiques.

88 Contexte AWP
Comment gérer un contexte lors de l'utilisation du mode AWP.

90 Gadget Windows Vista


Réaliser un gadget Vista capable d'accéder à une base de données grâce à WebDev.

I Annexes
II Annexe A
Quelques commandes du WLangage

IV Annexe B
Les principales touches de raccourci

TDF TECH 2008 - www.pcsoft.fr - 7


Abonnez-vous !
T80119
Tarif modifiable sans préavis Vos Nom & Prénom : ...........................................................................
Votre Société : ..................................................................................
Bulletin d’abonnement à retourner avec Votre Adresse précise : ........................................................................
votre règlement à : .....................................................................................................
PC SOFT Code Postal : .............................. Ville : .............................................
Lettre du Support Technique Pays : ........................................ Tel : ...............................................
BP 44 408 Adresse Email : .................................................................................
34197 MONTPELLIER Cedex 05
France Je choisis un abonnement “LST PC SOFT” pour : À partir du numéro : ..............

En cas de paiement par carte bancaire,


FRANCE Métropolitaine □ 1 an - 4 N°+ 4 DVD : 159 euros HT; 190,16 euros TTC
vous pouvez nous faxer votre abonne-
□ 2 ans - 8 N°+ 8 DVD : 279 euros HT ; 333,68 euros TTC
ment au :
+33 (0) 4 67 03 07 87 AUTRE (exp. par avion) □ 1 an - 4 N°+ 4 DVD : 175 euros HT
□ 2 ans - 8 N°+ 8 DVD : 299 euros HT
Note : une facture acquittée est systématique-
 Ci joint mon règlement de : ............. Euros TTC ment adressée.

□ Je règle par chèque.        J’autorise PC SOFT à débiter sur ma carte VISA/MasterCard

□□□
            la somme de : ..................... Euros
□ Je règle par Carte Bancaire.      Cryptogramme :

□□□□□□□□□□□□□□□□ □□ □□□□
Numéro complet de la carte : la carte expire : mois année

Signature obligatoire du détenteur de la carte :


Nom du détenteur de la carte :
..........................................................

8 - TDF TECH 2008 - www.pcsoft.fr


TDF Tech 2008

Présentation

9 - TDF TECH 2008 - www.pcsoft.fr


WinDev

Présentation rapide de WinDev et de ses


fonctionnalités

d’enregistrements dans les fichiers.


· Un éditeur d’états.
· Un éditeur d’aide permettant de générer
des fichiers d’aide au format CHM.
· Un éditeur d’installation.
· Un éditeur de dossier technique repre-
nant intégralement toutes les informations
techniques de votre projet.
* accès natif optionnel, ** accès natif inclus.

Les outils
Des outils facilitant le développement
sont également fournis (WDMAP, WDOUTIL,
WDSQL, ...) ainsi que de nombreux exem-
ples et assistants réutilisables.
Des centres de contrôle permettent la
gestion du cycle de vie de vos applications
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.

WinDev est un AGL (Atelier de Génie L’environnement de développement inté-


Logiciel). gré de WinDev se compose de différents
éditeurs :
Les bases de
L’éditeur d’IHM de · Un éditeur de projet permettant de visua- données
liser et d’agir sur le graphe du projet.
WinDev · Un éditeur d’analyses permettant l’accès
Le moteur Hyper File sera utilisé pour les
fichiers de données des applications. La
WinDev permet de développer simplement à tout type de base de données (Hyper File, base de données Hyper File est disponible
tout type d’applications Windows dans les Hyper File Client/Serveur, xBase, MySQL, en mode Classic ou Client/Serveur et est
domaines de la gestion, de l’industrie, du AS/400*, Oracle*, SQL Server*, Access**, librement diffusable avec les applications
médical, etc. ODBC, OLE DB, ... ) WinDev.
· Un éditeur UML permettant une modé-
Les applications développées peuvent
lisation objet de vos données et traite- L’utilisation d’autres moteurs de base de
inclure l’accès à des bases de données.
ments. données est également possible sur le même
WinDev propose un puissant moteur de
· Un éditeur d’IHM avec correcteur d’in- principe.
base de données : Hyper File.
terface en temps réel.
Il est conseillé d’utiliser Hyper File pour
· Un éditeur de code évolué (avec assis-
vos applications afin d’obtenir les meilleu-
tants, vérification du code saisi, coloration
res performances dans vos traitements de
syntaxique, aide contextuelle …) incluant
fichiers. Une version Hyper File Client/
un puissant débogueur.
Serveur est aussi disponible.
· Un éditeur de requêtes pour les sélections

10 - TDF TECH 2008 - www.pcsoft.fr


Présentation

TDF TECH 2008 - www.pcsoft.fr - 11


WinDev Mobile

Présentation rapide de WinDev Mobile et de


ses fonctionnalités

• Un éditeur d’installation.


• Un éditeur de dossier technique repre-
nant intégralement toutes les informations
techniques de votre projet.
* accès natif optionnel

Des outils facilitant le développement


sont également fournis (WDREGISTRE,
WDCAPTURE, WDSYNCHRO, ...) ainsi
que de nombreux exemples et assistants
réutilisables.

Des centres de contrôle permettent la


gestion du cycle de vie de vos applications
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.

Le moteur Hyper File Mobile sera utilisé


pour les fichiers de données de l’appli-
cation.

L’utilisation d’autres moteurs de base de


données est également possible sur le même
WinDev Mobile permet de dévelop- Environnement principe.
per simplement tout type d’applica-
L’environnement de développement intégré
tions destinées à être utilisées sur
de WinDev Mobile se compose de différents
un Pocket PC, un SmartPhone, et
éditeurs :
la plupart des terminaux mobiles • Un éditeur de projets permettant de
(Symbol, Psion, ...). visualiser et d’agir sur le graphe du pro-
jet.
• Un éditeur d’analyses permettant l’accès
Présentation à tout type de base de données (Hyper
Les applications développées peuvent File, Hyper File Client/Serveur, Oracle
inclure l’accès à des bases de données. Lite * ).
WinDev Mobile inclut un puissant moteur de • Un éditeur UML permettant une modé-
base de données : Hyper File Mobile. lisation objet de vos données et traite-
ments.
Il est conseillé d’utiliser Hyper File pour
• Un éditeur d’IHM avec correcteur d’in-
vos applications afin d’obtenir les meilleu-
terface en temps réel
res performances dans vos traitements de
• Un éditeur de code évolué (avec assis-
fichiers. Une version Hyper File Client/
tants, vérification du code saisi, coloration
Serveur est aussi disponible.
syntaxique, aide contextuelle) incluant
WinDev Mobile permet également d’accé- un puissant débogueur
der aux bases de données CEDB, bases de • Un éditeur de requêtes pour les sélections
données standards des Pockets PC. d’enregistrements dans les fichiers.
• Un éditeur d’états.

12 - TDF TECH 2008 - www.pcsoft.fr


Présentation

TDF TECH 2008 - www.pcsoft.fr - 13


WebDev

Présentation rapide de WebDev et de ses


fonctionnalités

tallation, en passant par toutes les phases


du développement (création de pages,
traitements, états, etc.), sans oublier les
sauvegardes.

Les Concepts
Internet
Les différents services de l’In-
ternet
Le terme Internet regroupe plusieurs ser-
vices d’utilisation différente :
• FTP (File Transfer Protocol) est un ser-
vice permettant de transférer des fichiers
d’un ordinateur vers un autre à travers
Internet.
• SMTP (Simple Mail Transfer Protocol)
permet d’envoyer des messages ou mails
à un utilisateur défini. Chaque utilisateur
doit disposer d’une adresse Email qui lui
sert de boîte aux lettres.
• HTTP (HyperText Transfer Protocol). HTTP
est un protocole de niveau application qui
est utilisé pour le transfert de pages sur
Internet.

WebDev est un AGL (Atelier de Génie tants, vérification du code saisi, coloration Chacun de ces services nécessite un gestion-
Logiciel) orienté développement de syntaxique, aide contextuelle …) incluant naire de services installé sur un serveur :
un puissant débogueur. • Le gestionnaire de services FTP gère l’hé-
sites Intranet et Internet.
• Un éditeur de styles incluant police, bergement des fichiers, les droits d’utilisa-
WebDev permet de développer tout
couleur, position, etc. tion des fichiers et la réponse aux demandes
type de sites dynamiques incluant en provenance des autres postes.
• Un éditeur de requêtes pour les sélections
l’accès à des bases de données. d’enregistrements dans les fichiers. • Le gestionnaire de services SMTP prend en
Il permet aussi de développer des • Un éditeur d’états. charge les demandes d’envoi de messages et
sites semi-dynamiques et stati- • Un éditeur de dossier technique repre- le routage vers les serveurs POP (réception
ques. nant intégralement toutes les informations des messages) concernés.
techniques de votre projet. • Le gestionnaire Web (www) permet
Présentation de • Un éditeur d’installation. l’hébergement des pages et répond aux
WebDev * accès natif optionnel, ** accès natif inclus demandes de consultation de la part des
postes client.
WebDev est composé de différents édi- L’éditeur d’installation assure la mise en
teurs : place des sites créés, ainsi que leur main- Le Web en détail
• Un éditeur de projet permettant de visua- tenance. Cet outil permet de réaliser une Les pages Web sont visualisées sur un poste
liser et d’agir sur le graphe du projet. installation sur le serveur via FTP ou par par l’intermédiaire d’un navigateur Web
• Un éditeur de pages. média physique (CD, Zip, etc.). (Internet Explorer, FireFox, Opera, etc.).
• Un éditeur d’analyses permettant l’accès Des outils facilitant le développement
Le navigateur interprète le contenu des
à tout type de base de données (Hyper File, sont également fournis (WDMAP, WDOUTIL,
fichiers au format HTML décrivant les pages.
Hyper File Client/Serveur, MySQL, xBase, WDSQL, etc.) ainsi que de nombreux exem-
On parle de pages HTML.
AS/400*, Oracle*, SQL Server*, Access**, ples et assistants réutilisables.
WebDev génère automatiquement le code
OLE DB, etc.). Les principaux éditeurs sont utilisés, depuis HTML et JavaScript.
• Un éditeur de code évolué (avec assis- la définition d’une analyse jusqu’à l’ins-

14 - TDF TECH 2008 - www.pcsoft.fr


Présentation
Il est possible d’afficher directement une
Fonctionnement Server, Access, OLE DB, etc.), les traite-
page dans un navigateur en tapant son URL ments de calcul.
dans la zone adresse du navigateur. d’une application Ces traitements sont écrits en
L’URL (Uniform Resource Locator) corres- WebDev WLangage.
pond au chemin d’accès de la page sur le Une application WebDev hébergée sur un
serveur qui l’héberge, par exemple : 2. Les traitements sur le poste client
serveur peut être exécutée en appelant une Les traitements exécutés sur le poste client
http://www.monserveur.com/page3.htm URL particulière depuis un navigateur. Par sont les traitements de contrôle de saisie,
Si l’URL ne correspond pas à une adresse exemple : http://www.monserveur.com/ de vérification qui ne nécessitent pas d’ac-
valide, une erreur de connexion est retour- wd120awp/wd120awp.exe/CONNECT/ céder au serveur. Ces traitements utilisent
née dans l’écran du navigateur. monappli uniquement les informations contenues
Si l’URL est valide, la page demandée s’af- Le lanceur de WebDev ‘wd120awp.exe’ dans la page. Ces traitements peuvent être
fiche dans le navigateur. L’utilisateur peut permet d’exécuter l’application sur le écrits en JavaScript ou WLangage. Dans ce
alors déclencher une action en cliquant serveur grâce au serveur d’application dernier cas, WebDev se charge de convertir
sur un lien ou un bouton. La requête cor- wd120session.exe. automatiquement le code WLangage en
respondante est alors envoyée au serveur Le serveur d’application construit JavaScript pour qu’il puisse être exécuté
qui l’analyse. dynamiquement la première page de l’ap- par le navigateur.
plication et l’envoie au navigateur par
Le lien permet de lancer le chargement l’intermédiaire du serveur Web. 3. Administrateur WebDev
d’une autre page ou bien de lancer une
L’administrateur WebDev est un exécutable
application Web. Principe de programmation installé sur le serveur.
WebDev L’administrateur permet de configurer
Le débit entre le serveur Internet et le poste
Site statique, client est plus lent qu’avec un réseau local
le nombre de connexions autorisées en
même temps pour le serveur, par site, par
semi-dynamique ou classique. Les échanges de données entre utilisateur. Il permet aussi de fixer le temps
dynamique ? le poste client et le serveur doivent donc maximum d’exécution d’une requête et
être réduits pour que l’application puisse le temps limite pour la déconnexion des
· Le site statique est composé de pages s’exécuter sans ralentissement. WebDev utilisateurs inactifs.
conçues à l’avance de manière définitive. permet de différencier les traitements L’administrateur peut à tout moment affi-
Dans ce cas, le contenu des pages n’évo- exécutés sur le serveur et les traitements cher la liste des utilisateurs connectés
luera pas dynamiquement en fonction d’un exécutés sur le poste client. au site.
choix de l’utilisateur.
• Un site semi-dynamique est un site stati- 1. Les traitements sur le serveur
que composé de pages conçues à l’avance Les traitements exécutés sur le serveur
mais enrichies par une base de données. sont les traitements principaux de l’ap-
Dans ce cas, le contenu des pages n’évo- plication. Ils concernent la gestion de la
luera pas dynamiquement en fonction d’un base de données (Hyper File et Hyper File
choix de l’utilisateur. L’un des meilleurs Client/Serveur, xBase, AS/400, Oracle, SQL
exemples est un catalogue de pièces déta-
chées.
• Un site dynamique est constitué de pages
enrichies de données provenant d’une base
de données. Il est nécessaire d’exécuter
des traitements d’accès aux données sur
le serveur permettant de constituer la
page.

WebDev permet de développer des sites


dynamiques composés de pages, de traite-
ments serveur (accès aux bases de données,
calculs, etc.) et de traitements exécutés
par le navigateur (contrôles, traitements
répétitifs, etc.).
WebDev permet aussi de développer des
sites statiques et semi-dynamiques.

TDF TECH 2008 - www.pcsoft.fr - 15


PC SOFT à votre service

• Séminaire de formation,
• Consulting,
• Assistance Directe,...
lyse, vous montre des nouveautés utiles
N’hésitez pas à nous
dans votre cas de figure, vous propose
contacter: un assistanat
est toujours rentable pour des optimisations de votre code, valide
vos développements. vos modes d’utilisation, ...
Vous serez ravi de l’efficacité de son inter-
vention ! Budgétez d’ores et déjà la pro-
chaine intervention !

Un assistanat vous fait gagner des


journées de développement!
Quelques exemples de sujets traités :
• Simplification du code et mise en place
de nouvelles techniques : Hyper File
Client / Serveur, Socket, Web Services,
Composants, Patchs, Configurations, …
• Transformation de modules développés
avec WinDev en Services Web.
• Optimisation de traitements avant la
recette de l’application, validation d’ana-
lyse avant de débuter une application.

Assistance Directe
Formation Le montant de ces formations est déduc-
tible du “1,5 % Formation”.
Un complément efficace du
Séminaires de formation pour Support Technique Gratuit
WinDev et WebDev Consulting Tout projet important ou stratégique doit
PC SOFT organise à Paris, chaque semaine, bénéficier d’une “Assistance Directe” !
des séminaires de formation à WinDev Profitez de l’expérience d’un ingé- L’Assistance Directe permet d’une part
et WebDev, de différents niveaux : Prise nieur de PC SOFT sur votre site de bénéficier d’un contact téléphonique
en main, Perfectionnement, Expert,
Un consultant PC SOFT peut être délégué immédiat avec un ingénieur spécialisé, et
Client / Serveur, ...
chez vous, pour une durée de 1 à 5 jours. d’autre part de choisir les sujets à traiter,
Ces séminaires, animés par des ingénieurs
Un ingénieur PC SOFT connaissant à la et ce pour une durée que vous définissez
PC SOFT expérimentés, permettent de
fois votre domaine et les outils que vous vous-même. Cela vous permet de résoudre
découvrir et de maîtriser WinDev, WebDev
utilisez. immédiatement les sujets qui vous posent
et WinDev Mobile selon un plan efficace.
L’ingénieur PC SOFT répond directement problème.
Consultez le calendrier des séminaires (le
à vos questions, travaille sur votre projet Le contact téléphonique est garanti sous
détail des stages et les contenus péda-
réel et votre configuration réelle. Vous 8 heures ouvrables, ce qui vous permet
gogiques sont disponibles sur notre site
obtenez les réponses précises qui vous font une meilleure efficacité.
Web : www.pcsoft.fr), vous trouverez LA
gagner un temps précieux, et vous assurent Ce service est disponible sur abonne-
formation adaptée à votre expérience et
des bonnes orientations technologiques et ment.
à votre besoin.
méthodologiques.
Suivre une formation organisée par PC SOFT Notre conseil ? Commandez 1 jour de consul- Contactez le service commercial pour
est toujours rentable : c’est se donner les ting pour 100 jours de développement. plus d’informations (Fabrice CHAMBON
moyens de maîtriser WinDev et WebDev Et, chaque année, prenez l’habitude de au 04.67.032.032).
dans les meilleurs délais, ou d’en découvrir faire venir (juste 2 jours) chez vous un
la face cachée, encore plus puissante ! ingénieur PC SOFT, pour profiter d’une
Inscrivez-vous vite! expertise de toutes les nouveautés.
Ces séminaires peuvent également être Sur votre projet, dans vos locaux, en votre
organisés dans vos locaux, en France et présence, l’ingénieur PC SOFT valide l’ana-
à l’étranger.

16 - TDF TECH 2008 - www.pcsoft.fr


TDF Tech 2008

Gains développeurs

17 - TDF TECH 2008 - www.pcsoft.fr


Champ table

Exploitation des nouvelles fonctionnalités


des tables et mise en oeuvre du mode
Fichier/Mémoire des tables.

Avantage utilisateur
Quand aux utilisateurs, ils bénéficient de
tous les avantages des tables mémoires :
Les utilisateurs peuvent trier sur toutes les
colonnes, faire une recherche avec la loupe
sur toutes les colonnes (clé ou non).

Mise en œuvre
Une table fichier-mémoire se définit comme
une table fichier classique : les informations
sur le fichier parcouru et les rubriques
affichées sont indiquées dans la fenêtre
de description de la table.
Ensuite, dans l'onglet "Contenu" de la
fenêtre de description du champ table,
il suffit d'activer l'option "Fichier chargé
en mémoire".
Vous pouvez également choisir le nombre
maximum d’enregistrements à afficher
dans la table grâce au champ de saisie
associé.

Notre conseil
Lors du choix de cette "limite", il est
conseillé de prévoir un peu de marge afin
que l’utilisateur puisse visualiser tous les
enregistrements.
Le champ table a évolué de manière Tables Fichier/ De manière générale, il est conseillé de
sensible en version 12, en appor-
tant notamment les nouveautés
Mémoire filtrer les données avant de les afficher
dans une table : une table contenant plus
suivantes : WinDev 12 dispose d'un nouveau mode de de 10.000 enregistrements est difficilement
• Un nouveau type de table : les fonctionnement du champ table : les tables exploitable par un utilisateur.
tables Fichier/Mémoire. "fichiers chargés en mémoire".
• La possibilité de filtrer le contenu Par exemple, les deux tables de la fenêtre FAA de filtrage de
de la table par l'utilisateur sous "FEN_ListeMachineComposant" sont des
forme de FAA. tables “Fichier-mémoire”. contenu
• Les colonnes de type "Jauge". Les utilisateurs des applications WinDev 12
• L'impression directe du contenu Avantage développeur peuvent maintenant appliquer des filtres
L'utilisation de ce type de table permet automatiques sur les tables. Cette fonc-
d'un champ table.
aux développeurs de bénéficier de tous tionnalité (FAA) est disponible pour tous
•La possibilité de fusionner des
les avantages des tables fichiers. Il n'est les types de tables (fichier, mémoire et
cellules d'une table. pas nécessaire de définir du code pour le fichier chargé en mémoire).
remplissage de la table, les modifications,
Rappel : les FAA sont des fonctionnalités
Projet d'illustration la saisie en cascade, etc.
automatiques des applications, tel que
Le projet utilisé pour illustrer ce sujet est
"WD Gains Développeurs" (présent sur le
DVD). Les manipulations décrites dans cet
article reposent sur ce projet.

18 - TDF TECH 2008 - www.pcsoft.fr


Gains développeurs
Retrouvez plus d'informations sur
ce sujet en formation "WinDev
Perfectionnement"
l'export vers Excel, gérées automatique-
ment par les champs WinDev.
Par exemple, un clic droit sur la loupe de la
colonne "Fournisseur" permet de définir et
d'appliquer un filtre sur cette colonne.
Par défaut, WinDev propose des filtres
sur les 10 premières valeurs différentes
présentes dans la colonne. L’utilisateur
peut aussi appliquer des filtres avancés
de type :
• Commence par,
• Contient,
• ...
Bien entendu, l'utilisateur peut cumuler
les filtres.
Dans l'exemple, il est ainsi possible de
filtrer tous les achats d'une marque donnée Programmation Requêtes” pour personnaliser l’état.
dont la date d'achat est antérieure au 1er Dans le code, l'utilisation d'une colonne de Rappel : le logiciel “États & Requêtes” est
janvier 2007. type jauge est similaire à l'utilisation d'un gratuit et est diffusable librement avec vos
Note : Le pictogramme "entonnoir" indique champ jauge "classique". Il suffit d'affecter applications WinDev.
qu'un filtre est appliqué sur la colonne. Lors directement la valeur de la jauge lors de
du survol de ce pictogramme, le détail du l'appel à la fonction TableAjouteLigne
par exemple.
Fusion de cellules
filtre est affiché.
La possibilité de fusionner des cellules
Pour supprimer un filtre mis en place, il Notre Astuce dans un champ table est également une
suffit de choisir l'option "Supprimer le filtre" nouveauté importante des champs tables
Dans notre exemple, le libellé des pourcen-
accessible depuis le menu contextuel (par en version 12. Il est alors possible de fusion-
tages est affiché soit en noir, soit en blanc
clic droit). ner des cellules pour un sous-total par
selon la taille de la jauge. Ce changement
de couleur permet une meilleure lisibilité exemple …
Colonne Jauge de la valeur. Dans la fenêtre "FEN_Stats_Vente" des
Pour obtenir cet effet automatiquement, statistiques de vente de véhicules sont
Dans les applications WinDev 12, il est
il suffit de cocher dans la description de la affichées par mois, par modèle et par
également possible de créer des colonnes
colonne “jauge" l'option "Pourcentage en motorisation. Un sous-total est disponible
de type jauge dans vos tables.
inverse vidéo" dans l'onglet "Style" (élément par modèle et par motorisation.
Par exemple, la fenêtre "FEN_STATS_ParLieu"
"Jauge").
contient une table avec une colonne de type Pour gérer ce sous-total, le code de la
"Jauge" pour afficher un pourcentage. procédure "FusionneSousTotal" utilise la
Impression d'une fusion de cellule.
Création d'une colonne Jauge table Pour fusionner des cellules, il suffit d’uti-
Première étape, définir une colonne de liser la propriété Fusion sur une cellule
type jauge dans la fenêtre de description Dans les applications WinDev 12, les uti-
avec la constante :
de la table. lisateurs peuvent imprimer la table d’un
• fusionCelluleSuivante pour fusionner la
simple clic droit.
Une fois cette colonne définie (il est pos- cellule avec celle de la colonne suivante.
• Soit le développeur a créé un état basé
sible d'en avoir plusieurs dans une même • fusionLigneSuivante pour la fusionner
sur cette table, dans ce cas, la FAA exécute
table), le développeur a accès aux dif- avec celle de la ligne du dessous.
l'aperçu avant impression de cet état.
férents paramètres de la jauge  : borne Note  : Il est possible de fusionner les
• Soit le développeur n'a pas prévu d'état
minimale, bornes maximales, images de titres de colonnes sur le même principe.
basé sur cette table, et dans ce cas l’utili-
la jauge, etc. Dans ce cas, il suffit d'utiliser la constante
sateur a le choix soit de lancer l’impression
directe de la table, soit de lancer “États et FusionTitreSuivant du WLangage.

TDF TECH 2008 - www.pcsoft.fr - 19


Gestion de réseau

Gérer un réseau grâce au protocole SNMP


depuis une application WinDev.

Les fonctions SNMP de WinDev 12 Activation Une fois la session ouverte, la fonction
permettent de réaliser de des appli- SNMPOuvreSession renvoie un identifiant
Pour que les PC du réseau puissent fournir de session permettant de dialoguer avec
cations capablent de monitorer
ces informations, il est nécessaire d'activer l'équipement.
les équipements d’un réseau : les
l’agent SNMP des ordinateurs.
PC, les serveurs, les switchs, les Il s’agit d’une option de Windows ou de Lecture d'une information
automates, … Linux. Une fois la connexion établie il suffit de lire
Il est par exemple possible de lister la valeur que l’on souhaite dans l’arbores-
Pour Windows, les étapes sont les sui- cence SNMP grâce à la fonction WLangage
toutes les machines d'un réseau
vantes : SNMPLit.
disposant de moins de 1Go de
• Ouvir le panneau de configuration.
RAM pour mettre à niveau un parc La fonction SNMPLit nécessite deux para-
• Lancer l'option "Ajout / Suppression de
matériel. mètres :
programmes".
Les fonctions SNMPxxx du WLangage • Sélectionner le mode "Ajouter / Supprimer • l’identifiant de la session renvoyée par
permettent également de : des composants Windows". la fonction SNMPOuvreSession.
• Suivre la charge du réseau, • Ajouter si nécessaire le module "Outil de • l’identifiant SNMP de la valeur à récu-
gestion et d'analyse". pérer, par exemple pour la RAM, pour les
• Optimiser le fonctionnement du
• Lancer le gestionnaire de services Windows informations système...
réseau
• Gérer éventuellement des problè- et sélectionner le service "Service SNMP". // Récupération du système
•  Dans les propriétés du service (clic Système=SNMPLit(nIDSNMP,...
mes réseaux. "1.3.6.1.2.1.1.1.0")
droit), dans l'onglet "Sécurité", ajouter
deux communautés  : une communauté // Récupération de la mémoire
// vive en koctets
Fonctionnement "public" avec des droits en lecture, et une
communauté "privée" avec des droits en Mémoire=SNMPLit(nIDSNMP,...
Comme leur nom l'indique, les fonctions lecture/écriture. "1.3.6.1.2.1.25.2.2.0")
SNMPXXX se basent sur le protocole
SNMP. SNMP ( Simple Network Management
Protocol) est le protocole standard de ges- Mise en oeuvre Identifiant, OID et
tion du matériel réseau.
La mise en oeuvre des fonctions SNMPXXX MIB
s'effectue en deux étapes : L’identifiant de la valeur, c’est l’OID de la
Le projet " WD Gains Développeurs" contient
• La connexion à l'équipement concerné. valeur à récupérer.
un exemple didactique d'utilisation des
•  La récupération des informations vou- Vous pouvez trouver cette valeur :
informations SNMP.
lues. • Soit sur Internet pour les valeurs stan-
Cette exemple permet d'afficher des infor- dards
mations sur les PC d'un réseau : • Soit dans la documentation de votre maté-
• le nom de la machine, Connexion à l'équipement
riel, qui s’appelle la MIB et qui regroupe
• son adresse IP, Dans l'exemple, le code de connexion est
toutes les valeurs spécifiques de votre
• son adresse MAC, réalisé dans le code du bouton "Récupérer"
matériel.
• des informations sur le système, grâce à la fonction SNMPOuvreSession du
• la RAM, WLangage. La fonction SNMPChargeMIB permet de
•  depuis combien de temps le PC est charger en mémoire les informations d'une
//Ouverture de la session SNMP
allumé… nIDSNMP = SNMPOuvreSession(... MIB afin d'utiliser l'identifiant chaîne de
NomPoste,"public") l'OID et non son identifiant.
Pour obtenir ces informations, l'applica- La fonction SNMPOuvreSession pour se
tion interroge directement les différents connecter à l’équipement nécessite en
acteurs du réseau pour obtenir ces infor- paramètre :
mations : ces informations sont donc tou- • Le nom ou l’adresse IP du matériel.
jours à jour. •  Le nom de la communauté SNMP avec
laquelle nous allons dialoguer ("public"
dans le cas de notre exemple).

20 - TDF TECH 2008 - www.pcsoft.fr


BlueTooth

Gains développeurs
Transférer des fichiers entre des
périphériques BlueTooth.

WinDev 12 permet d'interagir avec Pour récupérer un fichier depuis le péri-


les périphériques BlueTooth. Cette phérique, il est nécessaire de connaître son
fonctionnalité peut permettre, par chemin exact. La liste des fichiers disponi-
bles sur le périphérique peut être récupérée
exemple, de récupérer des fichiers
par la fonction OBEXListeFichier.
présents sur un mobile ou d'activer
un service précis. sListeFichiers = ...
OBEXListeFichier(...
Pour utiliser les fonctions BlueTooth, nIDConnexion, sRépertoire,...
le poste doit être équipé d'une obexListeSimple +...
obexListeRépertoire)
(ou de plusieurs) radio BlueTooth.
WinDev supporte les clés équipées
Remarque
d'une pile bluetooth Microsoft.
Le répertoire spécifié est relatif au réper-
toire de transfert OBEX définit sur le péri-
Projet d'illustration phérique. Ce répertoire constitue la racine
de l'arborescence visible depuis les périphé-
Le projet "WD BlueTooth Surface", fournit riques extérieurs. Sur certains appareils,
sur le DVD accompagnant ce support de ce répertoire peut être paramétré.
cours, est un exemple d'application mani-
Si aucun répertoire n'est indiqué en para-
pulation les fonctions BlueTooth.
mètre (chaîne vide), c'est ce répertoire de
transfert qui sera listé.

Lister les La récupération des fichiers se fait sim-


plement, à l'aide de la fonction Wlangage
périphériques OBEXRécupèreFichier, en précisant en
Pour lister les périphériques BlueTooth à BTInfoPériphérique pour récupérer ces paramètre :
proximité, il suffit d'utiliser la fonction informations manquantes. •  Le chemin du fichier sur le périphéri-
Wlangage BTListePériphérique. Cette que,
fonction permet de : •  Le chemin local dans lequel le fichier
• Obtenir une liste simple ou détaillée des Récupérer des sera copié.
périphériques, fichiers depuis un OBEXRécupèreFichier(nIDConnexi
• Lister les périphériques déjà authentifiés
auprès du poste, comme les périphériques
périphérique on, sRépertoire+"/"+"MonImage.
jpg", fRepExe()+["\"]+ "upload\
encore inconnus. Le transfert de fichiers entre périphéri- MonImage.jpg")
sListePériphériques = ... ques BlueTooth est assuré par le protocole
BTListePériphérique(... OBEX. WinDev dispose de plusieurs fonctions Envoyer des fichiers
btListeSimple,... OBEXxxx pour gérer le transfert de fichiers
btEtatTous,... par BlueTooth.
sur un périphérique
10, sIdRadio) L'envoi des fichiers sur un périphérique
Dans un premier temps, il est nécessaire
Pour récupérer toutes les informations d'établir une connexion OBEX entre le est effectué par la fonction Wlangage
sur un périphérique donné, il est pos- périphérique et la radio. Cette connexion OBEXEnvoieFichier. Par défaut, le fichier
sible d'utiliser la fonction WLangage est effectuée par la fonction Wlangage est copié dans le répertoire de transfert
BTInfoPériphérique. OBEXConnecte. Le périphérique BlueTooth du périphérique.
surlequel la connexion doit avoir lieu est OBEXEnvoieFichier(...
Notre astuce identifié par son adresse MAC. Cette nIDConnexion,...
Pendant le listage des périphériques, il est adresse peut être obtenue par la fonction fRepExe()+["\"]+...*
possible que certains périphériques ne puis- BTInfoPériphérique. "upload\MonImage.jpg")
sent communiquer toutes leurs informations nIDConnexion = ...
dans l'intervalle défini par le paramètre OBEXConnecte(obexBluetooth,...
Timeout de la fonction BTListePériphérique. sMACPériphérique)
Dans ce cas, il suffit d'utiliser la fonction

TDF TECH 2008 - www.pcsoft.fr - 21


Reconnaissance vocale

Optimiser le taux de reconnaissance vocale


et personnalisation des ordres reconnus.

WinDev permet, simplement, de La fenêtre "FEN_Exemple" du projet "WD Pour cela, il est possible d'utiliser une syn-
piloter les applications à la voix. Commandes Vocales" contient des bou- taxe particulière de la fonction WLangage
Mais il est également possible de tons ayant pour libellé "Gauche", "Droite", AjouteCommandeVocale :
"Quitter" et "Revenir à l'état initial". AjouteCommandeVocale(...
gérer la reconnaissance vocale par
Il suffit donc de dire "Gauche", "Droite", GestionVocale, "")
programmation afin de gérer des
"Quitter", "Revenir à l'état initial" pour
cas complémentaires ou d'amé- que le code du bouton correspondant soit
L'appel à la fonction AjouteCommandeVocale
liorer le taux de reconnaissance automatiquement exécuté.
avec, comme phrase à reconnaître, une
vocale de l'application. chaine vide ("") permet à la procédure
Les applications existantes bénéficient GestionVocale de "tout" écouter : pour
automatiquement de la reconnaissance chaque phrase prononcée, GestionVocale
Projet d'illustration vocale, sans qu'aucune ligne de code ne sera exécutée.
Le projet utilisé pour illustrer ce sujet est soit ajoutée.
Dans la procédure "GestionVocale", il suffit
"WD Commandes vocales" (présent sur le alors de traiter la phrase prononcée pour
DVD). Il s'agit de l'exemple livré en standard Commandes vocales reconnaître quelle commande vocale a
dans le produit, modifié pour ce support
de cours. Les manipulations décrites dans
"évoluées" pu être dite.

cet article reposent sur ce projet. WinDev permet également d'ajouter des Il est nécessaire de stocker dans un tableau
commandes vocales spécifiques à chaque (un tableau associatif par exemple) toutes
les commandes vocales disponibles, en
Utilisation de la application. Il est en effet parfois plus sim-
phonétique, et la procédure associée à
ple et intuitif de parler naturellement que
reconnaissance de prononcer le libellé des boutons. chacune.
vocale Dans la fenêtre "FEN_Exemple", plusieurs Il suffit alors de modifier chaque mot de
commandes vocales ont été ajoutées la phrase prononcée en la phonétique qui
Le pilotage des applications à la voix néces-
dans le code d'initialisation de la fenê- correspond, et de comparer la phrase ainsi
site la présence sur le poste d'un logiciel
tre. Pour ajouter une commande vocale, obtenue avec le tableau des commandes
de reconnaissance vocale.
il suffit d'utiliser la fonction Wlangage vocales : si la commande est reconnue,
Windows Vista dispose d'une reconnaissance
AjouteCommandeVocale. la procédure associée peut être
vocale en standard. Pour les autres systèmes
exécutée.
d'exploitation, il suffit d'installer un logiciel // Pour lever le bras gauche
de reconnaissance vocale. AjouteCommandeVocale(... Pour améliorer encore
La reconnaissance vocale est parfois assez LèveBrasGauche, ... le taux de compré-
sensible : il est parfois nécessaire de répéter "Lève le bras gauche") hension, il est
une phrase pour que celle-ci soit entendue Cette fonction accepte en paramètre : possible de
correctement par la machine. •  le nom de la procédure Wlangage qui supprimer les
sera exécutée lors de l'appel à la com- mots "para-
Notre astuce mande vocale. sites" qui
Pour améliorer la compréhension de la •  la phrase qui doit être prononcé pour peuvent
reconnaissance vocale, il est conseillé exécuter la procédure. se situer
d'effectuer les didacticiels et exercices en début
Dans cet exemple, si l'utilisateur prononce et fin de
proposés par le logiciel de reconnaissance la phrase "Lève le bras gauche", la procé-
vocale. phrase.
dure "LèveBrasGauche" sera exécutée.

Commandes vocales Utilisation de la fonction


"basiques" Phonétique
Il est possible de mettre en oeuve un mode
Les applications développées avec WinDev "avancé" de reconnaissance vocale. Pour
acceptent automatiquement les commandes que la reconnaissance soit moins sensible,
vocales. La reconnaissance vocale s'appuie il suffit de gérer la phonétique des phrases
simplement sur le libellé des boutons de dictées.
l'application.

22 - TDF TECH 2008 - www.pcsoft.fr


Compilation Just In Time

Gains développeurs
Exploiter au mieux les optimisations de la
compilation JIT.

La compilation JIT (Just In Time) est Opérations concernées tre n'est pas modifié par la procédure.
une nouveauté importante des ver- La compilation JIT est automatiquement
sions 12. La compilation JIT permet activée et optimise : Deuxième optimisation
de générer des instructions direc- • Toutes les opérations mathématiques : Indiquer le type des paramètres dans le
Addition, soustraction, multiplication, code de la procédure détermine sa taille
tement en assembleur en tenant
division en octets, ce qui rend la compilation JIT
compte de la plateforme de l'utili-
•  Certaines fonctions mathématiques encore plus efficace.
sateur : le gain est évident.
comme cosinus, sinus, tangente, modulo
Il est donc plus qu'intéressant de • Les fonctions d'opération binaires : ou Troisième optimisation
comprendre comment bénéficier binaire, et binaire, ... Il est important de découper les calculs
de cette compilation JIT et aussi de •  Certaines fonctions sur les entiers : au maximum et d'utiliser des variables
savoir comment adapter un code ConstruitEntier, valeur absolue, .. locales.
existant pour optimiser les perfor- En fait, toutes les fonctions et opérateurs Par exemple, dans une même procédure,
mances de cette compilation JIT qui utilisent des nombres et des opérations il n'est pas optimal d'utiliser plusieurs fois
et donc des applications. mathématiques… la propriété ..Largeur sur le même champ,
car :
• A chaque exécution, l'application doit
Principe Optimisations rechercher la largeur du champ.
Pour illustrer le fonctionnement de cette
• La compilation JIT ne peut pas optimiser
compilation JIT, nous avons utilisé le projet Les performances du JIT peuvent encore
ce type de calcul.
"WD Fractales" présent sur le DVD. être améliorées en adaptant le code des
Le projet "WD Fractales" est un exemple de applications. Pour essayer ces optimisa- La solution est donc de stocker la largeur
calcul scientifique bien connu : le calcul tions, il est tout à fait possible de les réa- et la hauteur du champ dans une variable
de fractales. liser dans l'exemple "WD Fractale". locale. Cette optimisation est également
valable si vous n’utilisez pas encore le JIT
Sans la compilation JIT Première optimisation ou une version précédente de WinDev.
Première étape, pour avoir un ordre de Partout où c’est possible, il est conseillé
grandeur du temps d'exécution actuel, d'utiliser des paramètres locaux pour vos
il faut exécuter cette application sans la procédures (par exemple dans la procédure
compilation JIT. "Fractale" de l'exemple).
Pour cela, il suffit d'ouvrir le projet et de Pour indiquer qu'un paramètre est un para-
faire un "Go" du projet. En effet, la com- mètre local et non global, il suffit d'ajouter
pilation JIT n'est pas utilisée lors du mode le mot-clé "Local" devant les paramètres.
test car WinDev a besoin de connaître pas
à pas le code en cours d'exécution (prin- Pourquoi cette optimisation ? Tout
cipalement pour le deboggueur). simplement parce que les varia-
bles locales peuvent être stockées
À la fin du calcul, le temps passé est affiché dans des registres mémoire, alors
et sera le temps de référence. que les variables globales ne le
peuvent pas.
Exécution avec compilation JIT Les variables globales sont-elles
Pour bénéficier de la compilation JIT, par stockées à une adresse mémoire.
défaut, il suffit de créer l'éxécutable. Dès Et l’accès à un registre mémoire
son lancement, la compilation JIT sera est entre 1 à 10 fois plus rapide que
automatiquement utilisée. l’accès à une adresse mémoire.
À la fin du calcul, le temps passé est affi-
ché et il est alors facile de comparer par Avertissement : Avec le mot-clé
rapport au temps de référence mesuré "Local", les paramètres sont pas-
précédemment. D'ailleurs, le résultat est sés par valeur et plus par adresse
généralement perceptible pendant l'exé- comme c'est le cas par défaut dans
cution. le WLangage. Ce mot-clé ne doit
donc être utilisé que si le paramè-

TDF TECH 2008 - www.pcsoft.fr - 23


Abonnez-vous !
T80119
Tarif modifiable sans préavis Vos Nom & Prénom : ...........................................................................
Votre Société : ..................................................................................
Bulletin d’abonnement à retourner avec Votre Adresse précise : ........................................................................
votre règlement à : .....................................................................................................
PC SOFT Code Postal : .............................. Ville : .............................................
Lettre du Support Technique Pays : ........................................ Tel : ...............................................
BP 44 408 Adresse Email : .................................................................................
34197 MONTPELLIER Cedex 05
France Je choisis un abonnement “LST PC SOFT” pour : À partir du numéro : ..............

En cas de paiement par carte bancaire,


FRANCE Métropolitaine □ 1 an - 4 N°+ 4 DVD : 159 euros HT; 190,16 euros TTC
vous pouvez nous faxer votre abonne-
□ 2 ans - 8 N°+ 8 DVD : 279 euros HT ; 333,68 euros TTC
ment au :
+33 (0) 4 67 03 07 87 AUTRE (exp. par avion) □ 1 an - 4 N°+ 4 DVD : 175 euros HT
□ 2 ans - 8 N°+ 8 DVD : 299 euros HT
Note : une facture acquittée est systématique-
 Ci joint mon règlement de : ............. Euros TTC ment adressée.

□ Je règle par chèque.        J’autorise PC SOFT à débiter sur ma carte VISA/MasterCard

□□□
            la somme de : ..................... Euros
□ Je règle par Carte Bancaire.      Cryptogramme :

□□□□□□□□□□□□□□□□ □□ □□□□
Numéro complet de la carte : la carte expire : mois année

Signature obligatoire du détenteur de la carte :


Nom du détenteur de la carte :
..........................................................

24 - TDF TECH 2008 - www.pcsoft.fr


TDF Tech 2008

Asus EEEPC

25 - TDF TECH 2008 - www.pcsoft.fr


Développement spécifique

Développer une application WinDev pour


une utilisation sur Asus EEEPC.

L'EEE-PC ("Easy to learn, Easy to EEE-PC sous Windows Les applications générées peuvent donc
work, Easy to play") est un PC ultra- fonctionner sous Linux, Mac, Unix, ... et
La création d'applications pour EEE-PC donc sur un EEE-PC Linux.
portable, commercialisé par Asus.
Windows avec WinDev se fait simplement,
Ce portable possède un écran de Pour générer un exécutable Java (fichier
comme pour tout ordinateur Windows.
7 pouces pour une résolution de .jar) depuis un projet WinDev, il suffit
800x480 (ou 800x600 avec une La seule particularité réside alors dans de cliquer sur le menu "Atelier .. Java ..
la taille de l'écran. Pendant la phase de Générer l'archive Java" et de suivre l'assis-
gestion de scrolling).
création de projet, il suffit de choisir la tant de génération.
Autre particularié par rapport à taille correcte pour les fenêtres de l'ap-
Comme pour le développement d'applica-
un PC portable : il ne possède pas plication : 800x480 ce qui permettra une
tion Windows pour EEE-PC, le développe-
de disque dur "classique" mais un utilisation en plein écran par l'utilisateur
ment d'applications Java sous Linux pour
disque flash de 4 ou 8 Go. que l'écran soit en mode 800x600 ou en
EEE-PC s'effectue comme tout autre déve-
L'EEE-PC est livré en standard avec mode 800x480).
loppement Java.
une distribution Linux spécifique L'utilisation des ancrages permet alors
à l'application de bénéficier de la place
("Xandros") mais il est également Notre conseil
disponible (y compris en cas d'utilisation
possible d'y installer Windows XP. Si une application est destinée à être uti-
sur un écran externe où la résolution est
lisée en Java, il est conseillé d'activer le
WinDev 12 permet de développer alors 1024x768).
mode "Java" dès la définition du projet. En
des applications pour ce péri-
effet, certaines fonctionnalités de WinDev
phérique, qu'il soit sous Linux ou Notre Astuce
n'étant pas disponibles en langage Java,
Windows. La taille "préférentielle" des écrans pour un
il est préférable de tenir compte de ces
projet peut être modifiée dans l'onglet
spécificités dès la conception.
"Style" de la fenêtre de description
du projet. Comme pour un développement Windows
pour EEE-PC, il est important de respecter
Le développement de l'application est
la résolution de l'écran : 800x480.
ensuite classique et il est possible
d'utiliser toutes les fonctionnalités du
WLangage et les périphériques maté- JRE et JDK
riels (port USB, carte réseau...). Il est La version de l'environnement d'exécution
notamment possible d'utiliser une base Java (JRE – "Java Runtime Environment")
de données Hyper File. du EEE-PC Linux est, par défaut, une ver-
Le projet "WD Gestion de Devis", four- sion 1.5.
nit avec ce support de cours, est un Si le JDK présent sur le poste de déve-
exemple d'application dédiée à une loppement, et donc celui utilisé pour la
utilisation sur EEE-PC Windows (il est génération d'application Java, est d'une
cependant possible de l'utiliser sur version supérieure (1.6 par exemple), il est
toute machine Windows). nécessaire de spécifier dans l'assistant de
génération Java que le fichier .jar doit être
compatible avec les versions inférieures.
EEE-PC sous Cette manipulation n'est pas spécifique à
Linux l'EEE-PC, et peut être effectuée quelle que
WinDev permet de soit l'application générée, pour s'assurer
générer des de la compatibilité avec les différentes
applications versions de JRE.
Java depuis
un projet
Remarque
développé en Par défaut, les options de compilation
WLangage. Java assurent une compatibilité jusqu'à
la version 1.4.

26 - TDF TECH 2008 - www.pcsoft.fr


Asus EEEPC
Le projet "WD Gestion de Réunion", fourni
avec ce support de cours, est un exemple
d'application réalisée pour EEE-PC Linux.

Exemples produits
WinDev fournit en standard de nombreux
exemples Java : WD Dessiner Java, WD
Grapheur Java, WD JavaMail, WD XML
Java, ...

Optimiser l'espace utilisé de 40 %

Avant Après
Fenêtre "classique" : le libellé indiquant le Fenêtre "optimisée" : le libellé indiquant le
rôle d'un champ est situé à gauche (ou au rôle de chaque champ est indiqué dans le
dessus) du champ. champ avec un effet graphique permettant
de le distinguer par rapport au contenu.

Ce mode d'affichage est rendu possible grâce au concept de texte indicatif disponible dans l'on-
glet "Aide" de la fenêtre de description des champs dans WinDev, WebDev et WinDev Mobile.

TDF TECH 2008 - www.pcsoft.fr - 27


Abonnez-vous !
T80119
Tarif modifiable sans préavis Vos Nom & Prénom : ...........................................................................
Votre Société : ..................................................................................
Bulletin d’abonnement à retourner avec Votre Adresse précise : ........................................................................
votre règlement à : .....................................................................................................
PC SOFT Code Postal : .............................. Ville : .............................................
Lettre du Support Technique Pays : ........................................ Tel : ...............................................
BP 44 408 Adresse Email : .................................................................................
34197 MONTPELLIER Cedex 05
France Je choisis un abonnement “LST PC SOFT” pour : À partir du numéro : ..............

En cas de paiement par carte bancaire,


FRANCE Métropolitaine □ 1 an - 4 N°+ 4 DVD : 159 euros HT; 190,16 euros TTC
vous pouvez nous faxer votre abonne-
□ 2 ans - 8 N°+ 8 DVD : 279 euros HT ; 333,68 euros TTC
ment au :
+33 (0) 4 67 03 07 87 AUTRE (exp. par avion) □ 1 an - 4 N°+ 4 DVD : 175 euros HT
□ 2 ans - 8 N°+ 8 DVD : 299 euros HT
Note : une facture acquittée est systématique-
 Ci joint mon règlement de : ............. Euros TTC ment adressée.

□ Je règle par chèque.        J’autorise PC SOFT à débiter sur ma carte VISA/MasterCard

□□□
            la somme de : ..................... Euros
□ Je règle par Carte Bancaire.      Cryptogramme :

□□□□□□□□□□□□□□□□ □□ □□□□
Numéro complet de la carte : la carte expire : mois année

Signature obligatoire du détenteur de la carte :


Nom du détenteur de la carte :
..........................................................

28 - TDF TECH 2008 - www.pcsoft.fr


TDF Tech 2008

Internationalisation

29 - TDF TECH 2008 - www.pcsoft.fr


Interface / IHM

Gérer plusieurs langues au niveau de


l'interface d'une application.

La gestion de plusieurs langues projet pourront être définis dans plusieurs lisateur.
dans un même projet peut s'effec- langues. • Personnaliser les paramètres pour chaque
tuer soit : Pour cela, il suffit de : langue.
• Lors de la définition du projet (lors • Sélectionner l'option "Description du pro- Par exemple, pour la langue anglaise, il
de la création du projet) jet" du menu "Projet" de WinDev. est possible de forcer l'utilisation du point
• À n'importe quel moment sur un • Sélectionner l'onglet "Langues" pour le séparateur de décimale et la virgule
projet existant. • Cocher "Anglais" pour le séparateur de milliers.
• Sélectionner "Anglais" Dès qu'un projet est multilingue, tous les
Note : WinDev permet de gérer jusqu’à 20 champs de l'interface (fenêtre, pages,
Mise en œuvre langues dans une même application. états,...) deviennent multilingues.
Dans ce sujet, nous allons modifier le projet
"WD Internationalisation" afin de le rendre Options Linguistiques Utilisation
multilingue. L'application correspondante Pour chaque langue du projet, il est possible Pour illustrer le fonctionnement d'un pro-
pourra alors être exécutée en français ou en de définir les options linguistiques : jet multilingue, ouvrez la fenêtre "FEN_
anglais à partir du même code source. format des nombres, des monétaires, des AjoutCollaborateur" du projet.
heures, des dates, des durées … et d’autres Dans la description de chaque élément, vous
Projet Multilingue paramètres comme le sens d’écriture par disposez d'un paragraphe pour le français
exemple. et un paragraphe pour l’anglais.
Pour avoir mon application à la fois en
français et en anglais, tout en n’ayant Prenons par exemple l'option linguistique Prenez, par exemple le champ "Nom et
qu’un seul code source à maintenir, il faut sur les nombres, il est possible soit de : prénom" (clic droit…description).
rendre ce projet "Multilingue", c'est-à- • Utiliser les paramètres définis dans les Il est même possible de définir les textes
dire que l'interface et les messages de ce options linguistiques du Windows de l’uti- d'indications et autres systèmes d'aide dans
les différentes langues du projet (options
accessibles depuis l'onglet "Aide").
Note : le texte d’indication est le texte
affiché dans le champ avant que l'utilisateur
ne commence à saisir.

Ressources textes
Pour l'interface, nous venons de le voir,
WinDev (mais également WebDev et
WinDev Mobile) simplifie énormément le
travail à réaliser, il reste donc à gérer les
chaînes en "dur" dans le code :
• message d'erreur
• boîtes de dialogue
• ...
Par exemple, dans le traitement VerifInfos
de la fenêtre "FEN_AjoutCollaborateur",
vous pouvez trouver le message suivant :
"Vous n'avez pas entré le nom et le prénom
du collaborateur" .
Ce message sera affiché à l’utilisateur par
la fonction WLangage "Erreur", il faut donc
que ce message soit également traduit
pour que l'application soit fonctionnelle

30 - TDF TECH 2008 - www.pcsoft.fr


Internationalisation
Retrouvez plus d'informations sur
ce sujet en formation "WinDev
Prise en main"
en anglais.
Il n'est cependant pas possible de remplacer
l'ensemble des chaînes utilisées dans un
projet par une ressource multilingue de
façon automatique.
Par exemple, un nom de procédure passé en
paramètre à une fonction "Evénement" ne
devra pas être traduit sinon le programme
ne fonctionnera plus..

Conversion
Si les ressources multilingues n'ont pas
été créées au fur et à mesure de l'écri-
ture de l'application, il est malgré tout
possible d'automatiser une partie de cette
opération.
Pour cela, il suffit d'utiliser l'option
"Convertir les chaînes simples en messages
multilingues" du menu "Code .. Message
Multilingues" lorsqu'une fenêtre de code
est affichée.

Une fois la portée de l'action définie (il est


possible de faire cette opération unique-
ment sur l'élément courant par exemple,
WinDev parcourt automatiquement le code
source de la fenêtre. Pour chaque chaîne
pour les paramètres plutôt que de conca-
Gestion de la
téner des chaînes.
trouvée, WinDev propose de la convertir traduction
ou non en "message multilingue". La fonction ChaîneConstruit facilite le L’application est maintenant prête à être
travail des traducteurs qui ont alors une traduite. Il y a 2 possibilités pour traduire
Par exemple, la chaîne correspondant au phrase complète à traduire et non des une application :
message "Vous n'avez pas entré le nom bouts de phrase. • Première possibilité : tout faire à la main.
et le prénom du collaborateur" est à tra- De plus, les constructions syntaxiques chan- Le développeur traduit les chaînes une à
duire, donc à transformer en ressource gent selon les langues. Cela permet donc de une, en se faisant éventuellement assister
multilingue. garantir une traduction de qualité. par un outil de traduction externe.
Un "message multilingue" est alors caracté- La configuration d'un outil de traduc-
risé par le petit drapeau qui apparaît juste tion externe s'effectue dans les options
Raccourci clavier
derrière la chaîne. Pour éditer le message, de WinDev (menu "Outils"), dans l'onglet
Pour transformer une chaîne en res-
il suffit de cliquer sur le drapeau. "Traduction".
source multilingue, il suffit de sélection-
ner la chaîne et d'utiliser le raccourci • Deuxième possibilité pour traduire : uti-
Par contre, l’appel à l’événement "Proc_ liser WDMSG. Cet outil optionnel (utilisable
"CTRL+T".
EvtCopie" ne doit surtout pas être traduit avec WinDev, WebDev et WinDev Mobile)
sinon il risque d'y avoir une erreur à l’exé- Ce mécanisme de chaîne multilingue peut permet d'automatiser la manipulation des
cution de la version anglaise. être utilisé sur une application uniquement ressources multilingues, mais également
livrée avec une interface française, c'est d'externaliser la traduction à proprement
un bon réflexe de développement qui vous parlé.
Conseil fera gagner du temps si l'application doit
Pour les chaînes construites dynamiquement, être traduite.
nous vous conseillons d'utiliser la fonction
WLangage ChaîneConstruit avec "%1", "%2"

TDF TECH 2008 - www.pcsoft.fr - 31


Industrialisation / automatisation

Automatiser et/ou externaliser la traduction


d'une application.

Traduction des
ressources
Une fois les messages extraits, il faut passer
à l'étape de traduction des ressources dans
la ou les langues désirées. Cette traduction
peut être réalisée en direct depuis WinDev
par l'option "Outils…WDMSG…Traduction des
messages" ou être réalisée par des traduc-
teurs ne disposant pas de WinDev.

Principe
Cette option lance l’outil "WDTrad" qui va
gérer la traduction proprement dite. Cet
outil est livré en standard avec WDMSG.
Il est possible de fournir cet outil avec
les fichiers à traduire à un cabinet de
traduction.

L'utilisation de WDTrad est simple, il suffit


de :
•  Sélectionner le fichier contenant les
messages à traduire (issu de l'étape pré-
cédente).
• Sélectionner le fichier de destination (le
fichier allant contenir les traductions).
• Cliquer sur le bouton "Charger".

Dans la partie gauche, vous retrouvez les


ressources, en français, à traduire.
WDMSG, est un module optionnel Extraction des Et dans la partie droite, on aura les tra-
de WinDev qui industrialise la phase
de traduction.
ressources ductions qui correspondent.

Première étape : demander à WDMSG d’ex-


En effet, WDMSG va automatique- traire les ressources à traduire par l'option Dictionnaire de traduction
ment extraire toutes les ressources "Outils…WDMSG…Extraction des messages".
multilingues du projet (il est possible Cette option lance WDMSG sous la forme WDMSG gère un dictionnaire personnalisé de
d'un assistant guidant les opérations : traduction. Par défaut, ce dictionnaire de
de réaliser une extraction totale ou
• Sélection de la langue des messages à WDMSG contient plus de 10.000 traductions
partielle). Il est ensuite possible
extraire (la langue de référence utilisée des formulations les plus courantes.
de traduire ou faire traduire ces lors du développement). Pour utiliser ce dictionnaire, il suffit de
ressources grâce à un outil redistri- • Sélection des éléments à traduire. cliquer sur le bouton "Auto Trad."
buable livré avec WDMSG (WDTrad) •  Sélection du fichier à générer en sor- WDMSG cherche alors pour chaque res-
puis de réintégrer ces traductions tie. source une correspondance exacte dans le
dans le projet via WDMSG. L'extraction est alors réalisée automati- dictionnaire. Si une traduction est dispo-
quement par WDMSG. nible, elle est automatiquement affichée
et affectée.

32 - TDF TECH 2008 - www.pcsoft.fr


Internationalisation
Ensuite pour les ressources non trouvées, à sages". Les informations nécessaires sont Changement de langue
l’identique, dans le dictionnaire, il suffira alors les suivantes :
de l'application
de les saisir dans la colonne de droite. Un •  La langue des messages à réintégrer
Une fois que l'application contient les mes-
double-clic permet de rechercher dans (l'anglais par exemple).
sages et l'interface dans plusieurs langues,
le dictionnaire les ressources similaires • Le fichier contenant les traductions dans
il suffit d'être capable de lancer cette
afin d'accélérer et d'uniformiser la tra- cette langue (fichier généré par l'outil
application dans une langue ou de laisser
duction. WDTrad à l'étape précédente).
la possibilité à l'utilisateur de choisir la
langue à utiliser.
Chaque nouvelle traduction saisie peut
venir alimenter automatiquement le dic-
Astuce
Pour visualiser une application sous l'éditeur Pour changer dynamiquement la langue
tionnaire. Ca veut dire que le dictionnaire
dans différentes langues, il est possible depuis l’application, il suffit de :
de WDMSG s’enrichit au fur et à mesure
d'utiliser le menu "Affichage – Langue affi- • Créer une option de menu "English" (ou
que des traductions. Ce sont donc autant
chée" (raccourci :Ctrl + Alt + L). un bouton).
de ressources que WDMSG traduira tout
• Ajouter dans le code de cette option, le
seul les fois suivantes ! Et bien sûr, il est
code WLangage suivant :
possible d'utiliser plusieurs dictionnaires AAD : Aides Au Développement
dans différentes langues. Nation(nationAnglais)
Après la réintégration de traductions, il est Utilise(FEN_Fenêtre1)
possible que des "AAD" apparaissent sous
l'éditeur (Aides Au Développement). La fonction Nation permet de modifier la
Réintégration des langue utilisée par l’application.
Il existe notamment une AAD capable d'indi-
ressources quer qu’un champ n’a pas la taille adaptée
La fonction Utilise permet de réafficher la
fenêtre pour prendre en compte le chan-
Une fois la traduction des ressources ter- pour s’afficher correctement, dans une ou gement de langue.
minée, il n’y a plus qu’à réintégrer dans le plusieurs langues.
projet initial la traduction anglaise. Par exemple, le libellé "nom et prénom :"
en français est plus court que la traduction
La procédure de réintégration est très correspondante en anglais "First name and
similaire à celle d'extraction puisqu'elle name". Le champ libellé peut alors être
utilise là aussi l'outil WDMSG par l'option trop petit et donc le texte tronqué en
"Outils…WDMSG….Réintégration des mes- anglais.

TDF TECH 2008 - www.pcsoft.fr - 33


Base De Données

Gérer le stockage de plusieurs alphabets


différents dans une même Base de Données.

Lorsque l'interface doit être tra-


duite dans des langues utilisant
un alphabet non latin, il peut être
nécessaire de stocker dans la base
de données du texte utilisant cet
alphabet non latin.
Nous allons ici voir comment ajou-
ter l'arabe dans notre application
mutlilangue (partie interface) et voir
comment stocker un texte utilisant
l'alphabet arabe dans une base de
données Hyper File.

Configuration du
projet
Comme précédemment, pour gérer une
nouvelle langue dans une application, il faut
commencer par l'indiquer dans la fenêtre
de description du projet.

Lors de l'ajout de cette nouvelle langue


(ici l'arabe), il est nécessaire d'indiquer le
sens d'écriture qui est de "droite à gauche"
dans l'option "Divers".

Une précision sur l’encodage à utiliser :


L’alphabet latin est encodé sur de l’AS-
CII.
Pour les alphabets non latins, il est néces-
saire d'utiliser de l’UNICODE.

Si l'application doit pouvoir afficher plu-


sieurs alphabets différents dans une même
fenêtre, par exemple, du grec, de l’hé-
breu, de l’arabe, de l’alphabet latin .. il
faut choisir un encodage UTF8 pour gérer
les différents alphabets dans un même
encodage.

34 - TDF TECH 2008 - www.pcsoft.fr


Internationalisation
Traduction Libellé de l'option de menu Cette opération doit être réalisée sur les
L'option de menu permettant de bascu- rubriques pouvant contenir des alphabets
ler l’application en arabe doit être elle- différents.
Extraction & Traduction
même en arabe et ceci dans toutes les
Les étapes d'extraction et de traductions
langues... Il est également possible de choisir les
sont similaires à une traduction dans une
paramètres de langue de la rubrique.
langue latine. Vous pouvez consulter le Or, il n'est pas possible de saisir un libellé
Ces paramètres permettent de trier la
détail de ces opérations dans les pages dans un alphabet non latin pour une lan-
rubrique correctement selon la langue.
précédentes. gue latine.
Il suffit donc d'indiquer par programmation
Réintégration et affichage
La réintégration des messages en elle-même
que l'option de menu correspondant utilise Ce qu'il faut retenir
un alphabet spécifique.
est identique à la réintégration de messages Ce type d'opération s'effectue par la pro- • Avec WinDev, vous pouvez gérer jusqu’à
en langue latine. priété PoliceAlphabet du WLangage, par 20 langues par projet : anglais, allemand,
exemple dans le code d'initialisation de italien, grec, russe, chinois, hébreu,
Une fois la réintégration réalisée, il faut la fenêtre. arabe…
permettre l'affichage de cette langue dans •  Les options linguistiques peuvent être
l'application, par exemple en créant une _Menu.OPT_Langues.OPT_Arabe..
définies sans programmation depuis la
option de menu dans le menu "Langue".
PoliceAlphabet =...
configuration du projet : format des moné-
alphabetArabe
taires, format de la date ou de l'heure, sens
En se basant sur le code vu dans les pages de l'écriture, etc.
précédentes, le code serait a priori :
Exécution
• WDMSG permet d'automatiser et d'exter-
Grâce à ces paramétrages, WinDev peut
Nation(nationArabe) naliser vos traductions.
gérer automatiquement :
Utilise(FEN_Fenêtre1) • Les bases de données Hyper File (classique
•  L'affichage du titre de la fenêtre à
ou Client/Serveur) permettent de stocker
Mais dans le cas d'une langue non latine, droite.
des données dans un alphabet non latin.
ce n'est pas suffisant... • Le menu système à gauche
•  Et les champs de saisie permettent la
Retrouvez plus d'informations sur la gestion
saisie de droite à gauche.
Alphabet et clavier de l'unicode dans la LST 70.
Pour saisir et afficher de l'arabe, il est Le principe est le même dans tous les alpha-
nécessaire d'utiliser un alphabet arabe et bets : grec, cyrillique, chinois, etc…
un clavier arabe.

Pour modifier ces paramétrages, il suffit Base de Données


d'utiliser les fonctions WLangage prévues Lorsqu'une application WinDev utilise une
à cet effet : base de données Hyper File, et que cette
• ChangeAlphabet pour spécifier l'alphabet application est destinée à être diffusée
à utiliser. dans des pays d’alphabets différents, il faut
• ChangeClavier pour changer la langue penser à indiquer que les rubriques texte
du clavier. doivent utiliser un format unicode.
Cette opération n'est pas nécessaire si la
Le code de passage de l'application en
base de données ne contient qu'un seul
langue arabe devient alors :
alphabet (même non latin).
Nation(nationArabe)
ChangeAlphabet(alphabetArabe) Pour cela, il suffit de :
ChangeClavier(langueArabe) • Ouvrir l'analyse
Utilise(FEN_Fenêtre1) • Sélectionner le fichier.
•  Sélectionner l'onglet "Général" d'une
rubrique texte du fichier.
•  Indiquer comme sous-type de texte :
"unicode".

TDF TECH 2008 - www.pcsoft.fr - 35


Abonnez-vous !
T80119
Tarif modifiable sans préavis Vos Nom & Prénom : ...........................................................................
Votre Société : ..................................................................................
Bulletin d’abonnement à retourner avec Votre Adresse précise : ........................................................................
votre règlement à : .....................................................................................................
PC SOFT Code Postal : .............................. Ville : .............................................
Lettre du Support Technique Pays : ........................................ Tel : ...............................................
BP 44 408 Adresse Email : .................................................................................
34197 MONTPELLIER Cedex 05
France Je choisis un abonnement “LST PC SOFT” pour : À partir du numéro : ..............

En cas de paiement par carte bancaire,


FRANCE Métropolitaine □ 1 an - 4 N°+ 4 DVD : 159 euros HT; 190,16 euros TTC
vous pouvez nous faxer votre abonne-
□ 2 ans - 8 N°+ 8 DVD : 279 euros HT ; 333,68 euros TTC
ment au :
+33 (0) 4 67 03 07 87 AUTRE (exp. par avion) □ 1 an - 4 N°+ 4 DVD : 175 euros HT
□ 2 ans - 8 N°+ 8 DVD : 299 euros HT
Note : une facture acquittée est systématique-
 Ci joint mon règlement de : ............. Euros TTC ment adressée.

□ Je règle par chèque.        J’autorise PC SOFT à débiter sur ma carte VISA/MasterCard

□□□
            la somme de : ..................... Euros
□ Je règle par Carte Bancaire.      Cryptogramme :

□□□□□□□□□□□□□□□□ □□ □□□□
Numéro complet de la carte : la carte expire : mois année

Signature obligatoire du détenteur de la carte :


Nom du détenteur de la carte :
..........................................................

36 - TDF TECH 2008 - www.pcsoft.fr


TDF Tech 2008

Réplication

37 - TDF TECH 2008 - www.pcsoft.fr


Configuration d'une réplication

Définir rapidement une réplication pour des


utilisateurs nomades.

Options de la réplication
Il existe de nombreux modes de réplication,
les options de réplication permettent de
définir rapidement celui concerné :
• La réplication est-elle mono-direction-
nelle (donc une extraction en lecture de
la base) ou bi-directionnelle (les modifica-
tions sur le réplica seront reportées dans
la base maître)?
• Comment sont gérés les conflits de répli-
cation ? Par défaut, c'est la modification
la plus récente qui est prioritaire, mais il
est possible de vouloir un fonctionnement
différent.

Fichiers à répliquer
Une fois les options de réplication défi-
nies, il faut définir les fichiers à répliquer.
Les fichiers peuvent être en Hyper File
SQL, Oracle, MySQL, SQL Server, AS 400,
Progress…
Pour chaque fichier répliqué (par le bouton
"Ajouter"), il est possible d'indiquer si le
fichier doit être répliqué entièrement ou
partiellement.

Prenons par exemple, un fichier "Client".


Les versions 12 de WinDev, WebDev entre une base de données principale et une Il peut ne pas être nécessaire d'avoir l'en-
et WinDev Mobile disposent d'un base "locale" (sur un ordinateur portable semble des clients sur une base répliquée,
nouvel éditeur de réplication per- par exemple). notamment s'il s'agit d'une base locale
mettant de définir et de mettre en pour un collaborateur itinérant. Il est alors
Pour mettre en place une réplication avec
place sans programmation une possible de filtrer les enregistrements du
ce nouvel éditeur de réplication, tout com-
fichier "Client" à répliquer. Par exemple les
réplication. mence par le lancement de ce nouvel édi-
clients d'un département donné.
teur par le menu "Outils - Gestionnaires de
réplication - Éditeur de réplication".
Exemple associé Pour définir un filtre, il faut utiliser l'option
"Filtrer les enregistrements" et définir à
Pour tester les différentes manipulations Description de la réplication l'aide de l'assistant les conditions de sélec-
décrites dans ce sujet, il est possible d'uti- L'éditeur de réplication est pour l'instant tion du filtre. Pour reprendre l'exemple
liser le projet "CRM" livré en standard avec vierge, il faut commencer par créer une des clients d'un département, le filtre sera
WinDev, ou tout autre projet contenant nouvelle réplication, c'est-à-dire indiquer alors de la forme "Code_Postal commence
une analyse. les caractéristiques de la réplication : par '34'".
• Un nom pour la réplication, par exemple
"Réplication CRM". Note : il est possible d'indiquer les condi-
Éditeur de • Une description (facultative). tions du filtre de façon paramétrée en ne
• L'analyse du projet contenant les fichiers
réplication de la base de données à répliquer.
spécifiant pas une valeur mais un paramètre
grâce au bouton "Nouveau paramètre".
L'objectif de l'éditeur de réplication est de • Les options de la réplication.
pouvoir définir via une interface graphique
les éléments nécessaires à une réplication

38 - TDF TECH 2008 - www.pcsoft.fr


Réplication
Retrouvez plus d'informations sur
ce sujet en formation "WinDev
Avancé" ou "WinDev Mobile"

Fichiers reliés Notre Astuce


Une fois les différents fichiers à répliquer Et, automatiquement, l’assistant de réplica- Lors de la description de la réplication, il est
sélectionnés, la liste des fichiers apparaît tion ne me récupérera que les commandes possible de définir le sens de la réplication
dans la table principale de l'éditeur de des clients sélectionnés dans la réplication. et la gestion des conflits au niveau global
réplication avec une marque "répliqué" Il est alors possible de définir des filtres pour toute la réplication. Il est possible de
(c'est le cas du fichier "Client" dans notre supplémentaires, pour n'avoir qu'une partie le gérer plus finement au niveau de chaque
exemple). des commandes du client (par exemple fichier à répliquer.
Mais d'autres fichiers sont également appa- les commandes de l'année en cours). Le Pour cela, il suffit de faire clic droit sur le
rus, comme le fichier "Commande" toujours filtrage s'effectue de la même façon que fichier, dans l'option "Propriétés".
dans notre exemple. pour le fichier "Client".

En fait, tous les fichiers reliés aux fichiers Notre Astuce


sélectionnés dans la liste des fichiers à Et ainsi de suite Il est possible de définir pour chaque fichier
répliquer sont apparus. Une fois le fichier "Commande" ajouté à la s’il y a des rubriques ne devant pas être
réplication, le fichier "LignesCde" apparaît répliquées. Ce paramétrage s'effectue dans
Et tous les fichiers reliés sont alors marqués automatiquement. l'onglet "Rubriques".
en "non répliqués" (l'icone de réplication De même, il est alors possible de répli-
est en gris). quer les lignes de commandes reliées aux
Bien entendu, pour que l'application fonc- commandes. Sauvegarde de la description
tionne sur la base répliquée, certains de ces Une fois la description de la réplication
fichiers sont nécessaires : avoir le fichier etc, etc. terminée, il suffit de la sauvegarder.
"Client" sans les commandes associées peut L’éditeur de réplication génère alors un
ne pas être utile... fichier ".wer" qui contient la description
de la réplication.
Dans ce cas, il est possible d'inclure les Bien sûr à tout moment, il est possible de
fichiers liés dans la réplication grâce au revenir dans cet éditeur pour consulter ou
menu contextuel (clic droit) par l'option modifier la description d'une réplication.
"Inclure dans la réplication".

TDF TECH 2008 - www.pcsoft.fr - 39


Optimisation de réplication

Mettre en œuvre une réplication définie


dans l'éditeur de réplication.

Une fois la réplication définie grâce cation cliente (menu Atelier .. Créer la (le fichier ".wer".
à l'éditeur de réplication, il ne reste procédure d'installation). •  Cocher l'option "permettre à l’appli-
plus qu'à activer cette réplication A l’étape "Paramétrage des données", il cation de travailler également en mode
connecté".
dans les applications destinées aux est nécessaire de :
utilisateurs nomades. • Décocher l’option "Paramétrer la modi- Il est également possible d'activer l'option
fication automatique des fichiers de don- "Synchroniser automatiquement les données
Réplication nées"
• Cocher l’option "Installer et paramétrer
au lancement et à l’arrêt de l’application"
pour que la réplication entre la base locale
automatique les modules de réplication automatique". et la base du siège soit réalisée automa-
Première solution : le mode automatique tiquement.
de réplication. Dans ce mode, l'application
Configuration Ensuite, il reste à sélectionner la connexion à
n'a pas besoin d'avoir de code spécifique L'assistant demande ensuite la méthode utiliser pour l’accès en mode connecté.
pour gérer la réplication. de réplication à utiliser :
• en utilisant le serveur de réplication ou Outils complémentaires
Important : La réplication utilise les • en accédant directement à la base maître
connexions définies dans l'analyse, il est Deux outils complémentaires sont livrés
(le serveur de réplication est détaillé dans pour permettre d'effectuer une réplication
donc important que les connexions y soient la suite de cet article).
déclarées et ne soient pas modifiées par "à la demande" en mode automatique :
programmation. C'est ce second mode qui est le mode par •  "RéplicAdmin" permet de gérer la
défaut, et qui correspond au libellé "Accès connexion / déconnexion à la base princi-
Activation direct à la base maître" pale et de réaliser une synchronisation.
L'activation du mécanisme de réplication Il reste ensuite à : • "RéplicSynchro" permet de réaliser une
automatique s'effectue lors de la création • Sélectionner le fichier de description de synchronisation.
de la procédure d'installation de l'appli- la réplication que l’on a définie ensemble

40 - TDF TECH 2008 - www.pcsoft.fr


Réplication
Réplication Dans le code de l’application, pour lancer la Vous pouvez alors gérer selon les besoins
réplication, il suffit d’utiliser les nouvelles de l'application, une synchronisation en
programmée fonctions WLangage ReplicXXX : fermeture de l'application, une détection
Bien entendu, il est possible de programmer •  RéplicInitialise permet de passer les automatique du serveur principal, etc.
le fonctionnement de la réplication afin de éventuels paramètres définis au niveau
personnaliser ce fonctionnement : grâce au de l’éditeur de réplication.
fichier ".wer", le codage peut se limiter à • RéplicSynchronise exécute la réplication
2 lignes de codes. en elle-même.

Serveur de C'est le mode à utiliser si les synchronisa- Sécurité et Installation


tions sont fréquentes ou nombreuses. Avec le serveur de réplication, il n'est pas
réplication nécessaire d’ouvrir de ports au niveau des
Avec cette méthode de réplication, lors de serveurs de bases de données, ce qui est un
Notre Astuce
la synchronisation, les bases locale et cen- plus indéniable en terme de sécurité.
Pour spécifier par programmation l'utili-
trale sont comparées puis synchronisées. sation d'un serveur de réplication (et non Les réplications avec le serveur de répli-
Selon les volumes et le nombre d'utilisateurs une réplication directe sur la base), il cation utilisent le protocole HTTP, c'est-
se synchronisant, cette opération peut suffit d’utiliser la fonction ReplicOuvre à-dire le port 80.
prendre un certain temps. du WLangage en indiquant en paramètre Le serveur de réplication est fourni en
le nom du serveur, et le login et le mot de standard avec WinDev et est librement
Pour répondre à cette problématique de passe pour s’y connecter. déployable avec vos applications.
délai de réplication, un nouveau concept
Remarque Le programme d'installation du serveur
est apparu avec les versions 12 : le serveur
de réplication se situe dans le répertoire
de réplication. Si la réplication entre les bases locales et
"Install - WDReplicSrv" de WinDev 12.
Le serveur de réplication à pour rôle de pré- la base principale s’effectue via Internet,
parer les données à répliquer, à l'avance. nous vous conseillons d’utiliser le serveur
de réplication.

TDF TECH 2008 - www.pcsoft.fr - 41


Abonnez-vous !
T80119
Tarif modifiable sans préavis Vos Nom & Prénom : ...........................................................................
Votre Société : ..................................................................................
Bulletin d’abonnement à retourner avec Votre Adresse précise : ........................................................................
votre règlement à : .....................................................................................................
PC SOFT Code Postal : .............................. Ville : .............................................
Lettre du Support Technique Pays : ........................................ Tel : ...............................................
BP 44 408 Adresse Email : .................................................................................
34197 MONTPELLIER Cedex 05
France Je choisis un abonnement “LST PC SOFT” pour : À partir du numéro : ..............

En cas de paiement par carte bancaire,


FRANCE Métropolitaine □ 1 an - 4 N°+ 4 DVD : 159 euros HT; 190,16 euros TTC
vous pouvez nous faxer votre abonne-
□ 2 ans - 8 N°+ 8 DVD : 279 euros HT ; 333,68 euros TTC
ment au :
+33 (0) 4 67 03 07 87 AUTRE (exp. par avion) □ 1 an - 4 N°+ 4 DVD : 175 euros HT
□ 2 ans - 8 N°+ 8 DVD : 299 euros HT
Note : une facture acquittée est systématique-
 Ci joint mon règlement de : ............. Euros TTC ment adressée.

□ Je règle par chèque.        J’autorise PC SOFT à débiter sur ma carte VISA/MasterCard

□□□
            la somme de : ..................... Euros
□ Je règle par Carte Bancaire.      Cryptogramme :

□□□□□□□□□□□□□□□□ □□ □□□□
Numéro complet de la carte : la carte expire : mois année

Signature obligatoire du détenteur de la carte :


Nom du détenteur de la carte :
..........................................................

42 - TDF TECH 2008 - www.pcsoft.fr


TDF Tech 2008

GDS - Versionning

43 - TDF TECH 2008 - www.pcsoft.fr


Gestionnaire de Sources : Principe

Fonctionnement et utilisation du GDS, l'outil


de versionning intégré de WinDev - Rappels.

la réintégration dans le GDS, il sera alors


nécessaire de fusionner les modifications
des différents développeurs. Ce type d’ex-
traction ne doit être utilisé que dans des
cas très particuliers.

Dans cet exemple, nous allons extraire


en mode exclusif, pour que les modifica-
tions soient ensuite récupérées par tout
le monde.
Vous pouvez saisir un commentaire, pour
dire ce que vous allez faire comme modi-
fication sur cette fenêtre.
Saisissez par exemple “Ajout d’une fonc-
tion de recherche”.
Ainsi les autres développeurs auront
connaissance des traitements que vous
êtes en train de coder sur la fenêtre.
Une fois la fenêtre extraite, vous allez
pouvoir créer votre traitement, comme
Le GDS (Gestionnaire de Sources) Pour la modifier, il faut “l’extraire” du vous le faites habituellement.
est disponible depuis les versions GDS. Nous allons donc l’extraire du GDS
10. Avant de détailler certaines fonc- pour ajouter, par exemple, un traitement
tionnalités spécifiques dans les pro- de recherche. Modification de la
chains sujets, voici un rappel rapide Il est possible d’extraire un élément du fenêtre
du fonctionnement du GDS et de ces GDS par :
Le codage (champ, code...) s’effectue
principales fonctionnalités. • Le menu “GDS .. Extraire l’élément”.
comme sur un projet non dépendant du
• La barre d’outils.
GDS.
• En cliquant sur le bouton dans le libellé
rouge. Cependant, il faut avoir à l’esprit que
• Le treeview. toutes les modifications que vous faites
• Ou depuis l’administrateur du GDS sur la fenêtre ne sont pas visibles par les
autres développeurs.
Le GDS ouvre alors la fenêtre d’extraction, Ces modifications ne sont réalisées qu’en
et propose de sélectionner parmi trois local : elles ne sont pas encore dans la base
modes d’extractions. de sources du GDS.
• L’extraction “Exclusive” : Personne ne Si un autre développeur exécute cette
pourra extraire cet élément tant qu’il fenêtre-là, il ne verra pas les champs ni
n’aura pas été réintégré dans la base de le code que vous avez ajouté.
Modification d’une sources Il utilisera la fenêtre qui est actuellement
fenêtre • L’extraction “pour test” : Vous pourrez dans la base de sources.
modifier cet élément, l’IHM, le code …,
Lorsqu'un projet est ajouté au GDS, par Cela permet de faire évoluer une applica-
mais ces modifications ne pourront pas être
défaut, aucun élément n'est extrait. Lors de tion en gardant une version stable dans la
réintégrées dans la base de sources. Cette
l'ouverture d'une fenêtre , la fenêtre n’est base de sources.
extraction est utile, par exemple, pour une
pas extraite du GDS, comme le montre le modification ponctuelle et spécifique pour Une fois les modifications terminées et
libellé rouge en haut. tester une nouvelle fonctionnalité. testées, si vous voulez maintenant qu’elles
Cela veut dire que vous ne pouvez pas • L’extraction “multiple” : Il sera possible soient accessibles aux autres développeurs,
modifier cette fenêtre : vous pouvez la pour d’autres développeurs d’extraire cet il suffit de réintégrer la fenêtre dans la
visualiser, voir le code, l’exécuter, mais élément et de le modifier en parallèle. A base de sources.
PAS la modifier.

44 - TDF TECH 2008 - www.pcsoft.fr


GDS - Versionning
Réintégration d'un Accès par rer ces modifications localement.
Ce fonctionnement (et d’autres options)
élément un nouveau est personnalisable par le responsable du
Pour réintégrer un élément, le plus rapide développeur projet (celui qui dispose du projet en mode
est de cliquer sur le bouton “Réintégrer” “Maître”) dans la fenêtre de description du
Lorsqu’un nouveau développeur souhaite projet (onglet “Groupe”).
de la barre d’outils.
travailler sur un projet intégré au GDS,
il lui suffit d’utiliser l’option “Ouvrir un
Vous pouvez alors ajouter un commentaire
sur ce que vous avez fait sur l’élément. Par
projet depuis le GDS” du menu “Fichier” Fusion de code
de WinDev.
défaut, WinDev propose le commentaire
Il faut alors sélectionner :
(Merge)
saisi lors de l’extraction, vous pouvez alors
• La base de sources, Lorsque vous affichez l’historique d’un élé-
le modifier ou le compléter.
• Le projet concerné, ment, vous pouvez comparer cet élément
Dans la base de sources, tous les commen- • Un répertoire local sur son ordinateur. à une version précédente pour connaître
taires que vous avez saisis sont ajoutés dans les modifications.
l’historique de l’élément. Il est ensuite Tous les éléments du projet sont automa- Il est alors possible de réaliser une fusion
possible de voir exactement ce qui a été tiquement copiés en local. Le nouveau de code pour récupérer un code “perdu”
fait sur un élément, par qui et quand. Bien développeur est automatiquement en mode ou supprimé par erreur par un autre
entendu à tout moment il est également “invité” sur ce projet. Il peut travailler développeur par exemple.
possible de récupérer une version anté- normalement sur ce projet. Il suffit pour cela de :
rieure de l’élément. • Afficher l’historique de l’élément.
Ces informations sont accessibles : • Sélectionner la version de l’élément à
• soit directement par la barre d’outils Synchronisation de comparer.
• soit par l’administrateur du GDS.
projets • Cliquer sur le bouton “Comparer” pour
avoir une visualisation des modifications.
Par défaut, à l’ouverture d’un projet géré • Utiliser les flèches pour reprendre
par le GDS, le GDS avertit des modifications ou reporter du code d’une version vers
qui ont été réalisées sur le projet par les l’autre.
autres développeurs et propose de récupé-

TDF TECH 2008 - www.pcsoft.fr - 45


Politique de réintégration

Définir une politique de réintégration dans


l'outil de versionning et les interactions avec
les centres de contrôles.
• pour être sûr que le projet ait bien été
testé après les modifications effectuées,
l'option "Le projet doit avoir été testé au
moins une fois" doit être cochée.

Notre Astuce
Il est possible d'utiliser la politique de
réintégration comme avertissement, par
exemple pour prévenir le développeur qu'il
n'a pas testé le projet. Pour cela, il suffit
de cocher la case "Ces règles peuvent être
ignorées". De cette façon, le développeur
sera prévenu que la politique de réintégra-
tion n'est pas respectée, mais ne sera pas
bloqué et pourra tout de même réintégrer
les éléments.
Pour utiliser une politique de réintégration
stricte, cette option doit être décochée.

Une politique de réintégration défi-


nit les règles qui doivent être respec-
tées pour que la réintégration d'un
élément dans le GDS soit autorisée.
Cette politique permet d'améliorer
la qualité des projets.

Définition d'une
politique de
réintégration
La politique de réintégration se définit :
•  soit dans WinDev, via le menu "GDS ..
Politique de réintégration",
• soit dans l'administrateur du GDS.

Il suffit de sélectionner les options définis-


sant la politique de réintégration, comme
par exemple :
• pour s'assurer qu'aucune erreur, ni aucun
warning ne sont présents, les options
"Aucune erreur de compilation" et "Aucun
warning de compilation" doivent être
cochées,

46 - TDF TECH 2008 - www.pcsoft.fr


GDS - Versionning
Remarque
Partage d'une peuvent être modifiés dans l'onglet "Droits"
Dans le cadre d'une certification du type
de la fenêtre de propriété du fichier, depuis
politique de l'administrateur du GDS. ISO ou CMMI ou NF sur une application,
réintégration il est nécessaire de cocher au moins les
options suivantes :
Il est possible de partager une politique de
Interaction avec les • L'élément réintégré doit être associé à
réintégration entre plusieurs projets : Centres de Contrôles une tâche ou à un incident,
• soit en partageant dans le GDS le fichier • Un commentaire doit être saisi,
Lors de la réintégration d'un élément (ou
"PolitiqueDeRéintégration.gds", qui est à la • Le projet doit avoir été testé au moins
lors de l'extraction dans le cas du mode
racine du projet dans le GDS, une fois après une modification.
strict), il est possible de définir la tâche
•  soit directement en plaçant le fichier Ces règles font en effet partie des critères
ou l'incident nécessitant la modification
dans le répertoire parent contenant les à respecter pour l'obtention de ce type de
de l'élément (ou justifiant la modification
projets dans le GDS. certification.
du code).
Dans ce cas, un nouveau projet créé dans
Les équipes de développement peuvent
ce répertoire héritera automatiquement de
ainsi mettre à jour plus rapidement leur
cette politique de réintégration.
liste des incidents ou de tâches, ce qui
permet un meilleur suivi.
Notre astuce
Pour que le fichier définissant la politique
de réintégration ne soit modifiable que
par le chef de projet, il suffit de définir
les droits d'accès à ce fichier. Ces droits

TDF TECH 2008 - www.pcsoft.fr - 47


Gestion des droits

Définir les droits sur une base de sources


afin d'en contrôler l'accès.

Lors de la sélection d'un Dans les droits d'écriture, il y a le découpage


répertoire de l'arbores- en droit de :
cence du GDS (réper- • extraire et réintégrer un élément
toire d'un projet ou • ajouter un élément
répertoire autre), il est • renommer un élément
possible d'accéder à la • supprimer un élément
gestion des droits pour • supprimer définitivement un élément.
ce répertoire depuis
le menu contextuel en Suppression
sélectionnant l'option La suppression d'un élément dans le GDS
"Propriétés", puis l'on- peut être une suppression "normale" ou
glet "Droits". définitive.
Par défaut, une suppression ne fait qu'ar-
En cliquant sur le bou- chiver l'élément. C’est-à-dire que l'élément
ton "Ajouter", il est pos- n'apparaît plus dans le projet ni dans le
sible de définir les droits répertoire du GDS, mais il apparaît encore
pour ce répertoire et dans l'onglet “Fichiers supprimés”.
ses sous-répertoires.
L'historique de l'élément est alors conservé.,
Ce qui permet de le restaurer en cas de
La liste des utilisateurs
fausses manipulations.
et des groupes d'utili-
sateurs est automati- En revanche, la suppression définitive sup-
quement gérée par le prime l'élément et son historique : l'élément
GDS en fonction de son ne pourra pas être restauré.
type :
• Pour un GDS utilisant
un serveur Hyper  File Droit sur un élément
C l i e n t / S e r v e u r, i l Il est également possible de définir des
À partir de la version 12, il est pos- s'agit des utilisateurs droits spécifiques sur un élément, une
sible de définir des droits d'accès et des groupes d'utilisateur du serveur fenêtre par exemple.
aux éléments d'un projet contenu Hyper File.
dans un GDS. • Pour un GDS utilisant une base de données Il est ainsi possible de donner des droits sur
Hyper File Classic, il s'agit des utilisateurs un élément d'un projet (un élément partagé
Les droits peuvent se définir sur un
et des groupes d'utilitsateurs des Centres par exemple), sans pour autant donner des
répertoire, c’est-à-dire sur un ou plu-
de Contrôles. droits sur un projet complet. Ce type de
sieurs projets, ou sur des éléments
définition de droits pour être notamment
particuliers : fenêtre, état, requête,
utile lors de l'intégration des nouveaux
image, etc. et ce par développeur Notre Conseil
développeurs ou de stagiaires.
ou groupe de développeurs. Pour une sécurité optimale,nous vous
conseillons d'utiliser le GDS en mode
Les droits se définissent dans l'ad- Client / Serveur.
Pour modifier les droits sur un élément, la
ministrateur du GDS. définition des droits s'effectue également
depuis le menu contextuel en sélectionnant
Type de droits
cette fois l'élément.
Les droits sont séparés en trois groupes :
Mise en œuvre • les droits de lecture Par défaut, un élément hérite des droits du
Pour définir les droits sur une base de • les droits d'écriture répertoire parent, mais il est possible de
sources, il suffit de lancer l'Administrateur • le droit de modifier les droits définir un droit spécifique à cet élément
du GDS (disponible depuis le menu GDS de en cochant l'option "Droits spécifiques".
WinDev, WebDev ou WinDev Mobile). La définition des droits se fait alors sur le
même principe que la définition des droits
sur un répertoire.

48 - TDF TECH 2008 - www.pcsoft.fr


TDF Tech 2008

Apple iPhone

49 - TDF TECH 2008 - www.pcsoft.fr


Développement spécifique iPhone

Accéder en lecture et en écriture aux


données de l'entreprise depuis un iPhone.

restante est en effet utilisé par les menus


Spécifités de l'iPhone
systèmes.
Il existe quelques fonctionnalités liées aux
Pour créer facilement des pages adaptées
spécifités de l'iPhone. Par exemple, il est
à la taille de l'écran, WebDev peut afficher
possible de :
automatiquement la taille de navigation
• Lancer, directement depuis l'application,
dans l'éditeur. Cet affichage est disponible à
un appel téléphonique. Il suffit de passer
partir du menu "Affichage .. Taille de navi-
au bouton l'URL "tel:" suivi du numéro de
gation". WebDev propose alors de choisir
téléphone du client.
le type de matériel sur lequel la page est
destinée à être affichée : un navigateur // Téléphone
classique, un PocketPC, un Smartphone, MAP_TELEPHONE..URL = "tel:" +
CLIENT.Téléphone
un iPhone, un BlackBerry, ...
• Afficher la carte Google Maps de l'adresse
Zoom arrière du client directement depuis sa fiche. L'URL
a passée dans ce cas est : "http://maps.
Par défaut, l'iPhone visualise les sites avec google.com/maps?q=" suivi de l'adresse
un zoom arrière, pour avoir une vue d'en- du client.
semble de la page : la page n'est donc pas
// Géolocalistion
lisible en l'état ou difficilement. MAP_GMAP..URL =...
Pour spécifier à l'iPhone que le site est "http://maps.google.com/maps?q="
spécialement adapté à sa taille, et donc +...
qu'il ne doit pas faire de zoom arrière, il URLEncode(CLIENT.Adresse +...
suffit de configurer la page WebDev. " " + CLIENT.Ville +...
", " CLIENT.Pays)
La définition des paramètres de la page
s'effectue dans la fenêtre de description de Nos astuces
la page (ou du modèle de page) dans l'onglet
• L'iPhone accède au site via GPRS, Edge
"Avancé". Le sous-onglet "Périphériques"
ou la 3G. Dans tous les cas, il est conseillé
WebDev permet la création d'appli- permet alors de spécifier des informa-
de réduire au maximum le poids des pages
tions spécifiques pour le navigateur de
cation pour iPhone. Le développe- du site. Il convient donc d'éviter les images
l'IPhone.
ment d'une application pour iPhone de taille importante, les animations flash,
est identique à tout autre déve- Notre Astuce les vidéos. Ces éléments allourdissent la
loppement Web. Il est cependant Il est conseillé d'utiliser un modèle de page page, qui mettra donc plus de temps à se
charger dans le navigateur.
nécessaire de connaître les quel- "spécial" iPhone. De cette façon, toutes
ques spécifités liées à l'iPhone. les pages basées sur ce modèle seront • Pour que le site s'adapte correctement au
adaptées à l'iPhone. retournement de l'iPhone, il est conseillé
d'utiliser les ancrages sur les champs de
Projet d'illustration la page. Les ancrages
permettent au site de
Le projet "WW_iPhone", livré sur le DVD
s'adapter à toute la
accompagnant ce support de cours, est
largeur disponible.
un exemple de site dédié à une utilisation
sur iPhone.

Taille de l'écran
Une des caractéristiques de l'iPhone est la
taille de son écran : 320x480.
Mais la taille utile, réellement utilisable
pour les applications, est 320x356. La place

50 - TDF TECH 2008 - www.pcsoft.fr


Compatibilité BlackBerry

Apple iPhone
Accéder aux données d'un site WebDev
depuis un BlackBerry

L'utilisation de sites web pour Il est donc conseillé de faire


BlackBerry est surtout réservée à la des pages "en hauteur" afin de
consultation et aux formulaires basi- respecter au mieux le mode de
fonctionnement du navigateur
ques. Le navigateur du BlackBerry
et ainsi disposer d'une mise
est en effet surtout destiné à une
en page plus réaliste et plus
utilisation bas débit, et impose donc adaptée.
certaines contraintes à prendre en
compte lors de la création d'un
site. Editeur de pages
Taille de navigation
Programmation Comme pour les pages d'un
Le navigateur du BlackBerry ne gère pas iPhone, il est possible de définir
toutes les instructions et syntaxes du code dans l'éditeur de pages, la taille
Javascript. Le code navigateur doit donc des pages du périphérique
être limité. ciblé. La définition de la taille
De nombreuses fonctionnalités haut niveau de navigation s'effectue par
proposées par WebDev ne fonctionneront l'option de menu "Visualisation
Champs
donc pas sur BlackBerry comme les fonc- taille navigation" du menu "Affichage" de
tionnalités Ajax. WebDev. Il est alors possible de choisir une Les sites pour BlackBerry ne peuvent avoir
taille de navigation prédéfinie ou une taille qu'un seul bouton par page, et ce bouton
personnalisée. doit être de type "submit" : il renvoie la
Mise en page valeur au serveur.

Le BlackBerry ne transpose pas direcement Boutons spécifiques Les champs gérés par le Black Berry sont
la mise en page définie dans le projet. Les Pour que les boutons aient un fonctionne- restreints. Les champs gérés par le navi-
champs sont automatiquement redimen- ment classique sur un navigateur BlackBery, gateur sont :
sionnés, et alignés les uns en dessous des il est conseillé d'activer le mode "Générer •  certains boutons (selon les options, le
autres, au bord de la page afin de permettre les boutons textes adaptés au BlackBerry" bouton de type "texte" étant conseillé),
une navigation verticale adaptée à ce type depuis la fenêtre de description de la • les libellés,
de terminal. page. • les liens,
• les images,
• les interrupteurs,
• les sélecteurs,
• les listes et combos,
• et les champs de saisis.

TDF TECH 2008 - www.pcsoft.fr - 51


Abonnez-vous !
T80119
Tarif modifiable sans préavis Vos Nom & Prénom : ...........................................................................
Votre Société : ..................................................................................
Bulletin d’abonnement à retourner avec Votre Adresse précise : ........................................................................
votre règlement à : .....................................................................................................
PC SOFT Code Postal : .............................. Ville : .............................................
Lettre du Support Technique Pays : ........................................ Tel : ...............................................
BP 44 408 Adresse Email : .................................................................................
34197 MONTPELLIER Cedex 05
France Je choisis un abonnement “LST PC SOFT” pour : À partir du numéro : ..............

En cas de paiement par carte bancaire,


FRANCE Métropolitaine □ 1 an - 4 N°+ 4 DVD : 159 euros HT; 190,16 euros TTC
vous pouvez nous faxer votre abonne-
□ 2 ans - 8 N°+ 8 DVD : 279 euros HT ; 333,68 euros TTC
ment au :
+33 (0) 4 67 03 07 87 AUTRE (exp. par avion) □ 1 an - 4 N°+ 4 DVD : 175 euros HT
□ 2 ans - 8 N°+ 8 DVD : 299 euros HT
Note : une facture acquittée est systématique-
 Ci joint mon règlement de : ............. Euros TTC ment adressée.

□ Je règle par chèque.        J’autorise PC SOFT à débiter sur ma carte VISA/MasterCard

□□□
            la somme de : ..................... Euros
□ Je règle par Carte Bancaire.      Cryptogramme :

□□□□□□□□□□□□□□□□ □□ □□□□
Numéro complet de la carte : la carte expire : mois année

Signature obligatoire du détenteur de la carte :


Nom du détenteur de la carte :
..........................................................

52 - TDF TECH 2008 - www.pcsoft.fr


TDF Tech 2008

Architecture Logicielle

53 - TDF TECH 2008 - www.pcsoft.fr


Composants Internes

Définir une architecture d'application


modulaire à l'aide de composants internes.

• Indiquer un nom.
•  Sélectionner les éléments (si besoin)
constituant initialement le composant
interne : fenêtres, états, requêtes...
• Sélectionner le ou les points d'entrées du
composant interne, c'est-à-dire les éléments
accessibles du composant internes.
Note : Le composant interne est représenté
par un perso-dossier.

Architecture
Lors de l'intégration d'éléments dans un
composant interne, il est possible que
des erreurs de compilations apparaissent :
il s'agit de l'utilisation des éléments du
composant interne qui ne sont pas définis
en point d'entrée du composant (ce qui est
normal). Dans ce cas, il faut soit :
• Ajouter les éléments concernés dans la
liste des points d'entrées du composant
Un nouveau concept d'architecture Concept interne. Cette solution est la plus rapide
est apparu en version 12 : le concept mais n'est pas forcément intéressante en
Le concept de composant interne offre
des composants internes. terme d'architecture : il est conseillé d'avoir
des spécificités par rapport à celui de
Les composants internes permet- composant "classique" disponibles depuis un nombre limité de point d'entrée sur un
tent de découper et d’organiser plusieurs versions de WinDev : composant interne pour le rendre le plus
des projets en briques logicielles •  Le composant interne est vu dans un autonome possible.
• Modifier le code du projet pour utiliser
indépendantes et autonomes. projet sous la forme d'un perso-dossier.
• Un composant interne est intégré dans un point d'entrée (existant ou nouveau)
du composant interne. C'est bien entendu
Principe un projet avec son code source.
• Un composant interne peut être partagé la méthode préconisée même si cette
Un composant interne, c'est tout simple- avec son code source via le GDS. méthode est plus longue initialement à
ment un ensemble d’éléments : fenêtres, • Un composant interne utilise l'analyse et mettre en œuvre : le composant est alors
états, requêtes, code... qui composent le contexte du projet. plus autonome donc réutilisable.
une fonctionnalité métier.
Le composant interne fait partie intégrante Réalisation Avantages
du projet  : c’est un sous–ensemble du Les composants internes permettent d’ar-
Pour définir un composant interne depuis
projet. Le dialogue entre le composant chitecturer un projet et de le découper en
WinDev, il est possible soit :
interne et le reste du projet se fait via brique logicielle autonome.
• de créer un composant interne de zéro,
des "points d'entrées" définis au niveau du •  Si vous travaillez en équipe, les com-
c'est-à-dire sans élément initial (cas de la
composant interne. posants internes permettent de faire
programmation d'un nouveau module).
Le projet ne peut pas manipuler directe- • de créer un composant interne a posteriori un découpage fonctionnel du projet par
ment un élément du composant interne à partir de certains éléments du projet développeur.
(sauf si c'est un point d'entrée). De ce fait, (découpage d'un projet existant). •  Le composant interne est partageable
il est plus facile de fiabiliser et centraliser avec d'autres projets via le GDS.
Pour ces deux utilisations, le mode opéra-
les traitements utilisés par les projets •  Le code source est disponible avec le
toire reste identique :
exploitant les fonctionnalités des compo- composant interne : la mise au point et les
•  Lancer l'option "Créer un composant
sants internes. développements peuvent être réalisés par
interne" du menu "Atelier .. Composants
tous les développeurs utilisant le composant
internes".
interne (selon les droits bien entendu).

54 - TDF TECH 2008 - www.pcsoft.fr


Modèles, Héritages et surcharges

Architecture Logicielle
Homogénéiser une interface grâce aux
modèles et aux mécanismes d'héritage et de
surcharge.

Exemple
Dans une fenêtre, les différents libellés de
cette fenêtre ont généralement le même
style associé.

Il peut être nécessaire de modifier une


caractéristique d'un champ, par exemple,
la couleur de la police. Le développeur
peut alors soit :
• Modifier le style, mais dans ce cas, tous
les champs associés à ce style sont modifiés
ce qui n'est pas le résultat voulu.
• Créer un nouveau style, mais cette solu-
tion nécessite de maintenir de nombreux
styles selon les variantes : un style juste
pour le gras, un style pour l'italique...
• Dissocier le style, mais cette solution va
faire perdre le lien avec le style. En cas de
modification du style générale (la taille de
le concept d’héritage d’IHM et de la police par exemple), il faudra modifier
Note : La notion d’héritages multiples est
code ainsi que la surcharge passe "à la main" tous les champs dissocier.
également utilisable puisqu’une fenêtre
par les modèles : les modèles de peut hériter de plusieurs modèles à la
fenêtres, les modèles de champs et Et bien, en version 12, le développeur
fois. dispose d'une solution à ce problème : la
les modèles de modèles.
Il est même possible de gérer l'héritage sur surcharge de style.
Depuis WinDev 12, il est également
plusieurs niveaux puisqu’il est possible de Concrètement, le développeur change
possible d'utiliser le concept de sur- créer des modèles de modèles. directement la couleur, et c'est tout.
charge sur les styles pour permettre
la personnalisation d'un style de
façon ponctuelle. Modèle de champ Modification générale d'un style
Les modèles de champs fonctionnent sur Bien entendu, il est toujours possible de
le même principe en ce qui concerne l’hé- modifier de façon globale un style. Il suffit
Concept de modèle ritage et la surcharge. alors d'indiquer à WinDev que la modifica-
Seule différence, ce concept utilise des tion de style effectuée doit être répercutée
Avec WinDev 12, il est possible de créer groupes de champs et non des fenêtres sur l'ensemble du projet en cliquant sur le
une fenêtre à partir d’un modèle de fenê- complètes bouton "Mettre à jour".
tre. La fenêtre hérite alors de toutes les
caractéristiques du modèle : de l’IHM et Dans ce cas, la modification est répercutée
du code.
Héritage de styles sur tous les libellés utilisant style, et même
sur ceux surchargés.
Lorsque le développeur doit faire une modi- L’héritage de styles de WinDev 12 permet
fication concernant toutes les fenêtres, une gestion des styles vraiment facilitée et
il lui suffit de le faire dans le modèle, vient compléter les simplifications appor-
donc une seule fois. Cette modification tées aux équipes de développement par
est ensuite automatiquement répercutée les concepts de modèles, d'héritage et de
sur les fenêtres. surcharge.
Si une modification ne doit être effec-
tuée que pour une fenêtre donnée, le
développeur à la possibilité de surcharger
uniquement le ou les éléments concer-
nés.

TDF TECH 2008 - www.pcsoft.fr - 55


Références

Principales références (hors documentation)


sur l'utilisation des modèles et des concepts
de surcharge et d'héritage d'interface.

Support de cours "TDF Tech 2007"


p. 56 : Utilisation des modèles de fenêtres.
p. 57 : Surcharge d'IHM.
p.58 - p.59 : Principe et fonctionnement des modèles de champs.

Le support de cours du "TDF Tech 2007" est présent sur le DVD du


TDF Tech 2008.

LST 69
p. 22 - p.23 : Utilisation des modèles (fenêtres, pages ou champs)
et du mécanisme de surcharge.

LST 71
p. 16 - p.17 : Code générique : Associer une classe à un modèle
pour gérer la surcharge de procédures.

56 - TDF TECH 2008 - www.pcsoft.fr


TDF Tech 2008

Développement RAD

57 - TDF TECH 2008 - www.pcsoft.fr


Développement rapide

3 astuces pour exploiter au mieux les


fonctionnalités du RAD.

Par exemple, une rubrique "Code Postal"


va pouvoir être associée à différents para-
mètres :
• Un champ de saisie.
• Une saisie de type "texte".
• Un nombre de caractères à saisir.
• Un cadrage à gauche.
• Un état visible et en saisie.
• etc.

Ensuite, dans l'onglet "Détail" des informa-


tions partagées, il est possible d'indiquer
des fonctionnalités avancées comme :
• l'historique des saisies
• L'activation de la saisie obligatoire
• ...
Et ainsi de suite pour les différents onglets,
y compris le choix du style.

Et c'est ce type de champ "prédécrit" que le


RAD générera pour la rubrique "Code Postal"
et non un champ de saisie "de base".

Génération de champs
Dans l'onglet "Avancé", il est possible de
spécifier, pour chaque rubrique, ce que
Le RAD (Ra pid Applica tion SQL Server, MySQL, Informix, DB2, Sybase,
le RAD doit générer.
Développement) de WinDev 12 a Progress, Access, dBase, FoxPro et bien
sensiblement évolué. Le code et entendu Hyper File.
En effet, certaines rubriques ne doivent
les éléments générés utilisent les être générées que dans certains types
Informations partagées
dernières nouveautés de la version de fenêtres. Par exemple, une rubrique
Par défaut, pour chaque rubrique des
12, un code simplifié et le concept "Commentaires" multi-lignes n'aura pas
fichiers de l'analyse, le RAD va générer
de pattern permettent de disposer un champ.
d'intérêt dans un champ table.
d'applications différentes et spéci- Ce champ dispose d'un ensemble de pro-
fiques graphiquement. Il est donc possible de définir dans cet
priétés : type de champ, état initial, etc.
onglet, si le RAD doit générer pour cette
qui peuvent être propre à son contenu.
rubrique :
Les informations partagées permettent de
Paramétrage de centraliser ce type d'information et sont
• Une colonne dans les tables,
• Un champ dans les fiches,
l'analyse donc utilisées par le RAD.
• Un champ dans les états.
Le RAD de WinDev, WebDev et WinDev Mobile Pour définir les informations partagées cor-
se base sur une analyse (la structure de la Nous vous conseillons de passer un peu
respondant à une rubrique, il suffit de :
base de données) pour générer une pre- de temps à renseigner correctement ces
• Ouvrir l'analyse.
mière version de projet utilisable. informations.. Le temps investi à bien
• Sélectionner un fichier de l'analyse.
paramétrer l’analyse sera largement renta-
Il est donc important de prendre le temps • Ouvrir la description du fichier.
bilisé dès la première génération RAD.
nécessaire à la description de cette analyse
pour obtenir une génération adaptée. Lors d'une sélection d'une rubrique, le
développeur a accès, en bas de la fenêtre,
Rappel : La base de données peut utiliser aux informations partagées.
n'importe quelle base de données : Oracle,

58 - TDF TECH 2008 - www.pcsoft.fr


Développement RAD
Groupware Vous retrouverez plus de détail sur le Bien entendu, lors de cet ajout, les modi-
groupware utilisateur et le paramétrage des fications de code et d'interface réalisées
utilisateur et LDAP droits par le superviseur dans la LST 71. par le développeur sont conservées.
Lors de la génération d'un projet par le RAD,
WinDev propose d'intégrer une gestion des Il est même possible de demander au RAD
utilisateurs : le Groupware Utilisateur.
Modification de de regénérer des éléments du projet lors de
Par défaut, cette gestion des utilisateurs l'analyse l'ajout de fichiers dans l'analyse : il suffit de
utilise une base de données Hyper File pour relancer l'assistant du "RAD projet".
Une fois la première génération de l'appli-
stocker les informations concernant :
cation par le RAD, le fonctionnement du
• La liste des utilisateurs et des groupes
RAD n'est pas terminé.
d'utilisateurs.
• Les droits des utilisateurs. En effet, lors d'une modification d'ana-
lyse, le RAD de la version 12 vous propose
Il est cependant possible d'utiliser de synchroniser automatiquement votre
un annuaire LDAP (par exemple l'Ac- application avec la base de données, tout
tive  Directory d'un réseau Windows) au en conservant vos éventuelles modifica-
lieu de la base du Groupware Utilisateur tions.
par défaut : cela évite la multiplication Par exemple, lors de l'ajout d'une rubrique
des logins et des mots de passe. à un fichier, lors de la génération de l'ana-
lyse, WinDev va détecter que le projet n'est
Pour indiquer que le Groupware Utilisateur plus en phase avec l'analyse et va proposer
doit utiliser un annuaire LDAP, il suffit de d'actualiser les éléments concernés en
cocher l'option "Utiliser un annuaire LDAP ajoutant les champs correspondant
pour l'authentification des utilisateurs" du
menu "Atelier .. Paramétrer le Groupware
Utilisateur".
Les paramètres de connexion au serveur
LDAP sont spécifiés dans l’onglet "LDAP".

Remarque
Il y a une coche "Sans gestion des droits"
dans la fenêtre de paramétrage de LDAP.
En effet, l’annuaire LDAP gère l'authen-
tification des utilisateurs, pas les droits
des utilisateurs.
Si vous ne voulez gérer que l’authentifica-
tion et pas des droits spécifiques par utili-
sateur, il suffit de cocher cette case !

Gestion de droits
Lors de l'utilisation d'un annuaire LDAP,
l’authentification s’appuiera sur LDAP et
la gestion des droits s’appuiera sur une
base de données Hyper File.

Le type de la base et ses paramètres sont


définis dans l'onglet "Fichier", mais peuvent
être définis par programmation.
Lors de la génération d'analyse, WinDev propose de créer les
champs correspondants aux nouvelles rubriques.

TDF TECH 2008 - www.pcsoft.fr - 59


Abonnez-vous !
T80119
Tarif modifiable sans préavis Vos Nom & Prénom : ...........................................................................
Votre Société : ..................................................................................
Bulletin d’abonnement à retourner avec Votre Adresse précise : ........................................................................
votre règlement à : .....................................................................................................
PC SOFT Code Postal : .............................. Ville : .............................................
Lettre du Support Technique Pays : ........................................ Tel : ...............................................
BP 44 408 Adresse Email : .................................................................................
34197 MONTPELLIER Cedex 05
France Je choisis un abonnement “LST PC SOFT” pour : À partir du numéro : ..............

En cas de paiement par carte bancaire,


FRANCE Métropolitaine □ 1 an - 4 N°+ 4 DVD : 159 euros HT; 190,16 euros TTC
vous pouvez nous faxer votre abonne-
□ 2 ans - 8 N°+ 8 DVD : 279 euros HT ; 333,68 euros TTC
ment au :
+33 (0) 4 67 03 07 87 AUTRE (exp. par avion) □ 1 an - 4 N°+ 4 DVD : 175 euros HT
□ 2 ans - 8 N°+ 8 DVD : 299 euros HT
Note : une facture acquittée est systématique-
 Ci joint mon règlement de : ............. Euros TTC ment adressée.

□ Je règle par chèque.        J’autorise PC SOFT à débiter sur ma carte VISA/MasterCard

□□□
            la somme de : ..................... Euros
□ Je règle par Carte Bancaire.      Cryptogramme :

□□□□□□□□□□□□□□□□ □□ □□□□
Numéro complet de la carte : la carte expire : mois année

Signature obligatoire du détenteur de la carte :


Nom du détenteur de la carte :
..........................................................

60 - TDF TECH 2008 - www.pcsoft.fr


TDF Tech 2008

Etats élaborés

61 - TDF TECH 2008 - www.pcsoft.fr


États & PDF

Utiliser un fichier PDF comme base d'un état


pré-rempli.

Impression de l'état
au format PDF
Pour imprimer un état dans un fichier PDF,
il suffit d'utiliser la fonction WLangage
iAperçu, en précisant comme paramètre
iPDF ou iPDFGénérique.
iAperçu(iPDFGénérique)

Notre conseil
Il est conseillé d'utiliser le paramètre
iPDFGénérique : les paramètres de géné-
ration seront alors des paramètres stan-
dards, et non des paramètres spécifiques
à l'imprimante installée.
Ce mode de génération garantit un résultat
identique quel que soit le poste utilisa-
teur.

Paramétrage du PDF
généré
Lors de l'utilisation d'un état, il peut Remplissage de
être utile de préremplir automati- Il est bien entendu possible de générer un
quement certaines informations :
l'état fichier PDF à partir de cet état, même s'il
coordonnées du client dans un Pour préremplir (ou remplir) un état, et que contient déjà un PDF.
les informations préremplies puissent être Le fichier PDF alors généré peut être para-
bon de commande, informations
modifiées par l'utilisateur final, il suffit : métré, à l'aide de la fonction WLangage
relatives à un administré dans un
• De positionner des champs de saisie dans iParamètrePDF. Cette fonction doit être
formulaire administratif, ... appelée avant la fonction iImprimeEtat.
l'état, dans les espaces prévus pour afficher
WinDev permet de créer des for- les informations générées.
mulaires PDF personnalisés, avec • D'indiquer quelles données doivent être Voici un exemple de paramétrage per-
champs de saisie. affichées dans les champs. mettant de :
• D'utiliser des champs "rubriques" classiques •  Protéger le fichier PDF généré par un
Note : WinDev permet également mot de passe.
pour les informations "fixes" de l'état.
d'afficher des fichiers PDF dans • Générer un fichier PDF en qualité opti-
une application grâce au champ Rappel : pour remplir un champ de saisie male.
image. avec une valeur par défaut, il est possible iParamètrePDF("mdp", "", iQua-
d'utiliser le mot-clé MoiMême du WLangage litéMaximale)
dans le code d'initialisation du champ de
Définition de l'état saisie.
L'utilisation d'un fichier PDF comme fond
d'état est très simple. Il suffit de créer un
nouvel état de type "état sur formulaire",
en spécifiant comme image de fond le
fichier PDF préalablement créé.
Si le fichier PDF contient plusieurs pages,
le PDF créé contiendra alors une page par
page du fichier PDF.

62 - TDF TECH 2008 - www.pcsoft.fr


Paysage ou portrait ?

Etats élaborés
Réaliser des états mixant des pages à
imprimer en mode paysage et d'autres en
mode portrait.
Ce code doit être saisi dans le code du bloc
"Bas de page", dans le paragraphe "après
impression" et va provoquer l'impression des
états correspondant aux pages suivantes
de l'état. Par exemple :
iImprimeEtat(ETAT_Schema)
iImprimeEtat(ETAT_CGV)
Lors d'une impression ou d'un aperçu avant
impression, WinDev utilisera les informa-
tions d'orientation des différents états pour
les afficher ou les imprimer.

FAA dans les états


Dans la fenêtre d'aperçu avant impression des
états, WinDev propose des Fonctionnalités
Automatiques des Applications (FAA) :
• Une barre d'export permettant d'exporter
automatiquement l'état vers Word, Excel,
XML, HTML, PDF, Email et Email PDF.
• Une recherche de texte dans l'état.

Pour utiliser cette recherche, il suffit


de :
• Saisir le texte à recherche dans le champ
de saisie,
Dans un état, il est possible d'avoir Par exemple, un état complexe peut être • Indiquer si la recherche doit être effec-
des pages ayant des orientations composé de trois états : tuée sur le mot entier,
différentes. Par exemple, un schéma •  Un état correspondant au détail d'un • Indiquer si la recherche doit respecter
devis, en mode portrait. la casse,
en mode paysage parmi des pages
•  Un état représentant les produits du • Naviguer entre les différents éléments
en mode portrait.
devis sous forme d'un schéma, en mode trouvés par les boutons "Suivant" et
WinDev permet de modifier l'orien- paysage "Précédent". Les éléments trouvés sont
tation des états, directement en • Un état indiquant conditions générales automatiquement surlignés en vert dans
cours d'impression. de ventes, en mode portrait. le texte.

Une fois les différents états préparés, il


Réalisation d'un état reste à définir l'état principal tel qu'il sera Exemples livrés avec
multi-orientation vu et utilisé.
WinDev
La solution la plus rapide est d'ouvrir l'état
Il convient tout d'abord de créer les états qui s'affichera en premier, puis d'insérer une WinDev est livré en standard avec plusieurs
qui seront utilisés, en spécifiant pour chacun ligne de code WLangage pour chaque état exemples manipulant des états : WD États,
son orientation : portrait ou paysage. à imprimer à la suite de cet état. WD EtatsClicables, WD États avances.

TDF TECH 2008 - www.pcsoft.fr - 63


Etats & Requêtes

Configurer une application pour permettre


la personnalisation de certains états (ou
requêtes) par les utilisateurs.

Le logiciel “Etats et Requêtes” per- depuis l’application, il est nécessaire que Paramétrage des états et des
met à chaque utilisateur de modifier le développeur le paramètre dans le pro- requêtes
lui-même l’état et de l’adapter à jet. Pour des raisons évidentes de sécurité, par
ses propres besoins sans dispo- Paramétrage du projet défaut, un état n’est pas modifiable sous
ser de WinDev sur sa machine. le logiciel “Etats et Requêtes”.
Tout d’abord, il faut que le projet autorise
Le développeur n’a pas à prévoir Pour permettre à l’utilisateur de modifier
l’utilisation du logiciel “Etats et Requêtes”.
cet état, il faut explicitement l’indiquer
d’états différents pour tous les cas Cette autorisation est tout simplement
dans la fenêtre de description de l’état
de figure des besoins utilisateurs. définie dans la fenêtre de description du
(onglet “Détail”).
projet, dans l’onglet “Charte”.
Il est alors possible de choisir si seule l’in-
Il suffit en effet que l’option “Autoriser
Fonctionnement le lancement de “Etats et Requêtes” soit
terface est modifiable ou si l’interface et
le code sont modifiables.
Pour modifier un état, il suffit à l’utili- cochée. Si vous ne souhaitez pas que vos
Pour les requêtes, c’est le même principe. Il
sateur de cliquer sur le bouton “Modifier utilisateurs aient accès à “Etats et requê-
faut indiquer explicitement que la requête
l’état” dans la fenêtre d’aperçu avant tes” sur ce projet, il suffit de décocher
est modifiable dans la fenêtre de descrip-
impression. cette option.
tion de la requête (Bouton Avancé, onglet
Le logiciel “Etats et Requêtes” se lance “Etats et Requêtes”).
Paramétrage de l’analyse
automatiquement et charge l’état à modi-
Par défaut, tous les fichiers et toutes leurs
fier. L’utilisateur se trouve alors dans le Automatisation
rubriques de l’analyse sont visibles sous le
logiciel “Etats et Requêtes” (livré en stan- Si le projet contient 200 états et 300
logiciel  “Etats et Requêtes”. L’utilisateur
dard avec WinDev et dont la diffusion est requêtes, le développeur ne pas à effectuer
final peut donc utiliser ces données dans ses
libre avec les applications WinDev). cette opération pour chaque état et cha-
états et ses requêtes personnalisées.
L’utilisateur peut alors ajouter des champs que requête. Il suffit de lancer l’assistant
Si une application contient des données d’améliorations du projet qui se trouve
ou réaliser les modifications qu’il souhaite
sensibles, ou si des rubriques sont destinées dans le menu “Projet .. Performance et
comme l’aurait fait le développeur de l’ap-
à des fins uniquement de programmation Améliorations ..Assistant d’améliorations
plication depuis l’éditeur d’états WinDev.
(par exemple un flag de programmation), il de projet”.
Une fois la ou les modifications effectué(s),
peut être nécessaire de rendre ces fichiers
l’utilisateur peut tester ces modifications Dans cet assistant, il est possible de cocher
et/ou ces rubriques “invisibles” sous le
par un “Go” de l’état. les états et les requêtes à mettre à dis-
logiciel “Etats et Requêtes”.
Lorsque l’état est modifié, le clic sur le position de vos utilisateurs. Vous pouvez
Par exemple, dasns une application, pour également spécifier ici si l’état peut être
bouton “Imprimer” de notre application
rendre le fichier “A” invisible aux utilisa- modifié au niveau interface et/ou code.
exemple exécute désormais l’état modifié
teurs, il suffit de :
depuis “Etats et Requêtes”.
• Ouvrir l’analyse du projet, Exploitation depuis une
Dans “Etats et requêtes”, l’utilisateur peut
• Ouvrir la fenêtre de description du fichier application
également :
(accessible par le menu contextuel ou
• Créer des états de toutes pièces, La fonction du WLangage fRepEtatsEtRe-
depuis le menu “Structure de fichier ..
• Modifier une requête créée par le quêtes retourne le chemin du répertoire
Description),
développeur, où sont stockés les états et les requêtes
• Sélectionner l’onglet “Info” de cette
• Créer une requête de toutes pièces. créés ou modifiés par le logiciel Etats et
fenêtre de description,
Requêtes.
Remarque : il est possible d’exécuter “Etats • Décocher l’option “Visible par l’utilisateur
et requêtes” depuis une application WinDev final (logiciel Etats et Requêtes)”.
par le menu “?”.
Ainsi, le fichier “A” et toutes ses rubriques
sont maintenant invisibles sous “Etats et
Intégration dans une Requêtes”. Sur ce principe, il est possible
de rendre invisible une ou plusieurs rubri-
application ques d’un fichier, sans rendre le fichier lui
Pour que les états et requêtes soient même invisible.
accessibles en création et modification

64 - TDF TECH 2008 - www.pcsoft.fr


TDF Tech 2008

Bases de Données

65 - TDF TECH 2008 - www.pcsoft.fr


Serveur Hyper File

Réaliser une sauvegarde à chaud d'une base


de données Hyper File et utiliser les tâches
planifiées du moteur Hyper File SQL.
qui sera utilisé pour la sauvegarde. Il est
également possible de choisir des fichiers
provenant de différentes bases de données
du serveur.

Sauvegarde par une


tâche planifiée
La création d'une tâche planifiée sur un
serveur Hyper File peut s'effectuer :
Par programmation, avec la fonction
Wlangage HAjouteTâche et la structure
HTâchePlanifiée.
Directement depuis le Centre de Contrôle
Hyper File, par simple clic sur le bouton
"Créer" de l'onglet "Tâches planifiées".
L'assistant permet de définir précisément
la planification de la tâche : mois, jours,
horaires, ainsi que les paramètres de la
sauvegarde.

Remarque
Les tâches planifiées sur un serveur Hyper
File permettent de programmer automa-
tiquement :
La sauvegarde de données,quelle Sauvegarde par • la sauvegarde des données,
que soit l'application, est un élé- • l'exécution d'une procédure stockée.
ment important à prévoir dans la
programmation
vie d'une application. Il suffit d'utiliser la fonction Wlangage Notre astuce
Mais si les données doivent être HSauvegarde directement depuis une Dans le cas d'une base de données de taille
accessibles en permanence (cas application. Pour effectuer une sauve- importante, la planification d'une sau-
d'un site web par exemple), la pro- garde, l'utilisateur doit posséder le droit vegarde régulière n'est pas une solution
de faire des sauvegardes. Ce droit est adéquate. Il est préférable de sauvegarder
blématique est toute autre.
modifiable par programmation (fonction entièrement la base moins régulièrement
Wlangage HModifieDroitServeur) ou depuis (tous les semestres, tous les ans,...), de
Principe le Centre de Contrôle Hyper File, dans journaler la base et de sauvegarder uni-
WinDev répond à cette problématique avec l'onglet "Droits". quement les journaux. En cas de perte
la sauvegarde à chaud. La sauvegarde à de données, il suffit alors de rejouer les
chaud permet aux applications d'accéder Sauvegarde depuis journaux sur la base sauvegardée.
à la base de données, en lecture et en
écriture, sans blocage, pendant que la
le Centre de Évidemment, les jounaux doivent être
purgés après chaque sauvegarde, pour
sauvegarde est effectuée. Contrôle Hyper File contenir les opérations effectuées depuis
La définition d'une sauvegarde à chaud Il suffit, dans le Centre de Contrôle Hyper cette sauvegarde uniquement.
peut se faire : File, de sélectionner le serveur Hyper Retrouvez plus de détail sur le fonctionne-
• Par programmation. File à sauvegarder, et de cliquer sur le ment et la mise en œuvre du mécanisme
• Par le Centre de Contrôle Hyper File. bouton "Faire une sauvegarde" de l'on- de journalisation dans le support de cours
• Par une tâche planifiée du serveur Hyper glet "Sauvegardes". L'assistant permet de du TDF Tech 2006.
File. sélectionner la ou les bases de données
à sauvegarder, et de choisir le répertoire

66 - TDF TECH 2008 - www.pcsoft.fr


Accès natif

Bases de Données
Accéder à une Base de Données Tierce
depuis une application WinDev.

Pour accéder à une base tierce, il d'utilisateur, le mot de passe éventuel, la perso-dossier : la connexion de tous les
est possible soit de : machine serveur où la base est localisée fichiers contenus dans le perso-dossier
• Accéder à cette base via ODBC et le nom de la base de données. est modifiée.
•  Par l'analyse : il suffit de cliquer sur Si plusieurs types de bases de données sont
ou OLE DB,
le menu "Analyse .. Connexions", et de utilisés, cette solution évite d'utiliser la
• Utiliser un accès natif.
suivre l'assistant de paramétrage de la fonction HChangeConnexion sur chaque
L'utilisation d'un accès natif per- connexion. fichier.
met d'utiliser les bases de données
Tierce comme s'il s'agissait d'une Notre astuce
base de données Hyper File, tout Il est possible de stocker ces paramètres
en permettant l'utilisation de fonc- dans un fichier de configuration .ini par
tionnalités spécifiques de ces bases exemple. De cette façon, si les informations
de connexions évoluent (changement de
tierces.
machine serveur par exemple), il suffit
simplement de modifier les informations
Accès natif du fichier de configuration.
Évidemment, pour plus de sécurité, les
Un accès natif permet de disposer des ordres
mots de passe présents dans le fichier de
fonctions Wlangage Hxxx : HLitPremier,
configuration doivent être cryptés.
HLitSuivant, ... sur Oracle, SQL Server,
etc. L'assistant de définition de connexion génère
le code de description de la connexion, ainsi
Évidemment, il est également possible
que l'ouverture de cette connexion par la
d'utiliser des requêtes SQL définies soit
fonction WLangage HOuvreConnexion.
par l'éditeur de requêtes, soit en saisissant
directement le code SQL de la requête.
Notre astuce
L'accès natif permet également de disposer Pour une meilleure réutilisabilité, il est
d'un code source unique, quelle que soit conseillé de définir les connexions par
la base de données accédée. programmation.
L'utilisation de l'accès natif permet donc Attention : Cette méthode ne permet pas
de manipuler une base tierce de la même d'utiliser le mode automatique de la répli-
façon qu'une base Hyper File, avec les cation assistée.
mêmes ordres de programmation.
Il existe des accès natifs pour les bases: Modification d'une
Oracle, SQL Server, AS 400, Progress, DB2,
Informix, Sybase, SQL Server, etc. connexion
Pour associer une connexion aux fichiers
de l'analyse, il suffit d'utiliser la fonction
Définition d'une Wlangage HChangeConnexion.
connexion Il est possible de spécifier une connexion
Pour accéder à une base de données unique pour tous les fichiers, ou d'indiquer
tierce, il suffit de définir les paramètres pour chaque fichier une connexion donnée,
de connexion à cette base. par exemple si certains fichiers sont pré-
sents sur un serveur Oracle et d'autres sur
Une nouvelle connexion peut être définie
un serveur Hyper File.
soit :
• Par programmation, en utilisant la fonc-
Notre astuce
tion WLangage HDécritConnexion et en
Il est possible de créer des perso-dossiers
suivant l'assistant de paramétrage de la
dans l'analyse, et d'utiliser la fonction
connexion : il suffit alors de préciser le nom
HChangeConnexion directement sur un

TDF TECH 2008 - www.pcsoft.fr - 67


Accès distant Mobile

Accéder à une base de données tierce


depuis un terminal mobile par RPC ou AWP.

Pour accéder à une base tierce mobile les paramètres de connexion à la accéder à distance à des données lorsque je
depuis une application WinDev base tierce, ne peux pas héberger de Services Web ?”
Mobile, il est possible soit de : • Associer chaque fichier de l'analyse à La réponse est bien sûr en utilisant le mode
cette connexion, AWP de WebDev.
• Utiliser le serveur RPC fournit en
• Lancer le serveur RPC de WinDev Mobile
standard avec WinDev Mobile,
sur une machine accessible à distance,
• Utiliser une page AWP créée avec • Indiquer au serveur RPC où est située la
Fonctionnement
WebDev, base de données à laquelle il doit accéder, Le principe est de créer une page sans inter-
• Programmer l'accès (avec des et quelles applications mobiles sont auto- face (sans champ) permettant de récupérer
sockets par exemple). risées à appeler le serveur. ou d'effectuer une opération sur la base de
• Ajouter, dans le code d'initialisation des données (à l'aide d'un accès OLEDB ou d'un
Rappel : Un terminal mobile peut applications mobiles l'appel à la fonction accès natif par exemple).
tout à fait accéder à une base de Wlangage, HConnecteAccèsDistant, en En effet, cette page se comporte comme
données Hyper File Client/Serveur précisant en paramètre l'adresse IP de la un Service Web, c’est-à-dire qu’elle attend
de façon native. machine où le serveur RPC est installé. des paramètres en entrée, et en retour elle
renvoie une information (une liste d'infor-
Les accès à la base de données tierce par mations extraites de la base de données
Accès par serveur les ordres Hxx, ou par une requête SQL, par exemple).
seront automatiquement reroutés vers le
RPC serveur RPC et agiront de façon transpa-
rente pour l'utilisateur. Réalisation
Un serveur RPC sert de relais entre une
Le code “important” de cette page va
application et une base de données.
se trouver dans son code d’ouverture (le
L'application mobile demande au serveur Notre astuce code d'initialisation du projet contenant le
RPC d'exécuter une commande sur la base Pour des raisons de performances, privilé- code de la connexion à la base de données
de données et de lui renvoyer le résultat. La giez l'utilisation des requêtes. souhaitée). On peut alors avoir un code de
commande peut être une requête SQL, ou la forme suivante :
un ordre Hxx (HLitPremier, HLitSuivant,
sParamètreNom est une chaîne
...). Une page AWP en sChaineRetour est une chaîne
Le paramétrage de l'application se déroule tant que Service Web // Récupération du paramètre
en 5 étapes : // passé à la page
Ce mode de fonctionnement répond en fait
•  Définir dans l'analyse de l'application sParamètreNom = ...
à la problématique suivante : “Comment PageParamètre("NOM")

68 - TDF TECH 2008 - www.pcsoft.fr


Bases de Données
qui lui est de la forme :
// Recherche des clients dont // Demande à la page AWP
// le nom 216<TAB>BANQUEN<TAB>1<TAB>ABBOU HTTPRequête("http://local-
// commence par le paramètre <RC>622<TAB>TRILOGET<TAB>2<TAB host/ANNUAIREAWP_WEB/FR/PAGE_
HLitRecherche(CarnetAD,Nom,... >ABONDANCE<RC> RechercheClient.awp?NOM=T")
sParamètreNom)
Vous pouvez alors constater que ce code Ensuite, il suffit de récupérer le résultat
TANTQUE HTrouve(CarnetAD)
source est très lisible et facilement acces- grâce à la fonction HttpDonneRésultat.
// Récupération des sible par une application. Il contient un La fonction HTTPDonneRésultat permet
// informations sur client par ligne, avec les informations du de récupérer deux choses :
// le client
client séparées par des tabulations. • L’en-tête de la page : c’est dans l’en-
// Dans la chaîne qui va
// être affichée Nous allons maintenant voir comment tête que sont contenues les informa-
sChaineRetour +=... exploiter cette page depuis une applica- tions concernant la page en elle-même.
HRécupèreEnregistrement(... tion WinDev ou WinDev Mobile. Par exemple c’est dans l’en-tête que l’on
CarnetAD) + RC sait si la page existe encore ou non.
// Passe au client suivant • Le contenu de la page : c’est le code
HLitSuivant(CarnetAD,Nom) Exploitation par une applica- HTML de la page.
FIN tion WinDev Bien entendu, ce que nous voulons ici, c’est
// On affiche la chaîne A partir d’une page ainsi conçue, il est récupérer le code source HTML de la page.
ChaîneAffiche(sChaineRetour) extrêmement facile de la traiter et d’in- Le code devient :
tégrer ces résultats dans une application
Analysons rapidement le traitement de // Récupération du résultat
WinDev Mobile.
cette page : ListeClient =...
• Récupération du paramètre passé à la Ce que nous allons faire dans cette fenêtre, HTTPDonneRésultat(HTTPRésultat)
page avec la fonction PageParamètre, c’est tout simplement remplir la table avec 2. Deuxième étape :
c’est la lettre sur laquelle devra se faire les données récupérées sur la page AWP. Analyse du résultat
la recherche 1. Première étape : Nous l’avons vu tout à l’heure, le code
• Une recherche par HLitRecherche dans Envoi de la requête source de la page est formaté : un client
la base de données, Il faut tout d’abord envoyer la requête au par ligne avec un retour chariot (RC).
• Le parcours du fichier par une bou- site avec le paramètre qui sera la lettre Il suffit donc de parcourir la variable
cle TantQue et l’affectation dans une ou la chaîne de caractères des clients à ListeClient pour récupérer les informa-
chaîne, rechercher. Ce paramètre est saisi dans tions d’un client.
• Le renvoi du résultat par la fonction le champ de recherche de la fenêtre. Le
POUR TOUTE CHAINE UnClient DE
ChaineAffiche. code de cette requête se trouve dans le
ListeClient
code du bouton “Rechercher”.
La fonction ChaîneAffiche permet d’affi- SEPAREE PAR RC
Pour réaliser cette requête, il suffit TableAjoute(...
cher dans une page HTML le résultat de la
d’utiliser la fonction HTTPRequête et TABLE_Table1,UnClient)
recherche, c’est-à-dire la liste des clients
de construire l’URL qui sera composée de FIN
commençant par la lettre.
l’adresse de la page (que vous avez conser-
La page affichée dans un navigateur n’est vée) et du paramètre de recherche.
alors pas très lisible, mais ce n’est pas ce Les paramètres sont séparés de l’adresse
qui est important ici, ce qui nous intéresse, de la page par un point d’interrogation, le
c’est le code source HTML de cette page code est alors de la forme :

TDF TECH 2008 - www.pcsoft.fr - 69


Procédures Stockées

Mettre en place et utilisation de procédures


stockées sur une base de données
Hyper File. Rappels.

Une procédure stockée est un traite- • Renommez votre procédure, par exemple
nNbProduit est un entier
ment, une procédure exécutée sur “MaProcédureStockée”.
nNbProduit = ...
le poste serveur de la base de don- • Écrivez le code de votre procédure.
HExécuteProcédure(...
• Sauvegardez votre analyse et lancez la
nées (sur le serveur Hyper File). MaConnexion, ...
génération de votre analyse. “MaProcédureStockée”)
Voici un bref rappel sur l'utilisation
• Suivez ensuite l’assistant de modifica-
des procédures stockées (issu du
TDF Tech 2007).
tion automatique des fichiers de données.
Cet assistant vous permettra de mettre à
Remarques
jour votre collection de procédures stoc- Lors de la modification d’une procédure
kées sur le serveur. (Note  : la fonction stockée, si le prototype de la procédure n’a
Avantages d’une WLangage HMiseAJourCollection() permet pas été modifié, il suffit simplement de faire
procédure stockée de forcer par programmation la mise à jour appel à la fonction HMiseAJourCollection.
des collections de procédures stockées de Il n’est pas nécessaire de régénérer l’ana-
• Pour les traitements complexes avec
votre analyse) lyse.
beaucoup d’accès fichiers : il n’y aura
Les procédures stockées peuvent être appe-
qu’un seul aller-retour entre le poste client
lées depuis des requêtes.
et le serveur. Les performances sont alors
Comment utiliser une
accrues.
• Risques liés au réseau (déconnexion, ...) procédure stockée ? Si vous devez passer en paramètre à une
procédure stockée un tableau, une struc-
limités : le traitement s’effectue du début Pour appeler une procédure stoc- ture ou un objet, utilisez les fonctions
à la fin sur le serveur. Un traitement ne kée, il suffit d’utiliser la fonction WLangage Sérialise et Désérialise pour
pourra donc pas être interrompu par une HExécuteProcédure. transformer l’objet, la structure ou le
déconnexion du réseau. Cette fonction WLangage attend en para- tableau en un type simple : le buffer.
• Les procédures stockées s’écrivent en mètres :
WLangage. • le nom de la connexion au serveur Hyper Pensez aussi à bien regénérer l’analyse
File, quand vous avez fini, pour remettre à jour
• le nom de la procédure stockée,
Comment créer une • les paramètres éventuels attendus par
la procédure stockée sur le serveur .

procédure stockée ? la procédure stockée.

Les procédures stockées sont des procé-


Voici un exemple d'appel d'une procédure
dures WLangage standards. Elles peuvent
stockée depuis un traitement WLangage
attendre des paramètres et renvoyer des
(dans cet exemple, la procédure stockée
valeurs.
renvoie un entier en résultat).
Les procédures stockées possèdent leurs
propres variables, elles ont leur propre
contexte.
Certaines fonctions WLangage ne sont pas
pertinentes en procédure stockée. Les
fonctions de dialogue, d’ouverture de fenê-
tre ou d’impressions... sont par exemple
interdites en procédure stockée.

Pour créer une procédure stockée :


• Ouvrez l’analyse de votre projet
• Dans le treeview de l’analyse, effectuez LST 68
un clic droit puis sélectionnez « Nouvelle
collection de procédures » Retrouvez un exemple complet ainsi que les
explications techniques correspondantes dans
• Effectuez de nouveau un clic droit et
la LST 68.
sélectionnez « Nouvelle procédure glo-
bale ».

70 - TDF TECH 2008 - www.pcsoft.fr


TDF Tech 2008

Déboggage et mise au point

71 - TDF TECH 2008 - www.pcsoft.fr


Débogage

Déboguer des applications distantes,des


procédures stockées ou des triggers serveur

erreurs fatales apparaissent également


dans l’éditeur, il suffit d’activer le volet
de trace.
Pour déboguer une application distante,
il suffit de :
• Positionner un point d'arrêt dans le trai-
tement en erreur (code de clic du bouton,
procédure, ...),
• Lancer le débogage sur la machine dis-
tante : pour cela, il faut utiliser l'option
"Projet .. Mode test .. Déboguer l'exécutable
déjà lancé sur une machine distante",
•  Saisir le nom, ou l'adresse IP, de la
machine distante,
• Sélectionner l'application à déboguer.
L'utilisateur n'a plus qu'à effectuer la mani-
pulation qui provoque l'erreur (clic sur
un bouton, sélection d'une ligne, ...). Le
point d'arrêt stoppe le traitement et le
développeur peut commencer le débogage.
Le développeur a accès à l'ensemble des
fonctionnalités du débogueur : variables,
contextes, exécution pas à pas, définition
WinDev permet de tester et débo- permet d'établir le dialogue entre le poste
de développement et l'application de l'uti- de l'instruction suivante à exécuter...
guer un projet sur le poste de déve-
loppement. Mais il est parfois plus lisateur par un réseau. Lorsqu'une erreur est rencontrée, elle est
rapide de déboguer directement sur Note : L'outil WDDebug est situé dans le visible dans le volet de trace de l'éditeur.
un poste de l'utilisateur ou sur un répertoire "Programmes" de WinDev. Pour
serveur Hyper File pour comprendre le fournir à l'utilisateur final, il est possible
soit de :
Volet de trace
et identifier une erreur.
• l'inclure dans l'installation. Ce volet permet d'afficher toutes les
• l'envoyer à la demande. erreurs, les exceptions, les traces, et les
Mise en œuvre asserts qui peuvent survenir pendant l'exé-
cution d'un projet.
Pour pouvoir déboguer à distance, il est Gestion des erreurs
nécessaire que certains ports soient ouverts L'accès au volet de trace est disponible
Lors d’un débogage à distance, les
sur la machine de développement et sur la dans tous les types de débogage :
erreurs éventuelles apparaissent sur
machine de l'utilisateur : • Go du projet (mode test).
le poste de l’utilisateur. Pour que les
Les ports à ouvrir sont :
• le port 27270 pour la session de débo-
gage.
• le port 27280 pour la communication avec
la session de débogage.

WDDebug
Pour que le développeur puisse déboguer
l'application à distance, il faut d'abord
que l'utilisateur autorise la connexion du
débogueur sur sa machine. Il suffit pour
cela d'utiliser l'outil WDDebug. Cet outil

72 - TDF TECH 2008 - www.pcsoft.fr


Déboggage et mise au point
Retrouvez plus d'informations sur
ce sujet en formation "Hyper File
Client/Serveur"

sur la machine de développement et sur


la machine serveur. Par défaut, le port est
27281. Ce port est paramétrable dans le
Centre de Contrôle Hyper File, dans les
options "Système" de l'onglet "Configuration".
Le serveur doit être redémarré en cas de
modification,
•  Les droits de déboguer sur le serveur
Hyper File soit définis. Ce droit est éga-
lement paramétrable dans le Centre de
Contrôle Hyper File, dans l'onglet "Droits"
de la base de données.

Lors d'un double-clic dans la fenêtre de Trace, le détail de l'erreur Débogage


ainsi que la pile des appels est affichée.
Le débogage de procédure stockée et de
trigger serveur est accessible dans l'édi-
•  Débogage d'exécutable ou de site, en • Pour les traitements complexes utilisant teur d'analyse, via l'option "Projet .. Mode
local ou à distance, beaucoup d'accès fichier, un seul aller- test .. Déboguer sur un serveur Hyper File
• Débogage d'exécutable sur un terminal retour entre le poste client et le serveur Client/Serveur".
mobile. sera effectué.
Le contenu du volet de trace n'est pas •  Pour des plateformes mobiles, ou par Le choix du serveur sur lequel le débogage
vidé lorsque le débogage est terminé. Cela Internet, les procédures stockées limitent doit avoir lieu se fait soit :
permet de conserver en permanence le les risques liés aux déconnexion réseau. Le • En indiquant directement les paramètres
détail de l'erreur rencontrée, sans avoir traitement s'effectue, du début à la fin, de connexion au serveur,
à refaire toutes les manipulations qui ont sur le serveur. • En utilisant les paramètres de connexion
amené cette erreur. définis dans l'analyse.

Le volet permet également d'accéder aux Trigger serveur : Définition


Il est ensuite nécessaire de choisir le
détails de l'information. Par exemple, dans Un trigger serveur déclenche l'exécution
contexte d'exécution de la procédure
le cas d'une erreur, il est possible d'obtenir d’une procédure stockée, avant ou après
stockée :
la pile d'exécution, d'avoir les informations une écriture dans la base de données, pour
•  Soit l'application est lancée avec une
plus précises, ou encore d'accéder à la par exemple :
nouvelle connexion (et donc un nouveau
ligne de code qui a provoqué l'erreur par • Mettre à jour automatiquement un fichier
contexte). Ce choix est utile lorsque l'appli-
simple clic. stock dès qu’une ligne de commande est
cation est en phase de mise au point.
ajoutée, …
•  Soit le contexte correspondra à celui
En résumé, le volet de trace permet d'avoir, •  Générer automatiquement un numéro
d'un utilisateur donné, pour sa connexion
hors exécution, toutes les informations sur de facture,…
actuelle ou sa prochaine connexion. Ces
le dernier débogage. L'avantage d'un trigger serveur est qu'il choix sont utiles lorsque l'application est
est incontournable. Le trigger est défini en exploitation, et qu'un utilisateur donné
pour la base de données, et sera donc
Procédures stockées appelé quelle que soit l’application qui
signale une anomalie.

et de triggers exploite cette base de données, sans que Une fois attaché à une connexion, le débo-
serveurs le développeur n’ait besoin de penser à
le programmer.
gage des procédures stockées et des triggers
serveur se présente comme un débogage
classique. Toutes les fonctionnalités du
Procédure stockée : Définition Débogage : Prérequis débogueur sont accessibles : évaluation,
Une procédure stockée est une procédure
Pour déboguer une procédure stockée ou un modification à la volée, points d'arrêt,
exécutée sur la machine serveur de base de
trigger serveur, il est nécessaire que : etc.
données : le serveur Hyper File. Ces traite-
•  Les ports de débogage soient ouverts
ments présentent plusieurs avantages :

TDF TECH 2008 - www.pcsoft.fr - 73


Analyse d'utilisation

Détecter les actions les plus utilisées par les


utilisateurs afin de les optimiser.

Il est alors possible de choisir ce qui doit


être visualisé :
• Les traitements les plus utilisés,
• Les appels de procédures et des fonctions
Wlangage,
• Les interactions entre les threads.
Par exemple, le log des "appels de procé-
dures et des fonctions Wlangage" contient
tous les traitements qui ont été exécutés,
dans l'ordre chronologique.
Il est donc possible de savoir par quelle
fenêtre, traitement, ... l'utilisateur de
l'application est passé.

Note : il ne faut pas confondre l'analyse


des résultats de cette fonctionnalité avec
l'utilisation de l'analyseur de performance.
En effet, les logs d'exécutions prennent
en compte les périodes "d'inactivité" des
utilisateurs afin de pouvoir en comprendre
le besoin réel.

En sélectionnant une ligne du log, le détail


des informations relatives au traitement
Les logs d'exécution permettent Il est possible de logguer une application apparaît : liste des paramètres, résultat,
de : complète, une procédure, ou une partie élément contenant le traitement...
• Enregistrer le déroulement d'une de traitement.
Il est également possible d'accéder directe-
application, sur le poste de l’utili- ment à la ligne appelante, par simple clic
sateur : les procédures appelées, Astuce sur le bouton "Voir le code de l'appel".
les paramètres passés aux procé- L'utilisation des logs d'exécution ne doit
dures,.. être mise en place que sur des besoins
Notre Astuce
• Enregistrer toutes les actions uti- spécifiques. En effet, selon les traitements
Les logs d’exécution permettent égale-
lisateurs dans les applications, sur qui sont loggués, l'application peut être
ralentie, et cela peut également créer des ment de visualiser les interactions entre
le poste de l’utilisateur.
fichiers de logs volumineux. les threads.
• Savoir quelles sont les fonction- Par exemple, dans une application mul-
nalités les plus utilisées dans les La fonction dbgOptionsLog permet de tithread, il est possible de voir directement
applications, quelles sont les fonc- paramétrer ce qui doit être loggué. à quel instant l'application passe d'un thread
tionnalités qui doivent être opti- à un autre.
misées.
Analyser un log
d'exécution
Créer un log Pour ouvrir un fichier log d'exécution, il
d'exécution suffit simplement soit de :
Pour démarrer un log d'exécution, il suffit • Effectuer un DragNDrop (glisser-déplacer)
d'utiliser la fonction Wlangage dbgActi- du fichier dans l'éditeur.
veLog : l'appel à cette fonction créera un • Ouvrir le fichier .wlog par l'option "Fichier
fichier de logs. Les fichiers de log d'exé- .. Ouvrir".
cution ont une extension ".wlog"

74 - TDF TECH 2008 - www.pcsoft.fr


TDF Tech 2008

Gestion de projets

75 - TDF TECH 2008 - www.pcsoft.fr


Gestion des exigences

Monitorer et planifier un projet grâce à la


gestion des exigences et activer le mode
"strict".
• Les tâches de documentation aux mem-
bres du service documentation,
• Les tâches de test aux membres du service
qualité/test.

Création d'une
exigence
Pour créer une nouvelle exigence, il suf-
fit de cliquer sur le bouton "Ajouter une
nouvelle exigence" (bouton "+") accessible
dans la barre de boutons ou dans le menu
contextuel de la table des exigences. Deux
méthodes de création sont disponibles :
la création "simple" : elle permet de créer
une exigence, en définissant chaque infor-
mation de A à Z.
la création "à partir d'un modèle" : cette
méthode permet de se baser un modèle
d'exigence. Un modèle d'exigence permet
de définir, et de conserver, un paramétrage
donné pour une exigence (Nom, priorité,
coefficients,...).

Paramétrage de l'exigence
L'onglet "Général" définit les paramètres
principaux de l'exigence :
Les exigences définissent les fonc- La gestion des exigences est accessible • son nom,
tionnalités qui doivent être déve- par le menu "Gestion .. Gestion des exi- • sa priorité : de 1 (faible) à 10 (haute),
loppées ainsi que les demandes gences". • sa description ,
d'évolution, relatives à un ou plu- Il est possible soit de : • si la tâche nécessite, en plus du déve-
sieurs projets. • Créer une nouvelle liste d'exigences, loppement, une tâche de test, une tâche
WinDev permet de gérer, en per- • Importer un cahier des charges existant de documentation,
au format texte ou Excel. • etc.
manence, l'état d'avancement des
fonctionnalités des projets. L'onglet "Dépendances" définit la liste :
Pour chaque exigence, il est possible : • des tâches associées à chaque intervenant
de créer une tâche, ou de lier une tâche pour cette exigence,
Consulter les déjà définie dans le Centre de Suivi de • des règles métiers reliées à l'exigence,
Projets.
exigences • de créer un bug, ou de lier un bug déjà
• des incidents reliés à l'exigence.

La liste des exigences est accessible via défini dans le Centre de Suivi de la Qualité
le Centre de Suivi de Projets. Pour ouvrir et des Évolutions. Nouvelle Tâche
le Centre de Suivi de Projets, disponi- • de créer une règle métier, ou de lier une Pour créer une nouvelle tâche, il suffit de
ble en standard dans WinDev, il suffit de règle métier déjà définie dans le volet règle cliquer sur le bouton "Créer une nouvelle
choisir l'option "Outils .. Centre de Suivi métier de WinDev. tâche .. Création simple", et de saisir les
de Projets". Cet outil permet de gérer les informations relatives à la tâche :
Chaque tâche définie peut ensuite être
plannings des équipes, les tâches de chaque • le titre de la tâche,
affectée aux collaborateurs concernés :
développeur. • le projet qui lui est associé,
•  Les tâches de développement aux
• le type de tâche : tâche de développe-
développeurs,

76 - TDF TECH 2008 - www.pcsoft.fr


Gestion de projets
ment, tâche de test ou tâche de docu- correspond aux taux d'avancement : qui n'est pas associé à la tâche en cours,
mentation, • de réalisation des tâches, l'élément ouvert est en lecture seule, et
•  l'intervenant : le collaborateur qui va • de validation des règles métiers, WinDev avertit l'utilisateur.
effectuer la tâche, • de correction des incidents. En cliquant sur le bouton "Gestion des
•  la durée estimée pour réaliser cette Le chef de projet a également accès à : tâches", le développeur peut alors choi-
tâche. • l'état général de l'exigence : non débutée, sir :
Remarque : l'option "Créer une nouvelle débutée, validée, annulée, •  d'associer la tâche courant à cet élé-
tâche .. Création multiple" permet de créer, • l'état spécifique de développement, de ment,
automatiquement, une tâche de dévelop- test et de documentation. • d'activer une des tâches associées à cet
pement, une tâche de documentation et élément,
une tâche de test pour l'exigence. •  d'associer une nouvelle tâche à l'élé-
Validation d'une exigence ment,
Une exigence passera à l'état "Validée" : •  d'associer une tâche existante à l'élé-
Nouvelle règle métier • si toutes les tâches reliées sont termi- ment,
Pour créer une nouvelle règle métier, il nées, • de rien faire. Dans ce cas, l'élément ne
suffit de cliquer sur le bouton "Créer une • si toutes les règles métiers reliées sont pourra pas être modifié.
nouvelle règle métier liée à l'exigence", appliquées,
et de saisir les informations relatives à la • et si tous les bugs reliés sont corrigés. Le mode strict permet aux chefs de projet
règle métier : et aux développeurs d'avoir une traçabilité
L'onglet "Analyse d'impact" permet de parfaite de leur travail. De plus, le taux
• la description, ou définition, de la règle visualiser de manière plus détaillée, et
métier, d'avancement des exigences est toujours
plus graphique, les taux d'avancements au plus proche de la réalité : la situation
• les éléments liés à la règle : projets ou relatifs à l'exigence.
éléments de projets. réelle d'avancement des projets est donc
Le chef de projet dispose ainsi d'une vision toujours connue.
générale, et peut également obtenir un
Nouvel Incident point de vue développement, test et docu- Note : Le mode strict est bien sûr option-
Pour créer un nouvel incident relatif à mentation. Le type de vision est modifiable nel.
l'exigence, il suffit de cliquer sur le bouton via le champ combo "Vision", situé en bas
"Créer un nouvel incident lié à l'exigence", de fenêtre.
et de saisir les informations relatives à
cet incident : Analyse d'impact
• l'application, Mode strict sur les modifications
• le type d'incident : un incident ou une
suggestion,
Pendant le développement, le développeur d'une exigence
peut indiquer la tâche sur laquelle il tra-
• le collaborateur à qui sera affecté l'in- L'analyse d'impact permet de connaître,
vaille actuellement :
cident, pour une exigence donnée, la liste des
• soit dans le Centre de Suivi de Projets,
• le texte descriptif. éléments de projets qui seront impactés
• soit directement dans WinDev, via le volet
Remarque : si les tâches, règles métiers "Centre de Suivi de Projets". par une modification, ainsi que la liste des
ou incidents existent déjà dans la base des développeurs concernés.
Avec le mode strict, les développeurs ne
Centres de Contrôle, il suffit d'utiliser les Lors d'une demande d'évolution d'un client
peuvent pas modifier un élément du projet
boutons "Lier une tâche", "Lier une règle sur une fonctionnalité donnée, le chef de
(fenêtre, requête, code, ...) sans avoir
métier" et "Lier un incident" pour associer projet connaît donc les ressources humaines
préalablement indiqué la tâche concernée
les éléments existants à l'exigence. mises en jeu, et le délai nécessaire pour
par ces modifications.
réaliser la demande.
Pour activer le mode strict, il suffit de
Visualisation de cocher l'option "Activer le mode strict",

l'état d'avancement présent dans l'onglet "Avancé" de la fenêtre


de description du projet.
Pendant le développement, le chef de pro- Lorsque le mode strict est activé, si le
jet peut visualiser, en temps réel, le taux développeur ouvre un élément du projet
d'avancement de chaque exigence. Ce taux

TDF TECH 2008 - www.pcsoft.fr - 77


Règles métier

Mettre en place et utiliser des règles métier


dans un projet.

qui travaille sur le projet appli- s’applique à ce champ.


que cette règle, et que personne Maintenant, dès que vous créerez un champ
ne l’oublie. de saisie, avec un libellé “email”, dans 1
Pour définir une règle, les étapes semaine, dans 1 mois, dans 6 mois, WinDev
sont les suivantes : vous indiquera qu’une règle est définie
• Ouvrir le volet des règles pour ce champ.
métier : utilisez le menu • Cliquez sur le bouton «Règles métier»
“Affichage .. Barre d’outils .. pour ouvrir le volet correspondant.
Règles métier”. • Double-cliquez sur la règle que vous avez
• Cliquer sur le bouton “Nouvelle précédemment définie.
règle”. Vous voyez, de suite, quelle norme vous
• Saisir le texte de la règle. Par devez respecter pour coder ce champ, avant
exemple : “Tout champ de saisie même de commencer le codage.
portant sur une adresse email
doit être validé, en appelant • Vérifiez que la règle doit effectivement
la procédure de validation de s’appliquer sur votre champ. Si tel est le
l’email sur le champ.” cas, dans votre code, faites appel à la
procédure de validation d’email de votre
La règle possède maintenant projet.
sa description. L’intérêt de la • Indiquez ensuite que, pour ce champ, la
Une règle métier définit par exem- règle est de savoir sur quel(s) règle est réalisée. Pour cela, positionnez-
élément(s) elle s’applique :
ple comment est réalisé un traite- vous sur l’onglet «liens automatiques». Dans
• Cliquez sur l’onglet “Liens automati-
ment, un calcul de stats, une IHM la liste des “éléments correspondants”,
ques” : cet onglet permet de définir les sélectionnez la ligne correspondant au
et surtout pourquoi ce traitement éléments sur lesquels la règle doit s’appli-
est réalisé de cette façon et non champ que vous venez de placer.
quer de façon automatique. • Changez l’état du lien en «Réalisée»,
d’une autre. • Cliquez sur le bouton “Créer une nouvelle puis validez votre règle.
condition”.
Avec les règles métier, vous saisissez • Paramétrez maintenant le type d’élément Si votre règle n’a pas à s’appliquer sur le
ces informations, ces règles, dès concerné par cette règle : cette règle s’ap- champ, par exemple, il s’agit d’un champ
la phase de conception, ou à tout plique aux éléments “champs de fenêtre” en affichage seulement, vous pouvez posi-
moment pendant le développe- de “type saisie”. tionner l’état du lien en “non concerné”.
ment, directement dans WinDev. • Saisissez les critères restrictifs de cette
règle : “dont le libellé” “est égal à” soit Vous pouvez également positionner l’état
Cela évite aux développeurs de de la règle à “En cours” pour informer les
“email”, soit “destinataire”, soit “expédi-
rechercher à nouveau les causes autres utilisateurs que vous êtes en train
teur”, soit “dest”, soit “courriel”.
et les raisons d'un algorithme ou • Fermez le volet des règles métier. d’appliquer cette règle à l’élément.
d'une implémentation.
Retrouvez plus de détail sur l'utilisation
Lien automatique des règles métier dans la LST 70.
Définition d’une Pour tester une nouvelle règle, il suffit
règle de créer un élément correspondant aux
critères de celle-ci. Voici un exemple de
Par exemple, dans une application, il existe manipulation :
fréquemment une procédure qui contrôle • Créez une nouvelle fenêtre : utilisez le
la validité d’une adresse email. Cette pro- menu “Fichier .. Nouveau .. Fenêtre”
cédure doit donc être appelée partout où • Créez un champ de saisie dont le libellé
une adresse email doit être saisie. est “email” (ou tout autre libellé défi-
Le développeur va donc définir une règle nit précédemment dans les critères de
métier. Le but est que chaque développeur la règle) : WinDev vous indique automa-
tiquement par une popup qu’une règle

78 - TDF TECH 2008 - www.pcsoft.fr


TDF Tech 2008

Autres technologies

79 - TDF TECH 2008 - www.pcsoft.fr


SAP

Définir une connexion à un serveur SAP et


exécuter les BAPI présentes sur ce serveur.

Il suffit ensuite d’appeler cette procédure


comme n’importe quelle autre procédure
du projet.
Par exemple, pour afficher le détail d'un
vol sélectionné dans la table, il suffit de
saisir les paramètres de la BAPI Flight_
GetDetail:
sAIRLINEID = COL_AirLineID
sCONNECTIONID = COL_ConnectID
dFLIGHTDATE = COL_DateDépart

Les informations renvoyées par la BAPI


correspondent au paramètre de sortie.

Pour afficher ces informations, il suffit


de récupérer les membres de la structure
renvoyée par la BAPI :
LIB_DETAILS =...
ChaîneConstruit([
Nombre de places en First : %1
Les applications WinDev 12 dispo- • Utiliser la fonction standard SAPConnecte Nombre de places en Business
sent d'un accès natif à SAP. La com- du WLangage. : %2
munication entre une application La fonction SAPConnecte renvoie Vrai lors- Nombre de places en Classe Eco
: %3
WinDev et un serveur SAP s'effectue que la connexion est établie.
],...
directement avec les BAPI SAP (une stAVAILIBILITY:nFIRSTMAX, ...
BAPI SAP est une fonction SAP). Utilisation d'une stAVAILIBILITY:nBUSINMAX, ...
stAVAILIBILITY:nECONOMAX)
L'utilisation directe des BAPI SAP BAPI SAP
permet la conservation des aspects
Les BAPI sont accessibles par le menu
"sécurité", "traçabilité", "gestion des "Atelier .. SAP .. Utiliser une fonction
priorités" de SAP, tout en bénéficiant SAP".
des fonctionnalités de WinDev. Un assistant permet alors d'indiquer les
Note : le principe est identique sous paramètres de connexion SAP : il s'agit des
WebDev. mêmes paramètres que ceux utilisés par
SAPConnecte. Pour rechercher une BAPI,
il suffit de saisir un critère de recherche,
Connexion à un par exemple "flight". WinDev interroge
serveur SAP alors SAP, et liste l'ensemble des BAPIs
correspondantes à ce critère.
Pour se connecter à un serveur SAP, il suf-
fit de : Une fois la BAPI sélectionnée, WinDev indi-
• Définir les paramètres de connexion dans que, pour chaque paramètre :
la variable SAP : • s'il est en entrée, sortie ou entrée/sor-
tie
SAP.Adresse = "AdresseSAP"
• s'il est optionnel ou non
SAP.NuméroSystème = 0
SAP.NumClient = "000" • sa valeur par défaut.
SAP.Utilisateur= ... WinDev 12 génère alors automatiquement
"UtilisateurSAP" la procédure d’appel de cette BAPI,
SAP.MotDePasse = ...
ainsi que les déclarations de variables et
"MotDePasseSAP"
de structures nécessaires.

80 - TDF TECH 2008 - www.pcsoft.fr


DotNet

Autres technologies
Utiliser des delegates DotNet pour gérer des
événements DotNet depuis le WLangage.

WinDev permet de créer et d’utiliser Importation d'un assemblage // La création


clSurveillant:add_Created(...
des assemblages DotNet. Il est donc Pour monitorer un répertoire, il suffit
gpclEventHandlerAjout)
possible d'utiliser à la fois du code d'importer l'assemblage DotNet "system".
// La modification
DotNet et du Wlangage, en WinDev, L'import d'assemblage s'effectue par le clSurveillant:add_Changed(...
WebDev, et WinDev Mobile. menu "Atelier .. DotNET .. Utiliser un assem- gpclEventHandlerModif)
blage DotNET dans le projet".
WinDev 12 permet notamment d'uti-
liser des delegate DotNet afin de
Les classes définies dans l'assemblage sont Utilisation
automatiquement importées dans le volet Pour démarrer la surveillance d'un réper-
gérer des événements. WinDev correspondant. toire, il suffit de :
• Donner le chemin du répertoire à sur-
veiller au membre “Path” de l'objet
Déclarations des objets DotNet
Projet d'illustration Note : DotNet est une technologie orien-
“FileSystemWatcher”.
Pour illustrer l'utilisation d'un assemblage clSurveillant:Path =...
tée objet.
DotNet depuis une application WinDev, ComplèteRep(...
et plus particulièrement l'utilisation SC_SelecteurRépertoire)
Dans le code d'initialisation de la fenêtre,
des delegates, le projet utilisé est "WD • Activer la surveillance, en mettant le
un objet "FileSystemWatcher" est déclaré.
ObservateurRépertoire" (présent sur le membre “EnableRaisingEvents” à Vrai.
Cette classe est définie dans l'assemblage
DVD).
"system" importé. clSurveillant:EnableRaising-
Les manipulations décrites dans cet article
Cet objet est l'objet principal, auquel sera Events = Vrai
reposent sur ce projet.
défini ce qui doit être écouté.
Note : Pour stopper la surveillance, il suffit de
clSurveillant est un remettre le membre “EnableRaisingEvents”
Utilisation des FileSystemWatcher() à Faux.
delegate Les objets "FileSystemEventHandler" vont
contenir les delegate, autrement dit, l’as-
Dès qu'un événement est détecté (ajout de
fichier, modification du nom, ...), le dele-
sociation entre une procédure WLangage gate est appelé, et la procédure Wlangage
Définition d'un delegate et l'événement pour lequel elle doit être
Un delegate est en fait une procédure, associée est exécutée.
appelée.
qui peut être exécutée dans deux cas dif-
férents : Pour instancier un objet
“FileSystemEventHandler”, il suffit
Astuce
• L'utilisation d'un "événement DOTNET". Si vous devez utiliser des delegate .NET,
•  L'utilisation d'une procédure callback d’utiliser la nouvelle fonction WLangage
“DotNetDélégué”, avec en paramètre : vérifiez que le framework qui les contient
WLangage depuis un assemblage est bien installé sur le poste client.
DOTNET. • le nom de la procédure Wlangage,
• l’événement qu'elle doit traiter. Vous pouvez vérifier la version du framework
installé grâce à la fonction WLangage
L'exemple "WD ObservateurRépertoire" uti- Par exemple : DotNetVersion.
lise des événements DOTNET qui permettent
gpclEventHandlerAjout =...
de monitorer un répertoire, c’est-à-dire de
DotNetDélégué(ElémentAjouté,...
savoir quelles sont les opérations qui ont
"FileSystemEventHandler")
été effectuées sur ce répertoire.
Une opération correspond à : La procédure “ElémentAjouté”
•  Une création de fichier ou de réper- va traiter un événement de type
toire. "FileSystemEventHandler", c'est à dire un
• Un renommage de fichier ou de réper- événement sur le système de fichier.
toire.
• Une suppression de fichier ou de réper- Chaque delegate est ensuite associé à
toire. l'événement qu'il doit gérer.
•  Ou une modification de fichier ou de Par exemple, l'événement de création est
répertoire. associé au delegate d'ajout, l'événement
de modification au delegate de modifi-
cation.

TDF TECH 2008 - www.pcsoft.fr - 81


Site PHP

Exploiter les nouveautés PHP de WebDev 12


pour intégrer des fonctionnalités AJAX tout
en bénéficiant du débogueur WebDev.

Débogage d'un site


PHP
Pour faciliter le débogage et la main-
tenance des sites PHP, WebDev permet
maintenant de tester et déboguer le site
en Wlangage.

Les messages d'erreurs sont alors clairs


et directement exploitables depuis le
débogueur de WebDev. Toutes les fonc-
tionnalités du débogueur WebDev sont
disponibles  : évaluation des variables,
débogage en pas à pas, etc.

WebDev permet de générer dif- Technologie AJAX Le Débogage d'un site PHP en Wlangage
s'effectue en cliquant sur "Go .. Déboguer
férents types de sites Internet ou
Intranet.
avec WebDev PHP le projet PHP en mode simulation".
Il est notamment possible de géné- WebDev 12 permet d'utiliser la technologie
rer des sites PHP avec ou sans uti- AJAX, d'un simple clic. Cette technologie est
désormais disponible pour les sites PHP.
Exemples
lisation d'une base de données
MySQL. Par exemple, pour définir une table en WebDev est livré en standard avec plu-
sieurs exemples de sites PHP. Nous vous
WebDev 12 apporte deux nouveau- AJAX, il suffit d'ouvrir la description de
la table, et de cocher "Mode AJAX". Une conseillons de les consulter pour plus de
tés majeures pour les développeurs
table PHP en mode AJAX aura alors le détail sur la réalisation d'un site PHP à
réalisant des sites PHP : l'aide de WebDev :
• Les champs et les traitements peu- même comportement qu'une table AJAX
en mode WebDev classique : gestion de la • WW_Images_PHP,
vent utiliser la technologie AJAX. • WW_Blogs_PHP,
loupe, redimmensionnement des colonnes,
• Le code WLangage correspondant • WW_SiteMarchand_PHP,
ascenseurs, etc.
au site PHP peut être débogué pas • etc.
à pas. Note : il est également possible de définir
une zone répétée en AJAX, de la même
façon. Les procédures, codes
de boutons, codes de liens,
... peuvent également passer
en "Mode AJAX". Un simple
clic sur le lien "AJAX" dans le
bandeau active (ou désactive)
le mode AJAX.

82 - TDF TECH 2008 - www.pcsoft.fr


Lien avec un existant

Autres technologies
Exploiter des données existantes :
Lotus Notes, Outlook, LDAP...

WinDev dispose en standard de • Récupération des vues de la base L'exemple "WD Outlook", fourni en standard
fonctions permettant d'exploiter un sListe = NotesListeVue(nIDBase) dans WinDev, utilise les fonctions d'accès
existant : Excel, Lotus Notes Domino, à Outlook.
Exchange, Outlook, LDAP... Outlook
Ces différents accès utilisent géné- LDAP
L'accès aux contacts, aux emails, aux ren-
ralement des familles de fonctions WinDev permet également de gérer en
dez-vous, etc.. de Outlook s'effectue, en
spécifiques dont voici quelques natif les annuaires LDAP, grâce aux fonc-
lecture et en écriture, par des fonctions
exemples. Wlangage : tions LDAPXXX du Wlangage. Les annuaires
•  ContactXXX : ContactPremier, peuvent être manipulés en lecture et en
Lotus Notes : ContactSuivant, ContactAjoute,... écriture.
•  EmailXXX : EmailLitPremier, Voici quelques exemples de fonctions :
L'accès aux contacts, aux emails, aux tâches, •  LDAPConnecte permet d'ouvrir une
EmailLitSuivant, EmailEnvoieMessage,
aux rendez-vous et à la base documentaire connexion,
...
de Lotus Notes, s'effectue, en lecture, •  LDAPValeur permet de récupérer la
• RendezVousXXX : RendezVous-Premier,
comme en écriture,grâce aux fonctions valeur d'un attribut.
RendezVousSuivant, RendezVousAjoute,
WLangage NotesXXX de WinDev.
...
Voici quelques exemples de fonctions : Exemples d'utilisation
• etc.
• NotesOuvreConnexion permet d'ouvrir • Connexion au serveur LDAP
la connexion,
• NotesOuvreBase permet de se connecter
Exemples d'utilisation LDAPSession.Hôte =...
• Ouverture d'une session Outlook "MonServeur"
à une base, LDAPSession.Utilisateur = ...
•  NotesDocument permet de manipuler nIdSession =... "Utilisateur"
les documents. EmailOuvreSessionOutlook("") LDAPSession.MotDePasse = ...
• Lecture du premier contact de la base "MotDePasse"
Exemples d'utilisation LDAPConnecte("MaSession")
ContactPremier(nIdSession)
• Ouverture d'une connexion • Récupération du nom d'un utilisateur
•  Affichage des informations de ce
nIDConnexion =... sNom = LDAPValeur("MaSession",s
NotesOuvreConnexion(... contact
UnUtilisateur,"name")
"motdepasse","Serveur",... Info(mContact.Nom + [" "] +...
"\certificat.id") mContact.Prénom,... • Déconnexion du serveur
mContact.Email) LDAPDéconnecte("MaSession")
• Ouverture d'une base documentaire
nIDBase = ... • Fermeture de la session L'exemple "WD LDAP Exploreur", fourni avec
NotesOuvreBase(nIDConnexion,... la LST 66, permet de parcourir un annuaire
EmailFermeSession(nIdSession)
fRepExe() + "\MaBase.nsf") LDAP à l'aide des fonctions LDAP.

Le Saviez-Vous ? Le volet "Exemples Unitaires" contient des exemples d'utilisation des différentes
familles de fonctions du WLangage : Il suffit de faire un Drag&Drop dans l'éditeur pour y accéder.

TDF TECH 2008 - www.pcsoft.fr - 83


Caméra Dôme

Piloter une caméra dôme depuis une


application WinDev : gestion de la vidéo et
des ordres de déplacements.

Gestion des Configuration du port


La configuration du port doit être réali-
déplacements sée après l'appel à la fonction sOuvre,
Pour dialoguer avec la carte de gestion des et s'effectue par la fonction WLangage
moteurs de la caméra, il suffit d'utiliser les sFixeParamètre.
fonctions sXXX du WLangage. En effet, C'est notamment cette fonction qui permet
WinDev dispose nativement d'un ensemble d'indiquer le taux de transfert (différent
de fonctions permettant de dialoguer avec selon les périphériques). Sans l'utilisation
les périphériques branchés sur les ports de cette fonction, WinDev utilise les para-
COM, Infrarouges et parallèles. mètres du port défini dans Windows.
Note : il existe également un ensemble de
fonctions pour détecter les périphériques
Envoi de données
USB. Consulter l'aide en ligne sur les fonc-
Une fois la connexion établie (c'est-à-dire
tions USBxxx pour plus de détails.
que la fonction sOuvre n'a pas renvoyé
d'erreur), il suffit d'envoyer les commandes
Pendant le TDF  Tech 2008, nous Connexion au périphérique correspondantes aux périphériques par la
avons utilisé une caméra dôme Pour utiliser les fonctions sXXX, il est fonction sEcrit du WLangage.
motorisée. Une application WinDev nécessaire d'ouvrir le port de communi- // Transmet les données
permettait de modifier le champ de cation correspondant. C'est lors de cette // contenues dans la
étape de connexion que sont définis les // variable buffer
vision de la caméra et de récupérer
paramètres de la communication, comme sEcrit(gnPortCOM, bufSéquence)
les images renvoyées. Sur ce prin-
par exemple :
cipe, il est possible d'automatiser Note : La fonction sEcrit du WLangage est
• la vitesse de transfert,
des tâches de télésurveillance par • la gestion des bits de parité,
une fonction bloquante (avec une gestion
exemple. • la gestion des contrôles de flux,
de TimeOut définie lors de l'ouverture
du port).
• etc.
Gestion de la vidéo Les commandes envoyées dépendent entiè-
L'ouverture du port de communication rement du périphérique utilisé.
Pour afficher les images provenant de la
s'effectue par la fonction sOuvre du Note  : La fonction sLit permet de lire
caméra, il est possible d'utiliser le champ
WLangage : des informations envoyées par un péri-
"Web Caméra" de WinDev si le driver de
la caméra fournit une interface TWAIN. // Ouverture du port phérique.
sOuvre(1, 1000, 1000, 5000)
Il suffit alors de spécifier dans la fenêtre
de description du champ "Web Caméra" la Les paramètres de la fonction sOuvre sont
configuration du périphérique à utiliser. alors les suivants : Exemple
L'affichage est alors géré automatiquement •  le numéro du port sur lequel le péri- L'exemple présenté lors du TDF Tech 2008
par WinDev. phérique est connecté. Ici il s'agit du port est présent sur le DVD : "WD Dôme Video".
COM1. Cet exemple est spécifique au matériel
• la taille du buffer d'entrée (1 000 octets utilisé mais peut facilement être adapté
Capture des images dans cet exemple). à un autre matériel ayant un fonctionne-
Lors de l'utilisation d'un champ "Web • la taille du buffer de sortie (1 000 octets ment similaire.
Caméra", il est possible d'accéder aux dans cet exemple).
images affichées grâce aux fonctions • un "TimeOut" exprimé en millisecondes
VideoXXX de WinDev. Par exemple, la
fonction VidéoCapture permet de sauve-
(5 secondes dans cet exemple). Au-delà Matériel utilisé
de ce délai lors de l'envoi ou la réception
garder la vidéo (ou une image) actuellement de données, l'opération sera considérée Pour plus de détails sur le matériel utilisé
diffusée dans le champ "Web Caméra". comme "en erreur". (Caméra dôme PTZ) pendant le TDF Tech
2008, consultez le site de la société
Note : Dans le cas contraire, il est néces-
"ALLWAN SECURITY" :
saire d'utiliser le SDK correspondant au
http://www.allwan.fr
matériel pour gérer l'affichage.

84 - TDF TECH 2008 - www.pcsoft.fr


TDF Tech 2008

WebDev : Utilisation avancée

85 - TDF TECH 2008 - www.pcsoft.fr


Mode AWP

Rappels sur le principe et le fonctionnement


des pages sans sessions de WebDev
(mode AWP).

WebDev gère les pages dynamiques un paramètre dans l'URL). également que les informations dynami-
avec ou sans gestion automatique Note : les pages AWP sont situées dans le ques n'ont pas été conservées : requête,
du contexte : répertoire "_WEB" du projet c’est-à-dire filtre, vue, etc.
• Avec gestion automatique est le qu'elles sont accessibles depuis Internet,
mode par défaut. ce qui n'est pas le cas avec un site en mode
session "automatique".
Exemples livrés avec
•  Sans contexte automatique
appelé mode AWP. WebDev
Les deux modes de gestion de Avantages du mode Pour bien comprendre le fonctionnement et
les spécificités de programmation du mode
contextes (standard et AWP) peu-
AWP AWP, nous vous conseillons de consulter les
vent êtres utilisés conjointement
exemples AWP livrés avec WebDev :
dans un même site WebDev. Le mode AWP apporte plusieurs avantages
importants aux développements de site • WW_BlogsAWP,
L’intérêt majeur du mode AWP est la • WW_VitrineAWP,
possibilité d'un référencement plus WebDev :
• La possibilité de mettre à jour une page • Catalogue_Internet,
efficace des pages du site auprès • etc.
d'un site sans bloquer le site : il suffit de
des moteurs de recherche : chaque
mettre le fichier .awp directement sur le
page est adressable directement. serveur par FTP par exemple. La solution idéale n'existe pas et dépend de
• N’importe quelle page du site est accessi- la nature du site à réaliser. Il est important
ble en direct : les pages peuvent donc être de se rappeler qu'il est tout à fait possible
Création d'une page ajoutés dans des favoris par les Internautes d'avoir dans un même projet des pages en
AWP ou accessibles par les moteurs de recherche mode "classique" (pour les pages d'adminis-
(voir le sujet sur le référencement). tration donc plus sécurisées par exemple)
La création d’une page AWP est en tout et des pages en mode AWP (pour les pages
• Puisqu'il n'y a pas de contexte, il n'y a pas
point identique à la création d’une page utilisateurs par exemple).
de session, ... donc pas de time out. Ce qui
dynamique normale. La différence réside
rend le mode AWP particulièrement justifié
dans le mode de génération de la page et
pour les formulaires par exemple.
dans la programmation.
• L'absence de session permet également
Il suffit de cocher l’option “génération en d'économiser les ressources sur le serveur
mode AWP” dans les options de générations hébergeant le site. Le serveur n'est sollicité
HTML dans la fenêtre de description de que lors de la demande d'affichage de la
la page. La page est alors utilisable en page. Une fois la page affichée, le serveur
mode AWP. ne bloque pas de ressources à maintenir
Lors d'un test d'une page AWP, l'adresse de des informations pour les demandes futures
test dans le navigateur est "différente". de l'internaute.
En effet, une page AWP peut être accé-
dée directement et est disponible dans le
répertoire "_WEB" du site. L'url d'une page Limites du mode
AWP est alors de la forme suivante : AWP
http://nomserveur/PROJET_WEB/FR/ La principale limitation du mode AWP est
mapage.awp qu'il nécessite une programmation assez
au lieu d'avoir une URL de connexion à un spécifique.
site WebDev classique de la forme : Cette programmation spécifique est prin-
h t t p : / / n o m s e r v e u r / W D 1 2 0 AW P / cipalement liée au fait qu'il n'y a pas de
WD120AWP.EXE/CONNECT/PROJET contexte de base de données (il est possible
d'avoir un contexte sur les variables). C'est-
Outre le fait que cette seconde URL est plus Retrouvez plus d'informations sur
à-dire que lors de l'affichage d'une page, les
longue, elle offre l'inconvénient de ne pas ce sujet en formation "WebDev
enregistrements ne sont plus positionnés
pouvoir accéder simplement à une page Avancé"
comme dans la page précédente, mais
donnée (il faut gérer par programmation

86 - TDF TECH 2008 - www.pcsoft.fr


Référencement

WebDev : Utilisation avancée


Améliorer le référencement d'un site :
conseils pratiques.

Le référencement d’un site, c'est l’in- de survoler le lien avec la souris. La barre de En version 12, le contenu de ce champ "Plan
dexation de ce site dans les bases message du navigateur va alors indiquer le du site" est automatiquement généré, ce qui
de données des moteurs de recher- lien tel qu'il est compris par le navigateur. permet de disposer d'un champ à jour sans
Si le lien est de la forme http://, alors le avoir à le maintenir "manuellement".
che comme Google ou Yahoo.
lien pourra être suivi par la plupart des
Mieux votre site est référencé, plus moteurs de recherche. En revanche, s'il Indépendamment de l’impact sur le réfé-
il a de chances d'être parmi les s'agit d'un lien JavaScript, ce lien aura peu rencement, un plan du site est toujours
résultats de la recherche. de chance d'être suivi par un moteur de utile pour l’internaute.
recherche en phase d'indexation.
Voici quelques conseils permettant
d'optimiser le référencement d'un Cinquième conseil
site WebDev AWP (mode conseillé Deuxième conseil Pour vérifier qu’un site est optimisé pour le
pour un site Internet ayant des
Pour aider le moteur de recherche dans référencement, WebDev dispose d'un outil
pages publiques à indexer par les
son analyse du contenu de page, il est intégré accessible depuis le menu "Projet..
moteurs de recherche).
possible de fournir une liste de mots-clés Performances et améliorations..Optimiser
correspondant à la page. le référencement".
Premier conseil Cette liste de mots-clés peut être définie
directement dans la fenêtre de description
Lors de l'utilisation de cet outil, WebDev 12
analyse toutes les pages du site et signale
Lors du référencement d'un site, le moteur de la page (onglet "Détail). les optimisations éventuelles à apporter
de recherche va suivre les liens des pages
pour un meilleur référencement.
de votre site pour en analyser le contenu. Notre Astuce
Il est donc fondamental que le moteur de Les trois premiers mots-clés saisis sont très Les résultats sont classés par ordre d'impor-
recherche puisse accéder aux différentes importants, ce sont eux qui vont avoir le tance. Par exemple, WebDev 12 signale :
pages publiques du site Interne. plus de poids pour cette page. Il est donc • si le nombre de mots-clés dans une page
important de bien les choisir est insuffisant
Pour cela, il est important d'éviter d’écrire
• si une page n’a pas de titre.
du code dans l’événement "clic serveur"
• si la description de certaines pages est
pour les liens qui affichent des pages que
vous voulez référencer. Troisième conseil vide.
•  si certaines images n'ont pas de texte
En effet, en utilisant du code dans le trai- Pour mieux indexer les sites, Google recher- alternatif.
tement "clic serveur", le lien généré dans la che et analyse un fichier associé au site,
page sera un lien JavaScript (car condition- un fichier "SiteMaps". Ce fichier "SiteMaps" Rappel : le texte alternatif est le texte
nel), donc le moteur de recherche ne pourra sert principalement à renseigner Google qui va s'afficher à la place d'une image si
pas interpréter ce lien donc ne pourra pas sur la fréquence de mise à jour de chaque celle-ci ne peut pas s'afficher.
accéder à la page correspondante. page et l'importance de chaque page dans
Pour éviter d’écrire du code dans l’événe- votre site.
ment "clic serveur" des liens, voici deux
possibilités : Le paramétrage de ce fichier "SiteMaps"
• Si la page ne nécessite pas de paramè- s'effectue dans la fenêtre de description de
tre à passer, il suffit de définir la page à la page, dans l'onglet "Détail" en renseignant
afficher directement dans la description les champs "Mise à jour" et "Priorité Interne"
du lien, dans l’action. de la zone "Référencement".
• Si la page nécessite des paramètres, utili-
ser la propriété URL par programmation.
Quatrième conseil
Notre astuce L'intégration d'un champ "Plan du site"
permet un accès à l'ensemble des pages
Comment savoir qu'un lien pourra être
publiques du site, ce qui peut donc faci-
"suivi" par un moteur de recherche ? La
liter le travail d'indexation des moteurs
solution la plus simple est d'ouvrir la page
de recherche.
dans un navigateur (en exécution donc) et

TDF TECH 2008 - www.pcsoft.fr - 87


Contexte AWP

Comment gérer un contexte lors de


l'utilisation du mode AWP.

WebDev propose deux modes de •  Une seconde partie : le corps de la • La sécurité est augmentée puisque les
développement pour les sites : page qui contient en fait l'élément en variables mémorisées ne transitent pas sur
• Un mode "classique" avec une lui-même. Internet, elles restent sur le serveur.
• Tous les types de données peuvent être
gestion des contextes complète- Lorsque l'internaute demande une autre
sauvegardés : les structures, les clas-
ment automatique. C'est le mode page, les cookies sont automatiquement
renvoyés au serveur, par le navigateur. ses...
le plus proche du fonctionnement • La durée de vie de ce type de contexte
de WinDev. est paramétrable.
• Un second mode, le mode AWP,
Avantages
Le principal avantage de cette méthode,
sans gestion automatique de
c'est que le contexte n'a pas de durée de Mise en œuvre
contexte. Cependant, il est pos-
vie fixe. Il est créé quand l'utilisateur ouvre
sible de gérer des contextes par La mise en œuvre d'un contexte AWP s'effec-
son navigateur, et il est détruit quand le
programmation. Ce mode est plus tue par programmation dans WebDev 12.
navigateur est fermé. Il n'y a pas de notion
particulièrement destiné aux sites de time-out. Pour tester cette mise en œuvre, il est
Internet nécessitant des URLs direc- possible d'utiliser n'importe quel exem-
tement accessibles pour des ques- Inconvénients ple WebDev, en mode AWP, livré avec le
tions de référencement. Les inconvénients de cette méthode sont produit comme par exemple le projet
les inconvénients issus de l'utilisation des "WW_VitrineAWP".
Note  : en version 12, il est possible de cookies :
déboguer un site AWP de la même façon • Le navigateur de l'internaute doit accep- Configuration du contexte
qu'un site WebDev "classique". ter les cookies. Pour définir un contexte, il faut indiquer la
• La taille des cookies est limitée à 4 Ko liste des variables à gérer dans ce contexte,
ce type de définition s'effectue donc le
Les contextes AWP • La sécurité des informations mémorisées
plus souvent dans le code d'initialisation
dans les cookies n'est pas garantie.
Dans le mode AWP, il y a deux modes dif- • Seuls les types simples sont gérés dans les du projet.
férents de gestion des contextes : cookies : les chaînes, les entiers, ... Pour définir un contexte AWP, il suf-
•  Une gestion des contextes avec des fit d'utiliser la fonction WLangage
cookies "serveur". Retrouvez plus de détail sur l'utlisation de ConfigureContexteAWP. Cette fonc-
•  Une gestion des contextes sur disque ce mode de contexte dans la LST 70. tion permet de choisir le mode de ges-
(nouveauté de la version 12). tion des contextes utilisé. La fonction
Un contexte AWP est un contexte de varia- Contextes sur disque ConfigureContexteAWP nécessite en
bles, ce n’est pas un contexte de bases paramètre :
Lorsque l'internaute demande une page, le • ctxCookie pour un contexte géré avec
de données.
serveur attribue un identifiant pour la ses- cookies serveurs.
sion, et l'identifiant du contexte est ajouté
Contextes avec dans l’en-tête de la page. Cet identifiant
• ctxDisque pour un contexte sauvé sur
le disque dur.
cookies correspond à un fichier sur le disque dur
du serveur. Pour un contexte sauvé sur disque, il est
La gestion des contextes avec cookies fonc-
tionne avec des cookies serveurs. Lorsque l'internaute demande une autre possible de spécifier la méthode de transit
Lorsque l'internaute demande une page au page, l'identifiant de la session est alors de l’identifiant du contexte :
serveur, le serveur ajoute des cookies dans transmis au serveur. Le serveur WebDev • soit cela transite uniquement dans l'url
l'en-tête de cette page. retrouve alors la session sur le disque à • soit uniquement dans les cookies
partir de l'identifiant, et restaure toutes • soit c’est WebDev gère, c’est le mode
Rappel : Une page HTML est constituée de les variables sauvegardées. automatique. Dans ce cas, si les cookies
deux parties : sont autorisés, ça passe par les cookies
• Les entêtes, qui contiennent des infor- Avantages sinon ça passe par l'url.
mations sur l'élément qui est renvoyé par
• L’internaute peut ne pas avoir accepté
le serveur. Par exemple le type d'élément : Ce mode automatique est conseillé pour
les cookies, ce mode pourra quand même
une page HTML, un fichier PDF, un fichier deux raisons :
fonctionner
binaire, ... • C’est le mode le plus simple à mettre
• La taille du contexte est illimitée

88 - TDF TECH 2008 - www.pcsoft.fr


WebDev : Utilisation avancée
Mode AWP avec contextes basés sur des cookies serveur

en œuvre.
• Ce mode fonctionne même si l’internaute
a interdit les cookies.

Déclaration et activation du
contexte
Pour sauvegarder et restaurer des
variables, il suffit d'utiliser la fonction
DéclareContexteAWP dans le code d'initia-
lisation des pages ou du projet, en indiquant
en paramètre la ou les variables.
Le moteur WebDev se chargera alors auto-
matiquement de la mémorisation et de la
restauration des variables ainsi ajoutées
dans le contexte.
Rappel : En mode AWP, le code d’initialisation
du projet est exécuté à chaque fois qu'un
code serveur est exécuté.

Notre astuce Mode AWP avec contextes sur disque (nouveauté de WebDev 12)
Vous pouvez supprimer une varia-
ble du contexte avec la fonction
AnnuleContexteAWP avec en paramètre
le nom de la variable.

TDF TECH 2008 - www.pcsoft.fr - 89


Gadget Windows Vista

Réaliser un gadget Vista capable d'accéder à


une base de données grâce à WebDev.

WebDev 12 permet de générer des Mise en œuvre Installation


gadgets Vista. Un gadget Vista,
Une fois votre gadget Vista créé, dans le
c’est une mini-application qui est Pages spécifiques cas où c’est un gadget dynamique, il suffit
présente sur le bureau. Par défaut, Pour créer un gadget Vista, il suffit de de le déployer sur un serveur équipé du
Windows Vista propose une série commencer par créer une nouvelle page serveur d’application WebDev, comme vous
de gadgets : un calendrier, un mini- pour Gadget Vista. le faites pour vos sites habituels (depuis le
diaporama, etc. Dans la description de la page, il est pos- menu "Atelier – Créer la procédure d’ins-
WebDev permet de réaliser des sible de définir le type de page corres- tallation".
gadgets capables d'accéder à pondant : Une fois le site déployé (c'est-à-dire les
des bases de données (Hyper File, •  Soit c’est la page principale du gad- pages AWP contenant le code serveur du
get, celle qui est toujours affichée sur
Oracle, SQL Server...) ce qui peut gadget), il reste à générer l'installation du
le bureau. gadget. Ce type d'installation est spécifique
permettre de transformer l'espace
•  Soit c’est la page de configuration du et génère un fichier ".gadget". Ce fichier
"gadget" en un mini-tableau de gadget Vista. est automatiquement généré par WebDev
bord : nombre de messages à trai- •  Soit c’est une page FlyOut. Les pages depuis le bouton "Générer le gadget Vista"
ter, chiffre d'affaire en temps réel, "FlyOut", sont toutes les pages qui ne sont du menu "Atelier .. Gadget Vista".
etc. ni des pages principales ni des pages de
configuration. C’est ce fichier ".gadget" que vous pourrez
Les gadgets Vista reposent sur du mettre en téléchargement sur votre site, et
code HTML, la génération de ces Rappel : La page de configuration du Gadget qui installera le gadget Vista sur le bureau
gadgets est donc à réaliser avec Vista, c'est la page qui s’ouvre quand on des internautes.
WebDev. clique sur la clé au niveau du gadget. Cette
page permet à l'utilisateur de paramétrer Note : Dans le cas d’un gadget statique, il
le fonctionnement du gadget. suffit de générer directement ce ".gadget",
il n’y a rien à déployer au préalable.
Fonctionnement
Avec WebDev 12, il est possible de créer Fonctions spécifiques
deux types de gadgets : En plus de pages spécifiques pour le déve- Exemple
• Des gadgets statiques. Ces gadgets sont loppement de gadget, WebDev propose un
L'exemple "MesNews" est une version
les plus simples et sont des points d'entrées nouvel ensemble de fonctions. Les fonctions
allégée du gadget présenté lors du
vers des sites Internet. Ils n'accèdent pas GadgetXXX (disponible en code navigateur)
TDF Tech 2008.
à une base de données. permettent de mémoriser des informa-
Ce Gadget "MesNews" contient deux
• Des gadgets dynamiques AWP. tions pour le gadget (sa configuration par
pages :
exemple) et de provoquer l'ouverture de
Pour qu'un gadget Vista accède à des don- • La page "page_Gadget" est la page prin-
page "FlyOut".
nées d’une base de données, il est néces- cipale du gadget.
saire de créer un gadget dynamique. // Chargement de la liste • La page "page_Configuration" est la page
// des colis de configuration du gadget.
Gadget dynamique SAI_1=GadgetChargeParamètre(...
csContenuGadget)
Les gadgets dynamiques reposent sur le Le principe est ici de suivre de façon régu-
mode AWP de WebDev. Chaque page dyna- Par exemple, pour charger et sauver les lière la livraison d'un colis :
mique du gadget est une page AWP. paramètres choisis par l’internaute, les • La page de configuration permet de saisir
développeurs disposent des fonctions les numéros de colis à suivre. Par exemple
Le gadget va contenir une version "statique"
WLangage GadgetChargeParamètre et "PE0000000007".
de ces pages qui lors de leur chargement
GadgetSauveParamètre. • La page principale du gadget interroge
vont automatiquement interroger le serveur
de déploiement contenant les pages AWP. régulièrement (à l'aide d'un timer) la base
En plus de ces fonctions spécifiques, les de données pour obtenir des informations
Pour le développeur, développer un gadget développeurs peuvent utiliser toutes sur le colis.
dynamique revient à développer une page les fonctions navigateur et serveur du
AWP avec quelques spécificités supplémen- WLangage.
taires liées au gadget.

90 - TDF TECH 2008 - www.pcsoft.fr


TDF Tech 2008

Annexes

I - TDF TECH 2008 - www.pcsoft.fr


Annexe A

Quelques commandes du WLangage

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.

Commandes de gestion de fichiers


Commande / Syntaxe But

EcranVersFichier Renseigner le buffer fichier d’après les données saisies


par l’utilisateur dans la fenêtre.

FichierVersEcran Initialiser une fenêtre d’après les dernières valeurs lues


dans le fichier.
HAjoute(NomFichier) Ajouter dans le fichier l’enregistrement préparé en
mémoire.
HCréationSiInexistant(NomFichier) Ouvrir le fichier en le créant à vide auparavant s’il
n’existait pas sur disque.
HErreurDoublon() Tester le compte-rendu renvoyé par le moteur de base de
données en cas de tentative de création de doublon.

HErreurIntégrité() Tester le compte-rendu renvoyé par le moteur de base de


données en cas de tentative d’écriture d’enregistrement
ne respectant pas les contraintes d’intégrité.

HFiltre(NomFichier,Clé,Valeur) Filtrer les enregistrements du fichier dont la clé indiquée


correspond à la valeur choisie.

HLitDernier(NomFichier, Clé) Se positionner sur le dernier enregistrement du fichier


selon la clé spécifiée et charger l’enregistrement en
mémoire.
HLitPrécédent(NomFichier, Clé) Se positionner sur l’enregistrement précédent du fichier
selon la clé spécifiée et charger l’enregistrement en
mémoire.
HLitPremier(NomFichier,Clé) Se positionner sur le premier enregistrement du fichier
selon la clé spécifiée et charger l’enregistrement en
mémoire.
HLitRecherchePremier(NomFichier,... Rechercher le premier enregistrement du fichier dont la
Clé, Valeur) clé indiquée correspond à la valeur choisie, puis charger
l’enregistrement en mémoire.

II - TDF TECH 2008 - www.pcsoft.fr


Annexes
HLitSuivant(NomFichier,Clé) Se positionner sur l’enregistrement suivant du fichier
selon la clé spécifiée et charger l’enregistrement en
mémoire.
HModifie(NomFichier) Réécrire l’enregistrement courant du fichier avec les
valeurs stockées en mémoire.
HRaz(NomFichier) Remettre à zéro (réinitialiser) l’enregistrement du
fichier.
HSupprime(NomFichier) Supprimer l’enregistrement courant du fichier.

Compte-rendu du moteur de bases Valeur


de données

HEnDehors(NomFichier) Renvoie Vrai si on tente de lire un enregistrement au-


delà du début ou de la fin du fichier.

HTrouve(NomFichier) Renvoie Vrai après une recherche si la recherche a


abouti.

Autres commandes
Commande / Syntaxe But

DateSys() Récupérer la date système au format AAAAMMJJ.


Erreur(“Message”) Afficher un message d’erreur.

ExécuteTraitement(Champ,... Exécuter le traitement d’un champ ou d’une fenêtre.


Traitement)
HeureSys() Récupérer l’heure système au format HHMMSSCC.
Info(“Message”) Afficher un message d’information.
Confirmer(“Question”) Poser une question à l’utilisateur (la réponse est un
booléen) .

RAZ() Remettre à zéro (réinitialiser) tous les champs de


l’écran.
RepriseSaisie(NomChamp) Interrompre le traitement en cours et positionner le curseur
sur le champ spécifié.

TableAffiche(NomTable, Position) Réafficher un champ table fichier (à l’écran) d’après les


données du fichier sur disque.

ListeAjoute(NomListe, chaine) Ajouter une ligne dans un champ liste ou combo.


ListeSupprime(NomListe) Supprimer une ligne de liste ou combo.

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.

TDF TECH 2008 - www.pcsoft.fr - III


Annexe B

Les principales touches de raccourci

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

Principales touches de raccourcis de l’éditeur de fenêtres


Touche But

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.

Principales touches de raccourcis de l’éditeur de code


Touche But

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

F4 Créer une procédure locale (Shift + F4 pour créer une procédure


globale).
F8 Liste des procédures locales (CTRL + F8 pour la liste des
procédures globales).

F11 Liste des fichiers, requêtes et rubriques.


CTRL+C, CTRL+V, CTRL+X Copier, Coller, Couper du code.
CTRL + « / » (pavé numérique) Mettre en commentaire (CTRL + Shift + “ / ” pour enlever les
commentaires).
ALT + T Activer la pipette pour sélectionner le nom d’un champ d’une
fenêtre.

IV - TDF TECH 2008 - www.pcsoft.fr

Vous aimerez peut-être aussi