Enregistrez le résultat de n'importe quelle recherche, n'importe quel jeu de fiches trouvées,
dans tous vos fichiers, pour les réactiver au moment voulu d'un simple clic.
Si vous vous êtes toujours demandé:
- comment mémoriser des recherches, ou mieux encore, des fiches trouvées, dans tous les fichiers d'une solution relationnelle. La solution traditionnelle est relativement lourde à mettre en oeuvre, puisqu'elle passe par des scripts (un par recherche), et qu'il est difficile de permettre à tous les utilisateurs d'une solution de modifier les scripts.
- comment, sans être obligé de créer des rubriques ad-hoc (des "flags"), marquer des jeux de fiches en quelques clics, un peu comme, dans le Finder, on utilise les Familles pour dire "ces fiches-là, je les ferai demain, celles-ci, c'est bon". Ou encore, par exemple "lettre imprimée", "carte personnelle transmise" ou "rendez-vous pris".
- comment conserver et transmettre des paquets de fiches à un interlocuteur, sans passer par de sordides clones, exports, suppressions de fiches dans des copies de fichiers (en supposant qu'il dispose naturellement lui aussi de la même solution de base de données relationnelle que vous).
- comment mettre à jour des groupes de fiches de temps en temps, pour suivre facilement l'évolution d'un fichier vital.
- comment, sans se perdre dans des requêtes complexes, difficiles à se souvenir et à expliquer, trouver des additions ou soustractions de groupes de fiches (celles-ci mais sans celles-là, celles-ci et celles-là en même temps, etc).
- comment établir facilement une liaison "many-to-many" entre deux fichiers liés, pour afficher toutes les fiches liées à plusieurs autres.
... alors lisez cet article, et téléchargez notre fichier de démonstration (pour Mac et pour PC; nous proposons les deux compressions, bien que les PéCéistes possèdent aussi StuffItExpander): nous allons vous montrer comment créer un fichier de sélections de fiches!
Enregistrement d'un jeu de fiches trouvées en six clics
Notre solution est constituée du fichier Sélection.fp5, ainsi que d'un fichier d'adresses Personnes.fp5, contenant quelques centaines de fiches et servant d'exemple, pour que vous puissiez vous rendre compte du fonctionnement.
Fichier Personnes: quelques centaines de fiches. Vous pouvez aller en confiance
jusqu'à plus de 50'000 fiches avant de subir des ralentissements notables.
Voici comment les sélections sont mémorisées:
Remarque: précisons bien que ce sont bien les fiches trouvées qui sont mémorisées, et pas les éventuelles combinaisons de requêtes de recherche qui les ont amenées. En effet, les requêtes ne sont pas le seul moyen de sélectionner les fiches dans FileMaker: on peut aussi en ignorer, ou inverser la sélection en affichant les fiches ignorées. On voit qu'il est dès lors primordial de laisser une explication détaillée des actions qu'on a faites sur les fiches pour obtenir cette sélection, pour s'en souvenir.
On a dès lors la possibilité de mémoriser pour ensuite déclencher toutes les recherches que l'on veut, dans les fichiers que l'on veut (ici, il n'y a que le fichier de Personnes, mais c'est facile à étendre à plusieurs fichiers), et ceci directement depuis un fichier commun de Sélections, pour un maximum approximatif de 12'000 fiches au maximum par Sélection, ce qui devrait suffire dans la plupart des cas :-).
Sélections.fp5 peut donc devenir en quelque sorte la plate-forme de routage vers tous vos fichiers, un fichier central qui peut retenir toutes les recherches fréquemment exécutées.
N'est-ce pas formidable, franchement?
Utilisation depuis un fichier lié: Personnes
Naturellement, le programmeur peut aussi donner le contrôle des sélections au sein même du fichier concerné:
Un menu regroupant toutes les sélections mémorisées sur le fichier, par tous les utilisateurs.
On affiche aussi le nombre de fiches mémorisées, pour mieux s'y retrouver.
Remarque: la rubrique la plus importante, comme dans tout bonne base de données, est la rubrique "pk" ci-dessus. Pk signifie dans notre jargon "Primary Key", ou "clé primaire", c'est l'identifiant unique de chaque fiche, un par fichier, qui permet de retrouver chacune de manière univoque. Vous l'aurez sans doute compris, toute l'astuce consiste à n'exporter que le minimum (donc la liste de tous les "pk" de la sélection), dans une fiche du fichier Sélections.fp5.
Exportation d'une sélection
Pour faciliter le travail en groupe comme l'archivage des données sur son propre poste, il est très précieux de pouvoir exporter une sélection:
- pour l'envoyer à quelqu'un qui doit travailler sur les fiches en question.
- pour la conserver dans un dossier sous forme de fichier tabulé.
Cliquez sur l'icône d'export d'une sélection, symbolisée par une icône "FileMaker vers SimpleText". |
Donnez-lui un nom qui soit suffisamment explicite. Choisissez de préférence le format Tabulations. |
Vous pouvez ensuite attacher ce petit fichier texte à un email: il pèsera au maximum 64KB, ce qui n'est pas grand-chose pour plus de 10'000 fiches!
Importation d'une sélection
Mécanisme inverse, permettant de rapidement consulter une sélection reçue ou sauvegardée sans nécessairement la rajouter au fichier de Sélections.
Difficile de rendre les recherches et les mémorisations plus claires et plus souples, vous ne trouvez pas?
Améliorations possibles
1) Additions et soustractions de fiches
En conservant le même principe, il n'est pas difficile de programmer des fonctions nettement plus complexes. Imaginons deux Sélections, A et B. Il est assez aisé de construire la sélection "A plus B", en additionnant tous les pointeurs uniques présents dans les deux sélections. De la même manière, il est aussi envisageable de trouver "A moins B", sans trop de tourments.
2) Liaisons "many-to-many"
Grâce à ce fichier de Sélections, il devient envisageable de créer des relations d'un type relativement peu fréquent, mais très utile pour sélectionner toutes les fiches liées à plusieurs autres.
On rencontre fréquemment plusieurs types de liens, de relations entre fichiers:
- One-to-many: lien utilisé typiquement pour la plupart des tables externes. On veut afficher toutes les fiches liées à une fiche, toutes les commandes d'un client, par exemple. On lie souvent le champ source "pk" d'un fichier (primary key) à un champ destination "fk" (foreign key).
- One-to-one: plus rarement utilisé, dans le cas où deux fichiers sont synchronisés l'un avec l'autre. Cas particulier, très utilisé quant à lui: la self-relationship, où l'on lie un fichier à lui-même, par exemple pour contrôler des doublons.
- All-to-all: on lie dans ce cas toutes les fiches d'un fichier à toutes les fiches d'un autre, typiquement par deux champs valant "1". Ce sont des relations, des tunnels de données, qui permettent de transmettre des variables d'un fichier à un autre dans tous les cas.
- Many-to-many: la relation permise par le fichier de Sélections présenté ici. On regroupe autant de "pk" que nécessaire, séparés par des retours chariot, dans un champ (on contourne donc l'impossibilité de lier directement plusieurs fiches ou plusieurs champs), et l'on peut dès lors activer toutes les fiches liées à celles-ci dans d'autres fichiers. C'est ainsi que l'on peut nettoyer facilement une solution de ses vieilles fiches, pour des raisons d'archivage. Exemple: si vous désirez supprimer sélectivement plusieurs clients avec leurs commandes, leurs rendez-vous, et leurs factures, il faut pouvoir faire l'opération dans plusieurs fichiers, à partir d'une sélection de départ. Sélections.fp5, lié à plusieurs fichiers relationnels, peut donc servir à cela, en activant les fiches de plusieurs fichiers depuis une seule fiche de sélection, d'une simple commande de script.
3) Noter des attributs communs, en se passant de champs de "flags".
En utilisant Sélection.fp5 pour noter des "coches", il faudrait mettre en place un mécanisme permettant de rajouter et de supprimer une fiche d'une Sélection mémorisée d'un clic, comme on cocherait une case. Le fichier n'en serait que plus puissant et polyvalent.
L'idée, en requérant à un fichier de sélection, est d'éviter de très nombreuses rubriques de cases à cocher servant d'indicateurs. Pour être très clair: on arrive, grâce à ce fichier, à passer le contrôle à l'utilisateur, qui est libre de rajouter les informations qu'il souhaite, sans solliciter le développeur. Ça, c'est un formidable avantage.
On dispose en quelque sorte d'un fichier d'informations sur un autre fichier, une sorte de méta-fichier. C'est un fichier qui recense des informations sur les données d'un autre fichier: il est donc utile à un second niveau, si l'on veut bien.
Mais cela sera pour la version 2.0 de Sélections.fp5, lors de prochaines vacances! Pour le moment, téléchargez la première version: pour Mac et pour PC.
N'hésitez pas à m'écrire pour me faire part de vos commentaires, ou pour me demander les coordonnées bancaires afin que je puisse vous envoyer le code développeur de ce fichier.
Mathieu Besson