PC SOFT

DOCUMENTATION EN LIGNE
DE WINDEV, WEBDEV ET WINDEV MOBILE

  • Ce que vous allez apprendre dans cette leçon
  • Présentation
  • Travail en équipe
  • Les projets volumineux
  • Les bases de données accédées par plusieurs projets
  • Les traitements utilisés dans plusieurs projets
  • La possibilité de diffuser une fonctionnalité ou un ensemble de fonctionnalités
  • Composant externe multiproduits
  • Etape par étape
  • Etape 1 : Création d'un composant externe
  • Etape 2 : Utilisation du composant externe
  • Distribution d'un composant externe
  • Distribution simple
  • Distribution professionnelle
Leçon 4.11. Réutilisez du code grâce aux composants externes
Ce que vous allez apprendre dans cette leçon
  • Qu'est-ce qu'un composant externe ?
  • Etape par étape, la création d'un composant externe.
  • Diffusion d'un composant externe.

Durée estimée : 30 mn
Leçon précédenteSommaireLeçon suivante
Présentation
Un composant externe WINDEV est une brique applicative qui peut être réutilisée dans un nombre illimité de projets (et donc d'exécutables).
Un composant externe permet d'avoir un traitement identique avec un code source unique pour réaliser une opération donnée même si ce traitement doit être réalisé par plusieurs projets.
Les projets qui utilisent un composant externe ont accès sous l'éditeur WINDEV au nom des objets, procédures ou méthodes rendues visibles par le concepteur du composant. Les projets ne peuvent pas voir ou modifier le code source. La confidentialité et la stabilité du code sont garanties.
La réalisation d'un composant externe est très simple.
Comment faut-il faire ? Faites comme d'habitude, créez vos fenêtres, procédures, classes. Puis lorsque vous aurez terminé, au lieu de choisir l'option de création de l'exécutable, prenez l'option de création d'un composant, c'est tout !
Un composant peut contenir du code, des fenêtres, une analyse, des fichiers de données, etc !

Note

Pour partager du "code", il y a cinq méthodes principales avec WINDEV :
  1. Les collections de procédures
  2. Les classes
  3. Les superchamps (à travers l'utilisation d'un dictionnaire)
  4. Les composants externes
  5. Les composants internes
Voici plusieurs cas dans lesquels les composants externes peuvent être intéressants.

Travail en équipe

Un développeur crée et maintient un composant externe qu'il met à la disposition des autres développeurs. Il ne risque pas d'y avoir des modifications faites "par erreur" !

Les projets volumineux

Les composants externes permettent d'avoir plusieurs projets distincts de tailles réduites et d'avoir un projet central dans lequel les éléments des autres projets sont visibles. L'utilisabilité des composants externes est bien meilleure que les bibliothèques (fichiers WDL).

Les bases de données accédées par plusieurs projets

Lorsqu'une même base de données est accédée par plusieurs projets, il est fréquent d'avoir des incohérences dans la base de données dues à des codes sources modifiés ou trop vieux. En regroupant les opérations d'accès (en écriture au moins) à la base de données dans un composant externe, cela permet d'avoir un seul code source à vérifier/maintenir et donc de limiter le risque d'incohérences dans la base de données.
De plus, l'utilisation d'un composant évite de recompiler l'application lors d'une modification de l'analyse.

Les traitements utilisés dans plusieurs projets

Il est fréquent d'avoir des traitements plus ou moins complexes utilisés dans plusieurs projets. Il est possible de réutiliser ces traitements par l'intermédiaire de "collections de procédures" ou de "classes". Dans ce cas, il existe un risque de modifications non reportées entre les différents projets, qui rendent ensuite ces éléments incompatibles entre eux. L'utilisation des composants externes permet d'éviter des modifications intempestives et permet de conserver des projets compatibles auxquels il est simple d'apporter une modification commune.
De plus avec l'utilisation possible du mot-clé PRIVE, vous pourrez assurer la confidentialité de votre code à tous les niveaux du composant externe. Lors de la réutilisation de votre composant externe dans un autre projet WINDEV, l'appel d'une procédure PRIVEE ne sera pas permis mais la documentation concernant l'utilisation de la procédure sera affichée !

La possibilité de diffuser une fonctionnalité ou un ensemble de fonctionnalités

Les composants externes permettent de réaliser une fonctionnalité ou un ensemble de fonctionnalités. D'autres développeurs WINDEV pourront intégrer ces fonctionnalités dans leurs propres projets. Les développeurs qui utilisent un composant externe peuvent voir les éléments du composant rendus visibles. Cependant il ne sera pas possible de voir ou de modifier le code source.
Vous pouvez diffuser gratuitement ou même commercialiser des composants externes !

Composant externe multiproduits

Un composant externe peut être prévu pour fonctionner dans :
  • une application WINDEV,
  • une application WEBDEV,
  • une application WINDEV Mobile,
  • ou dans les trois types d'applications.
Dans ce dernier cas, WINDEV permet :
  • d'intégrer les éléments provenant des différents produits (WEBDEV et/ou WINDEV Mobile) dans un même composant externe.
  • d'indiquer pour chaque plateforme d'exécution le code WLangage correspondant (par exemple, l'affichage d'une fenêtre se fait par la fonction Ouvre en WINDEV et l'affichage d'une page se fait par la fonction PageAffiche en WEBDEV).
Etape par étape

Etape 1 : Création d'un composant externe

Nous allons créer un composant externe à partir du projet "WD Application Complète". Ce projet permet de gérer des commandes, des produits et des clients. Le composant externe que nous allons créer va nous permettre de connaître dans une autre application instantanément les clients correspondant à une ville donnée.
Lors de l'appel au composant externe, vous pourrez :
  • Passer une ville en paramètre.
  • Récupérer une chaîne contenant le nom du client et le montant total de ses commandes.
Pour ne pas avoir à développer le code nécessaire au fonctionnement du composant, le projet "WD Application Complète" contient tous les éléments nécessaires.

Corrigé

Si vous n'avez pas créé les fenêtres des leçons précédentes, vous pouvez suivre cette leçon en ouvrant un projet corrigé : sous le volet "Accueil", dans le groupe "Aide en ligne", déroulez "Guide d'Auto-formation" puis sélectionnez "Application complète (Avec fenêtres)".
Un projet corrigé complet de l'application est également disponible : sous le volet "Accueil", dans le groupe "Aide en ligne", déroulez "Guide d'Auto-formation" puis sélectionnez "Application complète (Corrigé)".
  • Pour les besoins du composant, le projet contient :
    • une requête "REQ_CommandesParVille". Cette requête est une requête paramétrée permettant d'obtenir pour une ville donnée les clients correspondants ainsi que le montant total de leurs commandes.
    • une collection de procédures "COL_Composant". Cette collection de procédures contient :
      • la procédure "DonneCommandesParVille" qui renvoie pour la ville passée en paramètre une chaîne contenant le nom du client et le montant total de ses commandes.
      • la procédure "LocalisationDonnées" qui permet de localiser les données utilisées par le composant.
    • une analyse permettant de décrire les fichiers de données stockant les informations.
  • Nous allons maintenant créer notre composant. Pour cela, nous devons créer une configuration de projet.

    Note

    Les configurations de projet permettent de créer à partir d'un même projet plusieurs "cibles" différentes :
    • Une application 32 bits,
    • Une application 64 bits,
    • Un composant,
    • ...
    À tout moment, vous pouvez choisir la configuration sur laquelle vous travaillez et générer en une seule opération tous les éléments pour toutes les configurations d'un projet.
  • Pour créer une configuration de projet de type "Composant" :
    1. Sous le volet "Projet", dans le groupe "Configuration de projet", déroulez "Nouvelle configuration" et sélectionnez "Composant Externe (WDK)".
    2. L'assistant de création d'une configuration de projet se lance. WINDEV propose de créer une configuration de projet de type "Composant". Passez à l'étape suivante.
    3. Donnez un nom à votre configuration de projet : par exemple "CompoCommandesParVille". Passez à l'étape suivante.
    4. Conservez les options proposées par défaut. Passez à l'étape suivante.
    5. Sélectionnez les éléments à intégrer dans la configuration de projet. Dans cet exemple, ces éléments seront également présents dans le composant.
      • Cliquez sur le bouton "Aucun".
      • Sélectionnez les éléments "REQ_CommandesParVille" et "COL_Composant".
        Configuration de projet
    6. Passez à l'étape suivante et validez la création de la configuration.
    7. La nouvelle configuration devient automatiquement la configuration en cours.

      Note

      Pour connaître et modifier la configuration en cours, utilisez le volet "Explorateur de projet".
      Explorateur de projet
      La configuration en gras correspond à la configuration courante. Pour changer la configuration courante, double-cliquez sur le nom de la configuration à activer.
  • Nous allons maintenant générer notre composant.
    1. Sous le volet "Projet", dans le groupe "Génération", cliquez sur "Générer".
    2. L'assistant de génération du composant se lance. Passez à l'étape suivante de l'assistant. WINDEV liste les éléments à intégrer dans le composant (éléments spécifiés dans la configuration et dans l'analyse).
      Eléments à intégrer
    3. Sélectionnez tous les éléments (bouton "Tous") et passez à l'étape suivante.
    4. L'assistant vous demande de sélectionner les éléments du composant qui seront accessibles depuis l'application cliente.Dans notre exemple, seule la collection de procédures "COL_Composant" sera utilisée :
      Eléments accessibles
    5. Passez à l'étape suivante.
    6. WINDEV propose d'autoriser la traduction du composant. Cette fonctionnalité est intéressante si votre composant doit être utilisé par des applications multilingues.
      Traduction du composant
      Si l'option "Autoriser la traduction du composant" est cochée, il sera possible de traduire à partir de l'application utilisant le composant les éléments spécifiés du composant.
      Cette traduction sera réalisée à l'aide de WDMSG, module indépendant permettant d'extraire et de réintégrer les messages à traduire d'un projet.
      Dans cet exemple, ne cochez pas cette option. Passez à l'étape suivante.
    7. Choisissez les langues du composant. Notre exemple contient uniquement le Français. Passez à l'étape suivante.
    8. L'assistant propose ensuite de gérer les différentes versions du composant. Dans notre exemple, le composant vient d'être créé.
      Conservez les options par défaut. Passez à l'étape suivante.
    9. Saisissez les différentes informations concernant le composant :
      • Propriétaire,
      • Libellé, Copyright, ...
    10. Passez à l'étape suivante.
    11. Vous pouvez associer une image à votre composant. Passez à l'étape suivante.
    12. Spécifiez la présentation générale du composant. Cette présentation permettra à l'utilisateur du composant de connaître sa finalité. Saisissez par exemple :
      Présentation générale du composant
    13. Passez à l'étape suivante. L'assistant va maintenant effectuer la génération automatique de la documentation sur le composant. Cette documentation peut être basée sur les commentaires que vous aurez insérés dans votre code source.
    14. Passez à l'étape suivante. Vous avez la possibilité de modifier la documentation générée. Nous n'allons pas y toucher. Passez à l'étape suivante.
    15. Vous avez la possibilité de créer un fichier d'aide associé à votre composant (format CHM). Ce fichier d'aide sera livré avec le composant. Les clients pourront y accéder en utilisant la touche F1 à partir du code du composant.
      Nous n'allons pas générer de fichier d'aide. Passez à l'étape suivante.
    16. Nous n'allons pas enregistrer le composant dans le GDS. Passez à l'étape suivante.
    17. Il ne reste plus alors qu'à donner un nom physique à notre composant.
      Génération du composant
  • Validez. Un message indique que le composant a été généré. Validez le message en cliquant sur "Terminer".
  • Voilà, votre premier composant est maintenant créé, il est prêt à l'emploi !

Etape 2 : Utilisation du composant externe

Une fois créé, votre composant est alors utilisable dans n'importe quel autre projet WINDEV. Nous allons maintenant voir comment réutiliser ce composant.
  • Pour cela, nous allons créer un nouveau projet et importer notre composant dans ce projet.
    1. Fermez le projet en cours : sous le volet "Accueil", dans le groupe "Général", déroulez "Fermer" et sélectionnez "Fermer le projet".
    2. Validez la fermeture du projet et si nécessaire l'enregistrement des modifications.
    3. La fenêtre de bienvenue apparaît.
    4. Créez un nouveau projet : cliquez sur "Créer un projet" dans la fenêtre de bienvenue.
      • Ce projet est une application Windows.
      • Ce projet s'appelle "CompoUtilisation" et n'a pas d'analyse.
    5. Sous le volet "Projet", dans le groupe "Projet", déroulez "Importer" et sélectionnez l'option "Un composant Externe ... À partir d'un fichier".
    6. Dans le répertoire du projet "WD Application Complète", sélectionnez le sous-répertoire "EXE\CompoCommandesParVille", puis le fichier "CompoCommandesParVille.wdi".

      Note

      Si vous avez créé le composant à partir de :
      • l'exemple "WD Application Complète (Exercice)", sélectionnez le sous-répertoire "Mes Projets\Mes Exemples\WD Application Complète (Exercice)\EXE\CompoCommandesParVille", puis le fichier "CompoCommandesParVille.wdi".
      • l'exemple "WD Application Complète (avec fenêtres)", sélectionnez le sous-répertoire "Mes Projets\Mes Exemples\WD Application Complète (Avec fenêtres)\EXE\CompoCommandesParVille", puis le fichier "CompoCommandesParVille.wdi".
    7. Après avoir cliqué sur "Ouvrir", la description de notre composant s'est affichée. Cette description contient :
      • Sur l'onglet "Général", les éléments saisis lors de la création du composant externe ainsi que son emplacement.
        Description du composant
      • Sur l'onglet "Détail", la description du composant ainsi que l'aide générée automatiquement. Il est ainsi possible de connaître les éléments utilisables du composant.

        Note

        Il est possible d'accéder à tout moment à la description du composant. Il suffit de sélectionner le composant dans l'explorateur de projet et de sélectionner l'option "Description" du menu contextuel. Dans ce cas, il est également possible de définir le mode de chargement du composant.
    8. Validez (bouton "Fermer"). Le composant est intégré dans votre projet.
  • Nous allons maintenant créer une nouvelle fenêtre vierge pour utiliser le composant.
    1. Créez une fenêtre vierge.
      • La fenêtre a pour titre "Clients par ville".
      • Le nom de la fenêtre est "FEN_Clients_par_ville".
      • Validez la sauvegarde.
    2. Affichez le code associé à la fenêtre (option "Code" du menu contextuel).
    3. Dans le traitement "Fin d'initialisation", nous allons appeler la fonction LocalisationDonnées du composant. Cette fonction attend en paramètre le chemin permettant d'accéder aux fichiers de données manipulés par le composant. Saisissez le chemin d'accès aux données de l'exemple "WD Application Complète". Par exemple :
      LocalisationDonnées(...// Indiquez le chemin de VOS données
      "C:\WINDEV\Autoformation\Exercices\"+ ...
      "WD Application Complète\Exe")

      Note

      Si votre projet utilise une autre procédure nommée "LocalisationDonnées", il sera nécessaire de préfixer le nom de la procédure du composant par le nom de la collection de procédures utilisée pour supprimer l'ambiguïté. Le code devient alors :
      COL_Composant.LocalisationDonnées(...
    4. Fermez l'éditeur de code.
    5. Dans la fenêtre, ajoutez les champs suivants :
      • Un champ de saisie avec pour libellé "Ville" et pour nom "SAI_Ville".
      • Un champ Table "TABLE_Résultat", rempli par programmation et composé de 2 colonnes :
        • une colonne "Nom" de type Texte.
        • une colonne "Total ventes" de type Monétaire.
      • Un bouton avec pour libellé "Rechercher" et pour nom "BTN_Rechercher".
  • Editez maintenant le code du bouton "BTN_Rechercher". Lors du clic sur ce bouton, nous allons exécuter la procédure de recherche présente dans le composant. Cette procédure :
    • attend en paramètre le nom de la ville
    • renvoie une chaîne de la forme :
      Nom du client 1 + TAB + Total vente 1 + RC + Nom du client 2 + TAB + Total vente 2 + ...
    Le code du bouton "BTN_Rechercher" doit donc :
    • appeler la procédure DonneCommandesParVille du composant en lui passant en paramètre le contenu du champ SAI_Ville.
    • traiter la chaîne obtenue pour l'ajouter dans la table.
    Saisissez le code suivant :
    sListeRésultat est une chaîne
    // Récupère la liste des clients et leurs commandes
    // pour la ville saisie
    sListeRésultat = DonneCommandesParVille(SAI_Ville)
    // Si la liste n'est pas vide
    SI sListeRésultat <> "" ALORS
    // Vide la table
    TableSupprimeTout(TABLE_Résultat)
    // Parcourt les résultats
    POUR TOUTE CHAÎNE sUnClient DE sListeRésultat SEPAREE PAR RC
    // Ajoute ce client à la table
    TableAjoute(TABLE_Résultat, sUnClient)
    FIN
    SINON // Si la liste est vide
    InfoConstruit("Aucun client trouvé pour la ville %1", ...
    SAI_Ville)
    FIN
  • Sauvegardez votre fenêtre.
  • Testez la fenêtre en cliquant sur le bouton "GO" parmi les boutons d'accès rapide. Dans le champ de saisie, saisissez "Paris" (en respectant la casse) puis cliquez sur le bouton "Rechercher". La liste des clients s'affiche.
    Test de la fenêtre
  • Et c'est terminé ! Simple n'est-ce pas ?
Vous savez désormais créer un composant et le réutiliser dans vos applications. Mais vous pourriez également décider de gérer des procédures d'installation de vos composants, pour, par exemple, les redistribuer séparément de vos applications.
Distribution d'un composant externe
Vous avez deux choix possibles pour distribuer un composant :
  1. Fournir les fichiers nécessaires "manuellement", c'est une distribution "simple".
  2. Créer une distribution plus "professionnelle", grâce à l'éditeur d'installation de WINDEV, WDInst.

Distribution simple

Vous devez dans ce cas fournir tous les fichiers nécessaires au bon fonctionnement de votre composant. Ces fichiers sont créés à la génération du composant (fichiers WDI, WDK, WDO, images, autres documents, ...). Ces fichiers seront copiés manuellement de leur répertoire d'origine vers le répertoire de destination. Les projets WINDEV qui utiliseront ce composant, iront chercher les fichiers dépendants dans ce répertoire de destination.
Liste des fichiers à fournir pour une distribution simple :
  • les fichiers générés automatiquement par WINDEV (WDK, WDI, ...).
  • les fichiers de dépendances.
  • si le composant utilise des fichiers de dépendances, il faudra fournir le fichier WDO. Ce fichier contient les références aux différents fichiers externes utilisés dans le composant.

Distribution professionnelle

La diffusion des composants à l'aide d'une procédure d'installation consiste à fournir aux utilisateurs du composant WINDEV un programme d'installation. Ce programme installe tous les fichiers nécessaires à l'utilisation du composant dans le répertoire spécifié par l'utilisateur.
Ce mode d'installation permet de gérer automatiquement :
  • le fichier WDO et l'installation des fichiers supplémentaires utilisés par le composant.
  • l'installation automatique d'outils nécessaires (MDAC, driver ODBC pour HFSQL, ...).
  • la mise à jour automatique des fichiers de données utilisés par le composant (si nécessaire).
  • la désinstallation du composant.
  • Fermez le projet "CompoUtilisation" : sous le volet "Accueil", dans le groupe "Général", déroulez "Fermer" et sélectionnez "Fermer le projet".
  • Ouvrez le projet "WD Application Complète" précédemment manipulé (par exemple, affichez la fenêtre de bienvenue et sélectionnez le projet "WD Application Complète" présent dans les projets récents). Sélectionnez si nécessaire la configuration de projet correspondant au composant dans l'explorateur de projet.
  • Pour créer l'installation, sous le volet "Projet", cliquez sur "Procédure d'installation".
L'assistant de création d'installation du composant se lance.
Nous ne détaillerons pas les différents modes d'installation d'un composant. Suivez les instructions de l'assistant.
Si vous souhaitez obtenir plus de détails concernant l'installation de composants, consultez Distribuer un composant externe.
Leçon précédenteSommaireLeçon suivante
Version minimum requise
  • Version 23
Commentaires
Cliquez sur [Ajouter] pour publier un commentaire