PC SOFT

DOCUMENTATION EN LIGNE
DE WINDEV, WEBDEV ET WINDEV MOBILE

  • Présentation
  • Comment le faire ?
  • Intégrer un champ Table dans un champ Zone répétée
  • Intégrer un champ dans un champ Zone répétée
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
Présentation
Dans un champ Zone répétée, il est possible d'affecter un contenu différent aux champs Table, Graphe, Liste et Arbre :
  • Si le champ à répéter est un champ Table ou Graphe, il suffit de l'insérer directement dans le champ Zone répétée.
  • Si le champ à répéter est un autre type de champ (champ Liste, Arbre, ...), il suffit d'insérer ce champ dans une fenêtre interne. Dans le champ Zone répétée, il suffira alors de créer le champ fenêtre interne associé.
Remarque : Les champs Table, Graphe ou les champs de la fenêtre interne doivent être alimentés par programmation.
Comment le faire ?

Intégrer un champ Table dans un champ Zone répétée

Pour intégrer un champ Table dans un champ Zone répétée :
  1. Créez si nécessaire un champ Zone répétée (fichier, mémoire ou sur source).
  2. Insérez le champ Table dans le champ Zone répétée. Le champ Table doit être alimenté par programmation.
  3. Assurez-vous que l'option "Contenu identique pour toutes les lignes" soit décochée (onglet "IHM" de la fenêtre de description du champ Table).
  4. Il est maintenant possible d'alimenter le champ Table par programmation.
Le champ Table présent dans le champ Zone répétée peut être rempli en utilisant la fonction TableAjouteLigne de la manière suivante :
TableAjouteLigne(<Nom du champ Zone répétée>[Indice de la répétition].<Nom du champ Table>,
<Elément colonne 1>, <Elément colonne 2>, ...)
Exemple : Le code suivant permet de remplir le contenu du champ Table présent dans le champ Zone répétée. Le champ Zone répétée liste les commandes et le champ Table liste les produits commandés.
Le code permettant de remplir à la fois le champ Zone répétée et le champ Table est le suivant :
PROCEDURE RemplirCommandesDuJour()

// Variables locales
nIndice est un entier

// Vide le champ Zone répétée
ZoneRépétéeSupprimeTout(ZR_CommandesDuJour)

// Parcours des commandes du jour
POUR TOUT Commande AVEC "DateCommande = '" + DateDuJour() + "' AND EstFinalisée = 0"

// Recherche le contact associé
HLitRecherchePremier(ContactClient, IDContactClient, Commande.IDContactClient)
SI HTrouve(ContactClient) = Faux ALORS CONTINUER

// Ajoute une ligne dans le champ Zone répétée
nIndice = ZoneRépétéeAjouteLigne(ZR_CommandesDuJour, Commande.IDCommande, ...
ContactClient.Societe, ContactClient.Nom + ...
[" "] + ContactClient.Prénom)

// Parcours les lignes de commandes
POUR TOUT LigneCde AVEC IDCommande = Commande.IDCommande
HLitRecherchePremier(Produit, IDProduit, LigneCde.IDProduit)
SI HTrouve(Produit) = Faux ALORS CONTINUER

// Ajout des éléments commandés dans le champ Table
TableAjouteLigne(ZR_CommandesDuJour[nIndice].TABLE_Commande, ...
Produit.IDProduit, Produit.Libellé, LigneCde.Quantité)
FIN
FIN
Pour avoir une syntaxe plus simple, il est possible d'effectuer le remplissage directement dans le code d'affichage d'une ligne du champ Zone répétée. Dans ce cas, il n'est pas nécessaire de préciser l'indice de la zone répétée principale. La syntaxe devient :
TableAjouteLigne(<Nom du champ Table>, <Elément colonne 1>, <Elément colonne 2>, ...)
Astuce : Dans le code d'affichage d'une ligne du champ Zone répétée, pensez à vider le champ Table avant de le remplir avec la fonction TableSupprimeTout.

Intégrer un champ dans un champ Zone répétée

Pour intégrer un autre champ (Liste, Arbre, ...) dans le champ Zone répétée :
  1. Créez si nécessaire un champ Zone répétée (fichier, mémoire ou sur source).
  2. Insérez un champ Fenêtre interne dans le champ Zone répétée.
  3. Assurez-vous que l'option "Contenu identique pour toutes les lignes" soit décochée (onglet "IHM" de la description du champ Fenêtre interne).
  4. Créez si nécessaire une fenêtre interne. Insérez le champ (graphe, liste, arbre, ...) dans cette fenêtre interne. Le champ inséré doit être alimenté par programmation.
  5. Associez le champ Fenêtre interne à la fenêtre interne (onglet "Général" de la description du champ Fenêtre interne).
  6. Il est maintenant possible d'alimenter le champ par programmation.
Par exemple, il est possible d'utiliser la fonction ArbreAjoute de la manière suivante pour remplir un champ Arbre présent dans un champ Zone répétée :
ArbreAjoute(<Nom du champ Zone répétée>[Indice de la répétition].
<Nom de la fenêtre interne>.<Nom du champ Arbre>, <Elément à ajouter>)
Version minimum requise
  • Version 16
Commentaires
Cliquez sur [Ajouter] pour publier un commentaire