DOCUMENTATION EN LIGNE
DE WINDEVWEBDEV ET WINDEV MOBILE

Aide / Développer une application ou un site / Champs, fenêtres et pages / Champs : Types disponibles / Champ Zone Répétée
  • Présentation
  • Comment le faire ?
  • Paramétrage du champ
  • Evénement "Ajout d'éléments supplémentaires"
  • Personnalisation de la fenêtre ou page de patience
WINDEV
WindowsLinuxUniversal Windows 10 AppJavaEtats et RequêtesCode Utilisateur (MCU)
WEBDEV
WindowsLinuxPHPWEBDEV - Code Navigateur
WINDEV Mobile
AndroidWidget AndroidiPhone/iPadWidget IOSApple WatchMac CatalystUniversal Windows 10 App
Autres
Procédures stockées
Présentation
Un champ Table et/ou Zone répétée par programmation peut être rempli selon deux méthodes :
  • Remplissage du champ dans sa totalité : Toutes les données présentes dans le champ sont chargées à l'initialisation du champ.
    Avantage : Toutes les valeurs sont présentes dans le champ. Il est possible de faire des recherches ou des tris sur les éléments contenus dans le champ.
    Inconvénient : L'occupation mémoire du champ et de ses données peut être important. Dans le cas des applications mobiles, le chargement complet peut consommer inutilement de la bande passante et ralentir l'affichage.
  • Remplissage si nécessaire (Table et Zone répétée infinie) : Seules les données visibles par l'utilisateur sont chargées en mémoire. Les données supplémentaires sont chargées à la demande (par exemple en cas d'utilisation de l'ascenseur).
    Avantage : Occupation mémoire faible. Dans le cas des applications mobiles, accélération de la vitesse d'affichage et limitation de la consommation de bande passante.
    Inconvénient : Pas de tris ni de recherches tant que toutes les données ne sont pas disponibles.
Comment le faire ?

Paramétrage du champ

Pour activer le mécanisme du remplissage si nécessaire (Table infinie/Zone répétée infinie) :
  1. Affichez la fenêtre de description du champ.
  2. Dans l'onglet "Contenu", dans la zone "Table infinie"/"Zone répétée infinie" :
    • Cochez la case "Appeler le traitement d'ajout d'éléments supplémentaires à la fin du défilement".
    • Sélectionnez la fenêtre interne de patience (ou la page interne de patience) affichée lors du chargement des lignes supplémentaires. Il est possible de :
      • Utiliser la fenêtre/page interne de patience par défaut,
      • Utiliser la fenêtre/page pré-définie. Si cette option est sélectionnée, le composant interne WDFAA est immédiatement ajouté dans le projet en cours. Selon la plateforme, l'élément correspondant (fenêtre ou page) est automatiquement associé à l'option "Fenêtre interne de patience" ou "Page interne de patience".
        • WINDEV Mobile En WINDEV Mobile, la fenêtre interne s'appelle "FI_AjoutElementSuppl_WM".
        Remarque : Si le composant WDFAA existe déjà, seule la fenêtre interne (ou la page interne) est ajoutée au composant.
      • Utiliser une fenêtre/page interne de votre projet.
    • Indiquez le nombre de lignes maximum : Ce nombre correspond au nombre maximum de lignes pouvant être ajoutées au champ. Lorsque ce nombre sera atteint, l'événement "Ajout d'éléments supplémentaires" ne sera plus appelé.
  3. Validez la fenêtre de description du champ.
Le paramétrage du champ Table ou Zone répétée infinie a ajouté :
  • WINDEV Mobile En WINDEV et WINDEV Mobile : l'événement "Ajout d'éléments supplémentaires" dans les événements du champ.
Remarque : Cette option n'est pas disponible pour :
  • les champs Zone répétée horizontale, Zone répétée fichier et Zone répétée multicolonne.
  • les champs Table fichier.

Evénement "Ajout d'éléments supplémentaires"

L'événement "Ajout d'éléments supplémentaires" doit contenir le code de mise à jour des données dans le champ. Par défaut, la fenêtre interne de patience est affichée pendant l'exécution de ce code. A la fin de l'exécution de ce code, la fenêtre interne de patience sera automatiquement masquée.
Remarque : Cet événement est appelé automatiquement :
  • lors de l'initialisation de la fenêtre, si le champ est vide.
  • après l'initialisation de la fenêtre, si toutes les lignes du champ sont visibles
  • après l'agrandissement du champ, si toutes les lignes du champ sont visibles (alors qu'elles ne l'étaient pas avant l'agrandissement).
  • après un défilement vers le bas, si la dernière ligne du champ est visible.
Attention : Si la fenêtre interne par défaut est sélectionnée, une jauge (fenêtre de patience) est affichée pendant l'exécution de l'événement "Ajout d'éléments supplémentaires". Cette jauge sera affichée uniquement si le thread principal peut s'exécuter pendant l'exécution de l'événement "Ajout d'éléments supplémentaires".
Pour voir la jauge, il est nécessaire d'effectuer un traitement long du rafraîchissement (par exemple, requête HTTP ou parcours HFSQL) dans un thread exécuté depuis l'événement "Ajout d'éléments supplémentaires". Dans ce cas, il est nécessaire de gérer la jauge via les fonctions TableAjoutEnCours et ZoneRépétéeAjoutEnCours.
Exemple de code pour l'événement "Ajout d'éléments supplémentaires" : Compléter un champ Table avec les derniers emails non lus :
IdSession est un entier
EmailLu est un Email
 
// Charge les derniers messages non lus
EmailLitPremier(IdSession, EmailLu, emailNonLus)
TANTQUE PAS Email.EnDehors
// Traitement du message
TableAjouteLigne(TABLE_Email, EmailLu.Expediteur, EmailLu.DateRéception, EmailLu.MessageID)
EmailLitSuivant(IdSession, EmailLu, emailNonLus)
FIN
Remarque : Si l'événement "Ajout d'éléments supplémentaires" renvoie Faux :
  • la fenêtre interne de patience n'est plus affichée,
  • l'événement "Ajout d'éléments supplémentaires" n'est plus exécuté.

Personnalisation de la fenêtre ou page de patience

La jauge affichée pendant le chargement est contenue dans une fenêtre interne ou une page interne.
WINDEV Mobile Par défaut, une fenêtre interne standard est utilisée, mais elle peut être intégrée au projet pour personnalisation. La gestion de la jauge est automatique. La fenêtre interne utilisée doit juste contenir un champ Jauge infini.
Version minimum requise
  • Version 21
Documentation également disponible pour…
Commentaires
Cliquez sur [Ajouter] pour publier un commentaire

Dernière modification : 14/06/2023

Signaler une erreur ou faire une suggestion | Aide en ligne locale