Toutes mes réponses sur les forums
-
AuteurRéponses
-
15 décembre 2020 à 13:16 en réponse à : Différencier un champ vide d’un champ où il est écrit zéro #68445gwenicrocketMembre
Oups :Ooops: maudite correction automatique de mon telephone
Je m en excuse15 décembre 2020 à 08:16 en réponse à : Différencier un champ vide d’un champ où il est écrit zéro #68443gwenicrocketMembreDésolé je n’avais pas vu ton fichier joint
En effet cela fonctionne. J’ai donc copié-collé ton code et ça marche.
J’avais du mal recopier le code car j’ai inséré ce code dans un code plus gros.
Merci bebarth :bonjour:Et merci aussi merlin
15 décembre 2020 à 07:38 en réponse à : Différencier un champ vide d’un champ où il est écrit zéro #68441gwenicrocketMembreBonjour Béjart
Je viens d’essayer mais malheureusement ça ne fonctionne pas avec valueAsString, que mon champs soit vide ou égal à 00 c’est pareil.
Je ne sais pas si le format du champ est important ici. J’avais mis un masque arbitraire de 99 pour le format.gwenicrocketMembremerci a vous,désolé de ne répondre que maintenant je vais essayé et je reviens vers vous au cas ou :bonjour: .par contre j’ai un autre soucis, mais je vais rouvrir une discussion à ce propos.
gwenicrocketMembreBonjour merlin
Merci pour ta réponse rapideC’est ce que J ai fait en attendant mais j’aimerai avoir ce codage quand même pour savoir aussi comment utiliser “replace” avec ce type de code
gwenicrocketMembreMerci pour tout bebarth, j’ai tout ce qu’il me faut maintenant.
À bientôt pour d’autres sujets, ce forum est vraiment extra.:bonjour:
gwenicrocketMembreBonjour bebarth,
Je préfère garder le code d’avant car je souhaite que si une case n’est pas remplie sur une des pages où il y a les questions, alors la case du sommaire reste décochée, ceci pour que ça interpelle : la case n’est pas cochée donc il y a un oubli.
Avec le code que tu m’a renvoyé si on oublie une case cela coche “non”.Par contre j’ai une seconde question : sur certaines pages j’ai des champs texte où je rentre des valeurs, si celles-ci ne sont pas bonnes la valeur apparait en rouge avec ce code situé après la condition :
Code:(this.getField(“resultat”).textColor=color.red)J’ai voulu donc ajouter une condition supplémentaire dans le code mais ça ne fonctionne pas, je pense que ça doit être la façon d’écrire en JavaScript comment vérifier si la couleur du texte est rouge qui ne doit pas être bonne, mais je ne sais pas du coup comment écrire cette condition, voici le code :
Code:if (this.getField(“page”+indice+”question_”+i).value==”no” || this.getField(“page”+indice+”question_”+i).textColor==”color.red”) { this.getField(“Page”+indice).value=”no”; break;Merci
gwenicrocketMembremerci mille fois bebarth.Je me suis permis de modifier le code car il manquait une condition : le cas ou si une des cases n’est pas cochée il faut que sur le sommaire ce ne soit pas coché. mais du coup je me demande si il faut mettre if ou else if pour la condition qui suit avec no.
Code:// 13 = nombre de caractères du début du nom des champs “signaturepage”var indice=event.target.name.substr(13);
if (event.value==””) {
this.getField(“Page”+indice).value=”Off”;
} else {
for (var i=1; i<=7; i++) {
if (this.getField(“page”+indice+”question_”+i).value==”Off”)
{ this.getField(“Page”+indice).value=”Off”;
break;
} if (this.getField(“page”+indice+”question_”+i).value==”no”) { this.getField(“Page”+indice).value=”no”;
break;
} else {
this.getField(“Page”+indice).value=”Yes”;
}
}
}@+
:bonjour:gwenicrocketMembremerci merlin
et pour les cases “non concerné par ces questions” ?
de quel façon peut on le gérer, en nommant spécifiquement tous les champs concerné par cette cases et en intégrant un code qui les test dans la vérification finale?
j’avais pensé à un truc sinon mais c’est un peu lourd si il y a plusieurs pages c’est pour ça que je préfèrerait cette solution ci dessusje pensais à: lorsque la case non concerné est coché
alors coché toutes les case à coché concerné oui
et écrire sans objet dans les champs texte concerné
puis rendre les champs cases et les champs texte invisible
comme ça on ne voit que la case à coché non concerné coché (qui n’est pas requise)
et tous les autres champs requis sont invisible mais non vide et pas “off”
quel serait le code dans ce cas sachant que la case non concerné rempli plusieurs champs
mais ça c’est vraiment si on ne peut pas appliquer la première solution car
je suis obligé dans ce cas d’écrire du code un peu partout au lieu de le faire que dans le test finale du coup c’est plus lourd quand il y a beaucoup de pagesgwenicrocketMembrebonjour merlin,
donc en résumé je dois écrire un script en java sur tous les champs obligatoire, case à coché ou texte. mais comment tu mets les champs qui sont vide en surbrillanceCode:event.target.strokeColor = color.transparent;par contre concernant ton code avec champs requis je ne peux l’utiliser car je ne peux mettre que les champs texte en requis je ne sais pas pourquoi il est grisé pour les cases à coché,il faut donc que je trouve une autre solution soit en mettant le nom obligatoire dans le nom de la case à coché.
pour ce qui est des cases non concerné si je coche cette case les autres champs lié à cette case seront vide par défaut du coup ,
problème avec le code qui va me les identifiés comme vide, il faudrait un code général dans le code que tu m’a donné qui évite de contrôler ces cases si la case est coché quitte a ce que ces cases et ces champs est un nom différent
qu’en pense tu?gwenicrocketMembreDu coup on peut renommer les champs ou pas ?
bonjour bebarth,
oui on peut renommer les champs moi j’avais écris obligatoire devant tous les champs qui l’était
et je pensais peut être que l’on pouvait nommer “sansobjet” ou “nonconcerne” devant ceux qui était lié à la case à coché non concerné
mais attention il peux y avoir dans tout le document plusieurs fois ce type de cas, de case à coché qui inhibe plusieurs champs texte, ou case à coché.Au lieu de citer tous les champs non remplis on pourrais aussi les entourés d’un filet rouge !!!
je préfèrerai que la boite de dialogue me dise le champs,
ou la page ou est situé le champs qui est vide,
Certains questionnaire ont beaucoup de page .
par contre rien n’empêche que le champs soit entouré en plus d’un filet rouge.
le code pourrais aussi s’arrêter à la première erreur trouvé il n’est pas utile que tout le document soit testé avant de dire qu’il y ai un problème.
s’il y en a plusieurs la prochaine sera trouvé a la prochaine relance du code.gwenicrocketMembreBonsoir bebarth
J’ai rajouté au premier fichier l’exemple que je te disais page 2 (par contre ce n’est pas que la question 19 :geek: ) un mauvais copier coller pardon c’est une série de questions qui sont liées à la première case en en-tête. Lorsque la case est cochée, les cases seront donc vides donc cela ne fonctionnera pas avec le programme d’origine de Merlin malheureusement. On peut retrouver plusieurs fois des groupes de questions liés à une case à cocher comme cela. J’ai réussi a avoir la case requise que je peux cocher mais uniquement pour les champs texte pas pour les cases à cocher, j’ai essayé le second programme de Merlin mais je n’ai pas réussi à le faire marcher en cochant requis. Par contre serait il possible de mettre dans le programme que vous proposez d’une autre couleur ce qui peut être changé par moi en fonction du nom que je donne à mes cases ou à mes champs et en noir le reste qui est vraiment du code juste pour savoir si c’est parce-que je devais changer un truc dans le code pour que cela corresponde à mon formulaire ou si c’est le code qui ne correspond pas ?
Merci d’avance
gwenicrocketMembreBonjour bebarth
J’ai bien la case requise mais elle est grisée et je ne peux y toucher je ne sais pas pourquoi.
Donc je vais prendre le premier code de Merlin, je pense que je me suis rendu compte aussi d’un cas qu’il faudrait prendre en compte et que j’ai oublié d’ajouter dans le formulaire.J’ai parfois une case qu’il faut cocher en tête d’un groupe de questions. Celle-ci est cochée si la personne n’est pas concernée par ce groupe de question. Et par-contre pour ces question la réponse se fait dans un champ de texte. Donc en gros il faut que ces groupes de champs qui seront vides ne soient pas comptés comme un oubli si la case en amont de ces questions est cochée.
Mais comment faire?gwenicrocketMembrebonsoir,
- oChamp.required == true : si la case “Obligatoire” est cochée
[/list]@+
:bonjour:Bonsoir bebarth c’est pour ça que je comprend pas je pense.
En fait lorsque tu crées un champ peux-tu dire s’il est obligatoire en cochant une case ?
Cette case que tu peux cocher pour dire s’il est obligatoire est-elle dans le champ ?
Moi avec Nuance je ne crois pas que cette possibilité existe. Je crée mon champ et je peux choisir sa valeur de sortie comme true s’il est rempli, ou alors c’est peut être comme ça que tu le testes avec ce code, non ?Merci Merlin
Pour les noms des champs à intégrer dans la formule par-contre dans ce code la condition est if …. else if… pour plusieurs champs, je dois écrire if champs texte else if case à cocher else if champs signature…Sinon juste pour info j’ai regardé le formulaire de remiB et j’ai vu que quand il coche une case non concernée cela fait disparaitre un lot de boutons-radio. Est-ce que je peux me servir de ça pour effacer un groupe de plusieurs cases à cocher ? Et dans ce cas est-ce que les cases qui disparaissent du document ne seront pas testées par le code (car elles sont sensées être “Off”) ?
Est-ce que je pourrais avoir le code de cette action qui fait disparaitre les autres cases svp ?
Par-contre pour ce qui est de “nommer” dans la boite d’alerte la case ou le champ qui n’est pas coché ou la page où un champ est vide comment je peux faire ?gwenicrocketMembrebonsoir,Non, dans ce script de Merlin tu regardes si le champ est obligatoire, si oui :
excuse Bebarth,
je débute vraiment et du coup j’ai un peu de mal. :Euuuh: je ne vois pas dans le dernier code de merlin ce qui détermine quel champs est obligatoire.Code:if (oChamp.required == true && (((oChamp.type == “text”) && (oChamp.value == “”)) || ((oChamp.type == “checkbox”) && (oChamp.value == “Off”)))) ncompteur++;dans ce code oChamp.required == true , on parle de la valeur du champs?
si une case à coché n’a pas la valeur true mais une autre valeur lorsqu’elle est coché ça va pas fonctionner non?comment dois je nommer mes champs texte, mes case à coché avec le code de merlin?si je rajoute le champs signature à vérifier comment je le nomme dans ce code
mercigwenicrocketMembreLe mieux est d’utiliser un script plus détaillé qui teste la valeur des champs en fonction de leur type, comme ça on n’en rate aucun :
Code:var ncompteur=0;
for (var k=0; kvar strName = this.getNthFieldName(k);
var oChamp = this.getField(strName);
if (oChamp.required == true) {
if ((oChamp.type == “text”) && (oChamp.value == “”)) {
ncompteur = ncompteur+1;
}
else if ((oChamp.type == “checkbox”) && (oChamp.value == “Off”)) {
ncompteur = ncompteur+1;
}
}
}if (ncompteur==0) {
this.getField(“Signature1”).display=display.visible;
} else {
this.getField(“Signature1”).display=display.hidden;
}si je comprend bien avec ce code je ne test plus “obligatoire”qui est dans mes champs mais la valeur du champs et ce à condition que le nom du champs texte contient “text”
et les case à cocher “checkbox”
ou il faut que je remplace checkbox par caseacocher qui est le nom de ma case à cocher?ensuite si je veux tester d’autre champs comme le champs signature comment est ce que je peux le rajouter dans le code?gwenicrocketMembrebonsoir à tous,bon j’ai réessayé le code en mettant obligatoire à tous mes champs et ça fonctionne, mille excuse Merlin :Smiley00: par contre ça fonctionne que si je change la valeur de la case à coché non, au lieu de mettre “false” je mets autre chose comme “yes” et là tout fonctionne sinon il y a bien une subtilité. je sais pas pourquoi.
je vais essayer de voir l’autre code que tu as mis merlin si j’arrive à le comprendre pour éviter le risque d’erreur.par contre pour ce qui est d’identifier le champs qui est vide et de le faire apparaitre dans la boite de dialogue comment peut on faire?gwenicrocketMembreQuand j’ai testé ça fonctionnait avec les cases à cocher.
je vais réessayer demain en nommant correctement les champs .les case à cocher ont bien fonctionné au départ c’est quand j’ai coché non sur une que ça ne fonctionnait pas ( enfin disons que ça marquait KO au lieu de OK), je posterai demain le résultat.par contre comment fais tu pour identifié un champs qui est off et le nommer dans la boite d’alerte?
gwenicrocketMembreMille excuses, il y avait quelques parenthèses et accolades mal placées. Corrigé et testé :
Bonjour Merlin j’ai essayé ton code :
– que sur les champs nom cela fonctionne- sur les case à cocher en revanche cela fonctionne que quand les cases sont cocher oui , si une case est coché non cela ne fonctionne plus idem pour ne sais pas.les cases à cocher oui , non et ne sais pas ont le même numéro pour qu’il n’y ai qu’une coche possible sur les 3 cases du coups c’est leur valeur qui est différente :oui à valeur true
non à valeur false
et ne sais pas à valeur nobonjour bebarth,si j’ai bien compris je suis obligé de renommer tous mes champs :mur: il n’existe pas de programme qui test les champs peut importe leur nom et qui dit quel champ est vide…?
Par contre est ce que je peux mettre cacAverifier pour les case à cocher et nomAverifier pour les champs contenant les noms, puis obsAverifier pour les champs observations,etc….suivi de numéro qui s’incrémente.Ou il faut que tous mes champs s’appelle Averifier puis un numéro, car le programme ne teste pas un morceau de mot dans le nom du champs mais le mot entier…?ensuite est ce que cela pose problème si un numéro de champs est ajouté par la suite en plein milieu qui fait que l’on passe de 1,2,3,4 à 125 puis 6,7,8…?bonjour remiB…..j’ai pas tout compris en fait
gwenicrocketMembreBonjour
Désolé je suis un peu en retard, voici un fichier essai avec un mixte de tous les types de champs que l’on pourrait trouver dans les documents sur lesquels je voudrais insérer le code JavaScript. J’ai essayé le code que vous m’avez envoyé, j’ai ajouté 2 parenthèses qu’il manquait mais ça bugge et il tourne en continu, je ne peux pas fermer la boite d’alerte, je suis obligé de faire un arrêt complet du fichier PDF.
Je n’avais pas pensé en effet à noter les champs avec le même type de nom (cacAverifier, texteAverifier…). pour les prochains documents je pourrais appliquer ça en effet, si le programme que vous m’avez envoyé fonctionne.
Mais pour éviter de reprendre tous les autres documents si il y a une solution qui fonctionne avec ce fichier joint se serait mieux. :geek: pour finaliser j’ai laissé les types de nom qu’il y a sur mes champs comme “case à cocher_1”, “nom_1”, etc…
Merci en tout cas pour vos réponse, ce fichier sera surement plus facile pour entrevoir ce que je voulais direAh j’oubliais si il y a possibilité, lorsque la case vérification du dossier effectué est cochée le bouton devient alors inactif
À très bientôt j’espère ne pas vous avoir fait trop peur :jerisjaune:gwenicrocketMembreBonjour bebarth,
Merci pour cette réponse rapide
Oupss j’ai oublié cette précision qui n’est pas des moindres en effet.
Je ne sais pas si cela est réalisable donc je cherchais au départ un programme assez court qui teste, comme tu le dis, tous les champs et te dit si certains sont vides.
Mais en fait, tous les champs texte et case à cocher ne doivent pas être pris en compte, et il faut tester toutes les pages.
(mais si je dois éviter de tester une page j’aimerais savoir comment faire au cas où)
Sur certaines pages j’ai placé certains champs texte supplémentaires pour mettre plusieurs noms (pour un groupe de personne), si la personne est seule ou si c’est un groupe il se peut que des champs soit vides. Ces champs sont nommés Nom 1, Nom 2, etc.
Et en bas de certaines pages j’ai mis des champs de texte nommés “observation 1”, “observation 2…3…etc” pour que les personnes puissent ajouter un supplément d’information.
En fait, j’aimerais que, lorsque je clique sur le bouton, le programme m’indique quels sont les champs qui sont vides.
Ça, se serait le top, mais si déjà le programme me dit qu’il y a un champ de vide je pourrai visionner le document pour voir où se trouve l’erreur.
C’est surtout pour vérifier qu’aucun champ ne soit vide par erreur et pas intentionnellement.Je dit ça car j’ai vu des programmes de vérification qui seraient très longs où il faut recenser toutes les cases et tous les champs texte dans le programme pour les tester un par un.
Ceci implique de connaitre pour chaque document le nombre de champs exact, et comme il m’est arrivé de rajouter des cases à cocher ou des champs texte plus tard, le nombre situé après la case à cocher peut être aléatoire pour éviter les doublons.
Je cherche donc un programme général assez court qui peut s’appliquer à plusieurs document et pas spécifiquement à un document.
Après comme je nomme mes champs de texte est il possible de ne pas tester un champ qui serait nommé “observation 1 ou 2 ou 3…” par exemple.
Ou alors si une Observation est notée que le programme m’indique “il y a x observations”.Mais là je deviens exigeant :jerisjaune: .
Après comme le groupe de trois case à cocher, “oui”, “non”, “ne sait pas” porte le même nom “case a cocher 1” par exemple mais que la valeur de sortie n’est pas la même vu qu’il n’y aura qu’une case de cochée sur les trois est-ce que cela ne va pas poser problème de tester pour voir si le champ est Off?
J’espère que je me suis bien expliqué.
J’essayerai de joindre un fichier PDF pour test lundi pour que ce soit plus clair -
AuteurRéponses