Listes et menus déroulants liés 3 niveaux  (Lu 147 fois) Partager ce sujet Imprimer

1 B


bgiaconi2475  15 septembre 2020 : 17:13

Bonjour,
Je suis en train de créer un formulaire qui est un bon de commande d'impression papier car je travaille dans une reprographie.


Voici le lien de téléchargement de ce bon de commande via Wetransfert: https://we.tl/t-XObcOllQaL
Je n'ai pu le mettre en pièce jointe car trop lourd.


99% des scripts qu'il contient proviennent de ce forum et encore merci pour tout ce que ce site nous apporte c'est juste une merveille.
Mon problème est que j'ai lié une liste principale de choix (List Box1) avec un menu déroulant (menu deroulant_2) et ça fonctionne parfaitement, parcontre j'y ai intégré un 3eme niveau composé lui même de 5 menus déroulants et c'est là que j'ai un gros soucis (ils se nomment : menu1, menu2, menu3, menu4, menu33)... en fait je me suis rendu compte que si je fermais/ouvrais ou encore si je zoom avant/arrière ces 5 menus de 3eme niveau se réinitialisent.


J'ai beau chercher je ne trouve pas ce qui coince... quelqu'un pourrait-il m'aider? Tout le codage provient à la base d'un post que j'ai récupéré sur ce forum et il était destiné à une structure à 2 niveau, je pensais pouvoir l'adapter à 3 niveaux cela fonctionne sur le coup très bien mais que dois-je modifier pour que les infos du 3eme niveau ne se réinitialisent pas une fois que je ferme et ouvre le fichier ou que je j'agis sur la loupe???


HELP ME PLEASE....

IP archivée


bebarth  15 septembre 2020 : 21:06

bonsoir,
...mais que dois-je modifier pour que les infos du 3eme niveau ne se réinitialisent pas une fois que je ferme et ouvre le fichier ou que je j'agis sur la loupe???
??? J'ai testé l'enregistrement et la loupe qui n'ont aucun effet sur les valeurs des listes déroulantes !!!
Le fichier que tu as partagé est complet ou as-tu extrait une page ?
Ça le fait à chaque fois ???
@+
 :bonjour:

IP archivée


bgiaconi2475  16 septembre 2020 : 09:12

Hello,


Déjà un grand merci de t'être penché sur mon sujet.
Non je n'ai rien enlevé... Et le plus étrange c'est que quand je zoom, il y a un temps de latence avec le petit icone représentant un petit clavier qui apparaît à côté de ma souris, exactement comme s'il y avait un script qui se jouait en tache de fond...


Je suis rassuré de savoir qu'il se pourrait que le problème soit lié éventuellement à mon poste de travail...
J'ai lancé le débugger et rien de plus.... je ne comprends donc pas quel est le problème....


Donc tu me confirmes que de ton côté les 5 menus en niveau 3 ne se réinitialisent pas après avoir fermé/ouvert le fichier ou zoomé la page avant/arrière?

IP archivée


bgiaconi2475  16 septembre 2020 : 09:14

Berdath,
As-tu modifié les menus par défauts niveau 3 avant d'effectuer les tests?

IP archivée


bgiaconi2475  16 septembre 2020 : 09:25

Car au vu de tes copies d'écran j'ai vu que tu avais laissé les menus niveau 3 avec les options par défaut... pourrais tu refaire ton test de zoom et fermeture/ouverture de fichier après avoir modifié les options proposées par les menus niveau 3?

Voici une vidéo qui montre bien ce qui se passe sur mon pc : https://we.tl/t-v1dELO55cB

Un grand merci par avance pour ton aide précieuse!!






IP archivée


bebarth  16 septembre 2020 : 09:40

bonjour,
J'avais juste testé le zoom sans changer les valeurs de menus déroulants.
Je n'avais pas compris qu'en changeant les valeurs et en zoomant les menus revenaient aux valeurs précédentes...
Ça fait également la même chose de mon côté.
Je ne vois pas pourquoi le zoom interviendrait sur le script !
Je regarderai plus tard ton script.
@+
 :bonjour:

IP archivée


bebarth  16 septembre 2020 : 16:41

Waouh ! On est sur un niveau de JavaScript assez balaise.
Je n'ai personnellement jamais utilisé la méthode "hasOwnProperty", et si j'avais écris ce script, je l'aurais fait beaucoup plus simplement.
Si tu as tout compris c'est que tu as un niveau de JavaScript très élevé et je te conseillerais de le réécrire de cette façon (plus simplement).
La réécriture demande pas mal de boulot pour une personne extérieure, pas seulement en écriture pure du script, mais avant cela en compréhension de tous les cas possibles afin de minimiser le nombre de tables.
Je ne suis également pas certain que ton problème vienne du script. Je ne vois pas en quoi le zoom peut intervenir sur le script...
J'ai fait des essais sur d'autres fichiers avec des listes mères-filles et je n'ai pas rencontré ce problème !!!
Tu me dis si tu n'y arrives pas et j'essaierai de t'aider, mais il ne faudra pas être trop pressé.
@+

IP archivée


bgiaconi2475  16 septembre 2020 : 18:00

Hello,


Mais toi quand tu fais zoom arrière les menus niveaux trois se réinitialisent également?

IP archivée


bebarth  16 septembre 2020 : 19:42

Avec ton fichier, oui !
Si je fais exactement ce que tu montres dans ta vidéo, j'obtiens exactement le même résultat.
@+
 :bonjour:

IP archivée


Merlin  17 septembre 2020 : 09:26

Mais toi quand tu fais zoom arrière les menus niveaux trois se réinitialisent également?
Pareil pour moi. Je n'avais jamais vu ça !
J'espère avoir le temps d'y jeter un œil ce weekend.

IP archivée


bgiaconi2475  18 septembre 2020 : 08:57

je vais éssayer de trouver une alternative, merci encore pour ton aide!!

IP archivée


bebarth  21 septembre 2020 : 09:40

bonjour,
La mauvaise nouvelle est que je ne comprends pas pourquoi, mais le dysfonctionnement provient bien de l'association du zoom et de ton script.
La bonne  nouvelle est que j'ai réécrit ton script à ma sauce et qu'il fonctionne lorsque l'on zoom.
L'avantage du script que tu utilisais est de pouvoir écrire dans n'importe quel ordre les objets dans les tables. Avec mon script, il faut être un peu plus rigoureux car ce ne sont plus des tables d'objets mais des tables de tables et il faut donc les indiquer dans le bon ordre (ce qui était déjà le cas dans ton script).
Une petite remarque également : pour remplir des listes ou menus déroulants via JavaScript, ça ne sert à rien d'indiquer une valeur d'exportation identique au nom de l'élément. Par défaut, la valeur du menu déroulant correspond au nom de l'élément sélectionné s'il n'y a pas de valeur d'exportation.
J'ai réécrit ton script car celui d'origine était déjà très bien écrit et qu'il n'y avait donc pas trop de boulot pour s'y retrouver et récupérer les textes. Le script en lui-même n'est pas très long...
J'ai déplacé ton champ "menu33" car cela provoque une erreur sur la console si je le supprime, et je n'ai pas vérifié tous les scripts de tous les champs pour savoir d'où venait cette erreur.
J'espère que cela te convient, voici le lien :
https://we.tl/t-5JTuYssEQi
Tu me dis...
@+
 :bonjour:

IP archivée


Merlin  21 septembre 2020 : 09:48

Ben… J'ai passé un peu plus d'une heure a chercher mais je n'ai rien trouvé et rien compris à ce problème de zoom.
 :joker:

IP archivée


bgiaconi2475  21 septembre 2020 : 10:41

Waou Berdath !!!
Je suis scotché par la qualité de ton analyse... phénoménale !!! J'ai testé et je te confirme que ça fonctionne parfaitement, une tuerie !!! Le fait d'avoir mis le gros de la programmation à l'ouverture du document est évidemment beaucoup plus judicieux. Ta logique dans le contenu de ton script est également bcp plus optimisé et mieux pensé que ma version.
Au vu du nombre de personnes qui cherchent des scripts de menus déroulants liés sur ce forum, si j'étais toi, je mettrais à disposition ce script voir le formulaire complet. Je te demanderai juste de supprimer la partie qui concerne l’expédition car elle mentionne clairement la société pour laquelle je travaille. Pour le reste n'hésite pas à la proposer à d'autres si besoin :)

Encore un grand merci pour ton aide précieuse et la qualité de tes retours, tu es un petit génie !


IP archivée


Merlin  21 septembre 2020 : 11:30

Berdath
Je suppose que c'est dû à l'émotion !
 :Smiley08:

En ce qui concerne bebarth, génie : oui, mais petit : non.
 :Smiley03:

IP archivée


bgiaconi2475  21 septembre 2020 : 11:55

Exact, j'ai écorché son pseudo sous le coup de l'émotion  :Smiley05: :Smiley08:
Et Merlin je suis en accord avec l'ensemble de tes rectificatifs en ce qui concerne Bebarth  :Smiley08: :Smiley03:

IP archivée


bebarth  21 septembre 2020 : 21:23

 :geek:
J'ai failli rougir... mais il ne faut pas exagérer, je ne suis pas très grand i
@+
 :bonjour:

IP archivée