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.