PC SOFT

DOCUMENTATION EN LIGNE
DE WINDEV, WEBDEV ET WINDEV MOBILE

  • Présentation
  • Comment le faire ?
  • Paramétrage du champ
  • Traitement "Ajout d'éléments supplémentaires"
  • Personnalisation de la fenêtre de patience
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
Un champ Table et/ou Zone répétée mémoire peut être remplie 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.
  • Versions 21 et supérieures
    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.
    Nouveauté 21
    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.
    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 affichée lors du chargement des lignes supplémentaires. Il est possible de :
      • Utiliser la fenêtre de patience par défaut,
      • Utiliser la fenêtre pré-définie. Si cette option est sélectionnée, la fenêtre interne pré-définie est immédiatement ajoutée dans le projet en cours et associée à la fonctionnalité.
        Remarque : Il est conseillé de copier la fenêtre dans le répertoire du projet en cours. En WINDEV, la fenêtre interne s'appelle "FI_AjoutElementSuppl_WD". En WINDEV Mobile, la fenêtre interne s'appelle "FI_AjoutElementSuppl_WM".
      • Utiliser une fenêtre 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, le traitement "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é le traitement "Ajout d'éléments supplémentaires" dans les traitements 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.

Traitement "Ajout d'éléments supplémentaires"

Le traitement "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 traitement. A la fin de l'exécution de ce code, la fenêtre interne de patience sera automatiquement masquée.
Remarque : Ce traitement 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 du traitement "Ajout d'éléments supplémentaires". Cette jauge sera affichée uniquement si le thread principal peut s'exécuter pendant l'exécution du traitement "Ajout d'éléments supplémentaires".
Pour voir la jauge, il est nécessaire d'effectuer le traitement long du rafraîchissement (par exemple, requête HTTP ou parcours HFSQL) dans un thread exécuté depuis le traitement "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 traitement "Ajout d'éléments supplémentaires" : Compléter un champ Table avec les derniers emails non lus :
nIdSession est un entier
EmailLu est un Email

// Charge les derniers messages non lus
EmailLitPremier(nIdSession,EmailLu, emailNonLus)
TANTQUE PAS Email.EnDehors
// Traitement du message
TableAjouteLigne(TABLE_Email, EmailLu.Expediteur, EmailLu.DateRéception, EmailLu.MessageID)
EmailLitSuivant(nIdSession,EmailLu, emailNonLus)
FIN
Remarque : Si le traitement "Ajout d'éléments supplémentaires" renvoie Faux :
  • la fenêtre interne de patience n'est plus affichée,
  • le traitement "Ajout d'éléments supplémentaires" n'est plus exécuté.

Personnalisation de la fenêtre de patience

La jauge affichée pendant le chargement est contenue dans une fenêtre interne.
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