Jump to content

Puimoisson04

Membres
  • Content Count

    3933
  • Joined

  • Last visited

  • Days Won

    72

Everything posted by Puimoisson04

  1. Bonsoir, Pas de problème pour supprimer un père ou une mère si on l'a créé par erreur. Juste qqs lignes de script à rajouter à grands coups de Si et de boite de dialogue et en utilisant le lien Id (et non le lien CleMagique). Le principe, toujours déclenché à la modification de Reproducteur. Si (Reproducteur = Non). Si une rubrique liée père ou mère (sur l'Id) existe Boite de dialogue "Voulez vous supprimer ce père/cette mère avec les boutons Supprimer/Annuler… Si le choix de la boite de dialogue est Supprimer -> Supprimer la fiche liée. Je peux faire un exemple si vous ne vous en sortez pas
  2. La clé magique sert à créer des enregistrements dans une autre table sans quitter la table "source". Sur le principe de son fonctionnement, je vous renvoie au site et aux explications de Fabrice son "inventeur". Pour renseigner plusieurs rubriques de l'enregistrement créé, il suffit de rajouter des lignes dans le script qui deviendra qqchose comme (pour la seule partie qui renseigne les rubriques de l'enregistrement créé dans le cas d'un mâle) : Definir rubrique (OT de la table Pere liée par la clé magique::Nom ; Rub Nom de la table source) Definir rubrique (OT de la table Pere liée par la clé magique::NumLOF ; Rub NumLOF de la table source) Definir rubrique (OT de la table Pere liée par la clé magique::NumPuce ; Rub NumPuce de la table source) Definir rubrique (OT de la table Pere liée par la clé magique::ADN ; Rub ADN de la table source)
  3. Bonjour, En espérant avoir à peu près compris le problème, une solution avec un déclencheur de script et une clé magique. Dans l'exemple joint, on ne renseigne qu'une rubrique de Pere ou Mere à partir de la table "source", mais la clé magique permet de passer autant d'infos que l'on veut. Creation.fmp12.zip
  4. Puimoisson04

    Fonction SI

    S'il faut un résultat variable, alors la fonction CAS est plus appropriée. Cette fonction passe en revue des conditions et renvoie le résultat de la première condition remplie (ou un résultat par défaut si aucune condition n'est remplie). Pour votre question, ça donnerait quelque chose comme : Cas ( EstVide (RubTest) ; Valeur de Rub automatique ; //La condition et son résultat si cette condition est remplie Valeur de la RubTest ) //Résultat par défaut si la rubrique test n'est pas vide.
  5. Puimoisson04

    Fonction SI

    On ne doit pas parler de la même chose ? EstVide.fmp12.zip
  6. Puimoisson04

    Fonction SI

    Bonjour, Ce n'est pas tant le Si qu'il faut regarder, mais la fonction EstVide. Si ( EstVide ( RubÀTester) ; Résultat ), renvoie le résultat si la rubrique à tester est vide, mais ne renvoie rien si la rubrique contient 0.
  7. Bonsoir, Les comptes et autorisations permettent de fixer des conditions pour pouvoir avoir accès à un modèle, un enregistrement, une rubrique… C'est l'arme absolue, mais au début c'est un peu compliqué à paramétrer. Rajouter une requête ne nécessite que 3 lignes de script (Mode Recherche, Définir rub., Restreindre les enregistrements trouvés). Vous pouvez en faire un script "dédié" et l'appeler à la toute fin des différentes opérations. Bon courage
  8. Bonjour, Deux pistes. Les comptes et autorisations. Un script qui, au lancement de la recherche, rajoute l'Id du commercial comme critère de recherche.
  9. Votre table externe est basée sur une occurrence de table des heures et non sur une occurrence de table de la Table intermédiaire. Vous avez oublié de renseigner l'IdHeures (ce qui flingue votre liste de valeurs). Rq. Un identifiant doit être unique et non modifiable. Si vous choisissez un identifiant par calcul, il faut cocher la case "Ne pas remplacer… bla bla" pour être sûr que cet identifiant ne puisse pas être modifié. Non, je n'ai pas dupliqué les tables, mais leurs occurrences (ce n'est pas obligatoire, mais ça facilite la compréhension et le suivi du développement quand on y revient des semaines ou des mois plus tard). Une table, ce sont les données. Une occurrence de table c'est un "contexte", lié à un modèle. C'est à dire la manière dont on accède aux données d'une table dans un modèle donné. Autre remarque, vous avez besoin d'une table intermédiaire dans le cas d'une relation de n à n. Si une semaine est attribuée à un mois et un seul, (relation de n à 1) vous n'avez pas besoin de cette table intermédiaire. Pour ces notions qui sont la base du développement, je vous conseille de passer qq heures sur un tutoriel, c'est un investissement plus que rentable. heures travail eurial_r.fmp12.zip
  10. Votre rubrique source du lien (Article de la table Factures) n'est pas renseignée. Mais si vous chercher à faire une facture avec plusieurs articles, votre structure n'est pas bonne. Une facture concerne plusieurs articles et un article peut figurer dans plusieurs factures. C'est ce que l'on appelle une relation de n à n que vous gérez avec une table intermédiaire. Voici le principe. Au passage, évitez les espaces, les caractères accentués et spéciaux dans les noms des rubriques ou des tables. Sans titre.fmp12.zip
  11. Bonjour, Les rubriques "source" et "cibles" sont-elles renseignées ? L'autorisation de création d'enregistrements à travers le lien est-elle activée ? Les rubriques de la TE correspondent-elles bien à l'occurrence de table de la table externe ? Bref, plusieurs causes possibles…
  12. Bonjour, Ou, comme FMP va s'arrêter au premier critère correspondant rencontré : Cas ( valeurdemarubrique <=2 ; 1 ; valeurdemarubrique <=5 ; 2 ; valeurdemarubrique <=10 ; 3 ; résultat par défaut )
  13. Bonjour, Et quel est le problème (coller un texte rtf ne demande rien de particulier) ?
  14. Bonjour, Les différences entre FMP et une solution autonome sont listées dans l'aide : https://fmhelp.filemaker.com/help/15/fmp/fr/#page/FMP_Help%2Fdifferences-runtime-application.html
  15. Alors là ! Que vous dit le debugger ? Peut-être avez-vous changé le nom du fichier ou de la liste de valeurs des langues ? En reprenant le principe vous devriez trouvez ce qui cloche. 1. Dans la table IFP__InterFonctionPersonnel, on a un enregistrement par couple personne/langue avec une rubrique texte FiltreCible à autoentrée calculée 1¶langue. 2. Dans la table FIL__Filtre, une rubrique globale texte, avec une liste de valeur des langues, liée = à FiltreCible. Dans FIL__Filtre, on veut que si aucune langue n'est cochée, la TE FIL->IFP affiche tous les enregistrements de IFP, mais que si une ou plusieurs langues sont cochées, seuls les enregistrements correspondants à cette(ces) langue(s) s'affichent. 3. Par défaut la rubrique Filtre_g est égale à 1. On voit alors à travers le lien tous les enregistrements de IFP puisque toutes les rubriques FiltreCible contiennent 1. 4. Si on coche une ou plusieurs langues, le script efface la valeur 1, ne laissant que la(les) langue(s) cochées. On ne voit plus alors à travers le lien que les enregistrements de Fonctions correspondant aux langues cochées dans Filtre_g puisque la rubrique cible contient la langue. 5. Et le script remet la rubrique Filtre_g à sa valeur par défaut (1) si on décoche toutes les langues. Le script est activé à la modification de Filtre_g. Si la modification de Filtre_g entraîne l'absence de valeur (le SI du script avec EstVide, si aucune langue n'est cochée), le script définit Filtre_g avec 1. Sinon, (le Sinon), le script définit la rubrique Filtre_g avec les seules valeurs comprises dans la liste de valeurs des langues. La fonction ElementsListeValeurs demande le nom du fichier (FiltreRecherche) et le nom de la liste de valeurs (Langues). Ex. Aucune langue n'est cochée, Filtre_g = 1. On coche Italien, la rubrique FIltre_g contient alors 1¶Italien. Cete modification déclenche le script. La rubrique n'etant pas vide, le script va réaliser le SINON du script et filtrer Filtre_g avec les valeurs de la liste des valeurs Langues (et supprimer le 1 ui ne figure pas dans cette liste de valeurs). En espérant que ces explications vous aident…
  16. Bonjour, Si, l'exemple fonctionne. Il fait appel à un déclencheur de script et des fonctions ajoutés au fil du temps aux versions successives de FMP. Le pb. vient peut-être de là ? Quelle version de FMP utilisez vous ?
  17. Ou je n'ai pas compris, ce qui est tout à fait possible, ou un filtre par lien résout bien la question ? FiltreRecherche.fmp12.zip
  18. Bonjour, J'ai ça qui traîne dans mes essais. Ici pour une recherche multicritère par script ou liens, mais qui peut le plus peut le moins… RechMultiCriteres.fmp12
  19. Bonjour, Peut-être qqchose comme ça avec des TE ? TablesReservation.fmp12.zip
  20. Bonsoir, Si votre plan est fixe (toutes les tables et un code couleur ou du texte pour dire si une table est libre ou réservée), des tables externes peuvent faire l'affaire. Si le plan doit évoluer en fonction des réservations, un webviewer et un peu de code dans une rubrique calculée sont une autre solution. Tout dépend surtout de ce que vous voulez obtenir et quelle actualisation de votre plan vous souhaitez.
  21. Bonjour Pour s'affranchir de l'année, une solution est une rubrique calculée DateRecherche, résultat Date, du type Jour (DateReelle) & "/" & Mois(DateReelle) & "/" & "2000" Une recherche dans cette rubrique sur l'intervalle JourDebut/MoisDebut/2000…JourFin/MoisFin/2000 vous trouvera les enregistrements souhaités. C'est scriptable à partir d'une ou deux rubriques pour les jour/mois de début et de fin.
  22. Bonsoir, Pour moi, sans hésiter, une table dédiée SymptomeEtCaractère, à mon sens plus simple à mettre en place, à gérer et à modifier (rajout/modification de symptômes et/ou caractères). Si ça peut vous aider, voici un ex. pour un objectif un peu différent (identifier une plante), mais avec un raisonnement je pense similaire (des caractères de différentes parties de la plante). Apiaceae.fmp12.zip
  23. Bonjour, Vous avez un pb de conception. Si un membre peut enseigner plusieurs branches et qu'une branche peut être enseignée par plusieurs membres, il vous faut une table intermédiaire qui "liste" ces combinaisons membre/branche. Ici votre lien IdFonction/IdMembre relie des choux et des carottes (et, au passage, vous avez deux identifiants pour une fonction, et toutes les deux modifiables, ce qui n'est très orthodoxe non plus) . Ensuite, une fois une structure correcte mise en place (je vous conseille au passage d'adopter une règle de nommage qui permette de mieux comprendre les relations dans chaque modèle), vous avez en gros trois possibilités pour créer un enregistrement dans une table depuis une autre. - Définir les éléments à créer depuis un modèle de la table source, activer un modèle de la table cible, y créer l'enregistrement, le renseigner, puis revenir au modèle initial. - Passer par une table externe (en y autorisant la création d'enregistrements liés). - Passer par une "clé magique" (technique bien documentée dans le forum). À vrai dire pour le moment je n'ai pas compris ce que vous chercheriez à faire dans votre exemple (créer un enrigistrement dans quelle table ? à partir de quelle table externe ?
  24. Bonjour, Un lien depuis votre champs de saisie vers la table des traductions. Traduction.fmp12.zip
×
×
  • Create New...