Les filtres dynamiques nous permettent d'utiliser des filtres dynamiquement dans les vues d'un écran Dataview (vue des données). Il filtre les données que nous devons afficher sur un écran spécifique.
Auparavant, il était seulement possible de filtrer des données pour une base de données unique sur chaque écran de vue des Données.
Le grand avantage des filtres dynamiques est qu'ils permettent maintenant de filtrer les champs de données à partir de n'importe quelle base de données créée dans l'application (base de données relationnelle), ce qui signifie qu'une application qui nécessitait auparavant 10 écrans ou plus pour filtrer chacune de la base de données. Ne nécessite que quelques écrans.
Voyons comment cela fonctionne avec un exemple pratique.
EXEMPLE D'APPAREIL AVEC UNE LISTE DES PAYS ET DES VILLES
Nous voulons créer une base de donnée qui contient une liste de pays et de villes.
Avec l'ancien système, il était nécessaire de créer une liste d'options avec la liste des pays et de connecter chaque pays à une vue de données spécifique (écran), puis les filtrer pour les villes dans chaque vue de données.
Dans cet exemple, nous avons créé au moins 7 écrans.
Chaque écran de vue des données d'un pays spécifique peut être filtré en sélectionnant le champ (Villes) -> inclure/include -> Nom du pays, comme dans l'image suivante:
Où est le changement?
Dans l'exemple suivant, les filtres nous permettent de créer seulement 2 écrans et de filtrer toutes les données de manière dynamique.
Ou plutôt, le filtre changera en fonction de la base de données que nous filtrons.
Voyons cela dans notre exemple d'application.
1. Dans notre application, nous avons un écran de démarrage comme présentation qui conduit à un écran (vue de données) nommé "Catégories".
Ici, nous créerons une base de données avec un champ intitulé «Pays», où nous insérons une liste de pays que nous voulons montrer.
2. Maintenant, créez une vue de liste où nous allons faire glisser l'élément de texte dynamique (rose) qui se réfère au champ de la base de données "Catégories" qui sera le champ: [Pays] et nous lui direons d'ouvrir les "Filtres/Filters" Écran, qui sera un nouvel écran de visualisation des données que nous allons créer.
L'écran "Filtres" est l'écran contenant le filtre ou les filtres dynamiques et sera l'écran qui nous montrera les données que nous voulons afficher (c'est-à-dire les villes liées à chaque pays).
3. Le nouvel écran "Filtres" contient une base de données avec deux colonnes:
a) Le premier avec les pays "Pays"
b) Le deuxième avec les Villes "Villes"
Maintenant, nous voulons que, lorsque l'utilisateur est sur l'écran «Pays» (le premier créé), en cliquant sur l'un des pays de la liste, il pourrait voir les villes du même pays.
C'est la raison pour laquelle nous devons utiliser un filtre sur le deuxième écran qui a été créé: "Filtres" afin que nous puissions montrer les informations des villes liées à un pays.
4. Donc, mettons un filtre sur l'écran "Filtres" comme démontré dans l'image suivante:
Dans l'image, nous voyons que, pour montrer la ville d'un pays spécifique, nous devons utiliser un filtre appelé par la base de données du premier écran "Pays".
Nous apprendrons au filtre de nous montrer le champ (villes) que nous avons dans la base de données sur laquelle nous travaillons et de les filtrer par la condition ("Inclure/Include").
Dans le compositeur, nous devons sélectionner le champ qui doit être inclus (montrer) dans le filtre. Dans notre exemple, nous choisirons (Catégories.Countries), qui sera le champ du premier écran créé, qui contient la liste des pays.
Que signifie le champ (Catégories.Countries)?
Catégories -> est le nom de la base de données que nous voulons filtrer (celle du premier écran).
Pays -> est le nom du champ, au format texte, contenant les informations des pays, à partir de la première base de données créée.
De cette façon, en cliquant sur la liste des pays du premier écran, nous demandons au filtre dynamique d'afficher automatiquement uniquement les villes liées à ce pays.
Le filtre détecte le pays sélectionné (pour cette raison, le filtre est appelé dynamique car il change) et affiche ces informations dans l'écran "Filtres", montrant les villes liées au pays choisi.
Si l'utilisateur choisit l'Espagne, par exemple, il affichera un écran avec les villes de Madrid, Barcelone et Séville, comme dans l'exemple suivant.
Ensuite, vous pouvez créer une vue détaillée, dans l'écran "Filtres" pour afficher les détails de chaque ville.
Il suffit d'attribuer au champ Ville, dans la vue de liste, l'action: ouvrir l'écran: DETAIL_1 afin que l'utilisateur puisse afficher les détails d'une Ville spécifique.
Le résultat final sera ainsi:
Voir aussi le didacticiel vidéo sur notre chaîne Youtube sur:
Dynamic filters and relational databases in Mobincube (anglais)