abracadabraPDF › Forums › PDF – Général › Case texte grisée grâce à liste déroulante
- Ce sujet contient 14 réponses, 4 participants et a été mis à jour pour la dernière fois par destylast, le il y a 1 année et 10 mois.
-
CréateurSujet
-
13 février 2023 à 15:38 #72511YojoParticipant
Bonjour à tous ,
je suis entrain de réaliser un formulaire avec des listes déroulantes.
J’aimerais selon le mot choisi dans la liste que d’autres cases de textes se grisent dans mon formulaire.
J’arrive à griser une case de texte grâce avec un bouton coche, mais je n’arrive pas à trouver ou voir comment il est possible de faire cela avec une liste déroulante
Merci par avance pour votre aide
Attachments:
You must be logged in to view attached files. -
CréateurSujet
-
AuteurRéponses
-
13 février 2023 à 15:57 #72515destylastParticipant
Ma question et pourquoi tu veux quelle se grise et ton fichier PDF serai bien en pj.
13 février 2023 à 18:33 #72517YojoParticipantEn fait il faut à chaque type d’infraction dans la liste déroulante qu’on ne puisse pas écrire sur certaines cases texte prédéfinies.
14 février 2023 à 09:38 #72518MerlinMaître des clésSi tu veux une aide efficace il faudrait dire lesquelles.
14 février 2023 à 12:13 #72519YojoParticipantVoici le fichier source format excel lien excel
Il faudrait que le formulaire PDF face exactement pareil merlin
14 février 2023 à 20:08 #72520bebarthMaître des clésbonjour,
Il existe plusieurs façons de faire ça !
En script de touches personnalisé du menu déroulant qui ne s’exécute que lors de la modification du menu :
if (!event.willCommit) {
if (event.changeEx=="Champs grisés") {
this.getField("Text2").fillColor=color.gray;
this.getField("Text2").readonly=true;
this.getField("Text3").fillColor=color.gray;
this.getField("Text3").readonly=true;
} else {
this.getField("Text2").fillColor=color.transparent;
this.getField("Text2").readonly=false;
this.getField("Text3").fillColor=color.transparent;
this.getField("Text3").readonly=false;
}
}
ou en script de calcul des champs modifiés, mais ces scripts s’exécutent après chaque évènement ce qui peut être pénalisant s’il y en a beaucoup :
if (this.getField("Dropdown7").value=="Champs grisés") {
event.target.fillColor=color.gray;
event.target.readonly=true;
} else {
event.target.fillColor=color.transparent;
event.target.readonly=false;
}
@+
😎Attachments:
You must be logged in to view attached files.14 février 2023 à 21:57 #72522YojoParticipantMerci Bebarth,
mais si je met plusieur mot dans la liste d’élément dans la liste déroulante , je n’arrive pas a grisé les case texte selon le mot sélectionné.
Je voudrais faire comme le fichier ce fichier excel mais en pdf lien
15 février 2023 à 19:23 #72523bebarthMaître des clésbonjour,
Dans ton fichier Excel, je ne vois pas à voir quelles cellules sont grisées en fonction de quels éléments des menus déroulants !
Pourrais-tu donner quelques exemples.mais si je met plusieur mot dans la liste d’élément dans la liste déroulante
À première vue if suffirait d’ajouter des “ou” (||).
@+
😎15 février 2023 à 23:46 #72524YojoParticipant“bonjour,
Dans ton fichier Excel, je ne vois pas à voir quelles cellules sont grisées en fonction de quels éléments des menus déroulants !
Pourrais-tu donner quelques exemples”bonjour bebarth,
Pour donner l’exemple lorsque je mais “chantier non déclarer” dans infraction il faut que les 4 cases texte qui suit soit blanche ou grise et q’u on puisse rien écrire dessus.
ou que si je mais “rdv pris non respecté” que ce soit juste la 4eme case qui soit blanche ou grise et qu’on puisse rien écrire dedans
J’ai encore essayer toute cet fin de soirée mais toujours pas trouver le moyen.
16 février 2023 à 11:17 #72525destylastParticipantDonc si je comprend bien N° Téléservice de la DICT – (Si Travaux urgents menu déroulant)/ Si absence de RDV- confirmation prise du rendez-vous/Si RDV non respecté – date du RDV fixée/Si non respect des prescriptions – commentaires, son plus accessible si chantier non déclarer dans la rubrique Infraction relevée de choisis dans ta liste déroulante.
16 février 2023 à 12:39 #72526MerlinMaître des clés“Pour donner l’exemple lorsque je mais « chantier non déclarer » dans infraction il faut que les 4 cases texte qui suit soit blanche ou grise et qu’on puisse rien écrire dessus.”
Pour qu’on puisse t’aider il faut les règles complètes, pas juste un exemple.
17 février 2023 à 09:00 #72529bebarthMaître des clésbonjour,
Pour programmer ton formulaire plus facilement, il va falloir au préalable revoir les noms des champs et les valeurs d’exportations des menus déroulants. Tu imagines bien que si dans les formules on a uniquement des valeurs du type ” Absence de RDV préalable – 2 appels infructueux, demande de RDV “, le script va vite devenir illisible… Des chaines de caractères de ce type ne doivent être que des valeurs attribuées à des champs.J’ai quand même fait l’exemple donné, mais Merlin à raison : pour établir une formule il faut une règle et non juste un ou des exemple :
if (!event.willCommit) {
if (event.changeEx==" Chantier non déclaré (CND)") {
this.getField("N° Téléservice de la Dict").fillColor=color.gray;
this.getField("N° Téléservice de la Dict").readonly=true;
this.getField("Si absence de RDV").fillColor=color.gray;
this.getField("Si absence de RDV").readonly=true;
this.getField("si rdv non respecté").fillColor=color.gray;
this.getField("si rdv non respecté").readonly=true;
this.getField("si non respect des prescriptions").fillColor=color.gray;
this.getField("si non respect des prescriptions").readonly=true;
} else {
this.getField("N° Téléservice de la Dict").fillColor=color.transparent;
this.getField("N° Téléservice de la Dict").readonly=false;
this.getField("Si absence de RDV").fillColor=color.transparent;
this.getField("Si absence de RDV").readonly=false;
this.getField("si rdv non respecté").fillColor=color.transparent;
this.getField("si rdv non respecté").readonly=false;
this.getField("si non respect des prescriptions").fillColor=color.transparent;
this.getField("si non respect des prescriptions").readonly=false;
}
}
Dans ton cas, s’il n’y a pas de règle bien définies, il faudra utiliser des “else if” pour chaque cas.
if (!event.willCommit) {
if (event.changeEx==" Chantier non déclaré (CND)") {
this.getField("N° Téléservice de la Dict").fillColor=color.gray;
this.getField("N° Téléservice de la Dict").readonly=true;
this.getField("Si absence de RDV").fillColor=color.gray;
this.getField("Si absence de RDV").readonly=true;
this.getField("si rdv non respecté").fillColor=color.gray;
this.getField("si rdv non respecté").readonly=true;
this.getField("si non respect des prescriptions").fillColor=color.gray;
this.getField("si non respect des prescriptions").readonly=true;
} else if (event.changeEx==" Absence de RDV préalable - 2 appels infructueux, demande de RDV") {
...
...
} else if (event.changeEx==" Non respect des prescriptions GRTgaz") {
...
...
} else {
this.getField("N° Téléservice de la Dict").fillColor=color.transparent;
this.getField("N° Téléservice de la Dict").readonly=false;
this.getField("Si absence de RDV").fillColor=color.transparent;
this.getField("Si absence de RDV").readonly=false;
this.getField("si rdv non respecté").fillColor=color.transparent;
this.getField("si rdv non respecté").readonly=false;
this.getField("si non respect des prescriptions").fillColor=color.transparent;
this.getField("si non respect des prescriptions").readonly=false;
}
}
Autre recommendation, pour les menus déroulants, pense à cocher la case “Valider la valeur sélectionnée immédiatement”.
@+
😎Attachments:
You must be logged in to view attached files.18 février 2023 à 10:14 #72531destylastParticipantTop ton exemple bebarth une option qui serait sympathique et d’effacer les textes dans ces champs s’il son rempli avant de faire le choix dans la liste déroulante qui grise ces champs, mais encore bravo pour ton travail 👍
18 février 2023 à 12:04 #72532YojoParticipantMerci bebarth,
je vais regarder ça , merci en tous cas de ton aide
20 février 2023 à 16:30 #72533 -
AuteurRéponses
- Vous devez être connecté pour répondre à ce sujet.