Jump to content
  • 0
Thémis

Création d'un chemin dans Insérer fichier

Question

Bonjour,

Je cherche à rédiger un script qui me permette d’insérer un document PDF dans une TE en le sélectionnant manuellement dans une autre table de ma solution où sont stockés tous les documents PDF. J’ai bien inclus le pas de script Insérer fichier dans mon script mais je n’arrive pas à créer le chemin exact vers cette autre table.

J’apprécierais vos lumières.

Merci.

Share this post


Link to post
Share on other sites

12 answers to this question

Recommended Posts

  • 0

Bonjour Thémis,

S'il s'agit de transposer le contenu d'un conteneur dans un autre conteneur, il suffit de copier/coller ce contenu (ce qui est possible par script), ou encore mieux, de faire un Définir rubrique.

Après, on peut se poser la question de la multiplication des petits pains. Si le fichier visé est du type Mode-d-emploi.pdf, et qu'on veut le faire apparaître à différents endroits, on n'a pas forcément envie que le même fichier PDF soit inséré distinctivement dans différents conteneurs de différents enregistrements. Alors, on cherchera à lier différents enregistrements à un seul enregistrement comportant le document.

Mais si cette question ne se pose pas, je ne vois pas mieux que Définir rubrique.

NB : le glisser-déposer fonctionne aussi d'un conteneur à l'autre ET peut engendrer une création d'enregistrement dans une table externe dont l'OT est liée par un lien acceptant la création.

En espérant avoir bien saisi ta question…

Jérémie

Share this post


Link to post
Share on other sites
  • 0

Bonjour Jérémie, merci de votre réponse.

Je veux justement éviter de transposer le contenu d'un conteneur dans un autre conteneur. 

il y a 13 minutes, Jérémie Gimenez a dit :

on cherchera à lier différents enregistrements à un seul enregistrement comportant le document

C'est exactement le résultat que je recherche. Précisément, la manière dont je fonctionne est la suivante : la première fois que je veux insérer un PDF dans la TE d'un enregistrement, un script insère le document à partir d'un répertoire sur le disque dur de mon ordinateur et crée un nouvel enregistrement dans une table DOC__Documents où sont stockés tous les PDF. Si j'ai besoin du même PDF dans un autre enregistrement, mon idée était d'insérer dans la TE de cet autre enregistrement un simple lien vers la table DOC__documents. Est-ce faisable ? Est-il possible de créer un chemin d'accès vers une table de la BD où on se trouve ?

Je ne comprends pas clairement votre suggestion de lier le nouvel enregistrement à l'enregistrement où se trouve déjà le PDF, mais peut-être est-ce la meilleure solution ? Pouvez-vous élaborer ?

Share this post


Link to post
Share on other sites
  • 0
il y a 31 minutes, Thémis a dit :

chemin d'accès

Alors, nous sommes en base de données relationnelles, ceci ne s'appelle pas un chemin d'accès (ça, c'est pour accéder à un fichier hors de FMP) mais un lien.

Comment s'appelle la table dont certains enregistrements ont besoin d'être reliés à tel ou tel DOC__Documents ?

Et à quoi correspond chaque document ?    (j'avais pris en exemple un mode d'emploi, mais quelle est la réalité)

La réponse sera plus claire quand j'aurai ces 2 éléments…

A te lire,

Jérémie

Share this post


Link to post
Share on other sites
  • 0

D'accord.

il y a 6 minutes, Jérémie Gimenez a dit :

Comment s'appelle la table dont certains enregistrements ont besoin d'être reliés à tel ou tel DOC__Documents ?

c'est la table PER__Personnes.

il y a 6 minutes, Jérémie Gimenez a dit :

Et à quoi correspond chaque document ?

Si vous parlez de la nature des documents, il peut s'agir de documents personnels (ex. : un certificat de naissance) ou d'autres types (ex. : un article de journal ou une photo). Si vous parlez de la forme des documents, ils seront la plupart du temps en format PDF, mais pourront aussi être en format .jpg, etc. 

Share this post


Link to post
Share on other sites
  • 0
il y a 3 minutes, Thémis a dit :

nature des documents

Oui, c'est bien cela. Ca permet souvent de mieux comprendre la structure logique.

Donc, les documents de type identité ne seront jamais attachés à plusieurs PER__Personnes, mais en revanche, un article de journal, par exemple, pourra être rattaché à plusieurs.

C'est un cas de relation n-n. Il faut une table intermédiaire, contenant l'identifiant de la personne et l'identifiant du document. Dans ce cas, j'appellerais cette table intermédiaire DOP__DocPersonne.

 

Exemple :

Martine, personne d'ID 45, possède le passeport d'ID 132 --> on crée un enregistrement DOP avec id_personne = 45 et id_document = 132

Martine se voit attribuer un article de presse d'ID 211 --> on crée un autre enregistrement DOP avec id_personne = 45 et id_document = 211

Julien, personne d'ID 63, s'intéresse aussi à l'article de presse 211--> on crée un autre enregistrement DOP avec id_personne = 63 et id_document = 211

 

Dans cette logique, on peut facilement distinguer des documents personnels et non personnels. On peut avoir une case à cocher "type_generique" pour les documents qui ne sont pas personnels. De là, on peut facilement demander la liste des documents génériques et les attribuer à plusieurs personnes distinctes.

Dans notre exemple, je suis sur la fiche de Julien, je clique sur un bouton "Attribuer document existant", qui m'ouvre une fenêtre flottante avec la liste des documents génériques, bien rangés.

Je scrolle jusqu'à l'article 211 et là, je clique sur un bouton "Attribuer ce document à la personne actuelle", et le script va faire la création du DOP nécessaire et refermer la fenêtre flottante.

On verra alors l'article 211 figurer dans la liste des documents de Julien.

 

Par expérience, un conseil : NE PAS tenter de gérer cela grâce à la création d'enregistrement par lien. C'est plus complexe et plus restreint à la fois.

NB : je pratique le tutoiement de confrérie, j'espère que cela ne te gêne pas…

Jérémie

Share this post


Link to post
Share on other sites
  • 0

Merci. J'essaie de digérer tout cela et je te reviens à ce sujet (le tutoiement ne me gêne pas). Voici tout de même une première remarque, au cas où elle t'amènerait à modifier ton approche :

il y a 6 minutes, Jérémie Gimenez a dit :

les documents de type identité ne seront jamais attachés à plusieurs PER__Personnes,

Ça dépend de ce qu'on entend par "document de type identité". Si on inclut dans cette catégorie disons un certificat de mariage, alors ce document sera forcément attaché à deux personnes.

Share this post


Link to post
Share on other sites
  • 0
il y a 6 minutes, Thémis a dit :

certificat de mariage

Bien vu !   🤓

Alors, dans ce cas, dans la table intermédiaire DOP, on peut avoir la rubrique "rôle" ou bien "en tant que".

Ainsi, le même certificat de mariage sera relié à une personne en tant que "épouse", à une autre personne en tant que "époux" ou "épouse" ou "épou" (car on est non binaire, dans la famille) 😉

Un livre pourra être relié à un auteur, à un lecteur, à un correcteur, etc.

Je pense que tu remarques la similarité de situation avec la notion de rôle dans le cinéma.

Ne reste plus qu'à passer tout cela en script…

Share this post


Link to post
Share on other sites
  • 0

Bonjour,

Merci encore à Jérémie, j’ai réussi à écrire les scripts qui me permettent d’avoir accès à plusieurs documents relatifs à une personne au moyen d’une TE dans la fiche de cette personne et d’une table intermédiaire et ça fonctionne.

Je bute toutefois sur une difficulté. J’ai créé un script pour transférer vers la table DOC__Documents des documents qui se trouvent dans une TE d’une autre table. Le transfert fonctionne bien. Mais c’est la dernière partie du script qui coince.

S’il y a plus d’un document dans la TE de l’autre table d’où j’exécute le script, le script transfère tous les documents dans la table DOC__Documents. Il crée aussi le nombre d’enregistrements requis dans la table intermédiaire mais attribue à chaque nouvel enregistrement créé dans cette table le dernier id document récupéré de la table DOC__Documents. Comment faire pour attribuer à chaque nouvel enregistrement de la table intermédiaire le bon id document ? Il manque visiblement un ou des éléments dans la boucle, mais je n’arrive pas à voir quoi.

Voici la partie du script en question :

# Récupérer les id de la fiche personne et du document

Activer modèle [‘‘Documents PDF’’ (DOC__Documents); Animation :Aucune]

Définir variable [$IDdocument; Valeur : DOC__Documents :: IDDoc]

Définir variable [$IDfiche; Valeur : DOC__Documents :: IDfiche]

# Aller à la table intermédiaire DOP__DocPersonne pour créer les enregistrements nécessaires

Définir variable [$compteur; Valeur : 1]

Activer modèle [‘‘Fiches documents’’ (DOP__DocPersonne); Animation :Aucune]

Boucle

Fin de boucle si [$compteur = $NbDocuments + 1] (la variable $NbDocuments est créée au début du script et correspond au nombre de documents qui étaient stockés dans la TE de départ)

              Nouvel enreg./requête

              Définir rubrique [DOP__DocPersonne :: IDficheFk; $IDfiche]

              Définir rubrique [DOP__DocPersonne :: $IDdocumentFk; $IDdocument ]

Définir variable [$compteur; Valeur : $compteur + 1]

Fin de boucle

Merci de m’éclairer.

Share this post


Link to post
Share on other sites
  • 0

Bonjour Thémis,

Tel que présenté ici, je ne vois pas le moment où l'on passe d'un document à l'autre, donc la variable $IDdocument est toujours la même.

En fait, la boucle doit porter sur les documents.

  • je suis dans les x documents reliés à une fiche
  • j'ai précédemment créé une autre fiche dont l'identifiant est $IDfiche, et dans laquelle je veux reproduire le même jeu de documents
  • je boucle à l'intérieur de ces x documents
    • et dans la boucle, pour chacun, je fais un nouveau DOP (ce qui ne requiert pas de boucle, juste un aller retour DOC <-> DOP)

Est-ce bien cela l'objectif ?

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...

  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...