Vous avez dû vous en rendre compte, j'aime beaucoup utiliser les tables basées sur une variable. Je trouve que cela permet de séparer la base de données de l'IHM.

En règle générale, pour appliquer des filtres, on passe par les loupes prévus dans les entêtes de colonne. Elles sont assez pratiques, mais elles ont quand même des limites. C'est pourquoi il m'arrive de rajouter une zone de saisie me permettant de filtrer. Je remplis le tableau avec les éléments voulus, un petit coup de TableAffiche(MaTable, taInit) et le tour est joué, ma table est à jour.

Mais comment faire lorsque le remplissage de ce tableau coûte cher. Par exemple, on récupère des données sur Internet et on souhaite les afficher. A chaque fois qu'on change le filtre, on effectue de nouveau la requête sur Internet ?

Voici ma solution : il suffit tout simplement d'avoir deux tableaux, un qui contient les données et l'autre qui contient les données filtrées. A chaque fois que l'on modifie le filtre, il n'y a qu'à remplir le tableau filtré à partir des données du tableau des données. Et appliquer un filtre sur des données déjà en mémoire, c'est beaucoup, beaucoup plus rapide.

Par exemple, dans la déclaration des variables globales de la fenêtre :

tDonnées est un tableau de Personne = RécupérerDonnées()
tDonnéesFiltrées est un tableau de Personne = FiltrerDonnées(tDonnées)

Et à chaque modification du filtre :

tDonnéesFiltrées = FiltrerDonnées(tDonnées)
TableAffiche(MaTable, taInit)

Tout simplement.

Et vous, est-ce que vous utilisez les tables basés sur des variables ? Que pensez-vous de cette astuce ?

Merci pour votre lecture et bonne soirée à tous !

Jonathan Laurent

Read more posts about this author.

Comments