Jump to content

Comment télécharger TOUS les fichiers d'un champs CONTENEUR donné d'une base de données FM ?


 Share

Recommended Posts

Bonjour à toutes et tous,

Imaginons une table PERSONNES et un champ contenu PHOTO.

Comment télécharger simplement TOUTES les photos dans un dossier de mon Mac ?

Comment seront défini les noms des fichiers téléchargés ?

 

Merci à vous.

Link to comment
Share on other sites

Bonjour Abécé,

Et bien, il faudra un boucle passant sur chaque enregistrement pour en exporter la rubrique conteneur.

Le nom du fichier téléchargé sera défini par toi, dans le script : soit un nom utilisant des rubriques (par exemple Table::prenom & " " & Table::nom & $_extension), soit le nom du fichier originalement monté dans le conteneur, obtenu avec ObtenirAttributConteneur ( Table::conteneur ; "filename" )

NB : $_extension est à définir en amont, également à l'aide de ObtenirAttributConteneur ( Table::conteneur ; "filename" )

Est-ce que cela te répond ?

Link to comment
Share on other sites

  • 4 weeks later...
Posted (edited)

Bonjour @Jérémie Gimenez et @Apophis000

La solution la plus simple me conviendrait mais la sécurité est d'autant plus importante qu'il s'agit de data avec des noms de personnes.
Aussi la solution de @Jérémie Gimenez convient à mon process (quand celle d' @Apophis000 matche plus avec mon QI :-))

Ça ressemblerait à une boucle
for enregistrement = 1 to last,
then, export conteneur in tel folder ?

Vous savez où je peux apprendre à faire un script/boucle de ce type ? 

Merci de votre aide, et je suis passé dans un loooong tunnel.

Edited by Abécé
Je suis poli.
Link to comment
Share on other sites

Salut Abécé,

Content de te lire à nouveau.

il y a 2 minutes, Abécé a dit :

Vous savez où je peux apprendre à faire un script/boucle de ce type ? 

Ma foi, c'est en bouclant qu'on devient boucleron…

En gros, les étapes seront :

  • se placer sur un modèle de la table,
  • chercher les bons enregistrements,
  • se placer sur le premier,
  • faire une action (en l'occurrence un export de contenu de rubrique, ce qui implique que la rubrique soit présente et ouverte sur le modèle),
    • question à résoudre : les noms de fichiers que l'on souhaite en sortie… Seront-ils à construire en fonction de l'enregistrement ou bien à restituer tels qu'ils étaient au moment de l'insertion dans le conteneur ?
  • Fin de boucle si [ Obtenir ( NuméroEnreg ) = Obtenir ( NombreEnregTrouvés ) ],
  • passer à l'enregistrement suivant.

Ca te paraît clair ?

Jérémie

Link to comment
Share on other sites

Bonjour à tous ! 

Je me permets de rebondir sur ce sujet, vu que j'ai également tenté de faire un script pour exporter toutes les photos se trouvant dans un conteneur (il y a un peu plus de 1000 enregistrements, tous n'ont pas une photo). 

Je crois que le script marche en théorie : 

j'ai fait une boucle avec condition que la rubrique ne soit pas vide. J'ai défini une variable de chemin d'accès, avec autorisation de créer un dossier. Puis je tente d'exporter dedans et là, problème : le dossier est créé (cela fonctionne), mais j'ai une erreur numéro 800 (cf. déboggage) qui me dit que je ne peux pas créer le fichier à cet emplacement. J'ai autorisé FileMaker à accéder à la totalité de mon ordinateur, donc ce n'est pas cela. Apparemment, dans le message d'erreur il est dit que le fichier "remote:xxxx.jpg" n'a pas pu être créé. D'où ma question : est-ce possible que le problème soit lié au fait que la base de données n'est pas locale mais est située sur un serveur distant ? Si oui, y a-t-il une manière de contourner ce problème, et le cas échéant, laquelle ? 

 

Link to comment
Share on other sites

Bonsoir @NoémiV, de quelle manière définis tu la variable de chemin d'accès ?

J'aurais plutôt imaginé un chemin commençant par file: ou filemac:/ ou filewin:/

Avec le calcul de définition de la variable on pourra peut-être y voir la cause du problème


bien à toi,

Tanguy

 

Link to comment
Share on other sites

Le plus simple je pense est de coller mon script

 

Obtenir le chemin du dossier [ Autoriser la création de dossiers; $Folder; Titre de la fenêtre de dialogue : "Exporter vers dossier"; Emplacement par défaut : Obtenir ( CheminBureau ) ]

Afficher enreg/requête/page

[ Premièr(e) ]

Boucle
Si 
[ Not EstVide ( T003 US::T003 Photo travail ) ]

Définir variable [ $Path; Valeur :$Folder & T003 US::T003 Photo travail ]

Exporter contenu de rubrique [ T003 US::T003 Photo travail; “$Path”; Créer des dossiers :Non ]

Afficher enreg/requête/page

[ Suivant(e); Sortie après dernière ]

Sinon
Afficher enreg/requête/page

[ Suivant(e); Sortie après dernière ]

Fin de si

Fin de boucle

Est-ce que du coup le "Obtenir (CheminBureau)" ne convient pas pour ce que je veux faire ?

 

Link to comment
Share on other sites

Il y a 1 heure, NoémiV a dit :

le dossier est créé

 

Il y a 1 heure, NoémiV a dit :

est-ce possible que le problème soit lié au fait que la base de données n'est pas locale mais est située sur un serveur distant ?

Bonjour Noémi,

Si tu supprimes à chaque fois le dossier et que le script le recrée, c'est qu'il n'y a pas de souci lié à l'emplacement sur serveur. (NB : ces exportations de rubriques fonctionnent parfaitement avec un fichier hébergé)

De même, si le dossier se crée, c'est que le chemin est correct, du moins jusqu'au nom du fichier lui-même.

--> Quel loup y a-t-il dans la variable, au niveau du nom de fichier lui-même ? As-tu bien une extension valable ?

Link to comment
Share on other sites

il y a 1 minute, NoémiV a dit :

Définir variable [ $Path; Valeur :$Folder & T003 US::T003 Photo travail ]

Du coup, même question que @tcolles peut-on voir ce que cela donne dans le visualiseur de données ?

il y a 2 minutes, NoémiV a dit :

Est-ce que du coup le "Obtenir (CheminBureau)" ne convient pas pour ce que je veux faire ?

En principe, si…

Link to comment
Share on other sites

ça fonctionne !!!!! Bon le nom de mes fichiers commence à chaque fois par un "remote/xxx" mais c'est un détail qui se règle rapidement ! 

Merci beaucoup à vous deux  !!!

Link to comment
Share on other sites

Bonsoir,

Peut-être en utilisant attributconteneur pour aller chercher le nom du fichier au lieu de laisser FileMaker totalement libre dans son interprétation à partir du conteneur ?

Link to comment
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
Reply to this topic...

×   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...
 Share

  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...