{"id":6291,"date":"2022-01-24T17:35:10","date_gmt":"2022-01-24T17:35:10","guid":{"rendered":"https:\/\/www.directimpactsolutions.com\/?p=6291"},"modified":"2025-05-01T05:40:56","modified_gmt":"2025-05-01T05:40:56","slug":"tri-dentete-dans-filemaker","status":"publish","type":"post","link":"https:\/\/www.directimpactsolutions.com\/fr\/tri-dentete-dans-filemaker\/","title":{"rendered":"Tri des en-t\u00eates de colonnes dans FileMaker"},"content":{"rendered":"<p>Dans un tableau de donn\u00e9es, il est courant de cliquer sur l&rsquo;en-t\u00eate d&rsquo;une colonne pour trier les donn\u00e9es. Cependant, il est rare de trouver un syst\u00e8me FileMaker qui le fasse avec \u00e9l\u00e9gance ; je souhaite vous pr\u00e9senter une solution qui rend le tri des en-t\u00eates de colonne dans FileMaker plus modulaire, et j&rsquo;esp\u00e8re que vous serez d&rsquo;accord pour dire qu&rsquo;elle est \u00e9galement plus \u00e9l\u00e9gante. <\/p><p>J&rsquo;utilise dans cet article quelques techniques peu courantes. Je les d\u00e9taille ci-dessous, puis je vous montre comment tout cela fonctionne. <\/p><h2 class=\"wp-block-heading\">Les techniques qui rendent cela possible<\/h2><h4 class=\"wp-block-heading\">Trier les enregistrements par champ<\/h4><p>Cette action de script existe depuis FileMaker Pro 12. Malgr\u00e9 sa long\u00e9vit\u00e9, beaucoup de gens ne savent pas comment en tirer pleinement parti ; je pense que son nom y est pour quelque chose. La plupart des d\u00e9veloppeurs utilisent cette action de script, mais sp\u00e9cifient <em>toujours<\/em> une rubrique lors de sa configuration.   <\/p><p>Saviez-vous que vous pouvez utiliser cette action de script <em>sans<\/em> sp\u00e9cifier de champ ? Ainsi, elle fonctionnera avec le champ actif. Gr\u00e2ce \u00e0 cette fonctionnalit\u00e9 cach\u00e9e, nous pouvons rendre nos tris modulaires et les utiliser dans nos pr\u00e9sentations de liste sans aucune modification suppl\u00e9mentaire.  <\/p><h4 class=\"wp-block-heading\">Barres de boutons comme calculs au niveau de la mise en page<\/h4><p>Lors du d\u00e9veloppement dans FileMaker Pro, vous aurez parfois besoin que le contenu d&rsquo;une \u00e9tiquette change dynamiquement en fonction de certaines conditions ; il existe plusieurs fa\u00e7ons d&rsquo;y parvenir. Certains d\u00e9veloppeurs choisissent de cr\u00e9er un nouveau champ de calcul dans l&rsquo;une de leurs tables, dont la formule produira le r\u00e9sultat appropri\u00e9. D&rsquo;autres cr\u00e9ent plusieurs \u00e9tiquettes et les masquent\/affichent simplement selon diverses conditions.   <\/p><p>J&rsquo;ai r\u00e9cemment pris go\u00fbt \u00e0 utiliser une barre de boutons \u00e0 segment unique et \u00e0 y inscrire mes conditions dans la formule de son libell\u00e9. \u00c0 mon humble avis, c&rsquo;est une excellente solution, car cela n&rsquo;encombre ni votre sch\u00e9ma de base de donn\u00e9es ni votre mise en page, et conserve la logique l\u00e0 o\u00f9 elle est la plus pertinente. Cet <a href=\"https:\/\/app.works\/button-bar-techniques\/\">article<\/a> est une excellente lecture sur la polyvalence des barres de boutons.  <\/p><h2 class=\"wp-block-heading\">Notre plan<\/h2><p>Avant d&rsquo;entrer dans les d\u00e9tails, prenons un moment pour regarder un exemple de capture d&rsquo;\u00e9cran d&rsquo;un syst\u00e8me d\u00e9j\u00e0 configur\u00e9 pour un tri \u00e9l\u00e9gant. <\/p><figure class=\"wp-block-image aligncenter size-full\"><a href=\"https:\/\/www.directimpactsolutions.com\/wp-content\/uploads\/2022\/02\/Fr_sorting_pic_1-1.png\"><img decoding=\"async\" src=\"https:\/\/www.directimpactsolutions.com\/wp-content\/uploads\/2022\/02\/Fr_sorting_pic_1-1.png\" alt=\"Tri dans FileMaker\" class=\"wp-image-4991\"\/><\/a><figcaption class=\"wp-element-caption\">Tri dans FileMaker<\/figcaption><\/figure><p>Dans cette mise en page, il y a un certain nombre de colonnes triables, ce qui explique en partie ma volont\u00e9 de simplifier un peu les choses. Cette capture d&rsquo;\u00e9cran montre clairement qu&rsquo;une des colonnes est d\u00e9j\u00e0 tri\u00e9e. C&rsquo;est l\u00e0 que nous en serons une fois termin\u00e9.   <\/p><h2 class=\"wp-block-heading\">Retour \u00e0 notre programmation<\/h2><h4 class=\"wp-block-heading\">Cr\u00e9er une fonction personnalis\u00e9e<\/h4><p>L&rsquo;un de nos objectifs \u00e9tant de maintenir l&rsquo;\u00e9l\u00e9gance de notre code, nous allons cr\u00e9er une fonction personnalis\u00e9e. Cela rendra tout notre code facilement lisible tout au long de cet exercice.  <\/p><p>Cette fonction personnalis\u00e9e accepte un nom de r\u00e9f\u00e9rence de champ comme param\u00e8tre (_sortField). Elle renvoie une fl\u00e8che si le champ r\u00e9f\u00e9renc\u00e9 est celui utilis\u00e9 lors du tri le plus r\u00e9cent. Plus pr\u00e9cis\u00e9ment, elle renvoie une fl\u00e8che vers le haut si le champ est tri\u00e9 par ordre croissant, et une fl\u00e8che vers le bas s&rsquo;il est tri\u00e9 par ordre d\u00e9croissant. Nous utiliserons cette fonction personnalis\u00e9e dans les libell\u00e9s des en-t\u00eates de colonnes ci-dessous.   <\/p><p>Veuillez noter que j&rsquo;ai utilis\u00e9 <a href=\"https:\/\/unicode-table.com\/en\/sets\/arrow-symbols\/\" target=\"_blank\" rel=\"noreferrer noopener\">cette page<\/a> pour m&rsquo;aider \u00e0 trouver des repr\u00e9sentations textuelles de fl\u00e8ches que je pourrais utiliser dans cette fonction personnalis\u00e9e.<\/p><figure class=\"wp-block-image aligncenter size-full\"><a href=\"https:\/\/www.directimpactsolutions.com\/wp-content\/uploads\/2022\/02\/Fr_sorting_pic_2-1.png\"><img decoding=\"async\" src=\"https:\/\/www.directimpactsolutions.com\/wp-content\/uploads\/2022\/02\/Fr_sorting_pic_2-1.png\" alt=\"\" class=\"wp-image-4895\"\/><\/a><figcaption class=\"wp-element-caption\">D\u00e9finition de la fonction personnalis\u00e9e<\/figcaption><\/figure><h4 class=\"wp-block-heading\">En-t\u00eates de colonnes<\/h4><p>D\u00e9finissons une barre de boutons \u00e0 segment unique pour chaque en-t\u00eate de colonne de notre vue liste. Cela nous permettra d&rsquo;avoir \u00e0 la fois la fonctionnalit\u00e9 de bouton n\u00e9cessaire et la fonctionnalit\u00e9 de calcul n\u00e9cessaire pour d\u00e9terminer le libell\u00e9 (ce qui nous permettra d&rsquo;utiliser notre fonction personnalis\u00e9e). <\/p><p>Dans la fen\u00eatre Sp\u00e9cifier le calcul qui vous permet de d\u00e9finir l&rsquo;\u00e9tiquette de chacun d&rsquo;entre eux, vous aurez besoin d&rsquo;une formule du type :<\/p><pre class=\"wp-block-code\"><code>\"Actual Label\" &amp; SortArrowForField ( \"ActualLabelReferenceName\" )<\/code><\/pre><p>\u00ab \u00c9tiquette r\u00e9elle \u00bb est ce que l&rsquo;en-t\u00eate de colonne indiquera r\u00e9ellement.<\/p><p><br\/>\u00ab ActualLabelReferenceName \u00bb est un nom unique que nous choisirons pour r\u00e9f\u00e9rencer cette colonne. Nous l&rsquo;appellerons ci-dessous \u00ab <em>Nom de r\u00e9f\u00e9rence<\/em> \u00bb. <\/p><h4 class=\"wp-block-heading\">Prendre du recul<\/h4><p>\u00c0 ce stade, nous en sommes d\u00e9j\u00e0 au point o\u00f9 nous souhaiterions normalement commencer \u00e0 scripter les tris. Cependant, nous ne sommes pas encore tout \u00e0 fait pr\u00eats. Prenons du recul et r\u00e9fl\u00e9chissons.   <\/p><p>Dans mon cas, la mise en page que j&rsquo;utilise ne permet pas la saisie de champs en mode navigation. Cela signifie que je ne peux activer aucun champ de ma liste. Par cons\u00e9quent, l&rsquo;approche d\u00e9crite ci-dessus ne fonctionnerait pas. Si vous pouvez cliquer sur les champs de votre liste en mode navigation, vous pouvez ignorer cette \u00e9tape.    <\/p><p>Si vous rencontrez le m\u00eame probl\u00e8me, ne vous inqui\u00e9tez pas. Nous pouvons r\u00e9soudre ce probl\u00e8me. <\/p><figure class=\"wp-block-image aligncenter size-large\"><a href=\"https:\/\/www.directimpactsolutions.com\/wp-content\/uploads\/2022\/02\/Fr_sorting_pic_2-990x1024.png\"><img decoding=\"async\" src=\"https:\/\/www.directimpactsolutions.com\/wp-content\/uploads\/2022\/02\/Fr_sorting_pic_2-990x1024.png\" alt=\"\" class=\"wp-image-4880\"\/><\/a><figcaption class=\"wp-element-caption\">Champs cach\u00e9s ajout\u00e9s \u00e0 la mise en page<\/figcaption><\/figure><p>Une solution simple consiste \u00e0 dupliquer chaque champ affich\u00e9 en mode liste. Chaque nouvelle version de ces champs doit comporter au moins deux param\u00e8tres : <\/p><ol class=\"wp-block-list\"><li>Assurez-vous que les champs sont saisissables en mode Navigation<\/li>\n\n<li>D\u00e9finissez leur condition \u00ab <strong>Masquer quand<\/strong> \u00bb sur \u00ab <strong>Vrai<\/strong> \u00bb (afin qu&rsquo;ils soient toujours masqu\u00e9s)<\/li><\/ol><p>J&rsquo;ai color\u00e9 mes champs masqu\u00e9s en vert pour les distinguer des champs normaux. Vous ne pourrez voir ces champs verts qu&rsquo;en mode Mise en page ; vos utilisateurs ne les verront jamais et ne pourront pas interagir directement avec eux. <\/p><h4 class=\"wp-block-heading\">Connecter nos boutons aux champs<\/h4><figure class=\"wp-block-image alignright size-full is-resized\"><a href=\"https:\/\/www.directimpactsolutions.com\/wp-content\/uploads\/2021\/11\/image-2.png\"><img loading=\"lazy\" decoding=\"async\" width=\"205\" height=\"242\" src=\"https:\/\/www.directimpactsolutions.com\/wp-content\/uploads\/2021\/11\/image-2.png\" alt=\"\" class=\"wp-image-4883\" style=\"width:154px;height:182px\"\/><\/a><\/figure><p>Maintenant que nos champs sont actifs, nous pouvons poursuivre notre exploration. Nous allons maintenant lier nos boutons d&rsquo;en-t\u00eate de colonne aux champs correspondants. Nous utiliserons une convention de nommage simple pour chacun de nos champs saisissables. Chaque champ peut recevoir un nom d&rsquo;objet via l&rsquo;inspecteur.   <\/p><p>Si vous n&rsquo;avez pas cr\u00e9\u00e9 ces champs plus t\u00f4t, assurez-vous d&rsquo;appliquer une convention de nommage similaire aux champs r\u00e9els dans le corps de votre vue de liste.<\/p><p>Nous pouvons pr\u00e9fixer chacun de ces noms d&rsquo;objet par \u00ab sort_ \u00bb. Apr\u00e8s ce pr\u00e9fixe, nous utiliserons les m\u00eames <em>noms de r\u00e9f\u00e9rence<\/em> que ceux utilis\u00e9s dans les barres de boutons correspondantes. <\/p><h4 class=\"wp-block-heading\">Scripting des tris<\/h4><p>Maintenant que tous les champs ont des noms d&rsquo;objet, nous pouvons ajouter un script g\u00e9n\u00e9rique \u00e0 notre syst\u00e8me. C&rsquo;est le script que nous utiliserons pour toutes nos pr\u00e9sentations de liste. C&rsquo;est assez simple une fois d\u00e9compos\u00e9.  <\/p><figure class=\"wp-block-image aligncenter size-large\"><a href=\"https:\/\/www.directimpactsolutions.com\/wp-content\/uploads\/2022\/02\/Fr_sorting_pic_5-1.png\"><img decoding=\"async\" src=\"https:\/\/www.directimpactsolutions.com\/wp-content\/uploads\/2022\/02\/Fr_sorting_pic_5-1.png\" alt=\"\" class=\"wp-image-4889\"\/><\/a><figcaption class=\"wp-element-caption\">Script pour trier les listes<\/figcaption><\/figure><p>Ce script :<\/p><ol class=\"wp-block-list\"><li>R\u00e9cup\u00e8re le param\u00e8tre du script<\/li>\n\n<li>D\u00e9termine le sens du tri (croissant ou d\u00e9croissant)<\/li>\n\n<li>Stocke le nom de r\u00e9f\u00e9rence du champ de tri et le sens de tri dans les variables globales<\/li>\n\n<li>Effectue le tri<\/li><\/ol><p>Bien s\u00fbr, ce script pourrait \u00eatre am\u00e9lior\u00e9 avec une gestion des erreurs appropri\u00e9e, etc., mais je voulais garder les choses simples pour les besoins de ce tutoriel.<\/p><h4 class=\"wp-block-heading\">Utilisation du script de tri de liste<\/h4><figure class=\"wp-block-image alignright size-full\"><a href=\"https:\/\/www.directimpactsolutions.com\/wp-content\/uploads\/2022\/02\/Fr_sorting_pic_6-1.png\"><img decoding=\"async\" src=\"https:\/\/www.directimpactsolutions.com\/wp-content\/uploads\/2022\/02\/Fr_sorting_pic_6-1.png\" alt=\"\" class=\"wp-image-4892\"\/><\/a><\/figure><p>Maintenant que notre script de tri est \u00e9crit, utilisons-le. Chaque en-t\u00eate de colonne doit d\u00e9j\u00e0 \u00eatre une barre de boutons avec un seul segment. Il ne reste plus qu&rsquo;\u00e0 attribuer une action au segment de la barre de boutons. Nous souhaitons ex\u00e9cuter un script lorsque la barre de boutons est activ\u00e9e et lui transmettre le <em>nom de r\u00e9f\u00e9rence <\/em>appropri\u00e9 sp\u00e9cifi\u00e9 pr\u00e9c\u00e9demment.    <\/p><p>Cela devrait ressembler \u00e0 ceci (photo de droite). Une fois que vous avez fait la m\u00eame chose pour chaque en-t\u00eate de colonne, lancez-vous. Vous devriez d\u00e9j\u00e0 trier.  <\/p><p>Nous aimerions savoir si cette m\u00e9thode vous convient ou si vous pr\u00e9f\u00e9rez une autre m\u00e9thode pour trier les colonnes. Dites-le-nous dans les commentaires et bon d\u00e9veloppement ! Nous sommes toujours l\u00e0 pour vous aider avec votre solution FileMaker.  <\/p><p><\/p><p><\/p><p><\/p><p><\/p><p><\/p><p><\/p><p><\/p><p><\/p>","protected":false},"excerpt":{"rendered":"<p>Dans un tableau de donn\u00e9es, il est courant de cliquer sur l&rsquo;en-t\u00eate d&rsquo;une colonne pour trier les donn\u00e9es. Cependant, il est rare de trouver un syst\u00e8me FileMaker qui le fasse avec \u00e9l\u00e9gance ; je souhaite vous pr\u00e9senter une solution qui rend le tri des en-t\u00eates de colonne dans FileMaker plus modulaire, et j&rsquo;esp\u00e8re que vous serez d&rsquo;accord pour dire qu&rsquo;elle est \u00e9galement plus \u00e9l\u00e9gante. <\/p>\n","protected":false},"author":7,"featured_media":5091,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"inline_featured_image":false,"_uag_custom_page_level_css":"","site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"default","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"","footnotes":""},"categories":[34],"tags":[52,50,51,53],"class_list":["post-6291","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-low-code","tag-colonne","tag-filemaker-fr","tag-script","tag-tri-dans-filemaker"],"uagb_featured_image_src":{"full":["https:\/\/www.directimpactsolutions.com\/wp-content\/uploads\/2021\/12\/sorting-filemaker-2.png",600,346,false],"thumbnail":["https:\/\/www.directimpactsolutions.com\/wp-content\/uploads\/2021\/12\/sorting-filemaker-2-150x150.png",150,150,true],"medium":["https:\/\/www.directimpactsolutions.com\/wp-content\/uploads\/2021\/12\/sorting-filemaker-2-300x173.png",300,173,true],"medium_large":["https:\/\/www.directimpactsolutions.com\/wp-content\/uploads\/2021\/12\/sorting-filemaker-2.png",600,346,false],"large":["https:\/\/www.directimpactsolutions.com\/wp-content\/uploads\/2021\/12\/sorting-filemaker-2.png",600,346,false],"1536x1536":["https:\/\/www.directimpactsolutions.com\/wp-content\/uploads\/2021\/12\/sorting-filemaker-2.png",600,346,false],"2048x2048":["https:\/\/www.directimpactsolutions.com\/wp-content\/uploads\/2021\/12\/sorting-filemaker-2.png",600,346,false],"woocommerce_thumbnail":["https:\/\/www.directimpactsolutions.com\/wp-content\/uploads\/2021\/12\/sorting-filemaker-2-300x300.png",300,300,true],"woocommerce_single":["https:\/\/www.directimpactsolutions.com\/wp-content\/uploads\/2021\/12\/sorting-filemaker-2.png",600,346,false],"woocommerce_gallery_thumbnail":["https:\/\/www.directimpactsolutions.com\/wp-content\/uploads\/2021\/12\/sorting-filemaker-2-100x100.png",100,100,true]},"uagb_author_info":{"display_name":"Matt Leering","author_link":"https:\/\/www.directimpactsolutions.com\/fr\/author\/matt-leering\/"},"uagb_comment_info":0,"uagb_excerpt":"Dans un tableau de donn\u00e9es, il est courant de cliquer sur l'en-t\u00eate d'une colonne pour trier les donn\u00e9es. Cependant, il est rare de trouver un syst\u00e8me FileMaker qui le fasse avec \u00e9l\u00e9gance ; je souhaite vous pr\u00e9senter une solution qui rend le tri des en-t\u00eates de colonne dans FileMaker plus modulaire, et j'esp\u00e8re que vous\u2026","_links":{"self":[{"href":"https:\/\/www.directimpactsolutions.com\/fr\/wp-json\/wp\/v2\/posts\/6291","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.directimpactsolutions.com\/fr\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.directimpactsolutions.com\/fr\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.directimpactsolutions.com\/fr\/wp-json\/wp\/v2\/users\/7"}],"replies":[{"embeddable":true,"href":"https:\/\/www.directimpactsolutions.com\/fr\/wp-json\/wp\/v2\/comments?post=6291"}],"version-history":[{"count":9,"href":"https:\/\/www.directimpactsolutions.com\/fr\/wp-json\/wp\/v2\/posts\/6291\/revisions"}],"predecessor-version":[{"id":20112,"href":"https:\/\/www.directimpactsolutions.com\/fr\/wp-json\/wp\/v2\/posts\/6291\/revisions\/20112"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.directimpactsolutions.com\/fr\/wp-json\/wp\/v2\/media\/5091"}],"wp:attachment":[{"href":"https:\/\/www.directimpactsolutions.com\/fr\/wp-json\/wp\/v2\/media?parent=6291"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.directimpactsolutions.com\/fr\/wp-json\/wp\/v2\/categories?post=6291"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.directimpactsolutions.com\/fr\/wp-json\/wp\/v2\/tags?post=6291"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}