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 Fenêtre Interne
  • Présentation
  • Principe
  • Pour faire défiler des fenêtres internes, le principe est simple
  • Mise en place
  • Parcours de fenêtres internes : Parcours programmé
  • Parcours de fenêtres internes : parcours automatique sur un fichier de données ou une requête
  • Programmation avancée
  • Fonctions WLangage disponibles pour manipuler les fenêtres internes
  • Evénements exécutés lors du défilement des fenêtres internes
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
Dans les applications Windows, toutes les manipulations sont réalisées grâce à la souris ou au clavier. Les écrans tactiles permettent également de réaliser certaines manipulations directement avec les mains.
Dans les applications pour les appareils mobiles, de nombreuses fonctionnalités sont disponibles à partir de mouvements de doigts.
Les fenêtres internes proposent un défilement par balayage :
  • AndroidiPhone/iPad Dans les applications Android et iPhone/iPad : le défilement des fenêtres sera effectué par un simple balayage manuel.
  • Windows Dans les applications Windows : le défilement des fenêtres sera effectué à l'aide de la souris.
  • Universal Windows 10 App Dans les applications Universal Windows : le défilement des fenêtres sera effectué par exemple à l'aide de boutons (seul le balayage par programmation est disponible).
Android Conditions d'utilisation :
Pour faire défiler des fenêtres internes en Android, l'extension "Android Support Library V4" est nécessaire sur le poste de développement, lors de la génération de l'application Android. La procédure d'installation de cette extension est disponible à l'adresse suivante :
http://developer.android.com/tools/extras/support-library.html#Downloading
Principe

Pour faire défiler des fenêtres internes, le principe est simple

  • Un champ "Fenêtre interne" est créé sous l'éditeur. Ce champ "Fenêtre interne" autorise le balayage.
  • Par programmation, une liste de fenêtres internes est associée au champ "Fenêtre interne".
  • En exécution, lorsque l'utilisateur modifiera l'élément affiché (via les doigts, la souris ou des boutons spécifiques), les différentes fenêtres internes de la liste seront affichées.
Il est également possible de créer un défilement de fenêtres internes basées sur un fichier de données ou sur une requête. Dans ce cas, le principe est le suivant :
  • Une fenêtre interne est créée. Les champs de cette fenêtre sont associés à un fichier de données ou à une requête.
  • Un champ "Fenêtre interne" est créé sous l'éditeur. Ce champ "Fenêtre interne" autorise le balayage et est associé au fichier de données ou à la requête de la fenêtre interne.
  • En exécution, lorsque l'utilisateur modifiera l'élément affiché (via les doigts, la souris ou des boutons spécifiques), le fichier de données (ou la requête) sera parcouru et affiché dans la fenêtre interne.
Mise en place

Parcours de fenêtres internes : Parcours programmé

Pour mettre en place un parcours de fenêtres internes :
  1. Créez les fenêtres internes qui devront être affichées lors du parcours. Ces fenêtres internes peuvent prendre des paramètres lors de leur ouverture si nécessaire.
  2. Créez un champ de type "Fenêtre interne" dans votre fenêtre : sous le volet "Création", dans le groupe "Conteneurs", cliquez sur "Fenêtre interne".
  3. Affichez la fenêtre de description du champ "Fenêtre interne". Dans l'onglet "UI" :
    • Cochez l'option "Autoriser le changement de contenu par balayage".
    • Indiquez :
      • la taille du cache. La taille du cache correspond au nombre de fenêtres internes qui seront conservées en mémoire (3 par défaut).
        Le cache ne permet pas de charger les fenêtres à l'avance. Le chargement effectif d'une fenêtre se fait lorsque la fenêtre est affichée avec la fonction FIListePosition ou lorsqu'une fenêtre est la suivante ou la précédente d'une fenêtre affichée.
        Plus ce nombre est petit, et plus la consommation mémoire sera faible. Par contre, le chargement des fenêtres sera effectué plus souvent.
      • l'orientation du balayage : vertical ou horizontal.
      • si nécessaire l'animation à effectuer lors du balayage. Cliquez sur "Configurer l'animation".
        L'onglet "Style" du champ apparaît positionné sur l'élément "Animation de champ". Il est possible de sélectionner l'animation voulue puis de configurer ses paramètres via le bouton "Paramètres".
        Si l'option "Définie par le projet" est choisie, l'animation effectuée sera celle configurée dans les options du projet. Pour plus de détails, consultez Animation de champs.
  4. Par programmation, construisez la liste des fenêtres internes à afficher dans le champ "Fenêtre interne". Pour cela, utilisez la fonction FIListeAjoute autant de fois que nécessaire.
Remarques :
  • Les fenêtres doivent être ajoutées dans l'ordre de parcours voulu.
  • Il est possible d'indiquer dans la fonction FIListeAjoute les paramètres à passer aux fenêtres internes ajoutées.
  • Il est possible d'ajouter plusieurs fois la même fenêtre interne avec des paramètres différents.
  • Universal Windows 10 App Dans vos applications Universal Windows 10 App, pour que l'utilisateur puisse faire défiler les fenêtres internes, créez les boutons nécessaires et utilisez les fonctions FIListePrécédent et FIListeSuivant.

Parcours de fenêtres internes : parcours automatique sur un fichier de données ou une requête

Pour mettre en place un parcours de fenêtres internes basé sur un fichier de données ou sur une requête :
  1. Créez la fenêtre interne qui doit afficher les différents enregistrements. Les différents champs de cette fenêtre interne doivent être liés à des rubriques du fichier ou de la requête parcourue.
  2. Créez un champ de type "Fenêtre interne" dans votre fenêtre : sous le volet "Création", dans le groupe "Conteneurs", cliquez sur "Fenêtre interne".
  3. Affichez la fenêtre de description du champ "Fenêtre interne".
    • Dans l'onglet "Général", associez la fenêtre interne précédemment créée au champ "Fenêtre interne".
    • Dans l'onglet "UI" :
      • Cochez l'option "Autoriser le changement de contenu par balayage".
    • Indiquez :
      • la taille du cache. La taille du cache correspond au nombre de fenêtres internes qui seront conservées en mémoire (3 par défaut).
        Le cache ne permet pas de charger les fenêtres à l'avance.
        Plus ce nombre est petit, et plus la consommation mémoire sera faible. Par contre, le chargement des fenêtres sera effectué plus souvent.
      • l'orientation du balayage : vertical ou horizontal.
      • si nécessaire l'animation à effectuer lors du balayage. Cliquez sur "Configurer l'animation".
        L'onglet "Style" du champ apparaît positionné sur l'élément "Animation de champ". Il est possible de sélectionner l'animation voulue puis de configurer ses paramètres via le bouton "Paramètres".
        Si l'option "Définie par le projet" est choisie, l'animation effectuée sera celle configurée dans les options du projet. Pour plus de détails, consultez Animation de champs.
      • Cochez si nécessaire l'option "Se positionner sur l'enregistrement courant lors de l'ouverture de la fenêtre interne". Cette option permet de positionner les données de la fenêtre interne automatiquement sur l'enregistrement courant. Cette option est prise en compte uniquement si le changement de contenu est réalisé par balayage et si le contenu correspond à une source de données (fichier, requête, ...).
    • Dans l'onglet "Contenu" :
      • Sélectionnez le mode de remplissage de la fenêtre interne "Fichier/Requête".
      • Sélectionnez la source utilisée : fichier, requête ou requête intégrée.
      • Sélectionnez la rubrique de parcours.
Universal Windows 10 App Remarque : Dans vos applications Universal Windows 10 App, pour que l'utilisateur puisse faire défiler les fenêtres internes, créez les boutons nécessaires et utilisez les fonctions FIListePrécédent et FIListeSuivant.
Programmation avancée

Fonctions WLangage disponibles pour manipuler les fenêtres internes

Plusieurs fonctions WLangage sont disponibles pour gérer les parcours de fenêtres internes :
ChangeFenêtreSourceChange dynamiquement la fenêtre affichée dans un champ fenêtre interne.
Cas des défilements de fenêtres internes : Modifie la fenêtre actuellement affichée. Cette modification est enregistrée dans la liste des fenêtres internes à faire défiler.
FIListeAfficheRafraîchit l'affichage d'un champ "Fenêtre interne" avec parcours automatique sur un fichier de données ou une requête.
FIListeAjouteAjoute une nouvelle fenêtre interne à la liste des fenêtres internes parcourue par un champ Fenêtre Interne.
FIListeInsèreInsère une nouvelle fenêtre interne à la liste des fenêtres internes parcourue par un champ Fenêtre Interne.
FIListeOccurrenceRenvoie le nombre de fenêtres internes actuellement présentes dans la liste des fenêtres internes parcourue par un champ Fenêtre Interne.
FIListePositionAffiche la fenêtre interne correspondant à la position spécifiée (dans la liste des fenêtres internes parcourues par un champ Fenêtre Interne) ou renvoie la position de la fenêtre interne actuellement affichée (dans la liste des fenêtres internes parcourues par un champ Fenêtre Interne).
FIListePrécédentAffiche la fenêtre interne précédente de la liste des fenêtres internes parcourue par un champ Fenêtre Interne.
FIListeSuivantAffiche la fenêtre interne suivante dans la liste des fenêtres internes parcourue par un champ Fenêtre Interne.
FIListeSupprimeSupprime une fenêtre interne présente dans la liste des fenêtres internes parcourue par un champ Fenêtre Interne.
FIListeSupprimeToutSupprime toutes les fenêtres internes ajoutées par programmation dans la liste des fenêtres internes parcourue par un champ Fenêtre Interne.
Remarques :
  • Lors d'un parcours automatique sur un fichier de données ou une requête, les fonctions ChangeFenêtreSource, FIListeAjoute, FIListeInsère, FIListeSupprime, FIListeSupprimeTout ne peuvent pas être utilisées.
  • La fonction ChangeFenêtreSource permet de modifier la fenêtre actuellement affichée. Cette modification est enregistrée dans la liste des fenêtres internes à faire défiler.
  • Seuls les champs de la fenêtre interne actuellement affichée sont accessibles par programmation. Par exemple, pour changer le libellé du bouton dans la fenêtre interne actuellement affichée, le code utilisé est le suivant :
    MonChampFenêtreInterne.BTN_Bouton = "Nouveau libellé"
  • La propriété BalayageActif permet d'activer ou de désactiver le parcours des fenêtres internes à l'aide du doigt. Il est ainsi possible de désactiver temporairement le balayage pour réaliser une opération spécifique.
    Universal Windows 10 App Cette propriété n'est pas disponible.
  • La propriété BalayageVertical permet de connaître et modifier l'orientation du balayage.
    Universal Windows 10 App Cette propriété n'est pas disponible.

Evénements exécutés lors du défilement des fenêtres internes

Lors de la mise en place du défilement des fenêtres internes, il est possible de paramétrer la taille du cache, c'est-à-dire le nombre de fenêtres internes chargées en mémoire.
Lors de l'exécution d'une fenêtre permettant de faire défiler une liste de fenêtres internes :
  • Les fenêtres internes présentes dans la liste et correspondant au nombre spécifié dans la taille du cache sont chargées. Pour chacune, les événements suivants sont exécutés :
    • Déclarations globales de la fenêtre interne
    • Initialisation des champs présents dans la fenêtre interne
    • Initialisation de la fenêtre interne
    • Après chargement de la fenêtre interne.
  • Lorsque l'utilisateur change par balayage le contenu de la fenêtre interne, les événements suivants sont exécutés :
    • Sélection par balayage.
    • Chargement de la prochaine fenêtre interne (les événements exécutés sont ceux du paragraphe précédent).
    • Déchargement d'une des fenêtres internes (selon la taille du cache). Dans ce cas, les événements "Avant déchargement de la fenêtre interne" et "Fermeture" sont exécutés.
Remarques :
  • L'événement "Sélection par balayage" n'est pas exécuté si le changement de fenêtre interne est exécuté par programmation.
  • Pour connaître la liste des événements associés à une fenêtre interne, consultez Evénements associés à une fenêtre interne.
Liste des exemples associés :
WM CRM Exemples multiplateforme (WINDEV Mobile) : WM CRM
[ + ] WM CRM est un projet multi-plateformes Android et iOS.
Il présente comment on peut réaliser une application de CRM destinée aux tablettes Android et iPad.
Version minimum requise
  • Version 18
Documentation également disponible pour…
Commentaires
Les puces dans une CFI
Comment changer l'ordre d'affichage des puces par programmation, pas d'info à ce sujet.. FIListePosition ou FIListeAffiche ou FIListeSuivant ne change pas l’ordre des puces.

Merci.
Zack
13 mar. 2018

Dernière modification : 25/05/2022

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