Donnez vie à vos documents numériques !
 

Compatibilité formulaire OSX et IOS

abracadabraPDF Forums PDF – Mobile Compatibilité formulaire OSX et IOS

  • Ce sujet est vide.
15 sujets de 1 à 15 (sur un total de 32)
  • Auteur
    Messages
  • #45175
    max68
    Membre

    Bonjour à tous

    J’ai un formulaire multipages à concevoir.
    ce formulaire sera presque exclusivement utilisé sur mobile.

    L’une de ses principales fonctions consisterait à récupérer dans un champs le résultat de la sélection d’une liste déroulante.

    Une autre fonction serait de renseigner ma liste déroulante via un fichier .csv ou txt.

    J’ai téléchargé des exemple de PDF avec des listes déroulantes mère/filles et des fichiers joints en .csv et txt alimentant des listes déroulantes sur ce forum.

    Résultat aucun javascript de ces exemples, pourtant simples, ne fonctionnent sur mobile (contrairement à mon mac où tout fonctionne très bien)

    Ma question est la suivante :
    Ce que je cherche, en particulier la première fonction (tant pis pour les listes en .csv) peut-elle être fonctionnelle sur un mobile sachant qu’elle semble être relativement simple ?

    Merci pour votre aide.

    Cordialement.

    #59112
    Merlin
    Maître des clés

    Bonjour et bienvenue.

    Sur mobile il faut tester avec PDF Expert (iOS) ou avec ezPDF Reader (Android), ce sont les logiciels les plus performants sur mobiles, mais pas gratuits…

    :idee:

    #59113
    max68
    Membre

    Merci Merlin pour ta réponse.

    J’ai PDF Expert et les fichiers (créés par Alex, entre autre, donc plutôt optimisés) ne fonctionnent pas.

    Je voudrais tester ma fonction évoquée ici mais je n’ai aucune notion de Javascript.

    En fait, si je sélectionne dans une liste déroulante le mot hêtre j’aimerais qu’il vienne se mettre dans un champ spécifique sur une autre page.

    Quelqu’un peut-il m’aider en me proposant un exemple simple de ce type pour que je le teste voir si sa fonctionne afin que je sache si j’abandonne ou pas ce projet.

    Merci à tous pour votre aide.

    #59114
    Merlin
    Maître des clés

    Enjoy.

    :Smiley15:

    #59115
    Merlin
    Maître des clés

    PS : merci de saisir les messages directement dans le champ de saisie du forum, ou bien de faire des copier-coller « texte seul », pour m’éviter d’avoir à nettoyer toutes ces balises inutiles.
    :Smiley03:

    #59116
    max68
    Membre

    Merci beaucoup Merlin pour le coup de main : très appréciable  :Smiley01:  et désolé pour les balises.

    Je constate que ça fonctionne très bien avec PDF expert mais pas sur reader ce qui est un comble.
    Sans trop de surprises d’ailleurs car j’ai lu ça et là cette invraisemblance de la par d’Adobe…

    Pour revenir à mon projet :
    Est-ce que d’après toi il est possible de faire la même chose (récupérer la valeur d’un champ dans un autre champ) mais en remplissant ces champs dans un ordre précis : je m’explique.

    J’ai X listes déroulantes. Dans mon flux de travail toutes ne seront pas utilisées. Je souhaite donc faire une synthèse, dans une autre page, des infos qui ont été sélectionnées dans ces listes (plus pratique à consulter que de vérifier 50 listes par exemple).

    Ma première idée était de laisser des champs vides qui viendront se remplir en fonction des sélections des listes.
    Problème : j’aurai une succession de champs alternativement vides et remplis, donc pas lisible et pratique du tout (je viens de m’en rendre compte :Smiley11: )
    D’où mon idée : Ma première liste déroulante (LR, plus simple) est validée > elle va remplir le premier champ libre.
    Ma Xième LR est validée, le script comprend que le premier champ est plein et va reporter la valeur de la liste dans le champ suivant qui est libre, etc.

    • Peut-être qu’une autre solution serrait de concaténer les différentes sélection de listes dans un champ texte ?

    J’espère avoir été clair.

    Si j’arrive à faire avaler ça au moins à PDF expert, je serai un homme heureux et mon projet pourra aboutir. :geek:

    Merci de votre soutien.

    #59117
    Merlin
    Maître des clés

    Je constate que ça fonctionne très bien avec PDF expert mais pas sur reader ce qui est un comble.
    Sans trop de surprises d’ailleurs car j’ai lu ça et là cette invraisemblance de la par d’Adobe…

    Adobe Reader Mobile n’existe plus, il a été remplacé par Acrobat DC (pour mobile).
    ==> Mise-à-jour.

    Adobe est très soucieux de sécurité, contrairement à Apple (iOS) et Google (Android) :
    – les fonctions JavaScripts qui peuvent être exploitées via le système ou celles qui peuvent exploiter le système ne sont pas implémentées.
    – les fonctions JavaScripts sont implémentées au compte-goutte après avoir été soigneusement testées sur les deux OS.
    – Adobe veut pouvoir proposer le même logiciel sur Android et iOS : ce qui ne fonctionne pas sur l’un n’est pas implémenté sur l’autre.

    Tous les éditeurs ne peuvent pas en dire autant, mais tous n’ont pas la même clientèle ni le même modèle économique.

    Peut-être qu’une autre solution serrait de concaténer les différentes sélection de listes dans un champ texte ?

    Recherche « concaténation » dans le forum.
    :Smiley03:

    #59118
    max68
    Membre

    OK Merlin, j’ignorais quel était l’origine de ce problème javascript sur mobile. Merci pour l’info. (J’ai acrobat DC)
    Patience, donc, de notre part.

    Penses-tu que je puisse mettre en place ce que j’évoquais avant (détection du champ plein et passage au suivant ) ?

    Est-ce que la concaténation est gérée sur iOS ?
    Je commence tout juste à mettre les mains dans JS et je transpire beaucoup, beaucoup, beaucoup…  :Euuuh: :oh: :priere:

    #59119
    Merlin
    Maître des clés

    Tu as de la chance, je viens de recroiser ça par hasard :

    Ce script concatène les valeurs de plusieurs champs dans un seul.
    Les noms en capitales et entre guillemets doivent être remplacés par les noms des champs texte qui contiennent les valeurs (ne pas supprimer les guillemets).

    Code:
    // initialisation des variables
    var nom=this.getField(« NOM »);
    var prenom=this.getField(« PRENOM »);
    var adress=this.getField(« RUE »);
    var CP=this.getField(« CODEPOSTAL »);
    var comune=this.getField(« COMMUNE »);
    var adressFinale=this.getField(« ADRESSE-COMPLÈTE »);
    // vérifie si les champs sont vides (facultatif)
    if (nom.value == «  »)
    {
    app.beep(0);
    app.alert(« Le champ «nom» est vide! »);
    }
    else if (adress.value == «  »)
    {
    app.beep(0);
    app.alert(« Le champ «adresse» est vide! »);
    }
    else if (CP.value == «  »)
    {
    app.beep(0);
    app.alert(« Le champ «code postal» est vide! »);
    }
    else if (comune.value == «  »)
    {
    app.beep(0);
    app.alert(« Le champ «commune» est vide! »);
    }
    // concaténation dans le champ d’accueil
    // antislash-r sert à sauter une ligne
    adressFinale.value = « rr » + nom.value +  »  » + prenom.value + « r » + adress.value + « r » + CP.value +  »  » + comune.value;

    :Smiley15:

    #59120
    Merlin
    Maître des clés

    Est-ce que la concaténation est gérée sur iOS ?

    Aucune idée.
    :joker:

    Mais on compte sur toi pour la réponse.  :Smiley03:

    #59121
    max68
    Membre

    OOHH qu’il est beau le code :Smiley08: 
    Quand je vois ça, j’ai l’impression d’être tout nu dans une rue de Pekin aux heures de pointe… :priere: :bonjour:

    Bon, je teste pour vérifier si ça fonctionne sur IOS et je reviens vers toi
    Merci  :Smiley01:

    #59122
    max68
    Membre

    Je suppose que le code doit venir dans le champ sensé récupérer la concaténation mais dans quelle partie des options dois-je le mettre : format, validation ou calcul ?

    #59123
    Merlin
    Maître des clés

    Je suppose que le code doit venir dans le champ sensé récupérer la concaténation

    Oui.

    dans quelle partie des options dois-je le mettre : format, validation ou calcul ?

    Réponse longue : http://abracadabrapdf.net/ressources-et-tutos/js-et-formulaires-ressources/lordre-dexecution-des-evenements-dans-les-champs-de-formulaire-pdf/

    Réponse courte : Calcul

    :Smiley15:

    #59124
    max68
    Membre

    Bon ben me revoilà.

    Je sèche complètement. J’ai fais un test simple avec 2 listes est un champ de concaténation.

    J’ai modifié le code que tu m’as donné Merlin en le simplifiant pour l’adapter à mon test.

    Le code est le suivant :

    Code:
    // initialisation des variables
    var arbres=this.getField(« arbres »);
    var fleurs=this.getField(« fleurs »);
    // vérifie si les champs sont vides (facultatif)
    if (arbres.value == «  »)
    {
    app.beep(0);
    app.alert(« Le champ «arbres» est vide! »);
    }
    else if (fleurs.value == «  »)
    {
    app.beep(0);
    app.alert(« Le champ «fleurs» est vide! »);
    }
    // concaténation dans le champ d’accueil
    // antislash-r sert à sauter une ligne
    adressFinale.value = « rr » + nom.value +  »  » + prenom.value + « r » + adress.value + « r » + CP.value +  »  » + comune.value;

    Rien ne s’ajoute dans mon champ texte.

    Si je trouve la solution il faudrait que je puisse mettre les mots séparés par des retours paragraphes, je ne sais pas si c’est faisable.

    Je joins le fichier si ça peut être utile. Merci de votre aide.

    #59125
    Merlin
    Maître des clés

    Rien ne s’ajoute dans mon champ texte.

    Forcément, si tu changes le nom des variables au début et pas à la fin…  :tutut:

    Si je trouve la solution il faudrait que je puisse mettre les mots séparés par des retours paragraphes, je ne sais pas si c’est faisable.

    A quoi sert il que je commente les scripts ?  :Smiley03:
    // antislash-r sert à sauter une ligne

    Je joins le fichier si ça peut être utile.

    Ci-joint la preuve que oui.  :geek:

    Code:
    // initialisation des variables
    var arbres=this.getField(« arbres »).value;
    var fleurs=this.getField(« fleurs »).value;
    // concaténation dans le champ d’accueil
    // antislash-r sert à sauter une ligne
    this.getField(« Text1 »).value = arbres + « r » + fleurs;
15 sujets de 1 à 15 (sur un total de 32)
  • Vous devez être connecté pour répondre à ce sujet.