Jump to content

guillo

Membres
  • Content Count

    31
  • Joined

  • Last visited

About guillo

  • Rank
    25

Profile Information

  • Gender
    Homme
  • Location
    Paris
  • Interests
    Sciences sociales, art contemporain

FileMaker Profile

  • FM Conférence
    Un jour j'irai !
  • FM
    FMP 12 Advanced
  • OS
    Mac
  • Certification
    --Non certifié--
  • FBA
    --Non membre--

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

  1. guillo

    guillo

  2. J'ai finalement reproduit le développement de Tom sur ma base de données. Mais d'abord j'ai refait le développement dans un fichier nouveau, histoire de bien saisir tout avant de travailler sur ma base. Cela m'a aussi permis d'entrevoir des futures développements, notamment, pour résoudre le fait que je ne peux pas pour l'instant enregistrer différentes études. Je me pencherai plus tard là-dessus, pour l'instant, ce développement réponds à la question initiale. Merci Tom, I Liked ! J'annexe le fichier : tee.fmp12 tee.fmp12 tee.fmp12 tee.fmp12 tee.fmp12 tee.fmp12 tee.fmp12 tee.fmp12 tee.fmp12 tee.fmp12 tee.fmp12
  3. Bonjour Tomassia_fm, Pour répondre à ta question, ma bdd contient actuellement 68 événements et 1427 personnes. La table étude me permet de sélectionner jusqu'à trois événements simultanés parmi les 68 afin de les comparer. Plusieurs autres événements de la bdd seront sélectionnés et comparés ultérieurement. Donc je dois probablement trouver un script. Je suis en train d''étudier ton développement, il fonctionne très bien, je le trouve très élégant, et je veux penser que je peux m'en servir. J'ai donc essayé de l'utiliser mais je n'arrive pas à remplacer les constantes 1, 2 et 3 qui servent à configurer le filtre de la quatrième table externe avec des rubriques calculées. Je vais continuer à penser mais si tu as une idée concernant le script à développer, je suis preneur. Je trouve ton développement assez fascinant, je n'avais jamais eu l'occasion ou la nécessité d'employer de liens de tout à tout (X) ni d'employer des filtres sur les tables externes. C'est une découverte pour moi ! Je te renvoi le fichier avec plusieurs adaptations qui se rapprochent davantage de mon développement actuel. À bientôt j'espère ! te3.fmp12 te3.fmp12 te3.fmp12 te3.fmp12 te3.fmp12 te3.fmp12 te3.fmp12 te3.fmp12 te3.fmp12 te3.fmp12 te3.fmp12 te3.fmp12 te3.fmp12 te3.fmp12 te3.fmp12 te3.fmp12
  4. Bonjour les collègues, Je n'ai pas réussi à trouver sur le forum comment accomplir ma mission actuelle: comparer et filtrer des données à partir de tables externes. Concrètement, je veux comparer les données de trois événements différents. Je me sers d'un modèle (études) et d'une table (études) destinés à sauvegarder les comparaisons. Sur la table études, trois clés ont été nommées A, B et C. Celles-ci me permettent de sélectionner trois événements à comparer. Une fois que le choix des événements est opéré, le modèle affiche face à face un certain nombre de données spécifiques à chaque événement: nom, date, lieu et nom de participants. Je veux préciser les noms des participants, alors j'ai créé trois tables externes avec la liste des participants de chaque événement. Jusque là, tout fonctionne parfaitement. Et maintenant je bloque je veux obtenir une liste avec les personnes qui apparaissent dans les trois événements (et donc, dans les trois tables externes). Voici une photo de la structure Sur le modèle "études", les trois tables externes affichent les informations de trois OT colorées en jaune, à avoir, Participants A (à partir du contexte : "Evenement A"), Participants B (à partir du contexte "Evenement B") et Participants C (à partir du contexte "Evenement C"). Sur cette quatrième table externe du modèle, encore vide, je veux récupérer les personnes qui participent dans les trois événements, mais je n'arrive pas à trouver la formule adéquate. Quelqu'un aurait une idée de comment je peux m'y prendre? Comment dire à filemaker de comparer les personnes qui participent dans les trois événements et n'afficher que ceux qui sont présents partout? En espérant vos lumières, G.
  5. Chers Gaston et ericire, Merci à vous deux. Je n'avais pas pu vous répondre car je me suis pas mal occupé de compléter mes données pour exploiter ces merveilleux calculs que j'ai mis en place avec vos conseils. J'ai suivi la méthode de Gaston en faisant quelques adaptations. Tout d'abord, au lieu de créer la rubrique zk = 1 dans ma table intermédiaire, je l'ai créé dans la table de personnes. J'ai aussi créé la rubrique de calcul dans la table principale (événement), et non pas dans la table intermédiaire. Autrement dit, pour l'instant, je ne me sers pas de la table intermédiaire pour faire les calculs.… Je vous livre une explication si jamais cela peut intéresser quelqu'un. Je travaille sur trois tables: 1. Événement, 2. Personne, 3. Table intermédiaire. Je vais donc calculer combien d'hommes, femmes et trans sont présents dans mon événement. Création d'une rubrique sur ma table 2. Personne. Ja vais me servir de référence d'une rubrique GenrePersonne rattachée à une liste de valeurs avec trois options par défaut: "Homme", "Femme" et "Trans". Pour calculer combien de personnes marquées "hommes", "femmes", "trans" ou sans aucune mention sont présentes dans mon événement, j'ai créé quatre rubriques nouvelles. Chacune portera la valeur numérique de 1 lorsque la condition est remplie, et 0 lorsqu'elle ne l'est pas. zk1_Homme = If ( GenrePersonne = "Homme" ; 1 ; 0 ) / Si la personne est un homme, cette rubrique vaut 1. Sinon, elle vaut 0. zk1_Femme = If ( GenrePersonne = "Femme" ; 1 ; 0 ) / Si la personne est une femme, cette rubrique vaut 1. Sinon, elle vaut 0.zk1_Trans = If ( GenrePersonne = "Trans" ; 1 ; 0 ) / Si la personne est un trans, cette rubrique vaut 1. Sinon, elle vaut 0.zk1_Vide = If ( IsEmpty (GenrePersonne) ; 1 ; 0 ) / Si rien n'a été marqué, cette rubrique vaut 1. Sinon, elle vaut 0. Ensuite, sur ma table 1. Événement, j'ai créé le même nombre de rubriques pour calculer le nombre total de zk1 présents dans l'événement. Supposons qu'il y a quatre personnes dans l'événement dans l'ordre suivant: un homme, une femme, une trans et une personne de genre inconnu. La formule Sum va faire la somme des valeurs de zk1 (j'explicite entre parenthèses ce que va utiliser filemaker pour son calcul) Sum ( zk1_Homme ) / Somme de l'ensemble de valeurs zk1_Homme (1+0+0+0…) = total 1Sum ( zk1_Femme ) / Somme de l'ensemble de valeurs zk1_Femme (0+1+0+0…) = total 1Sum ( zk1_Trans ) / Somme de l'ensemble de valeurs zk1_Trans (0+0+1+0…) = total 1Sum ( zk1_Vide ) / Somme de l'ensemble de valeurs zk1_Vide ( 0+0+0+1…) = total 1 J'ai réalisé le même exercice pour calculer le nombre de français et d'étrangers… Je vais certainement élaborer les mêmes rubriques avec la méthode SQL qui m'intéresse spécialement, puisque je veux "apprendre" à m'en servir de SQL, car je le connais très mal pour l'instant, d'où le choix que j'ai fait pour la méthode proposée par Gaston. Merci merci !!!!
  6. Bonjour les ami-e-s, Je commence à créer mes premiers calculs pour analyser les données recueillies dans une base de données et je m'aperçois que je possède des terribles lacunes dans ma compréhension des calculs. Actuellement je souhaite analyser une population enregistrée dans une table liée. J'aimerais par exemple compter le nombre d'hommes, de femmes, le nombre de gens qui sont nés en France, le nombre de gens qui sont nés à l'étranger, ou par exemple, le nombre de gens qui sont nés en France et décédé à l'étranger, etc. La liste de critères est longue. J'ai donc intérêt à comprendre le fonctionnement des calculs sur filemaker, plutôt qu'à obtenir une réponse ponctuelle. De toute façon, c'est toujours bien de commencer avec le problème ponctuel, donc, tel que indiqué dans le titre, je veux calculer le nombre d'hommes et le nombre de femmes à partir de l'information enregistrée dans une table liée. Mon premier réflexe fut créer deux rubriques différentes en répétant la même formule. Rubrique Nombre d'hommes : Count ( PeopleGender = "Homme" ) Rubrique Nombre de femmes : Count ( PeopleGender = "Femmes" ) Filemaker m'envoie un message d'erreur "an expression was found where a field alone is needed" (une expression a été trouvée qui n'accepte qu'un seul champ). À la base, la fonction calcul que j'utilise ici me sert déjà à calculer le nombre total de personnes enregistrées dans la table liée: Rubrique Nombre total de personnes : Count ( People ). Cette rubrique fonctionne bien. Pour le détail, actuellement j'obtiens une population de 366 personnes. J'ai essayé d'ajouter un deuxième paramètre dans le fonction calcul, mais je ne comprends pas tout à fait à quoi ça sert. La formule à deux paramètres est la suivante : Count ( People ; PeopleGender ="Homme" ). J'obtiens pour résultat le nombre 2, alors que je devrais obtenir environ 300.... Voici quelques infos supplémentaires sur la structure de la db. J'ai une table pour un évènement, une table pour les personnes et une table intermédiaire pour les relier (servant donc à enregistrer les personnes qui participent dans un évènement). Les trois rubriques de calcul sont actuellement situées dans la table "évènement". Voilà ce premier problème. Je serais très reconnaissant d'entendre vos réponses et commentaires, notamment si vous pouvez me conseiller un document où je puisse apprendre davantage à employer les calculs en filemaker. Amitiés, G.
  7. Merci Rodolf, Ta réponse est merveilleuse. Tu m'as donné les éléments clés pour arriver à la solution. J'ai reétudié le contexte avec une meilleure comprehension des fonctions utilisées. Voici mon cheminement : Tout d'abord, j'ai compris pourquoi la variable de mon exemple était globale: car l'information passe d'un script à l'autre, justement, comme tu disais ci-dessus. En effet, tout à l'heure j'avais oublié de décrire le contenu du premier script, celui qui "ouvre la fenêtre secondaire". Mais j'ai remarqué que ce premier script finalement fais beaucoup plus qu'ouvrir une fenêtre... Ensuite, pour mieux comprendre le contexte, je suis revenu vers les graphes de liens de la solution de démarrage. J'ai alors observé quelque chose qui m'avais échappé avant et qui s'avère essentiel. Le lien entre les deux tables (factures et clients dans la solution de démarrage) était établit à partir d'une clé primaire et une rubrique concordante calculée à partir de la fameuse variable globale. Je suis donc revenu sur ma base de données et j'ai également rédéfini la rubrique concordante dans ma table intermédiaire à partir d'un calcul automatique sur la variable $$ID_ThisArtwork. Finalement, j'ai corrigé les deux scripts. J'accuse encore quelques zones vides dans ma compréhension de l'ensemble, mais j'ai l'impression de comprendre l'essentiel... Voici le premier script : Set Field[Artworks::C_Recherche rapide;""] /*Ceci demande de mettre à zéro la rubrique destinée à la barre de recherche*/Set Variable[$$ID_ThisArtwork; Value:TI_Exhibition_Artworks::Rubrique concordante ID_Artwork] /*Voici la première apparition de la variable globale. La valeur est "remplie" avec une rubrique de la table intermédiaire qui ne possède encore aucune valeur*/New Window[Name"Artwork Selector"; Style:Dialog] /*Ouvre une fenêtre secondaire*/Go To Layout ["Artwork Selector" (ArtworksExhibited] /*Ceci charge le modèle de recherche d'œuvres d'art dans la fenêtre secondaire*/Go to Record/Request/Page [First] Et voici le deuxième script : Set Variable [$$ID_ThisArtwork; Value:ArtworksExhibited::ID Artwork] /*La première chose que va faire ce script est donner une valeur à la variable globale. Cette valeur est le numéro de l'ID de la table œuvre d'art*/Close Window [Current Window] /*On n'a plus besoin de la fenêtre secondaire, donc on la ferme*/Set Field [TE Exhibition_Artworks::Rubrique concordante ID Artwork; $$ID_ThisArtwork] /*On va remplir une information qui restait encore "vide" dans la table intermédiaire, la valeur de la rubrique concordante avec l'ID Artwork. Cette valeur proviens ici de la variable globale qu'on vient de remplir dans la première ligne de ce script */Commit Records/Request [No Dialog] /* Et pour terminer, on valide l'enregistrement */ Merci encore Rodolph !!!
  8. Bonjour Chers et Chères Développeu-rs-ses, Ce problème apparaît sur ma base de données qui est consacrée à des expositions d'art. J'ai trouvé un défaut que je m'apprête à corriger : les (x) œuvres d'art réunies dans une exposition (1) étaient enregistrées à travers un lien direct (voir ci-dessous le premier lien violet). J'ai compris que je devais utiliser une table intermédiaire dans ce même but (voir ci-dessous la deuxième série de liens violets), sinon, je ne sais pas comment enregistrer l'ensemble d'expositions (x) où une même œuvre d'art est exposée (1). Afin de peupler l'information de cette table intermédiaire, j'essaie de concevoir un script en suivant l'exemple d'une solution de démarrage de FM. La solution de démarrage de fm est destinée à faire des factures. La fonction qui m'intéresse apparaît lorsqu'on choisit à partir d'une fenêtre secondaire un client parmi les clients enregistrés dans la base. Pour le déploiement de cette fenêtre existe un premier script. À l'intérieur de cette fenêtre, un deuxième script permet de cliquer sur le client souhaité, le sélectionner et l'enregistrer dans la TE d'origine (script 2). J'ai créé le premier script qui semble fonctionner correctement pour ouvrir la fenêtre secondaire (de recherche), mais je n'arrive pas à développer le deuxième script qui va me permettre de sélectionner l'œuvre d'art qui m'intéresse à partir d'un clic. Le script 2 est declenché à partir d'un bouton invisible qui est situé tout au long de la rangée de la table. Le contenu de mon deuxième script qui ne fonctionne pas est celui-ci : Set Variable [$$ID_ThisArtwork; Value:Exhibition_Artworks::ID_Artwork concordant]Go to Layout ["Data from this Exhibition" (ThisExhibition)Set Field [ArtworksExhibited::ID_Artwork concordant; $$ID_ThisArtwork]Commit Records/Requests [No dialog] Je ne comprends pas comment les instructions "Set Variable", "Set Field" et "Commit Records/Requests" agissent. Je me limite à suivre l'exemple de la solution de démarrage, ce qui m'empêche d'identifier l'origine du problème et le résoudre. Si quelqu'un peut m'aider, j'apprécierais aussi bien des commentaires sur le script en question, ou sur les trois instructions que j'utilise ici sans comprendre convenablement.
  9. Bonjour Simon, Malheureusement, ces derniers éléments ne permettent pas encore de faire marcher la synchronisation chez moi. Quelque chose bloque encore au moment de l'export. La première anomalie se présent juste lorsque j'appui le bouton qui déclenche le script "export" depuis l'Ipad. Un message d'erreur s'affiche : "Error: Muxpo.fmp12 could not be created. Use a different name or make more room on this device. OK". Le dernier mot de ce message, "OK", est par ailleurs un bouton que je peux appuyer. Ce faisant, une fenêtre de la messagerie s'ouvre avec tout ce qu'il faut, ce qui me donne de l'espoir que tout va bien : l'adresse du sendtodropbox, une copie à ma messagerie pour faire le suivi, un fichier Muxpo.fmp12 en annexe. Puisque je reçois effectivement un fichier Muxpo dans ma messagerie, j'opte pour vérifier si ce fichier possède les dernières modifications réalisées depuis l'Ipad. Mais, malheureusement, ce n'est pas le cas. Ce qui veut dire que je peux bien attacher le fichier, mais je n'arrive pas à attacher celui sur lequel j'ai travaillé depuis mon Ipad. Pourtant je crois que mon script est conforme au plan (en capture d'écran)... Une dernière chose. Je pense que l'opération d'envoi vers la dropbox possède quelque chose de troublant, puisque le fichier de départ, celui qui est importé à travers le fichier import et son bouton à script unique, n'est pas directement concerné par l'opération sendtodropbox. En fait, sendtodropbox créé un nouveau dossier sur la Dropbox qui s'appelle "Applications" et c'est à l'intérieur de ce dossier que je retrouve le fichier renvoyé via sendtodropbox. En capture d'écran, vous pouvez voir les deux fichiers. En effet, la version finale du fichier de départ est à 11h20, alors que la version renvoyée via sendtodropbox est à 11h25. Je serais très reconnaissant si vous parvenez à trouver l'erreur et à me donner des pistes pour le corriger... Feeling hopeless
  10. D'accord, J'ai écrit le script et je peux désormais remplacer ma bdd via le bouton situé dans le fichier import. Par contre, l'export du fichier via sendtodropbox ne marche pas encore pour moi. Je vois bien le fichier attaché partir depuis le dispositif mobile, une copie du message arrive dans ma messagerie personnelle, mais rien se passe sur la dropbox. Est-ce que tu pourrais m'aider à détecter l'erreur? Mon script export (en anglais) : Set Variable Name: $Lenomdufichier Value: "Lenomdufichier.fmp12" Repetition: 1 (par défaut) Send Mail Send via: e-mail client Create: one email using data from the current record To: "Mon compte sendtodropbox" CC: ma messagerie perso Subject: "Lenomdufichier" Attach file: $Lenomdufichier Close file [Current file] Par ailleurs, je ne me sers pas encore pour l'instant du bouton "import" situé dans la BDD, seulement du fichier "import" proprement dit. Pourquoi ce bouton est-il important? Quelle est sa fonction? G.
  11. Bonjour simjoubert, Merci de votre partage, j'aimerais bien utiliser cette solution dans ma bdd ! J'avais vu un projet similaire ici (http://www.seedcode.com/filemaker-oauth-dropbox-part1/), mais votre solution me semble plus aboutie. Malheureusement je n'arrive pas à voir clairement le script de votre fichier import.fmp12 ci-dessus, car la photo est trop petite. Si j'ai bien compris, pour appliquer votre solution, il suffit de travailler avec quatre ingrédients : un fichier "import.fmp12" où l'on créé un script import un fichier "notedefrais.fmp12" où l'on créé deux scripts import et export un compte dropbox un compte sur sendtodropbox.com J'ai ouvert le compte dropbox (ingrédient 3) et placé la bdd, où j'ai préalablement créé les deux scripts import et export détaillés dans votre explication (ingrédient 2). J'ai également ouvert le compte sendtodropbox (ingrédient 4). Il me reste uniquement travailler sur le fichier import.fmp12 (ingrédient 1). Pourriez-vous m'expliquer davantage le fonctionnement de ce fichier ? Pourriez-vous retranscrire le script ou mettre une capture d'écran plus grande? Est-ce que ce fichier est stocké dans l'appareil mobile ou dans le compte dropbox ? Est-ce qu'il possède uniquement un script ou possède aussi une table avec des données à l'intérieur ? Je vous remercie d'avance et reste en attente de vos explications, Guillo
  12. Merci à tous les deux... ça marche maintenant. Je vais devoir étudier ma théorie des liens pour apprendre à le faire à nouveau.
  13. Et oui, en mettant les guillemets le travail est fait ! Merci par ici...
  14. Bonjour fc60, Est-ce que tu peux détailler ta solution, ou m'aider à trouver une solution pour un problème similaire? J'essaie de créer deux listes de valeurs conditionnelles dans un contexte avec trois tables (Exposition, Musée, Salle) et deux modèles (exposition et musée). Dans le modèle "Musée", j'introduit l'information concernant le musée mais aussi l'information des salles d'exposition, à travers notamment une table externe. Les deux listes conditionnelles sont également alimentées par l'information introduite à partir du modèle "Musée". Ces deux listes s'appellent : "liste Musée" et "liste Salles". Ensuite, dans le modèle "Exposition", je vais enregistrer l'information de l'exposition. Je veux récupérer l'information des deux listes. D'abord, pour choisir le musée dans lequel se réalise l'expo, ensuite pour choisir la salle du musée dans laquelle se réalise l'expo. Je n'arrive pas à faire fonctionner les deux listes comme je veux. Le problème se pose dans la deuxième liste, qui fonctionne seulement lorsqu'elle "inclut toutes le valeurs". Ce que je n'arrive pas à faire, c'est créer un filtre pour choisir uniquement parmi les salles correspondantes à chaque musée. Je joins un fichier que j'ai construit exprès pour résoudre ce problème, avec les rubriques minimales. Lien et liste conditionnelle.fp7 Lien et liste conditionnelle.fp7 Lien et liste conditionnelle.fp7 Lien et liste conditionnelle.fp7 Lien et liste conditionnelle.fp7 Lien et liste conditionnelle.fp7 Lien et liste conditionnelle.fp7 Lien et liste conditionnelle.fp7 Lien et liste conditionnelle.fp7 Lien et liste conditionnelle.fp7 Lien et liste conditionnelle.fp7 Lien et liste conditionnelle.fp7 Lien et liste conditionnelle.fp7 Lien et liste conditionnelle.fp7
  15. Bonjour Kool_Taz, Merci beaucoup de ton aide. Tu as raison. Sans une table intermédiaire entre œuvres et auteurs, je devais multiplier les occurrences de table pour chaque auteur supplémentaire. Je voyais un avantage dans cette solution, le fait de pouvoir conserver une vue panoramique de l'information à partir d'un seul modèle de travail. Néanmoins, si une œuvre avait plus de 5 auteurs, il aurait fallu retourner sur le développement pour ajouter une nouvelle occurrence de table... J'ai eu un peu de mal à faire fonctionner la table intermédiaire entre œuvres et auteurs, et j'avais trouvé cette autre alternative, certes fonctionnelle, mais erronée en fin de comptes. Le graphe et les conseils de Magalie m'ont encouragé à revenir sur cette table intermédiaire,et finalement elle fonctionna.
×
×
  • Create New...