Toutes mes réponses sur les forums
-
AuteurRéponses
-
2 juin 2019 à 19:27 en réponse à : Script pour ajouter une image sur les pages impaires puis dupliquer pages paires #65752
bebarthMaître des clésbonsoir,Ça me parait réalisable !
As-tu réellement besoin d’un nouveau fichier final ?
L’image que tu veux ajouter est un fichier jpeg accessible ?
@+
:bonjour:
bebarthMaître des clésbonjour,
Il ne doit pas y avoir de problème !
Voici un lien qui pourra t’aider avec un tampon satdard :
https://help.adobe.com/en_US/acrobat/acrobat_dc_sdk/2015/HTMLHelp/index.html#t=Acro12_MasterBook%2FJS_API_AcroJS%2FAnnotation_properties.htm%23TOC_APbc-3&rhtocid=_6_1_8_3_1_2
Si tu as besoin d’un tampon personnalisé avec eurodateur par exemple, tu demandes et on essaiera de t’aider…
@+
:bonjour:
bebarthMaître des clésbonjour,
Voici pour un script de touches personnalisé :Code:if (this.event.value.length>500) {
app.alert(« Vous ne devez pas utiliser plus de 500 caractères. »,3);
} else {
if (this.event.value.length==0) event.change= »• « +event.change;
if (this.event.change== »n ») event.change= »n• « ;
}Ne pas oublier de mettre le champ en multi lignes…
Je dis ça, parce que j’ai moi-même oublié dans un premier temps et je ne comprenais pas pourquoi ça ne fonctionnait pas !
@+
:bonjour:
bebarthMaître des clésbonjour,
Tu souhaites qu’en cours de frappe on ajoute une puce après chaque retour ligne ?
@+
:bonjour:
bebarthMaître des clésbonjour,
C’est peut-être réalisable en mettant l’image dans un champ « bouton ».
https://help.adobe.com/en_US/acrobat/acrobat_dc_sdk/2015/HTMLHelp/index.html#t=Acro12_MasterBook%2FJS_API_AcroJS%2FField_methods.htm%23TOC_buttonImportIconbc-4&rhtocid=_6_1_8_31_2_3
Mais il faudrait faire un fichier exemple plus précis pour voir ce que tu veux exactement…
@+
:bonjour:
bebarthMaître des clésbonjour,
– afficher/masquer plusieurs listes déroulantes secondaires en fonction de la sélection,
C’est la solution la plus simple !
– réinitialiser et remplir une seule liste déroulante secondaire en fonction de la sélection.
Voir le post ci-dessous avec son exemple qui fait à peu près la même chose :
https://abracadabrapdf.net/forum/index.php?topic=3564.msg21873#msg21873
https://abracadabrapdf.net/forum/index.php?action=dlattach;topic=3564.0;attach=3983Alors, quelle solution ?
@+
:bonjour:
bebarthMaître des clésbonjour,
N’ayant pas de réponse, voici un exemple qui fixe la date au dernier jour du mois s’il y a incompatibilité jour/mois.
Comme j’en avais besoin pour savoir s’il fallait fixer au 28 ou 29 février, j’ai également écris un script pour savoir si l’année est bissextile ou pas !
@+
:bonjour:PS. J’ai modifié le fichier avec 2 types formats de champs : « Standard » et « Date ».
bebarthMaître des clésQue ce soit un mois de 28 ou 31 jours, ce doit toujours être le même jour plus un mois ?
Si on est le 31 janvier, c’est quelle date avec un mois de plus ?Du coup, pour t’aider, j’aurais besoin que tu me dises un mois après le 31 janvier (par exemple) est-ce le 28 (ou 29) février ou est-ce le 1 mars ?
@+
:bonjour:
bebarthMaître des clésre-bonjour,
Je ne cherche effectivement pas à vexer quiconque et je suis désolé si je l’ai fait malencontreusement.
J’ai personnellement toujours demandé à mes interlocuteurs anglophones de me corriger lorsque je fais des fautes pour éviter de les refaire !
Mais c’est également valable pour le français… car je fais des fautes comme tout le monde.
@+
:bonjour:
bebarthMaître des clésbonjour,
J’ai téléchargé le fichier exemple bebarth avec le code incluant le remise à zéro du champs si le champs de la date est vide, mais je ne comprends pas, le seul résultat que cela me donne dans la date du jour.
Il n’y a pas de raison, je viens de vérifier et ça fonctionne !
Si cela avait fonctionné, j’aurais tenté de modifier pour entrer une date dans un champs + un nombre de mois dans un autre champs pour me donner une « date en résultat » (après l’addition du nombre de mois indiqué).
Que ce soit un mois de 28 ou 31 jours, ce doit toujours être le même jour plus un mois ?
Si on est le 31 janvier, c’est quelle date avec un mois de plus ?
@+
:bonjour:
bebarthMaître des clésbonjour,
En fait c’est un fichier normal (type mes documents
) et à l’intérieur les photos sont soit en JPEG soit en PDF.Tu parles d’images incluses dans un fichier Excel ? Je ne pense pas que ce soit possible à partir d’un script Acrobat !
@+
:bonjour:
bebarthMaître des clésbonjour,
Je vous explique : dans un fichier, j’ai un certain nombre de photos de personnes nommées par le nom et prénom des personnes…
Quel format de fichier ?
@+
:bonjour:
bebarthMaître des clés…je viens de penser que j’ai déjà fait plus compliqué en script de touches personnalisé il n’y a pas très longtemps !
https://abracadabrapdf.net/forum/index.php/topic,3668.0.html
Donc, en plus simple, juste :Code:if (this.event.value.length==0) event.change = event.change.toUpperCase();@+
:bonjour:
bebarthMaître des clésboujour,
Dans un précédent exemple, j’avais écris ce script en champ désactivé :Code:this.event.target.value = this.event.target.value.slice(0, 1).toUpperCase()+this.event.target.value.slice(1);Par contre, ça ne modifie le champ que lorsqu’il est désactivé…
Il est certainement possible de le faire directement avec un script de touches personnalisé, mais il faut réfléchir un peu… je verrai plus tard !
@+
:bonjour:
bebarthMaître des clésbonjour,
Le problème arrive lorsque je déroule cette liste déroulante, vu que le texte est blanc et que le « fond » des choix la liste est blanc aussi, et bien on ne voit pas tous les choix.
Pour moi ça apparait en vidéo inversée…
Sinon tu pourrais changer la couleur du texte en champ activé (this.event.target.textColor = color.red;) par exemple et revenir en blanc en champ désactivé (this.event.target.textColor = color.white;) !
@+
:bonjour:
bebarthMaître des clésbonjour,
Je n’ai pas eu de problème particulier !
Je t’ai envoyé un lien WeTransfer sur ta boite mail.
@+
:bonjour:2 mai 2019 à 18:39 en réponse à : Griser une ou des zones de texte lorsque l’on coche une case #65681
bebarthMaître des clésbonjour,
je t’ai envoyé un e-mail avec mon adresse.
@+
:bonjour:1 mai 2019 à 19:58 en réponse à : Griser une ou des zones de texte lorsque l’on coche une case #65679
bebarthMaître des clésbonjour,
Peux-tu partager un fichier pour qu’on te montre ?
Pour le texte, on peut créer un champ couleur du fond qui servira de masque, mais on ne peut pas supprimer le texte…
@+
:bonjour:
bebarthMaître des clésbonjour,
Je ne connais pas PDF Element, mais certainement dans l’onglet « Format » il doit y avoir une option « Script de touches personnalisé » ou quelque chose comme ça !
@+
:bonjour:
bebarthMaître des clésbonsoir,
action, souris relachée, lacer javascript et event.change = event.change.toUpperCase () mais ca ne fonctionne pas.
Ce n’est aps en script d’action mais en script de touches personnalisé, et le script exact est :
Code:if(!event.willCommit) event.change = event.change.toUpperCase();Pour le reste, tu peux lire cette page :
https://acrobatusers.com/tutorials/formatting_text_fields
et étudier le fichier associé :
http://www.windjack.com/DownLoads/FormattingExamples.pdf
Si tu n’y arrives toujours pas, tu redemandes !
@+
:bonjour:26 avril 2019 à 12:47 en réponse à : Griser une ou des zones de texte lorsque l’on coche une case #65675
bebarthMaître des clésbonjour,
Il n’y a pas de raison… as-tu placé le script en action de souris relâchée ???
Regarde le fichier joint.
Si tu ne trouves pas, peux-tu partager ton fichier ?
@+
:bonjour:25 avril 2019 à 18:59 en réponse à : Griser une ou des zones de texte lorsque l’on coche une case #65672
bebarthMaître des clésbonjour,
… l’on coche une case des zones de texte se grisent ou n’apparaissent plus.
On peut faire soit l’un, soit l’autre !
Ici le script pour la case à cocher « celibataire » afin de masquer les 2 autres champs :Code:if (this.event.target.value!= »Off ») {
this.getField(« conjoint »).display=display.hidden;
this.getField(« enfants »).display=display.hidden;
} else {
this.getField(« conjoint »).display=display.visible;
this.getField(« enfants »).display=display.visible;
}…bien qu’on peut tout à fait avoir des enfants sans être marié !!!
@+
:bonjour:
bebarthMaître des clésbonjour,
Mai ce qui me tracasse c’est la réinitialisation du menu déroulant « fournisseur » quand la case est décoché :Euuuh:
il suffit de rajouter « this.getField(« enseigne »).value= » »; »
Pour les cases à cocher, je préfère « if (this.event.target.value != « Off ») » qui signifie « si la case n’est pas décochée » quelle que soit la valeur attribuée.
@+
:bonjour:
bebarthMaître des clésLe script était presque bon (j’ai juste enlevé « this. »), mais surtout il faut le placer en script de calcul, pas en script de format.
Ça je ne comprend pas pourquoi retirer « this » ! Mettre le même script en calcul suffit…
https://help.adobe.com/en_US/acrobat/acrobat_dc_sdk/2015/HTMLHelp/index.html#t=Acro12_MasterBook%2FJS_API_AcroJS%2Fthis.htmPar contre, contrairement au post précédent je placerais plutôt ce script en validation car le résultat ne dépend uniquement de la sélection dans la liste et le calcul ne se fait qu’à la validation de cette liste. L’astuce étant de mettre « this.event.value » et non « this.event.target.value » si la valeur est calculée immédiatement… sinon il y a un décalage d’un coup !!!
Code:if (this.event.value<3) this.getField("Raison3").display=display.visible;
else this.getField(« Raison3 »).display=display.hidden;Petite remarque : Les champs qui apparaissent lorsque les cases sont cochées ne devraient-ils pas disparaître lorsque les cases sont décochées ???
@+
:bonjour:
bebarthMaître des clésIl faudrait placer ce script en « script de validation » dans le champ liste déroulante.
Placer le script en calcul du champ C permet de modifier le champ A et que le champ C se mette à jour de suite sans action sur la liste !
@+
:bonjour:
bebarthMaître des clésbonjour,
Voici la solution la plus simple à mettre en script de calcul du champ C.Code:if (this.getField(« champB »).value== »texte1″) this.event.target.value=this.getField(« champA »).valueAsString;
else this.event.target.value= »N/A »;Après, ça peut se complique ou pas suivant le format ds autres champs et le résultat souhaité…
@+
:bonjour:
bebarthMaître des clésbonjour,
En gros, j’essaie de récupérer avec une boucle les valeurs 0, 1 et 2 de mon champ texte, pour qu’elles prennent place dans les valeurs précitées.
…et tu ne peux vraiment pas partager un semblant de fichier qu’on pourrait étudier pour mieux comprendre ? parce que je pense déjà avoir répondu à ça !!!
@+
:bonjour:
bebarthMaître des clésbonjour Merlin,
Cétait déjà le cas avec les premières lignes que tu avais donné…if (event.value.length > 2)
{this.getField(« champ_suivant »).setFocus();}… et je n’ai pas compris non plus pourquoi ???
@+
:bonjour:
bebarthMaître des clésbonsoir,
Le seul point que j’aimerais améliorer, est le fait que mon tableau de valeurs est actuellement déclaré dans mon script en dur, donc non modifiable par le commun des mortels :Code:ListeVoiture[0]={marque: »RENAULT »,modele: »Clio »,vente:1500};
ListeVoiture[1]={marque: »PEUGEOT »,modele: »208″,vente:500};
ListeVoiture[2]={marque: »CITROEN »,modele: »C3″,vente:800};
ListeVoiture[3]={marque: »TOYOTA »,modele: »Yaris »,vente:150};
ListeVoiture[4]={marque: »MAZDA »,modele: »2″,vente:80};Comment est généré le script et comment est-il lancé ??? Si la table est uniquement dans le script et qu’elle n’est pas affichée dans un champ, il n’est pas possible de la récupérer. Pour des raison de sécurité il n’est pas possible de modifier un script via un autre script. Par contre, on peut supprimer un script et en re-créer un autre !
Je ne sais pas si cela répond à ta question…
@+
:bonjour:
bebarthMaître des clésbonsoir,
Perso, j’avais compris que le champ « AA » devait avoir un masque arbitraire pour 2 lettres majuscules, d’où mon script :Code:if(!event.willCommit) {
var valeurEntree = event.value.split(« »);
valeurEntree.splice(event.selStart, event.selEnd-event.selStart, event.change);
var testeChaine = valeurEntree.join(« »);
var expReg = /^[A-Z]{0,2}?$/;
event.rc = expReg.test(testeChaine);
var laLettre=event.change;
if (event.value.length>=2) {
this.getField(« autreChamp »).setFocus();
this.getField(« autreChamp »).value=laLettre;
}
} else {
var expReg = /^[A-Z]{0,2}?$/;
event.rc = (event.value == « ») || expReg.test(event.value);
}Par contre, vu que j’ai toujours eu du mal avec « event », je n’arrive pas à valider le premier caractère dans l’autreChamp et donc lorsque qu’on tape un autre caractère ça efface le premier…
Idem pour le champ « 9 » qui pour moi signifiait un chiffre.
Voir fichier joint pour mieux comprendre…
Si Merlin (ou quelqu’un d’autre) tu as la solution, ça m’intéresse…
@+
:bonjour:17 avril 2019 à 10:23 en réponse à : Affichage champs sous condition d’une somme > ou= d’un autre champs #65645
bebarthMaître des clésbonjour,
Si c’est en script de calcul du champ qui doit apparaître/disparaître, je dirais même plus :Code:if (this.getField(« TOTAL1 »).value >= 2000) {
this.event.target.display = display.visible;
} else {
this.event.target.display = display.hidden;
}…pas besoin de le nommer !
@+
:bonjour:
bebarthMaître des clésbonjour,
Essaye de regarder cette discussion et dis-moi si tu n’y arrives pas.
…avec ce fichier :
Voici une autre approche du problème.
Les données sont en script de document, ce qui permet d’en rajouter/supprimer plutôt de modifier le nombre de « case » dans les fonctions « switch ».Code:// Init en script de document
var tableEquipe=[« – », »Foot », »Volley », »Basket »];
var tableFoot=[« – », »Footballeur1″, »Footballeur2″, »Footballeur3″, »Footballeur4″, »Footballeur5″, »Footballeur6″, »Footballeur7″, »Footballeur8″, »Footballeur9″, »Footballeur10″, »Footballeur11″];
var tableVolley=[« – », »Volleyballeur1″, »Volleyballeur2″, »Volleyballeur3″, »Volleyballeur4″, »Volleyballeur5″, »Volleyballeur6″];
var tableBasket=[« – », »Basketballeur1″, »Basketballeur2″, »Basketballeur3″, »Basketballeur4″, »Basketballeur5″];
var tablePosteFoot=[« – », »Gardien de but », »Arrière droit », »Arrière gauche », »Arrière central », »Libéro », »Milieu défensif », »Ailier droit », »Milieu », »Avant-centre », »Attaquant meneur », »Ailier gauche »];
var tablePosteVolley=[« – », »Arrière droit », »Avant droit », »Avant centre », »Avant gauche », »Arrière gauche », »Arrière centre »];
var tablePosteBasket=[« – », »Meneur », »Arrière », »Ailier », »Ailier fort », »Pivot »];// SelectEquipe en souris enfoncée
var f= this.getField(« SelectEquipe »);
f.clearItems();
for (var i=0; ivar lEquipe=this.getField(« SelectEquipe »).value;
var tableJoueur=eval(« table »+lEquipe);
var f=this.getField(« SelectJoueur »);
f.clearItems();
for (var i=0; i// SelectJoueur en calcul
if (this.getField(« SelectEquipe »).value== »– ») {
this.getField(« SelectJoueur »).clearItems();
this.getField(« SelectJoueur »).insertItemAt(« – », » »,0);
}// SelectPoste en souris enfoncée
var lEquipe=this.getField(« SelectEquipe »).value;
var tablePoste=eval(« tablePoste »+lEquipe);
var f=this.getField(« SelectPoste »);
f.clearItems();
for (var i=0; i// SelectPoste en calcul
if (this.getField(« SelectJoueur »).value== »– ») {
this.getField(« SelectPoste »).clearItems();
this.getField(« SelectPoste »).insertItemAt(« – », » »,0);
}@+
:bonjour:
bebarthMaître des clésEst-ce possible de forcer l’ouverture du PDF avec l’application bureau de l’utilisateur?
En local oui, mais pas via JavaScript…
Exemple pour Firefox : https://support.mozilla.org/fr/kb/desactiver-lecteur-pdf-integre
@+
:bonjour:
bebarthMaître des clésbonjour,
Essaye de regarder cette discussion et dis-moi si tu n’y arrives pas.
Sinon, je regarderai demain matin!Il faut que tu regardes et adaptes le script de document.
Voici le fichier d’Alex adapté à ce que j’ai cru comprendre.…avec ce fichier :
https://abracadabrapdf.net/forum/index.php?action=dlattach;topic=3538.0;attach=3816
@+
:bonjour:
bebarthMaître des clésbonjour,
Je suis encore désolé, mais je ne comprends rien !!!
Tu devrais poster un fichier explicatif avec ce que tu as au début, ce que tu veux à la fin et s’il y a des étapes intermédiaires.
Dans ce post, un coup ListeVoiture possède un indice, un coup il n’y a pas… d’après ce que je comprends, un coup il y a un champ un coup il n’en faut plus…
Est-ce qu’il faut à la fin récupérer les données dans une liste déroulante ? Où faut-il indiquer les différents éléments ? Comment et où veux-tu pouvoir rajouter des données ?
Après, on voit ce qu’il est possible de faire ou pas !
@+
:bonjour:
bebarthMaître des clésbonsoir,
Il y avait plusieurs façons d’envisager le problème. Celle que j’utilise est certainement la plus simple :Code:var lesValeurs=this.getField(« listeOriginale »).value;
var laChaine=lesValeurs.split(« u000D »);
var Resultat= » »;
for (var i=0; ivar laLigne=laChaine;
var n1=laLigne.indexOf(« [« );
var n2=laLigne.indexOf(« ]={marque: » »);
var n3=laLigne.indexOf(« »,modele: » »);
var n4=laLigne.indexOf(« »,vente: » »);
var Indice=laLigne.slice(n1+1,n2);
var Marque=laLigne.slice(n2+11,n3);
var Modele=laLigne.slice(n3+10,n4);
var Vente=laLigne.slice(n4+9,laLigne.length-2);
var Resultat=Resultat+Indice+ »| »+Marque+ »| »+Modele+ »| »+Vente;
if (i!=laChaine.length-1) var Resultat=Resultat+ »u000D »;
}
this.getField(« listeFinale »).value=Resultat;Je te laisse étudier ce script et si tu ne le comprends pas, tu demandes !
Dans le fichier joint je t’ai mis l’action dans un bouton qui affiche le résulat si le champ est vide ou qui vide le champ s’il y a déjà un résultat…
Je ne sais pas comment tu veux déclencher le script.
@+
:bonjour:
bebarthMaître des clésbonsoir,
A mettre en script d’action champ désactivé :Code:var lesValeurs = this.event.target.value;
var laChaine = lesValeurs.split(« u000D »);
eval(laChaine[laChaine.length-1]);
this.getField(« Marque »).value=ListeVoiture.marque;
this.getField(« Modele »).value=ListeVoiture.modele;
this.getField(« Vente »).value=ListeVoiture.vente;Par contre, pour les valeurs « vente » il y a un soucis… il doit y avoir soit 2 guillemets, soit aucun. Comme ce sont des nombre je n’en ai mis aucun dans le fichier.
Si tu récupères les données avec un seul guillemet, il faudrait écrire quelques lignes pour le supprimer !
@+
:bonjour:
bebarthMaître des clésbonjour,
Il y a un autre post à ce sujet :
https://abracadabrapdf.net/forum/index.php/topic,3510.0.html
@+
:bonjour:
bebarthMaître des clésbonjour,
En fait, j’ai besoin que mes valeurs d’exportation soient identiques aux valeurs des éléments de mes listes déroulantes car derrière, il y a tout un process qui travaille d’après ces valeurs, et le nom des champs. Et ces process ne peuvent pas être modifiés. Voilà pourquoi.
Il faudrait voir ce que tu appelles « process », mais avec :
Code:var indice=this.getField(« Liste »).currentValueIndices; //Ici c’est la position dans la liste de l’élément sélectionné
this.event.target.value=this.getField(« Liste »).getItemAt(indice,false);// Ici tu lis la valeur de l’élément
this.event.target.value=this.getField(« Liste »).getItemAt(indice,true);// Ici tu lis la valeur d’exportation de l’élément
bebarthMaître des clésAttention, tous les cours de JavaScript disponibles sont essentiellement consacrés au web.
Correct, et voici mes 2 sources de réflexion :
https://www.w3schools.com/jsref/default.asp
https://developer.mozilla.org/fr/docs/Web/JavaScript
…après, il faut adapter !
@+
:bonjour:
bebarthMaître des clésbonjour,
Tes questions sont certainement très claires dans ta tête, mais personnellement je ne vois pas quel est ton problème… le fichier Doc 1.pdf que tu as partagé me parait correct et je ne vois pas pourquoi tu as besoin que la valeur d’exportation soit identique à la valeur sélectionnée. Si tu as besoin de cette valeur, tu peux la récupérer comme tu l’as justement fait dans ton champ « Fournisseur ».
En ce qui concerne ta dernière demande, c’est plus simple :Code:// Liste en souris enfoncée
this.getField(« Liste »).clearItems();
var lesValeurs = this.getField(« champTexte »).value;
var laChaine = lesValeurs.split(« u000D »);
for (var i=0; ivar laValeur=laChaine.split(« | »);
this.getField(« Liste »).insertItemAt(laValeur[0],laValeur[0],i);
}// Nom
var indice =this.getField(« Liste »).currentValueIndices;
var laValeur=laChaine[indice].split(« | »);
this.event.target.value=laValeur[0];// Prenom
this.event.target.value=laValeur[1];// Age
this.event.target.value=laValeur[2];@+
:bonjour:
bebarthMaître des clésbonjour,
Je n’ai pas retrouvé tout de suite… c’est vrai que c’était compliqué avec Acrobat Pro !!!
J’ai une version Mac, mais je suppose que c’est la même chose sur PC…
Tu fais une recherche avancée (cmd maj F sur Mac ça doit donner alt Maj F sur PC), puis « Afficher plus d’options » (en bas de la fenêtre), dans « Rechercher dans : » tu choisis « Sélectionner un index… » et ensuite soit tu le sélectionnes, soit tu le crées !!!
Simple, non ?
@+
:bonjour:11 avril 2019 à 07:09 en réponse à : Joindre divers documents dans un PDF pour utilisateur de Acrobat resder #65604
bebarthMaître des clésbonjour,
C’est possible, mais attention au poids du document final !
…et es-tu certaine que les personnes qui vont recevoir le courriel auront les logiciels adéquats pour ouvrir ces documents ?
@+
:bonjour:
bebarthMaître des clésbonjour,
Voici ce que je t’ai fait.
Dans le meilleur des monde, il faudrait mettre les calculs en fonctions pour ne pas avoir à les copier/coller dans chaque cellule… mais ça c’est dans un autre monde !!!
@+
:bonjour:
bebarthMaître des clésbonjour,
Aurais-tu un fichier exemple à partager ?
@+
:bonjour:
bebarthMaître des clésbonjour,
1. Il faut renomer les modèles de page.
2. Il faut supprimer 2 lignes dans le script.
Ci-joint un nouveau fichier.
Attention, il faudrait agrandir le champ de l’année car 4 chiffres ne tiennent plus sur une ligne.
@+
:bonjour:
bebarthMaître des clés…et ça ne te serait pas possible de mettre tes données dans un fichier attaché ?
@+
:bonjour:
bebarthMaître des clésbonjour,
Il faudrait écrire :Code:this.getField(« Liste »).value=this.getField(« Liste »).getItemAt(0);@+
:bonjour:
bebarthMaître des clésbonjour,
Voici une autre proposition, mais le bouton devra être caché… à mois de créer une action, comme ça plus besoin de bouton !!!
@+
:bonjour:
bebarthMaître des clésbonjour,
Désolé, mais je ne comprends plus bien ce que tu veux faire exactement !
Les valeurs d’exportations de ta liste alimentent ton champ « Valeur » donc elles ne peuvent pas correspondre aux valeurs de la liste.
Il faut peut-être traiter le problème différemment si c’est ça.
@+
:bonjour:9 avril 2019 à 08:43 en réponse à : Si champ vide = non visible et autre affichage conditionnel #65595
bebarthMaître des clésbonjour,
Je sais pas pourquoi, mais ca ne fonctionne pas. Quand je reset le fichier, et qu’ensuite je tape une date qui donne un mineur, point de case apparait :doute:
Quand tu « reset le fichier », toutes les cases sont vide ??? Parce qu’ensuite, il faut quelque chose dans le champ nom2 pour que l’autre champ s’affiche… du moins c’est ce que j’avais compris.
@+
:bonjour:8 avril 2019 à 20:20 en réponse à : Si champ vide = non visible et autre affichage conditionnel #65591
bebarthMaître des clés…comme ça alors :
Code:…
if (age>=18 || isNaN(age) || age== » » || this.getField(« nom2″).value== » ») {
this.getField(« nom »).display=display.hidden;
this.getField(« nom »).required=false;
} else {
this.getField(« nom »).display=display.visible;
this.getField(« nom »).required=true;
}Moi je n’en suis qu’à _BB2 :geek: !
@+
:bonjour:
bebarthMaître des clésJ’essaye plus tard dans la semaine.
Bonne journée.
@+
:bonjour:
bebarthMaître des clés…je regarde demain, désolé !
@+
:bonjour:8 avril 2019 à 14:36 en réponse à : Si champ vide = non visible et autre affichage conditionnel #65587
bebarthMaître des clés…comme ça ??? je n’ai plus suivi !
Code:…
if ((age>18 || isNaN(age) || age != « ») && this.getField(« nom2 »).value != « ») {
this.getField(« nom »).display=display.hidden;
this.getField(« nom »).required=false;
} else {
this.getField(« nom »).display=display.visible;
this.getField(« nom »).required=true;
}@+
:bonjour:8 avril 2019 à 07:23 en réponse à : Si champ vide = non visible et autre affichage conditionnel #65581
bebarthMaître des clésbonjour,
Ton champ age doit être en script de calcul avec le champ en lecture seule.
Voici une adaptation à ton fichier d’un script que j’avais écris pour une autre application.
@+
:bonjour:
bebarthMaître des clésbonjour,
Voici ma proposition avec la case à cocher qui change de couleur selon la réponse (verte pour correcte, rouge pour incorrecte).
@+
:bonjour:
bebarthMaître des clésbonjour,
Voici le nouveau fichier à placer dans Stamps.
J’ai corrigé une petite erreur (sur les 2 tampons), le jour n’affichait pas le 0 lorsqu’il était <10.
Si tu veux des explications, tu me demandes, j’essayerai de te faire un petit topo dans la semaine.
@+
:bonjour:
bebarthMaître des clésJe n’ai pas compris tout de suite ce que tu voulais comme résultat !
Voilà une version qui devrait correspondre.
Ne pas oublier de mettre le champ texte en lignes multiples;
@+
:bonjour:
bebarthMaître des clésbonjour,
j’ai mis des n dans mon champ pour faire apparaître des sauts de ligne sur les valeurs 1, 2, 3 etc mais ça m’affiche n et ne fait pas de saut de ligne. Existe-t-il une astuce ?
Je ne suis pas certain de comprendre ! Tu écris « Titre 1||Valeur 1nTitre 2||Valeur 2nTitre 3||Valeur 3nTitre 4||Valeur 4nTitre 5||Valeur 5nTitre 6||Valeur 6 » dans ton champ texte ???
si c’est ça, tu remplaces « var laChaine = lesValeurs.split(« u000D« ); » par « var laChaine = lesValeurs.split(« \n« ); »
@+
:bonjour:
bebarthMaître des clésbonjour,
…et à quoi correspond la ligne où il n’y a rien d’indiqué devant ?
Que faut-il demander dans la boite de dialogue ?
C’est bien un nouveau tampon qui sera ajouté à la liste « Tampons MarieStef » ?
@+
:bonjour:
bebarthMaître des clésOups,
Je me souviens avoir changé d’avis au dernier moment sans avoir assez vérifié apparemment !
J’avais placé le script en calcul du champ texte au lieu de script de souris enfoncée sur la liste… Je ne me souviens plus pourquoi.
J’ai remis le script sur la liste déroulante.
@+
:bonjour:
bebarthMaître des clésbonsoir,
…et du coup, mon script te convient ?
@+
:bonjour:4 avril 2019 à 20:58 en réponse à : Passer une lettre sur deux d’un message en minuscules majuscules alternées. #65572
bebarthMaître des clésbonsoir,
En script de touches personnalisé pour une modification en cours de frappe :Code:var i=this.event.value.length;
if (i==0) {
event.change = event.change.toUpperCase();
} else {
var laLettre = this.event.value.charCodeAt(i-1);
if (laLettre>=65 && laLettre<=90) {
if (laLettre!=32) event.change = event.change.toLowerCase();
} else {
if (laLettre!=32) event.change = event.change.toUpperCase();
}
}@+ :bonjour:
4 avril 2019 à 16:34 en réponse à : Passer une lettre sur deux d’un message en minuscules majuscules alternées. #65571
bebarthMaître des clésbonjour,
Où doit être affiché ce texte transformé ? dans ce même champ texte ?
A quel moment doit-il être transformé de cette façon ? en fin de saisie ou en cours de frappe ?
Les espaces ne sont apparemment pas comptés comme des caractères…
Je ne vois pas à quoi ça peut servir, mais c’est amusant !
Je regarde peut-être ce soir.
@+
:bonjour:2 avril 2019 à 21:08 en réponse à : Format monétaire avec espace, décimales SANS signe de $ et sans afficher 0.00 #64349
bebarthMaître des clésbonsoir,
Pour le français :Code:…
this.event.target.value=nombre+ » $ »;
} else {
this.event.target.value= » »;
}Pour l’anglais :
Code:…
var chaine=this.event.target.valueAsString;
if (chaine.startsWith(« $ »)) var chaine=chaine.substring(1);
…
…
this.event.target.value= »$ »+nombre;
} else {
this.event.target.value= » »;
}@+
:bonjour:
bebarthMaître des clésbonjour,
Tu me donnes tes modifications et/ou ton nouveau tampon avec les infos à indiquer, je regarde, je fais et je t’explique… pour une éventuelle prochaine fois.
Il y a quand même un minimum à connaitre en JavaScript, mais avec un peu de cogitation et de copier/coller on peut y arriver même sans tout comprendre…
@+
:bonjour:
bebarthMaître des clésbonjour,
Voilà !
Si j’ai bien compris ce que tu voulais faire, il faut créer une table avec le texte récupéré de ton champ et coupé à chaque saut de ligne puis alimenter la liste en définissant chaque élément par un élément de la table divisé à chaque ||…
Je ne sais pas si je suis très clair !!! Tu regarderas le script…
@+
:bonjour:
bebarthMaître des clésbonsoir,
Pour rendre le champ obligatoire :
this.getField(« lacheckbox »).required=true;
@+
:bonjour:
bebarthMaître des cléstu peux faire apparaitre le résultat dans un champ auparavant invisible (s’il possède un fond) ou en lecture seule si le fond est blanc !!!
@+
:bonjour:28 mars 2019 à 08:59 en réponse à : Message d’alerte apparaissant différemment selon MAC ou PC #65536
bebarthMaître des clésbonjour,
Je ne pense pas qu’il soit possible de modifier via JavaScript les préférences d’Adobe Reader !
Moi, je n’ai pas de PC, et sur Mac l’activation JavaScript est peut-être activée d’office, mais si on la désactive, le résultat est identique.
Par contre on a une alerte avec possibilité d’activer le JavaScript pour ce document. N’est-ce pas la même chose sur PC ???Pour info, ton script de document n’a pas besoin d’être mis en tant que fonction. Tu peux juste indiquer une ligne de script.
@+
:bonjour:
bebarthMaître des clésEn fait, je regarde tous les champs entre la page 3 et la page 11
Code:if (f.page>=(3-1) && f.page<=(11-1))et selon si c’est une case à cocher (case « checkbox »
, un menu déroulant (case « combobox »
ou un champ texte (case « text »
, je vais chercher le nombre indiqué (f.value) et la désignation dans l’info bulle (f.userName) que j’ajoute à la chaine « laListe ».
Une fois que tous les champs ont été vérifiés, on affiche la fenêtre avec le résultat (app.alert(laListe,3)
.
@+
:bonjour:28 mars 2019 à 08:20 en réponse à : Couleur de fond transparente de mon champ pour l’impression #65512
bebarthMaître des clésbonjour,
Voici les 2 scripts d’actions à indiquer :Code:// Le document sera imprimé
lesFonds=new Array();
for (var i=0; ivar f=this.getField(this.getNthFieldName(i));
lesFonds=f.fillColor;
f.fillColor=color.transparent;
}// Le document a été imprimé
for (var i=0; ivar f=this.getField(this.getNthFieldName(i));
f.fillColor=lesFonds;
}@+
:bonjour:
bebarthMaître des clésbonsoir,
Voici ce que je t’ai fait.
J’ai supposé que les champs « texte » des sacs, stylos et crayons devaient contenir des nombres.
@+
:bonjour:
bebarthMaître des clésbonsoir,
Tampons personnalisés -> Gérer… -> Modifier
@+
:bonjour:
bebarthMaître des clésSinon, à la place du nom du champ on peut faire correspondre son « userName » (le contenu de l’info-bulle) avec le nom de l’article correspondant.
Ça c’est une excellente idée… plus besoin de fichier excel !
@+
:bonjour:
bebarthMaître des clésbonjour,
Tu penses qu’il serait possible de simplifier le processus si la structure du formulaire était différente ?
Il faudrait que tous les champs sélectionnables aient le même nom avec un indice (leChamp1, leChamp2, etc.).
Si tu fournis un fichier excel avec 2 colonnes Nom du champ & Désignation pour tous les champs sélectionnables, ça permettrait de créer une table et ça faciliterait le script.Je souhaiterais ajouter une fonctionnalité qui permettrait de faire un récapitulatif de ce qui a été sélectionné (donc de n’afficher que les éléments qui ont été préalablement sélectionnés) avant l’envoi par mail ou l’impression. Cela dans l’optique de simplifier la lecture des gens chargés de traiter les données de l’inventaire.
Je ne comprend pas bien ce que tu veux faire exactement !
Comment veux-tu afficher le résultat ? Une Fenêtre d’alerte ?
@+
:bonjour:
bebarthMaître des clésbonjour,
Désolé, mais je n’ai pas eu le temps hier !
Tu places donc le fichier .pdf dans ton répertoire « Stamps » et tu auras ton tampon après avoir redémarré Acrobat.
J’ai indiqué la date du jour par défaut.
Si tu as besoin d’autres valeurs par défaut tu me demandes (sauf si tu sais faire !!!).
ATTENTION : La date doit être indiquée YY/MM/DD comme tu l’as demandé mais je n’ai pas géré les erreurs de syntaxes.
@+
:bonjour:26 mars 2019 à 18:57 en réponse à : Couleur de fond transparente de mon champ pour l’impression #65509
bebarthMaître des clésbonsoir,
Il faudrait créer un script d’action qui rend le fond des champs transparents lorsque le fichier est imprimé, puis un autre qui remet les fonds lorsque le fichier a été imprimé.
@+
:bonjour:
bebarthMaître des clésbonjour,
Je vais essayer de travailler sur le tampon aujourd’hui, mais pas sûr…
La date celle du jour où on applique le tampon (automatique) ou doit elle être renseignée ?
@+
:bonjour:
bebarthMaître des clésbonjour,
1. Je m’aperçois que je n’ai pas été assez précise : j’aurais voulu que la correction reste affichée une fois le bouton de la souris relâché.
Voici une nouvelle proposition.
2. Bizarrement, cela fonctionne très bien sur mon PC, mais pas du tout sur mon smartphone (la plupart de mes élèves n’ont pas de PC, mais ont un smartphone).
Je sais qu’il y a des soucis avec les tablettes, mais je ne sais pas te dire quoi ou quand ça marche ou ne marche pas !
@+
:bonjour:
bebarthMaître des clésbonjour,
quels sont les champs à renseigner via la boite de dialogue ?
Le champ pour « APPROVED BY » ne semble pas assez grand pour indiquer un nom… à moins que ce ne soit des initiales ou un chiffre !!!
La date doit être indiquée en 3 morceaux ??? DD/MM/YY -> dans ce format ?
Faut-il renseigner 2 champs pour « …CLIENT.MATTER »
Je suppose que pour SIGNATURE c’est une signature manuelle !
@+
:bonjour:
bebarthMaître des clésbonsoir,
Sans JavaScript et un seul bouton (par question), je vois cette solution : une action qui masque ou affiche un champ de la couleur du fond.
@+
:bonjour:
bebarthMaître des clésbonjour,
Pas de souci si tu as Acrobat Pro !
Partage un fichier exemple et on te montre ce qui est possible de faire !
@+
:bonjour:
bebarthMaître des clésbonsoir,
J’avais espoir que tu utilisais Acrobat Pro !
Je ne connais pas les possibilité de pdf creator. Peux-tu créer des champs et leur attribuer des actions ou des scripts ?
@+
:bonjour:
bebarthMaître des clésJe me doutais bien qu’il n’y avait sûrement que toi qui pouvait répondre à ce genre de question !
@+
:bonjour:
bebarthMaître des clésSi tu peux, tu me fais passer ton fichier Tampons utilisateur qui porte un nom genre « iOjT0b3PCLbVGbKhQ3OQfA.pdf » et qui se trouve dans le répertoire que tu auras trouvé en tapant app.getPath(‘user’,’stamps’); dans la console !
Je pourrais récupérer le script de l’alerte avec 2 champs.
@+
:bonjour:
bebarthMaître des clés…le script est là !
J’essaye de regarder rapidement, mais n’attends pas avant le début de semaine prochaine.
bon weekend.
@+
:bonjour:PS : pour trouver les fichiers des tampons, il faut taper dans la console app.getPath(‘user’,’stamps’); pour les tampons personnalisés ou app.getPath(‘app’,’stamps’); pour les tampons d’Acrobat, suivi de ENTER.
bebarthMaître des clés…OK !
En fait je n’avais jamais travaillé sur les tampons et je vois que ce n’est pas si simple que ça ! Beaucoup de possibilité, mais pas simple…
La fenêtre apparait donc lorsqu’on appose le tampon !
Je vais essayer de regarder mais je ne suis pas certain de pouvoir rapidement.
Merlin a-t-il peut être plus de connaissance que moi pour ce sujet.
Voici les quelques pages que j’ai consulté pour l’instant :
https://acrobatusers.com/tutorials/custom_dynamic_stamp
https://acrobatusers.com/tutorials/dynamic_stamp_secrets
http://blogs.adobe.com/acrolaw/2009/09/try-these-two-line-dynamic-exhibit-stamps/#more-108
@+
:bonjour:
bebarthMaître des clés…et la boite de dialogue est déclenchée quand ou par quoi ? un bouton ?
As tu le script pour la boite de dialogue ?
Tu veux renseigner le fichier Tampon, ou le tampon une fois apposé (je ne sais pas si c’est possible…).
@+
:bonjour:
bebarthMaître des clésbonjour,
Que disposes-tu comme outils ? Acrobat Pro ?
As-tu un fichier exemple ? Ou veux-tu faire apparaitre la correction ? une fenêtre, une autre page ?
@+
:bonjour:
bebarthMaître des clésbonjour,
Le plus simple serait de partager un fichier !
@+
:bonjour:
bebarthMaître des clés…genre le fichier joint.
Si je peux, je te conseillerais de lire le tuto « Duplication rapide de champs » qui pourrait te faciliter la tâche !
https://www.abracadabrapdf.net/ressources-et-tutos/js-et-formulaires-ressources/duplication-rapide-de-champs-de-formulaire/
@+
:bonjour:
bebarthMaître des clésbonjour,
Pourquoi ton champ « Nombre de courts » ne calcule-t-il pas directement la somme des 3 autres champs au lieu de l’indiquer avec risque d’erreur ???
@+
:bonjour:
bebarthMaître des clésbonjour,
Je veux bien essayer de t’aider dès que je comprends ce que tu veux faire…
Promis !
@+
:bonjour:
bebarthMaître des clésbonsoir,
Il suffit de redéfinir l’ordre de calcul (et l’ordre de tabulation, c’est pas mal aussi) !
@+
:bonjour:18 mars 2019 à 10:15 en réponse à : Modification du nom des champs en cas de fusion des mêmes documents #65442
bebarthMaître des clésbonjour,
…en sachant qu’avec Acrobat Pro il n’est pas possible de renommer des champs via JavaSricpt, mais qu’on peut les supprimer et en re-créer de nouveaux identiques, mais sans les scripts associés !
@+
:bonjour:
bebarthMaître des clésbonjour,
Voici ma proposition :Code:var j=0;
for (var i=0; ivar fname = this.getNthFieldName(i);
var f = this.getField(fname);
try {
if (f.required && (f.value== » » || f.value== »Off »)) j++;
} catch(e) {};
}
if (j!=0) {
app.alert(« Tous les champs entourés d’un filet rouge doivent être remplis et toutes les évaluations doivent être renseignées »,3);
} else {
for (var i=0; ivar fname = this.getNthFieldName(i);
var f = this.getField(fname);
f.readonly = true;
}
this.mailDoc({
bUI: false,
cTo: « robin@pdjconnect.com »,
cSubject: « Sujet deu message »,
cMsg: « Texte du message. »
});
this.resetForm();
this.dirty=false;
}On vérifie que tous les champs obligatoires ne sont pas vide et que les boutons radio sont renseignés.
Si c’est bon, on met tous les champs en lecture seule et on envoie le pdf avec mailDoc (c’est une copie qui est envoyée par la messagerie).
Ensuite on réinitialise le formulaire avec « this.resetForm(); » et on indique qu’il n’y a pas besoin d’enregistrer avec « this.dirty=false; »
J’ai également ajouter des script pour vérifier la syntaxe des adresses e-mail et les premières lettres en capitales pour Nom et Prénom.
Je te laisse étudier ça !
@+
:bonjour:15 mars 2019 à 16:27 en réponse à : Convertir/exporter les données du formulaire PDF vers CSV #65361
bebarthMaître des clésOups ! J’avais publié une mauvaise ligne de script (
var lesLignes=lesLignes.replace(/ »/gi, » »);au lieu de var lesDonnees=lesDonnees.replace(/ »/gi, » »);).
Par contre, l’action postée et que je t’ai envoyé par mail est correcte.
J’ai modifié la ligne dans les 2 post précédents.
Tu me dis si tu as encore un message dans la console.
@+
:bonjour: -
AuteurRéponses
