Jump to content
  • 0
ypicot

Enregistrer les champs d'un export (sans script)

Question

Bonjour à tous

 

Mémoriser les champs d'un export (pour pouvoir refaire l'export plus tard, avec les mêmes champs dans le même ordre) est facile : il suffit de créer un script.

Oui mais voilà : dans mon appli, l'éditeur de scripts n'est pas accessible à l'utilisateur. Or, mes utilisateurs souhaitent sortir régulièrement différents exports (typiquement 3-4 par mois, similaires mais pas forcément identiques d'un mois à l'autre).

 

Le scénario souhaité est le suivant :

- l'utilisateur filtre ses enregs à partir du joli modèle que j'ai fait rien que pour lui.

- il clique sur un bouton, qui affiche le pop-up regroupant les exports pré-enregistrés qui ont déjà été réalisés

- si l'export souhaité existe, il le lance

- si l'export souhaité n'existe pas, il le créé (avec une petite description)

 

Existe-t-il un plug-in (ou une solution à laquelle je n'ai pas pensé) qui permette d'enregistrer plusieurs exports ?

 

Merci par avance

 

Yvan

Share this post


Link to post
Share on other sites

Recommended Posts

  • 0

???

Edited by Philippe ROTTIER

Share this post


Link to post
Share on other sites
  • 0

Quel type d'export envisages-tu ?

Si tu souhaites un export Excel, une "ruse bidouille" est envisageable.

Dans ton application, l'export se fait à partir d'un modèle. Pour le besoin de l'explication qui suit appelons ce modèle "Modele".

Chaque utilisateur de l'application est référencé dans une table utilisateur avec son nom de compte et un numéro unique.

A partir de ton modèle "Modele" en mode modèle, tu le dupliques en "Modele copie" que tu passes en affichage tableau,  

Tu dupliques autant de fois que d'utilisateur ce modèle qui va s'incrémenter en "Modele Copie2", "Modele Copie3"...

Pour faire l'export, chaque utilisateur cliques sur le bouton "Exporter" qui calcule le modèle ("Modele Copie & Utilisateur::numéro) et chaque utilisateur se retrouve sur un écran tableau qui lui est propre.

L'avantage du mode formulaire, c'est que chacun peut configurer à sa guise les rubriques affichées et l(ordre de ces rubriques.

Il ne reste plus qu'à exporter le tout en Sauvegarder en Excel.

Ce n'est évidement pas simple pour les utilisateurs mais ça peut dépanner.

Share this post


Link to post
Share on other sites
  • 0

Heuuu... Je n'ai pas trouvé comment dupliquer (et encore moins ouvrir en mode création) un modèle par script. D'après ce que j'ai compris, il faut passer par la gestion des modèles.

Par contre, je crois que j'ai trouvé comment autoriser la modification d'un formulaire et pas d'un autre. Il faut passer par une gestion des menus assez fine (par défaut, les utilisateurs sont en "menu minimum", ce qui grise le bouton "modifier modèle"), mais cela doit être jouable.

 

Merci pour cette piste intéressante.

 

Yvan

Share this post


Link to post
Share on other sites
  • 0

Bonsoir,

Une façon assez simple de permettre à l'utilisateur d'exporter à sa guise telle ou telle rubrique et de les placer dans l'ordre qu'il souhaite est de lui donner accès au format d'affichage tableau.

Tu mets sur un modèle (en mode modèle) toutes les rubriques potentiellement exportables. En format d'affichage tableau, en mode utilisation, grâce au petit bouton modifier en haut à droite ou bien en faisant un clic droit sur la rubrique et en choisissant masquer dans le menu contextuel, l'utilisateur affiche/masque les rubriques; il les déplace en glissant les colonnes...et puis grâce à l'action "fichier > Enregister/envoyer en > Excel", les données sont exportées avec les paramètres qu'il a choisi.

Par ailleurs, donner accès à un modèle et pas un autre, permettre la modification du modèle par l'utilisateur,...se règle plus dans la sécurité que dans la gestion des menus personnalisés.

Pour en savoir plus sur le format d'affichage tableau : 

 

 

 

 

Share this post


Link to post
Share on other sites
  • 0

C'est tout à fait ça, mais je préfère aller au modèle par script que par la sécurité.

Un petit exemple ultra simplifié.

_Produit.fmp12

Share this post


Link to post
Share on other sites
  • 0
Quote

mais je préfère aller au modèle par script que par la sécurité

En FileMaker, il est possible d'aller au modèle (cochez la bonne réponse )

O Par sécurité

O Par habitude

O Par script

O Par contumace

;-)

 

Qu'entends tu par aller au modèle par la sécurité ? Au moyen de la sécurité, il est possible de déterminer si un utilisateur peut voir, éditer un modèle...cela n'a rien à voir avec la navigation entre modèle

 

 

Share this post


Link to post
Share on other sites
  • 0
Il y a 10 heures, tcolles a dit :

Par ailleurs, donner accès à un modèle et pas un autre, permettre la modification du modèle par l'utilisateur,...se règle plus dans la sécurité que dans la gestion des menus personnalisés.

C'est par contumace, :crying:

J'avais compris que tu créais des privilèges d'accès spécifiques à chaque utilisateur pour n'accéder qu'à un modèle qui lui est destiné.

Par contre, pour gérer le droit de modifier les colonnes : affichage, masquage et ordre c'est OK.

Share this post


Link to post
Share on other sites
  • 0

Désolé la réponse tardive, j'ai eu pas mal de lait sur le feu...

En fait, chaque utilisateur peut créer un ou plusieurs modèles, auxquels tous les autres utilisateurs ont accès. Donc pas de problème de droits d'accès de ce coté-là.

Pour info, j'utilise déjà le mode tableau (mais de façon beaucoup plus primaire que dans la vidéo) quand j'ai des utilisateurs qui sont hélas très marqués par excel et ne veulent pas trop de changement.

Philippe, ta solution ne permet pas hélas d'enregistrer la structure de l'export (ce qui fait parti de mes besoins), mais je te remercie pour l'effort.

Merci tcolles pour cette vidéo, mais as-tu l'autorisation de la personne qui présente les tableaux (un certain Tanguy je-sais-pas-quoi) pour diffuser la vidéo ? (ok, je sors...)

 

Yvan

 

Share this post


Link to post
Share on other sites
  • 0

Qu'appelles-tu la structure de l'export ? Après on verra comment l'organiser.

Share this post


Link to post
Share on other sites
  • 0

En gros, Alex veut créer un export. Il créé donc un modèle, dans lequel il choisit des champs, qu'il ajoute (ou enlève). Il peut partir d'un modèle existant (un "modèle modèle") comme tu le suggères (ce qui est une excellente idée). Par exemple, il va créer un export "adresse", contenant uniquement les données postales des clients. Béa peut également créer un export de son coté, différents de celui d'Alain (concernant le CA du mois de chaque client). 

Bien sûr, Alex, Béa et Chris (un troisième larron) peuvent, par la suite, utiliser l'un ou l'autre des modèles pour reproduire l'export sans redéfinir les champs à chaque fois.

Yvan

Share this post


Link to post
Share on other sites
  • 0

Les utilisateurs sont-ils obligés  de voir le modèle  qu'il exporte ?

Je partirais par la fin, on veut un export xls, mais à par la solution de tanguy, il n'est pas possible d'enregistrer les rubriques d'exports dans la fonction Sauvegarder en Exel.

Donc je me tourne vers  "export contenu rubrique."

Un modèle de choix de rubrique ( case à cocher).

une possibilité d’enregistrer les choix dans une Table.

Une rubrique calcul qui concatène les rubriques choisies séparées par des points virgules.

un export en Csv. 

Share this post


Link to post
Share on other sites
  • 0

Ou ... tout d'un coup la lumière m'est apparue  en pensant à Tanguy   :bien:

La Vitrtuel list !!

Même principe que mon post précédent, mais au lieu de faire une rubrique concaténée, il faut faire une recopie des rubriques choisies dans la table VirtuelList et exporter celle ci en EXEL.

:rolleyes:

 

Share this post


Link to post
Share on other sites
  • 0

J'ai repris l'exemple. Avec sauvegarder en Excel, les rubriques et leur ordre sont différents selon les écrans. Donc, il faut que tes utilisateurs puissent accéder à la création et la modification des écrans tout en ne pouvant pas modifier les écrans de travail de ton application. 

Mais hélas, créer un modèle ne peut pas se réaliser par script, ça serait trop simple... donc je t'ai fait une séparation données interface. Le fichier interface s'appelle impressions et les utilisateurs ont tous les droits pour créer et modifier les modèles mais pas les rubriques. Dans les données, c'est l'outil de travail et les droits sont restreints.

PS : Faire un export Excel comme indiqué par Tanguy (principe que j'utilise beaucoup) est loin d'être à la portée d'un simple utilisateur, hélas !

 

 

_Produit2.fmp12

Impressions.fmp12

_Produit2.fmp12

Impressions.fmp12

_Produit2.fmp12

Impressions.fmp12

_Produit2.fmp12

Impressions.fmp12

_Produit2.fmp12

Impressions.fmp12

_Produit2.fmp12

Impressions.fmp12

_Produit2.fmp12

Impressions.fmp12

_Produit2.fmp12

Impressions.fmp12

_Produit2.fmp12

Impressions.fmp12

_Produit2.fmp12

Impressions.fmp12

_Produit2.fmp12

Impressions.fmp12

_Produit2.fmp12

Impressions.fmp12

_Produit2.fmp12

Impressions.fmp12

_Produit2.fmp12

Impressions.fmp12

Share this post


Link to post
Share on other sites
  • 0

Merci Philippe,

Je viens d'apprendre un truc, je connaissais "Exporter enregistrements", mais je n'avais jamais essayé "Sauvegarder en Excel” qui permet d'utiliser un modèle pour choisir les rubriques à exporter :

Capture d’écran.jpg

 

Pour ma part, j'utilise la stratégie suivante : une dizaine d'export Excel déjà préformatée (sans dialogue) et un export détaillé avec boite de dialogue qui permet de choisir exactement ce que l'on veut exporter.

Pour cela, toutes les rubriques à exporter sont présentes sur le modèle de l'export, mais elles sont masquées en étant en blanc sur fond blanc. Cela donne pas mal de souplesse, mais ne permet pas de réutiliser un export déjà formaté par l'utilisateur. L'avantage de la solution de Philippe c'est qu'elle permet de réutiliser le même export façonné par l'utilisateur.

 

5836b8e68de4e_Capturedcran.jpg.1fec9ba3790b076f0fc3d4d4ab806782.jpg

5836b8e68de4e_Capturedcran.jpg.1fec9ba3790b076f0fc3d4d4ab806782.jpg

5836b8e68de4e_Capturedcran.jpg.1fec9ba3790b076f0fc3d4d4ab806782.jpg

5836b8e68de4e_Capturedcran.jpg.1fec9ba3790b076f0fc3d4d4ab806782.jpg

5836b8e68de4e_Capturedcran.jpg.1fec9ba3790b076f0fc3d4d4ab806782.jpg

5836b8e68de4e_Capturedcran.jpg.1fec9ba3790b076f0fc3d4d4ab806782.jpg

5836b8e68de4e_Capturedcran.jpg.1fec9ba3790b076f0fc3d4d4ab806782.jpg

5836b8e68de4e_Capturedcran.jpg.1fec9ba3790b076f0fc3d4d4ab806782.jpg

5836b8e68de4e_Capturedcran.jpg.1fec9ba3790b076f0fc3d4d4ab806782.jpg

5836b8e68de4e_Capturedcran.jpg.1fec9ba3790b076f0fc3d4d4ab806782.jpg

5836b8e68de4e_Capturedcran.jpg.1fec9ba3790b076f0fc3d4d4ab806782.jpg

5836b8e68de4e_Capturedcran.jpg.1fec9ba3790b076f0fc3d4d4ab806782.jpg

5836b8e68de4e_Capturedcran.jpg.1fec9ba3790b076f0fc3d4d4ab806782.jpg

Share this post


Link to post
Share on other sites
  • 0
8 hours ago, Philippe ROTTIER said:

Avec sauvegarder en Excel, les rubriques et leur ordre sont différents selon les écrans. Donc, il faut que tes utilisateurs puissent accéder à la création et la modification des écrans tout en ne pouvant pas modifier les écrans de travail de ton application.

En format d'affichage tableau, l'utilisateur peut modifier l'ordre des colonnes et leur visibilité sans pour autant avoir le droit de modifier le modèle

Ensuite la commande Sauvegarde en Excel reprend l'ordre des rubriques (colonnes) et leur affichage tel que dans le format tableau

 

Cordialement,

Tanguy

Share this post


Link to post
Share on other sites
  • 0

Oui, mais il faut dans ce cas précis que les utilisateurs puissent accéder au mode modèle. Créer de nouveaux modèles les nommer les modifier alors que dans le reste de l'application le mode modèle est inaccessible. De plus dans ces écrans, il faut aussi un menu modèle adapté et ce y compris sur les écrans à venir.

Je reconnais que le problème que pose Yann n'a rien d'évident, mais c'est un chalenge intéressant.

Share this post


Link to post
Share on other sites
  • 0
3 hours ago, Philippe ROTTIER said:

Oui, mais il faut dans ce cas précis que les utilisateurs puissent accéder au mode modèle.

Au risque d'insister ... :-) Non. 

Les utilisateurs peuvent modifier un tableau sans avoir accès au mode modèle. Le bouton "modifier" en haut à droit est accessible. La seule chose nécessaire pour ce faire : dans le profil utilisateur  " commandes disponibles"doit être mis sur "Toutes". Cela laisse la liberté à l'utilisateur de mettre les rubriques qu'il veut comme il veut.

Share this post


Link to post
Share on other sites
  • 0

Et attention au port du casque, c'est important pour la sécurité.

 

394813Tintin261.jpg

Share this post


Link to post
Share on other sites
  • 0

rebonjour,

Au risque de paraître décaler mais il me semble que la demande était de pouvoir sauvegarder les choix d'export de rubriques. 

J'ai utilisé le principe de la VirtuelListe à la fois pour choisir les rubriques et pour l'export.

Reste à définir les noms de rubriques si besoin. :)

 

Export.fmp12

Export.fmp12

Export.fmp12

Export.fmp12

Export.fmp12

Export.fmp12

Export.fmp12

Export.fmp12

Export.fmp12

Export.fmp12

Export.fmp12

Export.fmp12

Export.fmp12

Export.fmp12

Share this post


Link to post
Share on other sites
  • 0

Dans ce cas comment pourrait-ils réaliser un nouvel export qui n'existe pas ?

Le 12/11/2016 à 23:00, ypicot a dit :

- si l'export souhaité n'existe pas, il le créé (avec une petite description)

Donc, je suis parti avec l'idée que les utilisateurs pouvaient "bricoler" des modèles dans un fichier interface sans données donc sans risque théoriques mais pour se faire un nouveau modèle en mode tableau, il faut quand même être un peu averti de FileMaker. Peut-être que le professeur Tournesol lui-même s'y perdrai...

Bon, je suis reparti sur un autre concept : Le développeur crée un modèle d'écran en format tableau avec les boutons nécessaires à la navigation et à l'exportation qu'il duplique autant de fois que nécessaire et même un peu plus. Il renseigne le nom de ces écrans dans une table de correspondance. Les utilisateurs qui souhaitent faire un export choisissent le nom de l'export souhaité, ce qui les amène sur l'écran qu'ils peuvent modifier à leur guise. S'il veulent un nouvel export ou modifier le nom d'un export, ils vont dans la table de correspondance et renseignent le nom du nouvel export là où une position est libre.

Reste quand même le problème du nommage des colonnes, les rubriques d'une table de travail de FileMaker sont souvent loin d'être clairement lisibles pour le lecteur final du tableau Excel. Sur le sujet, ton exemple est très parlant Eric !

_Produit3.fmp12

_Produit3.fmp12

_Produit3.fmp12

_Produit3.fmp12

_Produit3.fmp12

_Produit3.fmp12

Share this post


Link to post
Share on other sites
  • 0
il y a 57 minutes, Philippe ROTTIER a dit :

Reste quand même le problème du nommage des colonnes

Bonsoir Philippe,

Tout dépend si l'on veut intégrer les rubriques dans la première ligne ou pas. Il y a aussi pas mal de subtilité je crois sur l'export EXEL que le forum a bien traité. Une recherche sera des plus utiles. :bien:

Pour mon fichier une seule ligne de script suffit à intégrer les rubriques. 

 

J'ai rajouté la gestion d'erreur des Modèles d'export, mais pas celle du manque d'enregistrement de données qui dépend de la façon elles sont choisies.

J'ai sucré aussi l'affichage du modèle qui sert à l'export pour ne pas embrouiller l’utilisateur corriger des erreurs sur la définition de rubrique, décocher "Utiliser noms de rub.en noms de col. pour la 1er ligne" dans les options de Sauvegarder Exel

 

Il faut penser à créer les enregistrements dans les deux Tables Virtuelles, si toutefois on faisait un clone. (Supérieur au nombre de rubriques pour la première)

Et créer des "Col##_num_cu" au nombre de rubriques également dans la table List_

:)

 

Export2.fmp12

Export2.fmp12

Export2.fmp12

Export2.fmp12

Export2.fmp12

Export2.fmp12

Export2.fmp12

Export2.fmp12

Export2.fmp12

Export2.fmp12

Export2.fmp12

Export2.fmp12

Export2.fmp12

Export2.fmp12

Share this post


Link to post
Share on other sites
  • 0

Bravo, je pense que tu as trouvé la bonne formule.

Share this post


Link to post
Share on other sites
  • 0

Bonjour

J'ai eu un problème similaire pour une base de données de recherche clinique qui contenait de nombreuses tables, occurrences de tables et rubriques (plusieurs centaines), avec des noms compliqués (variables biologiques, cliniques). De plus les utilisateurs effectuant les exportations étaient peu familiers des noms de rubriques, ils auraient donc eu beaucoup de mal a s'y retrouver pour choisir le bon modele de départ (des patients, des consultations, des résultats d'examens), les bonnes occurrences liées et les bonnes rubriques vu leur nombre pour pouvoir faire leur export. En plus, les tables contiennent évidemment des clés (primaires, externes, calculs, champs statistiques, etc..) ce qui embrouille plus encore les utilisateurs a la recherche de leurs données.

J'ai donc créé de nouvelles tables pour parametrer des exports :

1) "Occurrences" de tables exportables

2 ) "Rubriques exportables", liées à une ou plusieurs occurrences. Cette table contient 1 enreg par rubrique, le nom exact de la rubrique, et une description longue et claire de son contenu, ainsi que le nom qu'on souhaite lui donner à l'export

3) "Maquettes" d'export (exemple : maquette de fred du 1/12/2016)

4) "Colonnes" choisies dans la maquette (table liée à la maquette) qui seront les colonnes à exporter. une rubrique classement permet de specifier l'ordre dans lequel les colonnes doivent etre placées (10, 20, 30... ce qui permet facilement les modifications)

L'utilisateur crée donc une "maquette" (ou modifie une existante), puis il ajoute des colonnes, affecte chacune à une occurrence de table et une rubrique (il choisit dans les listes pré-établies d'occurrences et de rubriques exportables), puis classe les colonnes dans l'ordre souhaité

A l'usage :

l'utilisateur effectue une recherche (par exemple patients féminins de plus de 50 ans ayant subi une appendicectomie)
les données sont triées dans l'ordre souhaité (alphabétique par exemple)
puis il choisit une "maquette" existante (deja prete ou qu'il a crée-modifié au préalable)
On n'utilise pas du tout la fonction d'interface et d'export de filemaker.

Un script va, selon le modele ou l'on se trouve, calculer le nom des occurrences adéquates environnantes pour les rubriques demandées. Il recupère par leur nom (obtenir resultat rubrique) le contenu (données) des rubriques (colonnes) de la "maquette" et les assemble avec des séparateurs dans une variable.
Il y a donc dabord une boucle qui passe sur les "colonnes" pour créer une première ligne avec des nom de rubriques clairs (plus clairs pour l'utilisateur que les noms des rubriques dans FileMaker) apres les avoir triées selon l'ordre choisi

Puis une boucle sur les enregistrements de la table a exporter (patients dans cet exemple), et à chaque enreg une boucle sur les colonnes de la maquette choisie pour récupérer les données et les concaténer dans une variable avec des séparateurs (point virgule par exemple). Il faut utiliser une fonction qui filtre les sauts de ligne/paragraphe dans les données.

En fin de script, le contenu de la variable est mis dans un conteneur (global), puis exporté sous un nom genre "patients.csv" et Excel va convertir ce format csv.

Avantages de cette technique :

L'utilisateur n'a pas à connaitre ni comprendre le fatras de liens et d'occurrences de tables, ni les noms bizarres des rubriques. On lui présente les données pertinentes sans les rubriques "techniques (clé primaires, externes, etc..). Pas besoin de modifier la securité, il ne "tripote" aucun modele. Et les noms des colonnes exportés peuvent etre longs, clairs et descriptifs (plus en tout cas que les noms des rubriques)
Ce petit "Framework" d'exportation qui permet de remplacer l'export natif de FileMaker et d'apporter a l'utilisateur final un confort de simplicité et une sécurité est facilement transposable d'une application à l'autre (il suffit de renommer les occurrences de table et les "colonnes" dans les 2 tables de parametrage)

Inconvénients :

Il faut créer de nouvelles tables, plus une interface de parametrage des maquettes d'export (ajout et classement des colonnes)
Le développeur doit parametrer (une fois pour toutes apriori) les occurrences et les rubriques exportables, les nommer. Et ne plus ensuite renommer les rubriques (mais une technique de "Hard Coding" de Fabrice Nordman permet de palier ce problème)
Le script d'export peut paraitre complexe mais il est "générique" pour tous les exports et ce n'est en fait que des boucles imbriquées.

En espérant avoir été clair....
Bon courage

Share this post


Link to post
Share on other sites
  • 0

Bonjour,

Je vois au fil des posts que ce topic est pertinent. 

Critères importants pour l'utilisateur : clarté des libellé, simplicité de la sélection des colonnes à exporter, facilité de modification de l'ordre des colonnes et nommage de l'export.

Et aussi simplicité pour le développeur, celui-ci n'a à sa charge que de placer sur un modèle les rubriques destinées à l'exportation après les avoir éventuellement renommées avec un calcul pour celle qui seraient trop absconses.

J'ai bidouillé l'exemple d'Eric dans ce sens, une table intermédiaire permet de stocker et gérer les rubriques sélectionnées et les numérotations de chaque choix.

 

Export3.fmp12

Export3.fmp12

Export3.fmp12

Export3.fmp12

Export3.fmp12

Export3.fmp12

Share this post


Link to post
Share on other sites
  • 0

Bonjour Philippe,

Oui  bien sur la table intermédiaire est plus habituelle dans FM, mais le transfert de liste était aussi une occasion pour moi de se familiariser avec.

Le tri des rubriques avec des flèches haut et bas, serait à mon gout plus fun :bien:

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