Toutes mes réponses sur les forums
-
AuteurRéponses
-
bebarthMaître des clésje pense que comme ça il n’y a pas grand chose à faire… alors que peut-être avec un script !
bebarthMaître des clésA mon avis lorsqu’on insère une page à partir d’un template, cela devient une page et n’a plus de lien avec le template (c’est clair ??? :doute: ).
il faudrait donc vérifier par exemple le nom d’un champ de la dernière page et voir ce champ est également sur le template…
@+
:bonjour:
bebarthMaître des clés…ça j’ai bien compris, mais comment procèdes-tu ???
Tu ouvres un formulaire, puis avec le menu « Insérer des pages » tu importes l’autre ? ou avec un script ?
Comment se nomment et où se trouvent ces formulaires ? dans le même répertoire ?
Uniquement 2 formulaires à combiner ?
Ça demande un peu plus de précision…
@+
:bonjour:
bebarthMaître des clésbonjour,
on a le droit de voir le fichier ?
Sur le dernier que tu as posté il n’y a pas de bouton reset ni le template indiqué.- 3 fois delete… https://help.adobe.com/en_US/acrobat/acrobat_dc_sdk/2015/HTMLHelp/index.html#t=Acro12_MasterBook%2FJS_API_AcroJS%2FDoc_methods.htm%23TOC_deletePagesbc-20&rhtocid=_6_1_8_23_1_19
- A mon avis tu devrais plutôt écrire :
this.spawnPageFromTemplate(« signatairesentrant », this.numPages, false, false);
Pourquoi nPage:16 si c’est pour insérer en dernière page ?
https://help.adobe.com/en_US/acrobat/acrobat_dc_sdk/2015/HTMLHelp/index.html#t=Acro12_MasterBook%2FJS_API_AcroJS%2FDoc_methods.htm%23TOC_spawnPageFromTemplatebc-105&rhtocid=_6_1_8_23_1_104
[/list]@+
:bonjour:
bebarthMaître des clésbonjour,
comment les fusionnes-tu ? tu en importes un à la suite de l’autre… ou à partir d’un troisième document ?
Il faudrait indexer les champs importés ! aucun champ ne reste commun ???
@+
:bonjour:
bebarthMaître des clésbonjour,
dans ce cas, tu supprimes les lignes :Code://Créer un rectangle sur le mot trouvé
var q = this.getPageNthWordQuads(p, i);
…
// Epaisseur des bords
l.borderWidth = 2;@+
:bonjour:
bebarthMaître des clésbonsoir,
pourquoi ne charges-tu pas l’action ??? juste un double clique sur le fichier .sequ puis tu la lances (cf. copies d’écrans).
Je viens de chercher le mot « document » et extraire les pages dans l’api reference (779 pages) sans aucun problème en un peu plus de 5 minutes !!!
@+
:bonjour:13 février 2018 à 17:21 en réponse à : Assistant d’action / lancement d’une action depuis un script #63370
bebarthMaître des clés…j’ai encore un peu de mémoire ! :geek:
bebarthMaître des clésbonjour,
… je vais regarder cela.??? je ne sais pas ce que tu vas regarder car tu ne m’as pas dis quels champs devaient être réinitialisés !
… Cependant, la signature reste alors que je voudrais l’enlever.Comment veux-tu l’enlever et comment reste-t-elle ??? Aurais-tu un fichier à partager ?
…par contre, je ne vais pas être dispo aujourd’hui !!!
bonne journée.
@+
:bonjour:13 février 2018 à 06:58 en réponse à : Assistant d’action / lancement d’une action depuis un script #63367
bebarthMaître des clésbonjour,
Il me semble que tu as déjà eu une réponse il n’y a pas si longtemps que ça ! :Smiley03:
https://abracadabrapdf.net/forum/index.php/topic,3345.msg19643.html#msg19643
@+
:bonjour:
bebarthMaître des clésbonjour,
quels sont les champs à ne pas réinitialiser ou ceux à réinitialiser, selon…
@+
:bonjour:
bebarthMaître des clésbonjour,
essaie plutôt comme ça :Code:switch (this.getField(« Text5 »).value) {
case « Essai-1 »:
this.getField(« Donnees-1 »).display = display.visible;
this.getField(« Donnees-2 »).display = display.hidden;
this.getField(« Donnees-3 »).display = display.hidden;
this.getField(« Donnees-4 »).display = display.hidden;
break;
case « Essai-2 »:
this.getField(« Donnees-1 »).display = display.hidden;
this.getField(« Donnees-2 »).display = display.visible;
this.getField(« Donnees-3 »).display = display.hidden;
this.getField(« Donnees-4 »).display = display.hidden;
break;
case « Essai-3 »:
this.getField(« Donnees-1 »).display = display.hidden;
this.getField(« Donnees-2 »).display = display.hidden;
this.getField(« Donnees-3 »).display = display.visible;
this.getField(« Donnees-4 »).display = display.hidden;
break;
default:
this.getField(« Donnees-1 »).display = display.hidden;
this.getField(« Donnees-2 »).display = display.hidden;
this.getField(« Donnees-3 »).display = display.hidden;
this.getField(« Donnees-4 »).display = display.visible;
}@+
:bonjour:
bebarthMaître des clésbonjour,
voici donc une action que j’ai créé à partir de 2-3 scripts déjà réalisés (il reste peut être quelques variables inutiles…).
Ici, pour accélérer le processus, je ne vérifie qu’une fois si le mot est présent sur la page, puis passe à la page suivante.
J’ai fait quelques vérifications et cela fonctionne. J’espère n’avoir rien oublié, sinon merci de me signaler le/les problèmes(s).
@+
:bonjour:
bebarthMaître des clésbonjour,
je pense que je devrais avoir quelque chose pour toi !
Je n’aurais pas le temps de regarder ce weekend, mais promis dès lundi.
@+
:bonjour:
bebarthMaître des clésbonjour,
Ce n’ai pas du « tout simple » mais j’ai déjà fait quelque chose comme ça…
Même question que Merlin : au final tu veux des fichiers individuels ou un seul fichier final ?
@+
:bonjour:6 février 2018 à 15:23 en réponse à : Rendre le PDF non modifiable au moment de l’envoi par mail #58296
bebarthMaître des clésbonjour,
si l’on crée le bouton sur Acrobat Pro avec une action « Envoyer un formulaire », ça fonctionne également sur iPhone/iPdad !
Le souci c’est le javascript qui n’est pas totalement compris par ces téléphones et tablettes.
@+
:bonjour:
bebarthMaître des clésVoici une proposition qui devrait te permettre de voir ce que l’on peut faire.
J’espère que tu comprendra comment faire, sinon il faut te plonger dans ces 2 pages :
https://help.adobe.com/en_US/acrobat/acrobat_dc_sdk/2015/HTMLHelp/index.html#t=Acro12_MasterBook%2FJS_API_AcroJS%2FDoc_methods.htm%23TOC_addField1bc-2&rhtocid=_6_1_8_23_1_1
et
https://help.adobe.com/en_US/acrobat/acrobat_dc_sdk/2015/HTMLHelp/index.html#t=Acro12_MasterBook%2FJS_API_AcroJS%2FField_properties.htmJe ne sais pas s’il est possible de récupérer d’un seul coup TOUTES les propriétés d’un champ. Peut-être Merlin peut nous dire…
@+
:bonjour:5 février 2018 à 09:20 en réponse à : Rendre le PDF non modifiable au moment de l’envoi par mail #58289
bebarthMaître des clésbonjour,
Désolé mais je ne suis pas très au courant des problèmes rencontrés avec les tablettes… à par qu’il y a des soucis avec le javascript.
@+
:bonjour:
bebarthMaître des clésbonjour Merlin,
…dupliquer des rangées de champs ce n’est possible qu’avec LiveCycle Designer.
…disons que c’est assez compliqué avec Acrobat Pro ! Mais on peux créer des champs et en déplacer d’autres.
@+
:bonjour:
bebarthMaître des clésbonjour,
Personnellement je n’ai pas bien compris !
Tu veux rajouter des champs en décalant les autres ou une page de formulaire ?
@+
:bonjour:3 février 2018 à 14:48 en réponse à : Rendre le PDF non modifiable au moment de l’envoi par mail #58287
bebarthMaître des clés…je viens d’essayer et ça fonctionne.
Ne pas oublier de sauvegarder avant d’envoyer si tu veux garder le document non aplati en local…
@+
:bonjour:3 février 2018 à 11:03 en réponse à : Rendre le PDF non modifiable au moment de l’envoi par mail #58286
bebarthMaître des clésbonjour,
à mon avis il faut que ton bouton d’envoi exécute les 2 actions.
D’abord l’envoi de la version non aplatie puis aplatir et renvoyer le formulaire:Code:this.mailDoc({
bUI: false,
cTo: « toto@free.fr »,
cSubject: « Sujet du message »,
cMsg: « Texte du message. »
});
this.flattenPages();
this.mailDoc({
bUI: false,
cTo: « autretoto@free.fr »,
cSubject: « Sujet du message »,
cMsg: « Texte du message. »
});
closeDoc(true);…à tester !!!
@+
:bonjour:
bebarthMaître des clésc’est normal, même nom de champ -> mêmes valeurs !!!
Il faut donc juste changer un false par un true…Code:this.spawnPageFromTemplate(« NomDuTemplate », this.numPages-4, true, false);@+
:bonjour:
bebarthMaître des clésbonjour,
selon si l’on utilise Acrobat et que l’on a les bonnes autorisations d’accès, on peut avoir 2 fichiers distincts !
dans l’exemple joint, les deux fichiers doivent être dans le même répertoire.
Ne pas oublier « this.disclosed = true; » en script d’ouverture des fichiers.
@+
:bonjour:
bebarthMaître des clésbonjour,
il faut écrire :Code:this.spawnPageFromTemplate(« NomDuTemplate », this.numPages-4, false, false);@+
:bonjour:
bebarthMaître des clésbonjour,
Ça ne fonctionnait pas dans ton fichier…
Ici, j’ai aussi rajouté un calendrier pour le champ date !
@+
:bonjour:
bebarthMaître des cléstu peux rajouter un calendrier si tu va voir sur cette page :
http://www.formrouter.com/tools/index.html
mais ça n’a rien à voir avec celui de Merlin !
@+
:bonjour:
bebarthMaître des clésOù y a-t-il un calendrier dans ton fichier ?
@+
:bonjour:
bebarthMaître des clésbonjour,
si tu cherche sur le web tu devrais en trouver, mais le meilleur c’est quand même celui-ci :
https://www.abracadabrapdf.net/utilitaires/utilitaires-pdf/magicdate-selecteur/
@+
:bonjour:
bebarthMaître des clésbonjour,
il suffit juste de récupérer l’année pour chaque champ « date », et cela selon le format des champs, et de faire une soustraction !
En gros, pour un format de date à la française, ça donnerait :Code:var dd1=this.getField(« champdate1 »).value;
var annee1=dd1.slice(dd1.length-4);
var dd2=this.getField(« champdate2 »).value;
var annee2=dd2.slice(dd2.length-4);
this.event.target.value=annee2-annee1;@+
:bonjour:
bebarthMaître des clés…et pour mieux comprendre qu’on prend le jour à la position « lejour » dans la table, on peut écrire la dernière ligne :
Code:…
this.event.target.value=tableaujour[lejour];:bonjour:
bebarthMaître des cléssi tu veux connaitre le jour de la semaine de la date indiquée dans ton champ « date », tu places ce script en script de calcul d’un champ texte :
Code:var dd=this.getField(« date »).value;
var jour=dd.slice(0, 2);
var mois=dd.slice(3, 5);
var annee=dd.slice(6);
var ladate=new Date(annee,(mois-1),jour);
var lejour=ladate.getDay();
var tableaujour=new Array(« Dimanche », « Lundi », « Mardi », « Mercredi », « Jeudi », « Vendredi », « Samedi »);
this.event.target.value=tableaujour[ladate.getDay()]@+
:bonjour:
bebarthMaître des clésvoici un petit script qui te permettra d’avancer dans tes recherche…
il faudra bien sûr l’adapter à ce que tu veux faire !Code:var ladate=new Date();
var lejour=ladate.getDay();
var tableaujour=new Array(« Dimanche », « Lundi », « Mardi », « Mercredi », « Jeudi », « Vendredi », « Samedi »);
console.println(« Aujourd’hui nous sommes : « +tableaujour[ladate.getDay()]);@+
:bonjour:
bebarthMaître des cléscorrect !
bebarthMaître des clésLes totaux SP s’incrémentent dès que tu sélectionnes un nom…
Ce n’était pas prévu comme ça ???
Les champs « Grade » et « Status » pourraient d’ailleurs se remplir automatiquement selon le nom choisi !
@+
:bonjour:
bebarthMaître des clésbonjour,
je ne vois pas de total général !
@+
:bonjour:
bebarthMaître des clésbonjour,
Dans ton cas il vaut mieux définir la première ligne de champs sans indexation puis les dupliquer (cf. copie d’écran). C’est ensuite beaucoup plus simple pour faire des opérations…
Je présume que dans ton formulaire les champs « Grade » et « Statut » pourraient être rempli automatiquement en fonction du nom !!!
@+
:bonjour:
bebarthMaître des clésbonjour,
effectivement, pourrais-tu nous dire ce qui ne va pas ou quoi doivent correspondre les différents totaux !
@+
:bonjour:
bebarthMaître des clésbonjour,
tu mets le script en script de calcul du champ cible.
@+
:bonjour:
bebarthMaître des clésbonjour,
quel est le format du champ cible ? as-tu essayé la catégorie « Aucune » ?
@+
:bonjour:24 janvier 2018 à 12:13 en réponse à : Afficher le min ou max d’une serie de valeur SEULEMENT Vue #63200
bebarthMaître des clés…et voilà !
ça doit certainement pouvoir être simplifié !
@+
:bonjour:
bebarthMaître des clésmasqués oui, mais si la personne se trompe de champ le chiffre indiqué par erreur doit s’effacer.
…alors ça j’ai pas compris ! d’ailleurs le reste non plus car pour l’instant dans ton fichier lorsque qu’on rempli un des champs, les autres sont désactivés comme tu le souhaites. :Euuuh:
@+
:bonjour:
bebarthMaître des clésbonjour,
je présume que « se désactivent » signifie sont masqués !
aurais-tu un fichier à partager ?
@+
:bonjour:24 janvier 2018 à 07:28 en réponse à : Afficher le min ou max d’une serie de valeur SEULEMENT Vue #63198
bebarthMaître des clésbonjour Merlin,
c’est ce que j’ai fait, mais je n’arrive pas à intégrer la table dans Math.max(table) !!!
@+
:bonjour:
bebarthMaître des cléssinon, l’action que j’avais proposée (https://abracadabrapdf.net/forum/index.php?action=dlattach;topic=2989.0;attach=2468) sépare les planches en pages paires et impaires et les re-classe dans l’ordre !
@+
:bonjour:23 janvier 2018 à 11:38 en réponse à : Afficher le min ou max d’une serie de valeur SEULEMENT Vue #63196
bebarthMaître des clés…plutôt 32 combinaisons !
:bonjour:
bebarthMaître des clésTon problème m’en rappelle un autre :
https://abracadabrapdf.net/forum/index.php/topic,2989.msg16916.html#msg16916Dans ton exemple si a l’origine une page comporte les pages paires et impaires d’un document, il y a un signet commun pour ces 2 pages, donc dans ton document final les pages paires et impaires ont le même nom de signet correct ???
Si tu importe un document dans un autre, tu vas avoir toutes les pages paires, puis toutes les impaires (ou l’inverse). Ensuite tu les re-classes manuellement ?
@+
:bonjour:
bebarthMaître des clésbonjour,
ce que je ne comprend pas c’est que normalement si tu importes un document avec des signets, ils sont automatiquement intégrés au nouveau document avec les liens qui vont bien !
tu ne devrais plus qu’à les réorganiser…
@+
:bonjour:23 janvier 2018 à 08:37 en réponse à : Afficher le min ou max d’une serie de valeur SEULEMENT Vue #63195
bebarthMaître des clésbonjour,
c’est plus compliqué que ça en a l’air au premier regard !!!
est-ce que plusieurs champs peuvent être cachés en même temps ? si oui il faut vérifier toutes les combinaisons (10) à chaque fois…
si un seul champs à la fois peut être masqué, c’est beaucoup plus simple…
@+
:bonjour:
bebarthMaître des clésbonjour,
Voici un exemple pour classer un nombre de champ bien déterminé !
…et je ne pense pas que toi Merlin tu n’aies pas le niveau. :tutut:
@+
:bonjour:
bebarthMaître des clés…à ce moment là tu mets la fin du script pour chaque bouton :
if (this.getField(« Text1 »).display == display.visible || this.getField(« Text2 »).display == display.visible) this.getField(« Text3 »).display = display.visible
else this.getField(« Text3 »).display = display.hidden
@+
:bonjour:
bebarthMaître des clésbonjour,
ici c’est un OU logique (inclusif).
@+
:bonjour:
bebarthMaître des clésOuais, mais je veux garder le même groupe.
oui, mais non… le propre du bouton radio est de pouvoir attribuer une valeur d’export différente à un même champ selon le bouton coché ! d’où un nom commun pour tous les boutons…
j’avais pensé cacher les autres boutons avec un carré blanc. j’ai essayé avec un script différent sur chaque bouton, mais seul celui du premier est exécuté !
@+
:bonjour:
bebarthMaître des clésbonjour,
voici une solution pour t’aider.
@+
:bonjour:
bebarthMaître des clésbonjour,
…sinon voici un exemple qu’il faudra adapter selon le nombre de champs.
@+
:bonjour:
bebarthMaître des clésbonjour,
je viens de tester et effectivement ça fonctionne. Si l’on imprime un A4 ou un A3 à 100 %, on n’a pas besoin de choisir le bac à papier (je ne peux tester que ces 2 formats), la sélection se fait automatiquement.
Par contre, je ne sais pas comment faire si l’on veut changer d’échelle : A4 en A3 ou vice et versa. J’ai essayé d’imprimer un format A2 et ça me demande d’insérer une feuille dans le bac d’alimentation manuel.
Cela conviendrait-il ???
@+
:bonjour:
bebarthMaître des clésbonjour,
si tu modifies le format du champ en Nombre, c’est un nombre et tu peux même le multiplier !!! :extra:
@+
:bonjour:
bebarthMaître des clésbonjour,
ça devrait être possible, j’ai trouvé ça :
https://help.adobe.com/livedocs/acrobat_sdk/9.1/Acrobat9_1_HTMLHelp/wwhelp/wwhimpl/common/html/wwhelp.htm?context=Acrobat9_HTMLHelp&file=JS_Dev_PrintProduction.75.4.html
Merlin, peut-être sais-tu ou trover le fichiers SDKSilentPrint.js et SDKJSSnippet1.pdf ???
@+
:bonjour:
bebarthMaître des clésdans ton fichier, où veux-tu afficher la valeur ?? mon exemple te convient-il ?
@+
:bonjour:
bebarthMaître des clésbonjour,
ce que tu as écris est un peu compliqué et pas complètement vrai. De plus {event.value=B.value;} ça ne veut rien dire, il faut écrire {event.value=this.getField(« B »).value;} (idem pour les champs G et H).
Si tu affiches la console (commande J sur Mac) tu verras affiché d’où vient l’erreur :
InvalidSetError: Propriété Set impossible, incorrecte ou inconnue.
Event.value:14:Field Ecart:Calculate@+
:bonjour:
bebarthMaître des clésbonjour et bonne année à tous !
voici un exemple pour afficher l’arrondi au demi point supérieur.
@+
:bonjour:
bebarthMaître des clésJ’ai tellement l’habitude de faire mes visuels sous Illustrator qui m’offre plus de possibilités graphiques, que je n’ai pas pensé à un logiciel de mise en page ! Ici le visuel est très simple.
J’ai donc refait le visuel sous XPress (désolé…) et la taille du plus grand panneau tombe à 300 Mo (image non compressée).
merci & @+
:bonjour:
bebarthMaître des clésMerci Merlin,
abracadabraTools n’y fait rien, je viens d’essayer.
je vais également essayer InDesign, mais je ne le connais pas bien… je suis un vieux de la vieille plus spécialisé en XPress !!! :joker:
sinon ce sera 3 fichiers de 1 Go, en plusieurs WeTransfer.
@+
:bonjour:
bebarthMaître des clés…j’ai même essayer de faire des masques par zone (sur Illustrator) mais le poids est toujours le même !!!
@+
:bonjour:
bebarthMaître des clésMerci Merlin,
Dans mon cas, l’image de fond est un fichier jpg « incorporé » dans Illustrator !
@+
:bonjour:
bebarthMaître des clésbonsoir,
pour tes 2 posts, il serait préférable de fournir un fichier, c’est généralement plus facile à comprendre, et ça nous évite d’interpréter et de décrypter les scripts proposés…
@+
:bonjour:
bebarthMaître des clés:Euuuh:
comment est numéroté ta page ???
this.pageNum devrait te donner le bon numéro de page.
@+
:bonjour:
bebarthMaître des clésbonjour,
en fin de script du bouton validation tu rajoutes pour chaque Check Box:
this.getField(« Check Box4 »).display=display.visible; //pour la Check Box4
@+
:bonjour:
bebarthMaître des clésmaybe this article could help you!
http://www.sk3tchup.com/2016/07/trick-to-convert-any-3d-file-into-u3d.html
@+
:bonjour:23 mars 2017 à 21:35 en réponse à : Auto-tab d’un champ à un autre quand le nombre de carac maxi est atteint #62436
bebarthMaître des clésbonjour,
Tu devrais trouver les réponses à tes questions dans ce post :
http://abracadabrapdf.net/forum/index.php/topic,3213.0.html
Sinon, dans le fichier joint.
@+
:bonjour:
bebarthMaître des clésMerci mais, comment je place ce script ?
Il va falloir effectivement trouver un déclencheur pour ce script ! Tout cela dépend de ton formulaire… ça peut-être un bouton (envoyer, imprimer…) ou en validation d’un autre champ.
Je ne te conseille pas en script de calcul, sinon le message va apparaitre continuellement, avant même d’en arriver aux cases à cocher !!!
@+
:bonjour:
bebarthMaître des clésLe point d’exclamation, c’est l’inverse.
if (this.getField(« CheckBox1 »).isBoxChecked(0)) -> si la case est cochée.
if (!this.getField(« CheckBox1 »).isBoxChecked(0)) -> si la case n’est pas cochée.
C’est comme pour « = » et « != ».
@+
:bonjour:
bebarthMaître des clésbonjour,
Code:if (!this.getField(« CheckBox1 »).isBoxChecked(0) && !this.getField(« CheckBox2 »).isBoxChecked(0) && !this.getField(« CheckBox3 »).isBoxChecked(0)) app.alert(« Veuillez cocher au moins une case. »,1);@+
:bonjour:
bebarthMaître des clésbonjour,
En script de validation du champ « date » :Code:if (event.value!= » » && event.value!=null) this.getField(« taux »).required = true
else this.getField(« taux »).required = false@+
:bonjour:
bebarthMaître des clésbonsoir,
J’ai repris l’exemple précédent.
Le mot de passe (bebarth — un peu mégalo le mec !) se trouve en script d’ouverture de page et en unicode.
Ne pas oublier le plugin.
@+
:bonjour:
bebarthMaître des clésbonjour,
Si je comprends bien, c’est tout à fait possible !
Regarde ce lien si il peut t’aider :
http://abracadabrapdf.net/forum/index.php/topic,2860.msg16116.html#msg16116
@+
:bonjour:
bebarthMaître des clésbonsoir,
Voici une autre proposition. Il faut régler le nombre de caractères maxi du champ « Saisie » à 8.
Lorsque les 8 caractères sont entrés, le champ passe automatiquement au champ suivant…
Voir si ça te convient !
@+
:bonjour:
bebarthMaître des clésbonjour,
…pas pour une longueur de chaîne !!! sinon quelle est la longueur d’une chaîne vide ???
@+
:bonjour:
bebarthMaître des clés…on pourrait même limiter directement le nombre de chiffres tapés :
Code:var regxp=/^[0-9]$/;
if (event.willCommit==false)
{
if (event.change.length>0 && regxp.test(event.change)==false)
{
app.beep();
event.rc=false
}
if (this.event.value.length>7)
{
app.beep();
app.alert(« Saisie trop longue ! »,1);
event.rc=false
}
}A l’origine, j’étais parti avec this.event.value.length>8, mais l’alerte se fait à x + 1.
Il doit y avoir une explication mais j’ai pas compris !
@+
:bonjour:
bebarthMaître des clésbonjour & :bravo:
Il faudrait ajouter un script pour forcer la saisie des nombres si nécessaire.
En script de touches personnalisé :
Code:var regxp=/^[0-9]$/;
if (event.willCommit==false)
{
if (event.change.length>0 && regxp.test(event.change)==false)
{
app.beep(); //pour émettre un bip
event.rc=false
}
}@+
:bonjour:
bebarthMaître des clésbonjour,
Je sais comment interdire la saisie d’un caractère ASCII mais pour la touche TAB je donne ma langue au chat… :joker:
J’ai essayé pas mal de combinaisons avec l’expression rationnelle RegExp sans succès.
Le code ascii de la tabulation est 9 (ou u0009 en unicode) mais je n’ai pas réussi à l’intégrer.
Il y a pourtant une page très complète à ce sujet (peut-être trop pour moi) :
https://javascript.developpez.com/tutoriels/maitriser-expressions-rationnelles/
N’est-il pas possible de capturer la touche clavier utilisée (genre keyCode) plutôt que le caractère ?
@+
:bonjour:
bebarthMaître des clésbonjour,
Voici une proposition de case à cocher à 3 états.
@+
:bonjour:28 février 2017 à 18:36 en réponse à : Formulaire PDF / Export XML d’une balise de type <image href= … #62360
bebarthMaître des clésbonjour,
As-tu un exemple à poster ?
Lorsque tu exporte en xml, quel chemin indiques-tu ?
@+
:bonjour:
bebarthMaître des clésbonjour,
C’est presque bon, il faut juste change le 1 en 0 :
isBoxChecked
if (this.getField(« P1 – Case 1 »).isBoxChecked(0))
…et éviter les espaces dans les noms de champs !
@+
:bonjour:
bebarthMaître des clésbonjour,
Je ne confirme pas qu’il ne faut qu’une décimale, car dans l’api reference il y a un exemple avec 2 décimales et je n’ai rien trouvé à ce sujet.
Voici un code que tu aurais pu mettre en script d’action :Code:var f = this.getField(event.target.name);
if (color.equal(f.fillColor, color.transparent)) {
var colour= » »;
f.fillColor = [« RGB »,0.60,0.80,0.19];
var colour= »vert »;
} else {
if (colour== »vert ») {
f.fillColor = [« RGB »,0.69,0.18,0.37];
var colour= »marron »;
} else {
if (colour== »marron ») {
f.fillColor = [« RGB »,0.82,0.82,0.82];
var colour= »gris »;
} else {
if (colour== »gris ») {
f.fillColor = color.transparent;
}
}
}
}Vu que les couleurs tournent en boucles, il n’y a pas de raison d’analyser la couleur du champ. Une variable indique où on en est !!!
Lorsqu’il y a plein de conditions (if) imbriquées, il vaut mieux essayer de les écrire correctement à l’aide d’un éditeur de codes, sinon on est vite perdu.
@+
:bonjour:
bebarthMaître des clésbonjour,
je n’ai pas beaucoup de temps à l’instant, mais voici une piste.
si tu mets une couleur de champ en RGB,0.60,0.80,0.19 par exemple et que tu la relis pour la comparer, le résultat est :
RGB,0.600006103515625,0.8000030517578125,0.19000244140625
…les 2 couleurs n’ont donc pas les même valeurs.
Il vaudrait peut-être arrondir les valeurs lues pour la comparaison.
@+
:bonjour:
bebarthMaître des clésmerci. :extra:
:bonjour:
bebarthMaître des clésJ’ai trouvé l’action mais je n’ai pas réussi à l’intégrer… pour l’instant !
@+
:bonjour:
bebarthMaître des clésOui, ça je sais et c’est après avoir vérifié dans l’api reference que je disais qu’on ne peut pas faire grand chose avec les calques. Ou alors, c’est bien caché…
J’ai trouvé qu’il y avait une action pour aplatir les calques. J’ai essayé et ça me convient bien, par contre je n’ai pas trouvé d’action pour les fusionner.
@+
:bonjour:
bebarthMaître des clésMerci Merlin,
Je ne connaissais pas la fusion de calques !
Et c’est javascriptable ??? On ne peut pas faire grand chose avec les calques en javascript…
@+
:bonjour:
bebarthMaître des clésbonjour,
Sinon, il y a ce script :Code:var boutonRadio = 0;
var boutonCoche = 0;
for (var i=0; ivar nomChamp = this.getNthFieldName(i);
if (this.getField(nomChamp).type == « radiobutton ») {
boutonRadio++;
if (this.getField(nomChamp).isBoxChecked(0)) {boutonCoche++;}
}
}
app.alert({cMsg: »Il y a « +boutonCoche+ » boutons cochés sur » + boutonRadio + » boutons-radios. », nIcon:2});@+
:bonjour:21 février 2017 à 11:43 en réponse à : alerte conditionnelle sur valeur de plusieurs champs de texte #62342
bebarthMaître des clésbonjour,
Comment dire ??? Il y a beaucoup de choses qui seraient à revoir dans ton formulaire, notamment les noms des champs… mais je ne veux pas donner de leçons, juste des remarques.Pour ton problème numéro 1, il faut utiliser un OU (||) pour vérifier si un champ est inférieur à 75. Il faudra redéfinir les champs au format nombre.
Ici, le code est écrit comme je l’aurais écris, avec des noms de champs sans espace ni caractères accentués.Code:if (this.getField(« pourcentObservableComp1 »).value <75 || this.getField("pourcentObservableComp2").value <75 || this.getField("pourcentObservableComp3").value <75 || this.getField("pourcentObservableComp4").value <75 || this.getField("pourcentObservableComp5").value <75 || this.getField("pourcentObservableComp6").value <75 || this.getField("pourcentObservableComp7").value <75) {
this.event.target.display=display.visible;
} else {
this.event.target.display =display.hidden;
}Pour ton problème numéro 2, en script de validation, il faudrait rajouter pour chaque champ noteComp1, noteComp2,… :
Code:if (this.event.value<4) {
this.getField(« dangerositeOui »).checkThisBox(0,true)
} else {
this.getField(« dangerositeOui »).checkThisBox(0,false)
}idem pour l’écriture et pour le format des champs.
@+
:bonjour:
bebarthMaître des clésbonjour,
Tout se passe bien pour créer des fichiers individuels. Avec un petit script, seul le calque nécessaire apparait !
Ça se complique lorsque je veux faire un fichier composite. Tous les calques apparaissent…
Je crois qu’il n’est pas possible de supprimer des calques (pour les fichiers individuels), je ne vois pas comment faire.
Je pensais que l’aplatissement n’aurait conservé que les calques visible !
Merci si vous avez une idée !
@+
:bonjour:
bebarthMaître des clésbonjour,
Pour un novice, tu ne te lances pas dans le plus simple ! Mais après tout, le reste te paraitra peut-être plus simple… :geek:
Voici l’adresse d’un premier tutorial (il y en a 5) pour t’aider à réaliser cela.
https://acrobatusers.com/tutorials/popup_windows_part1
Sinon, il y a peut-être d’autres solutions comme les listes déroulantes, les boutons radio, etc suivant ce que tu veux faire exactement.
Tu peux poster un fichier exemple pour voir ce qui est réalisable simplement…
@+
:bonjour:
bebarthMaître des clésbonjour,
c’est que mon message d’erreur s’affiche à chaque fois que je vais dans un champ quelconque.
Tu mets le script en validation du champ DateAVerifier !
Petite question toutefois : je n’ai jamais enlevé 1 aux mois dans mes comparaisons de date, et pourtant, je ne pense pas avoir eu de soucis sur ce point. Est-ce normal ? Faut-il toujours enlever 1 ?
Comme je l’ai dit, j’ai juste adapté un script qui fonctionnait. Comme il est indiqué dans ce script, les mois sont numérotés de 0 à 11 (c’est pour cela que l’on retire 1). Si tu affiches la console et que tu modifies le script d’Alex en ne supprimant pas ce mois, tu vérifieras que le résultat est erroné !
@+
:bonjour:
bebarthMaître des clésbonsoir,
Voici une adaptation du script d’Alex qui devrait répondre à ta demande.
Le script se trouve en script de calcul du champ DateLimite.
@+
:bonjour:
bebarthMaître des clésbonjour,
La solution des calques fonctionne bien, mais aujourd’hui je n’ai pas eu le temps d’aller plus loin…
@+
:bonjour:
bebarthMaître des clésbonjour,
je voudrais bien essayer de t’aider, mais pour l’instant je ne comprend pas tout…
Aurais-tu un fichier à poster ? il est où ce script d’Alex ??? un lien peut-être…
@+
:bonjour:
bebarthMaître des clésTu as raison, je n’avais pas du tout pensé aux calques…
Je verrai ça lundi maintenant, parce que le weekend en ce moment, je suis maçon, plâtrier, plombier, peintre, souvent nounou… :joker:
Merci.
@+
:bonjour: -
AuteurRéponses
