Aller au contenu

Kitcreanet

Membres
  • Compteur de contenus

    7
  • Inscription

  • Dernière visite

À propos de Kitcreanet

  • Rang

  • Date de naissance 16/05/1970

Profil général

  • Genre
    Homme
  • Lieu
    Loiret (45)

Profil FileMaker

  • FM
    11
  • OS
    WIN XP, MAXOSx LION
  • FBA
    --Non membre--

Visiteurs récents du profil

Le bloc de visiteurs récents est désactivé et il n’est pas visible pour les autres utilisateurs.

  1. Kitcreanet

    Un Autre Rien

    Sympa !
  2. Kitcreanet

    Gestion D'erreur Et Emplacement Des Actions De Scripts - Résultats Changent

    Merci beaucoup pour ces éclaircissements !
  3. Kitcreanet

    Truc De Fou ! Dupliquer Enregistrement + Enregistrements Liés

    AARRRGGHHHHH !!!! Il y avait une erreur terrible dans mon script !!!! ça ne fonctionnait correctement QUE SI ET SEULEMENT SI je faisais mes duplications à la suite de manière chronologique ! Dans le cas contraire, patatras ! ça marche pas ! Mais j'ai trouvé la parade et je vous livre ici le fruit de mon analyse en publiant à nouveau mon script mais avec le correctif expliqué ! En vert ce qui est ok et qui n'a pas bougé En rouge, la correction apportée et le commentaire Le script corrigé : # Je récupère la clef primaire de mon enregistrement source Définir variable [ $source; Valeur :DOC_PUBLICATIONS::_zpk_DOC ] #Je duplique l'enregistrement source Dupliquer enreg./requête # Je récupère la clef primaire de mon enregistrement source Définir variable [ $destination; Valeur :DOC_PUBLICATIONS::_zpk_DOC ] #J'ignore cet enregistrement nouvellement créé pour revenir sur mon enregistrement source Ignorer enregistrement Ici cette instruction est mauvaise car "ignorer enregistrement ne me fait pas revenir en arrière mais me positionne sur le dernier enregistrement de ma table PUBLICATION. Ainsi si je traite les enregistrement à la suite de manière chronologique, ça fonctionne, mais si je suis sur l'enregistrement n°12 alors que la base en contient 24, "ignorer l'enregistrement" me positionne non pas sur le 12 mais bien sur le 24... à la place je fais une requête pour me positionner sur le bon enregistrement, c'est facile puisque j'ai mémorisé au préalable la clef primaire de cet enregistrement. Ma requête va donc chercher l'enregistrement de la table PUBLICATION qui a comme clef primaire le contenu de la variable $source... Executer la requête [rétablir] #J'active tous les enregistrements liés (les contributeurs de ma publication) Activer enregistrements liés [ De la table : “CEL_CONTRIBUTEURS”; Utilisation du modèle : “_DOC_popup_Nouveau_Contributeur” (CEL_CONTRIBUTEURS) ] [ Afficher uniquement les enregistrements liés ] #Je m'assure qu'il y a au moins un enregistrement lié à dupliquer Si [ Decompte (CEL_CONTRIBUTEURS::_zpk_CEL) ≠ 0 ] #J'affiche un modèle me permettant de traiter les enregistrements liés Activer modèle [ “_DOC_popup_Nouveau_Contributeur” (CEL_CONTRIBUTEURS) ] #Je trie, Trier enregistrements [ Ordre de tri défini : CEL_CONTRIBUTEURS::_zpk_CEL; croissant ] [ Rétablir; Sans fenêtre ] #j'affiche le premier... Afficher enreg/requête/page[ Premièr(e) ] #Je démarre ma boucle Boucle #Je duplique l'enregistrement Dupliquer enreg./requête #Je mets à jour la clef étrangère pour assurer la liaison Définir rubrique [ CEL_CONTRIBUTEURS::_zkf_DOC; $destination ] #Je passe à l'enregistrement suivant, si c'est le dernier je sors de ma boucle Afficher enreg/requête/page [ Suivant(e); Sortie après dernière ] Fin de boucle #Je retourne sur le modèle qui gère les Publications Activer modèle [ “_DOC_FICHE_PUBLICATION” (DOC_PUBLICATIONS) ] # je lance une requête pour afficher le document source initial Afficher enreg/requête/page [ $ID ] [ Sans fenêtre ] Executer la requête [rétablir] Cette dernière requête portera sur le contenu de la variable $destination...
  4. Kitcreanet

    Truc De Fou ! Dupliquer Enregistrement + Enregistrements Liés

    Re-Bonjour à tous ! En fait, je crois que je viens enfin de trouver une réponse à mon problème. Après avoir maintes fois repris mon script, je crois que j'ai trouvé la solution finalement ! Mon script fonctionne parfaitement mais je suis avide de vos éventuels commentaires pour l'améliorer ou pour me signaler un "loup" qui se serait caché dans mes lignes de codes et qui serait susceptible de corrompre mes résultas ou pire mes données... Voici le script commenté : # Je récupère la clef primaire de mon enregistrement source Définir variable [ $source; Valeur :DOC_PUBLICATIONS::_zpk_DOC ] #Je duplique l'enregistrement source Dupliquer enreg./requête # Je récupère la clef primaire de mon enregistrement source Définir variable [ $destination; Valeur :DOC_PUBLICATIONS::_zpk_DOC ] #J'ignore cet enregistrement nouvellement créé pour revenir sur mon enregistrement source Ignorer enregistrement #J'active tous les enregistrements liés (les contributeurs de ma publication) Activer enregistrements liés [ De la table : “CEL_CONTRIBUTEURS”; Utilisation du modèle : “_DOC_popup_Nouveau_Contributeur” (CEL_CONTRIBUTEURS) ] [ Afficher uniquement les enregistrements liés ] #Je m'assure qu'il y a au moins un enregistrement lié à dupliquer Si [ Decompte (CEL_CONTRIBUTEURS::_zpk_CEL) ≠ 0 ] #J'affiche un modèle me permettant de traiter les enregistrements liés Activer modèle [ “_DOC_popup_Nouveau_Contributeur” (CEL_CONTRIBUTEURS) ] #Je trie, Trier enregistrements [ Ordre de tri défini : CEL_CONTRIBUTEURS::_zpk_CEL; croissant ] [ Rétablir; Sans fenêtre ] #j'affiche le premier... Afficher enreg/requête/page[ Premièr(e) ] #Je démarre ma boucle Boucle #Je duplique l'enregistrement Dupliquer enreg./requête #Je mets à jour la clef étrangère pour assurer la liaison Définir rubrique [ CEL_CONTRIBUTEURS::_zkf_DOC; $destination ] #Je passe à l'enregistrement suivant, si c'est le dernier je sors de ma boucle Afficher enreg/requête/page [ Suivant(e); Sortie après dernière ] Fin de boucle #Je retourne sur le modèle qui gère les Publications Activer modèle [ “_DOC_FICHE_PUBLICATION” (DOC_PUBLICATIONS) ] # je lance une requête pour afficher le document source initial Afficher enreg/requête/page [ $source ] [ Sans fenêtre ] Et voila !!!!!!
  5. Bonjour à tous ! Avant toute chose, j'ai parcouru le forum en long et en large, j'ai vu plusieurs solutions qui sont censées répondre à ma question, mais je ne parviens pas à réaliser une opération, malgré les dizaines de conseils que j'ai pu lire... Alors soit je suis complètement crétin, soit, il y a un truc que je ne comprend pas quelque part... Ca m'agace parce que je parviens à faire des trucs bien plus compliqués que ça mais ÇA, ça me résiste depuis plusieurs jours déjà... Il est certain que cette demande a été et sera de nouveau faite par de nombreuses personnes et qu'il sera, à n'en pas douter, très utile pour tout le monde de placer dans ce post le code pour effectuer la manipulation qui consiste à dupliquer une table et ses enregistrements liés... Si un généreux contributeur voulait bien rédiger un pas à pas, ce serait génial ! Je dois gérer des publications et des contributeurs. Mon schéma est on ne peut plus simple : J'ai une table "Publication" et une table "Contributeurs". Pour chaque publication, je peux avoir un ou plusieurs contributeurs. Le lien est classique : Clef_Primaire_Publication vers Clef_Etrangère_Contributeurs Lorsqu'une publication est créée, et que les contributeurs sont créés également, j'ai besoin de Dupliquer le tout pour faire une nouvelle version de la Publication dans une autre langue. Les contributeurs sont les mêmes. Et voici en gros ce que je tente de faire, sans y parvenir ... Je stocke en variable la clef_primaire de la publication en cours "$source" Je duplique la publication Je stocke en variable la clef_primaire de la nouvelle publication "$destination" Je reviens sur la publication d'origine (requête sur clef_primaire=$source) J'active les enregistrements liés et je tente de les dupliquer en injectant dans la clef_etrangère le contenu de $source... Et je n'y arrive pas. En fonction des différents scripts que j'ai utilisé, les résultats sont variables, mais aucun ne me permet de faire ce que je veux... Quelqu'un pour m'aider ? Pour info, je travaille sous Filemaker 11 Advance. Merci d'avance BEAUCOUP !!!
  6. Bonjour à tous ! Je poste cette petite question pour une "analyse" plus que pour une solution. J'ai corrigé ce qui ne fonctionnait pas dans mon script et ça fonctionne maintenant, mais je ne comprend pas "POURQUOI" ça ne fonctionnait pas avant ma correction, donc, c'est ici que je vous sollicite... Quelqu'un pourrait-il m'éclairer sur ces deux points ? Point numéro 1 : Une définition de variable au mauvais endroit stoppe mon script... étrange. J'effectue une requête pour sélectionner certains enregistrements. Si je place ma définition de variable ici (en rouge) le script n'exécute pas les "[autres actions]"... Gestion erreurs [ Oui ] Exécuter la requête [ Requêtes .../... ] Définir variable [ $$abc; Valeur :Obtenir ( NombreEnregTrouvés ) ] Si [ Obtenir ( DernièreErreur ) ≠ 0 ] Ouvrir boîte dial. person. [ Titre : "PAS DE RESULTAT"; Message : "PAS DE RESULTAT"; Boutons : “OK” ] Exécuter script [ “mon_script” ] Sinon autres actions [Retour au Menu principal] ... Fin de si En revanche, si je déplace ma définition de variable après le "sinon", ça fonctionne Gestion erreurs [ Oui ] Exécuter la requête [ Requêtes .../... ] Si [ Obtenir ( DernièreErreur ) ≠ 0 ] Ouvrir boîte dial. person. [ Titre : "PAS DE RESULTAT"; Message : "PAS DE RESULTAT"; Boutons : “OK” ] Exécuter script [ “mon_script” ] Sinon Définir variable [ $$abc; Valeur :Obtenir ( NombreEnregTrouvés ) ] autres actions [Retour au Menu principal] ... Fin de si Et la question, c'est POURQUOI ? ;-)))) Point numéro 2 : Pour ce point là, c'est juste une question de "vocabulaire" je pense... Lorsque l'on effectue une requête et qu'aucun enregistrement n'est trouvé, il est d'usage de prévenir l'utilisateur avec une boîte de dialogue... On utilise pour ça la gestion d'erreur. Ce qui me chiffonne, c'est que je trouve plusieurs syntaxes différentes pour effectuer ce contrôle : Si [ Obtenir ( DernièreErreur ) ≠ 0 ] Si [ Obtenir ( DernièreErreur ) > 0 ] Laquelle est la meilleure ? Et qui pourrait m'expliquer pourquoi ça fonctionne dans les deux cas ? Parce que, "différent de zéro" et "plus grand que zéro", dans mon esprit, c'est pas vraiment la même chose ;-) Un Grand merci à celles et ceux qui pourront me répondre ! Bonne et heureuse année à tous !
  7. Kitcreanet

    Comment Executer Une Recherche Complete

    Hello Ma première contribution a ce forum j'espère être a la hauteur ;-) Pour ta recherche "complète", sachant que chacun de tes champs est un critère utilisable, si tu ajoutes toutes les fonctionnalités offertes par filemaker (recherche Multi - critères, Multi - requête, en inclusion ou exclusion) simplement passer en mode recherche devrait suffire.
×