abracadabraPDF › Forums › PDF – Général › Création liste déroulante sur valeur d’un champ numérique
- Ce sujet est vide.
-
CréateurSujet
-
5 janvier 2021 à 08:31 #46491IssamMembre
Bonjour à tous,
Je souhaiterais créer une liste déroulante dynamique en fonction d’un champ numérique.
Exemple :
Si champ numérique = 10
Éléments possibles dans la liste déroulante : Texte 1 à Texte 10Si champ numérique = 30
Éléments possibles dans la liste déroulante : Texte 1 à Texte 30Merci de votre aide.
Issam -
CréateurSujet
-
AuteurRéponses
-
5 janvier 2021 à 09:44 #68582MerlinMaître des clés
Bonjour
Que devrait-il se passer si le champ n’est pas égal à 10 ni à 30 ?
5 janvier 2021 à 10:11 #68583IssamMembreBonjour Merlin,
La liste déroulante doit être obligatoire comprise entre les valeurs 1 et X, X étant défini par la valeur du champs numérique.
Donc si on souhaite rentrer une valeur différente, ce n’est pas possible.
Petite précision peut être, le “texte” est toujours le même, seul la valeur numérique change, et cette liste est présente dans un grand nombre de champs sur mon document basé toujours sur le même champs numérique de base.
5 janvier 2021 à 14:30 #68584MerlinMaître des cléscette liste est présente dans un grand nombre de champs sur mon document basé toujours sur le même champs numérique de base.
Après le choix utilisateur, est-ce que cette liste doit avoir partout la même valeur ou bien le choix peut il être différent sur chaque page ?
Il faudrait que tu partages ton fichier, ou un exemple.
https://abracadabrapdf.net/forum/index.php/topic,2974.0.html5 janvier 2021 à 17:11 #68585IssamMembreBonjour Merlin,
La liste doit être partout la même, par contre les valeurs sélectionner peuvent être différente.
Je te partage un fichier avec un exemple attendu. Je suis parti dans l’idée d’une liste déroulante, ce n’est peut etre pas la bonne solution.
Est ce qu’un champs texte avec une valeur MAX égale a la valeur du champ principale + un script de format personnalisé ne serait pas plus simple ?
Merci de ton aide.
5 janvier 2021 à 17:42 #68586bebarthMaître des clésJe te partage un fichier avec un exemple attendu. Je suis parti dans l’idée d’une liste déroulante, ce n’est peut etre pas la bonne solution.
Si le résultat attendu est une page blanche, ça ne doit pas être très compliqué !!! :joker: :geek:
@+
:bonjour:5 janvier 2021 à 18:26 #68587MerlinMaître des clésOui, mais c’est une page blanche créée avec les abracadabraTools !
:extra:Issam : je ne sais pas quelle est la valeur maximale attendue mais un menu déroulant devient pénible à utiliser à partir d’une vingtaine d’items.
Je n’imagine pas un menu déroulant avec 50 ou 150 items à choisir, auquel cas la solution du champ texte avec une valeur maximale serait certainement plus user-friendly.Il faut aussi prendre en compte le temps d’exécution, j’ai livré récemment à une compagnie d’assurance des formulaires dans lesquels 14 listes déroulantes sont réinitialisées (suppression et remplacement de tous les items) lors du clic sur une case à cocher : avec un PC moderne (i7) bien gonflé il y a toujours quelques secondes de latences.
Ce qui ne se produirait pas avec des champs texte car dans ce cas il faudrait tout au plus 2 millisecondes pour changer la valeur d’une variable.
Le script serait également beaucoup plus simple et plus “léger”.5 janvier 2021 à 20:31 #68588IssamMembreSi le résultat attendu est une page blanche, ça ne doit pas être très compliqué !!! :joker: :geek:
@+
:bonjour:Forcément si vous manquez d’imagination aussi :joker: :jerisjaune:
Oui, mais c’est une page blanche créée avec les abracadabraTools ! :extra: Issam : je ne sais pas quelle est la valeur maximale attendue mais un menu déroulant devient pénible à utiliser à partir d’une vingtaine d’items.Je n’imagine pas un menu déroulant avec 50 ou 150 items à choisir, auquel cas la solution du champ texte avec une valeur maximale serait certainement plus user-friendly.Il faut aussi prendre en compte le temps d’exécution, j’ai livré récemment à une compagnie d’assurance des formulaires dans lesquels 14 listes déroulantes sont réinitialisées (suppression et remplacement de tous les items) lors du clic sur une case à cocher : avec un PC moderne (i7) bien gonflé il y a toujours quelques secondes de latences.Ce qui ne se produirait pas avec des champs texte car dans ce cas il faudrait tout au plus 2 millisecondes pour changer la valeur d’une variable.Le script serait également beaucoup plus simple et plus “léger”.
Tu as très certainement raison Merlin. Surtout que dans ce même document j’ai déjà deux liste déroulante de plusieurs niveau (Merci Bebarth) ainsi que des modèles de page etc etc.
Du coup si tu pense que le champs texte est plus adapté je suis preneur, j’ai remis le fichier PJ, dans l’idée ce serait de remplir les champs “Caméras associées”.
Merci beaucoup pour votre aide.
:bonjour:6 janvier 2021 à 15:01 #68589bebarthMaître des clésbonjour,
Si en script de champ activé tu écris :Code:event.target.clearItems();
for (var i=1; i<=this.getField("Nb de caméra").value; i++) event.target.insertItemAt("Cam "+i,"",-1);l’action ne sera exécutée que pour ce champ activé !
A placer sur chaque champ évidemment.
@+
:bonjour:6 janvier 2021 à 15:27 #68590IssamMembreBonjour Bebarth,
ça ne fonctionne malheureusement pas et j’ai ce message dans les logs
Code:GeneralError: L’opération a échoué.
Field.clearItems:1:Field Cam:FocusEDIT :
J’ai dis une bêtise, ça fonctionne bien sur une liste déroulante – J’étais resté sur l’idée de Merlin donc j’ai essayer sur un champ texte.
Toute mes excuses et merci7 janvier 2021 à 07:47 #68591IssamMembreBonjour,
Finalement Merlin a raison, une liste avec 30 items c’est l’horreur et comme je peux en avoir plus de 100 dans certains cas…
Je laisse donc tomber la liste déroulante pour me recentrer sur un champ texte.
Du coup comment on ajoute sur un champ un préfixe, en l’occurrence “CAM-” pour que l’utilisateur ait juste à saisir un nombre ?Merci encore pour votre aide et merci Bebarth pour ton bout de code, je suis sur qu’il va me servir quelque part
7 janvier 2021 à 09:09 #68592MerlinMaître des clésIl faut ajouter ce script en script de format personnalisé dans le champ texte :
event.value = “CAM-” + event.value;
7 janvier 2021 à 11:30 #68593IssamMembreBonjour MERLIN,
C’est simple efficace et ça suffira largement.
Encore merci.
Dernière question – Il faut clôturer les sujets ou les laisser ouvert ?
7 janvier 2021 à 12:05 #68594MerlinMaître des clésUn sujet n’est jamais clos, on a vu des questions supplémentaires intervenir plus de 10 ans après l’ouverture d’un sujet.
:Smiley01: -
AuteurRéponses
- Vous devez être connecté pour répondre à ce sujet.