abracadabraPDF › Forums › PDF – Général › Vérification › Répondre à : Vérification

J’ai essayé le script de BB qui fonctionne parfaitement.
Je l’ai modifié en fonction de mes besoins.
Je préfère qu’il n’y ait pas de boite de dialogue qui s’ouvre pour la saisie des noms de champs, j’ai supprimé cette fonctionnalité (je vais la garder dans un coin pour moi mais je préfère simplifier le formulaire pour mes collègues qui vont l’utiliser)
En fonction du nom de champ, les indices a et b de départ ne sont pas les mêmes :
- pour les champs Question ; Q et R les indices commencent à 1.1
- pour les champs cAc : les indices commencent à 1.0
- pour les champs Verifier ; Recommencer et Aide : les indices commencent à 1.0
Le script modifié a l’air de bien fonctionner :
var reponse="Titre,TQ,Question,Q,R,Aide,Verifier,Recommencer,cAc,Doc";
var reponse=reponse.replace(/[,]{2,}/g,",").replace(/^,/,"").replace(/,$/,"");
var aVerifier=reponse.split(",");
var lesSeries=[];
for (var i=0; i<this.numFields; i++) {
var nomChamp=this.getNthFieldName(i);
for (var j=0; j<aVerifier.length; j++) {
var RegExTest=new RegExp("^"+aVerifier[j]+"\\.(\\d+)\\.(\\d+)$");
var OK=nomChamp.match(RegExTest);
if (OK) {
var ind1=OK[1];
var ind2=OK[2];
if (lesSeries[j]==undefined) lesSeries[j]=[aVerifier[j],[]];
if (lesSeries[j][1][ind1]==undefined) lesSeries[j][1][ind1]=[ind1,[]];
if (lesSeries[j][1][ind1][1][ind2]==undefined) lesSeries[j][1][ind1][1][ind2]=[ind2];
break;
}
}
}
var txt=""
for (var i=0; i<lesSeries.length; i++) {
if (lesSeries==undefined) txt+="Il n'y a pas de champ \""+aVerifier+"\" avec indices.\r";
else {
if (aVerifier=="Titre") {
for (var j=0; j<lesSeries[1].length; j++) {
if (lesSeries[1][j]==undefined) txt+="Il n'y a pas d'indice de premier niveau \""+aVerifier+"."+[j]+"\".\r";
else {
for (var k=0; k<lesSeries[1][j][1].length; k++) {
if (lesSeries[1][j][1][k]==undefined) txt+="Il n'y a pas d'indice de second niveau \""+aVerifier+"."+[j]+"."+k+"\".\r";
}
}
}
}
if (aVerifier=="Question" || aVerifier=="Q" || aVerifier=="R" || aVerifier=="TQ") {
for (var j=1; j<lesSeries[1].length; j++) {
if (lesSeries[1][j]==undefined) txt+="Il n'y a pas d'indice de premier niveau \""+aVerifier+"."+[j]+"\".\r";
else {
for (var k=1; k<lesSeries[1][j][1].length; k++) {
if (lesSeries[1][j][1][k]==undefined) txt+="Il n'y a pas d'indice de second niveau \""+aVerifier+"."+[j]+"."+k+"\".\r";
}
}
}
}
if (aVerifier=="cAc") {
for (var j=1; j<lesSeries[1].length; j++) {
if (lesSeries[1][j]==undefined) txt+="Il n'y a pas d'indice de premier niveau \""+aVerifier+"."+[j]+"\".\r";
else {
for (var k=0; k<lesSeries[1][j][1].length; k++) {
if (lesSeries[1][j][1][k]==undefined) txt+="Il n'y a pas d'indice de second niveau \""+aVerifier+"."+[j]+"."+k+"\".\r";
}
}
}
}
if (aVerifier=="Verifier" || aVerifier=="Recommencer" || aVerifier=="Aide") {
for (var j=1; j<lesSeries[1].length; j++) {
if (lesSeries[1][j]==undefined) txt+="Il n'y a pas d'indice de premier niveau \""+aVerifier+"."+[j]+"\".\r";
else {
for (var k=0; k<lesSeries[1][j][1].length; k++) {
if (lesSeries[1][j][1][k]==undefined) txt+="Il n'y a pas d'indice de second niveau \""+aVerifier+"."+[j]+"."+k+"\".\r";
}
}
}
}
}
}
console.clear();
console.show();
console.println(txt);
Il me reste quelques modifications encore à apporter :
S’il n’y a aucun message à afficher : ne pas afficher la console
pour tout champ nommé Verifier.a.0 faire apparaitre un message s’il n’existe pas de champ nommé Recommencer.a.0
pour tout champ nommé Aide.a.0 faire apparaitre un message s’il n’existe pas de champ nommé Aide.a.1
Je vais me pencher là dessus.
Merci beaucoup en tout cas pour ce script !