Fig.2 Fig.1
28
outils \\ atelier
require_once($CheminRepRes.'WD12.0/WD120HF.php'); // Equivalent de [%URL()%] $gszURL = 'PAGE_Page1.php'; session_start(); // protection contre register_globals = on unset($PAGE_PAGE1); if (SID != '') $gszURL .= '?'.SID; ChangeAlphabet(0, false); $gtabCheminPage = array(); la cration de fichier PDF et lenvoi vers limprimante par dfaut ou lajout de somme, moyenne et comptage dans une colonne ou le positionnement dune minuterie sur un bouton (le dveloppeur peut bien entendu dsactiver ces fonctions). [Fig.3] La notion de composant permet de crer facilement son propre framework de dveloppement. Les principaux concepts disponibles sont : notion dhritage, hritage multiple dIHM, modle de champs, composant et composant interne, collection de procdures, fentre et page interne, Web service, brique de code.
Fig.3
Fig.4
29
outils \\ atelier
ou un Flash dans une fentre, interrupteur, slecteur, potentiomtre, jauge, arbre, champs html et XAML, champ ou liste image). Ces composants se glissent facilement sur les IHM avec une aide la saisie au niveau des fonctions de programmation et des aspects graphiques pointus permettant de dfinir une transparence sur le cadre extrieur dun onglet, des transitions visuelles entre le passage dun onglet un autre sans programmation, des effets de slection et de survol sur les slecteurs et interrupteurs ou les barres de mise en forme RTF sur les champs de saisie, activation et dsactivation du grisage des fentres inactives en modifiant le pourcentage de grisage et adaptation la luminosit de lcran. Exemple de programmation dun champ combo : gsCodeAnimateur est une chane gsCodeAnimateur = COMBO_ANIMATEURS[COMBO_ANIMATEURS] //gsCodeAnimateur contient la valeur de llment slectionn gsCodeAnimateur = COMBO_ANIMATEURS //gsCodeAnimateur contient lindice de llment slectionn (position dans la liste) i = 3 gsCodeAnimateur = COMBO_ANIMATEURS[i] //gsCodeAnimateur contient la valeur de llment positionn en 3me position dans liste ListeSelectPlus(COMBO_ANIMATEURS,ListeCherche(COMBO_ANIMATEURS, "TOUS")) //slectionne et vient positionner llment " TOUS " dans la liste ListeSelectPlus(COMBO_ANIMATEURS,6) //slectionne et vient positionner le 6me lment de la liste ListeSelect(COMBO_ANIMATEURS) //renvoie lindice de llment slectionn dans la liste SI PAS HExcuteRequte(REQ_SEL_CONTRAT) ALORS Erreur("Erreur d'initialisation de la requte"+RC+ErreurInfo()) HFermeConnexion(ConnexionOracle) FinProgramme() FIN HLitPremier(REQ_SEL_CONTRAT) TANTQUE PAS HEnDehors(REQ_SEL_CONTRAT) ListeSelectPlus(COMBO_TYPE,ListeCherche(COMBO_TYPE,REQ_SEL_ CONTRAT.TYPE,Faux)) SAI_DATE_DEBUT = REQ_SEL_CONTRAT.DATE_DEBUT TableAjouteLigne(TABLE_CONTRAT, REQ_SEL_CONTRAT.NUMERO, REQ_ SEL_CONTRAT.QTE) HLitSuivant(REQ_SEL_CONTRAT) FIN HAnnuleDclaration(REQ_SEL_CONTRAT) Deux versions de l'diteur de requtes sont disponibles : lditeur intgr fourni avec WinDev , WebDev ou WinDev Mobile, utilisable lors du dveloppement dune application et lditeur utilisateur, uniquement pour WinDev et version indpendante de WinDev utilisable pour un utilisateur final Laccs aux donnes WinDev possde son propre SGBD : HyperFileSQL. Il supporte de nombreux autres systmes de gestion de bases de donnes, dont laccs se fait soit par lintermdiaire des protocoles ODBC ou OLE DB ou soit par accs natif comme pour les bases classiques Oracle, SQL Serveur, MySQL, PostgreSQL, Informix, Sybase [Fig.5] Lditeur de requtes L'diteur de requtes permet de crer automatiquement des requtes sur les fichiers de donnes prsents dans lditeur danalyse. La cration d'une requte est trs simple et intuitive ; il suffit de slectionner le type de requte (select, insert, update, delete, union ou mode SQL) et de choisir le fichier et les colonnes. La requte est automatiquement gnre en code SQL et peut tre teste immdiatement. Il est possible de passer des paramtres (mme dans les rubriques calcules), de faire des tris, des comptes des sommes des moyennes et de crer des liaisons et des jointures. Exemple : REQ_SEL_CONTRAT.Param1 = Val(SAI_NUMERO)
Fig.5
Fig.6
30
outils \\ atelier
Des ordres spcifiques sont dfinis en fonction du type daccs : SQLExec("SELECT QUANTITE FROM PRDUIT","REQ") ReqProduit est une Source de Donnes HExcuteRequteSQL(ReqProduit,"SELECT QUANTITE FROM PRDUIT") HExcuteRequte(REQ_SEL_QUANTITE_PRODUIT) Un spectre applicatif vari Les produits PC Soft sont prsents dans de nombreux domaines applicatifs : - la VoIP pour centres dappels sur PC-BX qui gre tous types de mdias ; - linformatisation de trafic portuaire (tracking de navires en liaison avec la capitainerie et les agents maritimes et confrences virtuelles et portail portuaire via WebDev ; - sur les chanes de tlvision avec le pilotage des sources vido et audio (WinDev traduit les voix au format PCM et les transforme en WAV), et la gestion du dcrochage publicitaire (gr par le multithreading) ; - lanalyse des bancs dessais des moteurs dengins agricoles et le suivi des comptences des oprateurs ; - progiciel de traduction des changes de donnes informatises (EDI) bas sur XML et sur des conversions en feuilles XSLT pour les feuilles de style Google WinDev et WebDev permettent les interactions natives avec les applications Google. Exemple de code qui rcupre une liste de produits et laffiche : MaConnexion est une gglConnexion MaConnexion.Email = " Nom@gmail.com " MaConnexion.MotDePasse = " motdepasse " GglConnecte(MaConnexion) MesProduits est un tableau de gglProduits MesProduits = GglListeProduits(MaConnexion) TableAffiche(TB_PRODUITS) [Fig.6] Google Maps Avec WinDev il est possible de rcuprer une carte et de lafficher, de demander le dessin dun itinraire sur la carte, la longitude et la latitude, le taux de zoom etc. Exemple de types et de proprits : GglMarquer, GglChemin sont des exemples de types possdant de nombreuses proprits : ..Latitude, ..Longitude, ..Taille, ..Couleur, ..Opacit etc. Google Agenda : En WLangage, rcuprer la liste de ses agendas, des rendez-vous de chacun dentre eux et de les modifier sont des traitements ralisables nativement. Exemple de types et de proprits : GglAgenda, GglEvenement sont des exemples de types possdant de nombreuses proprits : ..Titre, ..DatePublication, ..Contenu, ..Auteur etc. Google Contacts : WinDev permet par exemple de raliser une application qui synchronise les contacts dun tlphone portable avec ceux de Google. GglContact est un exemple de type possdant les proprites ..Nom, ..Email, .. Tlphone etc. La gestion des documents Google Docs et Google Spreadsheets avec les fonctions GglRcupreDocument et GglEnvoiDocument permet de manipuler les documents par eux-mmes (upload de documents, recherche parmi les documents, rcupration de la liste des documents et leurs dtails grce aux proprits ..Auteur ou ..Titre par exemple). Via un ActiveX dans son application ou un Plug In dans le site, GoogleEarth nest pas oubli ; nativement en WLangage il est possible de positionner des marqueurs, du texte, de dplacer la camra, zoomer la souris ou dfinir un chemin.
Conclusion
Connaissant WinDev depuis la version 5, jai eu loccasion de le pratiquer tous niveaux de poste (de dveloppeur responsable informatique), jappor te maintenant mon exper tise en tant que consultant. Pour rsumer en quelques mots ce retour dexprience, je dirai que WinDev a souvent t critiqu cause de son manque douverture li au dongle obligatoire, limitant de ce fait sa reconnaissance au niveau tudiant par exemple, bien quil existe des versions ducation WinDev et WebDev tarif adapt. En tant que produit initialement francophone, il a pu peut tre limit dans son expansion linternational (PCSoft est prsent dans plusieurs dizaines de pays, ndlr) et enfin sa facilit lui a parfois valu, tort, la critique dtre un outil " amateur ". WinDev se distingue en effet par sa facilit dutilisation et une productivit remarquable. Voici un exemple concret : un projet de 5 000 jours homme dvelopp initialement en WinDev a voulu tre rcrit dans un langage " nouvelle techno " que je ne cite volontairement pas. Le budget initial a t port 25 000 j/h et je pense que le seul rsultat positif de ce projet a t davoir permis des dizaines de prestataires den vivre pendant quelques annes ! La dernire version offre encore un meilleur confort au dveloppeur avec une meilleure adaptabilit aux grands crans et une refonte de linterface et permet en quelques clics de gnrer des IHM pour une multitude denvironnements (Windows 32 et 64 bits, Windows Mobile, Linux, Java, .Net etc.) et de bases de donnes. Au fil du temps, le succs de WinDev ne sest pas dmenti. Ne soyons pas trop puriste, gardons lesprit PME (pragmatique, malin, efficace), WinDev a de beaux jours devant lui pour des quipes sachant lutiliser de faon optimale. Un service informatique nest plus uniquement une course en avant vers la technologie et cela depuis bien des annes, mais bien un service au premier sens du terme, cest--dire lapport defficacit aux utilisateurs pour faciliter le business de lentreprise. David Vandevelde Consultant en gestion de services et de projets, expertise WinDev (audit, formation, ralisation) d.vandevelde@laciteduweb.com
31