Toutes mes réponses sur les forums
-
AuteurRéponses
-
bebarthMaître des clés
Si j’ai compris, ça devrait donner quelque chose comme ça !!!
Bon weekend & @+
:bonjour:bebarthMaître des clésthis.resetForm();
c’est tout à fait ce que je voulais !
merci.
:bonjour:bebarthMaître des clésMerlin,
sais-tu remettre toutes les valeurs des champs à 0 au lieu de les faire une par une comme dans le bouton RESET !
ici ça va bien qu’il n’y en pas pas trop…
merci.
:bonjour:bebarthMaître des clésbonjour,
ci-joint le fichier avec les scripts qui correspondent à ceux du fichier original.
en espérant que ça te convienne !
@+
:bonjour:bebarthMaître des clésbonjour,
je pense qu’il faudrait écrire quelque chose comme ça :
if (this.getField(“NOM DU CHAMP”).value ==””) {…script à exécuter…};
@+
:bonjour:bebarthMaître des clés…petite erreur, il fallait écrire
if (ckWord.charCodeAt(0)>=65 & ckWord.charCodeAt(0)<=90)
et non …ckWord.charCodeAt(0)<=68). je ne sais pas d'où j'ai sorti le 68 !!!
j’ai corrigé la ligne dans le script entier.
@+
:bonjour:bebarthMaître des clés:extra:
j’avais pas du tout compris ça ! je pensais que Nawel.CPA voulait construire un menu déroulant à partir d’autres champs (X, A, B…)
+@
:bonjour:bebarthMaître des clésbonjour,
désolé mais ce n’est pas très clair !!! il faudrait un peu plus d’explications…
@+
:bonjour:bebarthMaître des clés:bravo:
si tu veux connaitre le temps exact d’exécution du script, tu places avant ton scipt :console.show();
console.clear();
//debut duree
d0=new Date();
debut=util.printd(“dd-mm HH:MM”,d0)
console.println(“Début du process:”+debut)et après ton script :
//fin duree
df=new Date();
fin=util.printd(“dd-mm HH:MM”,df)
console.println(“Fin du process:”+fin)
delta=(df.valueOf()-d0.valueOf())/1000/60
console.println(“Durée du process:”+delta+” minutes”)@+
:bonjour:bebarthMaître des clésbonjour,
Il faudrait donner un peut plus d’information sur le logiciel utilisé et sous quel OS.
dans un premier temps, voici l’adaptation d’un script que j’avais écris et qui listera dans la console tous les mots commençant par une capitale.
l’indication de la durée du process peut être interressant pour des documents volumineux.var nbmots = 0;
console.show();
console.clear();
//debut duree
d0=new Date();
debut=util.printd(“dd-mm HH:MM”,d0);
console.println(“Début du process:”+debut);
//Changement de page
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);
//Recherche première lettre en majuscule
if (ckWord.charCodeAt(0)>=65 & ckWord.charCodeAt(0)<=90)
{
console.println(ckWord);
nbmots = nbmots+1;
}
}
}
console.println(“*** “+nbmots+” mots trouvés commençant par une majuscule”)
//fin duree
df=new Date();
fin=util.printd(“dd-mm HH:MM”,df);
console.println(“Fin du process:”+fin);
delta=(df.valueOf()-d0.valueOf())/1000/60;
console.println(“Durée du process:”+delta+” minutes”);@+
:bonjour:bebarthMaître des clésessaye de rajouter :
this.closeDoc(true);
@+
:bonjour:bebarthMaître des clés:Euuuh:
…pour moi, il n’y a pas de boîte de dialogue, et même, si le fichier .fdf existe déjà, il est remplacé sans avertissement !!!http://help.adobe.com/en_US/acrobat/acrobat_dc_sdk/2015/HTMLHelp/index.html#rhhlterm=this.exportAsFDF&rhsyns=&t=Acro12_MasterBook%2FJS_API_AcroJS%2FDoc_methods.htm%23XREF_71999_exportAsFDFStr
ici, il est indiqué pour cPath : “If the parameter is omitted, a dialog box is shown to let the user select the file.”
peut-être encore une histoire de privilèges Windows ???
:doute:bebarthMaître des clésEdit2 : A chaque export de FDF, adobe me demande si je veux enregistrer le PDF à exporter, comment éviter l’apparition de ce message et ainsi enchaîner les actions ?
il faut décocher “Demander à l’utilisateur”.
@+
:bonjour:bebarthMaître des clés:extra:
lorsque tu lances l’action, tu cliques sur la petite flèche à côté de Ajouter des fichiers…
soit tu ajoutes des fichiers, soit un dossier.
@+
:bonjour:bebarthMaître des clésbebarthMaître des clésBonjour,
effectivement, dans la définition du Safe path il est indiqué “A path cannot point to a system critical folder, for example a root, windows or system directory. A path is
also subject to other unspecified tests.”
peux-tu essayer à partir d’un répertoire sur ton bureau par exemple !
@+
:bonjour:bebarthMaître des clésBonjour,
Alors là… personnellement je ne pense pas que cela soit possible, mais à mon avis, mieux vaut attendre la réponse de Merlin !
De quel logiciel disposez-vous : Adobe Reader ou Acrobat ? …et en plus j’imagine que vous ne voulez pas ouvrir chaque fichier !!!
@+
:doute:bebarthMaître des clésbonsoir,
Es-tu certain que rien ne se passe ??? la première fois que j’ai lancé le script j’ai également eu l’impression que rien ne se passait mais le fichier fdf avait bien été créé.
N’étant pas un spécialiste Windows, je ne sais pas très bien la syntaxe pour le chemin d’un fichier. Ce que je te propose, c’est de la vérifier. Tu ouvres un fichier pdf que tu auras placé dans ton répertoire, puis tu lance ce script (depuis une action) :console.show();
console.clear();
console.println(“Le chemin est : “+ this.path)La console va te donner le chemin exact de ce fichier… et tu pourras vérifier si la syntaxe C/temp/… est correcte.
@+
:bonjour:bebarthMaître des clésbonjour,
je prends la discussion en cours et comme je n’ai pas tout suivi j’espère que les scripts ci-dessous conviendront… ici je suppose que le fichier fdf est enregistré dans le même répertoire que le fichier pdf d’origine.
je ne suis pas spécialiste en import/export :Smiley03: mais Merlin, je ne comprends pas pourquoi tu mets le nom du fichier en “array” ??? peut-être y a-t-il une explication ???Attention : les scripts assument qu’il n’y a qu’un seul point dans les noms de fichiers (devant le suffixe, comme il se doit).
…pour ma part, je modifie uniquement l’extension…
Pour l’exportation (testé sur mon mac et ça marche) :
// Récupération du chemin
var Chemin = this.path;
// modification de l’extension
var Pathfdf = Chemin.substring(0,Chemin.length-3) + “fdf”;
// exporte les données avec le même nom mais avec le suffixe FDF
this.exportAsFDF({cPath: Pathfdf});Pour l’importation (testé sur mon mac et ça marche) :
// Récupération du chemin
var Chemin = this.path;
// modification de l’extension
var Pathfdf = Chemin.substring(0,Chemin.length-3) + “fdf”;
// importe les données à partir du chemin d’accès complet
this.importAnFDF({cPath: Pathfdf});@+
:bonjour:bebarthMaître des clésbonsoir,
voici un nouveau fichier. j’espère avoir placé les nouvelles cases au bon endroit…
@+
:bonjour:bebarthMaître des clésbonsoir,
voici un nouveau fichier avec une quantité mini limitée à 0 et un champ qui calcule (QTE3 – QTE2)*QTE1 pour exemple.
la valeur d’un champ est this.getField(“NOM DU CHAMP”).value, ensuite on peut effectuer toutes les opérations et opérateurs javascript (par exemple : https://developer.mozilla.org/fr/docs/Web/JavaScript/Guide/Expressions_et_Op%C3%A9rateurs
@+
:bonjour:bebarthMaître des clésbonjour,
ci-joint un fichier avec les scripts sur les flèches. n’y a-t-il pas de quantité mini et maxi ???
@+
:bonjour:bebarthMaître des clésbonjour,
si j’ai bien compris, c’est le grisé de la cellule en bas à droite !!! ce sera effectivement du bidouillage…
sur Acrobat 9, il faut aller dans le menu Outils/Modifications avancées/Retouche d’objet, puis sélectionner les différente parties grisées et les supprimer.
ci-joint sont des copies d’écran sur ios mac, mais je suppose que ce sont les mêmes menus sous windows.
@+
:bonjour:bebarthMaître des clésbonjour,
comme on dit, j’arrive un peu après la bataille… mais voici ce que je propose : inverser les pages 2 et 3, imprimer les pages 1 à 2 puis remettre les pages 2 et 3 dans le bon ordre.
je ne sais pas si les pages sont réellement inversées ou si c’est juste une indexation des pages (Merlin ???) mais l’action s’exécute très rapidement même sur un document avec beaucoup de pages !
…plus l’alerte d’impression pour n’imprimer qu’une fois.
@+
:bonjour:if (impression == “”)
{
this.movePage(2,0);
this.print(false,0,1);
this.movePage(2,0);
var impression = 1;
}
else app.alert(“Les pages 1 et 3 ont déjà été imprimées.”,3);26 avril 2016 à 12:47 en réponse à : Afficher/masquer plusieurs champs texte selon choix ds menu déroulant #60571bebarthMaître des clés…j’avais pas vu qu’avec le document original il y avait déjà l’erreur… je pensais que c’était uniquement dans celui que j’ai modifié vu que j’ai une variable “f” !!!
les champs res1 et res2 effectuent un calcul avec d’autres champs qui n’existent pas…
:Euuuh:26 avril 2016 à 12:42 en réponse à : Afficher/masquer plusieurs champs texte selon choix ds menu déroulant #60570bebarthMaître des clésMerlin,
moi j’ai juste “TypeError: f is null” qui s’affiche 2 fois de suite, mais je ne comprend pas non plus pourquoi vu que f n’est ni vide ni nul…
si Alex passe par là, il pourra peut-être expliquer !
:bonjour:26 avril 2016 à 06:27 en réponse à : Afficher/masquer plusieurs champs texte selon choix ds menu déroulant #60568bebarthMaître des clésbonjour,
je ne suis pas certain d’avoir complètement compris ce que vous désirez au final, mais vous trouverez dans le fichier joint ce que je vous propose en script de calcul.
@+
:bonjour:bebarthMaître des clésbonjour,
…je ne pense pas (Merlin confirmera on infirmera) ! on peut changer la couleur générale de la surbrillance avec app.runtimeHighlightColor = color.red par exemple, sinon il faut désactiver la surbrillance et mettre une légère couleur de fond au champ comme indiqué ci-dessous, par exemple :
event.target.fillColor = event.value > 5 ? [“RGB”,255/255,195/255,0] : [“CMYK”,0.15,0,0,0]; pour un fond à 15% de cyan
@+
:bonjour:bebarthMaître des clésbonjour,
…je ne pense pas (Merlin confirmera on infirmera) ! on peut changer la couleur générale de la surbrillance avec app.runtimeHighlightColor = color.red
sinon il faut désactiver la surbrillance et mettre une légère couleur de fond au champ comme indiqué ci-dessous, par exemple :
event.target.fillColor = event.value > 5 ? [“RGB”,255/255,195/255,0] : [“CMYK”,0.15,0,0,0]; pour un fond à 15% de cyan
@+
:bonjour:bebarthMaître des clésmerci Alex pour ces précisions ! :bravo:
j’avais précisé “…à suite de votre script, mais il peut être placé autre part…” car j’avais bien compris qu’il fallait cliquer sur la case pour que le script s’effectue.
:bonjour:bebarthMaître des clés…voici ce que j’ai fait à la suite de votre script, mais il peut être placé autre part…
merci à Alex pour son script dont je me suis grandement inspiré !
:bonjour:bebarthMaître des cléssi vous désactivez la surbrillance (avec le bouton “Sélect. les champs existants” il faudrait mettre un léger fond bleu… au lieu de color.transparent mettre [“CMYK”,0.15,0,0,0] pour un fond à 15% de cyan.
:bonjour:bebarthMaître des clésPour commencer, je renommerais tes champs avec des noms plus simples comme “TEMPO” et “Cliquez” (par exemple).
Dans le script du bouton “TEMPO”, tu supprimes la ligne event.target.hidden=true et tu place this.getField(“Cliquez”).display=display.hidden; au début du script si tu veux enregistrer ton fichier avec l’autre bouton non visible !!!
Pour le bouton “Cliquez” il faut faire la même chose en changeant juste le nom du champ this.getField(“TEMPO”).display=display.hidden;
je n’ai pas regarder le reste des scripts !
@+
:bonjour:bebarthMaître des clésbonjour,
…”supprimer”, le bouton et il n’existe plus !!! Mais il y a plusieurs états pour “masquer” un bouton :
Field is visible on screen and in print display.visible
Field is hidden on screen and in print display.hidden
Field is visible on screen but does not print display.noPrint
Field is hidden on screen but prints display.noViewensuite il y a plusieurs raisonnement pour votre problème. soit vous en avec juste quelques un et vous pouvez les cibler, soit faire une recherche par types de boutons… etc.
si vous n’y arrivez pas, vous pouvez poster un fichier exemple.
@+
:bonjour:bebarthMaître des clésbonjour,
voici ce que je proposerais en script de validation :
pour le champ Valeur1
event.value > 5 ? this.getField(“FdOR”).fillColor=[“RGB”,255/255,195/255,0] : this.getField(“FdOR”).fillColor=color.transparent;
pour le champ Valeur2
event.target.fillColor = event.value > 5 ? [“RGB”,255/255,195/255,0] : color.transparent;
j’espère que vous comprenez un peu le raisonnement… je joint votre fichier avec les scripts.
@+
:bonjour:bebarthMaître des clésbonjour,
je vous conseille d’aller voir cette article :
http://abracadabrapdf.net/forum/index.php/topic,2868.msg16200.html#msg16200
où alex donne une solution qui répondra certainement à votre attente.
@+
:bonjour:bebarthMaître des clés…comme hydro parlait de “event.target.hidden=true” j’ai supposé qu’il voulait masquer les boutons, mais ce n’est qu’une supposition…
:doute:bebarthMaître des clésbonjour,
quel(s) genre(s) de bouton(s) à effacer ???
pour les “”checkbox”, essayez ce script :var count = 0;
for ( var i=0; ivar fname = this.getNthFieldName(i);
if (this.getField(fname).type == “checkbox” ) count++; }
this.getField(fname).display = display.hidden);@+
:bonjour:bebarthMaître des clésbonjour Merlin,
j’ai utilisé la partie de ton script pour créer un nouveau document et dupliquer les pages, que j’ai intégré au script que j’avais écris.
ton script coupe les planches en 2 alors que alors que mon problème était de rogner au niveau des hirondelles.
je joins un fichier action avec le script final si cela intéresse quelqu’un.
encore merci & @+.
:geek:bebarthMaître des clésplacé en action, ton script fonctionne très bien.
il faut supprimer les lignes “app.beginPriv();” et “app.endPriv();”
je pense que si l’on modifie le script de document, ça doit fonctionner également…
@+
:extra:bebarthMaître des clésj’ai testé le début du script avec une action et ça fonctionne très bien de créer un nouveau fichier et dupliquer chaque page.
je pense qu’en combinant les 2 scripts je devrais m’en sortir.
je te tiens au courant.
merci
:extra:bebarthMaître des clésBonjour Merlin et merci pour ta réponse.
j’ai placé le fichier dans le dossier javascript, mais cela ne fonctionne pas. j’ai une erreur interne lorsque je lance le script.
j’ai regardé vite fait mais pour l’instant je n’ai pas vu d’où ça peut venir… par contre, le script ressemble à ce que j’ai écris. je regarderai ça plus précisément demain…
j’ai par contre une question que je me pose ! dans mons script je redéfini la taille de la Media Box avec :
this.setPageBoxes({
cBox: “Media”,
rBox: [0, height, largeur, 0],
});
je pensais que toutes les données en dehors de cette zone serait perdues afin de diminuer la taille du fichier final, mais ça n’a pas l’air d’être le cas. la taille du fichier ne diminue pas.
sais-tu quelque chose à ce sujet ?
merci.
:bonjour:bebarthMaître des clés:bravo: :bravo: , pareil…
20 novembre 2015 à 18:16 en réponse à : Importer & redimensionner automatiquement une image dans un champs de formulaire #59999bebarthMaître des clésbonjour,
il faut régler la mise à l’échelle sur “Toujours” après avoir appuyer sur le bouton “Avancées…”.
@+
:bonjour:bebarthMaître des clésMerci Alex, je vais étudier ça !
@+
:priere:bebarthMaître des clésBonjour,
pour quel OS et quelle version de Word ?
si vous êtes sous Windows (ce que j’ai l’impression…), avez-vous réglé le format de page pdf dans les options d’impression de l’imprimante pdf ???
votre format 22 x 28 c’est le format US letter (8.5 x 11 pouces -> 215,9 x 279,4) ???
@+
:bonjour:bebarthMaître des clés…et donc if(!event.willCommit) signifie : si l’événement n’est pas une frappe (clavier)…
correct ?
:Euuuh:bebarthMaître des clésMerci Merlin !
je savais pour les opérateurs de comparaison mais ne comprenais pas avec “event”.
@+
:geek:bebarthMaître des clésre-bonjour,
j’ai un peu regardé les exemples dans le js_api_reference, mais ne comprends pas la différence entre
if(!event.willCommit)
et
if(event.willCommit)-> le point d’exclamation.
:Euuuh:
bebarthMaître des clésbonjour,
je voudrais juste signaler à Alex que dans son fichier exemple, la console n’indique pas le choix sélectionné, mais le précédent…
je suis bien évidemment incapable comme ça de modifier le script !
@+
:bonjour:bebarthMaître des clés:extra:
je vais essayer de comprendre l’événement…
:priere:bebarthMaître des clésMerci pour l’info !
:bonjour:bebarthMaître des clés:bravo:
vous êtes trop rapides tous les deux !!!
je joints quand même ce que j’ai fait, pour commentaires éventuels… (je sais que j’ai du mal avec les “event”).
merci.
:bonjour:9 novembre 2015 à 14:18 en réponse à : Remplissage champ par autre champ lors de l’appui sur bouton #59956bebarthMaître des clésbonjour,
il suffit d’écrire :
this.getField(“Champ2”).value = this.getField(“Champ1”).value
c’est tout !!!
…et si vous affichez la console, vous verrez que “this.getfield” n’est pas une fonction contrairement à “this.getField”…
@+
:doute:bebarthMaître des clésBonjour,
… C’est automatique lorsque l’on créée une table des matières dans Word et qu’on convertit en PDF avec Word.
Générer les signets est automatique si on le demande dans les préférence et uniquement sur PC, par contre on ne règle pas l’ouverture du document en mode signets sous Word.
@+
:bonjour:6 novembre 2015 à 07:38 en réponse à : Verrouillage de plusieurs champs sauf certains suite à action sur bouton #59902bebarthMaître des clésBonjour,
si l’on doit garder le nom des champs pour l’extraction des données, je présume qu’on peut modifier le nom des boutons validation/dévalidation ! on a plus qu’à s’occuper des champs dont le nom commence par “Appréciation” (pourquoi s’occuper des autre champs ???).
2 solutions : si l’on a peu de champs on peut les traiter un par un (ici 4 champs), sinon on fait une recherche uniquement sur les champs dont le nom commence par “Appréciation”.
for (var i = 0; i < this.numFields; i++) {
var f = this.getNthFieldName(i);
if (f.substring(0,12) == “Appréciation”)
{this.getField(f).readonly = true;}
}
Pour la dévalidation, on peut traiter tous les champs.
for (var i = 0; i < this.numFields; i++) {
var f = this.getNthFieldName(i);
this.getField(f).readonly = false;}Correct ???
@+
:bonjour:5 novembre 2015 à 15:40 en réponse à : Verrouillage de plusieurs champs sauf certains suite à action sur bouton #59900bebarthMaître des clésje regarde !
…et sinon, le fichier joint correspondait-il ?
@+
:bonjour:5 novembre 2015 à 15:15 en réponse à : Verrouillage de plusieurs champs sauf certains suite à action sur bouton #59898bebarthMaître des clés…si j’ai bien compris, il faut que le bouton verrouille uniquement les champs “Appréciation” (en amont) et pas les autres (en aval).
si c’est le cas, une seule ligne suffit en utilisant la Convention de dénomination des champs de formulaire :
this.getField(“Appréciation”).readonly = true;ai-je bien compris ?
@+
:bonjour:5 novembre 2015 à 13:43 en réponse à : Verrouillage de plusieurs champs sauf certains suite à action sur bouton #59889bebarthMaître des clésbonjour,
avez-vous essayé avec :
…
if ((f.name != “Notification”) || (f.name != “Visa”))
…
sinon, est-il possible d’avoir un fichier d’essai pour voir à quoi cela ressemble ?
@+
:bonjour:bebarthMaître des clésMerlin,
ton fichier n’est plus disponible, peux-tu le re-placer, il m’intéresse !!!
merci
:bonjour:bebarthMaître des clésMerci teacher,
…en fait, je m’étais trompé je voulais écrire 53ème !!! :geek: mai j’aurais quand même fait une faute…
…et si c’est pas en exposant, c’est une faute aussi ?
Depuis des années j’utilise ProLexis comme correcteur d’orthographe et de typographie et il ne m’a jamais signalé cette erreur !!!Impossible de télécharger le fichier l’Alex… il a été retiré ???
@+
:bonjour:bebarthMaître des clésIl y a une 53eme semaine dans une année si elle comporte au moins 4 jours : lundi -> jeudi.
😉bebarthMaître des clés👌
…Il calcule de 1 à 53 ou de 1 à 52 si on active la ligne:
//if(weeksNum>52){weeksNum=1;}
…est-ce que cela signifie qu’il faut modifier manuellement selon l’année ???
@+
:Euuuh:bebarthMaître des clésoui, et on peut ouvrir la fenêtre “rechercher” en javascript, mais est-ce que “par hasard” on pourrait lancer rechercher/remplacer ????
:doute:bebarthMaître des clésbonjour,
je me permets de remonter ce post, car je suis toujours en recherche pour rechercher/remplacer du texte en javacript.
le rechercher ne me pose pas de problème, mais c’est le remplacer que je ne trouve pas aussi, si quelqu’un à une réponse à me donner je suis preneur (même si la réponse est : c’est impossible…).
merci.
:doute:bebarthMaître des clésBonjour,
Personnellement je ne sais pas faire, et j’ai un doute que cela puisse se faire directement avec Acrobat.
J’espère que quelqu’un de plus averti que moi pourra répondre car ça m’intéresse de savoir !
Désolé, je passe mon tour…
:doute:16 octobre 2015 à 16:21 en réponse à : Afficher un bouton en fonction des choix du menu déroulant #59804bebarthMaître des clésvoici les différentes valeurs pour la propriété “display”.
Field is visible on screen and in print display.visible
Field is hidden on screen and in print display.hidden
Field is visible on screen but does not print display.noPrint
Field is hidden on screen but prints display.noView
@+
:bonjour:16 octobre 2015 à 13:06 en réponse à : Afficher un bouton en fonction des choix du menu déroulant #59800bebarthMaître des clésBonjour,
il y a plusieurs solutions pour traiter le problème. Ici on regarde la position du menu déroulant, mais pourquoi un menu déroulant juste pour 2 réponses possibles ? Des cases à cochées ne seraient-elles pas plus judicieuses ??? De même pourquoi un champ validation ? les champs “Conforme” ou “Non-conforme” peuvent apparaître/disparaitre selon si tous les autres champs sont conformes ou non ! mais peut-être y a-t-il une raison !!!!
@+
:geek:bebarthMaître des clésBonjour,
je ne connais personnellement pas Adobe LiveCycle designer 8, mais s’il s’agit de donner des valeurs par défaut à des champs (texte, menu déroulant…), c’est possible avec Acrobat Pro.
Après, il faut voir ce que vous voulez exactement !
@+
:bonjour:bebarthMaître des clés…ne faire apparaitre le champ texte qui si la case est cochée…
c’est effectivement la meilleure solution à mon avis !
:geek:bebarthMaître des clésbonjour Merlin,
il est vrai qu’avec ton script, la case est cochée directement lorsque le champ est activé. Par contre elle reste cochée même si tu ne rentre pas de texte !
@+
:bonjour:bebarthMaître des clésbonjour,
var txt=this.getField(“Texte”).value;
if (txt !=””) {this.getField(“case”).checkThisBox(0,true);}
else {this.getField(“case”).checkThisBox(0,false);}
@+
:geek:bebarthMaître des clésthis.getField(“cc1”).checkThisBox(0,true);
this.getField(“cc2”).checkThisBox(0,true);essaye mieux comme ça, ça marche ! la syntaxe n’est pas la même que IsBoxChecked…
@+
:geek:bebarthMaître des clésvoilà qui t’expliquera mieux que je ne pourrais le faire !
https://developer.mozilla.org/fr/docs/Web/JavaScript/Guide/Expressions_et_Op%C3%A9rateurs
@+
:geek:12 octobre 2015 à 17:42 en réponse à : Récupérer 2 informations d’un champ de formulaire pour l’export #59717bebarthMaître des clés…
var f = this.getField(“nbr”); //liste déroulante
var pos = f.currentValueIndices; //position sélectionnée
var ex = f.getItemAt(pos,false); //texte de la liste à la position (pos)
event.value=parseFloat(ex); //retourne la valeur de la chaine (ex)
@+
:geek:bebarthMaître des clésbonjour,
voici comment ça devrait se présenter :
if (this.getField(“cc1”).isBoxChecked(0) & this.getField(“cc2”).isBoxChecked(0))
{…script les 2 cases cochées…”}
else
{
if (this.getField(“caseacocher1”).isBoxChecked(0))
{…script case 1 cochée…}
else
{
if (this.getField(“caseacocher2”).isBoxChecked(0))
{…script case 2 cochée…}
else
{} // rien -> aucune case cochée
}
}il n’y a pas de contraire à .isBoxChecked(0), soit = true si la case est cochée sinon = false.
@+
:bonjour:12 octobre 2015 à 12:12 en réponse à : Récupérer 2 informations d’un champ de formulaire pour l’export #59715bebarthMaître des clésbonjour,
c’est presque pareil… on peut récupérer soit tout le texte de la liste, soit le nombre…
j’ai compris, cette fois-ci ?
:geek:bebarthMaître des clésc’est l’exemple dont je me suis inspiré, mais il faut mettre quoi pour [/font]if ( nButton == 2 ) ??? sachant que je ne veux pas fermer mon document :geek: mais stopper le script ?
pour l’instant il continue jusqu’à rencontrer une erreur…
:Euuuh:bebarthMaître des clés…en attendant, j’ai mis la fenêtre “Response” dans une boucle :
while (valeur<0 | valeur>valeurmaxi | isNaN(valeur))
…valeur est parseFloat() de la réponse, évidemment (!!!)
et ça fonctionne…
s’il y a une réponse sur la limitation des touches pour ces fenêtres, je suis quand même preneur…
@+
:bonjour:bebarthMaître des clés…non, moi ce que je veux dire c’est d’interrompre le script lorsqu’on appuie sur le bouton “Annuler” de la fenêtre “Response” !
@+
:Ooops:bebarthMaître des clésmerci Merlin,
j’avais également regardé dans la doc sans rien trouvé, mais je me disais que peut-être y a-t-il d’autres docs pour des personnes plus averties…
il faut donc tourner la questions pour avoir une réponse OUI par défaut !juste pour info, la coordonnée 0,0 d’une page se trouve bien en bas à gauche ?
@+
:bonjour:bebarthMaître des clésBonjour,
Effectivement, du moment que ça résout le problème !Pour le coup c’est pareil, une case-à-cocher ou un bouton-radio n’a de valeur (valeur d’exportation) que s’il est coché, sinon il est “Off”.
…mais pour moi ce n’est quand même pas tout à fait la même chose : une case à cocher peut ou ne pas être obligatoire, sans être ou en étant cochée. Dans ce problème soumis, on n’utilise apparemment pas la valeur d’exportation, on vérifie juste si la case en cochée, je me trompe ??? D’ailleurs, je ne comprend pas très bien la propriété “Obligatoire” pour une case à cocher sans valeur d’exportation : soit elle est cochée, soit elle ne l’est pas !
@+:doute:
bebarthMaître des clés…n’y a-t-il pas confusion entre propriété “obligatoire” qui nécessite une valeur pour le champ et “case obligatoirement cochée” ???
:doute:
bebarthMaître des clésvoici 2 scripts, tels que j’ai compris les problèmes…
@+
:bonjour:bebarthMaître des clésc’est pas tout à fait le même problème…
:bonjour:6 octobre 2015 à 13:39 en réponse à : Récupérer 2 informations d’un champ de formulaire pour l’export #59713bebarthMaître des clésdans le script joint, le champ total est le produit de la valeur “Elément” par la valeur d’exportation.
par contre, dans cette exemple, “Elément” est un nombre et pas du texte.
@+
:bonjour:6 octobre 2015 à 11:54 en réponse à : Récupérer 2 informations d’un champ de formulaire pour l’export #59711bebarthMaître des clésbonjour,
personnellement je ne comprend pas très bien !
que choisit l’utilisateur ?? un nombre d’exemplaires dans un menu déroulant, avec un seul prix unitaire ?
@+
:bonjour:bebarthMaître des clésBonjour,
voici un script pour attribuer la priorité obligatoire aux 4 cases suivantes, lorsque la première est cochée.
@+
:bonjour:bebarthMaître des clés1 – d’après mes première recherches, je crains un peu pour le 1er type…
2 – je pense pouvoir me débrouiller pour le 2ème type…
3 – pour le 3ème type, il me faudra rencontrer des petits hommes verts…
@+
:doute:bebarthMaître des clés…et si je ne peu imposer l’installation d’Adobe Reader, je ne peu imposer non plus l’installation d’un plugin.
donc utilisation très limitée avec un navigateur, correct ?
@+
:bonjour:bebarthMaître des clés…moi je parle du 1 !
@+
:bonjour:bebarthMaître des clésbonjour,
sachant que :…ouvrir des PDF dans un navigateur web est toujours une mauvaise idée parce-que c’est source d’ennuis, d’erreurs et de limitations.
peut-on connaître ces limitations ???
j’essaye d’ouvrir un fichier pdf dans un navigateur à partir d’un autre pdf déjà ouvert dans ce navigateur et cela ne fonctionne apparemment pas !
y a-t-il possibilité ? …sachant qu’il m’est impossible d’imposer l’obligation d’installer Adobe Reader !!!
merci
:geek:bebarthMaître des clést’as raison, c’est le roi Merlin !
et nous on bricole à côté…
:geek:bebarthMaître des cléstrop fort Merlin !
tu demandes ça, et il te donne ça++… et à 1h du mat !!!
:bravo:bebarthMaître des clés…j’ai oublié de signaler que j’ai passé le bonton B en “case à cocher”.
de plus, j’ai copié/collé, mais
var bb = this.getField(“CheckboxA”).value;
une seule fois au début suffit…
@+
:bonjour:bebarthMaître des clésbonjour,
voici un script pour répondre à votre demande :
var bb = this.getField(“CheckboxA”).value;
if (bb == 1 & this.getField(“BoutonB”).isBoxChecked(0))
{this.getField(“PTAchMES 2”).value = this.getField(“ChampA”).value}
else
{
var bb = this.getField(“CheckboxA”).value;
if (bb == 2 & this.getField(“BoutonB”).isBoxChecked(0))
{this.getField(“PTAchMES 2”).value = this.getField(“ChampB”).value}
else
{
var bb = this.getField(“CheckboxA”).value;
if (bb == 3 & this.getField(“BoutonB”).isBoxChecked(0))
{this.getField(“PTAchMES 2”).value = this.getField(“ChampC”).value}
else
{
this.getField(“PTAchMES 2”).value = 0
}}}
@+
:bonjour:bebarthMaître des clésCette solution fonctionne à merveille…
??? la, c’est moi qui suis perdu !!!
:Euuuh:bebarthMaître des clésbonjour,
…et merci à Alex pour sa contribution. Il est (à mon avis) LA référence javascript sur le forum !
Le calcul du total est effectivement regroupé en une seule formule sur le champ TOTAL, mais je pense qu’elle ne correspond pas pour résoudre le problème donné.
Dans l’exemple joint, le calcul de l’arrondi avec “Math.round” donne 2.1 pour une valeur initiale de 2.0976 alors que selon le problème on devrait avoir 2.09 !!
j’avais moi-même essayé avec “Math.floor” sans m’en sortir et sans comprendre… c’est pourquoi j’avais opté pour “parseInt” après avoir multiplié la valeur par 100. mais je ne comprend pas d’où viens l’erreur !!!!
si tu a une idée pour ce problème….
merci.
:bonjour:bebarthMaître des clésbonjour,
Je crois que je vais vous décevoir… votre exemple correspond à peu près au dernier script que j’ai donné hier, c’est à dire que vous ne vous préoccupez plus d’arrondir la valeur du premier champ. Vous supposez (certainement à juste titre) que si cette valeur est entrée manuellement elle n’a que 2 décimales. Essayez exactement votre méthode avec ce premier champ et vous verrez… toujours la même chose avec 9,12 -> 9,11
this.getField(“MontantTTC”).value = this.getField(“RGT1”).value+(parseInt(this.getField(“RET1”).value*100)+parseInt(this.getField(“RETC1”).value*100))/100;… Donc il faut le multiplier par 100, en faire un nombre entier, puis le diviser par 100…
c’est ce qui est fait dans le script, sauf que dans votre exemple vous divisez chaque nombre par 100 alors que moi je divise le total.
j’ai essayez comme il es conseillé d’indiquer la base “parseInt(string,10)” mais pas d’amélioration. j’ai même essayez d’autre méthodes, toujours avec le même résultat !!!
:mur: y a quelque chose que je ne comprend pas…@+
:Euuuh: -
AuteurRéponses