Donnez vie à vos documents numériques !
 

Répondre à : Numéro aléatoire sans répétition

abracadabraPDF Forums PDF – Général Numéro aléatoire sans répétition Répondre à : Numéro aléatoire sans répétition

#64953
Rockabilly
Participant

bonjour,
Voila ! Dans le fichier joint il y a un champ “Invisible” qui est… invisible et qui, une fois réinitialisé, est égale à “1,2,3,4,5,6,7,8”.
Puis le script dans chaque bouton (qui pourrait être en script de document) :

Code:
var str = this.event.target.name;
var n = str.indexOf(“.”);
var indice = parseInt(str.substring(n+1));
var str = this.getField(“Invisible”).value;
try {
    var laTable = str.split(“,”);
    var n=Math.floor(Math.random()*laTable.length);
    var nb=laTable[n];
    this.getField(“Number.”+indice).value=nb;
    laTable.splice(n, 1);
    this.getField(“Invisible”).value=laTable.toString();
} catch(e) {this.getField(“Number.”+indice).value=this.getField(“Invisible”).value}
this.event.target.readonly=true;

Ici, j’ai mis les boutons en lecture seule une fois que l’on a appuyé dessus, et un bouton de réinitialisation de tous les champs.
@+
:bonjour:

Merci bebarth, ça fonctionne à merveille.
En fait, j’ai un bouton à côté de chaque patient pour annuler son numéro si le patient se retire et le remettre dans le champ invisible.
J’utilise ce code pour remettre le numéro dans le champ:

Code:
var s1 = getField(“Number.1”).valueAsString;
this.getField(“Invisible”).value = this.getField(“Invisible”).value + “,” + s1;

Cependant j’ai remarqué que le dernier numéro ne disparait jamais du champ invisible, alors si j’annule la dernière randomisation le numéro se retrouve 2 fois ou si j’annule disons le sixième patient, j’ai le dernier numéro et celui du sixième patient. Donc si je re-randomise, il est possible que 2 patients aient le même numéro.