|
|
|
|
|
- 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
- Accéder au contenu des champs de la fenêtre interne depuis la fenêtre hôte
Afficher un contenu différent à chaque répétition
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. 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 : - Créez si nécessaire un champ Zone répétée : champ Zone répétée fichier, par programmation ou sur variable.
- Insérez le champ Table dans le champ Zone répétée. Le champ Table doit être alimenté par programmation.
- Assurez-vous que l'option "Contenu identique pour toutes les lignes" soit décochée (onglet "UI" de la fenêtre de description du champ Table).
- 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 : PROCÉDURE RemplirCommandesDuJour()
nIndice est un entier
ZoneRépétéeSupprimeTout(ZR_CommandesDuJour)
POUR TOUT Commande AVEC "DateCommande = '" + DateDuJour() + "' AND EstFinalisée = 0"
HLitRecherchePremier(ContactClient, IDContactClient, Commande.IDContactClient)
SI HTrouve(ContactClient) = Faux ALORS CONTINUER
nIndice = ZoneRépétéeAjouteLigne(ZR_CommandesDuJour, Commande.IDCommande, ...
ContactClient.Societe, ContactClient.Nom + ...
[" "] + ContactClient.Prénom)
POUR TOUT LigneCde AVEC IDCommande = Commande.IDCommande
HLitRecherchePremier(Produit, IDProduit, LigneCde.IDProduit)
SI HTrouve(Produit) = Faux ALORS CONTINUER
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, etc.) dans le champ Zone répétée : - Créez si nécessaire un champ Zone répétée : champ Zone répétée fichier, par programmation ou sur variable.
- Insérez un champ Fenêtre interne dans le champ Zone répétée.
- Assurez-vous que l'option "Contenu identique pour toutes les lignes" soit décochée (onglet "UI" de la description du champ Fenêtre interne).
- Créez si nécessaire une fenêtre interne. Insérez le champ (champ Graphe, Liste, Arbre, etc.) dans cette fenêtre interne. Le champ inséré doit être alimenté par programmation.
- Associez le champ Fenêtre interne à la fenêtre interne (onglet "Général" de la description du champ Fenêtre interne).
- 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>) Accéder au contenu des champs de la fenêtre interne depuis la fenêtre hôte Pour accéder au contenu des champs de la fenêtre interne depuis la fenêtre hôte, il suffit de manipuler la répétition voulue, la fenêtre interne puis le champ. Exemple : Récupérer la valeur d'un champ de saisie de type date de la première occurrence du champ Zone répétée :
x est Champ <- ZR_SansNom1[1] Trace(x.FI_SansNom1.SAI_DATE)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|