PC SOFT

DOCUMENTATION EN LIGNE
DE WINDEV, WEBDEV ET WINDEV MOBILE


  • Méthode 1 : Champs Table liés par la propriété ..Filtre
  • Création du premier champ Table
  • Création du second champ Table
  • Mise en place de la liaison entre les champs Table
  • Utilisation de requêtes
  • Création de la requête
  • Création du second champ Table
  • Mise en place de la liaison entre les champs Table
WINDEV
WindowsLinuxUniversal Windows 10 AppJavaEtats et RequêtesCode Utilisateur (MCU)
WEBDEV
WindowsLinuxPHPWEBDEV - Code Navigateur
WINDEV Mobile
AndroidWidget AndroidiPhone/iPadApple WatchUniversal Windows 10 AppWindows Mobile
Autres
Procédures stockées
On nomme Tables en cascade deux champs Table dont le contenu est lié. Par exemple :
  • Afficher dans un champ Table des familles de produits.
  • Pour chaque famille sélectionnée dans la table, afficher dans un second champ Table les produits lui appartenant.
Cette page d'aide présente comment créer des Tables en cascade :
Méthode 1 : Champs Table liés par la propriété ..Filtre
La propriété ..Filtre sur un champ Table permet de filtrer le contenu du champ Table par rapport à une valeur. Cette valeur est testée par rapport à la rubrique de parcours définie au niveau du champ Table. Le filtre va être appliqué sur le second champ Table. Le code de sélection de ligne sera utilisé pour déclencher ce filtre.
Dans cet exemple, nous afficherons dans le champ Table principal les clients du fichier CLIENT. Le second champ Table contiendra les commandes du client sélectionné dans le premier champ Table.
Les différentes étapes pour créer ces 2 champs Table en cascade sont les suivantes :
  1. Création du premier champ Table.
  2. Création du second champ Table.
  3. Liaison entre les deux champs Table.

Création du premier champ Table

  1. Créez si nécessaire une fenêtre.
  2. Dans le ruban, sous le volet "Création", dans le groupe "Données", déroulez "Table et liste" et sélectionnez "Table (verticale)".
    Option du ruban
    Cliquez dans la fenêtre à la position où le champ Table doit être créé.
  3. L'assistant de création d'un champ Table se lance.
  4. Sélectionnez l'option "Afficher des données d'un fichier ou d'une requête existante".
    Assistant de création du champ Table
    Passez à l'étape suivante de l'assistant.
  5. Sélectionnez le fichier associé au champ Table. Dans notre exemple, le fichier CLIENT.
    Sélection du fichier de données

    Passez à l'étape suivante de l'assistant.
  6. Sélectionnez les rubriques à afficher dans le champ Table. Dans notre exemple, les rubriques NomClient, Société, CodePostal et Ville.
    Sélection des rubriques

    Passez à l'étape suivante de l'assistant.
  7. Sélectionnez la clé de parcours. Dans notre exemple, la rubrique NumClient.
    Sélection de la clé de parcours

    Passez à l'étape suivante de l'assistant.
  8. Les autres étapes de l'assistant n'étant pas importantes pour notre exemple, terminez l'assistant.
  9. Validez. Le champ Table est automatiquement créé dans la fenêtre.
    Option du ruban
  10. Modifiez la hauteur du champ à l'aide des poignées de redimensionnement.

Création du second champ Table

La seconde table va être créée de la même façon.
  1. Dans le ruban, sous le volet "Création", dans le groupe "Données", déroulez "Table et liste" et sélectionnez "Table (verticale)".
    Option du ruban
    Cliquez dans la fenêtre à la position où le second champ Table doit être créé (sous le premier).
  2. L'assistant de création d'un champ Table se lance.
  3. Sélectionnez l'option "Afficher des données d'un fichier ou d'une requête existante".
    Assistant de création du champ Table
    Passez à l'étape suivante de l'assistant.
  4. Sélectionnez le fichier associé au champ Table. Dans notre exemple, le fichier COMMANDE.
    Sélection du fichier de données

    Passez à l'étape suivante de l'assistant.
  5. Sélectionnez les rubriques à afficher dans le champ Table. Dans notre exemple, nous sélectionnons les rubriques NumCommande, DateCommande, TotalHT et TotalTTC.
    Sélection des rubriques

    Passez à l'étape suivante de l'assistant.
  6. Sélectionnez la clé de parcours. Attention, la clé de parcours doit être la rubrique qui fait le lien avec le premier champ Table. Dans notre exemple, cette rubrique est la rubrique NumClient.
    Sélection de la clé de parcours

    Passez à l'étape suivante de l'assistant.
  7. Les autres étapes de l'assistant n'étant pas importantes pour notre exemple, terminez l'assistant.
  8. Validez. Le champ Table est automatiquement créé dans la fenêtre.
    Fenêtre avec les champs Table

Mise en place de la liaison entre les champs Table

Pour mettre en place la liaison entre les champs Table, il faut :
  1. S'assurer que le premier champ Table retourne la valeur qui permettra de filtrer le second champ Table. Cette configuration est réalisée dans la description du champ Table (onglet "Contenu", option "Rubrique mémorisée"). Dans notre exemple, la rubrique mémorisée sera NumClient.
    • Affichez la description du premier champ Table (option "Description de la table" du menu contextuel du champ).
    • Dans l'onglet "Contenu", sélectionnez la rubrique à mémoriser (combo "Rubrique mémorisée"). Dans notre exemple, cette option correspond à la rubrique NumClient :
      Onglet
    • Validez la fenêtre.
  2. Activer le filtre de la seconde table à l'aide de la propriété ..Filtre.
    • Sélectionnez le premier champ Table et affichez les traitements du champ (touche F2).
    • Positionnez-vous dans le traitement "Sélection d'une ligne de la table..." pour saisir le code suivant :
      NomSecondeTable..Filtre = NomPremièreTable
      Dans notre exemple, le code correspondant est :
      Code de sélection d'une ligne
Les deux tables sont liées. Il suffit de tester la fenêtre (GO parmi les boutons d'accès rapide). Sélectionnez un client dans la première table. Le résultat est immédiat.
Test des champs Table en cascade
Utilisation de requêtes
Cette méthode utilise une requête pour créer et filtrer les enregistrements du second champ Table.
Dans cet exemple, nous afficherons dans le champ Table principal les clients du fichier CLIENT. Le second champ Table contiendra les commandes du client sélectionné dans le premier champ Table.
Les différentes étapes pour créer ces 2 tables en cascade sont les suivantes :
  1. Création du premier champ Table (cette étape est identique à celle de la première méthode).
  2. Création d'une requête avec un filtre permettant de sélectionner uniquement les enregistrements correspondant à la ligne sélectionnée dans le premier champ Table. Cette requête va être utilisée comme source du second champ Table.
  3. Création du second champ Table.
  4. Liaison entre les deux champs Table.

Création du premier champ Table

  1. Créez si nécessaire une fenêtre.
  2. Dans le ruban, sous le volet "Création", dans le groupe "Données", déroulez "Table et liste" et sélectionnez "Table (verticale)".
    Option du ruban
    Cliquez dans la fenêtre à la position où le champ Table doit être créé.
  3. L'assistant de création d'un champ Table se lance.
  4. Sélectionnez l'option "Afficher des données d'un fichier ou d'une requête existante".
    Assistant de création du champ Table
    Passez à l'étape suivante de l'assistant.
  5. Sélectionnez le fichier associé au champ Table. Dans notre exemple, le fichier CLIENT.
    Sélection du fichier de données

    Passez à l'étape suivante de l'assistant.
  6. Sélectionnez les rubriques à afficher dans le champ Table. Dans notre exemple, les rubriques NomClient, Société, CodePostal et Ville.
    Sélection des rubriques

    Passez à l'étape suivante de l'assistant.
  7. Sélectionnez la clé de parcours. Dans notre exemple, la rubrique NumClient.
    Sélection de la clé de parcours

    Passez à l'étape suivante de l'assistant.
  8. Les autres étapes de l'assistant n'étant pas importantes pour notre exemple, terminez l'assistant.
  9. Validez. Le champ Table est automatiquement créé dans la fenêtre.
    Option du ruban
  10. Modifiez la hauteur du champ à l'aide des poignées de redimensionnement.

Création de la requête

Les différentes étapes pour créer cette requête SQL avec un filtre sont les suivantes :
  1. Sélectionnez l'option "Fichier .. Nouveau .. Requête". L'assistant de création d'une requête se lance.Cliquez sur Nouveau parmi les boutons d'accès rapide.
    • Dans la roue qui s'affiche, cliquez sur "Requêtes". Dans la fenêtre qui s'affiche, cliquez sur "Requêtes".
    • L'assistant de création d'une requête se lance.
  2. Sélectionnez l'option "Sélectionner (SELECT)" et validez.Choisissez de créer une requête de sélection (option "Sélection (SELECT)").
    Assistant de création de requêtes

    Passez à l'étape suivante de l'assistant.
  3. La fenêtre de description de la requête s'affiche.
  4. Donnez un nom et un libellé à la requête :
    Nom et libellé de la requête
  5. Dans la zone de gauche de la fenêtre de description, choisissez les rubriques du fichier de données à manipuler (dans notre exemple, le fichier COMMANDE et les rubriques NumClient, NumCommande, DateCommande, TotalHT et TotalTTC).
  6. Double-cliquez sur les noms des rubriques pour les ajouter dans la liste des rubriques de la requête :
    Sélection des rubriques
  7. Pour effectuer le filtre (sélection), sélectionnez dans la partie centrale la rubrique NumClient, puis dans la partie droite de l'éditeur, cliquez sur le bouton "Condition de sélection".
    Condition de sélection
  8. Dans le menu qui s'affiche, sélectionnez "Nouvelle condition...".
  9. Dans la fenêtre qui s'affiche :
    • Sélectionnez l'opération ("est égal" dans notre exemple).
    • Sélectionnez "Paramètre" pour pouvoir passer à la requête une valeur sélectionnée dans le premier champ Table.
      Caractéristiques de la condition de sélection
  10. Validez. La fenêtre de description de la requête est mise à jour :
    Description de la requête
  11. Validez la fenêtre de description de la requête. La requête apparaît sous l'éditeur :
    Affichage de la requête sous l'éditeur
  12. Enregistrez la requête (CTRL S).

Création du second champ Table

Pour créer le second champ Table :
  1. Créez si nécessaire une fenêtre.
  2. Dans le ruban, sous le volet "Création", dans le groupe "Données", déroulez "Table et liste" et sélectionnez "Table (verticale)".
    Option du ruban
    Cliquez dans la fenêtre à la position où le champ Table doit être créé.
  3. L'assistant de création d'un champ Table se lance.
  4. Sélectionnez l'option "Afficher des données d'un fichier ou d'une requête existante".
    Assistant de création du champ Table
    Passez à l'étape suivante de l'assistant.
  5. Sélectionnez la requête créée auparavant pour l'associer au champ Table. Dans notre exemple, la requête REQ_CommandeClient.
    Assistant de création de table

    Passez à l'étape suivante de l'assistant.
  6. Sélectionnez les rubriques à afficher dans la table. Dans notre exemple, les rubriques NumCommande, DateCommande, TotalHT et TotalTTC sont sélectionnées.
    Assistant de création de table

    Passez à l'étape suivante de l'assistant.
  7. Les autres étapes de l'assistant n'étant pas importantes pour notre exemple, terminez l'assistant.
  8. Validez. Le second champ Table est automatiquement créé.
    Fenêtre avec les deux champs Table

Mise en place de la liaison entre les champs Table

Pour mettre en place la liaison entre les champs Table, il faut :
  1. S'assurer que le premier champ Table retourne la valeur qui permettra de filtrer le contenu de la requête. Cette configuration est réalisée dans la description du champ Table (onglet "Contenu", option "Rubrique mémorisée"). Dans notre exemple, la rubrique mémorisée sera NumClient.
    • Affichez la description du premier champ Table (option "Description de la table" du menu contextuel du champ).
    • Dans l'onglet "Contenu", sélectionnez la rubrique à mémoriser (combo "Rubrique mémorisée"). Dans notre exemple, cette option correspond à la rubrique NumClient :
      Onglet
    • Validez la fenêtre.
  2. Initialiser le paramètre de la requête utilisée par le second champ Table.
    • Sélectionnez le premier champ Table et affichez les traitements du champ (touche F2).
    • Positionnez-vous dans le traitement "Sélection d'une ligne de la table..." pour saisir le code suivant :
      NomRequête.NomParamètre = NomPremièreTable
      HExécuteRequete(NomRequête)
      TableAffiche(NomSecondeTable)
      Dans notre exemple, le code correspondant est :
      Code de sélection d'une ligne
Les deux champs Tables sont liés. Il suffit de tester la fenêtre (GO parmi les boutons d'accès rapide). Sélectionnez un client dans la première table. Le résultat est immédiat.
Test des champs Table en cascade
Version minimum requise
  • Version 9
Documentation également disponible pour…
Commentaires
Cliquez sur [Ajouter] pour publier un commentaire