Donnez vie à vos documents numériques !
 

Calcul de la clé RIB d’un compte en javascript

abracadabraPDF Forums PDF – Général Calcul de la clé RIB d’un compte en javascript

  • Ce sujet est vide.
  • Créateur
    Sujet
  • #44891
    kiki34
    Membre

    Bonjour,

    J’ai un formulaire PDF d’une traite.
    J’ai 3 champs texte banque, guichet et compte et un champ clé qui contient le script
    suivant trouvé sur le web. j’ai mis ce script dans l’onglet Calcul des propriétés du champ clé

    function getKey(banque, guichet, compte) {
      if (5 != banque.length || 5 != guichet.length || 11 != compte.length)
        return;
      function replaceAlpha(alpha) { return ‘12345678912345678923456789’.charAt(alpha.charCodeAt(0) – 65); }
      compte= parseInt(compte.toUpperCase().replace(/[A-Z]/g, replaceAlpha), 10);
      return 97 – (((parseInt(banque, 10)% 97 * 100000 + parseFloat(guichet)) % 97 * 100000000000 + compte) % 97) * 100 % 97;}
    Ne comprenant rien en javascript, pourriez-vous m’aider en m’indiquant la façon de faire pour que la clé RIB s’affiche automatiquement.Pour l’instant, lorsque je rentre les infos banque, guichet  et compte rien ne s’affiche dans le champ clé
    Merci beaucoup pour votre aide

Affichage de 12 réponses de 1 à 12 (sur un total de 12)
  • Auteur
    Réponses
  • #57317
    Merlin
    Maître des clés

    Bonjour,

    Peux tu poster ton doc ou un exemple ?

    #57318
    kiki34
    Membre

    ci joint mon fichier
    Merci pour votre aide

    [attachment deleted by admin]

    #57319
    Merlin
    Maître des clés

    J’ai essayé de bidouiller quelques trucs mais je n’y arrive pas.
    Je crois que je n’ai pas le niveau…
    :joker:

    #57320
    kiki34
    Membre

    Merci d’avoir essayé
    Je vais me tourner plutôt vers un site sur le javascript.
    Mais c’est surprenant car c’est un tout petit script et impossible d’afficher un résultat d’un script dans un champs texte de formulaire…..
    Qu’est ce que ça doit être avec des scripts de plusieurs pages….
    Christian

    #57321
    Merlin
    Maître des clés

    Il y a JavaScript et JavaScript, une fois qu’on a la bonne formule il reste à l’adapter au support.
    Parce-qu’on ne s’adresse pas à des objets dans une page HTML comme à des champs dans une page PDF ou dans une application mobile.

    N’hésites à revenir si tu as des problèmes pour l’adaptation en PDF.
    :Smiley01:

    #57322
    kiki34
    Membre

    ok j’ai trouvé une doc sur Adobe. using javascript in acrobat PDF document… 220 pages….en anglais.
    ou bien Je vais acheter 1 kilos de boites d’aspirine  :mur:  et le dictionnaire Harraps ou plus simplement je laisse tomber et je vais aller me faire bronzer à la plage… :soleil:

    Merci tout de même mais le jeu n’en vaut pas la peine.
    Christian

    #57323
    Merlin
    Maître des clés

    Merci tout de même mais le jeu n’en vaut pas la peine.

    Oui, l’utilisateur peut sans peine saisir lui-même les deux chiffres de la clé RIB puisqu’il les a sous les yeux.
    :joker:

    #57324
    brumbies
    Membre

    Bonsoir,
    tu peux mettre le code ci-dessous dans les scripts de calcul personnalisé (il y a surement plus “court” pour transcoder du alphanumérique en numérique suivant la table de transco que j’ai repris).
    Pour info, j’ai repris les noms de tes champs de formulaires.

    Code:
    var a = “”;
    num = “a” + this.getField(“compte”).value;
    if(num.length == 12)
    {
    for(var i = 2; i{
    if((num.substring(i-1,i)/1) == num.substring(i-1,i))
    {
    a = a + “” + num.substring(i-1,i);
    }
    else
    {
    if( num.substring(i-1,i) == “A” || num.substring(i-1,i) == “J”)
    a = a + “1”;
    if( num.substring(i-1,i) == “B” || num.substring(i-1,i) == “K” || num.substring(i-1,i) == “S”)
    a = a + “2”;
    if( num.substring(i-1,i) == “C” || num.substring(i-1,i) == “L” || num.substring(i-1,i) == “T”)
    a = a + “3”;
    if( num.substring(i-1,i) == “D” || num.substring(i-1,i) == “M” || num.substring(i-1,i) == “U”)
    a = a + “4”;
    if( num.substring(i-1,i) == “E” || num.substring(i-1,i) == “N” || num.substring(i-1,i) == “V”)
    a = a + “5”;
    if( num.substring(i-1,i) == “F” || num.substring(i-1,i) == “O” || num.substring(i-1,i) == “W”)
    a = a + “6”;
    if( num.substring(i-1,i) == “G” || num.substring(i-1,i) == “P” || num.substring(i-1,i) == “X”)
    a = a + “7”;
    if( num.substring(i-1,i) == “H” || num.substring(i-1,i) == “Q” || num.substring(i-1,i) == “Y”)
    a = a + “8”;
    if( num.substring(i-1,i) == “I” || num.substring(i-1,i) == “R” || num.substring(i-1,i) == “Z”)
    a = a + “9”;
    }
    }
    var RIB = 97 – ( (89 * this.getField(“banque”).value + 15 * this.getField(“guichet”).value + 3 * a ) % 97 );
    this.getField(“Cle”).value = RIB;
    }

    :Smiley01:

    #57325
    Merlin
    Maître des clés

    Bonjour,

    As tu testé ce script ?
    Je n’arrive pas à le faire fonctionner…

    :Euuuh:

    #57326
    brumbies
    Membre

    Oui, je te joins le fichier avec le script (au niveau du champs “Clé”).
    Il y a 2 choses :
    1) il ne gère pas les évènements de saisi (donc la clé RIB s’affiche qu’une fois le champs “compte” “désactivé”)
      => perso, j’utilise très peu les évènements.
    2) un numéro de compte comprends 11 chiffres donc la clé n’est calculé que si le champs “compte” comprends 11 caractères
      => on peut supprimer ce controle en supprimant la condition “if(num.length == 12)”
      => j’ajoute le caractère “a” à la valeur du champs “compte” afin de prendre en compte les numéro commencant par 0 (il y a peut être une autre solution).
    :Smiley01:

    [attachment deleted by admin]

    #57327
    brumbies
    Membre

    mea culpa, je me suis focalisé sur un numéro de compte comprenant des lettres, j’ai modifié le fichier pour qu’il prenne en compte les différents types de numéro de compte.
    Ca devrait fonctionner maintenant quelque soit ton RIB.
    Je ne teste plus le nombre de caractère mais cela est faisable au niveau cu champs “compte” directement.
    :Smiley02:

    [attachment deleted by admin]

    #57328
    Merlin
    Maître des clés

    Ca fonctionne très bien.
    Bravo et merci.

    :bravo:  :extra:

Affichage de 12 réponses de 1 à 12 (sur un total de 12)
  • Vous devez être connecté pour répondre à ce sujet.