87

Click here to load reader

TDF Tech 2015 - PCSOFT - Windev, Webdev, Windev Mobile

Embed Size (px)

Citation preview

  • TDF Tech 2015 Support de cours

    TDF Tech 2015 - www.pcsoft.fr - 1

  • Le document que vous avez entre les mains na pas la finalit de remplacer les documentations techniques ou commerciales livres avec WINDEV, WEBDEV ou WINDEV Mobile.

    Ce document nest pas un cours dauto-formation, mais uni-quement un support papier de la prsentation technique que vous avez suivie.

    Ce document a t ralis par lquipe de la LST.

    TDF Tech 2015 - www.pcsoft.fr - 3

    TDF Tech 2015 - www.pcsoft.fr - 3

  • TDF TECH 2015 SOMMAIRE

    Retrouvez dans ce support de cours les sujets abords lors du TDF Tech 2015.Le code source des diffrentes applications et projets indiqus dans ce support de cours est prsent sur le DVD du TDF Tech 2015.

    4 Sommaire

    8 PC SOFT votre service

    10 WINDEV Prsentation rapide de WINDEV et de ses fonctionnalits

    12 WEBDEV Prsentation rapide de WEBDEV et de ses fonctionnalits

    14 WINDEV Mobile Prsentation rapide de WINDEV Mobile et de ses fonctionnalits

    18 Centre de Suivi de Projets : exigences, tableau de bord, ... Le Centre de Suivi de Projets regroupe toutes les informations sur les projets dans une interface de type tableau de

    bord. Des onglets permettent une navigation intuitive entre les diffrentes fonctionnalits : liste des tches, liste des exigences, suivi des incidents, statistiques, graphes, ...

    20 Composant CCFeedback Le composant CCFeedback permet vos utilisateurs denvoyer des suggestions, des tickets dincidents ou des rgles

    mtier. Ces lments sont automatiquement rcuprs dans le Centre de Suivi de Projets.

    22 Le Centre de Contrle HFSQL Le Centre de Contrle HFSQL fait partie des outils incontournables.

    En version 20, cet outil a volu. Le nouveau Centre de Contrle HFSQL est plus intuitif, plus agrable utiliser, plus rapide et plus ergonomique. Il vous propose les options que vous attendez au moment o vous les attendez !

    24 Le champ Carte LechampCartepermetdafficherunecarteGoogledansvosapplicationsetvossites.

    Vouspouvezajouterdesmarqueurs,desitinraires,modifierlaposition,etc. VouspouvezmmeallerplusloinenmanipulantdirectementlobjetGoogle.

    4 - TDF Tech 2015 - www.pcsoft.fr

  • 26 Le WLangage: nouveauts utiles Le WLangage, cest votre outil de travail au quotidien.

    Cest un langage moderne, performant et qui senrichit danne en anne. Voici quelques nouveauts remarquables de la version 20.

    30 Astuces de dbogage Parmi toutes les fonctionnalits de WINDEV, WEBDEV et WINDEV Mobile, celle qui est la plus utilise est sans doute le

    dbogueur. Cet article vous prsente plusieurs nouveauts et fonctionnalits souvent mconnues, sur le dbogueur.

    32 Nouveauts sur les tats Les ditions sont incontournables dans une application de gestion : rapport, statistiques, listing, etc.

    La version 20 apporte son lot de nouveauts sur les ditions. Petit tour dhorizon de nouvelles fonctionnalits et de fonctionnalits existantes.

    34 PCSCloud : votre solution Cloud PCSCloud propose des plateformes dexploitation pour dployer vos installations, sites WEBDEV, Webservices et bases

    de donnes HFSQL. PCSCloudproposegalementdesplateformesdedveloppementpourstockeretpartagervosprojets(GestionnairedeSources),lesdonnesdevosCentresdeContrleetlaconfigurationdevotreenvironnementdedveloppement.

    36 HFSQL : les vues En version 20, HFSQL offre la possibilit de crer des vues SQL.

    Quest-ce quune vue ? Comment la manipuler ? Voici les rponses, en images.

    38 Tableau crois dynamique : 4 raisons de lutiliser Le champ Tableau crois dynamique est LE champ dcisionnel incontournable pour vos applications.

    Voici 4 bonnes raisons dintgrer ce champ dans vos applications et de satisfaire vos utilisateurs.

    40 Le champ Graphe Secteur multiniveau Le graphe Secteur multiniveau permet de reprsenter visuellement des donnes arborescentes et de naviguer parmi les

    diffrents niveaux. Voici 3 utilisations diffrentes de ce nouveau graphe.

    TDF Tech 2015 - www.pcsoft.fr - 5

  • TDF TECH 2015SOMMAIRE (SUITE)

    42 Onglets dynamiques : moderniser une application Les onglets dynamiques permettent de proposer une interface moderne et intuitive.

    Cet article vous prsente lutilisation de ce champ ainsi que la transformation pas pas dune interface fentre MDI en onglet dynamique.

    44 Le champ Tableur Le champ Tableur vous permet dintgrer un tableur directement dans vos applications !

    Plusbesoindegrerdeslicences,dinstallerOfficeoudemanipulerunActiveX,... Vous utilisez un champ et des ordres WLangage adapts !

    46 Le champ Confrence Le champ Confrence vous permet dchanger la vido et le son entre deux applications situes sur deux machines

    distantes. Avec1champet2fonctionsWLangage,vousralisezsimplementetrapidementunoutildecommunication.

    48 Editeur de fentres En version 20, lditeur de fentres volue pour encore plus de productivit et dergonomie.

    Danscesujet,nousvousprsentons11fonctionnalitstrsutilesdelditeurdefentres. Lisez attentivement, vous allez certainement dcouvrir de nombreuses fonctionnalits mconnues.

    50 Architecture logicielle MVP (Modle-Vue-Prsentation) Bien architecturer son projet, cest un aspect essentiel du dveloppement.

    Larchitecture MVP (Modle-Vue-Prsentation) est une architecture logicielle trs rpandue, quil est possible dutiliser facilement avec WINDEV 20. Cet article dtaille une utilisation de cette architecture.

    52 Applications transportables (PortablesApps) Une application transportable est une application qui peut tre copie sur une cl USB pour tre utilise nimporte o !

    AvecWINDEV,vouspouvezcrercegenredapplicationfacilement. Attentiontoutefois:ilyaquelquesrglesrespecter.

    54 Un tableau de bord dans vos sites Equivalent du champ Tableau de bord disponible dans WINDEV, le champ Tableau de bord de WEBDEV reprend les

    mmes concepts mais adapts au Web ! Idalpouravoirunevisionglobaleousynthtique,ilvarapidementdevenirINDISPENSABLE!

    56 7 astuces pour matriser le champ Tableau de bord LechampTableaudeborddeWEBDEVpeuttredfinientirementenditiondanslaplupartdescas.

    Il est cependant possible de le personnaliser prcisment par programmation. Voici 7 astuces connatre pour matriser le champ Tableau de bord !

    58 Des graphes interactifs en 1 clic RvolutioncomplteductduchampGraphedeWEBDEV20!

    6 - TDF Tech 2015 - www.pcsoft.fr

  • 60 Actualiser simplement des champs aprs un appel Ajax Simplifiezledialogueaveclutilisateuretrduisezlestempsderponsesgrcelactualisationautomatiquedeschamps

    aprsunappelAjax.

    61 Des sites plus rapides grce aux sessions prlances Lutilisationdessessionsprlancespermetdacclrerlaffichagedespageseneffectuantparanticipationdes

    traitementslongs(connexionsauxbasesdedonnes,chargementdeconfigurationsetdepages,etc.).

    62 WEBDEV 20 : 5 astuces rapides mettre en uvre Formulaires originaux, changement dynamique de feuilles de styles CSS, effets automatiques sur les images, ruptures

    dans les tables, colonnes conteneur.

    64 Le champ Table en mobile Le champ Table est un champ incontournable dans les applications Windows.

    Enversion20,lesapplicationsAndroidetiOSdisposentdunchampTableproposantlesmmesfonctionnalitsetlamme richesse que dans une application WINDEV.

    66 Les agencements Lesagencementspermettent,enquelquesclics,dedfinirplusieursmisesenpagepourvosIHMmobiles.

    lexcution, WINDEV Mobile utilise automatiquement lagencement le plus adapt au priphrique dexcution, en fonction de la rsolution, de lorientation et du systme dexploitation.

    68 Nouveauts mobiles Mise en place du pull to refresh, utilisation du Touch ID, dsrialisation de contenu JSON, ...

    Voici quelques-unes des nouveauts mobiles de la version 20.

    70 RAD Mobile : cration dune table et dune fiche LesfentresRADpermettentdecrer,enquelquesclics,desfentresfonctionnellespourvosapplicationsAndroidet

    iOS disposant dune analyse. PlusieurstypesdefentresRADsontdisponibles:fiche(avecousansimage),table,zonerpte,etc. Ilsuffitdesuivrelassistant!

    Annexes76 Annexe 1 : Le GDS

    80 Annexe 2 : Intgration continue (fabrique logicielle)

    86 Annexe 3 : Les donnes dun champ TCD (cube ROLAP) dans un graphe

    TDF Tech 2015 - www.pcsoft.fr - 7

  • PC SOFT votre serviceNhsitez pas nous contacter : une journe de consulting est toujours rentable pour vos dveloppements.

    Assistance DirecteUn complment efficace du Support Technique GratuitTout projet important ou stratgique doit bnficier dune Assistance Directe !

    LAssistance Directe permet dune part de bnficier dun contact tlphonique immdiat avec un ingnieur spcialis, et dautre part de choisir les sujets traiter, et ce pour une dure que vous dfinissez vous-mme. Cela vous permet de rsoudre immdiatement les sujets qui vous posent problme.

    Le contact tlphonique est garanti sous 8 heures ouvrables, ce qui vous permet une meilleure efficacit. Ce service est disponible sur abonnement.

    Contactez le service commercial pour plus dinformations (Fabrice CHAMBON au 04.67.032.032).

    Support Technique Gratuit

    Le site du support technique gratuit (www.pcsoft.fr/st) met gratuitement votre disposition un ensemble dinformations destines vous aider mieux dvelopper :lesFAQlestlchargementslesforumsdveloppeursprofessionnels(NewsGroup)Vousavezunequestion?Contactez leSupportTechniqueGratuitPC SOFT !Avec lutilitaireRequteAuST(mdiaconseill).Votrerequteseragnralement traite sous 48 heures.Partlphoneau04.67.03.17.17(prparezvotrenumrodesrieetvotre question svp) ou par courrier.Envoi par email : merci de ne pas attacher de fichiers de taille suprieure 10 Mo sans laccord pralable de votre destinataire. Sinon votre fichier sera refus par le systme.

    ConsultingProfitez de lexprience dun ingnieur de PC SOFT sur votre siteUn consulting PC SOFT peut tre dlgu chez vous, pour une dure de 1 5 jours, un ingnieur PC SOFT connaissant la fois votre domaine et les outils que vous utilisez.Lingnieur PC SOFT rpond directement vos questions, travaille sur votre projet rel et votre configuration relle. Vous obtenez les rponses prcises qui vous font gagner un temps prcieux, et vous assurent des bonnes orientations technologiques et mthodologiques.

    Notre conseil ? Commandez 1 jour de consulting pour 100 jours de dveloppement.

    Et, chaque anne, prenez lhabitude de faire venir ( juste 2 jours) chez vous un ingnieur PC SOFT, pour profiter dune expertise de toutes les nouveauts.Sur votre projet, dans vos locaux, en votre prsence, lingnieur PC SOFT valide lanalyse, vous montre des nouveauts utiles dans votre cas de figure, vous propose des optimisations de votre code, valide vos modes dutilisation, ... Vous serez ravi de lefficacit de son intervention ! Budgtez dores et dj la prochaine intervention !

    Un assistanat vous fait gagner des journes de dveloppement!Quelquesexemplesdesujetstraits:Simplificationducodeetmiseenplacedenouvellestechniques:HFSQLClient/Serveur,Sockets,Webservices,Composants,Patchs,Configurations, TransformationdemodulesdveloppsavecWINDEVenWebservices.Optimisationdetraitementsavantlarecettedelapplication,validationdanalyse avant de dbuter une application.

    FormationSminaires de formation pour WINDEV, WEBDEV et WINDEV MOBILEPC SOFT organise Paris, chaque semaine, des sminaires de formation WINDEV,WEBDEVetWINDEVMobile,dediffrentsniveaux:Priseen main, Perfectionnement, Expert, Client/Serveur, ...

    Ces sminaires, anims par des ingnieurs PC SOFT expriments (comptence assure !), permettent de dcouvrir et de matriser WINDEV,WEBDEVetWINDEVMobileselonunplanefficace.Consultez le calendrier des sminaires joint (le dtail des stages et les contenuspdagogiquessontdisponiblessurnotresiteWeb:www.pcsoft.fr), vous trouverez LA formation adapte votre exprience et votre besoin.

    Suivre une formation organise par PC SOFT est toujours rentable : cestsedonnerlesmoyensdematriserWINDEVetWEBDEVdanslesmeilleurs dlais, ou den dcouvrir la face cache, encore plus puissante !Inscrivez-vousvite!Cessminairespeuventgalementtreorganissdans vos locaux, en France et ltranger.Le montant de ces formations est dductible du 1,5 % Formation.

    8 - TDF Tech 2015 - www.pcsoft.fr

    http://www.pcsoft.fr/stwww.pcsoft.frwww.pcsoft.fr

  • Prsentation

    TDF Tech 2015 - www.pcsoft.fr - 9

    TDF Tech 2015 - www.pcsoft.fr - 9

  • WINDEVPrsentationrapidedeWINDEV

    et de ses fonctionnalits

    WINDEVpermetdedvelop-per simplement tout type dapplicationsWindowsetLinux dans les domaines de la gestion, de lindustrie, du mdical, etc.

    PrsentationLes applications dveloppes peuvent inclure laccs des bases de donnes.WINDEVproposeunpuissantmoteurdebasededonnes:HFSQL.

    IlestconseilldutiliserHFSQLpourvosappli-cations afin dobtenir les meilleures perfor-mances dans vos traitements de fichiers. UneversionHFSQLClient/Serveurestaussidisponible.

    Lenvironnement de dveloppement intgr de WINDEVsecomposedediffrentsditeurs:Unditeurdeprojetpermettantdevisualiserle tableau de bord du projet.Unditeurdanalysespermettantlaccstouttypedebasesdedonnes(HFSQL,HFSQLClient/Serveur, xBase,MySQL**,AS/400*,Oracle*,SQLServer*,Access**,ODBC,OLE

    DB, ...).UnditeurUMLpermettantunemodli-sation objet de vos donnes et traitements.UnditeurdIHMaveccorrecteurdinterfaceen temps rel.Unditeurdecodevolu (avecassis-tants, vrification du code saisi, coloration syntaxique, aide contextuelle, ) incluant un puissant dbogueur.Unditeurderequtespourlesslectionsdenregistrements dans les fichiers.Unditeurdtats.Unditeurdaide.Unditeurdinstallation.Unditeurdedossiertechnique.*accsnatifoptionnel,**accsnatifinclus.

    Les outilsDes outils facilitant le dveloppement sont galementfournis(WDMAP,WDSQL,...)ainsique de nombreux exemples et assistants rutilisables.

    Des Centres de Contrle permettent la gestion du cycle de vie de vos applications ainsi que leur administration.

    Une aide en ligne vous guide tout au long du dveloppement de votre application. Cette aide inclut galement une aide la correction derreurs.UneversionInternetetactualisedelaideen ligne est disponible ladresse http://doc.pcsoft.fr.

    Les diffrents diteurs seront utiliss, depuis la dfinition dune analyse jusqu linstallation, en passant par toutes les phases du dvelop-pement (cration des fentres, des tats, des traitements...), sans oublier les sauvegardes.

    Les bases de donnesLemoteurHFSQLserautilispourlesfichiersde donnes des applications. La base de don-nesHFSQLestdisponibleenmodeClassicou Client/Serveur et est librement diffusable aveclesapplicationsWINDEV.

    Lutilisation dautres moteurs de bases de donnes est galement possible sur le mme principe.

    10 - TDF Tech 2015 - www.pcsoft.fr

    http://doc.pcsoft.frhttp://doc.pcsoft.fr

  • Exemples dutilisation du champ Graphe

    Exemple dutilisation du champ Planning

    Lditeur de code et son dbogueur

    Aperu avant impression

    TDF Tech 2015 - www.pcsoft.fr - 11

  • WEBDEVPrsentationrapidedeWEBDEV

    et de ses fonctionnalits

    WEBDEVestunAGL(AtelierdeGnieLogiciel)orientdve-loppementdesitesIntranetetInternet.WEBDEVpermetdedveloppertouttypedesites dynamiques incluant laccs des bases dedonnes.Ilpermetaussidedvelopperdessites semi-dynamiques et statiques ou PHP.

    Prsentation de WEBDEVWEBDEVestcomposdediffrentsditeurs:Unditeurdeprojetpermettantdevisualiserle tableau de bord du projet.Unditeurdepages.Unditeurdanalysespermettantlaccstouttypedebasesdedonnes(HFSQL,HFSQLClient/Serveur,MySQL**, xBase,AS/400*,Oracle*,SQLServer*,Access**,OLEDB,....).Unditeurdecodevolu (avecassis-tants, vrification du code saisi, coloration syntaxique, aide contextuelle, ) incluant un puissant dbogueur.Unditeurdestylesincluantpolice,couleur,position, etc.

    Unditeurderequtespourlesslectionsdenregistrements dans les fichiers.Unditeurdtats.Unditeurdedossiertechniquereprenantintgralement toutes les informations tech-niques de votre projet.Unditeurdinstallation.*accsnatifoptionnel,**accsnatifinclus

    Lditeur dinstallation assure la mise en place des sites crs, ainsi que leur maintenance. Cet outil permet de raliser une installation sur le serveur via FTP ou par mdia physique (CD, Zip, etc.).Des outils facilitant le dveloppement sont galement fournis (WDMAP,WDOUTIL,WDSQL,etc.)ainsiquedenombreuxexempleset assistants rutilisables.

    Les principaux diteurs sont utiliss, depuis la dfinition dune analyse jusqu linstallation, en passant par toutes les phases du dvelop-pement (cration de pages, traitements, tats, etc.), sans oublier les sauvegardes.

    Les Concepts Internet

    Les diffrents services de lInternet

    LetermeInternetregroupeplusieursservicesdutilisation diffrente :FTP(FileTransferProtocol)estunservicepermettant de transfrer des fichiers dun ordinateurversunautretraversInternet.SMTP(SimpleMailTransferProtocol)permetdenvoyer des messages ou mails un utilisa-teur dfini. Chaque utilisateur doit disposer dune adresse email qui lui sert de bote aux lettres.HTTP(HyperTextTransferProtocol)estunprotocole de niveau application qui est utilis pourletransfertdepagessurInternet.

    Chacun de ces services ncessite un ges-tionnaire de services install sur un serveur :LegestionnairedeservicesFTPgrelhber-gement des fichiers, les droits dutilisation des fichiers et la rponse aux demandes en provenance des autres postes.LegestionnairedeservicesSMTPprendencharge les demandes denvoi de messages et

    12 - TDF Tech 2015 - www.pcsoft.fr

  • le routage vers les serveurs POP (rception des messages) concerns.LegestionnaireWeb/HTTPpermetlhber-gement des pages et rpond aux demandes de consultation de la part des postes client.

    Le Web en dtailLespagesWebsontvisualisessurunpostepar lintermdiaire dunnavigateurWeb(InternetExplorer,FireFox,Chrome,Safari,Opera, etc.).

    Le navigateur interprte le contenu des fichiers au format HTML dcrivant les pages. On parle de pages HTML.WEBDEVgnreautomati-quement le code HTML et Javascript.Il est possible dafficherdirectement une page dans un navigateur en tapant son URL dans la zone adresse du navigateur.

    LURL (Uniform Resource Locator) correspond au che-min daccs de la page sur le serveur qui lhberge, par exemple :http://www.monserveur.com/page3.htm

    Si lURL ne correspond pas une adresse valide, une erreur de connexion est retourne dans lcran du navigateur.

    Si lURL est valide, la page demande saffiche dans le navigateur. Lutilisateur peut alors dclencher une action en cliquant sur un lien ou un bouton. La requte correspondante est alors envoye au serveur qui lanalyse.

    Le lien permet de lancer le chargement dune autre page ou bien de lancer une application Web.

    Site statique, semi-dynamique ou dynamique ?Le site statiqueest composdepagesconues lavance de manire dfinitive. Dans ce cas, le contenu des pages nvoluera pas dynamiquement en fonction dun choix de lutilisateur.Unsitesemi-dynamiqueestunsitestatiquecompos de pages conues lavance mais enrichies par une base de donnes. Dans ce cas, le contenu des pages nvoluera pas dynamiquement en fonction dun choix de lutilisateur. Lun des meilleurs exemples est un catalogue de pices dtaches.

    Unsitedynamiqueestconstitudepagesenrichies de donnes provenant dune base dedonnes.Ilestncessairedexcuterdestraitements daccs aux donnes sur le serveur permettant de constituer la page.

    WEBDEVpermetdedvelopperdessitesdynamiques composs de pages, de traite-ments serveur (accs aux bases de donnes, calculs, etc.) et de traitements excuts par le navigateur (contrles, traitements rp-titifs, etc.).WEBDEVpermetaussidedvelopperdessites statiques et semi-dynamiques.

    Fonctionnement dun site WEBDEVUnsiteWEBDEVdynamique,hbergsurun serveur, peut tre excut en appelant une URL particulire depuis un navigateur, par exemple :pourunsiteWEBDEVdynamiqueIntranet:http://www.monserveur.com/monappli.pour un site WEBDEV dynamiqueInternetAWP:http://www.monserveur.com/mapage.awp.pour un site WEBDEV dynamiqueInternetPHP:http://www.monserveur.com/mapage.php.

    Pour grer la partie dynamique des sites, WEBDEVutiliseunserveurdapplication.LeserveurdapplicationWEBDEVestunservice(ou daemon sous Linux) qui construit dyna-miquement les pages du site et les envoie au navigateurparlintermdiaireduserveurWeb.

    Principe de programmation WEBDEVLedbitentreleserveurInternetetleposteclient est plus lent quavec un rseau local classique. Les changes de donnes entre le poste client et le serveur doivent donc tre rduits pour que le site puisse sexcuter sans ralentissement.WEBDEVpermetdediffren-cier les traitements excuts sur le serveur et les traitements excuts sur le poste client.

    1. Les traitements sur le serveurLes traitements excuts sur le serveur sont lestraitementsprincipauxdelapplication.Ils

    concernent la gestion de la basededonnes(HFSQLetHFSQLClient/Serveur,xBase,AS/400,Oracle,SQLServer,Access, OLE DB, ...) et les trai-tements de calcul.Ces traitements sont crits en WLangage.

    2. Les traitements sur le poste clientLes traitements excuts sur le poste client sont les traite-ments de contrle de saisie, de vrification qui ne nces-sitent pas daccder au ser-veur. Ces traitements utilisent uniquement les informations contenues dans la page. Ces traitements peuvent tre crits enJavascriptouWLangage.Danscederniercas,WEBDEV

    se charge de convertir automatiquement le codeWLangageenJavascriptpourquilpuissetre excut par le navigateur.

    3. Administrateur WEBDEVLadministrateurWEBDEVestunexcutableinstall sur le serveur.Ladministrateur permet de configurer le nombre de connexions autorises en mme temps pour le serveur, par site, par utilisateur. Ilpermetaussidefixerletempsmaximumdexcution dune requte et le temps limite pour la dconnexion des utilisateurs inactifs.Ladministrateur peut tout moment afficher la liste des utilisateurs connects au site.

    TDF Tech 2015 - www.pcsoft.fr - 13

    http://http://http://http://http://http://http://

  • WINDEVMobile permet dedvelopper simplement tout type dapplications desti-nes tre utilises sur un Smartphone, un tlphone ou une tablette Android,untlphoneWindowsPhone,uniPhone ou un iPad et la plupart des terminaux mobiles(PocketPC,Symbol,Psion,...).

    PrsentationLes applications dveloppes peuvent accder des bases de donnes.WINDEVMobileinclutunpuissantmoteurdebasededonnes:HFSQLMobile.

    IlestconseilldutiliserHFSQLpourvosappli-cations afin dobtenir les meilleures perfor-mances dans vos traitements de fichiers. UneversionHFSQLClient/Serveurestaussidisponible.

    WINDEVMobilepermetgalementdacc-derauxbasesdedonnesSQLitepour lesapplications Android.

    EnvironnementLenvironnement de dveloppement intgr deWINDEVMobilesecomposedediffrentsditeurs :Unditeurdeprojetpermettantdevisualiserle tableau de bord du projet.Unditeurdanalysespermettant laccstouttypedebasesdedonnes (HFSQL,HFSQLClient/Serveur,...).UnditeurUMLpermettantunemodli-sation objet de vos donnes et traitements.UnditeurdIHMaveccorrecteurdinterfaceen temps rel.Unditeurdecodevolu (avecassis-tants, vrification du code saisi, coloration syntaxique, aide contextuelle) incluant un puissant dbogueurUnditeurderequtespourlesslectionsdenregistrements dans les fichiers.Unditeurdtats.Unditeurdinstallation.Unditeurdedossiertechniquereprenantintgralement toutes les informations tech-niques de votre projet.

    Des outils facilitant le dveloppement sont galement fournis ainsi que de nombreux exemples et assistants rutilisables.

    Des Centres de Contrle permettent la gestion du cycle de vie de vos applications ainsi que leur administration.

    Une aide en ligne vous guide tout au long du dveloppement de votre application. Cette aide inclut galement une aide la correction derreurs.UneversionInternetetactualisede laide en ligne est disponible ladresse http://doc.pcsoft.fr.

    LemoteurHFSQLMobileserautilispourlesfichiers de donnes de lapplication.

    Lutilisation dautres moteurs de bases de donnes est galement possible sur le mme principe.

    WINDEV MOBILEPrsentationrapidedeWINDEVMobile

    et de ses fonctionnalits

    14 - TDF Tech 2015 - www.pcsoft.fr

    http://doc.pcsoft.fr

  • Vous ralisez des applications mobiles (tlphone et tablette)pour Android, iOS, Windows Phone, Windows CE, ...

    TDF Tech 2015 - www.pcsoft.fr - 15

  • 16 - TDF Tech 2015 - www.pcsoft.fr

  • Support de cours

    TDF Tech 2015 - www.pcsoft.fr - 17

    TDF Tech 2015 - www.pcsoft.fr - 17

  • CENTRE DE SUIVI DE PROJETS :EXIGENCES, TABLEAU DE BORD, ...

    Le Centre de Suivi de Projets regroupe toutes les informations sur les projets dans une interface de type tableau de bord.Des onglets permettent une navigation intuitive entre les diffrentes fonctionnalits : liste des tches, liste des exigences, suivi des incidents, statistiques, graphes, ...

    Organisation hirarchiseUne liste dexigences peut tre dcoupe en plusieurs dossiers (par exemple, pour dcouper les exigences par version livre un client).

    tat et avancementPour chaque exigence, dun coup dil, vous visualisez ltat gnral (dbute, termine,...) et ltat par type de tches (dve-loppement, test, documentation). Lavancement des tches et de la correction des incidents est galement visible.

    Exigences : gestion des fonctionnalits mettre en uvre

    PersonnalisationLaffichage peut tre personnalis 100 % : vous paramtrez les colonnes afficher, selon vos besoins et votre mthodologie.Pour chaque liste dexigences, il est possible de dfinir des colonnes supplmentaires, pour mmoriser une information spcifique (onglet Rubriques supplmentaires dans la description de la liste dexigences).

    Liaisons aux tches et incidentsDans la description dune tche ou dun incident, dans longlet Liaison, pensez bien indiquer toutes les exigences impactes.De cette faon, ltat des exigences sera plus proche de la ralit.Cela amliorera galement la vracit des informations affiches dans le tableau de bord (voir page suivante), notamment les informations du widget Exigences contrler.

    18 - TDF Tech 2015 - www.pcsoft.fr

  • PersonnalisationLorganisation du tableau de bord est enti-rement paramtrable : les widgets peuvent tre dplacs, masqus, ajouts.Vous modulez votre tableau de bord selon votre faon de travailler.

    Filtre global ou spcifique ?Par dfaut, chaque widget du tableau de bord utilise le filtre global, cest--dire le filtre dfini dans le ruban : liste dexigences, lot dincidents, etc.Si vous le souhaitez, il est possible de personnaliser le filtre pour un widget donn (par exemple, forcer un lot dincidents diffrent du filtre global).De cette faon, vous pouvez afficher plusieurs fois le mme widget mais avec des contenus diffrents.

    Tableau de bord : vision synthtique de ltat dun projet

    Critres de filtresLe volet Tableau de bord du ruban permet de dfinir les critres de filtres des widgets affichs pour affiner la vision.Cela permet dafficher une vision globale sur une liste dexigences ou une vision plus prcise sur un sous-dossier de la liste.

    Des volets indpendantsLe Centre de Suivi de Projets permet douvrir autant de volets que vous le souhaitez.Diffrentes vues sont disponibles : tableau de bord, tches, incidents, exigences, planning, demandes, statistiques.Chaque volet est indpendant et dfinit ses propres filtres daffichage.

    Vouspouveztoutfait,parexemple,ouvrir2voletsIncidentsaffichantrespectivementlesincidentsdupro-jet A et les suggestions du projet B.

    Pour ajouter un volet, cliquez sur le bouton + ( droite des volets dj prsents) ou cliquez sur loption Nouvelle vue du menu contextuel des volets.

    TDF Tech 2015 - www.pcsoft.fr - 19

  • Le composant CCFeedback permet vos utilisateurs denvoyer dessuggestions,desticketsdincidentsoudesrglesmtier.Ceslmentssontautomatiquement rcuprs dans le Centre de Suivi de Projets.

    COMPOSANT CCFEEDBACK

    1 Intgration du composantPourbrancherlagestiondesretoursclient,ilestncessairedimporterlecomposantCCFeedbackdansleprojet.DepuislevoletAssistants,ExemplesetComposants,danslalistedesComposantsutilitaires,utilisezloptionImporterdumenucontextuelsurlelogoduCCFeedback.

    ImportantSivousavezintgrlecomposantCCFeedbackdansvosapplications,les erreurs WLangage sont automatiquement gres par le composant.LorsquuneerreurWLangageestdtecteenexcution,lassistantdenvoidincidentssouvriraaveclesinformationsprrempliespourledbo-gage, le dump de dbogage, la pile, une copie dcran, etc.

    2 Configuration du composantLecomposantFeedbackdisposede2modesdefonctionnement:unmodeexterneetunmodeinterne.Mode externeLe mode externe permet denvoyer les demandes par email. Ce mode doit tre configur directement dans lapplication via la procdure

    Configure fournie par le composant. La documentation du composant fournit toutes les informations ncessaires sur les paramtres configurables.// Paramtrage de lenvoi de lemailpFeedback.Configure(fbEmail, [email protected])pFeedback.Configure(fbServeurSMTP, monserveursmtp)...// Lance lassistant de nouvelle demandepFeedback.NouvelleDemande()

    Mode interneDans le mode interne, les demandes sont envoyes directement dans le Centre de Suivi de Projets. Ce mode est utilis pour les applications quisontinstallessurvotrerseaulocalparexemple.Laconfigurationdumodeinterneestautomatique:siunproduit(WINDEV,WEBDEVouWINDEVMobile)estinstallsurleposte,lecomposantCCFeedbackledtectera.

    3 Traitement des demandes depuis le Centre de Suivi de ProjetsDepuis le Centre de Suivi de Projets, vous avez accs aux demandes clients depuis la vue (onglet dynamique) Demandes.Un widget Demandes est galement disponible dans la vue Tableau de bord.

    partir dune demande client, vous pouvez crer (via le menu contextuel) :unetche,silademandeconcerneunedemandedvolution,unincident,silademandeconcerneunbug.

    Ilestgalementpossibledelierlademandeunetcheouunincidentexistant(si2demandesconcernentlemmebug,ilestbienentenduprfrablequellessoientliesunmmeticket).

    Pour savoir comment intgrer les demandes utilisateur reues par email dans le Centre de Suivi de Projets, nhsitezpasconsulterlapagedaideassocie:http://doc.pcsoft.fr/fr-FR/?3540719.

    20 - TDF Tech 2015 - www.pcsoft.fr

  • Le menu ?Pour ajouter le menu ? une fentre, sous le volet Fentre, dans le groupe Barres et menus, droulez Menu principal et slectionnez Ajouter le menu ? (la fentre doit disposer dun menu principal).

    Ce menu, facilement paramtrable, dispose de nombreuses options :affichagedesnouveautsde lapplication,de laidede lapplication,desFAAoudes Le saviez-vous,lancementdoutilsdedbogageouderplication,crationetmodificationdtatsetderequtes,...

    Dans le cas de la gestion des retours client, deux options sont intressantes pour lutilisateur :Envoyerunesuggestion,undysfonctionnement,unerglemtier...qui lancelassistant prsent ci-dessus,Consulterlesdemandesenvoyesquipermetdeconsultertouteslesdemandesenvoyes.

    Assistant de saisie dune demandeLassistant de saisie dune demande est trs simple dutilisation.1. Lutilisateur choisit le type de demande (selon le paramtrageducomposantCCFeedback),2. Lutilisateur dcrit sa demande :unrsumdelademande,ledtailcomplet,desinformationsspcifiquesautypededemande(par exemple, un protocole de reproduction dans le cadre dun incident).

    La demande peut tre accompagne dune capture dcran pour aider le dveloppeur comprendre la demande.

    TDF Tech 2015 - www.pcsoft.fr - 21

  • LeCentredeContrleHFSQLfaitpartiedesoutilsincontournables.Enversion20,cetoutilavolu.LenouveauCentredeContrleHFSQLestplusintuitif,plusagrableutiliser,plusrapideetplusergonomique.Ilvouspropose les options que vous attendez au moment o vous les attendez !

    LE CENTRE DE CONTRLE HFSQL

    Un onglet par lment ouvertPour chaque lment ouvert (serveur, base, fichier,...), un onglet spcifique est ajout.

    Cela permet de se repositionner rapidement sur un lment ouvert prcdemment.

    Un ruban spcifique llmentLe ruban est dynamique et sadapte llment en cours de visualisation.

    Vous avez donc toujours les options intressantes pour llment concern !

    Des onglets dtachablesChaque onglet peut tre dtach duCentredeContrleHFSQL.

    Ilestalorsfaciledevisualiserdeux lments simultanment (pour analyser deux fichiers par exemple).

    22 - TDF Tech 2015 - www.pcsoft.fr

  • Un compte rendu dexcutionAprs lexcution dune requte, un compte rendu est dis-ponible dans longlet Comptes rendus.

    Un compte rendu permet de savoir si la requte a correcte-ment t excute, le nombre denregistrements impacts, etc.

    Les comptes rendus dun volet requte sont conservs tant que le volet nest pas ferm.

    IlestpossiblederejoueruncodeSQLprcdemmentexcutvia le bouton Remplacer.

    Une explication de lexcutionLanalyseEXPLAINdunerequtepermetdesavoir,enfonctiondesdonnesrelles,commentlemoteurHFSQLaexcutlarequte:quels fichiers il a parcouru, sur quelles cls, avec quels filtres, ...

    LexempleWDAnalyseurExplainHFSQL(livrenstandardavecWINDEV)permetdereprsentervisuellement le dtail du plan dexcutiondunerequteSQL.

    Des options utilesLe ruban dune requte propose de nombreuses fonctionnalits trs utiles.

    Ilestparexemplepossibledexcuterunerequtedansunetransaction.Avec une requte de modification (UPDATE) ou de suppression (DELETE), cela permet dobserver le rsultat de la requte (en ouvrant le fichier impact) puis de valider ou dannuler la transaction pour prendre en compte ou non les modifications.

    Le bouton Historique des requtes permet de lister toutes les requtes excutes au moins une fois sur le serveur.

    Coloration et compltionLa manipulation des requtes est facilite par :lacolorationducodeSQLquiamliorela(re)lecturedelarequte,lacompltionquiaccompagnelasaisieenproposantlenomdesfichiersetrubriques.

    Manipulation des requtes : simple, intuitif, scuris !

    TDF Tech 2015 - www.pcsoft.fr - 23

  • LE CHAMP CARTE

    LechampCartepermetdafficherunecarteGoogledansvosapplicationset vos sites.Vous pouvez ajouter des marqueurs, des itinraires, modifier la position, etc.VouspouvezmmeallerplusloinenmanipulantdirectementlobjetGoogle.

    Projet dillustrationLeprojetutilispourillustrercesujetestlexempleWDCartesTDF20(prsentsurleDVD).WINDEVetWEBDEVproposechacun,enstandard,unexempleunitairesurlechampCarte.

    ImportantLescartesGooglesontsoumisesunelicencedutilisation.Ilexisteunelicencegratuitepourunecertaine utilisation et une licence commerciale (si vous sortez du cadre gratuit).Si vous possdez une cl permettant dutiliser la licence commerciale, vous pouvez la spcifier avec lafonctionWLangageCarteLicenceGgl.// Initialisation de la cl GoogleCarteLicenceGgl(ABCDEF12345789abcdef)

    ItinrairesLa fonction CarteAjouteItinraire permet dajouter un itinraire entre plusieurs points dans un champ Carte.

    Cette fonction permet de paramtrer laffichage de litinraire :typeditinraire(automobile,piton,vlo),couleur,opacitetlargeurdutrait.

    Les tapes de litinraire sont regroupes dans un tableau de chanes, de variables Adresse, de variables GoPosition ou de variables Marqueur.// Ajoute litinrairegsIDItinraire = CarteAjouteItinraire(CARTE_Exemple, tabEtapes, itinraireAutomobile, RougeFonc, 90, 3)

    MarqueursLa fonction CarteAjouteMarqueur permet dajouter un marqueur dans le champ Carte.Cette fonction prend en paramtre une variable de type Marqueur.Ce type permet de paramtrer compltement le marqueur :saposition,sonnom,sonimagesicelle-cidoitdiffrerdesautres,uneprocdurequiseraappeleautomatiquementlorsquelutilisateurcliquera sur le marqueur.// Dfinit le marqueurMonMarqueur est un MarqueurMonMarqueur.Position.Latitude = 48.85668701639MonMarqueur.Position.Longitude = 2.352150486185MonMarqueur.ActionClic = ProcdureClicMarqueurMonMarqueur.Nom = Mon marqueur sur Paris// Ajoute le marqueurCarteAjouteMarqueur(CARTE_Exemple, MonMarqueur)

    Remarque : la fonction CarteAjouteMarqueur propose 2 autres syntaxes pour passer une variable goPosition ou directement le couple latitude/longitude.

    24 - TDF Tech 2015 - www.pcsoft.fr

  • Fonctionnalits supplmentaires (formes, regroupement, ...)LeWLangageproposediffrentesfonctionsquipermettentdutiliserdirectementlobjetCartedeGoogle.Decettefaon,vouspouvezutiliserlesfonctionnalitsoffertesparleservicedeGoogle.

    Parexemple,pourleregroupementdesmarqueurs,lexempleWDCartesTDF20utiliselafonctionnalitclusterdemarqueursproposeparlobjetGoogle.Pourcela,lobjetestrcupraveclafonctionWLangageCarteRcupreObjet et le cluster de marqueurs a t cr avec la fonction CarteExcuteJS.

    Le composant interne Carte tendue tend le champ Carte avec des fonctionnalits intressantes :ledessindelignes,decerclesetderectangles(CarteAjouteLigne, CarteAjouteCercle, CarteAjouteRectangle),leclusterdemarqueurs(fonctionsCarteClusterXXX),lamanipulationditinraires(CarteItinraireXXX),laffichagedutrafic(CarteAfficheInfoTrafic),...

    Attention :lesfonctionsdemanipulationdelobjetCartedeGooglesontdisponiblesuniquementpartirdelaversion200051M.

    TDF Tech 2015 - www.pcsoft.fr - 25

  • LE WLANGAGE :NOUVEAUTS UTILESLeWLangage,cestvotreoutildetravailauquotidien.Cest un langage moderne, performant et qui senrichit danne en anne.Voici quelques nouveauts remarquables de la version 20.

    Projet dillustrationLe projet utilis pour illustrer ce sujet est lexempleWDWLangageTDF20(prsentsur le DVD).

    1 Les procdures internesUne procdure interne est une pro-cdure qui est dclare lintrieur

    mme dune autre procdure.

    Cette fonctionnalit est particulirement adap-teauxfonctionsWLangagequiontbesoinduneprocdurecallback.

    La fonctionWLangage fListeFichier, par exemple, propose une syntaxe qui appelle une procdure pour chaque fichier list.tabExtensionsExclues est un tableau de chanes = [.tmp, .dat]

    // Liste les fichiers du rpertoirefListeFichier(SAI_Rpertoire+[\]+ *.*, callbackFichier, 0, frNonRcursif)

    // La procdure callback// est une procdure internePROCEDURE INTERNE callbackFichier(sChemin, sFichier) // Si lextension est utile SI Cherche(tabExtensionsExclues, tcLinaire, fExtraitChemin(sfichier, fExtension)

  • La tche fait la requte HTTP, rcupre limage et rappelle une fonction pour afficher limage dans la table.

    Comme la requte est excute dans la tche parallle, elle ne bloque pas le remplissage delatable:lIHMdelapplicationrestefluide.

    ImportantDepuis une tche parallle ou un thread, il est interdit daccder aux champs de la fentre.

    Donc, pour afficher limage, la procdure AfficheImage doit tre excute via la fonc-tionWLangageExcuteThreadPrincipal. Cette fonction force lexcution dune pro-cdure dans le thread principal.

    Plus simple encore, il est possible dindiquer la procdure AfficheImage quelle sexcutera toujours dans le thread principal.

    Ilsuffitdecliquersurlebouton dans le bandeau de lditeur de code et de cocher Excuter dans le thread principal.

    3 Les paramtres nommsEn version 20, le passage de para-mtresuneprocdureWLangage

    est encore simplifi avec lapparition de deux nouvelles syntaxes de paramtres nomms.

    Dans le cas de lappel dune procdure qui attend des paramtres optionnels, il est pos-sible de ne pas indiquer la valeur de ces paramtresetdelaisserleWLangageutiliserla valeur par dfaut choisie par le dveloppeur de lapplication.

    Les paramtres nomms sont trs utiles dans le cadre des procdures possdant de nombreux paramtres optionnels, si le dve-loppeur souhaite passer certains paramtres uniquement.

    Syntaxe 1Avant chaque appel de la procdure, il est possible de renseigner un ou plusieurs paramtres avec la syntaxe . = .

    // Syntaxe 1EnvoiMessage.sDestinataire = ... [email protected] = ... CoucouEnvoiMessage.sMessage = ... Ceci est un messageEnvoiMessage.bDemandeAccusR-ception = Vrai

    EnvoiMessage()

    Dans le cas de lutilisation de cette syntaxe, une copie de la valeur est ralise : la proc-dure recevra donc toujours le paramtre par valeur (et non par adresse).

    Syntaxe 2Ilsuffitdindiquerlenomduparamtreentredes chevrons puis deux points et sa valeur. Cette syntaxe permet le passage par adresse.// Syntaxe 2EnvoiMessage(... [email protected], Coucou, Ceci est un message, :Vrai)

    4 Les fonctions SSHxxxSSH est un protocole extrmement utilis pour administrer distance

    un serveur Unix.

    Ce protocole permet dobtenir une console sur le serveur, distance et travers une connexion crypte.

    En version 20, la famille de fonctions SSHxxx permet de grer SSH directement dans les applications :SSHConnecteShell permet douvrir une session. SSHDconnecteShell permet de fermer la session.// Paramtre la session SSH via une// variable sshSessiongSession est une sshSessiongSession.Adresse = MonServeurgSession.Utilisateur = rootgSession.MotDePasseUtilisateur = mdp// Ouvre la sessionSSHConnecteShell(gSession)

    SSHEcrit permet dcrire des donnes dans la session SSH ouverte.// Liste les fichiers du rpertoire// en coursSSHEcrit(gSession, ls)

    SSHCommande permet denvoyer une commande. La session est automatique-ment ouverte et ferme aprs lenvoi de la commande.// Lance un arrt durgenceSSHCommande(gSession, shutdown -h now)

    Dans notre exemple, en 20 lignes de code WLangage,nousvousproposonsuneconsoleUnix simplifie bien utile !

    5 La fonction SysDtecte-SessionVerrouilleLeWLangagedisposedunefamille

    de fonctions SysXXX qui permet de rcuprer et de modifier des informations du systme : arrt du systme, gestion des crans et des rsolutions, etc.

    En version 20, la fonction SysDtecte-SessionVerrouille permet dtre prvenu quand la session de lutilisateur est verrouille ou dverrouille.

    Cette fonction peut tre utilise, par exemple, pour :libreruneficheclientdansuneCRM(pourne pas bloquer laccs la fiche pour les autres utilisateurs),passer lutilisateurenindisponibledansune application de type chat,etc.

    La fonction SysDtecteSessionVerrouille attendenparamtreuneprocdurecallbackqui sera appele lorsque la session se ver-rouillera ou se dverrouillera.// Branche la dtection de verrouil-// lage de sessionSysDtecteSessionVerrouille(... sessionChangeEtat)

    La procdure sessionChangeEtat sera auto-matiquement excute.

    Cette procdure recevra en paramtre le

    TDF Tech 2015 - www.pcsoft.fr - 27

  • LE WLANGAGE :NOUVEAUTS UTILES(SUITE)

    nouvel tat de verrouillage de session : sys-SessionVerrouille ou sysSessionDver-rouille.PROCEDURE sessionChangeEtat( nouvelEtat)// Si la session est verrouilleSI nouvelEtat = ... sysSessionVerrouille ALORS ...FIN

    6 La fonction PDFExtraitPageLa fonction PDFExtraitPage permet dextraire une page dun fichier PDF

    dans une variable de type Image.// Extrait la 3me page du PDFimgPage est une Image = ... PDFExtraitPage(... fRepExe()+[\]+MonFichier.pdf, 3)// Enregistre limage de la page 3dSauveImageJPEG(imgPage, fRepExe()+[\]+Page3.jpg)

    7 Les fonctions HTTPEnvoie / RESTEnvoieLes fonctions HTTPEnvoie et

    RESTEnvoie permettent respectivement denvoyer une requte HTTP ou REST un serveur et dattendre la rponse.

    Ces deux fonctions manipulent des types de variables spcifiques.

    Par exemple, la fonction RESTEnvoie utilise :restRequte qui permet de dfinir prcise-ment la requte envoyer au serveur,restRponse qui permet de rcuprer toutes les caractristiques avances de la rponse du serveur.MaRequte est une restRequte// Adresse interrogerMaRequte.URL = http://serveur/service.awp// Mthode HTTP utilise : GETMaRequte.Mthode = httpGet// Interroge le serveur// et rcupre la rponseMaReponse est un restRponse = RESTEnvoie(MaRequte)// Si la rponse est correcteSI MaReponse.CodeEtat = 200 ALORS

    // Rcupre le contenu TraiteRetour(MaReponse.Contenu)FIN

    8 La nouvelle compltionLa compltion de code a t am-liore en version 20 et propose en

    premier lieu les familles de fonctions corres-pondant la saisie.

    Cela permet de naviguer et de saisir plus rapidement.

    Par exemple, pour saisir ZoneRpteSup-primeTout, il vous suffit de commencer taper zone : le premier choix propos est ZoneRpte....

    Vous validez directement par Entre et vous obtenez ZoneRpte. En tapant su, vous limitez le choix deux fonctions.

    Vous pouvez alors slectionner la fonction voulue en utilisant la flche bas et en validant par Entre (ou en cliquant dessus la souris).

    8 La coloration des chanes multilignes (SQL, HTML, ...)

    Petite nouveaut utile de lditeur de code : les chanes multilignes qui contiennent du codeSQLsontmaintenantcolores.sMaRequteSQL est une chane = [SELECT Nom, PrnomFROM ClientWHERE Ville = Paris]

    Cest beaucoup plus agrable lire !Cette coloration est galement disponible pour du code HTML, (trs pratique, surtout dansWEBDEV):sMonCodeHTML est une chane = [

    Mon titre Contenu au format HTML

    ]

    etaussiducodeWLangage:sCodeWLangage est une chane = [ SI fFichierExiste(C:\Mes documents\MonFichier.pdf) = Faux ALORS Erreur(Le fichier nexiste pas) RETOURFIN]

    Pour colorer une chane, ouvrez le menu contextuel (clic droit sur le contenu), droulez le menu Coloration de la chane et choisissez la coloration souhaite.

    9 Les attributs de variableUn attribut de variable est un mca-nismeduWLangagequipermetde

    donner des informations au compilateur au sujet dune variable.

    Ilenexisteplusieursetilsnesontpastoujourstrs connus.

    En voici quelques-uns.

    Lattribut Lorsquune variable nest pas utilise dans la procdure dans laquelle elle est dclare, le compilateur affiche un avertissement La variable locale nest pas utilise.

    Or, il se peut que labsence dutilisation soit normale.Quelquesexemples:1. Une procdure virtuelle attend des para-mtres, mais la procdure nest rellement implmente que dans les classes qui hritent de la classe source.2.Uneprocdurecallbackattenduncertainnombre de paramtres, mais ces paramtres ne sont pas tous utiliss. Cest le cas par

    28 - TDF Tech 2015 - www.pcsoft.fr

  • exempledelaprocdurecallbackdefListe-Fichier qui renvoie :lechemindufichierlist,lenomdufichier,unindicateurdechangementderpertoire,unevariablepointeurversunedonne.// Le 3me paramtre nest pas utilis// mais il est utilePROCEDURE ParcoursFichier(... sChemin, sFichier, nChangementRpertoire , nPointeur)

    3.Ajoutdunparamtredontlutilisationseracode plus tard.

    Dans ces cas-l, lattribut utile permet dindi-quer au compilateur que la variable est bien utile et ne doit pas apparatre comme ntant pas utilise.

    AstuceIlpeuttreintressantdeprciserunerai-son lattribut utile : cela permet aux autres dveloppeurs de comprendre pourquoi cette variable est dclare mais non utilise.rRemise est un rel

    Lattribut La fonction FichierVersMmoire permet de remplir automatiquement une structure (ou une classe) partir de lenregistrement courant dun fichier de donnes.

    Pour faire le lien entre une rubrique et un membredelastructure,leWLangagesebasesur le nom des lments : le membre Nom sera automatiquement rempli avec la valeur de la rubrique Nom par exemple.

    Dans certains cas, le nom du membre peut ne pas tre identique au nom de la rubrique :sivousprfixezvosmembresdestructures(sNom, dDateDeNaissance, ...) mais pas les noms des rubriques.sivousutilisezuneanalysedontlesnomsde rubriques sont trop longs ou pas explicites et que vous souhaitez nommer vos membres de faon plus intelligibles.

    Dans ces cas-l, lattribut mapping permet dindiquer au compilateur la rubrique qui doit tre utilise pour remplir le membre.STPersonne est une Structure sNom est une chane

    dDateDeNaissance est une Date FIN

    Lattribut La fonction Srialise permet de transformer une variable (une structure, une classe, etc.) dans un format donn (XML ou JSON par exemple).

    Par dfaut,WINDEV utilise le nom desvariables pour construire le contenu dans le nouveau format.

    Par exemple, le code suivant :Individu est une PersonneIndividu.sNomDeFamille = ... ASSINIndividu.sPrenom = Marc// Srialise au format JSONSrialise(Individu, bufJSON, psdJSON)

    donnera la chane JSON suivante :{ sNomDeFamille:ASSIN,sPrenom:Marc }

    Lattribut srialise permet dindiquer si une variable doit tre srialise et sous quel nom.

    La srialisation ayant principalement pour but de transmettre ou de sauvegarder la variable, il est important de rduire au minimum la taille des donnes :enrduisantlenomdesmembresaustrictminimum,ennesrialisantpasdesmembresquinontpas dintrt tre transmis / sauvs.

    En modifiant la structure Personne comme suit :Personne est une Structure sNomDeFamille est une chane sPrenom est une chane FIN

    la chane JSON obtenue est la suivante :{ Nom:ASSIN}

    Lattribut Lattribut associ permet de rendre les membres et les mthodes publics dune classe, publics dans une classe qui lutilise.

    Cela permet de mettre en uvre un design pattern particulier : la Faade.

    Cet attribut est utilis dans le cadre de la mise en place de larchitecture MVP et est donc dtaill dans larticle pages 50-51.

    10 La fonction CrypteStandardEnWLangage,lafonctionCrypte permet de crypter une chane ou

    un buffer, cest la fonction Crypte.Et la fonction inverse, bien entendu, cest Dcrypte !

    Ces fonctionssontdisponiblesdans les3produits, sur diffrentes plateformes.

    La limite qui peut apparatre, cest lalgorithme de cryptage qui est utilis.

    Mais selon la plateforme dexcution, les algorithmes de cryptage utiliss varient.

    Par exemple, en utilisant la constante crypte-Scuris, lalgorithme utilis est :unRC58bouclessur128bitssousWindowsouPocketPC,unautrealgorithmedetypePasswordBasedsous Android et en gnration Java,lalgorithmeRinjdaelengnrationPHP.

    Ce qui est crypt avec une plateforme nest pas toujours dcryptable sur une autre : tout dpend des combinaisons.

    Pour palier cette limite et proposer un cryp-tage cross-plateforme, en version 20, une nouvellefonctionWLangageestdisponible:CrypteStandard.

    Cette fonction, qui utilise lalgorithme AES (standard international), est bien entendu disponible sur toutes les plateformes.// Message crypterbufMessage est un Buffer = ... Mon message crypter// Cl de cryptagebufCl est un Buffer = ... HashChane(HA_MD5_128, 21JJ42xXx51SM)// CryptagebufCrypt est un Buffer = ... CrypteStandard(bufMessage, bufCl)

    LafonctionWLangageDcrypteStandard permet de dcrypter un message crypt par CrypteStandard.

    Le Saviez-Vous ?Toutesplates-formesconfondues(Windows,Linux,Android,OS,Java,etc.),leWLangagecomporteplus de :3300 fonctions,700 proprits,250 types de variable et mots.

    Pensez toujours rechercher dans laide en ligne : la fonction que vous cherchez existe dj certainement !

    Laide en ligne, cest par l : http://doc.pcsoft.fr.

    TDF Tech 2015 - www.pcsoft.fr - 29

    http://doc.pcsoft.fr

  • ASTUCES DE DBOGAGE

    ParmitouteslesfonctionnalitsdeWINDEV,WEBDEVetWINDEVMobile,celle qui est la plus utilise est sans doute le dbogueur.Cet article vous prsente plusieurs nouveauts et fonctionnalits souvent mconnues, sur le dbogueur.

    Projet dillustrationLe projet utilis pour illustrer ce sujet est lexempleWDDbogageTDF20(prsentsur le DVD).

    1. Dbogage sans timerLe raccourci Ctrl + Pause permet de dclen-cher le dbogueur sur la prochaine instruction WLangageexcute.

    Cest trs utile pour passer en dbogage lors du prochain clic sur un bouton ou une option de menu par exemple.

    Si une procdure timer est excute dans la fentre (ou lapplication), il y a de grandes chances que cette procdure timer provoque le lancement du dbogueur.

    Pour passer outre ce fonctionnement et ne pas tenir compte des timers lors du dbogage, sous le volet Dbogueur, dans le groupe Pointsdarrt,activezloptionIgnorerlestimers (le bouton doit tre enfonc).

    2. Points darrtUn point darrt dfinit un point o le dbo-gueurdevrasarrter. Ilestmatrialisparun point rouge.

    DansWINDEV,WEBDEVetWINDEVMobile,pour ajouter un point darrt, il suffit de cli-quer dans la marge jaune ( gauche).

    Les points darrt peuvent galement tre ajouts directement depuis la fentre de recherche !

    Dans le volet de rsultat de recherche, il suffit de faire clic droit sur une ligne de rsultat et de cliquer sur loption Ajouter un point darrt.

    Lister les points darrtLes points darrt que vous positionnez dans lditeur de code sont mmoriss dans le projet.

    La liste des points darrt vous permet de positionner lditeur de code sur un point darrt spcifique ou de supprimer les points darrt devenus inutiles.

    Pour afficher la liste des points darrt, sous le volet Code, dans le groupe Points darrt, droulez Point darrt et slectionnez loption Lister les points darrt (cette option est ga-lement disponible dans le volet Dbogueur lorsque celui-ci est visible).

    Point darrt conditionnelUne nouveaut intressante sur les points darrt : les points darrts compteur.

    Pour activer une condition, il suffit de faire un clic droit sur le point darrt et de slectionner loption Point darrt conditionnel ....

    Ilestalorspossiblededfinirlesconditionspour lesquelles le point darrt doit tre ou

    non respect.

    Le point darrt conditionnel se diffrencie dun point darrt classique par le point din-terrogation (?) au centre du point rouge.

    Cette fonctionnalit est trs utile dans un traitement de type boucle, pour que le point darrt sactive partir dune certaine itration.

    3. Se positionner sur une procdureQuinajamaischerchuneprocduredansune collection de procdures ou dans une classe : vous connaissez son nom, approxi-mativement, mais impossible de la trouver.

    Depuis lditeur de code, le raccourci Alt+C ouvre la combo des lments fils dans le ruban.Cette combo est en saisie et permet de recher-cher une procdure par son nom (ou une partie de son nom).

    Ilneresteplusquslectionner llmentet valider par Entre : lditeur de code se positionne automatiquement sur llment.

    30 - TDF Tech 2015 - www.pcsoft.fr

  • 4. Fentre de visualisationLa fentre de visualisation (ou fentre de watch) permet de visualiser le contenu dune variable.

    Cette fentre offre de nombreuses fonction-nalits souvent mconnues.

    Pour afficher cette fentre de visualisation, depuis le volet du dbogueur, il suffit de double-cliquer sur une ligne dexpression pour afficher la variable correspondante.

    Cette fentre est non modale : cela signifie que vous pouvez en ouvrir plusieurs simulta-nment tout en continuant travailler.

    Cette fentre est arborescente : vous pouvez descendre dans larborescence des variables affiches.Ilsuffitdecliquersurleplus(+)pour afficher les sous-lments.

    Ilestgalementpossibledafficherunlmentdonn dans une nouvelle fentre de visuali-sation : faites un clic droit, option Editer sur llment souhait.

    Autre fonctionnalit mconnue, dans cette fentre de dtail, vous pouvez slectionner le format de visualisation que vous souhaitez.

    Ilestpossibledevisualiserunlmentauformat texte, hexadcimal, HTML ou image.

    Cest trs pratique pour visualiser le code source dun contenu HTML ou le code hexa-dcimal dune image par exemple.

    Visualisation dune variable structure (STUnEchange) qui contient dautres structures.

    Lutilisation de loption diter sur un membre structure (stEmetteur) permet daffi-cher cette variable dans une fentre de visualisation qui lui est propre.

    ... mais vous pouvez modifier le format daffichage(ici, limage en Hexadcimal).

    De la mme manire, loption diter permet dafficher une fentre de visualisation sur un type simple (chane, image, ...).

    Ici,lemembrePhoto est affi-ch dans une fentre spci-fique.WINDEV dtecte automa-tiquement quil sagit dune image et positionne le type daffichage adapt...

    1

    2

    3

    4

    TDF Tech 2015 - www.pcsoft.fr - 31

  • NOUVEAUTS SUR LES TATS

    Les ditions sont incontournables dans une application de gestion : rapport, statistiques, listing, etc.La version 20 apporte son lot de nouveauts sur les ditions.Petit tour dhorizon de nouvelles fonctionnalits et de fonctionnalits existantes.

    Projet dillustrationLe projet utilis pour illustrer ce sujet est lexemple WDEtatsTDF20 (prsent surle DVD).

    Imprimer un graphe Secteur multiniveauLe graphe Secteur Multiniveau permet daffi-cher des donnes comportant une hirarchie (voir le dtail pages 40-41).

    Dans les tats, il est bien entendu possible dimprimer tous les types de graphes, secteur multiniveau compris.

    Le remplissage dun graphe dans un tat est strictement identique au remplissage dans une fentre : la source peut tre un fichier de donnes, une variable ou du code.

    Nouvel aperu avant impressionEn version 20, laperu avant impression a trelook:unrubanafaitsonapparition.

    Le ruban permet dorganiser les nombreuses options offertes par laperu :levoletAperupermetdemodifier lesoptions daffichage de laperu,levoletImpressionpermetdimprimeretde modifier les options dimpressions,levoletExportregroupetouslesexports(Word,PDF,etc.),levolet Recherchecontient toutes lesoptions pour rechercher dans le contenu de ltat,levoletAnnoterpermetdannoterltat(ajout de flches, cadres, ...).

    RappelDans vos applications, vous avez la possibilit dintgrer la fentre daperu avant impres-sion : dans la description du projet, onglet

    Style, il suffit de positionner loption Aperu avant impression Personnalis (intgr dans le projet).

    La mireLa mire est une fonctionnalit trs pratique de laperu pour lire confortablement des tableaux de chiffres.

    La mire peut tre personnalise (couleurs et paisseur).

    Planning, agenda, Gantt : personnalisationGrceauxtats, ilestpossibledimprimerle contenu de champs Agenda, Planning ouGantt.

    En version 20, vous pouvez personnaliser laffichage des rendez-vous et des tches pour ces types dtats.

    Ilestainsipossibledimprimeruntatayantle mme rendu que le champ.

    Pour personnaliser laffichage des rendez-vous ou des tches : dans la description du champdanslditeurdtats,ongletGnral,droulez le paramtre Etat personnalis pour laffichage des rendez-vous et slectionnez Etat prdfini.

    Ltat prdfini est automatiquement ajout au projet.

    Vous pouvez alors le personnaliser :modifierlesstylesdeschamps,ajouterunchamp,modifierlecode.

    Remarque : par dfaut, tout le code de gestion de ltat prdfini est localis dans le code de dclaration.

    Important Pensez dfinir les ancrages dans les dif-frents champs de ltat : cela permettra vos champs de sadapter en fonction de la hauteur et de la largeur de chaque rendez-vous ou tche.

    RAZ du numro de pagePour certaines impressions, il peut tre utile de rinitialiser le numro de page en cours dimpression : par exemple, si vous impri-mez toutes les factures dune journe, il faut que le numro de page soit rinitialis pour chaque facture.

    Cette fonctionnalit est disponible :

    32 - TDF Tech 2015 - www.pcsoft.fr

  • endition,dansladescriptiondubloc,ongletIHM,ilsuffitdecocherloptionRinitialiserle nombre de pages aprs impression du bloc.par programmation, via la fonctionWLangageiRAZNbPages.

    Changer limage de fond par programmationUn tat formulaire peut simprimer soit sur du papier pr-imprim, soit sur du papier blanc.

    Ilpeuttre intressantpour lutilisateurdepouvoir afficher ou non limage de fond de formulaire, selon le type de papier charg dans limprimante.

    En version 20 :laproprit..ImageFondImprime permet de modifier la visibilit de limage de fond dun tat.// Papier pr-imprim// ne pas afficher limage de fondMonEtat..ImageFondImprime=Faux

    laproprit..ImageFond permet de modi-fier limage de fond dun tat.// Affiche la 2me page du PDF// en tant que fond de ltatMonEtat..ImageFond = ... PDFExtraitPage(cerfa.pdf, 2)

    Modles dtatsLes modles dtats permettent, comme les modles de fentres, de partager des champs, des traitements entre plusieurs tats.

    Un modle dtats peut par exemple permettre de faire un papier entte (avec le logo de lentreprise, son nom) et un pied de page (les infos lgales, ladresse, etc.).

    Ce modle, utilis dans tous les tats dun pro-jet, permet duniformiser toutes les ditions.

    Les modles dtats permettent de faire des morceaux dtats gnriques et donc de gagner encore du temps lors de la cration de nouveaux tats.

    Laperu avant impression dispose dun ruban qui offre de nombreuses fonctionnalits :export (diffrents formats), mire de visualisation, annotation (rectangles, flches, texte, ...), etc.

    TDF Tech 2015 - www.pcsoft.fr - 33

  • PCSCLOUD :VOTRE SOLUTION CLOUD

    PCSCloud propose des plateformes dexploitation pour dployer vos installations,sitesWEBDEV,WebservicesetbasesdedonnesHFSQL.PCSCloud propose galement des plateformes de dveloppement pour stockeretpartagervosprojets(GestionnairedeSources), lesdonnesdevos Centres de Contrle et la configuration de votre environnement de dveloppement.

    1 Plateforme dexploitation : vos applications et vos sites accessiblesSuruneplateformedexploitation,vouspouvezhberger:

    vossitesWEBDEV vosWebservices vosbasesHFSQL vos installationsdapplications

    WINDEV

    vos rplications universelles de

    donnes

    DepuisletableaudebordduCloud,vousdfinissezlesrlesdevotreplateforme:

    Depuisleproduit,siundploiementestdisponiblepourleCloud,lechoixestpropos:

    34 - TDF Tech 2015 - www.pcsoft.fr

  • 2 Plateforme de dveloppement : vos projets virtualissAvecuneplateformededveloppement,vouspouvezstockeretpartager:

    vos projets WINDEV,WEBDEVetWINDEVMobile

    vos donnes des Centres de

    Contrle

    votre environnement

    de travail

    DepuisletableaudebordduCloud,vousdfinissezvosutilisateursetleursdroits:

    Depuisleproduit,lalocalisationduGDS(oudesfichiersdesCentresdeContrle)peuttrerenseigne avec vos paramtres de connexion Cloud :

    Le Cloud, cest une plateforme prconfigure mise votre disposition : vous navez pas vous proccuper du matriel, de la maintenance, des licences, de la scurit du serveur.Et vous accdez vos donnes de nimporte o dans le monde !

    Toutes les informations sur le Cloud sont disponibles cette adresse : www.pcscloud.net.

    TDF Tech 2015 - www.pcsoft.fr - 35

    www.pcscloud.net

  • 3 Comment dfinir une vueDepuis lditeur danalyses, dans le ruban, sous le volet Analyse, dans le groupe Cration, droulez Nouveau et slectionnez Vue.

    IlestgalementpossiblededfinirunevuedepuislevoletAnalysede lditeur, via un clic droit sur les catgories Vues et Vues mat-rialises, en choisissant loption Nouvelle vue.

    Le contenu de la vue peut tre dfini :vialassistant(diteurderequtes),ensaisissantdirectementlecodeSQLdelarequte.

    2 Les types de vuesEn version 20, deux types de vues sont disponibles : les vues SQLetlesvuesmatrialises.

    LesvuesSQLsontexcuteschaqueutilisationdelavue.AvantagedesvuesSQL:ellessonttoujoursjour.

    Les vues matrialises, elles, sont persistantes sur le serveur.Elles peuvent tre reprsentes comme des requtes dont le rsultat est sauvegard.Avantage des vues matrialises : les donnes sont accessibles immdiatement.

    1 Une vue, cest quoi ?Une vue permet de mettre la disposition des utilisateurs et des applications qui accdent une base de donnesune structure des donnes amnage un besoin.

    Une vue correspond un fichier de donnes qui est construit partir dune requte.

    Une vue permet, par exemple, de concatner deux rubriques Nom et Prnom, ou de masquer aux utilisateurs des rubriques qui contiennent des donnes confidentielles.

    Enversion20,HFSQLoffrelapossibilitdecrerdesvuesSQL.Quest-cequunevue?Comment la manipuler ?Voici les rponses, en images.

    HFSQL : LES VUES

    36 - TDF Tech 2015 - www.pcsoft.fr

  • 7 Grer des droits sur les vuesLes droits des vues permettent de donner certains utili-sateurs laccs des donnes auxquelles ils nauraient pas droit initialement.

    LafonctionWLangageHModifieDroitVue permet de modifier les droits dune vue pour un groupe ou un utilisateur donn. Plusieurs droits sont disponibles : lecture, ajout, suppression, etc.// Autorise le droit de lecture lutilisateur DurandHModifieDroitVue(gcnxMaConnexion, Durand, hDroitLecture, hAutoris, MaBase, AnnuaireDu34)

    La fonction HInfoDroitVue permet de rcuprer les droits en cours sur une vue.

    6 Manipuler une vue (requte, Hxxx)La manipulation dune vue est strictement identique la manipulation dun fichier de donnes classique.Vous pouvez tout fait utiliser les fonctions Hxxx :

    // Excute la vue SQLSI HExcuteRequte(AnnuaireDu34) ALORS // Parcourt la vue POUR TOUT AnnuaireDu34 ... FINFIN

    Vous pouvez galement dfinir une requte base sur une vue.

    5 Tche planifiePour faciliter la mise jour des vues matrialises, le WLangagemetdispositionuntypedevariablehPlani-ficationVueMatrialise : il suffit de paramtrer la tche

    planifie ( jour, heure) et de dfinir la ou les vues mettre jour.refreshView est une hPlanificationVueMatrialiserefreshView..Description = Recalcul des donnes des vues// Caractristiques de la planification...// Rafrachit la vue MaVue// de la base de donnes MaBaserefreshView.Vue[1] = MaBase/MaVueHAjoutePlanification(gcnxMaConnexion, refreshView)

    4 Mettre jour la vue sur le serveurUne vue peut tre mise jour sur le serveur :dssacrationparlamodificationauto,parprogrammation,vialafonctionWLangageHRafrachit-

    Vue.

    Bien entendu, seules les vues matrialises peuvent tre mises jour.

    Si votre vue contient des informations qui nont pas besoin dtre mises jour en temps rel (des statistiques, un annuaire, ...), nous vous conseillons de mettre jour votre vue via une tche planifie (voir le point 5).Dans le cas contraire, pour que votre vue soit jour directement aprs la modification dun fichier spcifique, nhsitez pas utiliser untriggerserveur(http://doc.pcsoft.fr/?3044369).

    TDF Tech 2015 - www.pcsoft.fr - 37

  • TABLEAU CROIS DYNAMIQUE :4 RAISONS DE LUTILISER !

    Le champ Tableau crois dynamique est LE champ dcisionnel incontournable pour vos applications. Voici 4 bonnes raisons dintgrer ce champ dans vos applications et de satisfaire vos utilisateurs.Lexemple WDGraphesEtTCDTDF20 (prsent sur leDVD) est lexempleservant illustrer cet article.

    2 Vous pouvez utiliser nimporte quelle source de donnesLasourcededonneslaplussimpleutiliser,cesontlesfichiersHFSQL.Maisenversion20,vouspouvezremplirlechamppartirde nimporte quelles donnes, en utilisant un tableau de structures.

    1 Toutes les donnes sont affiches simultanmentLavantage du champ Tableau crois dynamique est le suivant : lintgralit des donnes fournies initialement est affiche dans le mme champ et organise intelligemment. Les regroupements, le dtail, les totaux, ... Tout est automatique !

    // Tableau des vols Vols est un tableau de InfosVol

    // Remplit le tableau// (par une requte, des calculs, etc.)...

    // Lance le calcul du tableauTCDCalculeTout(StatsVols)

    38 - TDF Tech 2015 - www.pcsoft.fr

  • 3 Lutilisateur peut rorganiser ses donnes comme il le souhaiteLoption Rorganiser les enttes de lignes et de colonnes permet lutilisateur de rorganiser compltement les enttes : position, visibilit, etc. Cest trs utile pour obtenir une statistique qui naurait pas t prvue initialement par le dveloppeur.De plus, lutilisateur peut supprimer une valeur dentte donne (par exemple, supprimer le pays France de la liste des pays).

    4 La mise en forme est simplifie : eYeMagnet, manuelle, par programmationAvoir des chiffres, cest bien. Pouvoir les analyser rapidement et simplement, cest mieux ! Pour satisfaire ce besoin, le tableau crois dynamique permet de mettre en forme les donnes :vialesystmeeYeMagnet,depuisladescriptiondelavaleurafficher.Cestlecasdansnotreexemple,leeYeMagnetpermetdafficher

    la cellule du bnfice en rouge ou vert selon la valeur.manuellement,depuislemenucontextuel.Lutilisateurpeuteneffetmarquerunecelluleparticulireavecunecouleur,pourlamettreenvidence.parprogrammation,enmodifiantlacouleurdetexte,defondoulestyledelacellule.// Hachure les cellules sans donnesSI Bnfice = 0 ALORS Bnfice..StyleFond = styleHachureDiagonaleGauche

    TDF Tech 2015 - www.pcsoft.fr - 39

  • LE CHAMP GRAPHE SECTEUR MULTINIVEAU

    Le graphe Secteur multiniveau permet de reprsenter visuellement des donnes arborescentes et de naviguer parmi les diffrents niveaux.Voici3utilisationsdiffrentesdecenouveaugraphe.

    Projet dillustrationLe projet utilis pour illustrer ce sujet est lexempleWDGraphesEtTCDTDF20(prsentsur le DVD).

    propos du champ Graphe

    Types de graphesLechampGraphepermetdecrerdiffrentstypes de graphes :courbe,aire,secteur(camembert),beignet(donut),hmicycle,histogramme,nuagedepoints,grapheboursier,graphebulles,surface,entonnoir,radar,waterfall,

    secteurmultiniveau(apparuenversion20).

    Comment remplir un grapheLechampGraphepeuttreremplidediff-rentes faons :parprogrammation, avec les fonctionsgrXXXduWLangage,partirdunfichierdelabasededonnes(ou dune requte),partirdesvaleursdunecolonnedetable,partirdunchampListe,partirdunevariabletableauWLangage.

    La source de donnes du graphe peut tre dfinie dans longlet Sries de la description du champ.

    Le champ graphe Secteur multiniveauLe graphe de type Secteur multiniveau est un graphe Secteur contenant plusieurs niveaux de donnes hirarchiques.

    Lintrt de ce type de graphe est double :dunepart,ilpermetlaffichageconcisethi-

    rarchis dun trs grand nombre de donnes.dautrepart,cetypedegrapheestinteractif:le clic sur une part permet de rentrer dans le dtail des sous-niveaux de cette part.

    Comment utiliser ce grapheEn plus des fonctions grXXX standard, le graphe Secteur multiniveau dispose de fonc-tions spcifiques :grSMNAjouteDonne pour ajouter une donne,grSMNCouleurPortion pour changer la couleur dune portion,grSMNPortionRacine pour changer ou prciser le chemin de la racine.grSMNRcupreDonne pour rcuprer une valeur.// Dfinit les valeursgrSMNAjouteDonne(GRF_SunBurst, France, 200000)grSMNAjouteDonne(GRF_SunBurst, France +TAB+ Paris, 50000)grSMNAjouteDonne(GRF_SunBurst, France +TAB+ Lyon, 10000)// Couleur de la portion FrancegrSMNCouleurPortion(...

    NOUVEAUTS DU CHAMP GRAPHEEnversion20,lechampGraphedisposededeuxnouveautstrsutiles.

    1. La bulle de survol a t amliore :ellesafficheavecunelgretransparence(pournepasmasquerdecontenu),soncadreestdelammecouleurquelasrieactuellementsurvole(pourtre sr que la donne visualise est bien celle attendue).

    2. La majorit des types de graphes dispose dune mire qui facilite la lecture des valeurs survoles.

    Cettemireestactivabledepuis ladescriptionduchampGraphe,ongletDtail, via loption Activer la mire du graphe.

    Pour les graphes de type Courbe et Histogramme empil, il est possible de demander une mire multiple : au survol de la valeur dune courbe, la bulle de la mire va afficher les valeurs de toutes les courbes pour la mme abscisse.

    40 - TDF Tech 2015 - www.pcsoft.fr

  • GRF_SunBurst, France, BleuPastel)

    2 utilisations originales du Secteur multiniveau

    1. Afficher le contenu dun tableau crois dynamiqueLexemple fournit un modle de champs MDLC_GrapheSMNPourTCDpourafficherle rendu dun tableau crois dynamique dans un graphe Secteur multiniveau.

    Lutilisation de ce modle de champs se fait simplement, en 2 tapes :1. Initialiser lemodledechampsen indi-quant le champ Tableau crois dynamique utiliser, via la fonction Initialise du modle de champs.// Initialise le modle de champsCMOD_Graphe.Initialise(... TCD_Statistiques)

    2. Demander le dessin du graphe via la fonc-tion Dessine en indiquant :lindicedelavaleurquiserviradesourcede donnes,ladimension(colonneouligne)afficheren premier parmi les niveaux du graphe.

    Vous pouvez utiliser la constante tcdEnt-teColonne ou tcdEntteLigne.lenombredeniveauxaffichssimultan-ment.// Dessine le grapheCMOD_Graphe.Dessine(1, ... tcdEntteColonne, 2)

    Pour plus de dtails sur la mise en uvre et lutilisation de ce modle de champs, vous pouvezconsulterlannexe3.

    Attention : ce type daffichage nest pas adapt un tableau crois dynamique com-prenant des valeurs ngatives.En effet, une valeur ngative ne peut pas tre reprsente dans un graphe Secteur multiniveau.

    2. Crer un menu originalLe menu principal dune fentre contient gnralement plusieurs sous-menus et options.

    Ilexistedoncunenotiondehirarchie,exploi-table via un graphe Secteur multiniveau.

    Lide est de positionner une valeur dans le graphe pour chaque sous-menu / option du menu principal :

    encliquantsuruneportioncorrespondant un menu, le menu est affich comme racine et les options du menu sont affiches.encliquantsuruneportioncorrespondant une option, le code de cette option est excut.

    La collection de procdures COL_MenuSMN de lexemple contient les fonctions utiles pour transformer un menu principal en menu graphe.

    Pour utiliser ce menu anim et graphique, il suffit de :positionner un champGraphede typeSecteur multiniveau,appeler la fonctionMenuVersSecteur-Multiniveau en prcisant le nom de la fentre contenant le menu (source) et le nom du graphe (destination),// Construit le menu graphe// partir du menu de la fentreMenuVersSecteurMultiNiveau(... MaFentre..Nom, GRF_MENU)

    cacherlemenudelafentre.// Cache le menu de la fentre _Menu..Visible = Faux

    TDF Tech 2015 - www.pcsoft.fr - 41

  • ONGLETS DYNAMIQUES : MODERNISER UNE APPLICATION

    Les onglets dynamiques permettent de proposer une interface moderne et intuitive.Cet article vous prsente lutilisation de ce champ ainsi que la transformation paspasduneinterfacefentreMDIenongletdynamique.

    Projet dillustrationLe projet utilis pour illustrer ce sujet est lexemple WDOngletDynamiqueTDF20(prsent sur le DVD).

    Les onglets dynamiquesEn version 20, le champ Onglet propose la fonctionnalit onglets dynamiques.Cette fonctionnalit permet de crer des IHMprochesdesnavigateursrcents,avecdes volets qui souvrent, se dtachent, etc.

    Un volet dynamique est un volet qui sera ouvert dynamiquement, la demande.

    Le contenu dun volet dynamique correspond une fentre interne.

    Pour activer les onglets dynamiques sur un champ Onglet, cochez loption Activer les fonctionnalits des onglets dynamiques (onglet Dtail de la description du champ).

    Important : dans un champ Onglet, il est tout fait possible dafficher des volets statiques et des volets dynamiques simultanment.

    Ajouter un volet dynamiqueLes volets dynamiques peuvent tre ajouts de diffrentes faons :1. Dans longlet Dtail du champ, vous pr-cisez la fentre interne utilise lors dun clic sur le bouton +.Cette solution est utiliser si les volets doivent afficher un contenu similaire (des fiches clients par exemple).

    2. Par programmation, via la fonction Onglet-Ouvre, vous pouvez ajouter un volet avec nimporte quelle fentre interne du projet.Cette solution est utiliser si les volets affichent des informations htrognes ou si les fentres internes attendent des paramtres.// Ouvre un ongletOngletOuvre(ONG_Exemple, Onglet avec paramtres, FI_Volet_Programmation, Paramtre)

    Paramtrer les volets dynamiquesDepuis la description du champ Onglet, onglet Dtail, il est possible de paramtrer le com-portement des volets dynamiques :prsencedunboutonNouveau(+)pourajouter un nouveau volet avec la fentre interne dfinie en dition,prsencedunboutonFermer (x)pourfermer manuellement un volet dynamique,possibilitdedtacherlesvolets,mmorisationdelaconfigurationdesvolets.

    Remarque : il est possible de sauver et charger une configuration donglets dynamiques via lesfonctionsWLangageOngletSauveCon-figuration et OngletChargeConfiguration.

    Transformer une application fentre MDILesfentresMDIsontprsentesdansleperso-dossierFentreMDI.Les fentresrelookesavecongletsdyna-miques sont prsentes dans le perso-dossier Onglet Dynamique.

    1. Fentre principaleLa premire tape consiste transformer la fentremreMDI(FEN_Principale_MDI)enfentre libre avec un champ Onglet dyna-mique.

    Dans la description de la fentre, onglet Dtail, modifiez le type de la fentre en Fentre libre et supprimez le menu principal de la fentre.

    Ajoutez un champ Onglet dynamique en haut de la fentre, ouvrez sa description et nommez-leONG_MonOnglet.

    Nous allons dfinir un volet statique qui contiendra la table des clients : dans longlet

    Gnral,cliquezsurNouveauetsaisissezle libell Liste des clients.

    Le contenu de ce volet, cest tout simplement lecontenudelafentreFEN_Table_MDI:depuislafentreFEN_Table_MDI,copiezlechamp Table ainsi que les boutons Nouveau etModifieretcollezces3champsdanslevolet statique.

    2. Fentre interne FicheNotre champ Onglet doit pouvoir ouvrir un volet Fiche client pour saisir un nouveau client. Ilestdoncncessairedecrerunefentre interne contenant les champs utiles une fiche client.

    Pour cela :ouvrezlafentreFEN_Fiche_MDI,slectionneztousleschampsdelafentre,faitesunclicdroitsurvotreslection,cliquezsurloptionRefactoring..Crerunefentre interne avec la slection.renommez la fentre interne cre enFI_FicheClient.

    Dans le code dinitialisation de la fentre interne cre, recopiez le code dinitialisation delafentreFEN_Fiche_MDI(sansomettrele paramtre de la fentre).

    Pour dfinir notre nouvelle fentre interne comme fentre utiliser en cas dajout de volet, affichez la description du champ Onglet, onglet Dtail, et slectionnez la fentre que nous venons de crer comme Fentre interne en cration.

    Au passage, vous pouvez :dfinirun libellpardfautpour levoletqui sera cr (Nouveau client par exemple), activer loption Volets dtachables sincessaire.

    42 - TDF Tech 2015 - www.pcsoft.fr

  • Important : dans la description de la fentre interne, onglet Dtail, il faut absolument cocherlacaseContexteHFSQLindpendant.Dans le cas contraire, les appels aux fonctions FichierVersEcran et EcranVersFichier vont modifier les donnes de tous les onglets !

    3. Modifier les appels MDIOuvreMaintenant que notre application nest plus uneapplicationMre/FilleMDI,ilestnces-saire de remplacer les appels la fonction MDIOuvre par des appels la nouvelle fonc-tionWLangageOngletOuvre.

    Pour le bouton Nouveau, cest trs simple :// On ouvre la fentre en crationOngletOuvre(... ONG_MonOnglet, Nouveau client, FI_FicheClient, 0)

    Pour le bouton Modifier, cest un peu plus technique.

    Dans lancienne application, le dveloppeur donnait un alias (bas sur lidentifiant auto-matique de lenregistrement) chaque fentre fille pour ne pas les ouvrir deux fois.

    Avec les nouveaux onglets dynamiques, cest lapplication qui dtermine automatiquement lalias du volet donglet au moment de lappel la fonction OngletOuvre.

    Ilestdoncncessairedeconserverlalistedesvolets ouverts dans un tableau associatif de chanes, la cl de ce tableau sera lidentifiant automatique du client. Ce tableau doit tre dfini dans le traitement de dclaration de la fentre.gtaOnglet est un tableau associatif de chanes

    La dfinition existante de lalias est donc modifie par :// Rcupre lidentifiant du clientsAlias est une chane = ... gtaOnglet[nNumClient]

    Au lieu de tester la prsence dune fentre fille MDIviaFenEtat, il faut maintenant utiliser ChampExiste pour dterminer si le volet a

    dj t cr.

    Comme prcdemment, lappel MDIOuvre doit tre remplac par un appel OngletOuvre (les paramtres restent inchangs).

    La fonction OngletOuvre retourne le nom de lalias attribu longlet : il est donc important de lajouter dans le tableau associatif prvu.

    Et enfin, lappel MDIActive doit tre rem-plac par un appel DonneFocus, pour activer longlet sil existe dj.

    // Regarde si la fiche client// nest pas dj ouverte SI sAlias = _OU_ChampExiste(sAlias) = Faux ALORS // Ouvre la fentre en modif. gtaOnglet[nNumClient] = OngletOuvre(ONG_MonOnglet, ChaneConstruit( Fiche client de : %1, Table_CLIENT.Nom[nIndice]), FI_FicheClient, nNumClient)SINON // Donne le focus au volet DonneFocus(sAlias)FIN

    4. Modifier la fiche clientDans la fentre interne Fiche client, il est ncessaire dadapter le code des boutons.

    Le bouton Annuler fait un appel Ferme, ce qui nest pas adapt la fentre interne : la fonction Ferme va fermer la fentre en cours alors que nous voulons annuler les modifications sur la fiche.

    Pour cela, il suffit de refaire un appel la fonc-tion FichierVerEcran : les valeurs prsentes dans le fichier de donnes seront raffiches, annulant ainsi les ventuelles modifications.

    Et le bouton Valider ?

    Lappel la fonction FenEtat nest plus utile, puisque la table est prsente dans la mme

    fentre que la fiche. Et ici aussi, il convient de supprimer lappel la fonction Ferme pour ne pas fermer lapplication.

    5. Modifier le libell du voletNotre application est maintenant fonction-nelle.

    Mais il reste un petit dtail rgler : la cration dun nouveau client, aprs avoir saisi ses informations et valid, le libell du volet est toujours Nouveau client.

    Comme pour louverture dune fiche depuis la table, il faudrait que le libell se modifie en Fiche client de : .

    Pour modifier le libell de longlet depuis la fentre interne, utilisez la nouvelle fonction WLangagedelaversion20:OngletDuChamp.

    Cette fonction prend en paramtre un champ et retourne le nom du champ Onglet qui le contient.

    En effectuant une indirection sur le rsultat de cette fonction, il est possible de rcuprer directement le volet courant (variable de type Champ).// Rcupre le volet courantchOnglet est un Champ

  • LE CHAMP TABLEUR

    Le champ Tableur vous permet dintgrer un tableur directement dans vos applications. Plus besoin de grer des licences, dinstaller Office ou de manipuler un ActiveX, ...VousutilisezunchampetdesordresWLangageadapts!

    Mise en formeLutilisateur peut modifier le format des cellules, leur mise en forme avec la barre doutil en haut :lapolice(nom,taille),legras,soulign,italique,lecadre,lacouleurdefondetlacouleurdetexte,lalignement,lafusion,leformatdelacellule.

    FormuleLutilisateur peut utiliser des formules pour effectuer des calculs : par exemple ici, la somme des valeurs dune colonne (=SOMME(F6;F10)).Pour faciliter le choix parmi les nombreuses fonctions disponibles (plus dune centaine !), la saisie de la formule propose une compltion.

    Vous pouvez galement ajouter vos propres fonctions WLangage(voirlasectionManipulerlechampparpro-grammation).

    ParamtrageDans la description du champ Tableur, onglet Dtail, vous pouvez dfinir si lutilisateur pourra saisir des valeurs et des formules.Vous pourrez galement dfinir la visibilit des enttes de lignes et de colonnes, de la barre doutils et de la barre de saisie de formule.

    44 - TDF Tech 2015 - www.pcsoft.fr

  • Exemple didactique disponibleLexempleWDTableur, livrenstandardavecWINDEV,estunexempledidactiquesurlechampTableur qui vous permettra de manipuler ce champ, de tester les fonctions et les options de paramtrage.

    Sauver le contenuBien entendu, il est possible de sauvegarder le contenu du champ Tableur.

    Ilsuffitdutiliser loptionEnregistrersous ...dumenu contextuel du champ (FAA).

    Le champ Tableur est capable nativement dafficher et de sauver des fichiers Excel au format XLSX.

    dition depuis lditeur de fentresLe champ Tableur peut tre dit ds sa cration, directement depuis lditeur de fentres.IlsuffitdutiliserloptionEditerlecontenudumenucontextueldu champ.Ilestgalementpossibledepasserenditioneneffectuantunsimple clic lorsque le champ est dj slectionn.

    Un cadre jaune apparat autour du champ : cela signifie que le mode dition est actif. La touche Echap permet de quitter le mode dition.

    En mode dition, vous pouvez saisir des donnes, des calculs et mettre en forme les cellules.Tout le contenu dfini en dition constituera le contenu initial du champ.

    Manipuler le champ par programmationPour remplir des cellules dun champ Tableur ou rcuprer leur valeur, la syntaxe utiliser est la suivante : [].TBLR_MonTableur[A1] = 42

    LeWLangagedisposedeplusieursfonctionspourmanipuler le champ Tableur :TableurCharge, pour charger un document Excel directement dans le champ,TableurSauve, pour sauvegarder le contenu dun champ Tableur dans un fichier,TableurAjouteFormule pour ajouter une formule dans une cellule,...

    La fonction TableurAutoriseProcdure est trs intressante : elle permet dautoriser vos procdures WLangagetreutilisesdansuneformule.

    La procdure sera automatiquement propose lutilisateur final dans le champ Tableur (via la compltion).TableurAutoriseProcdure(... TBLR_MonTableur, DtermineAcompte)

    Votre procdure peut prendre autant de paramtres que ncessaire et doit absolument renvoyer une valeur : le rsultat afficher dans la cellule.

    TDF Tech 2015 - www.pcsoft.fr - 45

  • LE CHAMP CONFRENCE

    Le champ Confrence vous permet dchanger la vido et le son entre deux applications situes sur deux machines distantes.Avec 1 champ et 2 fonctions WLangage, vous ralisez simplement etrapidement un outil de communication.

    Projet dillustrationLe projet utilis pour illustrer ce sujet est lexemple WDVisioConfrence (livrenstandardavecWINDEV).

    Le champ VisionConfrenceDans un premier temps, il est important de diffrencier les champs Confrence, Camra et Multimdia :lechampMultimdiapermetdejouerunevido provenant dun fichier,lechampCamrapermetdafficherendirectla vido de la webcam de lordinateur sur lequel est installe lapplication,lechampConfrencepermetdafficherlavido dune webcam dun autre poste (local ou distant).

    Une fentre contenant 2 champs Confrence, un sur la webcam locale et lautre sur la web-cam dun ordinateur distant, permet donc de raliser une visioconfrence !

    DescriptionDans la description du champ Confrence, ongletGnral,ilestpossibledindiquersile champ doit afficher la vido reue ou la vido envoye.

    La vido et le son transitent avec des flux : ce sont ces flux que vous allez manipuler.

    Le champ Confrence est simplement un conteneur qui affiche le contenu du flux (vido et son).

    Le bouton Editer les flux de la fentre permet de paramtrer le flux de la fentre.

    Vous pouvez ainsi choisir ce que le flux trans-porte : vido et/ou son, en envoi et/ou en rception.

    Connecter deux applicationsLa programmation du champ Confrence est ralise par la famille de fonctions FluxXXX duWLangage.Pour connecter deux applications avec le champ Confrence, deux tapes suffisent.

    1. La premire application doit amorcer laconnexionavec la fonctionWLangageFluxConnecte pour lancer la connexion.

    // Identifant de connexion// (lutilisateur en cours)FLUX_MonFlux..Identifiant = ... RseauUtilisateur()// Connexion du flux du champ// CONF_Rception// ladresse demandeFluxConnecte(CONF_Rception, sIP)SI FLUX_MonFlux = 0 ALORS Erreur(chec de connexion) FIN

    Remarque : lidentifiant de flux peut tre rcupr par lapplication cliente pour savoir

    46 - TDF Tech 2015 - www.pcsoft.fr

  • qui effectue la demande. Pensez bien le renseigner.

    2. La deuxime application est prvenue de la demande de connexion dans le traitement de Demande de connexion dun nouveau flux du champ Confrence.Pour accder aux traitements des flux, choisis-sez loption Code du flux associ du menu contextuel du champ Confrence.Ce traitement reoit en paramtre lidenti-fiant du flux.

    AveclafonctionWLangageFluxInfo, il est possible de rcuprer des informations sur

    ce flux :lenomdelappelant(proprit..Identifiant renseigne par lapplication appelante),ladresseIPdelappelant.

    La fonction FluxAccepte permet daccepter la demande de connexion et lance la visiocon-frence. A contrario, la fonction FluxRefuse permet de refuser une connexion.

    // nIdFlux contient lidentifiant// du flux dtectPROCEDURE NouveauFlux(nIdFlux)// Nom de lappelantsNomAppelant est une chane

    sNomAppelant = FluxInfo(nIdFlux, FluxNomAppelant)// Adresse de lappelantsAdresseAppelant=FluxInfo(nIdFlux, FluxNumroAppelant)// Accepte le fluxFluxAccepte(nIdFlux, CONF_Rception)

    TDF Tech 2015 - www.pcsoft.fr - 47

  • 1 Gestion des alignementsEn version 20, lditeur de fentres propose des types dalignement

    supplmentaires trs utiles.Ces alignements sont disponibles dans le volet Alignement du ruban.Parmi les nouveauts, vous retrouverez :despositionnements (coinhautgauche,coin bas droit, etc.),

    desagrandissements.

    la cration dun champ, les ancrages sont automatiquement ajouts.

    Ces ancrages sont calculs par rapport aux ancrages des champs dj prsents dans la fentre.

    Et si le champ cr est un champ conteneur (un onglet, une table, un tableur, un tableau crois dynamique,...), le champ prend auto-matiquement la plus grande place disponible.

    2 Cadres sur les champsPour chaque champ, il est possible de dfinir un cadre.

    En version 20, vous pouvez maintenant dfinir le cadre dun champ directement depuis lditeur de fentres, sans aller dans la des-cription du champ.

    Pour dfinir un cadre directement depuis

    lditeur de fentres, slectionnez un champ et appuyez sur la touche Alt : un bouton spcifique ( ) apparat alors. Ce bouton permet de passer en mode dition de cadre.

    En mode dition, 2 panneaux doutils sont affichs. Ces panneaux permettent de modifier toutes les options du cadre :lp