Jump to content

Leaderboard

Popular Content

Showing content with the highest reputation since 07/02/21 in all areas

  1. fabriceN

    Trop fier

    La consécration
    3 points
  2. Bonjour Olivier, Un enchaînement de SI de ce genre ?
    2 points
  3. Bonjour En général, l'état d'un enregistrement (un client, un compte, une facture, ...) détermine les actions et résultats à obtenir. Si ces états ont une suite logique (A régler, Réglé partiellement, Réglé ) alors il vaut mieux utiliser une rubrique calcul de type nombre EtatNb = Cas ( condition à régler ; 1 ; condition réglé partiellement ; 2 ; condition réglé ; 3 ) qui permet par exemple de faire une recherche sur plusieurs états à la fois, et une autre rubrique calcul texte EtatTx = Cas (EtatNb = 1 ; "A régler" ; EtatNb = 2 ; "Réglé partiellement" ; EtatNb = 3 ; "Réglé" );
    2 points
  4. Tout petit complément suite à la réponse de Magalie : c'est Obtenir ( NombreEnregTrouvés ) qui donnera la solution, après import. $_avant = Obtenir ( NombreEnregTotal ) $_apres = Obtenir ( NombreEnregTrouvés ) (juste après l'import) $_apres_total = Obtenir ( NombreEnregTotal ) $_enregistrements_crees = $_apres_total - $_avant $_enregistrements_non_touches = $_apres_total - $_apres $_enregistrements_modifies = $_avant - $_enregistrements_non_touches $_etat_du_cerveau_apres_tout_ca = 🤯 (A tester, à voir si je ne me suis pas emmêlé les pinceaux…) 😅 NB : on peut aussi utiliser les horodatages de création d'enregistrement, en veillant à rester rigoureux
    2 points
  5. Jérémie Gimenez

    Accès rubrique

    L'autre solution est de régler cela dans la Sécurité, mais c'est moins sympa au niveau de l'interface, puisque l'utilisateur "limité" pourra entrer dans la rubrique et recevra un message d'alerte natif s'il tente de modifier le contenu. NB : c'est moins sympa, mais en même temps, ça peut permettre de mieux lire le contenu d'une rubrique, notamment si le texte est plus grand que l'objet rubrique. On a abordé ça il y a quelques semaines, et un autre confrère avait encore une autre solution sympa, mais que j'ai oubliée depuis… (car je ne l'utilise pas)
    2 points
  6. Philippe ROTTIER

    Accès rubrique

    Bonjour, Plus simple que d'utiliser plusieurs modèles déclenchés par script (et bonjour les mises à jour des modèles si modifications… ) est de doubler la rubrique en question en en cochant mode utilisation et en masquant l'objet selon les droits et une autre en décochant le mode utilisation et en la masquent pour les autres droits.
    2 points
  7. Bonjour, Je vois deux méthodes pour répondre à cette demande : La première consiste à journaliser les connexions à l'ouverture et à la fermeture de la base, via des scripts, pour alimenter une table avec les comptes qui ouvrent et ferment la base avec la fonction Obtenir ( NomCompte ). Un inconvénient à cette méthode : lorsqu'un utilisateur plante ou arrête brutalement FileMaker Pro, on ne sait plus facilement s'il est connecté ou non… La deuxième méthode consiste à utiliser l'Admin API de FileMaker Server. Plus fiable. https://help.claris.com/fr/admin-api-guide/ https://VOTRE_SERVEUR/fmi/admin/apidoc/#operation/clients
    2 points
  8. Bonjour, Il va falloir passer par une boucle…
    2 points
  9. Bonsoir Alsete, Mode recherche [ Pause : non ] Définir rubrique [ Recettes prévues ; "*" ] Nouvel enregistrement/requête Définir rubrique [ Dépenses prévues ; "*" ] Exécuter la recherche
    2 points
  10. Bonjour, Il se peut qu'une option de validation sur une rubrique coince (unique, non vide, autre validation...) bien à toi, Tanguy
    2 points
  11. Bonjour, Pour supprimer la clef de cryptage du fichier, vous devez utiliser l'utilitaire Developer disponible via le menu Outils > Utilitaires Developer… Si vous n'avez pas le menu Outils, vous devez au préalable l'activer via les préférences de FileMaker Pro : macOS : FileMaker Pro > Préférences… , puis onglet Général et cocher l'option Utiliser les outils avancés. Windows : Edition > Préférences… , puis onglet Général et cocher l'option Utiliser les outils avancés. Pour plus d'informations sur la clef de cryptage d'un fichier et sa suppression, je vous invite à lire cette page de l'aide de FileMaker : https://help.claris.com/fr/pro-help/content/encrypting-database-files.html?Highlight=cryptage Concernant le fait qu'à l'ouverture du fichier FileMaker Pro vous demande si vous souhaitez ouvrir le fichier local ou en ligne, vous avez, si je m'abuse, une case à cocher dans cette boîte de dialogue vous permettant d'indiquer votre choix définitif.
    2 points
  12. Pour le scénario manuel j'ai utilisé OMNIGRAFFLE voir cette discussion et la seconde. J'ai pu ainsi aboutir à un fichier capable de diriger les pas de quelqu'un pour connaître le type exact de l'album de Tintin qu'il possède et ainsi aboutir à sa valeur argus. OMNIGRAFFLE m'a permis de fabriquer mon arbre de décision et le fichier Hierarchie1.fmp12 de le traduite en FileMaker mais ce ne fut pas facile.
    1 point
  13. Merci jérémie, Je note cela Bonne journée Greg
    1 point
  14. Merci beaucoup, il s'agit alors de créer un jeu de privilège ne permettant pas de supprimer les enregistrements. Un véritable saisie des données uniquement Par défaut, "saisie des données uniquement", (mal nommée en l'occurrence) , autorise la suppression . Ce privilège n'est pas modifiable.
    1 point
  15. Bonjour Antoine, En effet, et c'est fort contrariant, FMP rejette parfois nos formules mais sans le dire. On préfère quand il nous informe de l'erreur, ce qui est le cas général, heureusement. Bon dimanche, Jérémie
    1 point
  16. tcolles

    Je bloque

    Je suis tout à fait d'accord avec @Apophis000 ce qui est problématique avec les mutlivaluées c'est que : - c'est un format propre à FileMaker et difficilement exportable-compatible vers d'autres systèmes - si il faut ajouter une valeur cela nécessite une intervention au niveau de la définition de rubriques ou du modèle alors qu'avec la gestion de la répétition via des enregistrements liés l'utilisateur a la complète maitrise via la couche des données Si toutefois vous persistez avec une multivaluée, il faut penser à ajouter dans la formule la fonction 'multivaluée' qui permet au sein des répétitions d'exploiter des appels à des rubriques non multivaluées. Date ( Mois ( Multivaluee (date début modulation ) ) + Obtenir(NombreRépétitionsCalcul) ; 1 ; Annee ( Multivaluee ( date début modulation ) ) ) exemple où la formule calcule les 1er des 12 mois suivants une date donnée Cordialement, Tanguy
    1 point
  17. Apophis000

    Je bloque

    Bonjour Déja vous voulez récupéré l'année d'un mois ... Vous pouvez re créé les date avec les fonction de date et rajouter simplement 1 pour passer au mois suivent Date ( Mois ( date début modulation )+1 ;Jour ( date début modulation ) ;Annee ( date début modulation ) ) Au lieux d'utiliser les multivalué ( un peu obsolète ) Il est préférable d'utilisée une table externe avec une table séparée pour ses dates.
    1 point
  18. C'est bon j'ai trouvé. j'ai mis 1 script sur le bouton popover avec 1 définition de variable puis une boite de dialogue pour écrire le mot de passe puis dans la rubrique du Popover la rubrique est masquée si le mot de passe ne correspond pas
    1 point
  19. On ne peut pas sélectionner du texte et le cliquer-déposer si on est en mode prévisualisation…
    1 point
  20. Merci Jérémie, Je vérifierai à mon retour de vacances
    1 point
  21. Bonjour Laurent, Il s'agit de la vue tableau. Non, elle n'est pas à l'abandon, et heureusement. Elle ne présente pas plus de lenteur que la vue liste, si on demande d'afficher les mêmes rubriques. Ce qui peut arriver, c'est qu'on appelle des rubriques de tables liées et ça en revanche, avec du volume, ça soulève des soucis de performance, aussi bien en vue liste qu'en vue tableau. Bonne journée, Jérémie
    1 point
  22. Bonsoir J'espère que ce sont pas les vrai nom ? ... Ont peu pas lier 1 à N et N à 1 avec les même tables, c'est l'un ou l'autre mais pas les deux c pas possible et inutile de tout façon . Pour vous réponde , il y a beaucoup... du coup j'ai fait les modif . Il y a plus qu'a analyser En bref , changement de lien et mise de la TE avec la table inscription Club2.fmp12
    1 point
  23. Bonsoir, Le nombre d’enregistrement trouvé juste après l’import correspond au total mis à jour + créé. Du coup, avec obtenir(nombreenregistrementtrouvé) et vos variables déjà définies, vous allez pouvoir aisément calculer le nombre de mis à jour.
    1 point
  24. La deuxième méthode proposée par @David Julot est beaucoup plus fiable, mais attention : gros risque de sécurité : il faudra malheureusement stocker le mot de passe de la console d'admin quelque part. Il faut donc faire très attention. En dehors de toutes les méthodes pour empêcher un compte sans accès intégral d'accéder à ce mot de passe, je préconiserais de développer ce mécanisme dans un système séparé : soit dans un autre fichier FileMaker encrypté, mais de préférence dans un web service totalement séparé.
    1 point
  25. Avec ma version 17 , après avoir testé, si une rubrique ( quel quel soit ) est active , si ont fait le script " Afficher enreg/requête/page [ Suivant(e) ; Sortie après dernière: Non ] " la rubrique active reste active sur l’enregistrement suivent ... par défaut je supose . Donc même pas besoin de mémorisé la rubrique active
    1 point
  26. Bonjour, Je vous propose deux exemples de scripts et la base d'exemple jointe. Premier script : Gestion erreurs [ Oui ] # Définir variable [ $jsonContacts ; Valeur: "" ] Définir variable [ $nbContacts ; Valeur: Decompte ( Contacts::uuid ) ] Si [ $nbContacts > 0 ] Activer enregistrements liés [ Afficher uniquement les enregistrements liés ; De la table : “Contacts” ; Utilisation du modèle : “Contacts” (Contacts) ] Boucle Fin de boucle si [ Definir ( $i = $i + 1 ; $i > $nbContacts ) ] Afficher enreg/requête/page [ Avec boîte de dialogue: Non ; $i ] Définir variable [ $jsonContacts ; Valeur: JSONSetElement ( $jsonContacts ; [ "[" & $i - 1 & "].civilite" ; Contacts::Civilite ; JSONString ] ; [ "[" & $i - 1 & "].nom" ; Contacts::Nom ; JSONString ] ; [ "[" & $i - 1 & "].prenom" ; Contacts::Prenom ; JSONString ] ) ] Fin de boucle Activer modèle [ modèle d'origine ; Animation: Aucune ] Fin de si Définir variable [ $jsonSociete ; Valeur: JSONSetElement ( "" ; [ "societe" ; Societes::Societe ; JSONString ] ; [ "adresse" ; Societes::Adresse ; JSONString ] ; [ "code_postal" ; Societes::CodePostal ; JSONString ] ; [ "ville" ; Societes::Ville ; JSONString ] ; [ "contacts" ; $jsonCon… ] Définir rubrique [ Societes::résultat_JSON ; $jsonSociete ] Fin de script [ Résultat de texte: ] Deuxième script : Gestion erreurs [ Oui ] # Définir variable [ $jsonContacts ; Valeur: "" ] Définir variable [ $contacts.liste ; Valeur: ExecuterSQL ( "SELECT Civilite, Nom, Prenom " & "FROM Contacts " & "WHERE uuidSociete =? " ; "" ; "" ; Societes::uuid ) ] Définir variable [ $contacts.nb ; Valeur: DecompteValeurs ( $contacts.liste ) ] Boucle Fin de boucle si [ Definir ( $i = $i + 1 ; $i > $contacts.nb ) ] Définir variable [ $contacts.donnees ; Valeur: ObtenirValeur ( $contacts.liste ; $i ) ] Définir variable [ $contacts.donnees ; Valeur: Substituer ( $contacts.donnees ; "," ; ¶ ) ] Définir variable [ $jsonContacts ; Valeur: JSONSetElement ( $jsonContacts ; [ "[" & $i - 1 & "].civilite" ; ObtenirValeur ( $contacts.donnees ; 1 ) ; JSONString ] ; [ "[" & $i - 1 & "].nom" ; ObtenirValeur ( $contacts.donnees ; 2 ) ; JSONString ] ; [ "[" & $i - 1 & "].prenom" ; ObtenirValeu… ] Fin de boucle Définir variable [ $jsonSociete ; Valeur: JSONSetElement ( "" ; [ "societe" ; Societes::Societe ; JSONString ] ; [ "adresse" ; Societes::Adresse ; JSONString ] ; [ "code_postal" ; Societes::CodePostal ; JSONString ] ; [ "ville" ; Societes::Ville ; JSONString ] ; [ "contacts" ; $jsonCon… ] Définir rubrique [ Societes::résultat_JSON ; $jsonSociete ] Fin de script [ Résultat de texte: ] Et la base exemple : Exemple tableau JSON.fmp12
    1 point
  27. Bonjour Vous pouvez donner un exemple pour mieux comprendre vos liens ? Un piste peu être ici dans ce topic
    1 point
  28. Bonjour, Je suis d'accord avec David Mais cela dépend, il est aussi possible de stocker certaines parties dans des rubriques puis de créer un json parent via calcul/ lien. Il peut y avoir dans certains cas besoin de SQL (dans FileMaker) donc à réserver aux avertis
    1 point
  29. Nous sommes fiers de vous annoncer la sortie de FMPlanner, notre add-on de gestion de ressources et d'évènements. Cet add-on utilise les dernières fonctionnalités de FileMaker Pro 19 ainsi que la célèbre bibliothèque Javascript FullCalendar 5. Pleinement fonctionnelle sur macOS et Windows, FMPlanner vous permet d'intégrer un calendrier de planification à vos solutions en quelques clics... Nul besoin d'en dire plus, venez l'essayer, nous mettons à votre disposition une version d'essai gratuite sur notre site, c'est part ici ! A bientôt, Julien IU-DATA
    1 point
  30. tu as essayé d'utiliser une autre base, une toute neuve avec juste un container?
    1 point
  31. Bonjour et un grand merci, tardif, poutr vos reponses. javais "oublié" de cliquer sur envoi pour mon message de remerciement. Très bonne journée
    1 point
  32. J'étais en train de me dire que l'on reconnaissait un professeur brillant à son aptitude à répondre aux questions avant même qu'on les lui pose. En fait, c'est pas là la cause, mais ça n'enlève rien à tes qualités pédagogiques 😀 Voilà, j'ai dé-voté et c'est revenu dans le bon ordre.
    1 point
  33. Bonsoir, Après avoir installé FilemakerGo 18 sur l'Iphone, même freeze de l'écran suite à la prise de vue. Le problème doit venir d'une option au niveau de l'Iphone mais là, je sèche... Si quelqu'un à une idée, je suis preneur. Bonne soirée. Cordialement. Laurent
    1 point
  34. Et certaines données sont-elles importées ? si oui, c'est très probablement ce que disait @Tanguy Colles
    1 point
  35. Merci Jérémie Je suis d'accord avec Fabrice. L'utilisation de la molette est source d'erreur et la recherche rapide est plus efficace que le déroulement.
    1 point
  36. Merci. Elle est bien présente en V14.
    1 point
  37. Bonjour Oui elle est partie, on gagne ainsi la place perdue sur toute la largeur de la fenêtre 🙂 On la remplace par les raccourcis au clavier 😉 PAM
    1 point
  38. Bonjour Dominique, Impossible de faire revenir cette barre (à ma connaissance). Bonne journée, Jérémie
    1 point
  39. tonio

    Evaluation (Variable)

    de la part de Christian Schmitz (MBS Plugin) FileNames on macOS are unicode decomposed. So é is stored as e and ´ as two characters. If you do replace, you have to use é with 2 unicode characters instead of é with one character. So é is unicode character 233. But é decomposed unicode character 101 for e and character 769 for accent. 76900101 See Text.ConvertUnicodeToCharacterComposition and Text.ConvertUnicodeToCharacterDecomposition
    1 point
  40. Comme si souvent ! 🙌
    1 point
  41. Bonsoir ! Je me permets de plussoyer le propos de mon collègue @Jérémie Gimenez : vous vous épargnerez bien du tracas en utilisant les fonctions de recherches « standards » de FileMaker et, avantage non négligeable, vous n’avez pas besoin de prévoir à l’avance toutes les recherches dont vous aurez peut-être besoin par la suite.
    1 point
  42. Mercie j'ai pu voir d'où venais mon erreur.
    1 point
  43. comme ca CALCUL INFERIEUR SUPERIEUR - MAXMIN.fmp12
    1 point
  44. Comme ca CALCUL INFERIEUR SUPERIEUR en liste.fmp12
    1 point
  45. Bonjour Jérémie, Si tu savais comme je commence à en avoir m..... Je crois que j'aurais dû aller regarder un bon film à la télé cet après-midi au lieu de me prendre la tête depuis ce matin...
    1 point
  46. Je pense que la formule : Definir ( $text = Liste ( "yannick = 5" ; "rolland = 6" ) ; Evaluation ( substituer ( filtre ( $text ; "1234567890-,¶") ; Char (13) ; "+" ) ) ) devrait faire l'affaire
    1 point
  47. C'est bien mystérieux et difficile sans pouvoir avoir accès aux données et à la rubrique Vous pouvez essayer à tout hasard (allez Eden!) ceci Substitute ( GetAsText ( Rubrique ) ; ["é" ; "e"] ; ["è" ; "e"] ) )
    1 point
  48. Bonjour, Cela dépend forcément de la mise en place mais au plus simple on pourrait imaginer une rubrique "coché oui/non" puis un calcul "parent" qui ferait quelque chose comme suit: Definir _resultat = 0; Si case1 = 1 ou case1 = "oui" _resultat = _resultat + champ1 FSi /* Et ainsi de suite */ FDefinir Pourriez vous partager le début de ce que vous avez fait pour voir comment faire au mieux ?
    1 point
  49. Bonjour Patricia, Oui, les fichiers avec extension .fmp12 sont ouvrables de FileMaker 12 à 19. Si on développe en FileMaker 14 et qu'on utilise une nouveauté absente en FileMaker 13, seule cette nouveauté ne sera pas fonctionnelle par l'utilisateur 13. De mémoire, FM14 n'avait pas révolutionné les choses, donc il est probable que 100% de la solution fonctionne bien dans les deux versions. Bonne journée, Jérémie
    1 point
  50. Nous voici arrivé au terme de cette série où nous allons enfin réaliser cette fameuse fonction personnalisée récursive ! Pour celles et ceux qui arrivent seulement, je propose depuis trois semaines une série sur la réalisation de fonctions personnalisées récursives. Donc, nous allons mettre en place la fonction personnalisée qui correspond au script donné la semaine dernière, à savoir une fonction qui a comme objectif d’inverser les items. Bon, pour ceux du fond qui sont pressés de partir en vacances, on fournit à la fonction une liste de valeurs (A, B, C, D) et elle devra nous retourner cette liste mais avec les items inversés (D, C, B, A). Petits rappels Pour créer une fonction personnalisée vous devez avoir le logiciel FileMaker Pro Advanced. C’est avec ce logiciel que vous allez pouvoir mettre dans votre base de données la fonction personnalisée, car elle appartiendra au fichier, ce qui permet aux utilisateurs n’ayant pas FileMaker Pro Advanced de pouvoir l’exécuter sans problème à partir d’une formule de calcul. Si vous souhaitez connaître la procédure pour la réalisation d’une fonction personnalisée, je vous recommande de lire la chronique disponible en cliquant ici. La réalisation d’une fonction récursive Pour rappel, je n’arrête pas de le rappeler, une fonction récursive est une fonction qui s’appelle elle-même pour palier le fait qu’on n’a pas d’instruction de boucle. Notre fonction devra avoir la forme suivante : InverserListe( listeATraiter ), avec : InverserListe : le nom de la fonction, que l’on retrouvera dans la liste des fonctions des formules de calcul; listeATraiter : le paramètre de la fonction, qui sera justement une liste. Deuxième petit rappel, dans FileMaker une liste de valeurs est une liste où chaque item est séparé par une retour à la ligne (symbole ¶). Voici le logigramme correspondant à la fonction que nous allons mettre en place: Et vous remarquez que j’ai ajouté deux paramètres à la fonction : i et l. Car je dois, à chaque itération de ma boucle (appel à la fonction), transmettre des valeurs transitoires : i : contient lors du 1er appel à la fonction une valeur vide et ensuite le numéro de l’item à récupérer ; l : contient la liste inversée encours de construction. Voici donc la formule de la fonction récursive : DEFINIR ( [ _L = ListeATraiter ; _i = CAS( ESTVIDE( i ) ; DECOMPTEVALEURS( _L ) ; i - 1 ) ; _lt = l & "¶" & OBTENIRVALEUR( _L ; _i ) ] ; CAS( _i ≤ 1 ; _lt ; InverserListe( _L ; _i : _lt ) ) ) Pour ceux qui veulent supprimer le premier retour chariot du résultat Car la formule précédente génère un retour chariot inutile en début de liste, mais comme je ne voulais compliquer la formule, la voici donc avec le retour chariot en moins : DEFINIR ( [ _L = ListeATraiter ; _i = CAS( ESTVIDE( i ) ; DECOMPTEVALEURS( _L ) ; i - 1 ) ; _la = OBTENIRVALEUR( _L ; _i ) ; _lt = CAS( ESTVIDE( l ) ; _la ; l & "¶" & _la ) ] ; CAS( _i ≤ 1 ; _lt ; InverserListe( _L ; _i : _lt ) ) ) C’est tout pour aujourd’hui Vous trouverez en pièce jointe à cette chronique le fichier FileMaker contenant la fonction personnalisée. En attendant la prochaine chronique, je vous souhaite à toutes et à tous une excellente semaine ensoleillée et chaude !
    1 point
×
×
  • Create New...