Category: Blog

  • Liens non indexés

    Liens non indexés

    Voici une très courte vidéo qui répond à une question fréquemment posée sur les forums FileMaker.

    La problématique est :

    “J’ai un calcul que je voudrais utiliser comme critère d’un lien, mais le lien ne fonctionne pas car le calcul est non mémorisé.”

    Or, s’il est connu qu’une rubrique non indexable (dont les calculs non mémorisés) ne peuvent être utilisés comme destination d’un lien, leur faculté d’être utilisés comme source de ce lien est souvent sous-estimée.

    Dans cette vidéo, nous montrons comment établir un lien comme celui-ci.

    L’exemple est le suivant :

    Nous cherchons à afficher une table externe des employés actifs (en fonction de la date actuelle). Comme l’utilisation de la date actuelle sous-entend un calcul non mémorisé, on ne peut a priori pas utiliser ce critère dans le lien.

    Vous retrouverez cette technique et d’autres sur le graphique des liens dans cette vidéo de 1-more-tube.

  • Double clic

    Double clic

    Une fonction de calcul cachée de FileMaker 12 déchaîne les passions sur le web. Elle permet de capter le timestamp actuel en milisecondes, et en UTC (GMT) !

    Dans cette vidéo, nous aborderons quelques possibilités d’utilisation et livrerons un exemple avec -enfin !- une technique de double clic qui fonctionne.

    Télécharger

    Mise à jour : FileMaker 13 vient d’officialiser cette fonction, nommée Obtenir ( HeureActuelleUTCMillisecondes )

  • Interactions avec le WebViewer

    Interactions avec le WebViewer

    La nouveauté la plus marquante de FileMaker 12 est a priori le nouveau rendu des modèles.

    Il est vrai que l’interface des solutions FileMaker commençait à dater un peu, et il est certain que ces nouveaux modèles permettent de concevoir des intefaces plus modernes.

    Néanmoins, la grande nouveauté en termes d’interface ne réside peut-être pas là…

    Le protocole d’URL fmp :// permet désormais d’exploiter des interactions entre le webviewer et vos données.

    Combiné à des langages web modernes tels que jQuery et CSS, ce protocole permet à votre solution de s’habiller d’une interface élégante, moderne et efficace.

    Vous pouvez gérer le drag’n’drop et les gestes en général (oui, les gestes ! y compris sur FileMaker Go !), présenter des tableaux dont vous contrôlez l’aspect (titre des colonnes, colonnes redimensionnables…), des tirettes (sliders), ou pourquoi pas un agenda.

    Les possibilités sont vertigineuses.

  • Masquer des objets de modèle

    Masquer des objets de modèle

    Contrôle des onglets par script

    FileMaker 12 permet (enfin !) d’afficher/masquer des onglets en les activant par script, sans devoir recourir à des stratagèmes (ou “bidouilles”) pour empêcher l’utilisateur d’activer un autre onglet, et sans scripts compliqués pour revenir à l’onglet précédemment sélectionné.

    Voici donc une vidéo explicative, et un petit fichier avec une technique toute simple à mettre en œuvre dans votre propre solution.

    Télécharger

  • Hide layout objects

    Hide layout objects

    Script controlled tab switching

    Finally! FileMaker 12 provides a clean method to control tab switching by script and therefore to show/hide layout objects conditionnally, without requiring tricks like overlappling objects or complex scripts to reset the original tab.

    Here is a video and a very simple technique file, extremely easy to reproduce in your own solution.

    Download

     

  • FileMaker 12 – Video – FMSDIFM

    FileMaker 12 – Video – FMSDIFM

    Grâce à FMSDIFM de 1-more-thing, (FileMaker Server, Do It For Me), FileMaker devient une vraie solution performante dans le cloud.

    Au-delà des nouveautés mises en avant par FileMaker lors de la sortie de FileMaker 12, voici LA révolution dans la conception de solutions FileMaker.

    Comme vous le verrez, il est désormais possible de déléguer les tâches gourmandes en ressources à FileMaker Server, permettant des gains de performances prodigieux. le consultant FileMaker peut ainsi proposer des vraies solutions sur le cloud, avec les avantages d’une interface FileMaker, et des performances telles qu’on les connaît quand on travaille sur un poste local. Même avec FileMaker Go !

    D’autre part, cette technologie maison permet de développer des scripts décontextualisés (finis, les changements de modèles, ouvertures de fenêtres, mémorisation des onglets…). Cela permet non seulement un gain de performances encore accru, mais élimine les effets inesthétiques des ouvertures de fenêtres sous iOS ou sous Windows.

    Le meilleur dans tout ça : FMSDIFM (FileMaker Server, Do It For Me) est offert à tous nos clients en hébergement !

  • Fonctions fm.field

    Fonctions fm.field

    FileMaker 10 a apporté une nouvelle fonction (ObtenirNomRubrique/GetFieldName) et une nouvelle action de script (Définir rubrique par nom/Set field by name), qui permettent au développeur de s’affranchir du nom des rubriques et de développer de manière beaucoup plus dynamique.

    Problème : il n’est pas toujours simple de calculer le nom de la rubrique cible (Définir rubrique par nom), ou d’extraire un élément du nom de la rubrique retourné par ObtenirNomRubrique.

    En effet, ces fonctions travaillent sur le nom complet de la rubrique : table ::rubrique, alors que les fonctions Obtenir(NomRubriqueActive) et Obtenir(NomTableRubriqueActive) renvoient respectivement le nom de la table et le nom de la rubrique, mais à condition que la rubrique ait été activée auparavant (ce qui implique notamment qu’elle soit présente sur le modèle courant)

    Voici donc un ensemble de fonctions qui permettent facilement d’extraire (fm.field.get) ou de composer (fm.field.set) le nom de la rubrique, y compris en tenant compte des multivaluées.

    fmfunctions

  • Fonctions SQL

    Fonctions SQL

    Avec la sortie de FileMaker 12, la fonction ExecuterSQL permet au développeur FileMaker de formuler des requêtes complexes beaucoup plus facilement qu’avec le graphique des liens et des calculs.

    Un autre -immense- avantage des requêtes SQL est qu’elle sont exécutées indépendamment du contexte. Il n’est donc plus nécessaire, dans un script, de multiplier les changements de modèles ou ouvertures de fenêtres, coûteux en temps de chargement et inesthétiques en FileMaker Go ou sous Windows.

    Et puis, il y a cet immense avantage par rapport aux plugins : la fonction est compatible avec FileMaker Go !

    Tout est pour le mieux donc, mais il existe des limites à cette “magie”.

    • la fonction ExecuterSQL est limitée à la requête SELECT, c’est-à-dire que l’on peut lire, mais pas écrire dans la base de données. Cette limite est d’autant moins compréhensible que les plugins ou des clients ODBC sont autorisés à effectuer ces opérations via l’interface sql.
    • dans la même veine, on peut regretter l’absence de paramètre nous permettant de préciser à quel fichier FileMaker on s’adresse. Les plugins, ainsi d’ailleurs que les fonctions de conception de FileMaker, peuvent interroger un autre fichier que le fichier actif (à condition qu’il soit ouvert), sans même que le fichier soit référencé par le fichier actif. Ceci est très pratique car cela permet d’éviter des dépendances inutiles. Intéressant par exemple quand on a un fichier embarqué sur un iPhone qui doit régulièrement synchroniser ses informations avec un fichier sur serveur, sans pour autant que l’on souhaite une connexion permanente. Cette absence est d’autant pus surprenante que le nouveau support du protocole URL nous donne une nouvelle arme pour cette communication entre fichiers.
    • l’interface SQL travaille sur son propre système d’indexation, ce qui veut dire que la première requête sur une rubrique d’une table comportant beaucoup d’enregistrements va potentiellement prendre plusieurs secondes là où un lien FileMaker aurait donné un résultat immédiat. Fort heureusement, une fois cette première requête effectuée, les opérations seront très rapides. Etrangement, on voit là encore une différence dans les performances, au très net avantage des plugins, notamment du meilleur d’entre eux, DoSQL de myFMbutler.
    • le pendant de l’indépendance du contexte, c’est que… ExecuterSQL ne peut pas du tout tirer parti du contexte. On ne peut pas influencer le résultat d’une requête avec le graphique des liens. Mais est-ce vraiment une limite ?
    • cela nous mène à la quatrième limite, la plus importante sans doute, parce qu’elle se situe “entre la chaise et le clavier” : la plupart des utilisateurs ou développeurs FileMaker n’ont pas l’habitude de formuler des requêtes SQL. La logique du graphique des liens et des calculs nous a “formatés” et il ne nous est pas forcément évident de tirer profit.

    C’est sur cette dernière limite que nous nous penchons aujourd’hui, parce qu’elle semble être la seule sur laquelle nous puissions influencer à court terme.

    Car fort heureusement, nous sommes humains (enfin, je ne peux le garantir pour vous, mais en ce qui me concerne, c’est une certitude). Or homo sapiens est très doué pour l’apprentissage, et en particulier avec un sujet aussi “simple” que SQL. Sérieusement, les rudiments de SQL (ceux que l’on utilise pour 95% des requêtes) s’apprennent en quelques minutes. Personnellement, quand je sèche, je regarde ici.

    Il existe aussi de nombreux forums dédiés à SQL, où certains ont déjà publié des requêtes compliquées. Ainsi, si je n’ai aucune idée de la manière de sélectionner les factures de 2009 à 2012, regroupées par mois et classée par montant décroissant… je pose ma question littéralement sur Google. Si j’ai la chance de parler l’anglais, je la pose en Anglais pour plus de réponses. Et il est rare que je ne trouve pas une réponse toute faite ou approchant sensiblement.

    Mais puisqu’il faut s’y mettre, autant essayer un peu par soi-même. Et vous le verrez, on arrive très vite à quelque chose.

    Seulement, au bout de quelques requêtes plus ou moins péniblement formulées, vous vous rendrez compte que :

    • le nom des rubriques et des tables est “hard-codé” dans la requête. SQL nous ferait donc perdre l’avantage immense de FileMaker de ne pas avoir à se soucier du nommage ?
    • vous utilisez exactement la même requête plusieurs fois, pour des rubriques et des tables différentes. Typiquement, c’est celle-ci : “donne moi la liste du (des) enregistrement(s) dans la table X dans lequel (lesquels) la rubrique Y a le contenu Z. Plus concrètement : “donne-moi tous les ID de mes pots de confiture dont le fruit est Abricot.” Ou au contraire, “donne-moi le fruit du pot de confiture dont l’ID est 348”

    Pour pallier à ces deux “problèmes”, qui encore une fois ne viennent pas de la technique mais de nous-mêmes, j’ai publié une fonction personnalisée qui devrait nous aider à nous lancer.

    Voici comment l’utiliser :

    sql.match ( _requestedFieldName ; _matchFieldName ; _match )

    • _requestedFieldName : le nom complet de la rubrique que l’on souhaite obtenir (respectivement potDeConfiture ::ID et potDeConfiture ::fruit dans les exemples précédents)
    • _matchFieldName : le nom comple de la rubrique à tester (l’autre rubrique)
    • _match : le critère d’égalité (“abricot” ou 348)

    Le plus simple est de l’utiliser en combinaison avec la fonction ObtenirNomRubrique, afin de ne pas dépendre du nommage.

    Exemple : sql.match( ObtenirNomRubrique ( PotDeConfiture ::ID ) ; ObtenirNomRubrique ( PotDeConfiture ::fruit ) ; "Abricot" )

    renverra une liste des ID (séparés par des retours chariot) des Pots de confiture d’abricot

    Ah ! un dernier détail. Afin de pouvoir observer la requête effectivement exécutée, une variable $sql.match.query sera déclarée.

    Nom de la table Et puis, je ne résiste pas au plaisir de vous signaler cette autre fonction fm.basetable.name. Ceci résout un manque que je trouvais patent depuis de nombreuses années : la possibilité de connaître par calcul le nom de la table représentée par une occurrence de table.

    Alors ? on s’y met ? Joyeux SQL à tous !

  • FileMaker 12 – Video – Autres fonctionnalités

    Avant-dernière vidéo gratuite de présentation de FileMaker 12. Un peu de tout sur ce qui n’a pas été abordé dans les précédentes.

    Dans la vidéo suivante que nous publierons cette semaine, vous comprendrez pourquoi FileMaker 12 est une révolution. Tenez-vous prêts.

     

  • FileMaker 11 – Video – Graphiques

    FileMaker 11 – Video – Graphiques

    Vous l’avez attendue, la voici ! Enfin une petite présentation vidéo des graphiques de FileMaker 11.

    A travers quelques exemples, nous montrons ici certaines possibilités proposées par l’outil graphique de FileMaker 11.

    Nous pointons également certains défauts de ces graphiques. Une prochaine vidéo réservée aux abonnés, illustrera plus en profondeur ces problèmes et proposera des solutions.

  • FileMaker 11 – Video – Liens snapshot

    FileMaker 11 – Video – Liens snapshot

    Dans cette nouvelle vidéo gratuite, nous abordons une des nouveautés les plus utiles de FileMaker 11 : les liens snapshot.

    Un snapshot permet de mémoriser un ensemble d’enregistrements dans une vue particulière (modèle, mode d’affichage, tri…)

    Découvrez comment les liens snapshots peuvent vous être utiles.

     

  • FileMaker 11 – Video – Déclencheurs

    FileMaker 11 – Video – Déclencheurs

    Dans ce troisième épisode gratuit sur FileMaker 11, nous abordons les déclencheurs.

    Les nouveaux déclencheurs de la 11 sont :

    • SurValidationObjet (Pre)
    • SurModificationObjet (Drag’n Drop) (Post)
    • SurSortieModele (Pre)
    • SurChangementVue (Post)

    Comme toujours, n’hésitez pas à laisser vos commentaires, surtout s’ils sont positifs ! 😉

  • FileMaker 11 – Video – Fondamentaux

    FileMaker 11 – Video – Fondamentaux

    Voici la deuxième vidéo de notre série consacrée à FileMaker 11.

    Pendant près d’une demi-heure, nous examinons l’impact de la nouvelle architecture “Cocoa” de la version Mac, nous observons les plus importants changements dans l’interface, mais nous abordons aussi certains détails pour lesquels il n’existe pas de documentation.

    Regardez cette video pour profiter à plein de FileMaker 11.

    N’hésitez pas à laisser un commentaire ci-dessous !

  • FileMaker 12 – Video – Conteneurs

    FileMaker 12 – Video – Conteneurs

    On entend beaucoup sur les nouveaux conteneurs, mais il faut faire la part des choses. Il y a certes le stockage externe -la nouveauté principale- mais aussi tout le reste, des modifications sur ce que l’on connaissait déjà.

    Il faut voir cette vidéo pour se remettre les idées en place.

  • FileMaker 12 – Video – Modèles

    FileMaker 12 – Video – Modèles

    La nouveauté la plus visible de FileMaker 12 : les modèles

    Tout ou presque (on en garde sous le coude) ce qu’il faut savoir sur les modèles de la 12. Comment les manipuler, comment modifier un thème ou en créer, et mille et unes choses à savoir dans cette loooooongue vidéo d’une heure !

  • FileMaker 12 – Video – Aperçu

    FileMaker 12 – Video – Aperçu

    FileMaker 12, une révolution ?

    Vous vous souvenez peut-être avoir ici même, il y a deux ans, découvert FileMaker 11 à l’instant où il a été annoncé par FileMaker Inc.

    Bien que FileMaker 11 ait apporté son lot de nouveautés dont certaines étaient vraiment intéressantes, j’avais développé un sentiment mitigé. Parfois jugé sévèrement des évolutions timides.

    Pour FileMaker 12, disons-le d’entrée, rien de tel. Toute la gamme de produits (FileMaker Server, FileMaker Pro, FileMaker Go) évolue d’une manière magnifiquement cohérente. Il s’agit tout simplement de la plus grosse évolution de FileMaker depuis la version 3 et le modèle relationnel.

    Quoi ?! plus importante que le passage de 6 à 7 ?

    Oui, FileMaker 12 est une révolution.

    Rassurez-vous. Bien que FileMaker 12 utilise un nouveau format de fichier, la migration est très simple à effectuer. Un peu comme quand on est passé de 3 à 4. Par contre, sur le plan fonctionnel, oui, la révolution est comparable au passage de 6 à 7. En tant que développeur et concepteur d’applications, je pense même que la version 12 changera plus ma vie et celle des utilisateurs. Comment ? Nous l’effleurerons ici, et reviendrons plus en détails dans des vidéo à paraître les jours prochains.

  • Libellés d’onglets calculables et formatables

    Cette astuce très simple fait suite à une demande revenant souvent sur les forums : comment utiliser le formatage conditionnel ou modifier le libellé des onglets par calcul.

    Le fichier d’exemple (télécharger) est le même que celui de l’article sur les Bibliothèques

     

  • Le graphique des liens

    Le graphique des liens

    Quelques petites et grandes choses à savoir sur les liens dans FileMaker

    FileMaker propose plusieurs manières de formuler des requêtes sur la base de données. (scripts, calculs, recherches, interfaces sql, xml…). Mais c’est bien les liens qui donnent le plus de fil à retordre au développeur expert comme au débutant.

    Voici quelques petites astuces de manipulation et quelques idées plus fondamentales qui vous aideront à mieux appréhender cette outil.

    Attention, une maîtrise minimale des liens et de la logique relationnelle est nécessaire pour suivre cette vidéo.

    Télécharger

     

  • Communications structurées

    Communications structurées

    (une fonction FileMaker pour la Belgique)

    Si vous développez des solutions FileMaker pour une organisation belge, vous avez peut-être parfois besoin de créer des numéros communications structurées.

    Nous avons récemment publié une fonction personnalisée qui vous permet, à partir des 10 premiers chiffres (libres), de formater et compléter la communication.

    Ainsi, si vous composez une chaîne telle que 1234567890 (constituée, par exemple, du numéro de client et du numéro de facture), cette fonction vous rend le résultat : 123/4567/67890/02. (les deux derniers caractères étant la clef de validation de la communication)

    http://fmfunctions.com/fid/321

    Cette fonction n’est pas récursive, c’est-à-dire que si vous ne disposez pas de FileMaker Pro Advanced, vous pouvez utiliser la formule comme un simple calcul en remplaçant simplement _input = _char10 par _input = [votre chaîne de 10 caractères]

  • Créer des enregistrements liés “par en haut”

    Créer des enregistrements liés “par en haut”

    Deux techniques faciles pour améliorer l’expérience utilisateur

    Quand un utilisateur souhaite créer rapidement des enregistrements liés, une table externe basée sur un lien autorisant la création semble toute indiquée.

    Néanmoins, cette technique native présente quelques inconvénients :

    • il faut défiler jusqu’à la première rangée vide pour pouvoir créer de nouveaux enregistrements liés.
    • l’utilisateur doit savoir que c’est la première rangée vide et uniquement celle-ci qui permet la création.
    • des éléments d’interface seront présents sur cette dernière rangée vide, alors qu’il n’y a pas lieu (un bouton de suppression par exemple, qui ne sert à rien puisqu’il n’y a, justement, pas d’enregistrement)

    Voici un fichier qui présente deux techniques simples pour permettre à l’utilisateur de créer des enregistrements dans une table externe depuis un champ de saisie situé au-dessus de celle-ci.

    L’une, la plus simple, est disponible depuis FileMaker 7 (moyennant une petite adaptation du calcul qui utilise la fonction Contenu, apparue avec FileMaker 9)

    L’autre se base sur les filtres de tables externes filtrées, apparus en FileMaker 11.

    Télécharger