Jump to content
  • 0

Duplication multiple


Kevin.Gross
 Share

Question

Bonjour chère communauté,

Dans ma base, j'ai une table externe représentant des échantillons à conserver.
J'essaie de mettre en place un système qui permet de sélectionner différentes lignes. Les lignes sélectionnées apparaissent dans une rubrique juste en dessus de la table externe.

J'ai mis en place un script (avec une boucle) qui permet d'effacer ma sélection --> ça fonctionne

Mais j'essaie de mettre en place un même script pour la duplication. --> ça ne fonctionne pas ^^
==> Mon problème est que je ne sais pas comment dire à mon script qu'il doit dupliquer l'ensemble de base trouvé au moment de l'activation du script car dans ma boucle, si j'ai deux échantillons à dupliquer, au milieu de ma boucle, le nombre d'échantillon trouvés passe à 3...

Je vous mets un screenshot de mon script actuel.

En attente de vous lire !

Kevin

Script duplication multiple.jpg

Link to comment
Share on other sites

8 answers to this question

Recommended Posts

  • 0
J'isole mes enregistrements à dupliquer, je me place sur le premier d'entre eux

Boucle
	Dupliquer enregistrement
	--> le duplicata se trouve à la fin du jeu trouvé
	Ignorer enregistrement
	Afficher enregistrement/requête/page [ Premier ]
	Ignorer enregistrement
	Fin de boucle si [ Obtenir ( NombreEnregTrouvés ) = 0 ]
Fin de boucle

 

Link to comment
Share on other sites

  • 0
il y a 14 minutes, Jérémie Gimenez a dit :
J'isole mes enregistrements à dupliquer, je me place sur le premier d'entre eux

Boucle
	Dupliquer enregistrement
	--> le duplicata se trouve à la fin du jeu trouvé
	Ignorer enregistrement
	Afficher enregistrement/requête/page [ Premier ]
	Ignorer enregistrement
	Fin de boucle si [ Obtenir ( NombreEnregTrouvés ) = 0 ]
Fin de boucle

 

🙄 ça semble si simple quand c'est dit... Merci beaucoup Jérémie, problème réglé.

Petite question au passage; peut-être que tu sauras directement m'aiguiller.

Avant de faire ma duplication multiple, je sélectionne mes lignes en cliquant sur un petit bouton qui permet de "marquer mes échantillons" qui devront être dupliquer.
Et j'ai mis une rubrique qui permet d'afficher visuellement les échantillons sélectionner.

Le "marquage" fonctionne bien MAIS ma rubrique qui affiche les échantillons sélectionnés ne les affiches pas forcément. Parfois la rubrique affiche 3-4 échantillons et tout d'un coup seulement un; parfois j'arrive pas en avoir plus que un...

Link to comment
Share on other sites

  • 0
il y a 10 minutes, Kevin.Gross a dit :

Le "marquage" fonctionne bien MAIS ma rubrique qui affiche les échantillons sélectionnés ne les affiches pas forcément. Parfois la rubrique affiche 3-4 échantillons et tout d'un coup seulement un; parfois j'arrive pas en avoir plus que un...

Alors, il faudrait qu'on voit plus précisément le système de marquage.

Cependant, il s'agit d'un sujet général : «sélectionner des enregistrements sans les modifier». En effet, il serait préférable de "marquer", "tagguer", "sélectionner" ces enregistrements, mais sans écrire dedans, et ce pour au moins 2 raisons :

  • modifier la date de dernière modification d'un enregistrement juste à cause d'une sélection n'est pas très propre,
  • si 2 utilisateurs travaillent en même temps, ils ne peuvent constituer 2 listes distinctes par un marquage interne aux enregistrements.

La solution à cela est d'avoir une rubrique globale g_identifiants_selectionnes, dans laquelle un script va venir :

  • ajouter (sur une nouvelle ligne) l'identifiant d'un enregistrement qu'on ajoute à la sélection,
  • ou bien retirer l'identifiant d'un enregistrement qu'on en retire.

De cette façon, la rubrique globale est toujours à jour, ça résout ton souci ci-dessus. Et par ailleurs, quand on a finit les opération, on vide cette rubrique et hop, tout est à nouveau non sélectionné. Ca évite l'étape de décochage des enregistrements dupliqués.

Ceci implique que "sélectionné" ne soit pas une case à cocher mais plutôt une couleur de fond, par exemple : Mise en forme conditionnelle sur le bouton de sélection [ Si ( Not Estvide ( ValeursFiltre* ( g_identifiants_selectionnes ; table::id ) ; Couleur de fond ) ]

* Merci pour le rappel récent de @tcolles

Désolé, c'est un peu plus lourd à mettre en œuvre qu'une case à cocher, mais c'est plus propre et plus pérenne.

Ensuite, au moment de la duplication, il suffira de boucler sur toutes les valeurs de g_identifiants_selectionnes et de les dupliquer un à un.

Link to comment
Share on other sites

  • 0
il y a 30 minutes, Jérémie Gimenez a dit :

mais sans écrire dedans, et ce pour au moins 2 raisons :

  • modifier la date de dernière modification d'un enregistrement juste à cause d'une sélection n'est pas très propre,
  • si 2 utilisateurs travaillent en même temps, ils ne peuvent constituer 2 listes distinctes par un marquage interne aux enregistrements.

Ehhh... Mince 😅

Merci pour le détail ET l'avertissement ( bah oui car évidemment... Je suis partie sur ce que je connais et donc ce qui est facile et pas optimal...)

Je vais me coller au système avec la globale pour remédier à ça car effectivement chez nous, ils seront plusieurs en même temps sur la base.
Et je n'avais pas pensé à la problématique d'horodatage de modification et c'est vrai que c'est pas idéale.

Merci encore et je vais essayer de regarder tout ça demain :)

Link to comment
Share on other sites

  • 0
Il y a 18 heures, Jérémie Gimenez a dit :

Ceci implique que "sélectionné" ne soit pas une case à cocher mais plutôt une couleur de fond, par exemple : Mise en forme conditionnelle sur le bouton de sélection [ Si ( Not Estvide ( ValeursFiltre* ( g_identifiants_selectionnes ; table::id ) ; Couleur de fond ) ]

Petites questions par rapport à ta formule (car pour le moment, il me manque chaque fois des paramètres quand j'essaie de valider ma formule ^^ ) :

  • ValeursFiltre --> Je dois avoir des valeurs quelques part de base ? C'est lié au script ou on a rien de plus à faire entre guillemet ?
  • Couleur de fond --> Je dois écrire ça dans la formule ou choisir une couleur à ce moment là ?
Link to comment
Share on other sites

  • 0

Hello,

Pardon, il s'agit d'une mise en forme conditionnelle. La formule est simplement :

Not Estvide ( ValeursFiltre* ( g_identifiants_selectionnes ; table::id ) )

(A confirmer, j'écris sans tester)

Link to comment
Share on other sites

  • 0
il y a 37 minutes, Jérémie Gimenez a dit :

Hello,

Pardon, il s'agit d'une mise en forme conditionnelle. La formule est simplement :

Not Estvide ( ValeursFiltre* ( g_identifiants_selectionnes ; table::id ) )

(A confirmer, j'écris sans tester)

C'est tout bon, parfait ! ça fonctionne

C'était l'histoire du Si et le Couleur de fond qui me perturbait :D

Bon allez, il faut que je travaille encore l'histoire des globales...
On y croit :)

Link to comment
Share on other sites

  • 0
Il y a 4 heures, Kevin.Gross a dit :

C'était l'histoire du Si et le Couleur de fond qui me perturbait

J'avoue que ma première formulation n'était pas très explicite !   😌

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

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...