Jump to content

Leaderboard

Popular Content

Showing content with the highest reputation since 04/29/22 in Posts

  1. En fait, le fait de connaître l'API utilisé m'aurait peut-être permis de trouver la documentation de l'API. En son absence, je vous propose l'extrait de script suivant : Définir variable [ $login ; Valeur: "VOTRE LOGIN" ] Définir variable [ $motdepasse ; Valeur: "VOTRE MOT DE PASSE" ] Définir variable [ $url ; Valeur: "https://VOTRE URL" ] Définir variable [ $curl ; Valeur: "-X GET --user " & Citation ( $login & ":" & $motdepasse ) ] Insérer depuis URL [ sélectionner ; Avec boîte de dialogue: Non ; Cible: $resultat ; $url ; Vérifier les certificats SSL ; Options cURL: $curl ]
    3 points
  2. salut tout le monde pour ceux que ca intéresse et qui ont l'habitude de travailler en SQL avec des outils comme PhpMyAdmin ou MySQLWorkbench, j'ai trouvé un outil sympa pour manipuler FM en ODBC/JDBC : RazorSQL https://razorsql.com/index.html
    3 points
  3. FredoMkb

    ObtenirCSS inversé ??

    Salut à tous Voici une piste possible, en utilisant le plugin gratuit "BaseElements" ("BE" pour les intimes …voir https://docs.baseelementsplugin.com/)… Ce plugin propose une fonction qui peut exécuter du code JavaScript nommée "BE_EvaluateJavaScript()", du coup, avec une rubrique calculée (ou par script le cas échéant), on peut imaginer une formule qui traite le texte CSS pour le nettoyer de toutes ses balises HTML (via un simple remplacement basé sur un petit masque RegEx)… Malheureusement, cette fonction BE n'assure pas la conversion des éventuelles entités HTML présentes dans le code créé par la fonction native "ObtenirCSS()", dès lors, on doit passer par un "Substituer()" à la sauce FileMaker pour les convertir en texte brut… Bref, voici une petite capture d'écran et le fichier d'exemple téléchargeable juste dessous : HtmlToText.fmp12 Petite précision, la liste des entités HTML n'est évidemment pas complète, je n'ai gardé que les plus utilisées dans un texte, mais pour la compléter vous trouverez aisément des listes plus exhaustives sur le Web, par exemple par ici : https://www.freeformatter.com/html-entities.html --
    2 points
  4. Bonjour, Pas sûr d'avoir compris l'objectif, mais une fonction peut peut-être aider : SupprimerFormatTexte ( Texte ). Elle permet au texte de perdre tous ses attributs particuliers et d'obéir ensuite à la mise en forme de l'objet rubrique. Sinon, ObtenirCSS ( Texte ) peut aider à détecter les non régularités de formatage sur un texte donné. Cela vous aide ? Jérémie
    2 points
  5. et bien voila, grace aux bons conseils de @tcolles nos utilisateurs "boulets" nous couteront moins en temps à chaque oubli de leurs mots de passe 🙂 - le bouton ACTIF active/désactive le compte sur la base principale et tous les satellites et il est présent également coté client sur son tableau de bord - le bouton "réinitialiser pwd" affecte la base principale et tous les satellites, il est aussi présent coté client - les boutons de propagation propagent les droits de la principale vers les satellites, selon les options d'accés de l'utilisateur La vie est belle, le we s'annonce bien 😉 Bon week-end à tous 🙂
    2 points
  6. Bonsoir, pas sûre de comprendre l’énoncé avec les " et les ', mais si le premier mot sont les heures/minutes et le second, les secondes, dans ce cas n'est il pas mieux de tout convertir en seconde et laisser time faire ? Let ([ hms = "176'52""" // "138""79" ]; time ( 0 ; 0 ; LeftWords ( hms ; 1 ) *60 + RightWords ( hms ; 1 ) ) ) et ajouter un test si à un moment il peut n'y avoir qu'un "mot"
    2 points
  7. Il ne faut pas spécialement que l'utilisateur soit en accès intégral mais simplement que les scripts exécutés se voient accordés les privilèges d'accès intégral.
    2 points
  8. David Julot

    NO SCROLL sur WebViewer

    Bonjour, Le «scroll verticale» permet à l'utilisateur à naviguer au sein de la page. Si vous ne souhaitez cette possibilité, je pense que le plus simple est de décocher l'option Autoriser l'interaction avec le contenu du Web Viewer.
    1 point
  9. Bonjour, Pour faire ce que vous expliquer dans votre but , voici une petite app a analyser . DwindelingVL.fmp12
    1 point
  10. jilc

    ObtenirCSS inversé ??

    Jolie solution, très intéressante, merci Fred, du partage ! Je vais tenté de l'intégrer. JLuc
    1 point
  11. Mais le besoin est que la mise en forme particulière, comme une mise en page de texte où le contenu de la rubrique contienne à la fois du Formata 72 et du Formata 48, puisse devenir le Formata 72 en Formata 14 et le Formata 48 en Formata 10. Tout ceci est un peu hypothétique, l'exemple concret est que dans un nom donner, l'article soit mis en caractère plus petit, ainsi que le complément d'objet, seul l'objet reste dans ça taille… Pour le moment, soit j'utilise le SupprimerFormatTexte( Contenu ) pour simplement ne plus voir la mise en forme particulière, soit j'ai une deuxième rubrique que je modifie avec les mêmes critères que sont homologue qui est saisie en caractère plus grand de base. Après j'ai pensé à faire une fonction plus pousser, avec un remplacement automatique de l'article "Le, La, Les, …" avec la fonction Substituer puisse qu'il se trouve toujours en premier et ajouter une fonction "dernière ligne en plus petit" qui applique un caractère plus petit après le dernier retour chariot. Mais dans ce cas, ça demande beaucoup plus de travail et cette base est vouer à disparaitre, pour une nouvelle base plus réfléchi dès sa conception ! Merci pour tes conseils Jérémie !!
    1 point
  12. Merci Jérémie pour cet possibilité ! En CSS, on peut aller chercher d'autres fonctions 😉 L'idée général de ma demande est de ne pas avoir à faire plusieurs fois la mise en forme, entre la cellule de saisie finale et une cellule de prévisualisation plus petite. Antonin
    1 point
  13. Bonjour Jérémie, Ah oui, j'avais raté ce détail, merci. Christophe
    1 point
  14. On se calme, je suis largué !!! Où est le problème, j'ai bien mes 25 enregistrements sélectionnés au hasard (si tant est que celui-ci existe ou, plutôt - ou milou ou rantanplan, comme on veut -, qu'on puisse le simuler, mais c'est un autre débat).
    1 point
  15. Fredco03

    Liste alpha

    Effectivement, je viens de la mettre dans 3 autres rubriques, encore merci. Bonne soirée. Cdlt Frédéric
    1 point
  16. Fredco03

    Liste alpha

    C'est génial, ça fonctionne, j'ai fait au plus simple dans ma rubrique : résultat de calcul "SortValues ( Musicien )" Merci à tout les deux.
    1 point
  17. @tcolles Est-ce qu'avec cette formule, le dernier enregistrement peut être sélectionné ? J'ai l'impression que non… Inversement, le zérotième enregistrement pourrait être demandé. Du coup, je pense que Plafond () à la place de Ent () peut faire l'affaire.
    1 point
  18. Bonjour, Il est un peu dommage de devoir modifier l'enregistrement dans cette technique. Le plus simple est :
    1 point
  19. Pardonnez ma réponse si différée. Merci pour votre suggestion. Excellente journée à vous.
    1 point
  20. Il y a aussi le don de de de soi… Don de soi.mov
    1 point
  21. j'avais complètement oublier qu'il y avait un menu contextuel sur les scripts....... D'ailleurs c'est quoi "Activer le don de raccourci"?!?! Je connaissais le don d'ubiquité, d'organes, de sperme...... mais le don de raccourci..... 🙂
    1 point
  22. Bonsoir, Les actions de création de compte, suppression, activation, réinitialisation de mdp,...doivent être exécutées dans le fichier lui-même avec un privilège d'accès intérgal. Il est donc envisageable d'avoir une table de gestion des utilisateurs dans le fichier maître et que toutes les actions relatives à la gestion de comptes déclenchent des scripts dans ce fichier maître qui eux-mêmes font appel à des scripts similaires dans tous les satellites avec passage de paramètres (compte, privilège, mdp,...)La particularité des scripts est qu'ils doivent être exécutés avec le privilège accès intégral. bien à toi, Tanguy
    1 point
  23. Bonjour, Les utilisateurs seront: Mes mots de passe personnels Les mots de passe de ma première compagnie Les mots de passe de ma 2eme compagnie. C'est la raison de la table utilisateurs. Merci
    1 point
  24. merci à tous pour votre aide
    1 point
  25. Merci d'abord à vous deux, j'apprécie énormément. Je vous réponds: Pour Astucieux Apophis000 Je sens que je vais apprendre beaucoup de chose aujourd’hui 😄 1- Pourquoi une table <Date> avec un ID «ID_Rendo» et une rubrique «Date» déjà incluse dans la table <RAN_Randonnées>. À quoi cela sert-il? 2- Je trouve une Badge Script dans la rubrique «;;TRA_Nom», et j’ignore son rôle. Je découvre que cette rubrique en cache une autre «::zkf_TRA». C’est la clé étrangère de la table <TRA_Trajet>, et c’est elle qui permet la sélection du trajet. Elle contient un script: «valides» ( Valider enreg./requêtes [Avec boîte de dialogue: Non] ) Quel est le rôle de ce script? - Que valide-t’il? Pourquoi utiliser la rubrique «::zkf_TRA» dans le modèle <Date Rando> ? - plutôt que «;;TRA_Nom» en liste déroulante et flèche sur la liste des trajets? 3- Enfin à quoi servent les boutons <KmA>, <KmB> et <KmC> avec un script: «Définir rubrique [RAN_Randonnées::G_triTE[X]; Obtenir ( ParamètreScript ) ]. R- …À inscrire dans la rubrique «texte» un paramètre dont j’ignore la nature ? 4- Les cases «à cocher» devraient se comporter comme des boutons «Jeu de cercles d’option». Mais, les jeux de cercles ne sont utilisable qu'avec une liste de valeurs… Ce qui prête mal à des calculs éventuels. 5- La poubelle «Suppression de la rangée» est à abandonner, car nous devons garder les noms des personnes qui se sont inscrites, mais qui ne se sont pas présentées. Généreux Maître Jérémie Gimenez, «Présence» et «choix de trajet/parcours» sont donc 2 rubriques qui doivent figurer dans la table Participe. Oui, tout à fait. Ces deux rubrique permanentes accompagnent la date, le nom et les groupes, et constituent les informations essentielles sur la randonnée. S'ajouteront aussi quelles autres dont la météo, l'état des voies, et les commentaires des chefs de files et des participants. Donc, on ne prévoit pas de rubrique "Présent/Absent", c'est bien. Non, comme je disais à Apophis, il nous faut conserver la liste des inscrits en permanence. Ta compréhension est très juste. Il n'y a pas de recherche, sauf pour les données sur les personnes (participants inscrits (100) parmi les membres actifs :350, pour 2022 ) et les trajets. …on n'a finalement pas de table Groupe, et la table Participe ne relie pas Personne à Groupe mais à Randonnée. Ce que je présume ici c'est que la table <Participe> contient la liste des personnes inscrites tirée de ta table PER_Personnes. La confusion provient probablement du fait que je me suis fait petit fichier FMP pour l'exploration de solutions techniques avec uniquement la liste des personnes inscrites (Participants potentiels dont il nous faut connaître leur présence et choix de trajet) que j'ai nommé <PER_Personnes>. J'explore les astuces d 'Apophis, et me mets au travail…. «à suivre». Merci encore à vous deux
    1 point
  26. Bonsoir, "Définir rubrique par nom" fonctionne aussi en mode recherche. 1- mode recherche 2 - définir rubrique par nom = 1 3 exécuter recherche ------------------------------------------------- Par ailleurs, ce type de rubrique 'oui/non' s'appelle une rubrique booléenne et est de type nombre où 1 = vrai et 0 = faux - l'idéal est d'ailleurs de définir une auto entrée sur la rubrique comme suit : ObtenirCommeBooleen ( Contenu ) https://fmhelp.filemaker.com/help/18/fmp/fr/index.html#page/FMP_Help%2Fgetasboolean.html%23ww1285140
    1 point
  27. Bonjour, Merci pour votre aide bienvenue ! Votre suggestion de Boucle d'une rubrique à l'autre avec <Remplacer contenu rubrique> sans spécifier la rubrique, fonctionne après mes premiers essais ! C'est un peu lent, mais çà le fait tout de même ! Cela fonctionne aussi pour Trier la sélection avec <Trier enreg. par rubrique> sans définir la rubrique cible.. Par contre, je n'arrive pas à opérer une sélection avec <Exécuter la recherche>.
    1 point
  28. Noël Dubau

    BaseElements

    Bonjour En fait j'ai été désarçonné par un changement dans l'installation : j'avais souvenir que l'installation consistait en un dépot de 2 fichiers .fmx64 et .fmplugin dans le dossier extensions. Après téléchargement d'une archive BaseElements.fmplugin.zip et décompression j'obtiens un dossier BaseElements.fmplugin dont on ne peut voir le contenu. Mais son glisser-déposer dans le dossier extension installe bien le plugin et il fonctionne. Bobby Lapointe autrait ponctué d'un "Comprend qui peut, comprend qui veut" Noël vieillissant !
    1 point
  29. Il te reste 6 occasions de tester avant le saut fatidique en 2023… ☄️ 😄
    1 point
  30. Bonjour à tous, Nous sommes passés récemment sur une version cloud de FMPro pour partager notre base sur 3 utilisateurs. Certaines choses ne fonctionnent apparemment pas comme sur une version monoposte en local, et j'ai actuellement le souci suivant : je crée des factures dans l'appli par script, et j'ai une table mono-enregistrement séparée pour gérer le chrono (prochain numéro de facture) qui est automatiquement incrémenté lors de la création de la facture. Ce numéro évolue automatiquement à chaque facture, et repasse à 1 à chaque début de mois. C'est du moins ce qui se passait sur la version locale monoposte. Je précise aussi que chaque poste est susceptible de générer des factures. Mon souci est que la rubrique est désormais systématiquement réinitialisée à 1, à chaque reconnexion à la base ... Auriez-vous un conseil pour que je puisse stocker et gérer cette valeur sans surprise et de façon pérenne ? Merci d'avance de vos lumières 😉 Patrick
    1 point
  31. Bonjour Jérémie, et un grand merci pour ton aide ! C'était bien mon test qui ne marchait pas : et tout simplement parce que la rubrique mois de dernière utilisation::mois était globale. On verra au passage en juin si ça fonctionne bien. Encore merci 😉 Patrick
    1 point
  32. FredoMkb

    BaseElements

    Salut @Noël Dubau Peut-être via ce liens : - https://docs.baseelementsplugin.com/collection/374-general - https://docs.baseelementsplugin.com/article/522-downloads
    1 point
  33. une autre solution possible en utilisant le numéro d'enregistrement : - je défini une rubrique calcul non mémorisée "numero_enr" en utilisant Obtenir (NumeroEnreg) une fois entré dans le modèle, donc avec le résultat de la recherche de base triée - je genere la liste de valeurs en utilisant "numero_enr" et "nom_magasin" en affichant que la valeur de "nom_magasin" - je defini une rubrique globale "select_enr" avec cette liste - j'utilise Afficher Enreg/requete/page par valeur calculée sur "select_enr" Dans ce cas je ne sort pas de mon jeu d'enregistrement et je ne fais pas de nouvelles recherche Et ca va plus vite, pas "beaucoup" plus vite mais plus vite quand meme, et la charge sur FMP pro/serveur est surement plus légère 🙂 Il y a peut-être plus rapide 😉 Bon week-end
    1 point
  34. Salut à tous Bon, je vais peut-être dire une "grosse" bêtise, mais… pourquoi ne pas envisager une navigation par lien plutôt que par recherche ? Il suffit d'une rubrique globale qui fera le lien avec l'identifiant unique de l'enregistrement cible, puis un simple "activer enregistrements liés"… et le tour est joué… En pièce-jointe un rapide exemple, à adapter évidemment pour, notamment, avoir la liste de valeurs correspondante à la première recherche… Bref, piste à explorer àmha NavListeLien.fmp12
    1 point
  35. Bonsoir Jérémie, Finalement ce n'est pas si sûr ... 😉 J'ai vérifié que ma rubrique chrono n'était pas globale ; mais quand je ferme ma base et que je la rouvre, la valeur repasse immanquablement à 1 🤨. Il y a peut-être d'autres points à vérifier ? Cette base est sur le Cloud FileMaker, et 3 personnes travaillent dessus simultanément. Ce qui est bizarre, c'est que ma table "variables globales" contient d'autres paramètres qui eux ne sont pas réinitialisés (cf screen) ... et je ne vois aucune différence au niveau de la définition des rubriques. J'ai un peu recherché sur internet mais sans grand succès (français et anglais), donc si tu as quelques liens qui pourraient m'éclairer, je suis preneur !!! Patrick
    1 point
  36. Salut gpto Il me semble qu'une table externe filtrée est un moyen rapide pour trouver des enregistrements. Même si il reste quelque ligne après les filtre ( plusieur global avec "et" ) le choix est facile car visuel. Un clique sur celui voulut et op! vers ca fiche ... Peut-etre aussi avec un modèle liste ? ( sans garentie, car, jamais travailler avec plus de 3000 fiche ... )
    1 point
  37. Il faut exporter ta rubrique conteneur dans un fichier temporaire et le réutiliser dans le même script dans l'envoi du courrier - Définir variable : $temp : Obtenir (CheminTemporaire)&Doc::CGV - Exporter contenu de la rubrique : Doc::CGV, ficher de sortie : $temp - Envoyer courrier : joindre un fichier : $temp Je pense que ca peut marcher
    1 point
  38. Bon désolé mais je viens de résoudre la chose via une rubrique transparente (sans couleur de fond) par dessus la date récupéré. Script déclenché à la modification de la rubrique transparente (on croit cliquer sur la date mais on modifie finalement la rubrique qui est au dessus) Le script efface la rubrique de changement car sinon il y a deux textes superposés
    1 point
  39. Bonjour C'est pas ceci ? que vous devez décocher ?
    1 point
  40. @Jérémie Gimenez les commandes int et mod en francai, c'est quoi svp? @Marc Boucher vos temps sont 2:28:01 et pas 138"79 ?? En partant de 138"79 , j'ai fait une autre solution, mais pas très académique, j'en conviens.
    1 point
  41. voici un exemple ou les : représentent tant les heures que les minutes et les secondes n'ont aucune spécificité, pas retrouvé pour heure en minute
    1 point
  42. MMB

    Table questions

    Je connaissais pas le lien en X ça résout mon problème merci beaucoup !
    1 point
  43. Bonjour Marc, Tu peux essayer cette formule Let ( [ _time = "176'138\"79" ; _timeV = Substitute ( _time ; ["\"" ; ¶] ; ["'" ; ¶ ] ) ; _h = GetValue ( _timeV ; 1 ) ; _m = GetValue ( _timeV ; 2 ) ; _s = GetValue ( _timeV ; 3 ) ; _m = _m + int ( _s / 60 ) ; _s = mod ( _s ; 60 ) ; _h = _h + int ( _m / 60 ) ; _m = mod ( _m ; 60 ) ] ; time ( _h ; _m ; _s ) ) un peu testée...sans doute à bétonner
    1 point
  44. tcolles

    Table questions

    Bonjour Effectivement si vous voulez simplement récupérer les valeurs stat et/ou calcul d'une table il faut un lien. (Ce lien peut être par ailleurs un lien de type X qui lie toutes les fiches des deux tables impliquées) Une autre solution est de se lancer dans du ExecuteSQL qui permet de s'affranchir des relations. Pour avancer plus précisément, il faudrait en savoir plus sur le schéma relationnel de votre base. Mais en soi, tout est possible 😉
    1 point
  45. Je suis encore à me demander pourquoi j'ai pris le truc à l'envers !!!!
    1 point
  46. Fredco03

    Portrait

    Avec mes excuses, je viens de trouver mon erreur. Donc résolu. Merci
    1 point
  47. Oui c'est bien Obtenir ( NombreRépétitionsCalcul ) qu'il me faut ! Merci Jérémie et Lupus. C'est vrai que la traduction embrouille un peu : Tantôt il utilise valeurs / repetitions / répétitions ou nombre / numéro Obtenir (NuméroValeurCalcul) aurait été plus explicite !!
    1 point
  48. Bonjour, ce qui frappe ici est l'aspect irrégulier. Si je comprends bien, certaines sessions de script se terminent correctement, d'autres non. D'autre part, ces sessions provoquent un ralentissement. Ces indices laissent penser que la session est effectivement en cours (il ne s'agit pas d'une déconnexion non détectée par FM Server) et que le script fait bien quelque chose (sans quoi il n'y aurait pas de raison de ralentir) Êtes-vous certain que dans certaines circonstances le script ne peut tomber dans une boucle infinie ? [PAUSE PUBLIICITAIRE] De notre côté nous utilisons cet add-on qui permet de tracer précisément ce qui se passe, du côté client ou du côté serveur https://www.1-more-thing.com/en/products/1mt-log/ [FIN DE LA PAUSE PUBLICITAIRE]
    1 point
  49. Jérémie Gimenez

    Liste A - Liste B

    Euh… c'est basé sur le fait que la fonction UniqueValues se comporte différemment envers une espace et envers une espace sans chasse. Il fallait s'en apercevoir ! 👏 @Agnès NB : dommage que la référence n'ait pas été envoyée les fois récentes où l'on a parlé de soustraire des listes… 🤓 En attendant, je ne vais pas l'oublier, celle-ci ! EDIT : plus précisément, c'est même dû au fait que la fonction UniqueValues et la fonction ValeursFiltre ne traitent pas de la même façon la différence entre espace et espace sans chasse… C'est tout de même une bizarrerie de FMP
    1 point
  50. Bonjour, Une solution "pas à pas" en décomposant puis recomposant unités et décimales. Arrondi.fmp12
    1 point
×
×
  • Create New...