Donnez vie à vos documents numériques !
 

Renommer indice 2

abracadabraPDF Forums PDF – Général Renommer indice 2

  • Créateur
    Sujet
  • #75457
    michel c.
    Participant

    Bonjour, j’essaye d’adapter un script que BB m’avait concocté il y a quelque temps mais sans succès.

    J’aimerais pouvoir renommer (en fait supprimer puis recréer avec un nouveau nom) tous les champs dont le 2ème indice correspond à celui spécifié et modifier la valeur de celui-ci.

    Contrairement au script initial, j’aimerais que les champs crées se trouvent en lieu et place de ceux qui seront supprimés par le script et pour compliquer le truc (si c’est faisable), j’aimerais que tous les champs qui contiennent un script quelconque ne soient pas supprimés ni dupliqués mais qu’une liste de ces champs apparaisse dans la console afin que je puisse les renommer manuellement sans en oublier.

    Pour l’instant, j’essaye simplement de modifier le 2ème indice mais cela ne fait que supprimer les champs sans recréer les champs avec le nouveau nom.

     

    Merci

    Attachments:
    You must be logged in to view attached files.
Affichage de 3 réponses de 1 à 3 (sur un total de 3)
  • Auteur
    Réponses
  • #75459
    Merlin
    Maître des clés

    Salut

    Programmatiquement il est impossible de savoir si un champ contient des scripts.

    #75460
    bebarth
    Maître des clés

    bonjour,
    Il suffit de faire la même chose avec la variable P3 qu’il était fait avec la variable P2. Donc :

    function Renommer_c() {

    for (var i=0; i<this.numFields; i++) {
    var nomChamp=this.getNthFieldName(i);
    //décomposer les noms de champs en 3 parties séparées par les points : P1 ; P2 et P3
    var b = nomChamp.split(".");
    var P1 = (b[0]);
    var P2 = (b[1]);
    var P3 = (b[2]);
    var P3a = this.getField("indice2_ancien").value;
    var P3n = this.getField("indice2_nouveau").value;

    if (P3==P3a) {
    renommerChamp (nomChamp,P1+"."+P2+"."+P3n);
    this.removeField(nomChamp);
    }
    }
    }
    function renommerChamp (leNom,nouveauNom) {
    try {
    g = this.getField(leNom);
    var laValeur=g.value;
    var leType=g.type;
    var laPage=String(g.page);
    var lesPages=laPage.split(",");
    for (var p=0; p<lesPages.length; p++) {
    var cettePage=Number(lesPages[p]);
    if (lesPages.length>1) {
    var nomChamp=leNom+"."+p;
    } else {
    var nomChamp=leNom;
    }
    g=this.getField(nomChamp);
    var lesCoord=g.rect;
    var f = this.addField(nouveauNom, leType, cettePage, lesCoord);
    f = this.getField(nouveauNom);
    for (var j in g) {
    try {
    if (typeof g[j] != "function" && j != "name" && j != "type" && j != "page" && j != "rect") {
    f[j]=g[j];
    }
    } catch(e) {}
    }
    f.strokeColor=["RGB",0,147/255,0];
    f.fillColor=color.white;
    //f.display=display.hidden;
    if (leType=="combobox" || leType=="listbox") {
    var liste=new Array();
    for (var k=0; k<g.numItems; k++) {
    var valeur = g.getItemAt(k,false);
    var valeurExport = g.getItemAt(k,true);
    var element=[valeur,valeurExport];
    liste.push(element);
    }
    f.setItems(liste);
    f.currentValueIndices=g.currentValueIndices;
    }
    if (leType=="button") {
    f.buttonSetIcon(g.buttonGetIcon());
    f.buttonSetCaption(g.buttonGetCaption());
    }
    }
    } catch(e) {app.alert("\nLe champ \""+leNom+"\"\rn'existe pas dans ce document.")}
    }

    Et comme le dit Merlin, si les champs possèdent des scripts il est impossible de les recopier.
    De même, il n’est pas possible de recopier les formats (mais on peut les définir si on les connait).

    @+
    😎

    Attachments:
    You must be logged in to view attached files.
    #75462
    michel c.
    Participant

    Merci beaucoup !

     

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