Tous nos articles

Nous vous proposons 2 astuces vieilles comme le monde dans FileMaker, mais que nous utilisons toujours au quotidien :

1 - Trier une table externe sur une ou plusieurs rubriques d’autres occurrences  

Prenons un exemple simple, votre base comporte 3 tables, écoles, classes et élèves. Au niveau relationnel, les élèves appartiennent à une école et à une classe, et les classes appartiennent à une école. Ce qui nous donne le graphe de liens suivant :

Graphe de liens FMP

Sur un modèle basé sur l’occurence de table A01__Ecoles on affiche maintenant tous les élèves de notre enregistrement d’école, on utilise une table externe basée sur l’occurence de table A01_Eleves : on obtient ceci :


Les éléments ne sont pas très bien organisés et on aimerait classer les élèves par classe puis par ordre alphabétique. Problème, le nom de la classe pour le tri n’est pas présent dans notre table Elèves mais dans la table Classes. Ce qui nous empêche de sélectionner cette rubrique pour le tri :
     


Il existe une solution toute simple : Il suffit de modifier l’occurence de table de la table externe par l’occurence liée qui contient la rubrique sur laquelle on souhaite appliquer un tri, d’ajouter cette rubrique au tri de la table externe puis de remettre la bonne occurence de table sur la table externe :

photo 5  photo 6  photo 7

On ajoute ensuite les autres rubriques sur lesquelles on souhaite trier et voila le résultat :

photo 8  photo 9


Attention toute fois, cette astuce est très pratique mais elle peut néanmoins avoir un inconvénient. Trier sur une rubrique liée demande plus de ressource de calcul à FileMaker, ce qui peut ralentir le tri lorsque vous triez un grand nombre d’enregistrement… A utilisez avec parcimonie donc !  


2 - Formatter des données avec la fonction Liste

Un petit problème auquel nous avons tous été confrontés, le formatage de données lorsque qu’au moins un élément du calcul est vide. Nous baserons notre exemple sur le formatage d’une adresse postale. 

Voici quel serait le calcul de base :


Voie_1 & "¶" & 
Voie_2 & "¶" & 
Voie_3 & "¶" & 
CP & " - " & Ville & "¶" &
Pays


Le problème qui se pose très souvent, c’est que les rubriques Voie_2 et Voie_3 sont très souvent vides. On peut donc se retrouver avec ce type de résultat :


17 rue Porte de Montpellier

 


34150 - Aniane
France


Ou encore


17 rue Porte de Montpellier


Appartement 3
34150 - Aniane
France


Une première solution serait de tester la présence de données dans toutes les rubriques pour couvrir tous les cas : 

Cas ( non estvide ( Voie_1 ) ; Voie_1 & "¶" ; "" )  &  
Cas ( non estvide ( Voie_2 ) ; Voie_2 & "¶" ; "" )  &  
Cas ( non estvide ( Voie_3 ) ; Voie_3 & "¶" ; "" )  &  
Cas ( non estvide ( CP ) ; CP ; "" )  &  
Cas ( non estvide ( CP ) ET non estvide ( Ville ) ; " - " ; "" )  &  
Cas ( non estvide ( Ville ) ; Ville ; "" )  &  
Cas ( non estvide ( CP ) OU non estvide ( Ville ) ; "¶" ; "" )  &  
Cas ( non estvide ( Pays ) ; Pays ; "" ) 

Sans débat ce genre de calcul parait grotesque pour une simple adresse.
C’est là que la fonction Liste() entre en jeu. Cette fonction créé littéralement une liste d’éléments séparés par un retour charriot en fonction de la présence de données dans ses paramètres.

Notre calcul très simplifié commencerait par prendre cette forme :


Liste ( Voie_1 ; Voie_2 ; Voie_3 ; CP " - " Ville ; Pays )


Ne reste plus maintenant qu’à traiter le cas CP " - " Ville, qui n’est ni plus ni moins qu’une liste de CP et Ville séparés par " - " plutôt que par ¶ ce qu’on obtient avec un Substituer :

Substituer ( Liste ( CP ; Ville ) ; "¶" ; " - " )

Voila donc notre résultat final :

Liste ( 
Voie_1 ;
Voie_2 ; 
Voie_3 ; 
Substituer ( Liste ( CP ; Ville ) ; "¶" ; " - " ) ;
Pays
)

 

Partager sur FacebookPartager sur TwitterPartager sur LinkedIn

Une question ? Un projet à étudier ?

Contactez-nous !

Merci de remplir le formulaire ci-contre.
Pour nous joindre directement, consulter notre page Contact.

 

Logo Claris FileMaker Pro

Logo Claris Partner

Logo Claris Marketplace

Copyright ©2020-2023 IU-DATA | Tous droits réservés | Mentions légales | Politique de confidentialité | CGV | Réalisation inPhobulle

En poursuivant votre navigation sur ce site, vous acceptez l'utilisation de cookies présents sur ce site dans le but de réaliser des statistiques de visites.