Toutes mes réponses sur les forums
-
AuteurRéponses
-
bebarthMaître des clés
Ca marche nickel je vais l’adapter à mes documents mais si j’ai bien compris on ne peut créer un raccourci clavier.
…le but étant d’écrire un seul script pour tous les types de fichier évidemment !!
A mon avis, tu devrais te créer un document vierge, ce qui éviterait la boite de dialogue.On pourrait faire un script d’application pour rajouter une commande de menu, mais ensuite il faudra un utilitaire pour lancer cette commande !
@+
:bonjour:bebarthMaître des clésVoici une action qui imprime les pages 3 à 5, 17 et 20 à 24 des fichiers qui comprennent “auto” dans leur nom.
Il faudrait adapter cette action avec tous les noms de contrat et les pages correspondantes.
Ici le script crée un fichier temporaire que l’on doit fermer “manuellement” avec une boite de dialogue sans l’enregistrer. On ne peut pas faire autrement avec cette méthode.
L’autre méthode qui éviterait cela serait de créer un fichier “vierge” placé n’importe où (mais avec des droits accès) que l’on viendrait ouvrir puis refermer automatiquement sans la boite de dialogue !
@+
:bonjour:bebarthMaître des clés…je pense que petit à petit, en posant les bonnes questions on devrait y arriver !
Pour un même type de contrat, les pages à imprimer sont-elles toujours les mêmes ? Sont-elles consécutives ? Veux-tu faire du recto/verso même avec des pages non-consécutives ?
@+
:bonjour:bebarthMaître des clésOK !
Est-ce que l’on pourrait dire par exemple, si le nom du fichier contient “auto” on imprime les pages… et s’il contient “habitation” les pages…. ???
@+
:bonjour:bebarthMaître des clésBonne Année Merlin !
on ne sait pas forcément combien il y a de chiffres dans le numéro de membre.
…sauf celui qui connait son numéro d’adhérent !
@+
:bonjour:bebarthMaître des clésbonjour et Bonne Année,
Tu pourrais mettre un masque arbitraire pour vérifier déjà le format du numéro d’adhérent !
@+
:bonjour:bebarthMaître des clésbonjour & Bonne Année !
Oui c’est possible si l’on parle bien d’Acrobat Pro, pas d’Adobe Reader.
Après, il faudrait en savoir un peu plus sur le nom des fichiers, leur emplacement, doit-on imprimer tout le temps les mêmes pages sur les mêmes documents… On verra ensuite ce qui est le plus judicieux.
@+
:bonjour:bebarthMaître des clésbonjour,
Désolé j’ai un message d’erreur sur le script.
C’est bien de le savoir, mais c’est mieux de le connaître !
@+
:bonjour:bebarthMaître des clésbonjour,
Désolé pour ma réactivité qui est à peu près la même que la vitesse de mon wifi en ce moment… ça devrait revenir après les fêtes !
Si on ne veut pas intégrer les numéros au fichier, on pourrait déjà vérifier le format de ce numéro !
Je suppose que le numéro d’adhérent possède un format qui lui est propre (ABC-9876-DEF par exemple). 9a éviterait déjà que l’utilisateur n’entre n’importe quoi dans ce champ.
@+
:bonjour:bebarthMaître des clésbonsoir,
bien sûr que c’est possible, mais le plus simple serait de partager ton fichier afin d’écrire directement le script avec les noms des champs !
Par contre, l’utilisateur pourrait rentrer n’importe quoi comme numéro d’adhérent ? Comment vérifier que ce numéro est valide ?
@+
:bonjour:bebarthMaître des clésbonjour,
Voici ce qu’il faut écrire :Code:if (this.event.target.value != “”) {
this.event.target.display = display.visible;
} else {
this.event.target.display = display.noPrint;
}…en gros, si le champ n’est pas vide on l’imprime, sinon on ne l’imprime pas !
https://help.adobe.com/en_US/acrobat/acrobat_dc_sdk/2015/HTMLHelp/index.html#t=Acro12_MasterBook%2FJS_API_AcroJS%2FField_properties.htm%23TOC_displaybc-19&rhtocid=_6_1_8_31_1_18
@+
:bonjour:bebarthMaître des clésbonsoir,
Merlin a énumérer tous les problèmes auxquels je pensais.
Voici donc ma suggestion qui ne tient compte que de cases à cocher du questionnaires et qui indique l’ordre des réponses avec modifications possibles des réponses.
@+
:bonjour:bebarthMaître des clésy’a t’il un moyen d’exporter les données meme si un champs n’est pas remplis? Afin de respecter a chaque fois le meme format d’exportation des donnes pour que ça corresponde aux titres du fichier excel?
Code:for (var j=0; jif (otherDoc.getField(lesChamps[j]).value==””) {
var lesDonnees=lesDonnees+”–t”;
} else {
var lesDonnees=lesDonnees+otherDoc.getField(lesChamps[j]).value+”t”;
}
}@+
:bonjour:bebarthMaître des clésbonjour,
Je ne vais pas pouvoir regarder aujourd’hui, mais j’essaye ce weekend !
Limiter le nombre de choix, ce n’est pas le plus compliqué. Il faut pouvoir garder et indiquer l’ordre de sélection avec des modifications possibles…
@+
:bonjour:bebarthMaître des clésbonjour,
Dans mon exemple j’ai créé un fichier sous Excel enregistré au format .xls (j’avais fait un teste au format .xlsx pour vérifier si ça fonctionnait aussi, mais non…).
Peut-être qu’une fois attaché au formulaire, Acrobat le transforme en .csv !!!
@+
:bonjour:bebarthMaître des clésOui, il faut remplacer 2 fois le nom de fichier Data.xls par le nom de ton fichier Excel.
Attention, ça ne foctionne pas avec l’extension .xlsxCode:…
var oFile=this.getDataObjectContents(“Data.xls”); // <- ICI
var lesDonnees=util.stringFromStream(oFile);
var lesDonnees=lesDonnees+”rn”;
for (var j=0; jvar oFile=util.streamFromString(lesDonnees);
this.setDataObjectContents(“Data.xls”, oFile); // <- ICI
…@+
:bonjour:bebarthMaître des clésJ’ai pas compris la partie “si tu ne veux pas supprimer les lignes”
Ce sont les lignes du script qu”il faut modifier comme ceci :
Code:…
// Initialisation du fichier Data.xls
// for (var j=0; j// var oFile=util.streamFromString(lesDonnees);
// this.setDataObjectContents(“Data.xls”, oFile);
…ou les supprimer complètement.
Une autre question (décidément :siffle: ) comment je change le fiichier excel qui répertorie mes données? A chaque fois ça va dans le fichier data je n’arrive pas à exporter les données dans un fichier déjà existant.
Regarde les icônes au dessus du fichier, tu peux ouvrir le fichier, l’enregistrer, l’exporter ou le supprimer et en importer un autre !!!
@+
:bonjour:bebarthMaître des clésbonjour,
y’a t’il moyen d’enregistrer ça dans un fichier excel déjà existant à la suite d’autre enregistrement ?
Pour Enregistrer à la suite du documen Excel, Tu enlèves ces 4 lignes :
Si tu ne veux pas supprimer les lignes, tu places 2 slash en début de ligne (comme avant Initialisation…).Code:…
// Initialisation du fichier Data.xls
for (var j=0; jvar oFile=util.streamFromString(lesDonnees);
this.setDataObjectContents(“Data.xls”, oFile);
…Mais tu n’auras plus les titres des colonnes automatiquement. Tu peux les créer lorsque ton fichier Excel est vierge, ils seront conservés.
Par contre, ce sera toujours le même fichier attaché au document. Si les champs à extraire varient, les colonnes ne seront plus correctes.
Tu peux extraire ce fichier Excel.Et enfin je comprends pas trop l’intérêt du fichier sequ tu peux m’expliquer ça de façon plus explicite?
Si tu double-cliques sur le fichier .sequ, tu vas importer une action dans Acrobat Pro.
Ensuite, au lieu d’appuyer sur le bouton “EXPORTER”, tu lances l’action (outil Assistant d’actions). Ça fait exactement la même chose, et en plus ça t’enregistre ton document sous le nom “Données Formulaires du “+jour+”-“+mois+”-“+annee+”.pdf”
Ce document est enregistré au même niveau que ton document d’origine. Si la prochaine fois tu reparts de ce nouveau document, les données seront enregistrées à la suite du document Excel (à condition de supprimer les 4 lignes) et un nouveau document sera re-créé avec une nouvelle date… A tester !
@+
:bonjour:bebarthMaître des clésJ’ai une erreur qui me dit “au moins un nom de fichier doit être renseigné”, alors que la liste est remplis. Et une autre erreur “le champ “undefined” n’a pas été trouvé.
C’est parce que j’avais laissé le script d’enregistrement dans le bouton alors qu’il ne peut fonctionner qu’avec une action.
Remplace ce fichier, ça devrait mieux marcher.
Essaye aussi l’action (fichier .sequ) qui fonctionne avec en plus un enregistrement avec la date.
@+
:bonjour:bebarthMaître des clésJ’ai oublié de préciser, pour que l’on puisse copier les valeurs des champs des formulaires, il faut que les formulaires aient tous un script de document :
Code:this.disclosed = true;C’est obligatoire pour copier d’un document à un autre !
Et dernière question si cette méthode fonctionne comment je fais pour augmenter la liste du nombre de champs?
Pour augmenter le nombre de champs, tu créés des champs supplémentaires nommés champ.10, champ.11, champ.12, etc.
et tu modifies le script :Code:…
for (var i=0; i<=9; i++) {
…
Ici 9 était le numéro du dernier champ. Tu le remplaces par le numéro de ton dernier champ.
@+
:bonjour:bebarthMaître des clésbonjour,
Avec les fichiers exemples?
Peux-tu faire les 2 mêmes copies d’écrans que j’ai faites, juste pour voir.
@+
:bonjour:bebarthMaître des clésce post ?
https://abracadabrapdf.net/forum/index.php/topic,3406.msg20057.html#msg20057
@+
:bonjour:bebarthMaître des clésbonjour,
Voici ce que je te propose :
Tu places tes formulaires à traiter dans un même dossier “Formulaires” qui se trouve dans le même répertoire que “Exporter les champs vers Excel_BB.pdf”.
Tu lances ce fichier, tu renseignes les noms de champs à extraire (j’en ai mis jusqu’à dix mais on peut modifier).
Tu copies/colles les noms de fichiers dans le champ approprié (comme tu es sur Mac, ça se fait tout seul… je crois que ce n’est pas possible sur PC sans un utilitaire).Et tu appuies sur le bouton. Toutes les données seront copiées dans le fichier Excel attaché.
Si tu veux une sauvegarde automatique de ce fichier pdf, il faudra passer par une action (fichier .sequ joint) ou ajouter un script d’application si tu veux absolument resté avec le bouton.
Tu testes et tu me dis…
@+
:bonjour:bebarthMaître des clésbonjour,
Voici ce que je te propose pour ajouter un élément soit en début, soit en fin de liste.
@+
:bonjour:bebarthMaître des clésTu as une liste déroulante.
Tu as un bouton pour rajouter un article, mais où se trouve l’article à rajouter ? dans un champ texte ?
Tu veux créer une autre liste ? Pourquoi pas modifier la première ?
Tu veux uniquement ajouter un article, pas en retirer ?
@+
:bonjour:bebarthMaître des clésbonjour,
Je pense que ça demande une petite explication…
@+
:bonjour:bebarthMaître des clésoui, c’est ça !
Mais maintenant il faut intégrer tous les formulaires à ce script, et ça dépend complètement de ce que tu peux/veux faire…
Ou se trouvent les fichiers ? Peut-on les déplacer ?
Comment sont-il nommés ? Peut-on trouver un algorithme pour appeler les fichiers ou doit-on copier/coller les noms quelque part ?
…en découlera la faisabilité et la complexité du script !
@+
:bonjour:bebarthMaître des clésbonjour,
https://help.adobe.com/en_US/acrobat/acrobat_dc_sdk/2015/HTMLHelp/index.html#t=Acro12_MasterBook%2FJS_API_AcroJS%2FDoc_methods.htm%23TOC_getDataObjectContentsbc-43&rhtocid=_6_1_8_23_1_42
A cette adresse, tu trouveras l’exemple qui me semble le plus approprié à ce que tu veux faire.
Tu regardes et tu demandes si tu veux de l’aide…
@+
:bonjour:bebarthMaître des clésbonjour,
En fin de compte, dans mon fichier j’ai rajouté une case à cocher Opt8. et quelques lignes en fin de fonction “lesOptions” :Code:…
}
prixOptions=prixOptions+opt7;
if (this.getField(“Opt8.”+indice).value!=”Off”) {
opt8=this.getField(“Prix.”+indice).value*0.015;
} else {
opt8=0;
}
prixOptions=prixOptions+opt8;
}@+
:bonjour:bebarthMaître des clésbonsoir,
Il faudrait que je me replonge dans le fichier que je t’avais proposé et je ne sais pas si tu l’as utilisé tel quel !
D’après ce que je me souviens il y avait une case invisible avec le prix sans options. Il faudrait donc rajouter une case à cocher et si elle est cochée (!=”Off”), tu rajoutes les 1,5%.
@+
:bonjour:bebarthMaître des clésbonjour,
Le plus simple serait que tu partage ton document, mais ne serait-ce pas la variable en script de document qu’il faudrait modifier…
@+
:bonjour:12 décembre 2018 à 13:18 en réponse à : Impression de pages précises de plusieurs fichiers pdf #64528bebarthMaître des clésbonjour,
Le fichier/dossier est introuvable” ou quelque chose du genre…
D’après ce que je comprend, il faudrait modifier la ligne ci-dessous pour avoir :
Code:…
cPath: Dossier+”Imprimer ces Fichiers\”+chaine…J’ai l’habitude d’écrire pour des Mac où les chemins s’écrivent avec des “/” alors que sur PC ce sont des ““.
Tu me dis…
@+
:bonjour:bebarthMaître des clésbonsoir,
Il faut écrire :
var regxp=/^[0-9DJ]$/;
@+
:bonjour:bebarthMaître des clésbonjour,
Je t’ai fait un nouveau ficher avec lequel tu peux retirer les numéros aléatoires.
Petit plus qui n’était pas obligatoire, je reclasse les numéro dans l’ordre dans le champ “Invisible” même si ça ne sert à rien vu qu’il l’est…
J’ai mis les scripts en fonctions, ce qui évite de les copier/coller dans tous les champs à chaque modification. Ici il n’y a que 8 patients, mais imagine si tu veux adapter ton fichier pour 200 !!! :geek:
@+
:bonjour:bebarthMaître des clésbonsoir,
Pour vider le champ “Invisible”, tu modifies la fin du script :Code:…
} catch(e) {
this.getField(“Number.”+indice).value=this.getField(“Invisible”).value;
this.getField(“Invisible”).value=””;
}
this.event.target.readonly=true;Il y a plusieurs solutions pour re-remplir ce champ, je t’en soumettrai une demain !
@+
:bonjour:bebarthMaître des clésbonjour,
Voici le (enfin) résultat !
@+
:bonjour:bebarthMaître des clés…encore mieux, juste un script de touches personnalisé :
Code:var regxp=/^[0-B]$/;
if(!event.willCommit) {
if(event.change.length>0 && regxp.test(event.change)==false) {
app.beep(0); // Le bip n’est pas obligatoire…
event.rc=false;
} else {
var aRslt = event.value.split(“”);
aRslt.splice(event.selStart, event.selEnd – event.selStart, event.change);
var strTest = aRslt.join(“”);
var rpat = /^w{0,1}(d{0,5}?)?$/; // 5 = nb de chiffres
event.rc = rpat.test(strTest);
}
} else {
var rpat = /^(w{1}d{5})?$/; // 5 = nb de chiffres
event.rc = rpat.test(event.value);
}Il faut indiquer (2 fois) le nombre de chiffres que tu désires (ici c’est 5).
@+
:bonjour:bebarthMaître des clésbonjour,
Tu pourrais mettre en script de format personnalisé :Code:event.value = util.printx(“A99999”, event.value);avec autant de “9” que de chiffres que tu veux indiquer, et en script de touches personnalisé :
Code:var regxp=/^[0-B]$/;
if(!event.willCommit) {
if(event.change.length>0 && regxp.test(event.change)==false)
{
app.beep(0);
event.rc=false;
}
}@+
:bonjour:bebarthMaître des clésbonsoir,
C’est la dernière demande concernant les montants promis !! :Ooops: :siffle:
Il n’y a pas de soucis, le problème est que je ne suis pas certain de comprendre ce que tu veux que je fasse.
Dans ton fichier il n’y a pas de champ ni au format français ni au format US. Est-ce que tu veux que je modifie le texte ?
Dans ce cas il faut refaire des pavés car les texte sont des images.
Tu me dis…
@+
:bonjour:bebarthMaître des clésbonjour,
Avant: 1 111.11
Ils doivent maintenant s’inscrire: 1,111.11D’après ce que je lis, ce n’est pas l’inverse ???
La différence entre les champs français et anglais ne serait donc que le symbole de séparation des décimales (, ou .).
Correct ?
@+
:bonjour:bebarthMaître des clésbonjour,
Voila ! Dans le fichier joint il y a un champ “Invisible” qui est… invisible et qui, une fois réinitialisé, est égale à “1,2,3,4,5,6,7,8”.
Puis le script dans chaque bouton (qui pourrait être en script de document) :Code:var str = this.event.target.name;
var n = str.indexOf(“.”);
var indice = parseInt(str.substring(n+1));
var str = this.getField(“Invisible”).value;
try {
var laTable = str.split(“,”);
var n=Math.floor(Math.random()*laTable.length);
var nb=laTable[n];
this.getField(“Number.”+indice).value=nb;
laTable.splice(n, 1);
this.getField(“Invisible”).value=laTable.toString();
} catch(e) {this.getField(“Number.”+indice).value=this.getField(“Invisible”).value}
this.event.target.readonly=true;Ici, j’ai mis les boutons en lecture seule une fois que l’on a appuyé dessus, et un bouton de réinitialisation de tous les champs.
@+
:bonjour:bebarthMaître des clésbonsoir,
…Ils doivent maintenant s’inscrire: 1,111.11
Ce n’est pas ce que j’ai fait ?
@+
:bonjour:29 novembre 2018 à 21:49 en réponse à : Formules de calcul qui disparaissent quand on change de champs #64967bebarthMaître des clésbonsoir,
… lorsque je reviens un ou deux champs, pas toujours les mêmes, disparaissent.
Ils disparaissent comment ? Ils sont cachés ou effacés ?
Pour comprendre un problème aléatoire, il vaudrait mieux que tu partage ton fichier.
As-tu essayé plusieurs ordinateurs ou plusieurs versions d’Acrobat ? Toujours le même résultat ?
@+
:bonjour:bebarthMaître des clésbonjour,
Je ne pense pas que se soit la meilleure solution…
Je ne pourrai pas regarder ce soir, mais pour comprendre :
Il y a donc un bouton devant chaque champ. Lorsqu’on appuie sur le bouton, cela tire un nombre aléatoire de 1 à 8. Que se passe-t-il si on appuie une deuxième fois ??? Ne devrais-tu pas mettre des boutons radio ou des cases à cocher ???Y a-t-il uniquement 8 patients, ou plus et seulement 8 peuvent recevoir un numéro ???
@+
:bonjour:bebarthMaître des clésbonsoir,
Voici ma proposition.Code:var laTable=[1,2,3,4,5,6,7,8];
for (var i=1; i<=8; i++) {
var n=Math.floor(Math.random()*laTable.length);
var nb=laTable[n];
this.getField(“Number.”+i).value=nb;
laTable.splice(n, 1);
}J’ai rajouté un point dans le nom des champs car c’est plus simple lorsqu’on duplique…
@+
:bonjour:bebarthMaître des clésbonsoir,
Je t’ai fait une version où tu n’auras plus qu’à copier/coller les champs pour les dupliquer, sans te préoccuper du script. Il faudra juste renommer ces champs.
Les champs français doivent se nommer FR. plus un nombre, les champs anglais EN. plus un nombre.Ces nombres ne sont pas nécessairement successifs (1, 5, 99, 52, 12…).
Les champs “TOTAL” se nomment TOTAL_EN et TOTAL_FR et ne doivent pas être renommer (ou il faut modifier le script).
Tu me dis si cela s’il y aurait des adaptations à faire.
@+
:bonjour:bebarthMaître des clésPour ce que j’ai en tête, tu n’auras qu’à copier/coller les champs sans te préoccuper du reste.
Il faudra juste nommer FR.1, FR.2, etc les champs français et EN.1, EN.2, etc les champs anglais (et sans limite du nombre de champs).
Le reste devrait se faire tout seul. Il y aura quand même un ou deux scripts de document, mais tu ne devrais avoir besoin d’y toucher.
J’essaye pour la fin de semaine !
@+
:bonjour:bebarthMaître des clésbonsoir,
C’est surtout le temps qui me manque…
J’essaye de te faire ça rapidement.
@+ :bonjour:bebarthMaître des clésbonjour,
Voici donc ce que je te propose. J’aurais pu optimiser un peu plus le script, mais bon !
Je te laisse le soin de le faire si tu le désires…
@+
:bonjour:bebarthMaître des clésbonjour,
Arrivé un moment, il faut choisir entre “complexité” et “compréhension”… surtout en fonction du temps à consacrer !
Je dis ça car il aurait été encore possible de “réduire” la table (sans le premier élément, mais ça compliquait le script) ou mettre les prix des options en table (mais je n’ai pas eu le temps de peaufiner).
@+
:bonjour:bebarthMaître des clésbonjour,
Je pensais avoir le temps de regarder aujourd’hui mais ce ne sera pas le cas.
J’essaie demain…
@+
:bonjour:26 novembre 2018 à 11:54 en réponse à : Messages d’alerte + vérification des champs pendant enregistrement #64885bebarthMaître des clésJ’ai trouvé la solution depuis !
Bonjour,
Commentaire très intéressant qui aidera certainement d’autres personnes à résoudre leur problème !
@+
:bonjour:bebarthMaître des clésbonjour,
Voici ce que je t’ai fait.
Je n’ai pas eu le temps de tout tester car je pars en week-end.
Je te laisse étudier et on en reparle lundi.
@+
:bonjour:bebarthMaître des clésbonjour,
N’est-ce pas le même sujet que l’on avait traité ensemble au mois de juin dernier ?
https://abracadabrapdf.net/forum/index.php/topic,3510.msg21111.html#msg21111
@+
:bonjour:bebarthMaître des clésbonjour,
Il faut que je trouve un moment ( :priere: ), et je regarde !
@+
:bonjour:bebarthMaître des clésbonjour,Utilise “valueAsString” plutôt que “value”, ça évitera que le script prenne les traits d’union pour des signes “moins”.Quant à renommer les champs, il faudrait pouvoir mettre un index correspondant au numéro de ligne par exemple. On pourrait alors construire des boucles avec les scripts, ce qui éviterait de retaper x fois la même chose !
@+
:bonjour:bebarthMaître des clésbonsoir,
cela implique que peut importe la version d’acrobat, une image pourra être chargé?
…du moins les versions depuis pas mal d’années !!!
@+
:bonjour:bebarthMaître des clésbonsoir,
Voici ce que j’ai fait. Je te laisse étudier ça.
J’ai essayé d’adapter un script par rapport aux éléments que j’avais, mais personnellement j’aurais fait ça différemment. Par contre il aurait fallut renommer les champs et ré-écrire certains scripts !
https://we.tl/t-qHozUizRCT
@+
:bonjour:bebarthMaître des clésJ’essaye de te faire un exemple sur la copie que j’ai ce soir ou demain matin !
@+
:bonjour:bebarthMaître des clésbonjour,
…et désolé pour cette réponse un peu tardive.
Il faudrait faire juste une table de correspondance avec le référence SKU et son prix.
En ce qui concerne les options, si telle case est cochée la variable correspondante est le prix, sinon elle est à 0. Ensuite tu additionnes le prix de la référence avec toutes les variables option (même celles à zéro) et ça te donne le prix total.
Je vois que ton formulaire commence à être un peu complexe, et je pense que certaine opérations devrait passer en “fonction”, ce qui t’éviterait d’écrire x fois la même chose, mais cela demande de revoir un peu le nom des champs…
@+
:bonjour:bebarthMaître des clésbonjour,
Quelle est la version Reader utilisée ??? DC également ???
J’ai fait un essai avec Adobe Reader DC et il ne semble pas y avoir de problème.
J’ai pu importer des images .jpg ou .png
Pas de soucis apparent non plus avec le texte.
Avec Adober Reader XI en revanche je n’ai pas de problème de texte mais effectivement il est impossible d’importer des images .jpg ou .png
D’après moi cela vient du type de champ “Champ Image” qui n’existai pas dans les version précédentes.
A mon avis tu devrais remplacer ces champs par des boutons, cela devrait fonctionner.Merlin, une autre solution ???
@+ :bonjour:
bebarthMaître des clésbonjour,
J’espère que tu ne vas pas t’amuser à écrire à chaque fois les case qui doivent ête encadrée pour chaque cas !!!Voici don un script qui va t’éviter cette tâche :Code:var nb=5; //Nombre d’images
function effacer() {for (var i=1; i<=nb; i++) this.getField("Image"+i).strokeColor=color.transparent;}
effacer();
var lesImages = new Array();
switch (event.value) {
case “1”:
var lesImages = [1,3,5];
break;
case “2”:
var lesImages = [2,3,4,5];
break;
case “3”:
var lesImages = [1];
break; //Normalement, pas besoin de break pour le dernier cas
}
if (lesImages.length!=0) {
for (var i=0; ithis.getField(“Image”+ lesImages).strokeColor=color.red;
}
} else {
effacer();
}Tu n’a plus qu’à définir les différent cas !
@+
:bonjour:bebarthMaître des clésbonsoir,
Désolé, j’ai été un peu pris cet après-midi. Du coup je viens de faire une adaptation spécifique à ton formulaire.
J’essaierai de faire une version “générale” prochainement.
Donc, ci-joint une action qui renomme tes 2 champs.
@+
:bonjour:bebarthMaître des clésJe regarde dans l’après midi !
@+
:bonjour:bebarthMaître des clésJe ne vois pas le champ “Etat de fonctionnement” !!! Est-ce le champ “Statut” ???
Je te propose de renommer ces champs avec le numéro du contrat en suffixe. Ça te va ???
@+
:bonjour:bebarthMaître des clésbonjour,
Il n’est pas possible de renommer un champ via JavaScript, par contre il y a une solution.
J’ai écris un script pour une utilisation perso qui va chercher tous les paramètres d’un champ, qui efface ce champ et qui créé un nouveau champ avec toutes les propriétés du champ supprimé mais avec un nouveau nom.
Je n’ai pas suivi ce post depuis le début, mais si ça t’intéresse je pourrais adapter mon script à ton formulaire. Il faudrait me faire passer un fichier et me dire quels champs et comment les renommer…
Ensuite, je t’enverrai une action.
Tu me dis…
@+
:bonjour:bebarthMaître des clésbonjour,
Je crois que j’ai oublié de répondre… désolé !Dans la “table” que j’ai présentée (message précédent plus haut), est-ce possible d’ajouter un prix pour chacun des items et de l’afficher dans une autre zone texte?
Ici, dans les tables, on définit chaque élément d’une liste avec 1 ou 2 valeurs. Si on indique une seule valeur, c’est la valeur de l’élément (qui est affichée dans la liste), s’il y a 2 valeurs, la première représente la valeur de l’élément et la seconde la valeur d’exportation (celle qui sera utilisée pour un éventuel “calcul”).
Dans le premier cas il n’est pas nécessaire de mettre des crochets (“Faire un choix” suffit au lieu de [“Faire un choix”,””]) alors que dans le deuxième cas les crochet sont impératifs pour séparer les différents éléments ([“Cabinet bout ouvert (sans panneau Bout – E1)”,”HROK-STOC-8XXXXX”]).
Si tu indiques un intitulé et une référence pour chaque élément de ta liste, tu ne pourras donc pas indiquer une troisième valeur. Soit tu indiques le prix avec la référence, soit il faut créer une autre table avec les références/prix. Dans ce cas, il serait préférable que les listes ailles chercher les référence dans cette même table, ce qui évite d’avoir 2 fois à taper la même référence. C’est plus sûr en cas de modifications… Par contre cela demande à réécrire le script, et c’est un peu de boulot !
J’espère avoir été clair.
@+
:bonjour:14 novembre 2018 à 14:57 en réponse à : Exporter les données de plusieurs formulaires vers excel #64910bebarthMaître des clésbonjour,
Je possède la version pro DC d’acrobat.
Moi j’ai une version Mac, mais je suppose que c’est au même endroit…
Outils : Préparer le formulaire, puis “Autres” !
@+
:bonjour:bebarthMaître des clésCode:if (this.getField(“CET perenne 2017 ouv/ali”).value!=”Off” && this.getField(“congés annuels”).value!=”” && this.getField(“jours de RTT”).value!=”” && this.getField(“Total”).value!=””) {
this.event.target.value = this.getField(“solde CET”).value – 20;
} else {
this.event.target.value = “”;
}@+
:bonjour:bebarthMaître des clésCode:{this.event.value = this.getField(“solde”).value = this.getField(“solde CET”).value – 20;}Ça ne veut rien dire… Il y a deux égalités dont une avec la valeur de la case à cocher qui est “Oui” !
Il faudrait écrire :Code:{this.getField(“solde”).value = this.getField(“solde CET”).value – 20;}De plus, il faudrait plutôt mettre un script en calcul de ton champ solde, car ici le script n’est lancé que lorsque l’on coche/décoche la case. Si on change une autre valeur le script ne sera pas lancé et le solde sera donc faux !!!
@+
:bonjour:14 novembre 2018 à 12:01 en réponse à : Messages d’alerte + vérification des champs pendant enregistrement #64879bebarthMaître des clésbonjour,
J’ai essayé de créer des lignes de code en regardant les différents sujets du forum, j’avais un début, mais après ça devenait difficile avec les conditions à ajouter.
Est-ce qu’il t’est possible de partager le formulaire avec ce que tu as déjà écris ?
Tu ne commence pas par le plus simple… pour enregistrer avec un bouton, il va falloir ajouter un plug-in sur tous les postes qui vont traiter ce formulaire. C’est envisageable ???
@+
:bonjour:bebarthMaître des clésbonjour,
Ne pourrais-tu pas partager ton fichier ou au moins un fichier avec les champs concernés. Ce serait plus pratique car je n’ai pas beaucoup de temps aujourd’hui…
@+
:bonjour:bebarthMaître des clésEncore une fois, je ne peux que te conseiller de simplifier le nom des champs !
En plus, ça simplifie beaucoup la lecture du script.
@+
:bonjour:bebarthMaître des clés…c’est au tout début :
If (this.getField(“CET perenne 2017 ouv/ali“).value!=”Off”…
@+
:bonjour:bebarthMaître des clésbonjour,
D’après ce que je comprends, essaie ça :Code:If (this.getField(“CET perenne 2017 ouv/ali).value!=”Off” && this.getField(“congés annuels”).value!=”” && this.getField(“jours de RTT”).value!=”” && this.getField(“Total”).value!=””) {
this.getField(“solde”).value=this.getField(“solde CET”).value – 20;
} else {
this.getField(“solde”).value=””;
}Par contre, les noms des champs ne doivent contenir ni espaces, ni caractères accentués, ni caractères spéciaux…
@+
:bonjour:13 novembre 2018 à 13:32 en réponse à : Messages d’alerte + vérification des champs pendant enregistrement #64874bebarthMaître des clésbonjour,
Le logiciel sera PDF. J’aimerais que dès que la personne appuie sur le bouton “enregistrement”…
Je présume que tu veux dire Adobe Reader ou Acrobat Pro…
Lorsque tu appuies sur le bouton, tu souhaiterais uniquement enregistrer le fichier ou l’envoyer par e-mail ???
@+
:bonjour:bebarthMaître des clésJ’avais également pensé à cette solution, mais pour moi les images étaient plus masquées que grisées…
En fait, tout dépend du résultat final que l’on veut : voir ou ne pas voir, telle est la question (to see or not to see, that is the question) :geek:
@+
:bonjour:bebarthMaître des clésbonjour,
Je pense qu’il faudra plutôt penser à encadrer les images.
Je ne vois pas comment les griser !
Voici un exemple.
@+
:bonjour:bebarthMaître des clésbonjour,
Peux-tu partager un fichier ?
@+
:bonjour:12 novembre 2018 à 07:35 en réponse à : Messages d’alerte + vérification des champs pendant enregistrement #64872bebarthMaître des clésbonjour,
…vérification des champs pendant l’enregistrement….
…un message d’alerte se déclenche à l’enregistrement : Nom, prénom, date de naissance, service.Tu parles d’enregistrement, mais quel sera le logiciel de l’utilisateur ?
On peut afficher un message si les champs ne sont pas remplis, mais cela n’empêchera pas l’enregistrement via la commande de menu “Enregistrer” !
@+
:bonjour:bebarthMaître des clésMerlin,
C’est quoi des “named icon objects”, parce que j’ai essayé de mettre des images dans des boutons et le résultat est toujours null !!!
@+
:bonjour:bebarthMaître des clésbonjour,
en fait j’ecris un mail qui recupere des donnees
Je ne sais pas comment tu fais, désolé !
@+
:bonjour:bebarthMaître des clésbonjour,
je n’ai pas compris s’il y avait une question ! :geek:
@+
:bonjour:bebarthMaître des clésbonjour,
La réponse se trouve là :
https://abracadabrapdf.net/forum/index.php/topic,3530.msg21322.html#msg21322
Il te faudra modifier :Code:…
var n = d.getTime()+(7*24*3600*1000);// pour 7 jours
…@+
:bonjour:bebarthMaître des clésj’ai du modifier un peu le code, mais la base était là
…en même temps, je ne peux pas écrire quelque chose de définitif avec des données inventées !
@+
:bonjour:bebarthMaître des clésbonjour,
Je ne sais pas à quoi correspond la valeur d’un bouton ! Dans l’api reference on indique qu’il n’y a pas de valeur pour un bouton, lorsqu’on essaie la réponse est “true”.
En tous cas, ça n’a rien à voir avec la présence ou pas d’une icône.
Pour l’instant, je ne comprends pas pourquoi tester si l’image a bien été importée… Ça ne se voit pas ?
@+
:bonjour:bebarthMaître des clésbonsoir,
Il faut ajouter une condition !
Dans le fichier exemple, j’ai masqué la case mais on pourrait aussi la mettre en lecture seule…
@+
:bonjour:bebarthMaître des clésbonjour,
Il y avait déjà eu un post à ce sujet, et Merlin avait déjà oublié de préciser quelque chose… :geek:À la vérité c’est juste que j’ai oublié un “détail” : pour que ça fonctionne depuis un menu il faut cocher “Autoriser les privilèges d’exécution JavaScript d’éléments de menu” dans Préférences : JavaScript.
@+
:bonjour:bebarthMaître des clés…par MP via WeTransfer ou autre…
@+
:bonjour:bebarthMaître des clésbonjour,
Si ça t’intéresse, une fois que tu auras mis en place tous les champs, si tu peux partager ton fichier je t’aiderai à “simplifier” le script pour le minimiser.
A moins que tu y arrives seul, évidemment…
@+
:bonjour:bebarthMaître des clésbonsoir,
Je t’ai fait les 2 premières cases de la première ligne le plus simplement.
Après, selon les noms des champs que tu donneras, il serait bien de faire des boucles… ça éviterait d’écrire plein de lignes !
@+
:bonjour:bebarthMaître des clésbonjour,
Oui, c’est possible !
-bck doit être disponible uniquement après -316 où indifféremment avec ou sans ?
Je regarde ça ce soir !
@+
:bonjour:bebarthMaître des clésbonsoir,
et si tu combinais le script de Merlin au mien afin de ne voir que les lignes du sommaires nécessaires…
@+
:bonjour:bebarthMaître des clésbonjour,
Expose exactement ce que tu voudrais faire et je regarderai… peut-être pas cette semaine !
@+
:bonjour:bebarthMaître des clésbonsoir,
voir :
https://www.abracadabrapdf.net/pdf-de-demo/formulaires/formulaire-de-contact/
Tu devrais trouver ce que tu cherches !
@+
:bonjour:bebarthMaître des clésbonsoir,
Lorsque tu définis tes tables, il faut également indiquer les valeurs d’exportation, genre :Code:g.setItems([[“Aucun Panneau de bout”,”1234567890″],[“Panneau Bout 1po Gauche”,”9876543210″]]);Puis il faut mettre en script de calcul des champs SKU :
Code:this.event.target.value=this.getField(“Specifications”).value;Ne pas oublier de cocher la case “Valider la valeur sélectionnée immédiatement des champs “Specifications” et celle “Autoriser l’utilisateur à saisir des textes personnalisé”.
Je t’ai fait juste la première ligne !
@+
:bonjour:bebarthMaître des clésbonjour,
Chacun aura son document qu’il pourra personnalisé en créant son propre sommaire
Ou serait fait le sommaire ?
Est-ce que ce ne serait pas des signets que tu voudrais créer ?
@+
:bonjour:bebarthMaître des clésbonjour,
Maintenant j’aimerais pouvoir permettre l’ajout par l’utilisateur d’un autre cabinet.
Est-ce possible?C’est certainement très clair pour toi, mais je ne comprends pas…
T’est-il possible de partager un fichier ?
@+
:bonjour:bebarthMaître des clésbonjour,
Ne pourrais-tu pas regarder le script de ce post et voir s’il ne correspond pas mieux et plus simplement à ton utilité :A mon avis, ce script est bien compliqué pour ce que tu veux faire. Je pense qu’il est très bien lorsqu’on a beaucoup d’arrière arrière… petites filles, mais dans ton cas il y a un peu plus simple !
@+
:bonjour: -
AuteurRéponses