Donnez vie à vos documents numériques !
 

Formulaire de commandes

abracadabraPDF Forums PDF – Général Formulaire de commandes

  • Ce sujet est vide.
  • Créateur
    Sujet
  • #45947
    warrenc50
    Membre

    Bonjour
    Je suis en train de créer un formulaire de commande dans lequel j’ai une première liste ou on peut choisir une catégorie.
    Dans la seconde liste j’ai tous les items qui correspondent à chacune des catégories.
    Est-ce possible de n’afficher que les items de la catégorie sélectionnée?

    Voici le code pour le JS :

    function Initialisation()
    {
    console.clear();
    //On d?©finit les tableaux en respectant l’arborescence des menus:
    console.println(“Initialisation.Definition tableau Debut.”)
    ListeProduit=new Array();
    ListeProduit[0]=[“Cabinet”,”Specifications”];
    ListeProduit[1]=[“Filler Bout Gauche”,”Panneau Bout 1po Gauche”];
    ListeProduit[2]=[“Rangement”,”18po 1porte gauche”];
    ListeProduit[3]=[“Rangement”,”18po 1porte droite”];
    ListeProduit[4]=[“Rangement”,”18po 3tiroirs”];
    ListeProduit[5]=[“Rangement”,”Ouvert  Insert central 18po”];
    ListeProduit[6]=[“Rangement”,”Ouvert Bout 18po gauche”];
    ListeProduit[7]=[“Rangement”,”Ouvert Bout 18po droite”];
    ListeProduit[8]=[“Rangement”,”36po 2portes”];
    ListeProduit[9]=[“Rangement”,”Ouvert  Insert central 36po”];
    ListeProduit[10]=[“Rangement”,”Coin 90 18po 1porte gauche”];
    ListeProduit[11]=[“Rangement”,”Coin 90 18po 1porte droite”];
    ListeProduit[12]=[“Rangement”,”Desserte 18po”];
    ListeProduit[13]=[“Rangement”,”Chef 12po”];
    ListeProduit[14]=[“Rangement”,”Poubelle Coulissante 18po”];
    ListeProduit[15]=[“Rangement”,”Bonbonne 18po 1portegauche”];
    ListeProduit[16]=[“Rangement”,”Bonbonne 18po 1porte droite”];
    ListeProduit[17]=[“Évier”,”SMRT_N 18po 1portegauche”];
    ListeProduit[18]=[“Évier”,”SMRT_N 18po 1portedroite”];
    ListeProduit[19]=[“Évier”,”SMRT_E 18po 1portegauche”];
    ListeProduit[20]=[“Évier”,”SMRT_E 18po 1portedroite”];
    ListeProduit[21]=[“Évier”,”Base Évier 18po 1porte gauche”];
    ListeProduit[22]=[“Évier”,”Base Évier 18po 1doordroite”];
    ListeProduit[23]=[“Évier”,”BAR SMRT_N 36po 2portes”];
    ListeProduit[24]=[“Évier”,”SMRT_N 36po 2portes”];
    ListeProduit[25]=[“Évier”,”BAR SMRT_E 36po 2portes”];
    ListeProduit[26]=[“Évier”,”SMRT_E 36po 2portes”];
    ListeProduit[27]=[“Évier”,”SocialCorner gauche 36po 2portes”];
    ListeProduit[28]=[“Évier”,”SocialCorner droite 36po 2portes”];
    ListeProduit[29]=[“Évier”,”Base Évier 36po 2portes”];
    ListeProduit[30]=[“Grill”,”Grill Ceramique 30po 2portes”];
    ListeProduit[31]=[“Grill”,”Grill 36po 2portes”];
    ListeProduit[32]=[“Grill”,”Grill 42po 2portes”];
    ListeProduit[33]=[“Grill”,”Grill 48po 2portes”];
    ListeProduit[34]=[“Électroménagers”,”Electroménager 26po”];
    ListeProduit[35]=[“Finition”,”Filler Coin 90 3poX3po”];
    ListeProduit[36]=[“Finition”,”Filler Lineaire 2po”];
    ListeProduit[37]=[“Finition”,”Filler Lineaire – 4po”];
    ListeProduit[38]=[“Finition”,”Filler Lineaire avec Ouverture Prise Electrique 2poX4po – 4po”];
    ListeProduit[39]=[“Finition”,”Filler Lineaire 6po”];
    ListeProduit[40]=[“Finition”,”Filler Lineaire Ajustable”];
    ListeProduit[41]=[“Ambiance”,”Eclairage Lineaire 4po”];
    ListeProduit[42]=[“Filler Bout Droit”,”Panneau Bout 1po Droit”];
    //
    //Remplissage de la liste  1 (s?©lecteur Cabinet)
    console.println(“Remplissage liste 1 “)
    lld=this.getField(“DropdownE1″,”DropdownS1″,”DropdownS2″,”DropdownS3″,”DropdownS4,DropdownS5,DropdownE2”);
    lld.delay=true;
    lld.clearItems();
    index=0;
      while(index  {
      lld.insertItemAt(ListeProduit[index][0],ListeProduit[index][0],index)
      index=index+1;
      }
    lld.setFocus();
    lld.currentValueIndices=0;
    lld.delay=false;

    //Remplissage de la liste 2 (s?©lecteur Specifications)
    console.println(“Remplissage liste 2.”);
    lld=this.getField(“DropdownE1Spec”,”DropdownS1Spec”,”DropdownS2Spec”,”DropdownS3Spec”,”DropdownS4Spec”,”DropdownS5Spec”,”DropdownE2Spec”);
    lld.delay=true;
    lld.clearItems();
    index=0;
      while(index  {
      lld.insertItemAt(ListeProduit[index][1],ListeProduit[index][1],index)
      index=index+1;
      }
    lld.setFocus();
    lld.currentValueIndices=0;
    lld.delay=false;
    //Fin remplissage Liste 2
    console.println(“Initialisation.Definition tableau.Fin”)
    }

    Initialisation()

Affichage de 68 réponses de 1 à 68 (sur un total de 68)
  • Auteur
    Réponses
  • #64768
    warrenc50
    Membre

    Pour une de mes lignes du tableau j’ai 7 lignes 2 colonnes

    item 2, 1ere colonne code qui parle à la 2e colonne: if(!event.willCommit)
    {
    rang=0;
    selection=this.event.change;
    console.println(“*********”+selection);
    index=1;
    while(index{
    if(selection==ListeProduit[index][0]){rang=index;}
    index=index+1;
    }
    console.println(rang);
    this.getField(“DropdownS1Spec”).currentValueIndices=rang;
    }

    Item 2, 2e colonne : celui qui parle à la première colonne :

    if(!event.willCommit)
    {
    rang=0;
    selection=this.event.change;
    console.println(“*********”+selection);
    index=1;
    while(index{
    if(selection==ListeProduit[index][1]){rang=index;}
    index=index+1;
    }
    console.println(rang);
    this.getField(“DropdownS1”).currentValueIndices=rang;
    }

    #64769
    bebarth
    Maître des clés

    bonjour,
    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:

    #64770
    warrenc50
    Membre

    Merci beaucoup
    ça fonctionne!!

    Maintenant j’aimerais pouvoir permettre l’ajout par l’utilisateur d’un autre cabinet.
    Est-ce possible?

    #64771
    bebarth
    Maître des clés

    bonjour,

    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:

    #64772
    warrenc50
    Membre

    Voici le fichier

    Pour ce qui est de l’ajout d’une ligne de saisie pour ajouter un/des cabinets, s’il y a une solution je suis preneur.
    Je tente aussi d’afficher un no de produits SKU dans ma 3e colonne lorsq’un item est choisi dans la colonne spécification.
    La colonne “Type” détermine le Type de cabinets.
    La colonne “Spécification” indique les dimensions et autres informations du type de cabinet
    La colonne “SKU” correspond au no de produit relatif au choix fait dans la colonne Spécification. Donc cette colonne affiche tout simplement le no de produit choisi. Mais là ça ne fonctionne pas.
    Je fais des tests avbec la 2e ligne

    #64773
    bebarth
    Maître des clés

    bonsoir,
    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:

    #64774
    warrenc50
    Membre

    Merci Beaucoup!!!
    ça fonctionne numéro 1

    #64775
    warrenc50
    Membre

    Demande additionnelle
    Est-ce possible, avec des cases à cocher, d’ajouter à la fin du SKU, d’autres informations complémentaires?
    Ex. : HROK-STOC-8XXXXX (qui est dans mon champ SKU)
    et quand je clique sur une case à cocher ça donnerait ça : HROK-STOC-8XXXXX-316
    et sur une autre case : HROK-STOC-8XXXXX-316-bck

    #64776
    bebarth
    Maître des clés

    bonjour,
    Oui, c’est possible !
    -bck doit être disponible uniquement après -316 où indifféremment avec ou sans ?
    Je regarde ça ce soir !
    @+
    :bonjour:

    #64777
    warrenc50
    Membre

    Le sens d’affichage n’a pas d’importance.
    pourvu qu’ils s’ajoutent après le Sku affiché

    Mais bon.. si ça s’ajoute selon la séquence des cases à cocher, ça ferait bien.
    voici toute la séquence… mais bon je sais que j’exagère
    -316 -BCK -LBT -LIN -INS – LCK – HCB

    Merci!!

    #64778
    bebarth
    Maître des clés

    bonsoir,
    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:

    #64779
    warrenc50
    Membre

    WOW!
    Un immense MERCI!!

    #64780
    bebarth
    Maître des clés

    bonjour,
    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:

    #64781
    warrenc50
    Membre

    daccord, mais le forum ne me permet pas de partager un fichier de plus de 1024 ko

    #64782
    bebarth
    Maître des clés

    …par MP via WeTransfer ou autre…
    @+
    :bonjour:

    #64783
    Merlin
    Maître des clés

    le forum ne me permet pas de partager un fichier de plus de 1024 ko

    Voir : https://abracadabrapdf.net/forum/index.php/topic,2974.0.html
    :Smiley03:

    #64784
    warrenc50
    Membre

    Donc à date tout fonctionne
    Par contre, j’aimerais exclure certains choix (cases à cocher) quand on choisit certains types de cabinet.
    Exemple, on ne peut cocher (Isolation de l’évier) si on a choisi un cabinet de rangement.
    Est-ce possible?

    #64785
    bebarth
    Maître des clés

    bonsoir,
    Il faut ajouter une condition !
    Dans le fichier exemple, j’ai masqué la case mais on pourrait aussi la mettre en lecture seule…
    @+
    :bonjour:

    #64786
    warrenc50
    Membre

    Merci!
    j’ai du modifier un peu le code, mais la base était là
    Ça fonctionne

    #64787
    bebarth
    Maître des clés

    j’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:

    #64788
    warrenc50
    Membre

    Ton aide est très apprécié.
    Je n’y serais pas arrivé aussi rapidement sans ton aide.

    Je continue à travailler sur le projet.
    D’autres demandes entrent…
    afficher le prix de chaque item de ma table “Spécifications” dans un autre champ texte.

    Code:
    var f=this.getField(“Cabinets1”);
    var g=this.getField(“Specifications1”);
    var laCabinets1=event.value;
    for (var i=0; iif (laCabinets1==f.getItemAt(i,false)) {
    var laTable1=+f.getItemAt(i,true);
    break;
    }
    }
    g.clearItems();
    switch (laTable1) {
    case 1:
    g.setItems([[“Faire un choix”,””],[“Cabinet bout ouvert (sans panneau Bout – E1)”,”HROK-STOC-8XXXXX”],[“18po 1porte gauche”,”HROK-SB-8XXXXX”],[“18po 1porte droite”,”HROK-SB-8XXXXX”],[“18po 3tiroirs”,”HROK-ST3D-8XXXXX”],[“Ouvert Insert central 18po”,”HROK-STOM-8XXXXX”],[“Ouvert Bout 18po gauche”,”HROK-ST1D-8XXXXX”],[“Ouvert Bout 18po droite”,”HROK-STOC-8XXXXX”],[“36po 2portes”,”HROK-ST2D-8XXXXX”],[“Ouvert Insert central 36po”,”HROK-STOM-8XXXXX”],[“Coin 90 18po 1porte gauche”,”HROK-STC-8XXXXX”],[“Coin 90 18po 1porte droite”,”HROK-STC-8XXXXX”],[“Desserte 18po”,”HROK-STTC-8XXXXX”],[“Chef 12po”,”HROK-STCC-8XXXXX”],[“Poubelle Coulissante 18po”,”HROK-STTR-8XXXXX”],[“Bonbonne 18po 1portegauche”,”HROK-STTK-8XXXXX”],[“Bonbonne 18po 1porte droite”,”HROK-STTK-8XXXXX”]]);
    break;
    case 2:
    g.setItems([[“Faire un choix”,””],[“SMRT_N 18po 1portegauche”,”HROK-SSSM-8XXXXX”],[“SMRT_N 18po 1portedroite”,”HROK-SSSM-8XXXXX”],[“SMRT_E 18po 1portegauche”,”HROK-SSSM-8XXXXX”],[“SMRT_E 18po 1portedroite”,”HROK-SSSM-8XXXXX”],[“Base Évier 18po 1porte gauche”,”HROK-SB-8XXXXX”],[“Base Évier 18po 1doordroite”,”HROK-SB-8XXXXX”],[“BAR SMRT_N 36po 2portes”,”HROK-SSSM-8XXXXX”],[“SMRT_N 36po 2portes”,”HROK-SSSM-8XXXXX”],[“BAR SMRT_E 36po 2portes”,”HROK-SSSM-8XXXXX”],[“SMRT_E 36po 2porte”,”HROK-SSSM-8XXXXX”],[“SocialCorner gauche 36po 2portes”,”HROK-SSSC-8XXXXX”],[“SocialCorner droite 36po 2portes”,”HROK-SSSC-8XXXXX”],[“Base Évier 36po 2portes”,”HROK-SB-8XXXXX”]]);
    break;
    case 3:
    g.setItems([[“Faire un choix”,””],[“Ceramique 30po 2portes”,”HROK-GC-8XXXXX”],[“Grill 36po 2portes”,”HROK-GR-8XXXXX”],[“Grill 42po 2portes”,”HROK-GR-8XXXXX”],[“Grill 48po 2portes”,”HROK-GR-8XXXXX”]]);
    break;
    case 4:
    g.setItems([[“Faire un choix”,””],[“Electroménager 26po”,”HROK-APP-8XXXXX”]]);
    break;
    case 5:
    g.setItems([[“Faire un choix”,””],[“Filler Coin 90 3poX3po”,”HROK-CFLR-8XXXXX”],[“Filler Lineaire 2po”,”HROK-LFLR-8XXXXX”],[“Filler Lineaire – 4po”,”HROK-LFLR-8XXXXX”],[“Filler Lineaire pour électricité – 4po”,”HROK-LFLR-8XXXXX”],[“Filler Lineaire 6po”,”HROK-LFLR-8XXXXX”],[“Filler Lineaire Ajustable”,”HROK-LFLR-8XXXXX”]]);
    break;
    case 6:
    g.setItems([[“Faire un choix”,””],[“Eclairage Lineaire 4po”,”HROK-LEDL-8XXXXX”]]);
    break;
    }
    #64789
    bebarth
    Maître des clés

    bonjour,
    je n’ai pas compris s’il y avait une question !  :geek:
    @+
    :bonjour:

    #64790
    warrenc50
    Membre

    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?

    #64791
    bebarth
    Maître des clés

    bonjour,
    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:

    #64792
    warrenc50
    Membre

    Mon premier menu déroulant sert à déterminer quelle “Case” (1,2,3,4,5,6) sera choisie dans la Table. (img : Menu déroulant 1.png)
    Mon 2e menu déroulant choisit l’item et sa valeur d’exportation (Sku) qui est affichée dans un autre champ. (Voir table plus haut)
    Chaque Options qui est cliquée par la suite s’ajoute au Sku en bout de ligne. (img : exemple d’une ligne.png)

    Et là je dois faire afficher le prix de chaque item du 2e menu et des options sélectionnées dans un autre champ (Prix)

    Ça pourrait ressembler à quoi la programmation si j’ajoute une table pour cibler le résultat du Champ SKU et afficher le prix correspondant dans un Champ Prix?

    Merci!

    #64793
    bebarth
    Maître des clés

    bonjour,
    …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:

    #64794
    warrenc50
    Membre

    J’ai tenté ça pour aller lire le résultat qui s’affiche dans le champ (SKU1)
    et afficher le prix dans le champ (Prix1). Mais ça ne fonctionne pas.

    Code:
    var f=this.getField(“SKU1”);
    var g=this.getField(“Prix1”);
    var laSKU1=event.value;
    for (var i=0; iif (laSKU1===f.getItemAt(i,false)) {
    var laTableprix=+f.getItemAt(i,true);
    break;
    }
    }
    g.setItems();
    switch (laTableprix) {
    case 1:
    g.setItems([[“HROK-STOC-8XXXXX”,”$200.00″],[“HROK-SB-8XXXXX”,”$200.00″],[“HROK-SB-8XXXXX”,”$200.00″],[“HROK-ST3D-8XXXXX”,”$200.00″],[“HROK-STOM-8XXXXX”,”$200.00″],[“HROK-ST1D-8XXXXX”,”$200.00″],[“HROK-STOC-8XXXXX”,”$200.00″],[“HROK-ST2D-8XXXXX”,”$200.00″],[“HROK-STOM-8XXXXX”,”$200.00″],[“HROK-STC-8XXXXX”,”$200.00″],[“HROK-STC-8XXXXX”,”$200.00″],[“HROK-STTC-8XXXXX”,”$200.00″],[“HROK-STCC-8XXXXX”,”$200.00″],[“HROK-STTR-8XXXXX”,”$200.00″],[“HROK-STTK-8XXXXX”,”$200.00″],[“HROK-STTK-8XXXXX”,”$200.00″],

    [“HROK-SSSM-8XXXXX”,”$200.00″],[“HROK-SSSM-8XXXXX”,”$200.00″],[“HROK-SSSM-8XXXXX”,”$200.00″],[“HROK-SSSM-8XXXXX”,”$200.00″],[“HROK-SB-8XXXXX”,”$200.00″],[“HROK-SB-8XXXXX”,”$200.00″],[“HROK-SSSM-8XXXXX”,”$200.00″],[“HROK-SSSM-8XXXXX”,”$200.00″],[“HROK-SSSM-8XXXXX”,”$200.00″],[“HROK-SSSM-8XXXXX”,”$200.00″],[“HROK-SSSC-8XXXXX”,”$200.00″],[“HROK-SSSC-8XXXXX”,”$200.00″],[“HROK-SB-8XXXXX”,”$200.00″],

    [“HROK-GC-8XXXXX”,”$200.00″],[“HROK-GR-8XXXXX”,”$200.00″],[“HROK-GR-8XXXXX”,”$200.00″],[“HROK-GR-8XXXXX”,”$200.00″],

    [“HROK-APP-8XXXXX”,”$200.00″],

    [“HROK-CFLR-8XXXXX”,”$200.00″],[“HROK-LFLR-8XXXXX”,”$200.00″],[“HROK-LFLR-8XXXXX”,”$200.00″],[“HROK-LFLR-8XXXXX”,”$200.00″],[“HROK-LFLR-8XXXXX”,”$200.00″],[“HROK-LFLR-8XXXXX”,”$200.00″],

    [“HROK-LEDL-8XXXXX”,”$200.00″]]);
    break;
    }
    }

    #64795
    bebarth
    Maître des clés

    J’essaye de te faire un exemple sur la copie que j’ai ce soir ou demain matin !
    @+
    :bonjour:

    #64796
    bebarth
    Maître des clés

    bonsoir,
    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:

    #64797
    warrenc50
    Membre

    En passant… Merci
    Mes no de produits contiennent des traits d’unions ” – “, ce qui semble poser un problème dans le fichier scripts.
    Que veux-tu dire par renommer les champs?

    :bonjour:  À+

    #64798
    bebarth
    Maître des clés

    bonjour,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:

    #64799
    warrenc50
    Membre

    Je suis daccord pour modifier le noms des champs et alléger le script.

    #64800
    bebarth
    Maître des clés

    bonjour,
    Il faut que je trouve un moment ( :priere: ), et je regarde !
    @+
    :bonjour:

    #64801
    warrenc50
    Membre

    https://we.tl/t-4cH5dowBbN

    Je ne sais pas où est mon erreur.. mais les prix ne s’affichent pas

    #64802
    bebarth
    Maître des clés

    bonjour,
    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:

    #64803
    Merlin
    Maître des clés

    J’espère pour toi que tu prends le train.
    gillet-jaune1.jpg

    Bon weekend.
    :Smiley15:

    #64804
    warrenc50
    Membre

    ça fonctionne à merveille!!!
    et le fichier est très léger.

    Un grand merci!!

    #64805
    bebarth
    Maître des clés

    bonjour,
    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:

    #64806
    warrenc50
    Membre

    Bonjour,
    Est-ce possible de calculer un montant en fonction d’un pourcentage (1.5%) du prix du cabinet de base, pour une de mes options (case à cocher).
    Le prix de cette option varie selon le SKU du cabinet.

    #64807
    bebarth
    Maître des clés

    bonsoir,
    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:

    #64808
    bebarth
    Maître des clés

    bonjour,
    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:

    #64809
    warrenc50
    Membre

    Merci!
    En fait j’ai juste modifier l’option 1 avec ton code
    Je n’ai pas eu à ajouter de cases à cocher.
    ça ajoute 1.5% au prix initial

    #64810
    warrenc50
    Membre

    bonjour

    J’ai une question.
    Les formulaires que j’ai fait, fonctionnent super bien quand l’utilisateur les ouvre avec son application de bureau Acrobat.
    Par contre, si c’est le plug-in Acrobat du navigateur qui le prend en charge, les fonctions du formulaire ne fonctionne plus.
    Est-ce possible de forcer l’ouverture du PDF avec l’application bureau de l’utilisateur?

    #64811
    bebarth
    Maître des clés

    Est-ce possible de forcer l’ouverture du PDF avec l’application bureau de l’utilisateur?

    En local oui, mais pas via JavaScript…
    Exemple pour Firefox : https://support.mozilla.org/fr/kb/desactiver-lecteur-pdf-integre
    @+
    :bonjour:

    #64812
    warrenc50
    Membre

    je comprends.. le hic réside dans le fait que les clients ont leur environnement sur lequel je n’ai pas de contrôle.
    je me demandais s’il y avait une façon de faire en sorte que le PDF ouvre par défaut avec l’application bureau pour eux, sans qu’ils aient à changer quoi que ce soit.

    #64813
    Merlin
    Maître des clés

    Par contre, si c’est le plug-in Acrobat du navigateur qui le prend en charge, les fonctions du formulaire ne fonctionne plus.

    En fait non.
    Si ça ne fonctionne pas c’est justement parce-que le plugin Adobe PDFViewer n’est pas utilisé.
    Et s’il n’est pas utilisé c’est parce-qu’il n’est pas supporté, ni par Firefox ni par Chrome.

    Les solutions connues sont ici :
    https://www.abracadabrapdf.net/ressources-et-tutos/js-et-formulaires-ressources/forcer-utilisation-pdf-avec-acrobat-reader/
    https://www.abracadabrapdf.net/ressources-et-tutos/creation/forcer-telechargement-pdf/
    :Smiley15:

    #64814
    warrenc50
    Membre

    Allo

    J’ai bonifié le formulaire PDF
    J’ai un champ qui affiche la dimension totale de chaque item choisi
    Le problème que j’ai, est que ce champ ne se met pas à jour.

    Dans ma colonne : Cabinet Category , quand je remets le menu déroulant à “Make a choice”, le champ “Total dimension in inches:  Side A:” n’ajuste pas son calcul.

    SI je sélectionne dans le Step 1 un item, la colonne Step 2 devient disponible et je peux sélectionner l’item de mon choix.
    Par contre, si je retourne dans la colonne Step 1 pour remettre “Make a choice”, l’item de la colonne “Step 2” demeure à sa position et ne se remet pas à “Make a choice” ce qui afficherait 0 comme dimension. L’utilisateur ne

    Avez-vous une idée pour régler ce problème ?

    #64815
    Merlin
    Maître des clés

    Je ne vois rien dans la colonne “step 2”.
    Par-contre la console renvoie des erreurs à chaque clic…
    :geek:

    #64816
    warrenc50
    Membre

    Il faut ouvrir le pdf avec l’application bureau
    La colonne 1 doit être choisie en premier
    ensuite l’information de la colonne 2 apparait

    #64817
    bebarth
    Maître des clés

    bonjour,
    Il faudrait que je me replonge un an après, et en ce moment je n’ai pas beaucoup de temps.
    Ce qui est certain, c’est que tu ne peux pas écrire :

    Code:
    this.event.target.value=””;

    pour une liste déroulante. On ne définie pas sa valeur comme ça !
    En tout cas, je trouve ton formulaire très sympa !
    @+
    :bonjour:

    #64818
    warrenc50
    Membre

    Voici comment j’ai fait mes listes déroulantes de Step 1.

    et Step 2 :

    Code:
    var lesElements =[
      //Type 0
      [],
      //Type 1 :  Left end
      [
          [“1-0″,”Make a choice”,””,”0″,0],
          [“1-1″,”No filler or cabinet”,””,”0″,0],
          [“1-2″,”1in End Filler pannel Left end”,”HROK-EFLR-800043″,”375.00″,1],
          [“1-3″,”18in Open Shelves Cabinet”,”HROK-STOC-800022″,”2000.00″,18]
      ],
      //Type 2 : Storage & specialities
      [
          [“2-0″,”Make a choice”,””,”0″,0],

      ],
      //Type 3 : Sink
      [

          [“3-0″,”Make a choice”,””,”0″,0],
          [“3-1″,”15in Sink Base Cabinet 1 Door Left Hinges”,”HROK-SB-800057″,”2750.00″,15]

      ],
      //Type 4 : Grill
      [
          [“4-0″,”Make a choice”,””,”0″,0],
          [“4-1″,”15in Grill Base Cabinet 1 door Left hinges”,”HROK-GR-800059″,”2750.00″,15]

      ],
      //Type 5 : Appliances
      [
          [“5-0″,”Make a choice”,””,”0″,0],
          [“5-1″,”18in Appliance Cabinet”,”HROK-APP-800070″,”1000.00″,18]

      ],
      //Type 6 : Filler
      [
          [“6-0″,”Make a choice”,””,”0″,0],
          [“6-1″,”2in Linear Filler”,”HROK-LFLR-800046″,”275.00″,2],
          [“6-2″,”4in Linear Filler”,”HROK-LFLR-800047″,”275.00″,4],

      ],
      //Type 7 : Ambience
      [
          [“7-0″,”Make a choice”,””,”0″,0],
          [“7-1″,”4in Linear LED Lighting module”,”HROK-LEDL-800036″,”2000.00″,4],
          [“7-2″,”4in Linear LED Lighting module for electrical box”,”HROK-LEDL-800037″,”2000.00″,4]
      ],
      //Type 8 :  Right end
      [
          [“8-0″,”Make a choice”,””,”0″,0],
          [“8-1″,”No filler or cabinet”,””,”0″,0],
          [“8-2″,”1in End Filler pannel Right end”,”HROK-EFLR-800044″,”375.00″,1],
          [“8-3″,”18in Open Shelves Cabinet Open Facade & Right end”,”HROK-STOC-800023″,”2000.00″,18]
      ],
      //Type 9 : Corner Cabinet
      [
          [“9-0″,”Make a choice”,””,”0″,0],
          [“9-1″,”46in Corner Storage Cabinet 1 door Left Hinges”,”HROK-STC-800026″,”3625.00″,”46″,31],
          [“9-2″,”46in Corner Storage Cabinet 1 door Right Hinges”,”HROK-STC-800027″,”3625.00″,”31″,46],
          [“9-3″,”90° Corner Filler cabinet Right end”,”HROK-CFLR-800045″,”1750.00″,”31″,31]
      ]
    ];

    #64819
    Merlin
    Maître des clés

    Il faut ouvrir le pdf avec l’application bureau

    J’utilise Acrobat Pro DC pour MacOS.

    La colonne 1 doit être choisie en premier ensuite l’information de la colonne 2 apparait

    C’est bien ce que je fais et rien ne s’affiche dans la colonne step2.
    Par-contre la console est toujours aussi volubile :

    Code:
    Les listes TELEPHONIE FIXE ont ete remplies a l’ouverture du document.
    Les listes ACCES INTERNET ont ete remplies a l’ouverture du document.
    Les listes TELEPHONIE FIXE ont ete remplies a l’ouverture du document.
    Les listes ACCES INTERNET ont ete remplies a l’ouverture du document.
    TypeError: x is null
    2:Document-Level:Date
    ReferenceError: lIndice is not defined
    3:AcroForm:Cabinets.0:Validate
    ReferenceError: lIndice is not defined
    3:AcroForm:Cabinets.1:Validate
    ReferenceError: lIndice is not defined
    2:AcroForm:Specifications.2:Annot1:MouseUp:Action1
    ReferenceError: lIndice is not defined
    2:AcroForm:Specifications.0:Annot1:MouseUp:Action1
    ReferenceError: lIndice is not defined
    2:AcroForm:Specifications.0:Annot1:MouseUp:Action1
    ReferenceError: lIndice is not defined
    2:AcroForm:Specifications.0:Annot1:MouseUp:Action1
    ReferenceError: lIndice is not defined
    2:AcroForm:Specifications.0:Annot1:MouseUp:Action1
    #64820
    warrenc50
    Membre

    Moi j’utilise Acrobat DC sur PC

    Je me demande s’il existe un script pour remettre mes listes à leur position par défaut lorsque la première liste est remise à sa position par défaut.

    #64821
    warrenc50
    Membre

    J’ai trouvé la solution

    #64822
    Merlin
    Maître des clés

    Quelle est elle ?

    #64823
    warrenc50
    Membre

    j’ai tout simplement ajouté :

    var lesElements =[
    //Type 0
        [
          [“0″,””,””,”0″,0]
        ],

    au début de ma Table qui remet la position à 0 de mes listes suivantes

    #64824
    warrenc50
    Membre

    Bonjour,J’ai des options dans mon formulaire.
    Quand l’utilisateur “coche” une des cases le prix s’ajuste.
    j’aimerais faire en sorte que lorsque la case à cocher “opt1” est cochée et que l’utilisateur coche “opt2” que le prix de “opt2” soit 270$.
    Mais si l’option 1 n’est pas cochée, le prix de “opt2” doit rester à 225$

    Voici mon code pour l’instant

    function lesOptions() {
    prixOptions=0;

        if (this.getField(“Opt1.”+indice).value!=”Off”) {
            opt1=this.getField(“Prix.”+indice).value*0.20;
        } else {
            opt1=0;
        }
        prixOptions=prixOptions+opt1;

    if (this.getField(“Opt2.”+indice).value!=”Off”) {
      opt2=225.00;
    } else {
      opt2=0;
    }
    prixOptions=prixOptions +opt2;

    if (this.getField(“Opt3.”+indice).value!=”Off”) {
      opt3=350.00;
    } else {
      opt3=0;
    }
    prixOptions=prixOptions +opt3;

    if (this.getField(“Opt4.”+indice).value!=”Off”) {
      opt4=10.00;
    } else {
      opt4=0;
    }
    prixOptions=prixOptions +opt4;

    if (this.getField(“Opt5.”+indice).value!=”Off”) {
      opt5=400.00;
    } else {
      opt5=0;
    }
    prixOptions=prixOptions +opt5;

    if (this.getField(“Opt6.”+indice).value!=”Off”) {
      opt6=112.50;
    } else {
      opt6=0;
    }
    prixOptions=prixOptions +opt6;

    if (this.getField(“Opt7.”+indice).value!=”Off”) {
      opt7=80.00;
    } else {
      opt7=0;
    }
    prixOptions=prixOptions +opt7;
    }

    #64825
    Merlin
    Maître des clés

    Quelle est la question ?
    :doute:

    #64826
    bebarth
    Maître des clés

    bonjour,
    Si j’ai bien compris :

    Code:

    if (this.getField(“Opt2.”+indice).value!=”Off”) {
        if (this.getField(“Opt1.”+indice).value!=”Off”) {
            opt2=270.00;
        } else {
              opt2=225.00;
        }
    } else {
      opt2=0;
    }
    prixOptions=prixOptions +opt2;

    @+
    :bonjour:

    #64827
    warrenc50
    Membre

    Allô
    Merci beaucoup!!
    ça fonctionne!

    #64828
    Merlin
    Maître des clés

    :oh:

    #64829
    warrenc50
    Membre

    Bonjour à vous

    Mon formulaire s’en vient de plus en plus complexe.
    On doit introduire la notion de “Collection”
    Donc, ma question :
    Est-il possible de faire en sorte que l’utilisateur puisses changer de collection dans mon formulaire.
    Et donc, de changer de Table qui remplie mes menus déroulants?
    Présentement, c’est la table : lesTables qui alimente les menus déroulant.
    j’ai ajouté la tables : lesTablesLine qui serait une autre collection.
    l’utilisateur pourrait switcher d’une collection à l’autre. est-ce possible?

    #64830
    bebarth
    Maître des clés

    bonjour,Je dis oui, c’est possible !
    Cette réponse va certainement te paraître superflue…
    Je pense qu’il faut repenser le script (certainement avec un fichier .csv attaché).
    Ceci demande pas mal de travail pour ton formulaire et donc un certain temps de développement !!!
    @+
    :bonjour:

    #64831
    Merlin
    Maître des clés

    :bonjour:

    #64832
    warrenc50
    Membre

    on n’aurait pas moyen de changer de Tables dans les scripts du documents?
    avec un bouton radio ou une liste déroulante?

    #64833
    Merlin
    Maître des clés

    Il y a une autre solution souvent plus simple : afficher/masquer les listes en fonction de leur contenu.
    :Smiley03:

    #64834
    warrenc50
    Membre

    Et on fait ça comment?

    #64835
    Merlin
    Maître des clés

    Tu remplis plusieurs listes chacune avec une table différente. Une seule étant visible à la fois.
    Ensuite, en fonction du choix utilisateur tu affiches/masques la liste correspondante.
    :Smiley15:

Affichage de 68 réponses de 1 à 68 (sur un total de 68)
  • Vous devez être connecté pour répondre à ce sujet.