PC SOFT

DOCUMENTATION EN LIGNE
DE WINDEVWEBDEV ET WINDEV MOBILE

  • Présentation
  • Comment le faire ?
  • Activer ou désactiver la persistance d'un champ dans une fenêtre
  • Fonctionnement
  • Analyse du fonctionnement
  • Paramétrage
  • Fonctionnement avancé
  • Mémorisation des variables globales d'un projet
  • Mise en place
  • Optimisation
  • Mémorisation des variables globales d'un projet
  • Optimisation
  • Gestion de la persistance des données avec les fonctions du WLangage
WINDEV
WindowsLinuxUniversal Windows 10 AppJavaEtats et RequêtesCode Utilisateur (MCU)
WEBDEV
WindowsLinuxPHPWEBDEV - Code Navigateur
WINDEV Mobile
AndroidWidget AndroidiPhone/iPadWidget iOSApple WatchCatalystUniversal Windows 10 AppWindows Mobile
Autres
Procédures stockées
Présentation
La persistance des données permet de conserver la valeur saisie par l'utilisateur.
Quand l'utilisateur saisit une valeur dans un champ d'une fenêtre, cette valeur sera de nouveau présente dans le champ lors de la prochaine ouverture de la fenêtre. Cette fonctionnalité sera appréciée dans le cas d'une saisie de login, de recherches, de paramètres quasi-constants, de choix par défaut, ...
Cette fonctionnalité est disponible sur tous les champs permettant une saisie. Cette fonctionnalité est également disponible pour une sélection de valeurs dans un champ Sélecteur ou Interrupteur.
Versions 24 et supérieures
WEBDEV - Code ServeurLinux La persistance des données est disponible pour les sites WEBDEV sous Linux.
WEBDEV - Code ServeurWindows La persistance des données est disponible pour les sites WEBDEV sous Windows.
WEBDEV - Code ServeurWindowsLinux La persistance des données est réalisée uniquement par programmation. Les informations sont sauvegardées dans un cookie navigateur.
Nouveauté 24
WEBDEV - Code ServeurLinux La persistance des données est disponible pour les sites WEBDEV sous Linux.
WEBDEV - Code ServeurWindows La persistance des données est disponible pour les sites WEBDEV sous Windows.
WEBDEV - Code ServeurWindowsLinux La persistance des données est réalisée uniquement par programmation. Les informations sont sauvegardées dans un cookie navigateur.
WEBDEV - Code ServeurLinux La persistance des données est disponible pour les sites WEBDEV sous Linux.
WEBDEV - Code ServeurWindows La persistance des données est disponible pour les sites WEBDEV sous Windows.
WEBDEV - Code ServeurWindowsLinux La persistance des données est réalisée uniquement par programmation. Les informations sont sauvegardées dans un cookie navigateur.
Comment le faire ?

Activer ou désactiver la persistance d'un champ dans une fenêtre

Pour activer ou désactiver la persistance d'un champ dans une fenêtre :
  1. Affichez la fenêtre de description du champ.
  2. Dans l'onglet "Détail", cochez (ou décochez) l'option "Mémoriser la valeur".
Par défaut, les valeurs des champs "persistants" sont stockées dans la base de registre (ou le fichier équivalent sur la plateforme d'exécution). Par exemple :
    Fonctionnement

    Analyse du fonctionnement

    Lorsque le mécanisme de persistance d'un champ est activé :
    • Le contenu du champ est mémorisé lors de la fermeture de l'application.
    • Lors du lancement suivant de l'application, le mécanisme de persistance restaure les champs mémorisés dans leur état précédent. Cette restauration des valeurs est effectuée entre le code de déclaration de la fenêtre et le code d'initialisation de la fenêtre.
    L'affectation de la valeur d'un champ se fait donc suivant l'ordre d'affectation suivant :
    1. Valeur définie dans l'onglet "Contenu" de la description du champ.
    2. Exécution du code d'initialisation du champ. Ce code peut initialiser et modifier la valeur initiale du champ.
    3. Valeur persistante (enregistrée dans la base de registre, dans un fichier de paramètre, ...). Si une valeur persistante a été définie pour le champ, c'est cette valeur qui est affectée au champ.
    4. Exécution du code d'initialisation de la fenêtre. Ce code peut initialiser et modifier la valeur affectée au champ.
    De plus, afin de garder la compatibilité avec le fonctionnement existant de l'application :
    • les traitements de modification des champs affectés "automatiquement" sont exécutés.
    • les codes de sélection des champs Liste et Combo sont exécutés.
    Si le traitement de modification ou de sélection du champ ne doit pas être exécuté, il est possible de conditionner son exécution de la façon suivante :
    // Code de sélection d'une ligne d'un champ Combo
    // ou code de modification d'un champ
    SI OUVERTURE ALORS RETOUR
    Dans ce cas, la suite du traitement n'est pas exécutée si l'appel de ce code est provoqué dès l'ouverture de la fenêtre, lors de la restauration des valeurs mémorisées.

    Paramétrage

    Les informations de persistance sont stockées par défaut dans la base de registre (ou le fichier équivalent sur la plateforme d'exécution). Il est bien entendu possible de modifier la méthode et la localisation de ces informations grâce à la fonction InitParamètre.
    Cette fonction accepte deux paramètres :
    • La méthode de stockage des données :
      • Document au format XML (non disponible en version Mobile).
      • Fichier de configuration (.ini).
      • Base de registre.
      • Chaîne au format XML (par exemple pour être envoyée par Socket ou protocole HTTP).
    • La localisation correspondant à la méthode spécifiée dans le premier paramètre (chemin du document XML, chemin dans la base de registre ou chemin du fichier de configuration).
    Exemple :
    // Utilisation d'un fichier de configuration (.ini)
    InitParamètre(paramIni, "C:\temp\MaConfig.ini")
    La lecture et la sauvegarde des données de persistance restent identiques : seule la méthode de stockage (et la localisation) est modifiée.
    Fonctionnement avancé

    Mémorisation des variables globales d'un projet

    Le mécanisme de persistance permet non seulement de mémoriser des champs, mais également des variables ou tout autre information nécessaire à une application.
    Il devient alors inutile de gérer "à la main" un fichier de configuration pour mémoriser le contenu des variables globales d'un projet (chemin des données, date de dernière connexion, nom de l'utilisateur, mémorisation du mot de passe, ...).

    Mise en place

    Il est nécessaire d'utiliser les fonctions ChargeParamètre et SauveParamètre.
    La fonction ChargeParamètre accepte deux paramètres :
    • Le nom du paramètre à restaurer (nom logique), par exemple le nom de la variable correspondante.
    • La valeur par défaut du paramètre (si ce paramètre n'a jamais été sauvegardé ou utilisé).
    // Chargement d'un paramètre de type entier
    gnNbLancement = ChargeParamètre(CS_NB_LANCEMENT)
    // Chargement d'un paramètre de type date
    gdDateDernierLancement = ChargeParamètre(CS_DATE_LANCEMENT)
    // Chargement d'un paramètre de type heure
    ghHeureDernierLancement = ChargeParamètre(CS_HEURE_LANCEMENT)
    Il n'est pas nécessaire de gérer le type de paramètre : le type du paramètre est entièrement géré par le mécanisme de persistance (inutile, par exemple, d'utiliser la fonction Val pour récupérer une valeur numérique).
    La fonction SauveParamètre accepte aussi deux paramètres :
    • Le nom du paramètre à sauvegarder (nom logique). Ce nom est utilisé dans la fonction ChargeParamètre.
    • La valeur du paramètre.
    // Mémorisation d'un paramètre de type entier
    SauveParamètre(CS_NB_LANCEMENT, gnNbLancement)
    // Mémorisation d'un paramètre de type date
    SauveParamètre(CS_DATE_LANCEMENT, gdDateDernierLancement)
    // Mémorisation d'un paramètre de type heure
    SauveParamètre(CS_HEURE_LANCEMENT, ghHeureDernierLancement)
    Les informations stockées par la fonction SauveParamètre sont stockées en utilisant la méthode et la localisation spécifiées par la fonction InitParamètre (par défaut, ces informations sont donc stockées dans la base de registre).
    Note : Bien entendu, il est possible d'utiliser plusieurs méthodes et/ou plusieurs fichiers de sauvegarde dans une même application.
    Optimisation

    Mémorisation des variables globales d'un projet

    Une optimisation peut parfois être nécessaire lorsque l'application effectue des traitements longs. En effet, les codes de modification des champs "restaurés" sont exécutés. Si un de ces champs contient un code potentiellement long, il peut être intéressant de ne pas exécuter tous les codes de modification pendant la phase de restauration des champs.
    Exemple : Cas d'une fenêtre de recherche multi-critères utilisant le mécanisme de persistance
    1. Au premier lancement, aucun champ n'a de valeur mémorisée, le fonctionnement est "classique".
    2. A la fin de l'application, le mécanisme de persistance mémorise les critères de recherche sélectionnés par l'utilisateur.
    3. Au lancement de l'application, les champs mémorisés sont restaurés et les codes de modification des champs sont exécutés.
    4. Si ces codes de modification lancent une exécution de la recherche (cas courant pour un sélecteur), la recherche va être effectuée avec des critères différents pour chaque champ mémorisé ! Cette opération peut alors être très pénalisante selon les recherches réalisées.

    Optimisation

    Dans ces cas particuliers, il suffit de "désactiver" les traitements potentiellement longs pendant leur restauration automatique. Il est possible d'utiliser la méthode suivante :
    1. Déclaration d'une variable globale de fenêtre de type booléen dans la fenêtre concernée.
      // Code de déclaration de la fenêtre
      GLOBAL
      gbRestaurationEnCours est un booléen
    2. Initialisation de cette variable à "Vrai" dans le code de déclaration de la fenêtre.
      // Code de déclaration de la fenêtre
      gbRestaurationEnCours = Vrai
    3. Ajout d'un test sur cette variable dans les traitements potentiellement longs. Si cette variable est positionnée à la valeur "Vrai", le traitement n'est pas réalisé (restauration en cours des champs par le mécanisme de persistance).
      // Traitement potentiellement long
      SI gbRestaurationEnCours = Vrai ALORS RETOUR
      ...
    4. Affectation de cette variable à "Faux" dès le début du code d'initialisation de la fenêtre pour reprendre le fonctionnement normal de l'application.
      // Code d'initialisation de la fenêtre
      gbRestaurationEnCours = Faux
    Gestion de la persistance des données avec les fonctions du WLangage
    La persistance des données peut également être gérée par programmation via les fonctions :
    Versions 09 et supérieures
    ChargeParamètre
    Nouveauté 09
    ChargeParamètre
    ChargeParamètre
    Lit une valeur persistante.
    Versions 09 et supérieures
    InitParamètre
    Nouveauté 09
    InitParamètre
    InitParamètre
    Initialise la gestion des valeurs persistantes.
    Versions 09 et supérieures
    SauveParamètre
    Nouveauté 09
    SauveParamètre
    SauveParamètre
    Sauve une valeur persistante dans la base de registre ou dans un autre fichier spécifié avec la fonction InitParamètre.
    Versions 09 et supérieures
    SupprimeParamètre
    Nouveauté 09
    SupprimeParamètre
    SupprimeParamètre
    Supprime un paramètre ou une série de paramètres sauvés soit avec la fonction SauveParamètre, soit automatiquement grâce à la persistance des données dans les champs.
    Liste des exemples associés :
    WD Persistance Exemples didactiques (WINDEV) : WD Persistance
    [ + ] Cet exemple montre l'utilisation des fonctions InitParamètre, ChargeParamètre, SauveParamètre.
    Ces fonctions permettent de configurer la sauvegarde de champs, de variables et de tout autre paramètre.
    Cet exemple est décomposé en trois parties :
    - La configuration
    - La gestion manuelle de variables (Fonctions SauveParamètre et ChargeParamètre)
    - L'optimisation
    1°) Configuration

    La fenêtre de configuration vous permet de modifier l'emplacement de la sauvegarde des paramètres (Base de registre, fichier INI, fichier XML) ainsi que son chemin (clé de registre ou le chemin du fichier).
    2°) Gestion Manuelle de variables
    La gestion manuelle vous permet de sauvegarder le contenu de variables grâce à la fonction SauveParamètre et de les restaurer grâce à la fonction ChargeParamètre. Chaque paramètre est identifié par un nom. Ces valeurs sont sauvegardées à l'emplacement défini dans la fenêtre de configuration.
    3°) L'optimisation
    Cette fenêtre vous explique comment optimiser votre code pour éviter les lenteurs dues à la restauration des valeurs sauvegardées. En effet, lors de la restauration de la valeur d'un champ, son code de modification est exécuté. Si vous avez des traitements longs (Requêtes paramétrées ou autres), cette fenêtre vous montre comment accélérer le chargement de la fenêtre.
    Version minimum requise
    • Version 9
    Documentation également disponible pour…
    Commentaires
    Cliquez sur [Ajouter] pour publier un commentaire