Toutes mes réponses sur les forums
-
AuteurRéponses
-
18 septembre 2012 à 07:40 en réponse à : Affichage des nombres… : discussion : bug ? problème ? – DISCUSSION #53548alexParticipant
C’est bien le format que j’aurais aimé utiliser. Mais rien à faire (Acrobat 9, 10 sur Mac). Voir capture jointe.
[attachment deleted by admin]
alexParticipantVous brûlez ! C’est bien sur ce site qu’il faut chercher…
5 septembre 2012 à 17:23 en réponse à : Comment fractionner un fichier PDF en plusieurs fichiers PDF ? – RÉPONDU #53487alexParticipantMon cher Merlin, je te rappelle que nous avons développé ensemble un script d’extraction de factures pour Acrobat au mois d’avril (dernière version du 26 avril) répondant à ce problème… Or dans ce script, nous avions fonctionné à partir de la détection du mot clef “Facture” puis sur le contrôle de cohérence du numéro de facture (nombre, nature des caractères) pour fractionner une liasse de factures ayant un nombre de pages variables. En général les applications générant des factures au format .pdf sont compatibles avec la méthode que nous avons utilisée (getNthWord()) pour récupérer les chaînes de texte à analyser.
alexParticipantOui, c’est bon mais assez compliqué pour gérer les jours fériés par la suite.
J’aurais fait défiler les jours entre les deux dates et utilisé .getDay() pour récupérer la valeur du jour de la semaine pour la date courante (L’objet retourné est un entier qui correspond au jour de la semaine.. 0: dimanche 1: lundi …), comparé chaque date courante avec une table des jours fériés et ainsi obtenu un résultat exact (au moins dans un pays donné). Qu’en penses-tu ?Merlin, ce serait mieux d’ouvrir un nouveau fil car nous sommes hors sujet !
[Edit du modo : les sujets ont été déplacés et ré-ordonnés)16 mai 2012 à 13:24 en réponse à : Redimension automatique de la taille d’un champ de texte. – RÉSOLU #53047alexParticipantCes scripts ajustent la hauteur des champs, pas la largeur. Mais ça peut être utile.
alexParticipantVoir maquette jointe:
La saisie et l’affichage des nombres décimaux se fait dans le format du champ (ici S et coefficient).
La définition de paramètres numériques décimaux dans un script se fait en séparant la partie entière de la partie décimale par un point.
Les comparaisons de chaînes de caractères prennent en compte la casse (“Non” n’est pas “NON”).Pour le calcul des nombres de jours ouvrés, j’ai un script Php que je vais convertir en JavaScript. Pas aujourd’hui.
A+
[attachment deleted by admin]
alexParticipantC’est sans doute le format du champ qui n’est pas correct (voir réponse de Merlin) , il suffit de le préciser. Toutefois, avec Scribus, je ne sais pas si on a droit au séparateur de milliers. A voir. En ce qui concerne le comptage des jours ouvrés, j’ai déjà fait ça, e vais voir si je n’ai pas un script dans mes placards, mais je ne suis pas sûr qu’i exclue bien les jours de semaine fériés…
alexParticipantPour moi, cocher la case à cocher n’est pas suffisant car il faut également lancer le script de remplissage du champ fille sur validation, cette fois et en prenant pour argument this.event.value. Ceci ne fonctionnera que sur les versions récentes d’Acrobat ou Adobe Reader. Les solutions que je propose fonctionneront sur des versions plus anciennes où la case à cocher dont parle Merlin n’existait pas…
alexParticipantL’évènement déclencheur n’est pas la validation du premier champ mais sa modification (voir ce qui concerne les évènements dans la spécification JavaScript d’Acrobat).
Donc script ci-dessous à placer Onglet Format:script de touche personnalisé:
console.clear();
ev=this.event.change;
console.println(ev);
if (ev==”France”)
{
this.getField(“Liste2”).clearItems();
this.getField(“Liste2”).insertItemAt(“Paris”);
this.getField(“Liste2”).insertItemAt(“Tours”);
}if (ev==”Angleterre”)
{
this.getField(“Liste2”).clearItems();
this.getField(“Liste2”).insertItemAt(“Londes”);
this.getField(“Liste2”).insertItemAt(“Brighton”);
}if (ev==”Portugal”)
{
this.getField(“Liste2”).clearItems();
this.getField(“Liste2”).insertItemAt(“Lisbonne”);
this.getField(“Liste2”).insertItemAt(“Porto”);
}
Voir maquette jointe qui répond à votre problème.
Nota1: depuis que la gestion des évènements sous Acrobat fonctionne à peu près correctement, il n’est pas nécessaire d’utiliser eventWillCommit comme dans mes exemples précédents, attention par contre à bien prendre en compte event.change ou event.changeEx (voir mes exemples sur ce site).
Nota2: la syntaxe insertItemAt() utilisée ici fonctionne mais elle est incomplète (voir mes exemples).[attachment deleted by admin]
4 mai 2012 à 10:18 en réponse à : Redimension automatique de la taille d’un champ de texte. – RÉSOLU #53044alexParticipantSur la page, j’ai créé deux champs texte:
Le champ “Reference”, caché en lecture seule qui est placé sur la future zone de saisie.
Le champ “MonBeauChampQuiGrandit”, future zone de saisie n’importe où, elle sera redimensionnée par le script pour couvrir le champ précédant.
En ouverture de page on ajoute rien, ce n’est pas nécessaire.
Dans le champ “MonBeauChampQuiGrandit”, onglet “Format>Personnalisé>Format de touche personnalisé” j’ai saisi le script suivant:
if(!this.event.willCommit)
{
console.clear();
lgbase=3;
fref=this.getField(“Reference”);
fsaisie=this.getField(“MonBeauChampQuiGrandit”);
fsaisie.readonly=false;
fsaisie.hidden=false;
fsaisie.rect=fref.rect;
fref.readonly=true;
fref.hidden=true;
rectangle=fref.rect;
//calcul de la largeur de référence
larg=rectangle[2]-rectangle[0];
//lecture du contenu du champ
lg=this.event.value;
//calcul de la nouvelle abscisse
ratio=(lgbase+lg.length)/lgbase;
newlarg=ratio*larg;
position=Math.max((rectangle[0]+newlarg),(rectangle[0]+larg));
pageBox=this.getPageBox();
console.println(“PageBox droit=”+pageBox[2]+” position =”+position);
rectangle[2]=Math.min(position,pageBox[2])
//Pour les curieux:
console.println(“Chaîne de caractères=”+lg);
console.println(“Longueur chaine de caractères=”+lg.length);
console.println(“ratio amplification=”+ratio);
console.println(“Longueur variable du champ de saisie=”+newlarg);
console.println(“Longueur mini du champ de saisie=”+larg);
//On dimensionne
fsaisie.rect=rectangle;
}
Faites des tests, ce n’est pas totalement abouti mais ça devrait se rapprocher de ce que vous voulez.
Fonctionne avec Adobe Reader 8,9,10, éviter le 7.26 mars 2012 à 18:36 en réponse à : Problème remplissage des formulaires PDF avec correspondants sous MAC. – RÉPONDU #52768alexParticipantPour palier à ces inconvénients je place un calque sur le formulaire, calque qui sera masqué par script à l’ouverture. Si le lecteur n’interprète pas le JavaScript, le calque reste en place. Sur ce calque un message indique qu’il faut passer par Adobde Reader. On peut aussi placer un gros bouton avec un texte d’avertissement (même méthode).
8 mars 2012 à 17:45 en réponse à : Lier les choix possible d’une liste déroulante à une deuxième. RÉSOLU #50506alexParticipantDans cette version fonctionnellement identique à la précédente toujours sous AcroForm, le script détecte l’éventuelle absence de listes d’items. Pour retrouver la console et suivre l’historique du déroulement du programme sous Acrobat (Ctrl-J SUR PC ou POMME-J sur MAC). J’espère avoir répondu à votre dernier problème.
Ce sujet semble avoir un gros succès…
[attachment deleted by admin]
8 mars 2012 à 11:40 en réponse à : Lier les choix possible d’une liste déroulante à une deuxième. RÉSOLU #50505alexParticipantDans cette version (à tester), vous trouverez la méthode définissant les listes déroulantes avec des valeurs d’export en clair (plus pratique pour récupérer les données sur un serveur). Attention, les listes sont à compléter pour fonctionner dans tous les cas de figure. L’initialisation peut être lancée en ouverture de page et on peut donc supprimer le bouton.
[attachment deleted by admin]
27 février 2012 à 16:35 en réponse à : Acrobat X pro – Formulaires – Exportation de données. – RÉPONDU #52507alexParticipantUn champ numérique contenant des nombres décimaux notés avec des points (123.85) au lieu de virgules refusées par Excel ? C’est une supposition….
13 février 2012 à 19:44 en réponse à : Lier les choix possible d’une liste déroulante à une deuxième. RÉSOLU #50502alexParticipantBien vu Merlin, ça peut servir !
pikmin04, je regarde le problème de l’envoi des données vers un serveur, effectivement en l’état on reçoit les indices des items et non les valeurs elles-même ce qui complique la tâche à l’arrivée à moins d’avoir une copie des mêmes tables dans le script du serveur (pHp ou CGI).Lorsque j’aurai une solution propre j’ouvrirai un nouveau fil “Listes déroulantes en cascade” …11 février 2012 à 17:55 en réponse à : Lier les choix possible d’une liste déroulante à une deuxième. RÉSOLU #50498alexParticipantVoilà une maquette pour illustrer une solution à votre problème si ça peut vous dépanner. Attention, la définition des tables n’est pas complète (limitée à Afrique et Europe), saurez-vous vous en débrouiller ?
On peut supprimer le bouton “Init”, l’initialisation se fait avec l’ouverture de page (script Initialisation())
Les deux autres scripts sont lançés:
1-par action du menu déroulants de niveau 1 (les continents) pour RemplissageFille()
2-par action du menu déroulants de niveau 2 (les pays) pour RemplissagePetiteFille()Les villes sont répertoriées dans les liste ListeN3 comme suit:
c est le rang du continent issu de la liste ListeN1 des continents.
p est le rang du pays issu de la liste ListeN2[c] des pays.
ListeN3[c][p]=[“Ville1″,”Ville2″,”Ville3″,”Ville4″,”Ville5”];Aucune des listes de niveau 1, 2 ou 3 n’est limitée en nombre.
On peut adapter ce système à une autre hiérarchie (il suffit de modifier les tables du script d’initialisation).
[attachment deleted by admin]
10 février 2012 à 09:04 en réponse à : Lier les choix possible d’une liste déroulante à une deuxième. RÉSOLU #50497alexParticipantEn effet, il faut revoir le script initial pour qu’il s’adapte aux trois niveaux (Continent,Pays,Ville) au lieu des deux niveaux de l’exemple précédant. Accordez moi quelques jours, je vais vous proposer une solution AcroForm uniquement…
16 janvier 2012 à 11:31 en réponse à : Script pour afficher / masquer les boutons à la volée. – RÉSOLU #52405alexParticipantDesole. Je suis sur un lit d ‘hôpital avec un iPhone. Retour prévu pour le 23 janvier.
7 janvier 2012 à 19:28 en réponse à : Script pour formulaire imposant un @ et un point. – RÉSOLU #52428alexParticipantAttention les jeunes ! Ce script vite fait à l’américaine considère les adresses de type “jojo.martin@company.oleane.com” et d’autres comme invalides !
3 janvier 2012 à 08:26 en réponse à : Script pour afficher / masquer les boutons à la volée. – RÉSOLU #52402alexParticipantBonne année à tous.
Je vais donner un exemple dans les prochains jours.23 décembre 2011 à 12:38 en réponse à : Script Javascript lors de l’ouverture du PDF. – RÉSOLU #52416alexParticipantC’était de l’ironie… Vous l’aviez compris chère Bizou.
22 décembre 2011 à 15:56 en réponse à : Adobe Reader pour iOS ? / plug-ins Flash – ACTUALITÉ À SUIVRE #51796alexParticipantPour ma part j’utilise PDF Expert qui interprète certes partiellement le JavaScript, mais suffisamment pour satisfaire un grand nombre de besoins des formulaires interactifs, envoi de données en prime. Seule ombre au tableau, l’absence de vidéos embarquées, et pour cause…. Ce produit évolue très vite face à Adobe Reader gratuit pour iPad qui est assez indigent, comme la plupart des lecteurs proposés sur l’AppStore.
22 décembre 2011 à 14:57 en réponse à : Script pour afficher / masquer les boutons à la volée. – RÉSOLU #52397alexParticipantDommage, et la prochaine fois ?
Je vais vous faire une petite maquette, vous comprendrez la méthode et pourrez l’adapter la prochaine fois…22 décembre 2011 à 08:02 en réponse à : Script Javascript lors de l’ouverture du PDF. – RÉSOLU #52413alexParticipantOui, je donne assez souvent des solutions qui fonctionnent. J’en suis moi-même étonné.
alexParticipantIl s’agit probablement d’un formulaire généré sous Adobde LiveCycle Designer, et les données sont présentes dans le fichier de type .xlm que l’on peut ouvrir sous Excel. Il peut y avoir des problèmes sous Windows Xp et des versions d’Excel anciennes, on trouve les solutions sur le Web.
21 décembre 2011 à 18:35 en réponse à : Texte à centrer horizontalement et verticalement. – RÉPONDU #52369alexParticipantDésolé, pas de solution pour ça sinon une usine à gaz…
21 décembre 2011 à 18:34 en réponse à : Script Javascript lors de l’ouverture du PDF. – RÉSOLU #52411alexParticipantSous Acrobat, il n’est pas prévu d’associer un script à l’ouverture d’un document, mais à l’ouverture de page. Par contre, à la fermeture de document on peut lancer un script. C’est bizarre, mais c’est comme ça. Comment faire?
1-Une première solution est d’ajouter une page vierge en fin du document, ouverte par défaut à l’ouverture du document et de lui associer le script d’alerte puis de pointer sur la première page:
app.alert(“Mon message important”,1);
this.pageNum=0;2-Une seconde solution consiste à créer un script de document:
Options avancées>Traitement du document>Scripts JavaScript
function ajout()
{
app.alert(“Mon message important”,1);
}
puis de supprimer toutes les lignes dans l’éditeur sauf :
app.alert(“Mon message important”,1);Le script d’alerte sera alors exécuté à l’ouverture.
3-Une troisième solution réservée aux experts… saisie directe:
Options avancées>Traitement du document>Modifier tous les scripts JavaScript
//
/*********** appartient à : Document-Level:Ouverture ***********/
app.alert(“Mon message important!”,3);
//21 décembre 2011 à 18:18 en réponse à : Script pour afficher / masquer les boutons à la volée. – RÉSOLU #52394alexParticipantPour résoudre ce problème il faut attribuer aux champs texte et aux boutons des noms génériques du style :
Bouton_pp_xxx où pp est le numéro de page (de 00 à 99) et xxx le rang du bouton sur la page considérée.
Question_pp_xxx où pp est le numéro de page (de 00 à 99) et xxx le rang du bouton sur la page considérée.
Reponse_pp_xxx où pp est le numéro de page (de 00 à 99) et xxx le rang du bouton sur la page considérée.
Ensuite, pour chaque action, un script unique sera capable de reconnaître l’origine de l’action (event.target.name), de s’assurer de la validité de son nom (event.target.name.substring(0,6)==”Bouton”) puis d’agir sur les champs associés de même page et même rang soit le champ ayant pour nom:”Reponse”+event.target.name.substring(7,13).
Nota:on peut se passer du numéro de page et ne traiter que les rangs des questions.Eh oui, un ou deux scripts suffisent à cette affaire !
Envoyez quelques pages de votre questionnaire, le script en place, le reste suivra…
alexParticipantLes exemples de scripts sont nombreux ici:
http://www.fpdf.org/
Un bon tutoriel ici chez Developpez.com, un site à ne jamais perdre de vue:
http://jc-cornic.developpez.com/tutoriels/php/pdf/index.phpalexParticipantOui, c’est clair. Il existe des classes PHP qui font ce travail.
Pour ma part j’utilise FPDF, très simple à utiliser avec une base de données mySQL.
Voir aussi TCPDF, plus simple à utiliser paraît-il et PDFLib.
Toutefois, attention, le document généré par ces classes est un PDF à plat (les champs de données ne sont pas recréés).2 décembre 2011 à 18:20 en réponse à : [LiveCycle ES] objet masqué doit s’afficher en fonction de la sélection. RÉPONDU #52322alexParticipantVoilà une solution sous acroForm. Pour que le système fonctionne, il suffit que les champs aient des noms commençant par AZERTY,QWERTY,QWERTZ respectivement, quelque soit le nombre de ces champs dans chaque groupe. Voir maquette.
Attention, le script est lancé à partir de la liste déroulante (Onglet Format>Script de touches personnalisé> Action().
Le script action() se situe au niveau du document et capte le changement de valeur de la liste.
Ouvrir la console pour voir les éditions console.println
function Action()
{
console.clear();
prefixe=this.event.change;
console.println(“Sélection de “+prefixe)
//Passer en revue tous les champs du document…
indexField=0;
while(indexField{
nameField=this.getNthFieldName(indexField)
entete=nameField.substring(0,6);
//Masquer les champs des séries AZERTY,QWERTY,QWERTZ
if(entete==”AZERTY”|entete==”QWERTY”|entete==”QWERTZ”)
{
this.getField(nameField).hidden=true;
}
//Afficher les champs de la série choisie
if(entete==prefixe)
{
this.getField(nameField).hidden=false;
console.println(“Affichage du champ “+nameField)
}
indexField=indexField+1;
}
}Pour la solution Live Cycle Designer, vous patienterez un peu, je travaille sur Mac et cet outil de développement ne fonctionne que sur Pc
[attachment deleted by admin]
alexParticipantLe script pourrait être le suivant (à bien placer):
Frais= this.getField(“PORT”);
Qte=this.getField(“QTT”);
Frais.value=0;
if(Qte.value==1)
{
Frais.value=6.60;
}
if(Qte.value==2)
{
Frais.value=7.95;
}
if(Qte.value=)
{
Frais.value=8.95;
}
if(Qte.value==4)
{
Frais.value=9.95;
}
if(Qte.value==5)
{
Frais.value=11.95;
}
if(Qte.value==6)
{
Frais.value=11.95;
}
if(Qte.value==7)
{
Frais.value=11.95;
}
if(Qte.value==
{
Frais.value=13.95;
}
if(Qte.value>
{
Frais.value=13.95;
}alexParticipantAprès avoir corrigé ce qui suit, à savoir, un problème de syntaxe, les choses devraient s’éclaircir.
Pour les comparaisons, le signe = doit être doublé, exemple:
if(this.getField(“QTT”).value==0)
{
//script à exécuter
}1 décembre 2011 à 15:44 en réponse à : [LiveCycle ES] objet masqué doit s’afficher en fonction de la sélection. RÉPONDU #52319alexParticipantEnvoyez plutôt votre formulaire, ce sera plus simple que de reconstruire votre modèle…
Si vous laissez tomber LiveCycleDesigner pour l’éditeur intégré d’Acrobat (acroForm), vous aurez une réponse plus rapide. A vous de voir.alexParticipantJe ne peux pas l’affirmer mais j’ai déjà eu des déboires avec l’ordre des tabulations en passant de la version Acrobat 8 à X. Je n’ai pas fait de tests pour confirmer.
1 décembre 2011 à 09:08 en réponse à : Besoin tutoriel / mode d’emploi pour code javascript sur Acrobat pro X – RÉPONDU #52305alexParticipant1-L’objet console permet d’afficher les erreurs de syntaxe ou les informations que l’on souhaite visualiser pour suivre le -déroulement d’un script. Pour ouvrir la console Ctrl-J sur Pc ou Pomme J sur Mac.
Quelques bases:
console.clear();
efface le contenu de la console.
console.show();
affiche la console.
console.println(“Texte sur la console”);
écrit la ligne “Texte sur la console” dans la console.
console.println(this.gefField(“Resultat”).value);
donne la valeur du champ “Resultat”.2-Le statut coché d’une case à cocher:
if(this.getField(“CaseACocher”).isBoxChecked())
{
//script à éxécuter…
}
3-Sur une liste déroulante, on peut tester:
this.getField(“ListeDeroulante”).value
ou
this.getField(“ListeDeroulante”).valueExLe plus simple est de capter les évènement à la source, ici le script associé à la liste déroulante:
Onglet Format>Script de touches personnalisé, exemple:this.getField(“ResultatValeur”).value=this.event.change;
this.getField(“ResultatValeurEx”).value=this.event.changeEx;Voir maquette jointe.
4-Merlin a répondu, il faut être attentif au format des champs…
[attachment deleted by admin]
30 novembre 2011 à 17:20 en réponse à : Besoin tutoriel / mode d’emploi pour code javascript sur Acrobat pro X – RÉPONDU #52301alexParticipantLe calcul ci-dessous est lançé depuis le champ “Resultat”:
Calcul();
Au niveau du document, la fonction Calcul a été créée. Ouvrir la console pour visualiser le suivi du calcul (console.println)
function Calcul()
{
console.clear();
console.println(“Debut du calcul apres action sur “+this.event.target.name+” de valeur “+this.event.target.value)
var c=this.getField(“Groupe”);
var a1=this.getField(“case1”);
var a2=this.getField(“case2”);
var a3=this.getField(“case3”);
var a4=this.getField(“case4”);
if(c.value==”Choix6″)
{
console.println(“Cas 6”)
this.getField(“Resultat”).value=(a1.value-a4.value)*a3.value;
}
if(c.value!=”Choix6″)
{
console.println(“Autres cas”)
this.getField(“Resultat”).value=(a1.value-a2.value)*a3.value;
}
}Regardez bien les comparaisons:
c.value==”Choix6″
Voir maquette…[attachment deleted by admin]
alexParticipantCeci est d’autant plus intéressant qu’il est très facile de perdre l’ordre de tabulation des champs lors de manipulations au niveau de la page ou de changement de version d’Acrobat.
alexParticipantAvec un script de Calcul unique plaçé au niveau du document, le problème ne se pose pas quel que soit l’ordre de saisie des données.
30 novembre 2011 à 13:42 en réponse à : Besoin tutoriel / mode d’emploi pour code javascript sur Acrobat pro X – RÉPONDU #52299alexParticipantJe n’y comprend rien. Envoyez votre formulaire.
30 novembre 2011 à 10:54 en réponse à : Besoin tutoriel / mode d’emploi pour code javascript sur Acrobat pro X – RÉPONDU #52296alexParticipantLa syntaxe est enigmatique pour moi!
if et else sont à mettre en minuscules.
Quel est la formule du mystérieux calcul à effectuer et où afficher le résultat ?30 novembre 2011 à 09:19 en réponse à : Besoin tutoriel / mode d’emploi pour code javascript sur Acrobat pro X – RÉPONDU #52294alexParticipantPour les calculs, la syntaxe JavaScript est la même dans Acrobat et en HTML.
Je vous conseille donc le site de developpez.com:
http://javascript.developpez.com/cours/
Pour ma part, pour les maths, j’utilise aussi un petit mémento JavaScript publié aux éditions Eyrolles: JavaScript précis & concis de David FlanaganCela dit, il faut bien maîtriser la gestion des évènements de l’environnement Acrobat pour rendre l’usage des formulaires agréable.
Bonne chance.
28 novembre 2011 à 08:06 en réponse à : Remplir un formulaire dans Adobe Reader sur tablette. – RÉPONDU #52213alexParticipantFormulaires LiveCycleDesigner et PDF Expert:
On peut oublier le JavaScript pour les formulaires développés sous LiveCycle Designer, les évènements ne sont pas pris en compte. Je n’ai pas testé le FormCalc.
Formulaires acroForm et PDF Expert:
Ce qui ne marche pas:
Un certain nombre de méthodes ne fonctionnent pas, en particulier tout ce qui est lié à un idle (entrée ou sortie souris dans un champ, méthodes de type app.setInterval), ainsi que des méthodes style app.popUpMenu et app.popUpMenuEx bien utiles. Les videos embarquées ne fonctionnent pas.
Ce qui marche:
Par contre, on peut lancer des scripts et manipuler les propriétés des objets (champs, dates). Je n’ai pas testé les manipulations des calques, ni des signets.PDF Expert est donc une bonne base de travail pour les formulaires acroForm sur iPad et sur iPhone (iOS 5).
alexParticipantUne variante à ta solution pour le fun…
[attachment deleted by admin]
alexParticipant1-Le script de calcul est au niveau du document:
Sous Acrobat 8, 9 :
Options avancées>Traitement du document>Scripts JavaScript. Saisir le nom du script (Cacul) puis “Ajouter”. Coller ici le script compris entre les {}.
function Calcul()
{
console.println(“Action utilisateur”);
if(this.event.target.name==”PrixHT”&TTC)
{
console.println(“Calcul du montant TTC”);
this.getField(“PrixTTC”).value=this.event.value*coefTVA;
}
if(this.event.target.name==”PrixTTC”&!TTC)
{
console.println(“Calcul du montant HT”);
this.getField(“PrixHT”).value=this.event.value/coefTVA;
}
}
Sous Acrobat X:
Outils>JavaScripts>Scripts JavaScript du document> Saisir le nom du script (Cacul) puis “Ajouter”. Coller ici le script compris entre les {}.2-Ce script (fonction) est lancé par l’évènement de validation du champ “PrixHT” ou “PrixTTC”.
Sous Acrobat 8, 9 :
Formulaires>Ajouter ou modifier des champs.
Clic-Droit sur le champ>Propriétés>Onglet Validation>
Cocher “Exécuter le script de validation personnalisé” puis “Modifier” pour saisir:
Calcul();
Sous Acrobat X :
Outils>Formulaires>Modifier.
Clic-Droit sur le champ>Propriétés>Onglet Validation>
Cocher “Exécuter le script de validation personnalisé” puis “Modifier” pour saisir:
Calcul();
Pour le champ “PrixHT”, Actions>Souris entrée>Lancer un JavaScript saisir le script suivant:
TTC=true;
console.println(“Preparation calcul TTC…”);
this.getField(“LibellePrixHT”).fillColor=color.white;
this.getField(“LibellePrixTTC”).fillColor=color.yellow;
Pour le champ “PrixTTC”, Actions>Souris entrée>Lancer un JavaScript saisir le script suivant:
TTC=false;
console.println(“Preparation calcul HT…”)
this.getField(“LibellePrixHT”).fillColor=color.yellow;
this.getField(“LibellePrixTTC”).fillColor=color.white;3-Pour le script d’ouverture sous Acrobat 8,9,X, clic droit sur la vignette de la page puis Propriétés> Onglet Action>Lancer un JavaScript puis Ajouter:
console.clear();
coefTVA=1.196;
TTC=true;
this.resetForm();
this.getField(“LibellePrixTTC”).value=”Montant TTC”;
this.getField(“LibellePrixHT”).value=”Montant HT”;alexParticipantMaquette avec champ pour la TVA.
On pourrait aussi calculer les montant HT tet TTC à partir de la saisie de la TVA ![attachment deleted by admin]
alexParticipantCette méthode n’est pas utilisable ici car le calcul doit fonctionner dans les deux sens:
- Calcul TTC si action sur HT
- Calcul HT si action sur TTC
[/list]
alexParticipantLe script suivant fera l’affaire pour trouver le mois précédant date à date et illustrera l’usage de l’objet Date…
function CalculDate()
{
console.println(“Action utilisateur calcul de date”);
chaine=this.event.value;
//Extraction des données à partir de la valeur du champ “DateExpiration”
jour=chaine.substring(0,2);
mois=chaine.substring(3,5);
annee=chaine.substring(6,10);
//Calcul du mois n-1 (les mois sont notés de 0 à 11)
mois=mois-2;
//Définition de l’objet date de renouvellement
dateRenouvellement=new Date(annee,mois,jour);
//Extraction et affichage de la date.
this.getField(“DateRenouvellement”).value=util.printd(“dd/mm/yyyy”,dateRenouvellement);
}Pour un calcul plus sophistiqué, j’ai déjà donné un exemple dans un autre POST.
Nota:il faut respecter le format de date jj/mm/aaaa[attachment deleted by admin]
alexParticipantLa maquette jointe montre comment résoudre ce problème.
Si on saisit un montant HT, le montant TTC est calculé, si on saisit un montant TTC le montant Ht est calculé.
La validation d’un des champs lance le programme ci-dessous, la variable TTC détectant au préalable la présence de la souris dans le champ “PrixTTC” (TTC=true) ou dans le champ “PrixHT” (TTC=false) :
function Calcul()
{
console.println(“Action utilisateur”);
if(this.event.target.name==”PrixHT”&TTC)
{
console.println(“Calcul du montant TTC”);
this.getField(“PrixTTC”).value=this.event.value*coefTVA;
}
if(this.event.target.name==”PrixTTC”&!TTC)
{
console.println(“Calcul du montant HT”);
this.getField(“PrixHT”).value=this.event.value/coefTVA;
}
}Le script d’ouverture de page fixe le paramètre de calcul de la TVA, initialise le formulaire, et autres détails sans importance.
console.clear();
coefTVA=1.196;
TTC=true;
this.resetForm();
this.getField(“LibellePrixTTC”).value=”Montant TTC”;
this.getField(“LibellePrixHT”).value=”Montant HT”;Lorsque la souris entre dans le champ “PrixHT”, TTC passe à true:
TTC=true;
console.println(“Preparation calcul TTC…”);
this.getField(“LibellePrixHT”).fillColor=color.white;
this.getField(“LibellePrixTTC”).fillColor=color.yellow;Lorsque la souris entre dans le champ “PrixTTC”, TTC passe à false:
TTC=false;
console.println(“Preparation calcul HT…”)
this.getField(“LibellePrixHT”).fillColor=color.yellow;
this.getField(“LibellePrixTTC”).fillColor=color.white;[attachment deleted by admin]
22 novembre 2011 à 11:24 en réponse à : Remplir un formulaire dans Adobe Reader sur tablette. – RÉPONDU #52212alexParticipantJe teste ça plus avant sur une application déjà bien rodée sur les autres plateformes (avec interactivité, videos,calques, formulaire, analyse de validité des saisies etc…) pour voir les corrections à apporter pour palier aux méthodes inopérantes et on en reparle.
22 novembre 2011 à 09:31 en réponse à : Remplir un formulaire dans Adobe Reader sur tablette. – RÉPONDU #52210alexParticipantCe “Reader” est décidément une bonne surprise et très au dessus d’ Adobe Reader:
1-Les champs de formulaire sont bien activés et saisissables. Leurs propriétés sont à peu près respectées.
2-Il interprète un certain nombre de méthodes JavaScript, en tout cas suffisamment pour envisager un travail sérieux.
3-Il ouvre les xfa et interprète une partie des méthodes JavaScript propres à LiveCycle Designer!
Il faut donc revoir en partie et tester les formulaires qui fonctionnent sur Adobe Reader Mac, Pc et Linux mais ce n’est pas insurmontable.
Bref, un filon à exploiter car, cerise sur le gâteau le submitForm() semble fonctionner (envoi de données vers un serveur)!
Je mange mon chapeau.22 novembre 2011 à 08:40 en réponse à : Remplir un formulaire dans Adobe Reader sur tablette. – RÉPONDU #52209alexParticipantUn complice américain veut me faire manger mon chapeau ! Il prétend qu’on peut saisir des données de formulaire avec PDF Expert pour iOS.
Je viens de dépenser 7.99 Euros pour me faire une idée. Evidemment, c’est l’aspect formulaire qui retiendra mon attention, suivi de près par l’interactivité (JS or not JS).
A suivre…
Pour les promesses, c’est là:
http://itunes.apple.com/app/pdf-expert-fill-forms-annotate/id393316844?mt=816 novembre 2011 à 12:04 en réponse à : Remplir un formulaire dans Adobe Reader sur tablette. – RÉPONDU #52207alexParticipantSur les palettes, inutile de chercher un lecteur PDF capable de prendre en charge les données de formulaire !
Par contre, on peut très bien saisir des données à partir d’une interface WEB écrite en HTML5+JavaScript ou bien en HTML5+pHp interfacé avec une base de données mySQL. Avec cette dernière méthode, toutes les tablettes sont immédiatement compatibles quelque soit le navigateur embarqué (le pHp s’exécute côté serveur) . On peut même générer des documents PDF à plat à partir des données mySQL.alexParticipantEtrange question… La réponse est peut-être juste ceci:
this.getField(“MonBeauChamp”).value=”Mon beau texte”;
ou bien cela pour inciter l’utilisateur à saisir un texte qui apparaîtra dans un champ texte:
reponseDefault=”Reponse proposee”;
this.getField(“MonBeauChamp”).value=app.response(“Objet de la Question”,”Titre de la question”,reponseDefault)16 novembre 2011 à 11:32 en réponse à : Fonctions Acrobat masquer temporairement un objet. – RÉPONDU #52243alexParticipantPour accéder aux propriétés des champs de formulaire il suffit d’afficher la liste de ces champs et de faire un clic droit (Ctrl Clic) sur le nom du champ dans la liste. L’avantage de cette manière de faire est de pouvoir aussi gérer l’ordre des tabulations, de visualiser les occurrences multiples d’un même champ dupliqué.
Sous Acrobat X PRO:
Outils>Formulaires>Modifier… la liste apparaît.
Sous Acrobat 9 PRO
Formulaires>Ajouter ou modifier des champs>Cliquer si nécessaire sur l’icône à gauche “Champs:manipuler les champs de formulaire”.alexParticipantAllez faire un tour par là:
http://tv.adobe.com/watch/adc-presents/input-for-mobile-devices-gesture-events/
Désolé c’est en anglais, très Evangelist Adobe, mais bon, c’est la tendance!alexParticipantOui, j’ai essayé d’ouvrir des formulaires .xfa sans succès. Dans le futur peut-être …
alexParticipant- Oui ça pourrait, car les dernières versions 9 et X d’Adobe Reader et d’Acrobat destinées à Mac et Pc privilégient ce format, mais ce n’est qu’une vague hypothèse.
Pour la publication sur iPad et Androïd, les produits qui ont le vent en poupe sont:- soit des produits qui partent de Indesign pour élaborer des formats d’eBook (Aquafadas, Adobe Digital Publishing Suite) que l’on consulte sur une application propriétaire (myKiosk pour Aquafadas, pour Adobe je ne sais pas si c’est sorti).
- soit des produits écrits en HTML5, que l’on consulte avec Safari sur iPad. Dans ce cas, on retrouve une vraie interactivité (on peut insérer du pHp et une connectivité à une base de données en SQL) tout en contrôlant presque bien la présentation grâce au HTML5, sans parler des vidéos. De plus on s’affranchit de l’App Store!
[/list]
Vous l’avez compris, j’ai un faible pour cette voie là. Elle est libre et le pHp est un vrai régal.
[/list][/list]alexParticipantLa version iPad et iPhone d’Adobe Reader est disponible.
Mais ne vous attendez pas à des miracles…
1-Pas d’objets de formulaire acroForm (boutons,champs de saisie,cases à cocher).
2-Pas de JavaScript évidemment.
3-Pas d’ouverture des xfa (formulaires élaborés sous LiveCycle Designer), un message indique que la version du Reader est inappropriée
4-Vidéos embarquées non fonctionnelles.Dur dur.
Ah si, les annotations de texte s’affichent! BofIntégrer du flash pour remédier à ces inconvénients ? A voir.
5 septembre 2011 à 14:32 en réponse à : Indexation des renvois de page dans document PDF. – RÉSOLU #51903alexParticipantPour contourner ce problème il faudrait calculer la longueur du rectangle en fonction du numéro de page, au lieu de faire confiance à la taille du WordQuad qui est manifestement erronée (un petit bug dans cette fonction lorsqu’on est en italique). On fera ça la prochaine fois …
alexParticipantVoilà. Attention, lors de la saisie de la date de naissance, il faut toujours respecter le format de 10 digits.
[attachment deleted by admin]
alexParticipantVariante: calcul sur validation du champ de saisie (suppression du bouton de calcul).
[attachment deleted by admin]
alexParticipantUn truc de ce genre…
Le script de calcul situé au niveau du document, est lançé par le bouton “Calcul”. Il est commenté.
En ouvrant la console, vous pouvez voir les calculs intermédiaires.
Voir au passage la manipulation de l’objet Date (valable aussi sur une page Web).
Attention, le champ “Texte2” n’a pas de format imposé.[attachment deleted by admin]
alexParticipantOn va ajouter une case à cocher invisible et la cocher par défaut tant que la saisie de la date de naissance ne sera pas valide. C’est une méthode assez classique pour initialiser les questionnaires d’évaluation. Je vous fais une maquette dès que possible (d’ici lundi).
26 août 2011 à 11:32 en réponse à : Indexation des renvois de page dans document PDF. – RÉSOLU #51899alexParticipantOui, enlever les commandes console.println(), ou les passer en commentaires.
Ajouter ceci au début:
d0=new Date();
debut=util.printd(“dd-mm HH:MM”,d0)
console.println(“Debut process:”+debut)
Ajouter ceci à la fin:
df=new Date();
fin=util.printd(“dd-mm HH:MM”,df)
console.println(“Fin process:”+fin)
delta=(df.valueOf()-d0.valueOf())/1000/60
console.println(“Duree process:”+delta+” minutes”)26 août 2011 à 08:03 en réponse à : Indexation des renvois de page dans document PDF. – RÉSOLU #51897alexParticipantJuste pour comprendre, ça peut attendre une ou deux semaines bien sûr.
26 août 2011 à 06:31 en réponse à : Indexation des renvois de page dans document PDF. – RÉSOLU #51894alexParticipantJe ne comprend pas, peux-tu donner l’ensemble du code ?
25 août 2011 à 10:08 en réponse à : Indexation des renvois de page dans document PDF. – RÉSOLU #51892alexParticipantLa somme est traitée comme une concaténation de caractères (“30″+”pp-1”) !
Essayez de forcer le calcul comme suit:
action=”this.pageNum=”+(Math.round(30)+pp-1);
Ou bien:
action=”this.pageNum=”+(1*30+pp-1);alexParticipantCi-joint la maquette sans console affichée et sans bouton de test.
Soutenons les sportifs![attachment deleted by admin]
alexParticipantSupprimer la ligne suivante en début de script:
console.show();25 août 2011 à 06:35 en réponse à : Indexation des renvois de page dans document PDF. – RÉSOLU #51889alexParticipantSi la page 1 est en 30ème position et si on ignore les 29 première pages du document, il faut doute faut-il écrire:
action=”this.pageNum=”+(30+pp-1);24 août 2011 à 17:48 en réponse à : Indexation des renvois de page dans document PDF. – RÉSOLU #51887alexParticipantTu me poses une colle, j’aime bien l’écrit et je ne suis pas très DVD ou Webminar, si je passe chez Eyrolles, je regarde ce qui est le mieux …
Autre source, excellente et pas seulement en Javascript (j’ai trouvé tout ce qu’il faut en AJAX, SQL, pHp et Flex):
http://javascript.developpez.com/cours/24 août 2011 à 15:02 en réponse à : Indexation des renvois de page dans document PDF. – RÉSOLU #51885alexParticipantIl suffit de partir de la page 31, ce qui donne:
for (var p = 30; p < this.numPages; p++)
Le JavaScript pour les nuls, ça existe:
http://www.amazon.fr/JavaScript-pour-nuls-Emily-VanderVeer/dp/2844277160
Mais il s’agit du JavaScript pour HTML, pas de celui qui gère les objets d’Acrobat, pourtant les bases sont là. Pour trouver votre bonheur faites un tour chez Eyrolles.alexParticipantVoici une maquette, merci de vérifier qu’elle fonctionne. Tout est dans le script Calcul() lançé par la validation de la date de naissance.
J’espère que les commentaires suffisent, il faudrait paramétrer un peu pour retrouver le fonctionnement d’année en année…[attachment deleted by admin]
23 août 2011 à 12:31 en réponse à : Comment activer "les droits étendus pour Reader" en mode batch ? – RÉPONDU #51952alexParticipantOn peut éviter la ruine par une petite ligne de JavaScript lançée au moment opportun sous Acrobat 9 ou X:
app.execMenuItem(“DIGSIG:UBDoc”);
Pour ma part, je vous conseille d’écrire des programmes .js au niveau d’Acrobat (répertoire JavaScript sur Mac ou Pc) pour manipuler vos documents plutôt que de recourir aux batchs, c’est un peu plus souple quand on maîtrise le sujet.21 août 2011 à 11:57 en réponse à : Indexation des renvois de page dans document PDF. – RÉSOLU #51881alexParticipantPour ne pas saturer la console, placer un console.clear() comme suit:
…
for (var p = 0; p < this.numPages; p++)
{
console.clear();
console.println(“Page “+(p+1));
var numWords = this.getPageNumWords(p);
…
Ainsi, la console sera effacée à chaque ouverture de page…On peut aussi supprimer toutes les impressions dans la console.En ce qui concerne le temps de calcul, c’est une autre affaire…Peut-être que la méthode que j’ai utilisé dans la mesure d’encrage pour définir le rectangle est meilleure mais ce n’est pas sûr.
20 août 2011 à 07:12 en réponse à : Indexation des renvois de page dans document PDF. – RÉSOLU #51879alexParticipantA tester quand même avec un document volumineux ! J’ai ajouté dans la recherche les mots “Page” et “page”:
if ( ckWord == “page”|ckWord == “Page”)
Bonne vacances !alexParticipantBonjour,
Pour ce problème ne vaut-il pas mieux calculer les âges des personnes à partir de la date de naissance saisie et de la date du jour ? A partir de là il ne sera pas difficile aux spécialistes du JavaScript en vacances de cocher la case ad’oc du bouton radio.
Pouvez-vous leur donner les plages d’age correspondant aux différentes catégories?
En attendant leur retour…15 août 2011 à 09:22 en réponse à : Indexation des renvois de page dans document PDF. – RÉSOLU #51876alexParticipantSi j’ai bien compris, voici qui devrait mieux se comporter…
Les erreurs sont signalées dans le script.console.clear();
console.println(“Processus de creation des liens…”);
for (var p = 0; p < this.numPages; p++)
{
console.println(“Page “+(p+1));
var numWords = this.getPageNumWords(p);
for (var i=0; i{
var ckWord = this.getPageNthWord(p, i, true);
console.println(i+”-Mot trouve : “+ckWord);
if ( ckWord == “page”|ckWord == “Page”)
{
//Analyse du mot suivant
MotSuivant=this.getPageNthWord(p,(i+1),true);
console.println(“Mot suivant trouve, lien a creer : “+MotSuivant);
//Premier caractère est-il un chiffre?
if(MotSuivant.charCodeAt(0)>=48&MotSuivant.charCodeAt(0)<=57)
{
// pp numéro de la page indexee
//erreur ici
var pp = MotSuivant;
//fin erreur
console.println(“Créer des liens, mot suivant trouve est un chiffre, lien a creer : “+pp);
var q = this.getPageNthWordQuads(p, i+1);
// convert quads in default user space to rotated
// user space used by Links.
m = (new Matrix2D).fromRotated(this,p);
mInv = m.invert()
r = mInv.transform(q)
r=r.toString()
r = r.split(“,”);
l = addLink(p, [r[4], r[5], r[2], r[3]]);
l.borderColor = color.red
l.borderWidth = 1;
//erreur ici
action=”this.pageNum=”+(pp-1);
l.setAction(action);
//fin erreur
}
}
}
}26 juillet 2011 à 17:36 en réponse à : Message d’erreur formulaire Acrobat LiveCycle Designer. – RÉPONDU #51846alexParticipantIl y a probablement une division par 0. Il suffit de saisir une autre valeur non nulle dans le champ idoine et d’enregistrer le formulaire.
Mon conseil: utiliser le JavaScript plutôt que FormCalc pour les calculs et surtout tester la validité des saisies.alexParticipantJe déconseille de remplacer les 0 par des blancs (comme proposé dans le topic 1329). Ces blancs poseront des problèmes de format à toute opération de calcul ultérieure. C’est le cas ici, on aura à faire une somme… Bonne soirée.
alexParticipantJe vous déconseille de remplacer la va valeur calculée 0.00 par un blanc. Ici je force la couleur du texte en noir pour les valeurs positives, en couleur de fond pour la valeur 0. Il faut finir le travail pour les autres champs.
Pour le champ texte “Texte23”:
Onglet Calcul > Script de calcul personnalisé:console.clear();
//Calculer la valeur à afficher
this.event.value=this.getField(“C1”).value*this.getField(“Texte22”).value;
//Mémoriser la couleur du fond
CouleurReference=this.getField(“Texte23”).fillColor;
if(this.event.value>0)
{
//Valeur non nulle> Passer le texte en noir.
this.getField(“Texte23”).textColor=color.black;
}
else
{
//Valeur nulle > Le texte aura la même couleur que le fond
this.getField(“Texte23”).textColor=CouleurReference;
}Exemple joint pour le premier champ calculé uniquement.
[attachment deleted by admin]
15 juin 2011 à 16:24 en réponse à : Rendre champ obligatoire que si une case est cochée. – RÉSOLU #51773alexParticipantDésolé, il y a une petite erreur, voici le script exact :
this.getField(“Saisie.3”).required=this.getField(“Case.3”).isBoxChecked(0);
console.println (this.getField(“Saisie.3”).required);Il manquait la parenthèse sur la propiété isBoxChecked
Oui, c’est le moment ou la souris est relachée15 juin 2011 à 16:14 en réponse à : Rendre champ obligatoire que si une case est cochée. – RÉSOLU #51771alexParticipantOui, action>Souris relachée
alexParticipantCi joint le formulaire corrigé avec le script qui doit être lancé par le champ “C1” (onglet Format>Catégorie de format personnalisé>Script de touches personnalisé) ://début du script
if(!event.willCommit)
{
//Valeurs par defaut
this.getField(“C2”).value =0
this.getField(“C3”).value =0;
//Valeurs conditionnelles
if(event.change==”U.G.C”)
{
this.getField(“C2”).value =4.5;
this.getField(“C3”).value =6.40;
}
if(event.change==”PATHE-GAUMONT”)
{
this.getField(“C2”).value =5.25;
this.getField(“C3”).value =7.40;
}
if(event.change==”UTOPIA”)
{
this.getField(“C2”).value .15;
this.getField(“C3”).value =4.50;
}
}[attachment deleted by admin]
15 juin 2011 à 15:27 en réponse à : Rendre champ obligatoire que si une case est cochée. – RÉSOLU #51768alexParticipantPlacer le script suivant dans la case à cocher :
this.getField(“NomDuChampDeSaisie”).required=this.getField(“CaseACocher”).isBoxChecked;27 mai 2011 à 19:29 en réponse à : Double fonction sur un bouton dans formulaire PDF – RÉPONDU #51737alexParticipantC’est possible. Je ne pourrai vous répondre que mercredi, je suis en vacance avec un iPad…. Donc sans acrobat . A bientôt.
27 mai 2011 à 14:36 en réponse à : Double fonction sur un bouton dans formulaire PDF – RÉPONDU #51735alexParticipantMa précédente maquette n’est pas au point.
Voilà qui sera mieux (voir pièce jointe).
Sur Acrobat 8 et 9:
Script de document:
Options avancées>Traitement du document>scripts JavaScript…
Script sur action:
Propriétés du champ texte>Onglet Action>Script de champ désactivé.
Ici les tests sont faits sur les longueurs des chaînes de saisie, par exemple pour un email il faudrait au moins 3 caractères (au lieu de 1 dans mon exemple) , on progresse mais on est loin d’une solution PRO![attachment deleted by admin]
27 mai 2011 à 13:38 en réponse à : Double fonction sur un bouton dans formulaire PDF – RÉPONDU #51734alexParticipantSur Acrobat 8 et 9:
Script de document:
Options avancées>Traitement du document>scripts JavaScript…
Script de format personnalisé:
Propriétés du champ texte>Onglet Format>Script de format personnalisé.27 mai 2011 à 10:09 en réponse à : Double fonction sur un bouton dans formulaire PDF – RÉPONDU #51731alexParticipantOn est bien d’accord, mais on peut capter par un script lançé lors de l’enregistrement du formulaire, l’origine de l’action (bouton “Enregistrer” ou tout autre mode d’enregistrement” par menu ou clavier) et éditer une alerte conseillant vivement l’usage de ce bouton plutôt que les commandes naturelles.
27 mai 2011 à 08:05 en réponse à : Double fonction sur un bouton dans formulaire PDF – RÉPONDU #51729alexParticipantCi-joint la maquette pour vous aider à aller plus loin.
Le script de document Analyse() se contente de vérifier qu’une saisie a bien été effectuée dans l’un des trois champs requis. Ce n’est pas suffisant pour un usage professionnel. Ce script est lançé en tant que script de format personnalisé.
Je ne pourrai pas suivre ce fil dans les jours qui viennent.
A bientôt.[attachment deleted by admin]
26 mai 2011 à 11:05 en réponse à : Double fonction sur un bouton dans formulaire PDF – RÉPONDU #51726alexParticipantQuelques remarques:
1-eformpdf_submitForm();
n’est pas une méthode, ce pourrait être une fonction si celle-ci était définie.
this.submitForm();
est bien une méthode mais elle est réservée à l’envoi de données de formulaire et il faut la paraméter correctement.
2-Si l’une des trois conditions logiques est satisfaite, le bouton “Enregistrer ” restera invisible, sinon, ce bouton apparaîtra. On ne voit nulle part de condition logique…
3-Pour être rigoureux, il faut être plus exigeant avec les saisies, le constat du champ non vide est insuffisant.
4-Pour qu’il soit possible d’enregistrer le formulaire avec ses données sous Adobe Reader, il faudra activer les “Reader Extension” avant d’enregistrer le formulaire sous Adobe Acrobat.
Je vais vous faire une petite maquette d’ici demain soir.alexParticipantC’est peut-être l’attente de nouveaux genres qui impose le choix du champ texte? Mais bon, on se tient au problème posé.
En ce qui concerne l’équation il y a une erreur de logique combinatoire si on admet que !== est remplacé par != .
Le <> (différend de ) est utilisé par exemple dans les expressions des formules sous tableurs Excel, pas en JavaScript.
Enfin, il est possible de positionner le focus sur le champ de saisie si la saisie est incorrecte par:
this.getField(“Sexe1”).setFocus();
Mais cette méthode ne peut être lancée depuis le script embarqué par le champ.
C’est tout pour aujourd’hui. Bonne soirée.alexParticipantPour respecter votre logique voici le script à embarquer dans le champ de saisie:
//Pour visualiser la console Ctrl-J ou Pomme-J sur Mac
//Reset console.
console.clear();
//Captage valeur saisie
ff=this.event.value;
//Affichage valeur console.
console.println(“Valeur lue:”+ff);
if ((ff == “H”) |(ff == “F”))
{
//Affichage information sur console.
console.println(“Saisie valide!”);
//Alerte facultative
app.alert({
cMsg: “Le format est bon!.”,
cTitle: “Confirmation”,
nIcon:3
});
}
else
{
//Affichage information sur console.
console.println(“Saisie invalide!”);
//Alerte de saisie incorrecte
app.alert({
cMsg: “Veuillez indiquer le bon format pour le sexe (H ou F).”,
cTitle: “Erreur”,
nIcon:1
});
}Ci-joint une maquette illustrant votre exemple.
Cela dit, pourquoi ne pas utiliser un simple bouton radio (trois occurences: Homme, Femme, Non coché, valeur par défaut Non coché) avec une analyse de validité à postériori?Petite remarque: avez-vous bien réfléchi à la validité de votre expression logique (f.value !== “H”) || (f.value !== “F”) Hum?
[attachment deleted by admin]
alexParticipantNon, ce n’est pas possible. Téléchargez une version TRIAL d’Acrobat PRO valide un mois.
alexParticipantCeci est assez instructif aussi quant à l’uasage de Scribus et l’usage de listes:
alexParticipantPour faire simple, voici l’exemple le plus utilisé par les membres de ce forum. Reste à corriger quelques unicodes, (Amérique s’écrit Amu00E9rique)..
[attachment deleted by admin]
5 mai 2011 à 15:40 en réponse à : Javascript pour PDF avec scribus : listes déroulantes. – RÉPONDU #51658alexParticipantVoici l’exemple type apparemment le plus utilisé par les habitués de ce forum si je me réfère au nombre de téléchargements (plus de 100), mais il faut Acrobat PRO pour le paramétrer (utiliser une version TRIAL valide 1 mois si nécessaire).
Le paramétrage sous Scribus sous Scribus doit être possible… A voir… Pour ma part, je ne l’ai utilisé qu’une fois et je ne sais pas comment on lance un script de touches personnalisé (listes mères).
Il y a aussi quelques fautes à corriger dans les unicodes (exemple Amérique s’écrit Amu00E9rique).
Est-ce suffisant?[attachment deleted by admin]
alexParticipantIl y a quelques petits bugs. En effet, la page MASTER devrait être la référence.
On corrigera ça dans une version plus aboutie dès que j’en aurai le loisir. -
AuteurRéponses