Tutoriels vidéo art graphique gratuits

 
Bienvenue, Invité. Merci de vous connecter ou de vous inscrire.
Pages: [1]   En bas

Auteur Sujet: Calcul dans formulaire valeur 0 "zéro" par défaut !  (Lu 14020 fois)

nicomoro

  • Wisi tout neuf
  • *
  • Hors ligne Hors ligne
  • Messages: 24
    • Voir le profil
Calcul dans formulaire valeur 0 "zéro" par défaut !
« le: avril 20, 2012, 00:53:56 am »

Bonjour à tous,

Je dois réaliser un formulaire type "bon de commande", or j'ai un soucis mineur mais j'aimerai savoir si il y avait une alternative.

Le problème est le suivant :
j'aimerai que la valeur "0" (zéro) n'apparaisse pas dans le "champs prix" devant accueillir le résultat d'un calcul, tant que le "champs quantité" devant préciser la quantité de produit n'a pas été renseigné. En gros, et dans ce cas précis, j'aimerai pouvoir faire apparaître un champs vide, tant qu'aucun calcul n'a été déclenché.

Connaitriez-vous une astuce ?
Vous remerciant par avance de votre aide.

Nicolas
IP archivée
Qui peut le + peut le -, mais qu'en est-il quand on ne sait rien ?

Abel O'Boidorman

  • Wisi Comment on décroche
  • *****
  • Hors ligne Hors ligne
  • Messages: 675
    • Voir le profil
    • E-mail
Re : Calcul dans formulaire valeur 0 "zéro" par défaut !
« Réponse #1 le: avril 20, 2012, 11:25:35 am »

Salut,

il y a deux méthodes possibles, via JavaScript :

- demander à n'afficher aucune valeur quand la valeur est égale à zéro.
(Cette méthode peut-être dangereuse si d'autres calculs interviennent à partir des champs concernés)

- demander à masquer le zéro en lui attribuant la même couleur que le fond de page.
(Cette méthode requiert un fond de couleur unie sinon ça devient vite l'enfer…)

Ce qui nous donne ceci, à placer en script de validation :

if(event.value!=0)
{
//Valeur non nulle > texte noir.
event.target.textColor = color.black;
}
else
{
//Valeur nulle > texte blanc
event.target.textColor = color.white;
}


 8)
IP archivée
__oOOo___( @ > @ )___oOOo__

loic_aigon

  • Wisi J'habite sur le forum
  • ****
  • Hors ligne Hors ligne
  • Messages: 391
  • Le Design automatisé
    • Voir le profil
Re : Calcul dans formulaire valeur 0 "zéro" par défaut !
« Réponse #2 le: avril 20, 2012, 16:02:53 pm »

hello,

@jrb, ne peut-on pas juste masquer le champ ? champ.hidden = true ? ou qqch de ce genre ?

Loic
IP archivée

Abel O'Boidorman

  • Wisi Comment on décroche
  • *****
  • Hors ligne Hors ligne
  • Messages: 675
    • Voir le profil
    • E-mail
Re : Re : Calcul dans formulaire valeur 0 "zéro" par défaut !
« Réponse #3 le: avril 20, 2012, 16:48:19 pm »

@jrb, ne peut-on pas juste masquer le champ ? champ.hidden = true ? ou qqch de ce genre ?

Je n'ai pas testé, mais à mon avis on devrait se heurter au même problème que en 1 ci-dessus si d'autres calculs sont interdépendants avec ces champs.
 ???
IP archivée
__oOOo___( @ > @ )___oOOo__

loic_aigon

  • Wisi J'habite sur le forum
  • ****
  • Hors ligne Hors ligne
  • Messages: 391
  • Le Design automatisé
    • Voir le profil
Re : Calcul dans formulaire valeur 0 "zéro" par défaut !
« Réponse #4 le: avril 21, 2012, 00:31:50 am »

Hello,

Si j'ai bien compris, il suffit de renseigner ou non le champ de calcul. Dans le PDF que je joins, le total ne s'affiche que si on a renseigné les deux champs du dessus.

var a  = this.getField("Texte1");
var aValue = a.value;
var aBool = a.valueAsString == ""
var b = this.getField("Texte2");
var bValue = b.value;
var bBool = b.valueAsString == "";
var total = this.getField("Texte3");

if ( !aBool && !bBool )
{
    total.value = aValue + bValue;
}
else
{
    total.value = "";
}

Voili voilou.

Loic
IP archivée

Abel O'Boidorman

  • Wisi Comment on décroche
  • *****
  • Hors ligne Hors ligne
  • Messages: 675
    • Voir le profil
    • E-mail
Re : Calcul dans formulaire valeur 0 "zéro" par défaut !
« Réponse #5 le: avril 21, 2012, 17:11:09 pm »

Oui, c'est une façon de faire, mais on retombe sur le problème n°1 en cas de calculs interdépendants : zéro et rien ce n'est pas la même chose et ça ne donne pas toujours le même résultat.
 ;)
IP archivée
__oOOo___( @ > @ )___oOOo__

Eddy

  • Global Moderator
  • Wisi Comment on décroche
  • *****
  • Hors ligne Hors ligne
  • Messages: 3239
  • Éternel apprenti.
    • Voir le profil
    • Scriptopedia.org
    • E-mail
Re : Calcul dans formulaire valeur 0 "zéro" par défaut !
« Réponse #6 le: avril 21, 2012, 18:50:07 pm »

Bonsoir.
Je ne te comprend pas JRB.
Tans que les champs "requis" ne sont par renseignés la case de résultat reste vide, en cas de calcul dont le résultat est 0, il faut bien indiquer 0.
Ce script fait ça non ?
IP archivée
Config : I-Mac 27" Core I5 12Go RAM - OSX 10.10.X

Abel O'Boidorman

  • Wisi Comment on décroche
  • *****
  • Hors ligne Hors ligne
  • Messages: 675
    • Voir le profil
    • E-mail
Re : Re : Calcul dans formulaire valeur 0 "zéro" par défaut !
« Réponse #7 le: avril 22, 2012, 12:17:13 pm »

Je ne te comprend pas JRB.
Tans que les champs "requis" ne sont par renseignés la case de résultat reste vide, en cas de calcul dont le résultat est 0, il faut bien indiquer 0.

Oui, dans l'absolu tu as raison.

Ce que je veux dire c'est que ce champ de résultat qui contient rien au lieu d'un zéro peut très bien lui aussi être utilisé comme base pour un autre calcul.

Auquel cas supprimer le zéro pour le remplacer par rien peut occasionner des surprises et des dysfonctionnements.
D'où l'intérêt d'en simplement changer la couleur, visuellement on obtient la même chose, sans pour autant mettre en danger l'intégrité d'éventuels calculs ultérieurs reprenant la valeur de ce champ de résultat.

 ;)
« Modifié: avril 22, 2012, 12:25:29 pm par JRB »
IP archivée
__oOOo___( @ > @ )___oOOo__

loic_aigon

  • Wisi J'habite sur le forum
  • ****
  • Hors ligne Hors ligne
  • Messages: 391
  • Le Design automatisé
    • Voir le profil
Re : Calcul dans formulaire valeur 0 "zéro" par défaut !
« Réponse #8 le: avril 23, 2012, 13:22:48 pm »

Hello,

je conçois. Dans ce cas là, un simple Number(champ.value) suffit à corriger l'impact d'un champ vide ;)
Number( "" ) // 0

Loic
IP archivée

Abel O'Boidorman

  • Wisi Comment on décroche
  • *****
  • Hors ligne Hors ligne
  • Messages: 675
    • Voir le profil
    • E-mail
Re : Re : Calcul dans formulaire valeur 0 "zéro" par défaut !
« Réponse #9 le: avril 23, 2012, 13:38:59 pm »

Dans ce cas là, un simple Number(champ.value) suffit à corriger l'impact d'un champ vide ;)
Number( "" ) // 0

Oui, je comprend bien.
C'est une autre méthode, chacune à ses avantages et ses adeptes.
Moi c'est au cas par cas, selon la demande et selon la complexité du formulaire, mais personnellement je préfère laisser les zéros affichés.
 :)
IP archivée
__oOOo___( @ > @ )___oOOo__

nicomoro

  • Wisi tout neuf
  • *
  • Hors ligne Hors ligne
  • Messages: 24
    • Voir le profil
Re : Calcul dans formulaire valeur 0 "zéro" par défaut !
« Réponse #10 le: avril 23, 2012, 22:20:20 pm »

Bonsoir,

Tout d'abord merci pour l'intérêt et surtout les réponses que vous m'avez apporté.

N'ayant aucune notions de javascript j'ai été un peu perdu, mais j'y suis arrivé  :D

J'ai donc testé les 2 scripts que vous m'avez indiqué, les 2 représentent pour moi des avantages et surtout une découverte, vous m'avez confirmé qu'une éventuelle solution pouvait venir du javascript.

La première solution de JRB m'a parut fantaisiste dans la description mais le résultat correspond en tout point à mes attentes, ne reste plus qu'à gérer les couleurs ;)

La seconde solution de Loïc, plus pointu pour le néophyte que je suis, est également très intéressante, (l'exemple fournit m'a été d'une grande aide pour comprendre la démarche à suivre, MERCI), mais cette solution me semble plus "lourde" à mettre en place sur des formulaire très long, mais peut-être que je me trompe !?!

Je découvre grâce à vous les possibilités que peuvent offrir le javascript, mais comme toute découverte elle soulève un tas de questionnement, curieux de nature et souhaitant approfondir mes connaissances sur le sujet auriez-vous un ouvrage, des liens concernant le "javascript pour Acrobat" (en Français de préférence) à me conseiller ?

Quoi qu'il en soit merci encore de m'avoir ouvert les yeux sur le sujet.

Nicolas
IP archivée
Qui peut le + peut le -, mais qu'en est-il quand on ne sait rien ?

Abel O'Boidorman

  • Wisi Comment on décroche
  • *****
  • Hors ligne Hors ligne
  • Messages: 675
    • Voir le profil
    • E-mail
Re : Calcul dans formulaire valeur 0 "zéro" par défaut !
« Réponse #11 le: avril 24, 2012, 09:06:53 am »

Salut,

si c'est un formulaire long il faut mettre le script en "fonction".
Le formulaire sera bien plus réactif, et c'est plus facile à maintenir/modifier puisque le script n'existe qu'une seule fois à un seul endroit.

Donc il faut, par exemple, placer ceci en script de document* :

function verifBlanc()
{
if(event.value!=0)
{
//Valeur non nulle > texte noir.
event.target.textColor = color.black;
}
else
{
//Valeur nulle > texte blanc
event.target.textColor = color.white;
}
}




Et ensuite, dans chaque champ de formulaire concerné on appelle la fonction en script de validation :

verifBlanc();


Il y a des liens vers de la doc sur cette page, mais c'est en anglais…
http://help.adobe.com/fr_FR/acrobat/pro/using/WS58a04a822e3e50102bd615109794195ff-7e03.w.html

 8)


*
Outils : JavaScript : Scripts JavaScript
ou
Outils : JavaScript : Scripts du document
selon les versions
IP archivée
__oOOo___( @ > @ )___oOOo__

Abel O'Boidorman

  • Wisi Comment on décroche
  • *****
  • Hors ligne Hors ligne
  • Messages: 675
    • Voir le profil
    • E-mail
Re : Re : Calcul dans formulaire valeur 0 "zéro" par défaut !
« Réponse #12 le: avril 24, 2012, 09:22:16 am »

Si j'ai bien compris, il suffit de renseigner ou non le champ de calcul. Dans le PDF que je joins, le total ne s'affiche que si on a renseigné les deux champs du dessus.

var a  = this.getField("Texte1");
var aValue = a.value;
var aBool = a.valueAsString == ""
var b = this.getField("Texte2");
var bValue = b.value;
var bBool = b.valueAsString == "";
var total = this.getField("Texte3");

if ( !aBool && !bBool )
{
    total.value = aValue + bValue;
}
else
{
    total.value = "";
}

Que l'on peut simplifier ainsi (en assumant que les champs Texte1 et Texte2 sont au format "nombre") :

a  = this.getField("Texte1").value;
b  = this.getField("Texte2").value;
if ( a != "" && b != "")
{event.target.value = a + b;}
else
{event.target.value = "";}


 ;)
« Modifié: avril 24, 2012, 09:25:05 am par JRB »
IP archivée
__oOOo___( @ > @ )___oOOo__

loic_aigon

  • Wisi J'habite sur le forum
  • ****
  • Hors ligne Hors ligne
  • Messages: 391
  • Le Design automatisé
    • Voir le profil
Re : Calcul dans formulaire valeur 0 "zéro" par défaut !
« Réponse #13 le: avril 24, 2012, 13:02:29 pm »

Hello,

Oh oui je te fais confiance sur l'optimisation du code pour Acrobat :D Je code assez peu pour Acrobat, 99.99% de mon activité est liée à InDesign. J'étais juste piqué par la curiosité quand j'ai vu le sujet ;)

A+ Loic
IP archivée

SoSecret

  • Wisi tout neuf
  • *
  • Hors ligne Hors ligne
  • Messages: 1
    • Voir le profil
Re : Calcul dans formulaire valeur 0 "zéro" par défaut !
« Réponse #14 le: juillet 18, 2012, 20:14:54 pm »

Bonjour à tous,

Tout d'abord merci pour votre précieuse aide, vous venez de me faire gagner un temps monstrueux, tout en me donnant l'impression d'être une pro de javascript, que je ne connaissais que de nom avant de vous lire... C'est déjà énorme.

Pour vous donner du fil à retordre, j'aurais un nouveau problème à vous soumettre, dans la même veine :
Je souhaite masquer un champ (menu déroulant) à condition que d'autres champs le précédents soient vides.
En gros dans une facture, j'ai réalisé un menu déroulant pour compléter le taux de TVA applicable. Néanmoins ce dernier s'affiche invariablement, quand bien même la ligne entière reste vide.

Auriez-vous un petit script tout prêt ou  des indices pour creuser une piste avec moi ?

D'avance merci !

PS : si ce message n'est pas à sa place, désolée d'avance !
IP archivée
 



Wisibility est un sité dédié à la formation aux métiers l’image. Vous y trouverez différentes ressources vous aidant à maîtriser les logiciels graphiques tels que Photoshop, Lightroom, Illustrator, InDesign, Flash… Aujourd’hui, Wisibility réunie plus d'une vingtaine d’experts, intervenant en Entreprise pour former graphistes, webdesigners, développeurs web, photographes, monteurs, trucistes…
Depuis 2006 nous nous sommes spécialisés dans les tutoriels vidéos permettant de se former à distance. Notre forum très actif, géré par une équipe de bénévoles répondra à vos demandes. Vous pourrez également profiter de nos émissions et reportages sur la Wisi TV.
Contact - Wisibility est une marque déposée

Blog - Tutoriels - Wisi TV - Forum