Donnez vie à vos documents numériques !
 

Problème champs liés après duplication de pages

abracadabraPDF Forums PDF – Général Problème champs liés après duplication de pages

  • Ce sujet est vide.
  • Créateur
    Sujet
  • #46446
    souris64
    Membre

    Bonjour,

    Je dois réaliser 25 fichiers de fiches test où je donne la possibilité de dupliquer une page pour renseigner les résultats de tests.

    J’ai utilisé le tuto : https://www.abracadabrapdf.net/ressources-et-tutos/js-et-formulaires-ressources/dupliquer-dynamiquement-des-pages-dans-un-pdf/ qui correspond totalement à mon besoin, mais voià, il y a quelque chose qui va pas.
    La fiche fonctionne pour une duplication mais dès que je duplique plus d’une fois, les champs des 2 pages créées sont liés et n’ont donc plus d’intéret.

    Le code javascript utilisé est : this.getTemplate(“AEF_PB1_09-2017-modele”).spawn({nPage:3, bRename:true, bOverlay: false});
    Dans le modele du tuto, les champs de chaque nouvelle page s’implémente (sais pas si c’est le bon therme) mais pas sur le mien, c’est toujours p3. Je ne comprends pas pourquoi.
    J’ai aussi tenté avec le code : this.getTemplate(“AEF_PB1_09-2017-modele”).spawn({this.numPage, bRename:true, bOverlay: false}); la page s’intègre à la fin mais surtout les champs ne s’implémentent toujours pas et restent sur p5
    Il me semble comprendre que ca pourrait venir du fait que la page dupliquée arrive toujours au même numéro de page donc remplace la première au lieu de se mettre à la suite à chaque fois, mais sur le modèle tuto ce n’est pas le cas :/

    https://abracadabrapdf.net/forum/index.php?topic=3078.0
    J’ai trouvé une possible solution sur le lien ci dessus mais je ne comprends pas comment créer une variable qui permet d’implémenter la position à chaque fois.
    J’espere avoir été claire, j’ai grandement besoin d’aide.
    Merci d’avance de vos retours.

Affichage de 8 réponses de 1 à 8 (sur un total de 8)
  • Auteur
    Réponses
  • #68277
    souris64
    Membre

    Bonjour,

    Merci Merlin d’avoir déplacé mon post que j’avais mal rangé.
    J’ai avancé. J’ai réussi à ne pas lier les champs et à intégrer la fiche dupliquée dans le doc, avec le script :

    Code:
    this.getTemplate(“AEF_PB2_09-2017-modele”).spawn({nPage:this.pageNum++, bRename:true, bOverlay: false});

    Voulant que la fiche se mette à la suite de ma page dupliquée sans lui imposer un n° de page. Mais malheureusement elle se met avant :/ :Euuuh:
    Voilà, je sais plus trop quoi faire.
    Si vous avez une inspi, je suis plus que preneuse.
    Merci merci et bonne journée.
    Marie

    #68278
    Merlin
    Maître des clés

    Bonjour et bienvenue

    Tu as bien fait de ne pas suivre l’exemple que tu donnes en 2e lien car à mon avis utiliser une variable dans ce cas est dangereux : une variable est volatile, elle disparait quand on ferme le document et donc tout repart à zéro (donc à 3 dans ton exemple) lors de l’utilisation suivante.

    Il est donc plus judicieux de placer cette variable dans un champ de formulaire (masqué et au format : Nombre), ainsi elle reste persistante même si l’utilisateur ferme le document ou quitte le logiciel.
    J’ai placé ce champ masqué juste au-dessus du bouton de spawn, qui utilise ce script :

    var nNumeroPage = this.getField(“stock.variable1”).value;
    this.getTemplate(“AEF_PB1_09-2017-modele”).spawn({nPage:nNumeroPage, bRename:true, bOverlay: false});
    this.getField(“stock.variable1”).value = this.getField(“stock.variable1”).value +1;

    Exemple fonctionnel ci-joint.
    :Smiley15:

    PS : je ne sais pas si tu sais sur quelles machines et avec quelle taille d’écran ton document sera utilisé, mais avec un grand écran comme le mien l’ouverture du document en pleine largeur c’est juste insupportable.  :Smiley03:

    #68279
    souris64
    Membre

    Bonjour Magicien Merlin,

    Merci c’est évidemment exactement ca!
    J’ai voulu le refaire sur mes autres fichiers et en copiant la variable dans un champ de formulaire masqué et en remettant le meme script, ben tu l’auras deviné, ca marche pas. les pages dupliquées se mettent à la fin.
    Est ce que tu as une idée de ce que j’aurais oublié en copiant ce process dans mes autres document de meme forme?
    Merci d’avance pour ton aide précisieuse.
    PS: c’est prévu pour des écrans nomades ;-)

    #68280
    Merlin
    Maître des clés

    As-tu adapté le nom du champ masqué dans le script ?

    var nNumeroPage = this.getField(“stock.variable1“).value;
    this.getTemplate(“AEF_PB1_09-2017-modele”).spawn({nPage:nNumeroPage, bRename:true, bOverlay: false});
    this.getField(“stock.variable1“).value = this.getField(“stock.variable1“).value +1;

    Qu’on pourrait aussi bien écrire ainsi pour ne pas répéter le nom du champ inutilement :

    var cNomChamp = this.getField(“stock.variable1“);
    var nNumeroPage = cNomChamp.value;
    this.getTemplate(“AEF_PB1_09-2017-modele”).spawn({nPage:nNumeroPage, bRename:true, bOverlay: false});
    cNomChamp.value = Number(nNumeroPage) +1;

    #68281
    Merlin
    Maître des clés

    PS : attention aussi que le champ masqué à une valeur par défaut (3).

    #68282
    bebarth
    Maître des clés

    bonjour,
    Si je peux me permettre, vu que la page est toujours dupliquée en avant dernière page, il suffit de toujours la placer à cet endroit…
    Donc juste :
    this.getTemplate(“AEF_PB1_09-2017-modele”).spawn({nPage:this.numPages-1, bRename:true, bOverlay: false});
    Une seule ligne de script. Pas besoin de champ invisible avec variable !
    @+
    :bonjour:

    #68283
    souris64
    Membre

    Bonsoir,

    Nous avons donc ici 2 magiciens.
    J’ai opté pour le code le plus simple en super novice que je suis, et ca marche.
    Merci immense à vous 2 pour votre aide.
    Bonne nuit!

    #68284
    Merlin
    Maître des clés

    2 cerveaux valent mieux qu’un seul !
    :extra:

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